Microsoft_MVP_banner

Import sales orders from master and details text files

The are many code snippets which you can find easily over the internet to import sales orders from a text file or from excel. The purpose of this post is to share my experience of uploading data into sales order form from two different text files. void ImportSalesOrders() {     Container                  con;     CustTable                 custTable;     SalesTable                salesTable;     SalesLine                  salesLine;     Headers                    headers;     Stock                        details;     num                           newSalesId;     Description                custDescription;          InventTable                inventTable;     InventDim                  inventDim;     InventSiteId               inventSiteId;     InventLocationId         inventLocationId;     CustAccount             custAccount;     real                           itemPrice;     ItemId                       itemId;     InventDim                  frominventDim,ToinventDim;     int                             x,y;     NumberSeq               num;     SysOperationProgress progressbar = new SysOperationProgress();     int i;     ;     progressbar.setCaption(‘Importing Journals’);     progressbar.setAnimation(filenameHeader);     progressbar.setTotal(30000);     for (i = 1; i <= 30000; i++)     {         progressbar.setText(strfmt(“@SYS105740”, i));         progressbar.setCount(i, 1);     }     this.importData();     ttsbegin;     while select headers     {         SalesTable = SalesTable::findDocumentNumber(headers.DocumentNumber);         if(!SalesTable)         {             //create sales table             salesTable.initValue();             num = NumberSeq::newGetNum(SalesParameters::numRefSalesId());             newSalesId = num.num();             if (salesTable::exist(newSalesId))             {                 num.abort();                 throw error(“@SYS23020”);             }             salesTable.SalesId = newSalesId;             num.used();             if(custDescription != “”)             {                 salesTable.SalesName = custDescription;             }             custAccount = headers.CustAccount;             //fetch the customer details from cust table using account no selected from drop-down list             select * from custTable where custTable.AccountNum == custAccount;             salesTable.CustAccount = custTable.AccountNum;             salesTable.InvoiceAccount = custTable.InvoiceAccount;             salesTable.SalesType = SalesType::Sales;             salesTable.SalesStatus = SalesStatus::None;             salesTable.CurrencyCode = custTable.Currency;             salesTable.CustGroup = custTable.CustGroup;             salesTable.DeliveryDateControlType = SalesDeliveryDateControlType::SalesLeadTime;             //Set dates as systemDateTime             salesTable.ReceiptDateRequested = systemdateget();             salesTable.ShippingDateRequested = systemdateget();             salesTable.LanguageId = ‘en-us’;             salesTable.DlvMode = ’10’;             inventSiteId = headers.InventSiteId;             inventLocationId = headers.InventSiteId;             salesTable.InventSiteId = inventSiteId;             salesTable.InventLocationId = inventLocationId;             salesTable.DocumentNumber = headers.DocumentNumber;             //Craete Sales Order             salesTable.insert();             while select details             where headers.DocumentNumber == details.DocumentNumber             {                 salesLine.clear();                 // Create Sales Order Line                 salesLine.SalesId = salesTable.SalesId;                 salesLine.initFromSalesTable(salesTable);                 itemId = details.ItemId;                 salesLine.ItemId = itemId;                 salesLine.SalesUnit = InventTable::find(salesLine.ItemId).salesUnitId();                 select * from inventTable where inventTable.ItemId == salesLine.ItemId;                 salesLine.initFromInventTable(inventTable);                 inventDim.clear();                 inventDim.InventSiteId = inventSiteId;                 inventDim.InventLocationId = inventSiteId;                 salesLine.InventDimId = InventDim::findOrCreate(inventDim).inventDimId;                 //Set Qty as 1 by default                 salesLine.SalesQty = details.Qty;                 salesLine.ConfirmedDlv = salesTable.ShippingDateConfirmed;                 salesLine.lineNum = SalesLine::lastLineNum(salesLine.salesId) + 1.0;                 salesLine.RemainInventPhysical = 1;                 salesLine.RemainSalesPhysical = 1;                 salesLine.DlvMode = ’10’;                 salesLine.SalesStatus = SalesStatus::None;                 salesLine.SalesPrice = details.UnitPrice;                 salesLine.LineAmount = salesLine.SalesQty * salesLine.SalesPrice;                 //Insert sales line items    

FaisalFareed@2025. All rights reserved

Design by T3chDesigns