对象结构入站处理的上下文 API
上下文 (ctx) 是一个对象,它为自动化脚本提供用于传递数据或触发操作的便捷方法。此上下文受双向支持。预定义的 API 可供上下文使用,每个函数可以使用不同的上下文。
自动化脚本需要上下文方法来实现处理逻辑。上下文在对象结构处理和实现定制逻辑的自动化脚本之间传递。下表显示上下文 API 和每个函数的 API 常见用法:
| 上下文 API | beforeProcess (ctx) |
beforeCreateMBOSet (ctx) |
afterCreateMboSet (ctx) |
mboRules (ctx) |
beforeMboData (ctx) |
afterMboData (ctx) |
preSaveRules (ctx) |
changeStatus (ctx) |
|---|---|---|---|---|---|---|---|---|
| ctx.setMsgType() | ✓ | |||||||
| ctx.getProcessTable() | ✓ | ✓ | ✓ | ✓ | ✓ | |||
| ctx.setProcessTable(String ProcessTable) | ✓ | |||||||
| ctx.setMboSet(MboSet mboSet) | ✓ | |||||||
| ctx.setMbo(Mbo mbo) | ✓ | |||||||
| ctx.getData() | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| ctx.getMosDetailInfo() | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |
| ctx.setSkipBaseAdditionalRules() | ✓ | |||||||
| ctx.skipMbo() | ✓ | |||||||
| ctx.skipTxn() | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| ctx.complete() | ✓ | |||||||
| ctx.process() | ✓ | |||||||
| ctx.getUserInfo() | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| ctx.getParentMbo() | ✓ | ✓ | ✓ | ✓ | ✓ | |||
| ctx.isPrimary() | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |
| ctx.bypassMbo() | ✓ | |||||||
| ctx.getMsgType() | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| ctx.getPrimaryMboSet() | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ||
| ctx.getPrimaryMbo() | ✓ | ✓ | ✓ | ✓ | ||||
| ctx.processAsUpdate() | ✓ | |||||||
| ctx.processAsAdd() | ✓ | |||||||
| ctx.processAsAddAtEnd() | ✓ | |||||||
| ctx.log() | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
以下 API 可用于入站数据处理:
- ctx.getMosDetailInfo()
- 为所处理对象结构的集成框架提供与数据字典高速缓存有关的信息。
- ctx.skipMbo()
- 跳过 Maximo® 业务对象处理。
- ctx.skipTxn()
- 跳过整个事务(例如消息)的处理。
- ctx.complete()
- 在执行点结束对象结构处理,这意味不处理子数据。
- ctx.process()
- 在执行点继续处理。此 API 通常用作条件逻辑的一部分。
- ctx.getParentMbo()
- 检索父业务对象。可从尚未创建其业务对象的子对象创建此 API。
- ctx.isPrimary()
- 确定当前业务对象是否是对象结构的根级业务对象。
- ctx.getUserInfo()
- 检索脚本创建新业务对象时所需的用户信息。
- ctx.bypassMbo()
- 绕过业务对象创建并继续所处理的下一个业务对象。
- ctx.getMsgType()
- 提供对消息类型(例如 Sync 或 Create)的访问。
- ctx.setMsgType()
- 设置消息类型,例如 Sync 或 Create。可以在处理开始之前使用此 API。
- ctx.getData()
- 提供对 StructureData(即 XML 消息)的访问。
- ctx.setMboSet(MboSet mboSet)
- 设置业务对象集中的值。
- ctx.setMbo(Mbo mbo)
- 设置业务对象中的值。
- ctx.getPrimaryMboSet()
- 在处理子业务对象期间检索对象结构的根业务对象。
- ctx.setProcessTable(String processTable)
- 设置进程表。如果您有一个非持久性业务对象(例如 MXRECEIPT),该对象具有用于确定是更新了 MATRECTRANS 表还是 SERVRECTRANS 表的处理逻辑,请使用此方法。ctx.setProcessTable(String processTable) API 在 beforeProcess(ctx) 函数中使用。
- ctx.getProcessTable()
- 检索 ctx.setProcessTable(String processTable) API 设置的表名。
- ctx.setSkipBaseAdditionalRules()
- 在 preSaveRules(ctx) 函数中添加定制逻辑,用于在处理中对现已准备就绪的已完成对象结构进行操作。
- ctx.processAsUpdate()
- 将业务对象的处理操作设置为 Update 操作,而非 Add 或 Delete 操作。
- ctx.processAsAdd()
- 将业务对象的处理操作设置为 Add 操作,而非 Update 或 Delete 操作。
- ctx.processAsAddAtEnd()
- 将业务对象的处理操作设置为 Add 操作,而非 Update 或 Delete 操作,并在集合结尾而非集合开头处创建业务对象。
- ctx.log()
- 从对象结构处理上下文创建日志语句。