我在其他帖子中多次看到这个问题,但还没有解决它。也许你们可以在这里有所启发。
我正在尝试使用Java 对象适配器库 (psjoa.jar)对组件接口“LOCATION”执行更新,但在尝试保存新记录时遇到以下错误:
"No rows exist for the specified keys. {LOCATION} (91,50), Failed to execute PSBusComp request , The highlighted field is required. You must enter a value for it before proceeding.{LOCATION.LOCATION_TBL(1).DESCR} (15,54), Error saving Component Interface. {LOCATION} (91,37), Failed to execute PSBusComp request"
如果记录存在,则不会出现错误,但不会更新位置。我能够通过网络/在线应用程序创建和更新位置,但不能从 CI 执行相同的操作。
这很可能是由表的“生效日期”行为引起的。Application Designer 显示 Location 组件在 Scroll Level 0 和 Scroll Level 1 有一个 LOCATION_TBL 表。下面是我传递给 psjoa.jar 的“invokeMethod(sName, args)”操作的参数:
// level 0
SETID: "SHARE",
LOCATION :"T00001",
// level 1
LOCATION_TBL: {
SETID: "SHARE",
LOCATION :"T00001",
DESCR: "My Test",
DESCR_AC: "TEST",
EFFDT: |2016-03-16|,
EFF_STATUS: "A"
}
例如,我在几个地方读到了有效日期组件可能需要使用 PeopleCode 和/或 SQL 的自定义实现。
我想知道:
- 我是否错误地调用了 CI 操作,传递了错误的参数,没有遵循预期的滚动结构?如果是这样,应该采用哪种方法?
- 我是否必须使用 PeopleCode 自定义更新/插入操作?
- (1) 和 (2) ?
附加信息:
- PeopleTools 8.53.02
- PeopleSoft 人力资源管理系统 9.20.000
- 附件是我的位置 CI 的屏幕截图。