Hi everyone, I am facing following error when updating records in bulk :
Cannot edit a record in Customer transactions (CustTrans). |
I am using this query in x++ , if you find any mistake , please help me out
update_recordset tCustTransMe
setting
SettleAmountCur = tCustTransMe.SettleAmountCur + settlementTracking.Settle_Amount,
SettleAmountMST = tCustTransMe.SettleAmountMST + settlementTracking.Settle_Amount,
SettleAmountReporting = tCustTransMe.SettleAmountReporting + settlementTracking.Settle_Amount,
Closed = settlementTracking.isConsumedInvoice == 1 ? settlementTracking.Settle_TransDate : tCustTrans.Closed,
LastSettleAccountNum = tF3CustSettleTransactionFIFO.AccountNum,
LastSettleDate = settlementTracking.Settle_TransDate
join settlementTracking
where
settlementTracking.traceid == traceId
&& settlementTracking.AccountNum == accountNum
&& settlementTracking.Invoice_RecId == tCustTransMe.RecId
join tF3CustSettleTransactionFIFO
where
tF3CustSettleTransactionFIFO.CustTransRecId == tCustTransMe.RecId
&& tF3CustSettleTransactionFIFO.AccountNum == accountNum
&& tF3CustSettleTransactionFIFO.TraceId == traceId
&& (tF3CustSettleTransactionFIFO.AmountCur - tF3CustSettleTransactionFIFO.SettleAmount) >= 0;
ttscommit;
Thanks , it worked
Hi uzair,
Please use custtrans.skipdatamethod(true) before update record set. Hope it works
[quote user="Uzair Kamdar"]Hi everyone, I am facing following error when updating records in bulk :
Cannot edit a record in Customer transactions (CustTrans). |
I am using this query in x++ , if you find any mistake , please help me out
update_recordset tCustTransMe
setting
SettleAmountCur = tCustTransMe.SettleAmountCur + settlementTracking.Settle_Amount,
SettleAmountMST = tCustTransMe.SettleAmountMST + settlementTracking.Settle_Amount,
SettleAmountReporting = tCustTransMe.SettleAmountReporting + settlementTracking.Settle_Amount,
Closed = settlementTracking.isConsumedInvoice == 1 ? settlementTracking.Settle_TransDate : tCustTrans.Closed,
LastSettleAccountNum = tF3CustSettleTransactionFIFO.AccountNum,
LastSettleDate = settlementTracking.Settle_TransDate
join settlementTracking
where
settlementTracking.traceid == traceId
&& settlementTracking.AccountNum == accountNum
&& settlementTracking.Invoice_RecId == tCustTransMe.RecId
join tF3CustSettleTransactionFIFO
where
tF3CustSettleTransactionFIFO.CustTransRecId == tCustTransMe.RecId
&& tF3CustSettleTransactionFIFO.AccountNum == accountNum
&& tF3CustSettleTransactionFIFO.TraceId == traceId
&& (tF3CustSettleTransactionFIFO.AmountCur - tF3CustSettleTransactionFIFO.SettleAmount) >= 0;
ttscommit;
[/quote]Thanks.
Hi , I have modified query as following but it did not work , please check brother, is it fine
update_recordset tCustTransMe
setting
SettleAmountCur = tCustTransMe.SettleAmountCur + settlementTracking.Settle_Amount,
SettleAmountMST = tCustTransMe.SettleAmountMST + settlementTracking.Settle_Amount,
SettleAmountReporting = tCustTransMe.SettleAmountReporting + settlementTracking.Settle_Amount,
Closed = settlementTracking.isConsumedInvoice == 1 ? settlementTracking.Settle_TransDate : tCustTrans.Closed,
LastSettleAccountNum = tF3CustSettleTransactionFIFO.AccountNum,
LastSettleDate = settlementTracking.Settle_TransDate
join tCustTransLocal
where tCustTransLocal.RecId == tCustTransMe.RecId
join settlementTracking
where
settlementTracking.traceid == traceId
&& settlementTracking.AccountNum == accountNum
&& settlementTracking.Invoice_RecId == tCustTransLocal.RecId
join tF3CustSettleTransactionFIFO
where
tF3CustSettleTransactionFIFO.CustTransRecId == tCustTransLocal.RecId
&& tF3CustSettleTransactionFIFO.AccountNum == accountNum
&& tF3CustSettleTransactionFIFO.TraceId == traceId
&& (tF3CustSettleTransactionFIFO.AmountCur - tF3CustSettleTransactionFIFO.SettleAmount) >= 0;
ttscommit;
Thanks
Regards
Muhammad Uzair Kamdar | D365 F&O Technical
Hi, Can you try adding one more buffer for CustTrans say custTransLocal, join custTransLocal with tCustTransMe using RecId and replace tCustTransMe with custTransLocal to check conditions.
Hi , thanks for the response, I tried , its working fine with select with update , and using reread() on table buffer, but performance issue as data is very huge.
Hi Uzair,
Try the same using while select with update and let us know the results.
Thanks,
Girish S.
André Arnaud de Cal...
291,996
Super User 2025 Season 1
Martin Dráb
230,853
Most Valuable Professional
nmaenpaa
101,156