X++ utcdatetime 和 SQL

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

我想执行更新在 AX2009 中选定日期之后创建的每个销售订单。 但 X++ 太糟糕了,它给了我一个错误。有人可以修复它吗?我讨厌这个X++

static void SalesOrdersDlvMode_Update(Args _args)
{
    #define.doupdate(true)
    #define.doinfo(false)

    SysOperationProgress progress = new SysOperationProgress();
    SalesTable           salesTable;
    int                  counter = 0;
    utcdatetime          targetDate
    ;

 
    targetDate = mkDate(31, 12, 2022);

    ttsBegin;

    while select forupdate salesTable
        where salesTable.DlvMode == 'ABC'
            && salesTable.createdDateTime >= targetDate

    {
        salesTable.DlvMode = 'ABCUPD';
        salesTable.update(); // Perform the update
        counter++;
    }

    ttsCommit;

    info(strFmt("Updated: %1 records;", counter));
}

“操作数类型与运算符不兼容。”仍然:(

x++
1个回答
0
投票

这里的问题是 targetDate 类型是 utcDateTime 但 mkDate 方法返回 date 类型,因此它们不兼容。尝试下面的代码。

targetDate = DateTimeUtil::newDateTime(mkDate(31, 12, 2022), 0, DateTimeUtil::getUserPreferredTimeZone());
© www.soinside.com 2019 - 2024. All rights reserved.