跳到主要内容

成品缴库单保存

| 基本信息

信息备注
接口名称成品缴库单保存根据单据ID来新增单据(包括修改)
请求状态POSTRESTful方式
接口路径http://localhost:23798/api/Bill/SaveBill向服务器地址发送POST请求
远程模式http://www.linkerplus.com/api/ext_erp/Bill/SaveBill远程模式向服务器地址发送POST请求,需要ERP注册号注册远程模式,并在Headers添加sn参数

| 请求参数

Headers

参数名称是否必须参数值备注
Content-Typeapplication/json用于指定数据的传输类型
LoginIde835943e-55c2-4bf0-832d-6f4166592941用户登录的LoginId,取用户登录或账套验证接口返回的LoginId
snMGR_REST_1001远程模式需添加sn参数,MGRREST+ERP注册号

Body

参数名称类型是否必须参数值备注其它信息
HeadDataobject表头数据
EntryOrderIdstringWMS00001调用方业务编码调用方唯一编码,关联ERP单据,且避免重复提交,当提交的EntryOrderId重复时返回提示。为空则没有该项检测
CallIdstringMM调用的单据识别号"MM":表示成品缴库单
CallNostringMM0C240001调用的单据号码传入该值代表修改原单据信息,新增数据时无需添加
DepNostringSCB部门代号
SalNostringCG001经办人代号
Remstring这是表头备注备注
UsrNostringADMIN制单人账套验证的LoginId需添加UsrNo,用户登录的LoginId则无需添加UsrNo
ExtendPropsobject"WH_CL":"003",
“ZDY": "自定义"
表头扩展功能包括表头的其它字段以及用户自定义字段,字段名需与数据库表名一致
NotUseAuditFlowstringT/F跳过审核流程,自动审核。默认不跳过当传"T"时,该单据通过接口生成时,不考虑审核流程,直接自动终审
BodyDataobject []表身数据item 类型: object
CallItmnumber1原单项次HeadData中CallNo存在并有值时才生效,传入该值代表修改原单据表身对应PRE_ITM列的信息,新增数据时无需添加
BilNostringMO0C230001、TP0C230001、TJ0C230001、QM0C230001转入来源单单号制令单号、生产验收单号、返工返修验收单号、制成品检验单号
BilIdstringTP、TJ、QM缴库来源单据别TP:生产缴库验收、TJ:返工返修验收、QM:制成品检验
BilItmnumber1(TP、TJ)原单项次TF_TY的PRE_ITM
LostItmnumber1(TP、TJ)原单项次TF_TY1的PRE_ITM
ForceIdstringT(QM)来源是制成品检验时是否是强制缴库T:强制缴库、F:合格缴库
PrdNostringCP1货品代号
WhNostring001仓库代号
BatNostringPH01批号
PrdMarkstringTZ01特征
PrdLocstringCW01储位
Unitstring1单位
Qtynumber3主数量
Qty1number6副数量
Remstring这是表身摘要摘要
IsDeletestringF删除行CallItm存在并有值时才生效,传入该值为T代表删除原单据表身对应PRE_ITM列,不删除行时无需添加
ExtendPropsobject"Valid_DD":"2020-12-23",
“ZDY": "自定义",
"SEQ_ITM":1
表身扩展功能包括表身的其它字段以及用户自定义字段,字段名需与数据库表名一致

| 返回数据

参数名称类型参数值备注
EntryOrderIdstringWMS00001调用方业务编码
CallIDstringMM调用的单据识别号
CallNOstringMM0C240001生成的单据号码
CallOKstringT执行是否成功, 是:"T" 否:"F"
Datastring"TF_TABNAME": "TF_MM",
"BIL_ITM": "0",
"MF_TABNAME": "MF_MM",
"BIL_NO": "MM0C240001",
"BIL_ID": "MM"
单据信息,JOSN字符串格式
ErrorStrstring错误信息

| 调用范例

BODY JSON

无需赋值的字段不需要添加,转入来源单或修改原单据时传入的字段代表修改原值

