单据确认
| 基本信息
| 信息 | 值 | 备注 |
|---|---|---|
| 接口名称 | 单据确认 | 根据单据ID和单号来确认单据 |
| 请求状态 | POST | RESTful方式 |
| 接口路径 | 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-Type | 是 | application/json | 用于指定数据的传输类型 |
| LoginId | 是 | e835943e-55c2-4bf0-832d-6f4166592941 | 用户登录的LoginId,取用户登录或账套验证接口返回的LoginId |
| sn | 否 | MGR_REST_1001 | 远程模式需添加sn参数,MGR_REST_ERP注册号 |
Body
| 参数名称 | 类型 | 是否必须 | 参数值 | 备注 | 其它信息 |
|---|---|---|---|---|---|
| HeadData | object | 是 | 表头数据 | ||
| EntryOrderId | string | 否 | WMS00001 | 调用方业务编码 | 调用方唯一编码,关联ERP单据,且避免重复提交,当提交的EntryOrderId重复时返回提示。为空则没有该项检测 |
| CallId | string | 是 | PC | 调用的单据识别号 | "PC":表示采购入库单 |
| CallNo | string | 是 | PC0C240001 | 调用的单据号码 | 传入该值代表修改原单据信息 |
| ConfirmId | string | 是 | "CF0000001" | 表头确认标识 | 调用方确认单号,如果没有确认单号可传T值,ERP控制该值不为空时不能操作已确认数据,表头确认标识为控制整张单据 |
| UsrNo | string | 否 | ADMIN | 制单人 | 账套验证的LoginId需添加UsrNo,用户登录的LoginId则无需添加UsrNo |
| BodyData | object [] | 是 | 表身数据 | item 类型: object | |
| CallItm | number | 是 | 1 | 原单项次 | HeadData中CallNo存在并有值时才生效,传入该值代表修改原单据表身对应PRE_ITM列的信息 |
| Qty | number | 是 | 3 | 主数量 | 确认数量 |
| IsDelete | string | 否 | F | 删除行 | CallItm存在并有值时才生效,传入该值为T代表删除原单据表身对应PRE_ITM列,不删除行时无需添加 |
| IsAccrual | string | 否 | F | 累加数量 | 传入该值为T代表累加数量,例如原来为数量为3,传入Qty为6,最后结果为9。传入Qty为负数就是相减 |
| ConfirmId | string | 是 | "CF0000001" | 表身确认标识 | 调用方确认单号,如果没有确认单号可传T值,ERP控制该值不为空时不能操作已确认数据,表身确认标识为控制该行数据 |
| 返回数据
| 参数名称 | 类型 | 参数值 | 备注 |
|---|---|---|---|
| EntryOrderId | string | WMS00001 | 调用方业务编码 |
| CallID | string | PC | 调用的单据识别号 |
| CallNO | string | PC0C240001 | 生成的单据号码 |
| CallOK | string | T | 执行是否成功, 是:"T" 否:"F" |
| Data | string | "TF_TABNAME": "TF_PSS", "BIL_ITM": "0", "MF_TABNAME": "MF_PSS", "BIL_NO": "PC0C240001", "BIL_ID": "PC" | 单据信息,JSON字符串格式 |
| ErrorStr | string | 错误信息 |
| 调用范例
Request
{
"HeadData":{ // 必须,表头数据
"EntryOrderId":"WMS00001", // 非必须,调用方业务编码
"CallId":"PC", // 必须,调用的单据识别号,"PC":表示采购入库单
"CallNo":"PC0C240001", // 必须,调用的单据号码,传入该值代表修改原单据信息
"ConfirmId":"CF0000001", // 必须,ERP控制该值不为空时不能操作已确认数据,表头确认标识为控制整张单据
"UsrNo":"ADMIN" // 非必须,制单人,采用账套验证方式获取LoginId时必须
},
"BodyData":[ // 必须,表身数据
{
"CallItm":1, // 必须,原单项次,传入该值代表修改原单据表身对应PRE_ITM列的信息
"Qty":3, // 必须,确认数量
"IsDelete":"F", // 非必须,删除行,传入该值为T代表删除原单据表身对应PRE_ITM列,不删除行时无需添加
"IsAccrual":"F", // 非必须,累加数量,传入该值为T代表累加数量,Qty为负数就是相减
"ConfirmId":"CF0000001" // 必须,ERP控制该值不为空时不能操作已确认数据,表身确认标识为控制该行数据
}
]
}
Response
{
"EntryOrderId": "WMS00001", // 调用方业务编码
"CallID": "PC", // 调用的单据识别号
"CallNO": "PC0C240001", // 生成的单据号码
"CallOK": "T", // 执行是否成功,是:"T" 否:"F"
"Data": "{\r\n \"TF_TABNAME\": \"TF_PSS\",\r\n \"BIL_ITM\": \"0\",\r\n \"MF_TABNAME\": \"MF_PSS\",\r\n \"BIL_NO\": \"PC0C240001\",\r\n \"BIL_ID\": \"PC\"\r\n}", // 单据信息,json字符串格式
"ErrorStr": "" // 错误信息
}
| 备注
- 必须在Headers里面传入用户登录或账套验证的
LoginId。 - 当采用的是账套验证获取的LoginId,那么HeadData中UsrNo就是制单人,不能为空。采用用户登录的LoginId则无需添加UsrNo,用户即制单人。
- 接口程序不处理审核,没有审核流直接终审,有审核流就处于未审状态。
- 可查看后台表
LOG_BILLSAVE查看执行信息。 - 当HeadData中
EntryOrderId不为空时,可查看后台表LOG_OTHERSAVE查看单据关联信息。
EntryOrderId
EntryOrderId:为同一次调用动作的唯一ID,全局唯一,建议采用随机uuid/guid;例如调用方请求第一次时,无响应信息或者响应错误后再请求一次时,该EntryOrderId应相同,为同一次调用动作。相反,调用方第一次调用返回成功信息后,删除了单据(无论删除ERP单据还是调用方单据),再重新调用一次,此时EntryOrderId是不能与没删除前的EntryOrderId相同。简而言之,只要调用接口返回成功信息后的EntryOrderId就不能再重复调用。