用友U8生产订单生成-通过写数据库方式
从标准来说,生成U8的生产订单,应该通过调用API的方式生成.但是,API的调试的难度,以及莫名其妙的错误,对程序员来说,就是一种抓狂的感觉.有时候辛苦拼凑了一堆的参数,系统返回的是不知所闻的的错误信息,什么null值啊,什么不能为空.可恨的是,还无法调试.本文提供一种最直接,最暴力的解决方式,直接写数据库的方式,生成用友U8的生产订单.对没接触过U8的业务逻辑的程序猿来说,不建议这个方式,但这个
从标准来说,生成U8的生产订单,应该通过调用API的方式生成.但是,API的调试的难度,以及莫名其妙的错误,对程序员来说,就是一种抓狂的感觉.有时候辛苦拼凑了一堆的参数,系统返回的是不知所闻的的错误信息,什么null值啊,什么不能为空.可恨的是,还无法调试.
本文提供一种最直接,最暴力的解决方式,直接写数据库的方式,生成用友U8的生产订单.对没接触过U8的业务逻辑的程序猿来说,不建议这个方式,但这个是了解U8生产订单各个表之间的逻辑关系,是个不错的借鉴.
一般来说.生成用友单据需要几个门槛:
1.单据Id.(表头,表体的主键) 通过sp_getID存储过程获得
2.单据号的生成.通过读取:VoucherNumber:单据号生成规则,VoucherHistory:单据流水号
3.各个业务表的关键字段的插入
第1,2步相对固定,第3步就需要跟踪数据库,通过跟踪单据的写入过程,获得单据业的业务表插入的字段来获得.
本文以一个生产订单的生成,阐述U8单据的生成过程
1.表头表体ID的获得
public static void GetIdentity(string accId,int rowCount ,string funcType,ref int parentId ,ref int childId)
{
string ufConn = Config.UFConn;
string sql = @"declare @p5 int
set @p5=1000000003
declare @p6 int
set @p6=1000000005
exec sp_getID '','{0}','{2}',{1},@p5 output,@p6 output
select @p5 as ParentID, @p6 as ChildId";
sql = string.Format(sql, accId, rowCount,funcType );
DataTable dt = SqlHelper.ExecuteDataset(ufConn, CommandType.Text, sql).Tables[0];
parentId = int.Parse(dt.Rows[0]["ParentID"].ToString());
childId = int.Parse(dt.Rows[0]["ChildId"].ToString());
}
通过存储过程Sp_getId 获得生产订单表头,表体的Id,
其中参数:AccId:账套号,rowCount:子表的记录数,funcType:单据类型,需要跟踪标准单据的写入过程获得,例如生产订单的类型:mom_order,子表:mom_orderdetail
返回的ParentId就是主表的Id,ChildId就是子表的Id
2.单据号生成
通过读取VoucherNumber表获得单据生成规则(代码参考我其他文章)
3.生产订单生成
生产订单涉及几张表:
mom_order:生产主表
mom_orderdetail:生产订单子表
mom_moallocate:生产订单子件用料表
mom_morder:生产订单开完工日期
表之间之间关联关系:mom_orderdetail:MOID(主表的Id),mom_moallocate:MoDID(和mom_orderdetail的明细MoDId关联)
mom_moallocate:生产订单子件,复制标准BOM
详细的代码入口:U8MoController
http://localhost:57453/MOTrans/CreateMO
参考JSON:
[
{
"类型": "标准",
"订单类别": "量产",
"存货编码": "00002312",
"PartId": "22793",
"数量": "1",
"生产任务单号": "Test1111",
"来源订单类别": "销售订单",
"来源订单号": "202207C00101",
"来源订单行号": "1",
"开工日期": "2022-7-1",
"完工日期": "2022-7-10",
"生产部门编码": "80",
"Size": "1",
"BOM选择":"主BOM",
"BOM版本号": "10",
"备注": "1",
"工艺路线选择": "主工艺路线"
}
]
源代码
通过写数据库的方式生成用友U8生产订单-C#文档类资源-CSDN文库https://download.csdn.net/download/daniel_qsy/87061567
更多推荐
所有评论(0)