用友NC65 Rest接口开发实战:从登录认证到存量查询
1. 用友NC65 Rest接口开发入门指南第一次接触用友NC65的Rest接口时我也是一头雾水。作为企业级ERP系统NC65提供了丰富的接口能力但官方文档往往晦涩难懂。经过几个项目的实战积累我发现用Postman调试Rest接口是最快上手的方式。用友NC65的Rest接口主要分为两类系统管理接口和业务模块接口。系统管理接口包括用户认证、权限校验等基础功能业务模块接口则覆盖供应链、财务等具体业务场景。我们今天要重点讲解的现存量查询就属于供应链模块的核心接口之一。在开始之前你需要准备以下环境可访问的NC65系统环境通常部署在内网Postman工具推荐使用9.0以上版本有效的NC65账号需要查询权限目标数据源名称design是默认开发环境2. 登录认证获取user_token2.1 认证接口详解所有Rest接口调用的第一步都是获取user_token。这个令牌相当于临时通行证后续每个请求都需要携带。认证接口地址为uapws/rest/user/login采用POST方式提交JSON格式的账号密码。我遇到过不少开发者在这里踩坑最常见的问题是直接复制接口地址却忘记修改协议头。NC65的Rest接口必须使用HTTPS协议完整的请求URL应该是这样的https://your-nc-server.com/uapws/rest/user/login请求体示例{ usercode: your_username, pwd: your_password }2.2 处理认证响应成功的响应会返回三个关键参数{ uap_usercode: ufida, uap_dataSource: design, uap_token: 0000016f5ebdfdc2e60598ccbeeaa623b65637d584085a8bda38b10929a0d0f67d24b8ec70e89a0cf4369e65225be69c5fa85a9998f244f96c7fc0cd5cdc3cc1c2a28573ed6718f79bc9fe7228b3985a40178b26e2743e0d47e723956b25890f4db627390000016f5ebdfdc2 }这里有个实际项目中的经验uap_token的有效期默认是8小时但在高安全要求的场景下可能被管理员调整为更短时间。建议在代码中实现token自动刷新机制避免接口突然报401错误。3. 现存量查询接口实战3.1 接口地址与参数说明现存量查询是供应链模块最常用的接口之一NC65提供了两种查询方式按仓库查询uapws/rest/onhand/warehouse按货位查询uapws/rest/onhand/location以按仓库查询为例请求体需要包含以下参数{ orgcode: 1010103, warehoucecode: 01, materialcodes: [A832372080] }参数说明orgcode组织编码可在NC系统组织架构中查询warehoucecode仓库编码注意拼写是warehouce不是warehousematerialcodes存货编码数组即使查单个物料也要用数组格式3.2 Postman调试技巧在Postman中调试时需要特别注意Headers的设置。除了常规的Content-Type: application/json外必须带上认证阶段获取的三个参数uap_usercode: ufida uap_dataSource: design uap_token: [你的token值]我建议在Postman中创建环境变量把这些固定参数保存起来。具体操作点击右上角的眼睛图标选择Add new environment添加上述三个变量在请求头中用{{uap_token}}方式引用4. 常见问题排查指南4.1 数据源配置问题如果遇到数据源不存在错误通常有两种情况环境没有design数据源需要在Headers中添加uap_dataSource指定实际数据源账号没有该数据源权限联系系统管理员分配权限4.2 参数格式错误现存量查询最容易出错的点是物料编码格式。必须注意物料编码要放在数组中即使只查一个编码值需要与NC系统完全一致区分大小写特殊字符需要URL编码4.3 性能优化建议当查询大量物料时建议分批次查询每次不超过50个物料编码使用缓存减少重复查询必要时联系DBA优化数据库索引5. 进阶开发技巧掌握了基础查询后可以尝试这些进阶用法使用fields参数控制返回字段减少网络传输量通过pageSize和pageNum实现分页查询结合modifiedtime参数实现增量同步在实际项目中我通常会封装一个NC65Client类将token管理、请求重试、异常处理等逻辑集中处理。这样业务代码只需要关注具体的查询参数和结果解析大大提高了开发效率和代码可维护性。