【问题标题】:Component interface failure due to incorrect data由于数据不正确导致组件接口失败
【发布时间】:2021-12-31 10:45:28
【问题描述】:

我创建了一个 PeopleTools 应用程序引擎程序来插入/更新 PS_PERS_NID 表中的员工国民身份证数据。我正在使用 PeopleTools 文件布局定义将数据插入临时表,然后使用 Application Engine Do Select 从说明表中读取数据并通过 PeopleCode 通过 PeopleTools 组件接口 (CI) 定义加载。当数据干净时,它工作正常。我在异常 peoplecode 中编写了一个查询,以使用处理状态和错误消息更新暂存表中的数据。

当我使用无效的 SSN 对其进行测试时,它返回消息 Error changing value,并导致应用程序引擎失败。我在默认创建的 try-catch 块中拥有所有人员代码。

有人可以提供示例逻辑代码吗?我可以在暂存记录中捕获错误消息而无需异常处理。

【问题讨论】:

  • “有人可以提供示例逻辑代码吗?我可以在暂存记录中捕获错误消息而无需异常处理。”?这是问题偏离主题的标志。您应该进行研究,编写代码,然后针对特定问题提出特定问题,而不是要求我们为您编写离题的代码。请阅读“How to Ask”和“minimal reproducible example”及其链接页面。

标签: peoplesoft peoplecode peoplesoft-app-engine


【解决方案1】:

Application Engine Definition 中,您的 Step 是否将“On Error”选项设置为“Abort”?

将其设置为“忽略”或“抑制”并处理人员代码中的错误。

查看Application Engine PeopleBooks 中的“设置属性”部分,了解有关这些选项的更多信息。

【讨论】:

  • 我尝试在组件接口将数据加载到 PS_PERS_NID 表的步骤级别上的“错误”上使用“忽略”。如果我需要添加代码来处理这种情况,请告诉我。
  • 办案?您是否希望插入无效的 SSN,即使它是无效的?设置“忽略”应该忽略错误,并继续下一步。 SSN 显然不会被插入,因为它是无效的。捕获错误是在 catch 语句中完成的。
【解决方案2】:

我采用这种方法来解决这种情况:

  1. 创建新字段以捕获暂存记录中的错误文本。

  2. 在调用组件接口代码之前,请检查提供的 SSN 值是否有效。我使用了交付的功能check_nid。如果该值不满足条件,则将该行标记为“错误”行并在暂存字段中捕获错误文本。

  3. 忽略“错误”行。

【讨论】:

    猜你喜欢
    • 2014-12-05
    • 2014-03-07
    • 2015-09-04
    • 1970-01-01
    • 2010-09-20
    • 2021-01-18
    • 1970-01-01
    • 2019-11-01
    • 2017-06-23
    相关资源
    最近更新 更多