0

在 JD Edward 的 One World (E1) 包中,是否可以使用内置的更新表函数来更新也用于 where 子句的特定字段?

用例是我正在执行一个批处理过程,该过程循环遍历一系列“未处理”记录,并在处理它们之后更新表以显示“已处理”状态。共有三种状态(已处理、未处理和已忽略)。在我的更新过程中,我不能简单地将所有标志更新为“已处理”,而不会意外更新标记为“已忽略”的标志。

 If PO cProcessedFlag is equal to "U"
    Table1.Select
    Table1.Fetch Next
    While SV File_IO_Status is equal to CO SUCCESS
    ...
    Table1.Fetch Next
    End While
 End If
 Table1.Update 

我需要能够在此处更新已处理的字段(Table1.Update),同时还能够指定该字段不是“I”的位置。

4

1 回答 1

0

您可以同时选择和更新记录。这样做没问题(假设DOCO是Table1的主键):

Table1.Select
    PO cProcessedFlag = BC cProcessedFlag
Table1.Fetch Next
    VA mnOrderNumber[DOCO] <- BC mnOrderNumber[DOCO]

While SV File_IO_Status is equal to CO SUCCESS
    ...
    Table1.Update
        VA mnOrderNumber[DOCO] = VA mnOrderNumber[DOCO]
        “P” -> BC cProcessedFlag

    Table1.Fetch Next
        VA mnOrderNumber[DOCO] <- BC mnOrderNumber[DOCO]
End While

当您在 ER 中编写代码时,中间件实际上会对每个 tableIO 执行打开、选择、关闭等操作。所以第二个 Table1.FetchNext 的句柄与为 Table1.Update 生成的打开、选择、更新、关闭非常不同

于 2013-12-28T10:00:03.607 回答