您是否可以使用JD Edwards Update命令更改也是WHERE子句一部分的字段?

时间:2013-12-26 20:30:56

标签: erp jdedwards

在JD Edward的One World(E1)包中,是否可以使用内置的Update表函数来更新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”的位置。

1 个答案:

答案 0 :(得分: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生成的open,select,update,close非常不同