概括
- 本文的操作需要正确部署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中传入接口