修改原单数据
{
"HeadData":{ // 必须,表头数据
"EntryOrderId":"WMS00001", //非必须,调用方业务编码
"CallId":"MM", //必须,调用的单据识别号,"MM":表示成品缴库单
"CallNo":"MM0C240001",
"DepNo":"CGB" //非必须,部门代号
},
"BodyData":[ //必须,表身数据
{
"PrdNo":"CP1", //非必须,货品代号
"WhNo":"001", //非必须,仓库代号
"BatNo":"PH01", //非必须,批号
"PrdMark":"TZ01", //非必须,特征
"PrdLoc":"CW01", //非必须,储位
"Unit":"1", //非必须,单位
"Qty":3, //非必须,主数量
"Qty1":6, //非必须,副数量
"Rem":"这是表身摘要", //非必须,摘要
"IsDelete":"F", //非必须,删除行,传入该值为T代表删除原单据表身对应PRE_ITM列,不删除行时无需添加
"ExtendProps":{ //非必须,扩展功能,包括表身的其他字段以及用户自定义字段
"Valid_DD":"2020-12-23" //字段名需与数据库表名一致
}
}
]
}
转入来源:制令单
{
"HeadData":{ //必须,表头数据
"EntryOrderId":"WMS00001", //非必须,调用方业务编码
"CallId":"MM", //必须,调用的单据识别号,"MM":表示成品缴库单
"DepNo":"SCB", //非必须,部门代号
"SalNo":"CG001", //非必须,业务员代号
"Rem":"这是表头备注", //非必须,备注
"UsrNo":"ADMIN", //非必须,制单人,采用账套验证方式获取LoginId时必须
"ExtendProps":{ //非必须,扩展功能,包括表头的其他字段以及用户自定义字段
"WH_CL":"003" //字段名需与数据库表名一致
}
},
"BodyData":[ //必须,表身数据
{
"BilNo":"MO0C220001", //必须,转入来源单单号,制令单号
"PrdNo":"CP1", //非必须,货品代号
"WhNo":"001", //非必须,仓库代号
"BatNo":"PH01", //非必须,批号
"PrdMark":"TZ01", //非必须,特征
"PrdLoc":"CW01", //非必须,储位
"Unit":"1", //非必须,单位
"Qty":3, //非必须,主数量
"Qty1":6, //非必须,副数量
"Rem":"这是表身摘要", //非必须,摘要
"IsDelete":"F", //非必须,删除行,传入该值为T代表删除原单据表身对应PRE_ITM列,不删除行时无需添加
"ExtendProps":{ //非必须,扩展功能,包括表身的其他字段以及用户自定义字段
"Valid_DD":"2020-12-23" //字段名需与数据库表名一致
}
}
]
}
转入来源:生产缴库验收(验收合格、强制缴库)
{
"HeadData":{ //必须,表头数据
"EntryOrderId":"WMS00001", //非必须,调用方业务编码
"CallId":"MM", //必须,调用的单据识别号,"MM":表示成品缴库单
"DepNo":"SCB", //非必须,部门代号
"SalNo":"CG001", //非必须,业务员代号
"Rem":"这是表头备注", //非必须,备注
"UsrNo":"ADMIN", //非必须,制单人,采用账套验证方式获取LoginId时必须
"ExtendProps":{ //非必须,扩展功能,包括表头的其他字段以及用户自定义字段
"WH_CL":"003" //字段名需与数据库表名一致
}
},
"BodyData":[ //必须,表身数据
{
"BilNo":"TP36250004", //必须,转入来源单单号,生产缴库验收单号
"BilId":"TP", //必须,验收单类别
"BilItm":1, //合格来源项次,与LostItm有且只有一个非空,TF_TY的PRE_ITM
"LostItm":1, //强制缴库来源项次,与BilItm有且只有一个非空,TF_TY1的PRE_ITM
"PrdNo":"CP1", //非必须,货品代号
"WhNo":"001", //非必须,仓库代号
"BatNo":"PH01", //非必须,批号
"PrdMark":"TZ01", //非必须,特征
"PrdLoc":"CW01", //非必须,储位
"Unit":"1", //非必须,单位
"Qty":3, //非必须,主数量
"Qty1":6, //非必须,副数量
"Rem":"这是表身摘要", //非必须,摘要
"IsDelete":"F", //非必须,删除行,传入该值为T代表删除原单据表身对应PRE_ITM列,不删除行时无需添加
"ExtendProps":{ //非必须,扩展功能,包括表身的其他字段以及用户自定义字段
"Valid_DD":"2020-12-23" //字段名需与数据库表名一致
}
}
]
}
转入来源:返工返修验收(验收合格、强制缴库)
{
"HeadData":{ //必须,表头数据
"EntryOrderId":"WMS00001", //非必须,调用方业务编码
"CallId":"MM", //必须,调用的单据识别号,"MM":表示成品缴库单
"DepNo":"SCB", //非必须,部门代号
"SalNo":"CG001", //非必须,业务员代号
"Rem":"这是表头备注", //非必须,备注
"UsrNo":"ADMIN", //非必须,制单人,采用账套验证方式获取LoginId时必须
"ExtendProps":{ //非必须,扩展功能,包括表头的其他字段以及用户自定义字段
"WH_CL":"003" //字段名需与数据库表名一致
}
},
"BodyData":[ //必须,表身数据
{
"BilNo":"TJ36250004", //必须,转入来源单单号,返工返修验收单号
"BilId":"TJ", //必须,验收单类别
"BilItm":1, //合格来源项次,与LostItm有且只有一个非空,TF_TY的PRE_ITM
"LostItm":1, //强制缴库来源项次,与BilItm有且只有一个非空,TF_TY1的PRE_ITM
"PrdNo":"CP1", //非必须,货品代号
"WhNo":"001", //非必须,仓库代号
"BatNo":"PH01", //非必须,批号
"PrdMark":"TZ01", //非必须,特征
"PrdLoc":"CW01", //非必须,储位
"Unit":"1", //非必须,单位
"Qty":3, //非必须,主数量
"Qty1":6, //非必须,副数量
"Rem":"这是表身摘要", //非必须,摘要
"IsDelete":"F", //非必须,删除行,传入该值为T代表删除原单据表身对应PRE_ITM列,不删除行时无需添加
"ExtendProps":{ //非必须,扩展功能,包括表身的其他字段以及用户自定义字段
"Valid_DD":"2020-12-23" //字段名需与数据库表名一致
}
}
]
}
转入来源:制成品检验(验收合格、强制缴库)
{
"HeadData":{ //必须,表头数据
"EntryOrderId":"WMS00001", //非必须,调用方业务编码
"CallId":"MM", //必须,调用的单据识别号,"MM":表示成品缴库单
"DepNo":"SCB", //非必须,部门代号
"SalNo":"CG001", //非必须,业务员代号
"Rem":"这是表头备注", //非必须,备注
"UsrNo":"ADMIN", //非必须,制单人,采用账套验证方式获取LoginId时必须
"ExtendProps":{ //非必须,扩展功能,包括表头的其他字段以及用户自定义字段
"WH_CL":"003" //字段名需与数据库表名一致
}
},
"BodyData":[ //必须,表身数据
{
"BilNo":"QM36250004", //必须,转入来源单单号,验收单号
"BilId":"QM", //必须,验收单类别
"ForceId":"T", //必须,是否强制缴库
"PrdNo":"CP1", //非必须,货品代号
"WhNo":"001", //非必须,仓库代号
"BatNo":"PH01", //非必须,批号
"PrdMark":"TZ01", //非必须,特征
"PrdLoc":"CW01", //非必须,储位
"Unit":"1", //非必须,单位
"Qty":3, //非必须,主数量(由于ERP流程控制,数量建议保持与来源数量一致,不支持多次缴库)
"Qty1":6, //非必须,副数量(由于ERP流程控制,数量建议保持与来源数量一致,不支持多次缴库)
"Rem":"这是表身摘要", //非必须,摘要
"IsDelete":"F", //非必须,删除行,传入该值为T代表删除原单据表身对应PRE_ITM列,不删除行时无需添加
"ExtendProps":{ //非必须,扩展功能,包括表身的其他字段以及用户自定义字段
"Valid_DD":"2020-12-23" //字段名需与数据库表名一致
}
}
]
}

