aiM18开发者中心 aiM18开发者中心
文档主页
  • 平台

    • 平台总体概述
    • 前端开发须知
    • 后台开发须知
    • EBI开发须知
    • JSF组件属性表
    • BPM扩展接口
    • 一查到底扩展接口
    • 手机App设置
  • ERP

    • ERP 后端扩展
    • ERP 应用配置
    • ERP 前端扩展
  • 教程

    • 设置Eclipse开发环境
    • 创建App教程
  • 平台相关

    • API授权
    • 通用的数据对象
    • 核心的API
    • EBI相关接口
  • 企业资源规划
  • 人力资本管理
  • 业务流程处理
  • 日程管理
  • 文档管理
  • 教程

    • 通过API与aiM18进行交互
教程
GitHub (opens new window)
文档主页
  • 平台

    • 平台总体概述
    • 前端开发须知
    • 后台开发须知
    • EBI开发须知
    • JSF组件属性表
    • BPM扩展接口
    • 一查到底扩展接口
    • 手机App设置
  • ERP

    • ERP 后端扩展
    • ERP 应用配置
    • ERP 前端扩展
  • 教程

    • 设置Eclipse开发环境
    • 创建App教程
  • 平台相关

    • API授权
    • 通用的数据对象
    • 核心的API
    • EBI相关接口
  • 企业资源规划
  • 人力资本管理
  • 业务流程处理
  • 日程管理
  • 文档管理
  • 教程

    • 通过API与aiM18进行交互
教程
GitHub (opens new window)
  • Web 服务教程
  • 搜索
  • 创建模块数据
  • 修改模块数据
    • 引言
    • 目的
    • 场景
    • 读取模块单据
    • 更新模块单据
    • 最佳做法
    • FAQ
  • 检查库存量
  • 未完成应付/应收
  • Web Services Tutorial
Multiable
2024-01-09
目录

修改模块数据

版本: 1.2 | 发布日期: 07/02/2024

# 引言

在任何现代交易系统中,修改数据总是不可避免的。

提供灵活的编辑环境对于增强用户体验至关重要。

# 目的

阅读本章后,你应该能够:

  1. 读取模块单据
  2. 更新模块单据

# 场景

Chris 的 ABC 水果公司网上商店经营得很好。

在客户需要更改订单时,他希望能够改善用户体验。

客户要求取消订单时必须致电 Chris,以便更正订单内容。

Chris 希望在网上商店中实现编辑功能。

Chris 设计了如下布局,用户可以通过点击不同的 订单编号来查看销售订单的详细信息。

wst18

根据以往的经验,Chris 可以使用搜索服务列出已保存的订单列表。

但如何显示订单的产品信息呢?

为了实现这一目标,我们需要调用 读取实体服务。

# 读取模块单据

HTTP 请求

GET http://[server]/jsf/rfws/entity/read/[module]?menuCode=[menuCode]&id=[id]

参数

名字 类型 说明
authorization String(Header) 必填. 通过 OAuth 获取的访问令牌
client_id String(Header) 必填. aiM18 授权应用列表中的Client ID
module String(Path) 必填. 模块类型,例如‘员工’,可以在数据字典中找到
menuCode String(Query) 必填. 菜单编号,例如‘员工’,可以在数据字典中找到
id long(Query) 必填. 实体ID
param json String(Query) 特殊操作的附加参数
iRev int(Query) 如果要读取实体的旧版本,请设置此值。如果要读取已删除实体,请设置已删除实体的 id 和 iRev。

该服务有三个必需参数,分别是module,menuCode和id。

对于 id 参数,请参考通过编号获取 Id Web 服务或搜索数据。

在这种场景下,id应包含在用于显示销售订单列表的搜索响应中。

wst19

获取 Id = 2 的销售订单信息的请求示例

GET
http://[server]/jsf/rfws/entity/read/oldso?menuCode=oldso&id=2

响应示例

"mainso":"{
       "size":1,
       "values":[
		   {
			"id":2, "iRev":1, "code":"SO002", ...
		   }
        ]
},
"sot":"{
       "size":4,
       "values":[
		   {
			"id":3, "hId":2, "itemNo":"     1, "proId": 3, "bDesc":"Peach", "qty":5.0, ...
			"id":4, "hId":2, "itemNo":"     2, "proId": 1, "bDesc":"Apple", "qty":21.0, ...
			"id":5, "hId":2, "itemNo":"     3, "proId": 4, "bDesc":"Orange", "qty":10.0, ...
			"id":6, "hId":2, "itemNo":"     4, "proId": 1, "bDesc":"Apple", "qty":5.0, ...
		   }
       ]
}

读取现有订单并不是结束。当客户更改内容时,我们需要更新订单。

我们通过调用保存实体服务来实现这一点。

# 更新模块单据

保存实体服务能够执行两项功能,首先创建模块单据,其次更新已经存在的模块单据。

关于模块单据的创建,前面我们已经有完整的例子,请参考创建模块数据。

那么系统如何判断该调用是添加还是修改模块单据呢?

答案是id。

系统将检查请求是否包含 id 信息,以及 id 信息是否与数据库中的记录相对应。

# 最佳做法

每次要修改一个已经存在的模块单据时,都要先读取它,然后直接在 SqlEntity 中修改它,然后调用 保存实体服务 保存它。

# FAQ

1.是否有其他方法来确定该保存操作是创建新记录还是修改现有记录?

对于ERP相关的应用程序接口,答案是肯定的。

code是 aiM18 记录中的另一个重要字段。将此字段指定为唯一的用户可确保code不会重复。

存储具有相同code的记录将被视为更新。

Last Updated: 2025/05/21, 05:03:43
创建模块数据
检查库存量

← 创建模块数据 检查库存量→

Theme by Vdoing | Copyright © 1990-2025 Multiable | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式