WebApi创建单据并建立关联关系,修改数量
项目上要跟第三方系统做接口,需要串起来整个流程,并且星空里面的单据可以实现上查下查,这种前提下通过接口创建的单据需要跟上游单据创建关联关系;
我能想到的方式大概有三种:
第一种:
通过WebApi接口直接创建关联关系,主要是得给FENTRY_Link里面的字段赋值,还有些数量字段 比如基本单位数量、销售单位数量、辅助单位数量,感觉这种方式的问题主要是在辅助计量单位的计算上(基本数量/单位换算系数),数量修改辅助单位数量也得修改,计算有误差不知道会有什么后果,而且生产类的单据比较麻烦,FENTRY_Link里面除了赋值上游单据还得赋值相应的生产订单信息,其他的字段问题倒是不大,而且相对灵活。
可以参考:[WebAPI保存接口实现上下游关联](https://wenku.my7c.com/article/171055?productLineId=1&lang=zh-CN)
第二种:
代码里调用转换规则按照分录行生成下游单据,然后在转换规则里修改数量同时调用实体服务规则实现类似于表单的值更新效果,最后将下推的单据调用标准的保存、提交、审核方法,这种方式好处是数量、金额相关的字段都是调用系统的方法,不用人为去计算。当然也有弊端至少是我没解决的,比如销售退货单的审核接口,应退数量无论怎么传都是跟实退数量一致,应该是跟上游单据(销售出库单)的出库数量保持一致才对。
手工做单和webapI生成的单 通过下面的sql语句后台对比了下 t1 t2 t3 t4 这四张表里面只有应退数量数量不一样,只要实退数量有值,应退数量 = 实退数量 搞得很头疼;
--销售退货单
select
t1.fbillno,
t2.*
from
T_SAL_RETURNSTOCK t1
left join T_SAL_RETURNSTOCKENTRY t2 on t2.fid = t1.fid
left join T_SAL_RETURNSTOCKENTRY_f t3 on t3.fentryid = t2.fentryid
left join T_SAL_RETURNSTOCKENTRY_lk t4 on t4.fentryid = t2.fentryid
where t1.fbillno in( 'XSTHD1001002515','XSTHD1001002521')
第三种:
第三种其实跟第二种方式差不多,前面都是代码里调用转换规则自动生成下游单据,区别在于第三种是对生成的下游单据调用webapi的修改接口(通过关联关系找到源单分录id,根据源单分录id匹配下游单据的分录行进而修改数量),这种方式解决了第二种方式应退数量不对的问题,通过第二种方式的sql查询后台,所有的字段都跟手工做单的保持一致,这种方式需要重点研究下传参的灵活性上;
WebApi创建单据并建立关联关系,修改数量
项目上要跟第三方系统做接口,需要串起来整个流程,并且星空里面的单据可以实现上查下查,这种前提下通过接口创建的单据需要跟上游单据创建...
点击下载文档
本文2024-09-16 17:10:14发表“云星空知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-k3cloud-13975.html
您需要登录后才可以发表评论, 登录登录 或者 注册
最新文档
热门文章