添加序列号

无来源需添加SeqData、有来源直接取来源单的序列号
{
"HeadData":{
"EntryOrderId":"WMS00001",
"CallId":"MM",
"DepNo":"SCB"
},
"BodyData":[
{
"BilNo":"MO0C220001", //必须,转入来源单单号,制令单号
"PrdNo":"XLH", //必须,序列号货品
"Qty":2, //必须,需要和序列号数量总和相等
"ExtendProps":{
"SEQ_ITM":1 //必须,需要对应SeqData中的"SEQ_ITM"
}
}
],
"SeqData": [ //必须,序列号数据
{
"SEQ_NO": "A01", //必须,序列号
"SEQ_ITM": 1, //必须,需要对应"BodyData""ExtendProps"中的"SEQ_ITM"
"QTY": 1 //必须,数量,固定为1
},
{
"SEQ_NO": "A02", //必须,序列号
"SEQ_ITM": 1, //必须,需要对应"BodyData""ExtendProps"中的"SEQ_ITM"
"QTY": 1 //必须,数量,固定为1
}
]
}

返回的JSON

{
"EntryOrderId": "WMS00001", //调用方业务编码
"CallID": "MM", //调用的单据识别号
"CallNO": "MM0C240001", //生成的单据号码
"CallOK": "T", //执行是否成功, 是:"T" 否:"F"
"Data": "{\r\n \"TF_TABNAME\": \"TF_MM\",\r\n \"BIL_ITM\": \"0\",\r\n \"MF_TABNAME\": \"MF_MM\",\r\n \"BIL_NO\": \"MM0C240001\",\r\n \"BIL_ID\": \"MM\"\r\n}", //单据信息,JOSN字符串格式
"ErrorStr": "" //错误信息
}

| 备注

必须在Headers里面传入用户登录或账套验证的LoginId。

当采用的是账套验证获取的LoginId,那么HeadData中UsrNo就是制单人,不能为空。采用用户登录的LoginId则无需添加UsrNo,用户即制单人。

Body中JSON字段,尽量不要添加赋空值的字段。

ExtendProps中为拓展字段,需要对应数据库表的字段,自定义字段同样在这里处理。

统一字段与接口所需数据库表字段重复时,只取统一字段的值。

接口程序不处理审核,没有审核流直接终审,有审核流就处于未审状态。

可查看后台表LOG_BILLSAVE查看执行信息。

当HeadData中EntryOrderId不为空时,可查看后台表LOG_OTHERSAVE查看单据关联信息。

EntryOrderId:为同一次调用动作的唯一ID,全局唯一,建议采用随机uuid/guid;例如调用方请求第一次时,无响应信息或者响应错误后再请求一次时,该EntryOrderId应相同,为同一次调用动作。相反,调用方第一次调用返回成功信息后,删除了单据(无论删除ERP单据还是调用方单据),再重新调用一次,此时EntryOrderId是不能与没删除前的EntryOrderId相同。简而言之,只要调用接口返回成功信息后的EntryOrderId就不能再重复调用。