在所有公司的AX2012中打上复选框

问题描述 投票:0回答:1

我添加了一个复选框在PurchParameters表,其名称是setExchRateVal,我想在我的所有公司,没有sql操作标记为真。

我怎么能做到这一点在AX与工作?

我试过了,但它没有完成。

PurchParameters purchParameters ;

while select forUpdate crossCompany purchParameters
{
    purchParameters.setExchRateVal = NoYes::Yes;
    purchParameters.update();
    //info(strFmt("%1 - %2", purchParameters.SetExchRateVal, purchParameters.dataAreaId));
}

AX错误:更新操作不允许跨公司。

axapta x++ dynamics-ax-2012-r3
1个回答
3
投票

该错误是明确的。你不能这样做 crossCompanyupdates 在同一个选择查询中。Method 2 下面的内容更接近你的做法。在更新参数表时,因为有了 Key 在桌子上。

见下文。

PurchParameters purchParametersUpdate;
PurchParameters purchParametersSeek;
DataArea        dataArea;

// Method 1
ttsBegin;
while select dataArea
{
    changeCompany(dataArea.id)
    {
        purchParametersUpdate = PurchParameters::find(true);
        purchParametersUpdate.setExchRateVal = NoYes::Yes;
        purchParametersUpdate.update();
    }
}
ttsCommit;


// Method 2
ttsBegin;
while select crossCompany purchParametersSeek
{
    purchParametersUpdate = null;

    select firstOnly forUpdate purchParametersUpdate
        where purchParametersUpdate.RecId == purchParametersSeek.RecId;

    if (purchParametersUpdate)
    {
        //purchParametersUpdate.setExchRateVal = NoYes::Yes;
        purchParametersUpdate.update();
    }
}
ttsCommit;

info("Done");
© www.soinside.com 2019 - 2024. All rights reserved.