概括
- 本文的操作需要正确部署U8API
- 主要讲述库存管理接口的使用,以产成品入库单作为说明,其他单据接口都是大同小异的!
- 许多时候先在ERP做个单,然后仿造ERP单据参数,构造接口JSON参数是不错的做法。
获取Token访问令牌
- 必须先调用此接口获取token令牌
- 将token放请求头
单据字段来源
- 接口文档上的字段是测试的json数据,并不是说明只能传这些字段到接口
- 字段参考erp数据库、数据字典、api资源管理器
- 实际测试时可以先复制接口文档上的json,粘贴到接口测试工具中,字段微调,传入缺少的字段即可!
- 字段以传入的json数据为准,接口封装时会设置一些字段的默认值。比如接口默认某单据头VTID=1,接口传入为VTID=2,此时值就是2
产成品入库
- 主表rdrecord10,视图RecordInQ、子表rdrecords10,视图RecordInSQ
- 此模块下的接口可以获取单据数据、新增、审核、弃审、删除
新增
无来源
- 对应ERP空白单据,无参照来源
- 这种无上下游的单据,整单关联为空白
- 传入JSON示例
[
{
"Inum": "ProductIn",
"Data": {
"iHead": {
"IsVerify": false,
"cWhCode": "04",
"cRdCode": "12",
"cDepCode": "0501",
"cMemo": "API生成",
"cSource": "库存",
"cBusType": "成品入库",
"dDate": "2023-05-14"
},
"iBody": [
{
"iRowNo": 1,
"cInvCode": "F010-S002",
"iQuantity": 50,
"iNQuantity": 50,
"iinvexchrate": 50,
"iNum": 1,
"iNNum": 1,
"cAssUnit": "0502",
"cPosition": "",
"cBatch": "",
"cFree9":"白色"
}
]
}
}
]
参照生产订单
- 对应ERP的生产订单蓝字
- 传入JSON
有参照的单据,传入JSON单头都有上游单据号,单体都有上游子表单据标识ID
- cMPoCode :传生产订单号
- iMPoIds :生产订单子表标识(MoDId)
[{
"Inum": "ProductIn",
"Data": {
"iHead": {
"IsVerify": true,
"cWhCode": "36",
"cRdCode": "12",
"cDepCode": "0503",
"cMemo": "API生成",
"cSource": "生产订单",
"cBusType": "成品入库",
"cMPoCode": "0000000037",
"dDate": "2023-05-22"
},
"iBody": [{
"iRowNo": 1,
"cInvCode": "B010-0237002",
"cAssUnit": "",
"cPosition": "",
"cBatch": "",
"iinvexchrate": 0,
"iQuantity": 1,
"iNQuantity": 2,
"iNum": 0,
"iNNum": 0,
"iMPoIds": 1000000037
}]
}
}]
审核、弃审、删除
- 这三个动作传参比较简单,传个单据ID即可
- POST请求,传入请求体
{
"VouchId": 0
}
查询
自定义sql查询单据列表
- 此接口类似于ERP的列表查询,通过构造查询条件查询主表视图
- 传入参数构造sql
- customSQLFileName:接口SqlXML文件夹下的U8SQL.xml
- customSQLPath:U8SQL.xml下的节点sql语句
- paramObj:传入的参数,@pagesize非必填默认25,优先级@code>@where>@version传一个值即可。当需要进行高级查询可以自行构建@where字符串传入,此字符串必须AND开头,大小写无关,会检查
{
"customSQLFileName": "U8SQL",
"customSQLPath": "U8API/RdRecord10/Get",
"paramObj": {
"@pagesize": 25,
"@code": "0000000003",
"@where": "AND m.ccode like '%0000000019%' OR m.cmaker like '%demo%'",
"@version": "7108589"
}
}
SqlXML文件夹下的U8SQL.xml
3. sql将会在Log文件夹下Debug.log日志文件中打印
获取单据数据
- 此操作类似于ERP的查询列表中,点击打开单据
- JSON参数
- 通过查询xml节点下的sql,构建查询语句执行,返回dataset序列化返回json
{
"customSQLFileName": "U8SQL",
"customSQLPath": "U8API/RdRecord10/GetWithDetail",
"paramObj": {
"@code": "0000000010"
}
}
返回时DataTable为主表视图,DataTable1为子表视图
常见问题
接口文档字段太少
- ERP单据表字段太多,加上某些字段非必填,接口文档上是测试例子。可以参考erp数据库,数据字典,api资源管理器
不知道某字段传什么值
- 去ERP做个单据,然后查询数据库,将字段放json中传入接口