【webapi】通过保存接口,实现采购订单-采购入库单关联的一些核心字段讲解(附带测试JSON)

【webapi】通过保存接口,实现采购订单-采购入库单关联的一些核心字段讲解(附带测试JSON)
背景:
下推接口只能整单下推,无法分批数量入库
因此调用保存接口,实现上下游单据的关联
可以实现分批入库
官方API交流QQ群:857982100
简单的JSON示例:
以下是总结的采购入库单上比较核心的一些字段,有时候用采购入库单保存接口来关联对应上游的采购订单【报错】或【没关联成功】或【没反写成功】,就是字段错误赋值,或格式不对或不满足业务
{
"Model": {
"FID": 0,
"FBillNo": "",
"FBillTypeID": {
"FNUMBER": "RKD01_SYS"
},
"FBUSINESSTYPE": "CG",
"FStockOrgId": {
"FNumber": "100"
},
"FPurchaseOrgId": {
"FNumber": "100"
},
"FSupplierId": {
"FNumber": "051101"
},
"FDATE": "2022-05-26",
"FInStockEntry": [
{
"FMaterialID": {
"FNumber": 0.001
},
"FStockId": {
"FNumber": "0.001"
},
"FRealQty": 1,
"FTAXPRICE": "¥3.330000",
"FPOOrderNo": "CGDD002542",
"FPOORDERENTRYID": "296025",
"FSRCBILLTYPEID": "PUR_PurchaseOrder",
"FSrcBillNo": "CGDD002542",
"FInStockEntry_Link": [
{
"FInStockEntry_Link_FRuleId": "PUR_PurchaseOrder-STK_InStock",
"FInStockEntry_Link_FSTableName": "t_PUR_POOrderEntry",
"FInStockEntry_Link_FSBillId": "295517",
"FInStockEntry_Link_FSId": "296025"
}
]
}
]
}
}下面一个个来解释:
【FID】:单据的唯一ID,存数据库一般不显露出来,点击保存时自动生成,可以不给值
【FBILLNO】:单据编码,这个也好理解,可以自己手工赋值,也可以保存的时候让它自动生成
【FBILLTYPEID】:单据类型的编码,不要直接填中文(这种行为很low!!)
一般是固定值,可以在系统的单据类型列表里找到对应的值,如:上面的JSON中的RKD01_SYS,就是标准入库单的意思

【FBUSINESSTYPE】:业务类型,这个值也很关键,很多人忘了填,一般不填系统就默认你是标准采购。
但是呢,我们有时候是要切换为委外采购入库单,这时候如果你任由系统默认赋值标准采购,那就会报错的,一般是要和单据类型一对应起来的
其对应的值,可以在BOSIDE的采购入库单中找到,如:上面JSON中的"CG",代表标准采购的意思。委外入库单的话就要改成"WW"了,需要注意的是字母要全大写

【FStockOrgId】:收料组织的编码,单据上做个单子点开来就看得到了,看着业务来填就好
【FPurchaseOrgId】:采购组织的编码,同上,照填

【FSupplierId】:供应商的编码,也是和上面一样,点开单据的这个字段就可以查看了

这里延申出两个问题:
1)顺序先后问题,【收料组织】字段的赋值要先于【供应商】字段
假如你先给供应商赋值,再来给收料组织赋值,供应商也会被刷新清空。
这个很好理解,组织>供应商。
系统的设定是你切换了组织,整个单据界面都要刷新清空一遍,这个在单据做单的时候,前端效果很容易的体现出来,但是用JSON接口做单赋值时,就很容易看不出来了。这里也是要注意的。

2)顺序没问题,为啥还时提示我供应商必填?我明明填充了啊?
这时候就要考虑JSON里赋值的供应商编码在当下这个收料组织里选的到么?本身选不到的话还强行赋值,就会被清空,JSON保存的时候就会提示你:供应商必填!其实就是没注意到这个细节!
看到上图中,供应商里面有一列叫【使用组织】的没,这里的供应商是被收料组织过滤的,也就是说不在这个组织下的供应商,你赋值是不会成功的。

【FDATAE】:日期字段,不多说,照填,格式别搞错了就行
接下来到明细体(FInStockEntry)里的字段:
【FMaterialID】:物料的编码,看着照填。但是和供应商的道理一样,不要把组织的赋值放到物料之后,也不要赋值这个组织下选不到的物料,不然JSON里统统会报错:物料必填!
【FStockId】:仓库的编码,看着照填。这里呢也是要注意的是,不要把仓库字段的赋值排到物料之前,各位可以去单据里录数据试试。先录物料再录仓库是正常的,而你先录仓库再录物料,会发现仓库被清空了,JOSN这里的赋值是一个道理,只不过你看不见摸不着。
【FRealQty】:实收数量,根据业务填入即可
【FTAXPRICE】:含税单价,根据业务填入即可
【FPOOrderNo】:订单编号,这个值也是很关键的,填充的是上游的采购订单单据编号,对后续的业务很有用。
正常【采购订单-采购入库单】下推做单的过程中,系统的单据转换会自动赋值携带到采购入库单上,不用我们自己手工赋值。但是,现在因为是用保存接口,用JSON赋值的方式来构建采购入库单并且关联上游采购订单,这里就需要我们自己填充了,系统也没办法自动赋值。
举个例子:如果你是委外采购入库单,采购入库单的保存校验就要校验这个字段的,这个字段没填充的话,就会报错:委外业务类型的入库单必须有来源委外订单!
(顺便再次强调下FBUSINESSTYPE:业务类型,这个字段的重要性,截图中看出保存操作是有这一块的校验的)

【FPOORDERENTRYID】:采购订单明细行的分录ID,这个也挺重要的,一会连同后面一块讲怎么查出来
【FSRCBILLTYPEID】:源单类型,用于指明上游是啥单据。这里是采购订单,所以赋值:PUR_PurchaseOrder(采购订单的唯一标识)
【FSrcBillNo】:源单编号,用于指明上游的单据编号,这里时填充采购订单的单据编号
这里肯定有人有疑问了,和订单编号FPOOrder
【webapi】通过保存接口,实现采购订单-采购入库单关联的一些核心字段讲解(附带测试JSON)
声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。



