在所有公司中标记复选框 AX2012
Mark checkbox in all companies AX2012
我在 PurchParameters table 中添加了一个名为 setExchRateVal 的复选框,我想在没有 sql 操作的所有公司中将此字段标记为 true。
如何在 AX 中使用作业执行此操作?
我试过了,但还没有完成,
PurchParameters purchParameters ;
while select forUpdate crossCompany purchParameters
{
purchParameters.setExchRateVal = NoYes::Yes;
purchParameters.update();
//info(strFmt("%1 - %2", purchParameters.SetExchRateVal, purchParameters.dataAreaId));
}
AX 错误:
不允许跨公司进行更新操作。
错误很明显。您不能在同一个 select 查询中执行 crossCompany
和 updates
。 Method 2
下面更接近您的操作。更新参数 tables 时,由于 table.
上的 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");
我在 PurchParameters table 中添加了一个名为 setExchRateVal 的复选框,我想在没有 sql 操作的所有公司中将此字段标记为 true。
如何在 AX 中使用作业执行此操作?
我试过了,但还没有完成,
PurchParameters purchParameters ;
while select forUpdate crossCompany purchParameters
{
purchParameters.setExchRateVal = NoYes::Yes;
purchParameters.update();
//info(strFmt("%1 - %2", purchParameters.SetExchRateVal, purchParameters.dataAreaId));
}
AX 错误: 不允许跨公司进行更新操作。
错误很明显。您不能在同一个 select 查询中执行 crossCompany
和 updates
。 Method 2
下面更接近您的操作。更新参数 tables 时,由于 table.
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");