我添加了一个复选框在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错误:更新操作不允许跨公司。
该错误是明确的。你不能这样做 crossCompany
和 updates
在同一个选择查询中。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");