跳到主要内容

保存销售订单变更作业

销售订单变更作业存盘接口

| 基本信息

信息备注
接口名称销售订单变更作业保存根据单据ID来新增单据(包括修改)
请求状态POSTRESTful方式
接口路径http://localhost:23798/api/Bill/SaveBill向服务器地址发送POST请求
远程模式http://www.linkerplus.com/api/ext_erp/Bill/SaveBill远程模式向服务器地址发送POST请求,需要ERP注册号注册远程模式,并在Headers添加sn参数
支持日期2020-12-21自该日期起支持

| 请求参数

Headers

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

Body

参数名称类型是否必须参数值备注其它信息
HeadDataobject必须表头数据
EntryOrderIdstringWMS00001调用方业务编码调用方唯一编码,关联ERP单据,且避免重复提交,当提交的EntryOrderId重复时返回提示。为空则没有该项检测
CallIdstring必须PN调用的单据识别号"PN":表示销售订单变更作业
CallNostringPN2025B190001调用的单据号码传入该值代表修改原单据信息,新增数据时无需添加
Remstring这是表头原因原因、备注
UsrNostringADMIN制单人账套验证的LoginId需添加UsrNo,用户登录的LoginId则无需添加UsrNo
ExtendPropsobject"SAL_NO":"220001",
"ZDY": "自定义"
表头扩展功能包括表头的其它字段以及用户自定义字段,字段名需与数据库表(MF_PM)中的栏位名称一致
NotUseAuditFlowstringT/F跳过审核流程,自动审核。默认不跳过当传"T"时,该单据通过接口生成时,不考虑审核流程,直接自动终审
BodyDataarray必须表身数据item 类型: array
CallItmnumber修改时必须1原单项次HeadData中CallNo存在并有值时才生效,传入该值代表修改原单据表身对应PRE_ITM列的信息,新增数据时无需添加
ChgIdstring新增时必须3变更方式新增时必须,变更方式,"1":新增、"2":删除、"3":修改、"4":结案、"5":反结案
BilNostring新增时必须SO0C220001需变更的单据号码新增时必须,单据号码
OldPrdNostring新增时必须CSK01原品号新增时必须,原品号
PrdNostring新增时必须YL1现品号新增时必须,现品号
WhNostring新增时必须003仓库代号
BatNostringPH01批号
PrdMarkstringTZ01特征
PrdLocstringCW01储位
Qtynumber新增时必须3主数量新增时必须
Qty1number6副数量
Upnumber2主单价有定价政策或历史价格时非必须
Amtnumber1现金额
TaxRtonumber13.0税率
DisCntnumber9折扣
Remstring这是表身摘要摘要
IdNostring配方号配方号
IsDeletestringF删除行CallItm存在并有值时才生效,传入该值为T代表删除原单据表身对应PRE_ITM列,不删除行时无需添加
ExtendPropsobject"EST_DD":"2020-12-23",
"ZDY": "自定义",
"SEQ_ITM":1
表身扩展功能包括表身的其它字段以及用户自定义字段,字段名需与数据库表(TF_PM)中的栏位名称一致

| 返回数据

参数名称类型参数值备注
EntryOrderIdstringWMS00001调用方业务编码
CallIDstringPN调用的单据识别号
CallNOstringPN0C240001生成的单据号码
CallOKstringT执行是否成功, 是:"T" 否:"F"
Datastring"TF_TABNAME": "TF_PM",
"BIL_ITM": "0",
"MF_TABNAME": "MF_PM",
"BIL_NO": "PN0C240001",
"BIL_ID": "PN"
单据信息,JSON字符串格式
ErrorStrstring错误信息

| 调用范例

Request

{
"HeadData": { //必须,表头数据
"EntryOrderId": "WMS00001", //非必须,调用方业务编码
"CallId": "PN", //必须,调用的单据识别号,"PN":表示销售订单变更作业
"CallNo": "PN2025B190001", //非必须,调用的单据号码,传入该值代表修改原单据信息,新增数据时无需添加
"Rem": "这是表头原因", //非必须,表头原因
"NotUseAuditFlow": "T", //"T"、"F"跳过审核流程,自动审核。默认不跳过。当传"T"时,该单据通过接口生成时,不考虑审核流程,直接自动终审
"UsrNo": "ADMIN", //非必须,制单人,登录接口采用账套验证方式时必须
"ExtendProps": { //非必须,扩展功能,包括表头的其他字段以及用户自定义字段
"SAL_NO": "SA0001" //字段名需与数据库表(MF_PM)中的栏位名称一致
}
},
"BodyData": [ //必须,表身数据
{
"CallItm": 1, //非必须,原单项次,传入该值代表修改原单据表身对应PRE_ITM列的信息,新增数据时无需添加
"ChgId": "3", //新增时必须,变更方式,"1":新增、"2":删除、"3":修改、"4":结案、"5":反结案
"BilNo": "SO2025B190001", //新增时必须,销售订单单据号码
"EstItm": 1, // //新增时必须,销售订单表身项次,自2025-11-21后补丁包支持。传了该值无需在ExtendProps中传EST_ITM
"OldPrdNo": "CSK01", //新增时必须,原品号
"PrdNo": "YL0001", //新增时必须,现品号
"WhNo": "003", //非必须,仓库代号
"BatNo": "PH0001", //非必须,批号
"PrdMark": "TZ0001", //非必须,特征
"PrdLoc": "CW0001", //非必须,储位
"Qty": 3.5, //必须,主数量
"Qty1": 6.5, //非必须,副数量
"Up": 2, //非必须,单价
"Amt": 200.5, //非必须,现金额
"TaxRto": 13.0, //非必须,税率
"DisCnt": 12.8, //非必须,折扣
"IdNo": "", //非必须,配方号
"Rem": "这是表身摘要", //非必须,摘要
"ExtendProps": { //非必须,扩展功能,包括表身的其他字段以及用户自定义字段
"EST_DD": "2020-12-23", //字段名需与数据库表(TF_PM)中的栏位名称一致
"EST_ITM": 1 //新增时必须,销售订单表身项次,2025-11-21之前的程序通过这个方式指定销售订单表身项次
}
}
]
}

Response

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

| 备注

  • 必须在Headers里面传入用户登录或账套验证的LoginId
  • 当采用的是账套验证获取的LoginId,那么HeadData中UsrNo就是制单人,不能为空。采用用户登录的LoginId则无需添加UsrNo,用户即制单人。
  • Body中JSON字段,尽量不要添加赋空值的字段。
  • ExtendProps中为拓展字段,需要对应数据库表的字段,自定义字段同样在这里处理。
  • 统一字段与接口所需数据库表字段重复时,只取统一字段的值。
  • 接口程序不处理审核,没有审核流直接终审,有审核流就处于未审状态。
  • 可查看后台表LOG_BILLSAVE查看执行信息。
  • 当HeadData中EntryOrderId不为空时,可查看后台表LOG_OTHERSAVE查看单据关联信息。
EntryOrderId

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