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();
        }
    }
}

 

posted @ 2021-10-25 09:40  一口一个小馒头  阅读(65)  评论(0编辑  收藏  举报