X++使用MaxOf

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

是否可以在 X++ 上的 update_recordset 上使用 MaxOf?

ttsbegin;
        update_recordset asuRepairServiceProdDeviceInfo
        setting
            RepairCompletionDate = **maxof**(asuRepairOrderTrans.ScanEndDateTime)
        join asuRepairOrderTrans
            where  asuRepairServiceProdDeviceInfo.RepairOrderID ==  asuRepairOrderTrans.RepairOrderId  &&   asuRepairOrderTrans.RepairStepId == '7000';

        info(strFmt("Repair Completion Date FG : Number of records updated is %1."
            ,asuRepairServiceProdDeviceInfo.rowCount()));
ttscommit;

或者对于 While 语句还有什么不同的方法吗?因为我正在处理超过数百万条记录

axapta x++ dynamics-365-operations
1个回答
0
投票

asuRepairOrderMaxDate
上创建一个视图 (
asuRepairOrderTrans
),其中包含
RepairOrderID
RepairStepId
max(ScanEndDateTime)
字段。

那么更新就很简单了:

update_recordset asuRepairServiceProdDeviceInfo
    setting RepairCompletionDate = asuRepairOrderMaxDate.ScanEndDateTime
    join asuRepairOrderMaxDate
    where asuRepairOrderMaxDate.RepairOrderID ==  asuRepairServiceProdDeviceInfo.RepairOrderId
       && asuRepairOrderMaxDate.RepairStepId  == '7000';
info(strFmt("Repair Completion Date FG : Number of records updated is %1.", 
            asuRepairServiceProdDeviceInfo.rowCount()));
© www.soinside.com 2019 - 2024. All rights reserved.