调用webapi保存接口修改单据分录行(明细行)数据
2人赞赏了该文章
3,579次浏览
编辑于2019年11月06日 16:42:48
摘要由AI智能服务提供
本文介绍了调用webapi保存接口修改单据分录行数据的参数说明。包括必录和非必录参数,如业务对象表单Id、JSON格式数据等,详细解释了Model数据包中单据头、子单据头及单据体字段的填写方法,特别是更新分录行时需注意的问题,如填写NeedUpDateFields、Model等字段,并提供了一个修改销售出库单实发数量的示例。
调用webapi的保存接口修改单据的分录行数据参数如下:
一、请求参数说明:
1.formid:业务对象表单Id,字符串类型(必录)
2.data:JSON格式数据(详情参考JSON格式数据)(必录)
2.1.Creator:创建者内码(非必录)
2.2.NeedUpDateFields:非必须,如果是更新单据而不是新增一个单据,可以设置这个数据集合,内容为字段标识,使用逗号分隔,如果需要更新表体数据,则需要填写表体的标识。一般情况下,如果Model中只填写了需要更新的字段信息,没有其他冗余的字段,那么这个参数不需要设置,否则其他冗余字段会覆盖ERP中的源单数据。
2.3.NeedReturnFields:需返回结果的字段集合,数组类型,格式:[key,entitykey.key,...](非必录) 注(返回单据体字段格式:entitykey.key)
2.4.IsDeleteEntry:是否删除已存在的分录,布尔类型,默认true(非必录)
2.5.SubSystemId:表单所在的子系统内码,字符串类型(非必录)
2.6.IsVerifyBaseDataField:是否验证所有的基础资料有效性,布尔类,默认false(非必录)
2.7.IsEntryBatchFill:是否批量填充分录,默认true(非必录)
2.8.ValidateFlag:是否验证标志,布尔类型,默认true(非必录)
2.9.NumberSearch:是否用编码搜索基础资料,布尔类型,默认true(非必录)
2.10.InterationFlags:交互标志集合,字符串类型,分号分隔,格式:"flag1;flag2;..."(非必录),例如(允许负库存标识:STK_InvCheckResult)
2.11.IsAutoSubmitAndAudit:是否自动提交与审核,布尔类型,默认false(非必录) 注(启用此参数,保存,提交和审核是在一个事务中)
2.12.Model:表单数据包,JSON类型(必录) 注必须,Model数据格式说明:所有字段和实体都是用元素的标识来识别。单据头字段直接填写字段标识和数据,子单据头字段需要先申明是子单据头信息,然后再填写其字段信息,例如\"SubHeadEntity\":{\"FBARCODE\":\"20305\"}如果是单据体字段则需要申明为集合,例如:\"EntryDetail\":[{第1条明细},{第N条明细}],需要用中括号括起来。
另外要注意的是更新单据时,表体信息必须填写明细表体的主键,如果不填写,将会删除源单的表体,而没有主键的数据会视为新增,有明细主键的视为更新。
需要注意的问题:如果只需要单据头内容的话,则只需要在Model里面填写需要修改的字段,如果需要修改分录行内容的话,需要做如下操作:1、在NeedUpDateFields这个字段里面填写分录行key以及待修改内容的字段key,2、在Model里面填写待修改内容的字段key,并且需要填写分录行内码ID
示例:修改销售出库单实发数量
{
"Creator": "",
"NeedUpDateFields": ["FEntity","FRealQty"], //填写需要更新的分录行key和需要修改的字段key
"NeedReturnFields": [],
"IsDeleteEntry": "false",
"SubSystemId": "",
"IsVerifyBaseDataField": "false",
"IsEntryBatchFill": "true",
"ValidateFlag": "true",
"NumberSearch": "true",
"InterationFlags": "",
"IsAutoSubmitAndAudit": "false",
"Model": {
"FID": 100015, //单据内码
"FEntity": [
{
"FENTRYID":100022, //分录行内码
"FRealQty": 1 //实发数量
}
]
}
}
一、请求参数说明:
1.formid:业务对象表单Id,字符串类型(必录)
2.data:JSON格式数据(详情参考JSON格式数据)(必录)
2.1.Creator:创建者内码(非必录)
2.2.NeedUpDateFields:非必须,如果是更新单据而不是新增一个单据,可以设置这个数据集合,内容为字段标识,使用逗号分隔,如果需要更新表体数据,则需要填写表体的标识。一般情况下,如果Model中只填写了需要更新的字段信息,没有其他冗余的字段,那么这个参数不需要设置,否则其他冗余字段会覆盖ERP中的源单数据。
2.3.NeedReturnFields:需返回结果的字段集合,数组类型,格式:[key,entitykey.key,...](非必录) 注(返回单据体字段格式:entitykey.key)
2.4.IsDeleteEntry:是否删除已存在的分录,布尔类型,默认true(非必录)
2.5.SubSystemId:表单所在的子系统内码,字符串类型(非必录)
2.6.IsVerifyBaseDataField:是否验证所有的基础资料有效性,布尔类,默认false(非必录)
2.7.IsEntryBatchFill:是否批量填充分录,默认true(非必录)
2.8.ValidateFlag:是否验证标志,布尔类型,默认true(非必录)
2.9.NumberSearch:是否用编码搜索基础资料,布尔类型,默认true(非必录)
2.10.InterationFlags:交互标志集合,字符串类型,分号分隔,格式:"flag1;flag2;..."(非必录),例如(允许负库存标识:STK_InvCheckResult)
2.11.IsAutoSubmitAndAudit:是否自动提交与审核,布尔类型,默认false(非必录) 注(启用此参数,保存,提交和审核是在一个事务中)
2.12.Model:表单数据包,JSON类型(必录) 注必须,Model数据格式说明:所有字段和实体都是用元素的标识来识别。单据头字段直接填写字段标识和数据,子单据头字段需要先申明是子单据头信息,然后再填写其字段信息,例如\"SubHeadEntity\":{\"FBARCODE\":\"20305\"}如果是单据体字段则需要申明为集合,例如:\"EntryDetail\":[{第1条明细},{第N条明细}],需要用中括号括起来。
另外要注意的是更新单据时,表体信息必须填写明细表体的主键,如果不填写,将会删除源单的表体,而没有主键的数据会视为新增,有明细主键的视为更新。
需要注意的问题:如果只需要单据头内容的话,则只需要在Model里面填写需要修改的字段,如果需要修改分录行内容的话,需要做如下操作:1、在NeedUpDateFields这个字段里面填写分录行key以及待修改内容的字段key,2、在Model里面填写待修改内容的字段key,并且需要填写分录行内码ID
示例:修改销售出库单实发数量
{
"Creator": "",
"NeedUpDateFields": ["FEntity","FRealQty"], //填写需要更新的分录行key和需要修改的字段key
"NeedReturnFields": [],
"IsDeleteEntry": "false",
"SubSystemId": "",
"IsVerifyBaseDataField": "false",
"IsEntryBatchFill": "true",
"ValidateFlag": "true",
"NumberSearch": "true",
"InterationFlags": "",
"IsAutoSubmitAndAudit": "false",
"Model": {
"FID": 100015, //单据内码
"FEntity": [
{
"FENTRYID":100022, //分录行内码
"FRealQty": 1 //实发数量
}
]
}
}
推荐阅读