Saturday, March 6, 2021

if (appl.ttsLevel() == 0) { throw error(strFmt("@SCM:TransactionExpected", funcName())); } D365

 Usually you get this error when your code is not in transaction begin and commit.

Write your code between ttsbegin and ttscommit


Ex: 

                                ttsbegin;

                                salesLine.initFromSalesTable(_retOrdSalesTable);

                                salesLine.ItemId        = itemId;

                                salesLine.SalesUnit     = InventTableModule::find(itemId, ModuleInventPurchSales::Invent).UnitId;

                                salesLine.SalesPrice    = unitPrice;

                                if(salesLine.SalesPrice == 0.00)

                                {

                                    inventDimPrice.clear();

                                    inventDimPrice.InventSiteId = inventSiteId;

                                    inventDimPrice = InventDim::findOrCreate(inventDimPrice);

                                    salesLine.setPriceAgreement(inventDimPrice);

                                }

                                salesLine.LineAmount    = salesLine.calcLineAmount();

                                salesLine.SalesQty      = 0;

                                inventBatch = InventBatch::find('999', itemId);

                                if(!inventBatch)

                                {

                                    select firstfast inventBatch order by

                                         createdDateTime desc  where inventBatch.itemId == itemId

                                            && inventBatch.inventBatchId    != '';

                                }

                                inventDimGet.InventLocationId = inventLocationId;

                                inventDimGet.InventSiteId     = inventSiteId;

                                inventDimGet.wMSLocationId    = wMSLocationId;

                                inventDimGet.inventBatchId    = inventBatch.inventBatchId;


                                inventDimGet = InventDim::findOrCreate(inventDimGet);

                                // find inventDim

                                salesLine.InventDimId   = inventDimGet.inventDimId;

                                salesLine.createLine(true, true, true, false, false, false, false, false);

                                

                                salesLine.selectForUpdate(true);

                                salesLine.ExpectedRetQty = -qty;

                                salesLine.update();

                                ttscommit;

1 comment:

  1. Handling errors like if (appl.ttsLevel() == 0) in D365 requires precise integration tools. Using OMGClick integration in RSL Helper Helper can streamline interactions and automate complex workflows, improving overall system reliability and efficiency.

    ReplyDelete

What is the primary purpose of using a Solution in Microsoft Power Platform & ALM?

As organizations embrace low-code development with Microsoft Power Platform , it becomes essential to manage and govern apps, flows, and dat...