AX2012 从container里获取到的表记录不能直接update
最近遇到一个问题,一个类使用批处理运行的时候总是报错【表记录没有选中】,但是手工在后台运行却没有任何问题。
经过检查是因为从container里面获取到的表记录,不能直接更新,需要声明新的变量来更新,这样在服务端运行的时候才不会报错
public void test(container SalesTableCon) { SalesTable salesTableSel, salesTableForUpdate; int i; ; if(SalesTableCon != conNull()) { for(i = 1; i <= conLen(SalesTableCon); i++) { salesTableSel = conPeek(SalesTableCon, i); select firstOnly forUpdate salesTableForUpdate where salesTableForUpdate.RecId == salesTableSel.RecId; salesTableForUpdate.SalesId = "xxxx"; salesTableForUpdate.update(); } } }