我想知道如何使用C#(.Net Business Connector)从AX调用内核函数.
具体来说,你可以调用fieldName2Id,tableName2Id和curUserId等方法吗?
如何在MS Dynamics AX 2009中比较两个日期(日期类型的实例,而不是utcDateTime)?
我想检查从表中获取的特定日期是在另一个之前(或之后).两者都是日期类型.
有没有办法将日期转换为utcDateTime数据类型?
我想定期(每4小时)备份一次'仅'动态Axe 2009的源文件,因此,XPO源文件.
我想知道它们的物理存储位置.
我有以下表格,我想根据其他列的值更改列的背景颜色;

在橙色列中,我希望单元格颜色是COLOR ATTRIBUTES部分下的红色,绿色和蓝色字段的RGB组合,而不是显示橙色背景.
确定update()表中方法中哪个字段已更改的正确方法是什么?
我知道这可能是在modifiedField()via,fieldId但现在还为时尚早.
我正在开发AX 2009安装.工作是更新WMSOrderTrans表.这是我到目前为止所得到的:
WMSOrderTrans wmsOrderTrans;
;
while select wmsOrderTrans
{
if (wmsOrderTrans.BBBpackingSlipExists())
{
ttsBegin;
wmsOrderTrans.selectForUpdate(true);
wmsOrderTrans.BBBPackingSlipExists = NoYes::Yes;
wmsOrderTrans.doUpdate();
ttsCommit;
}
}
Run Code Online (Sandbox Code Playgroud)
这项工作大约需要一个小时才能完成测试系统.这让我担心生产系统的性能.
目前,代码已经被编写为具有最小的锁定问题(如果应该更新并且然后立即提交,则为每一行执行selectForUpdate).原因是,当作业运行时,用户将在系统上工作.
我的问题是,如果有一种合理的方式以较少的交易开销实现这项工作.
while select forUpdate ...
Run Code Online (Sandbox Code Playgroud)
...似乎不是一个选项,因为它会锁定表,直到作业完成.
任何输入都表示赞赏.
这是BBBPackingSlipExists方法的代码:
display boolean BBBpackingSlipExists()
{
InventDim inventDimCur;
InventDim inventDimPackSlip;
InventTrans inventTransPackSlip;
;
select firstonly RecId from inventTransPackSlip
where inventTransPackSlip.InventTransId == this.inventTransId
&& (inventTransPackSlip.StatusIssue == StatusIssue::Deducted
|| inventTransPackSlip.StatusIssue == StatusIssue::Sold)
&& !inventTransPackSlip.PackingSlipReturned
exists join inventDimCur
where inventDimCur.inventDimId == this.inventDimId
exists join inventDimPackSlip
where inventDimPackSlip.inventDimId == inventTransPackSlip.inventDimId
&& inventDimCur.inventSerialId …Run Code Online (Sandbox Code Playgroud) static void Job(Args _args)
{
int number=10;
do
{
print (strfmt("current number = %1", number));
number --;
}while (number != 0)
}
Run Code Online (Sandbox Code Playgroud)
这是一个仅用于在X ++中测试do-while的工作,我在最后的'}'中得到了"语法错误"
我是Dynamics AX和X ++的新手,所以我不知道是否有我遗漏的东西,但我认为它应该有效.
----- [编辑] -----问题的
第二部分被移到另一个问题
我需要从 QueybuildDataSource 对象中删除 group by 语句。有没有办法做到这一点?(与 addGroupByField 相反)。
这是一个完全没有意义的问题......但我想知道答案:
为什么Ax2012中的所有RecIds(以及我认为的所有v2.5以后)都以5637144576开头?为什么不从RecId 1开始,就像在TempDB表中一样?这必须是旧版本的遗留物.
我记得客户在旧版本中耗尽了RecId的情况,据说可以通过使每个表的RecIds唯一并将其更改为64位数据类型来解决.但仍然有这种变化,它从一个特定的数字开始.
只是好奇...