cancel
Showing results for 
Search instead for 
Did you mean: 

Sales Order Using CSV file

Former Member
0 Kudos

Hi All,

I want to Create sales order using .csv file without using DTW,

reading each contents from .csv file and create order in SAP Business One using VB.Net

Any help would be much appreciated.  Thanks in advance!

Regards,

Swati

Accepted Solutions (1)

Accepted Solutions (1)

ANKIT_CHAUHAN
Product and Topic Expert
Product and Topic Expert
0 Kudos

Hi,

Also check the below thread for creating the Sales Order:

Hope it helps.

Thanks & Regards

Ankit Chauhan

Answers (2)

Answers (2)

Former Member
0 Kudos

does your csv file have multiple sales order? if yes, are the sales order lines in a different file?

ANKIT_CHAUHAN
Product and Topic Expert
Product and Topic Expert
0 Kudos

Hi Swathi,

I have used this code for reading the CSV file and insert the data into User Defined Table. Hope you can change it accordingly for creating Sales Order:

CsvfilePathO is CSV File for Master Table i.e. ORDR

CsvfilePathR1 is CSV File for detailTable i.e. RDR1. Also my CSV file had the same structure as DTW Template File.

public  DataSet ReadCSVFile(string CsvfilePathO, string CsvfilePathR1)

        {

            string wholeFile = null;

            string[] lineData = null;

            string[] fieldData = null;

            string wholeFile1 = null;

            string[] lineData1 = null;

            string[] fieldData1 = null;          

            int icount = 0;

            int iloop = 0;

            int iicount = 0;

            int iiloop = 0;          

            int k = 0;

            try

            {

                if (File.Exists(CsvfilePathO))

                {

                    wholeFile = System.IO.File.ReadAllText(CsvfilePathO);

                    lineData = wholeFile.Split('\n');

                    icount = lineData.Length;

                    iloop = 0;

                    foreach (string lineOfText in lineData)

                    {

                        if ((iloop > 1) && (iloop < (icount - 1)))

                        {

                            fieldData = lineOfText.Split(',');

                            //adding code

                            SAPbobsCOM.GeneralService oGeneralService;

                            SAPbobsCOM.GeneralData oGeneralData;

                            SAPbobsCOM.GeneralData oChild;

                            SAPbobsCOM.GeneralDataCollection oChildren;

                            SAPbobsCOM.GeneralDataParams oGeneralParams;

                            oCompService = SBO_Company.GetCompanyService();

                            oGeneralService = oCompService.GetGeneralService("Units");

                            //oGeneralParams = (SAPbobsCOM.GeneralDataParams)oGeneralService.GetDataInterface(SAPbobsCOM.GeneralServiceDataInterfaces.gsGeneralDataParams);

                            //oGeneralData = oGeneralService.GetByParams(oGeneralParams);

                            string Code = fieldData[0];

                            string Name = fieldData[1];

                            string PastelCode = fieldData[2];

                            string ContractNumber = fieldData[3];

                          

                            oGeneralData = (SAPbobsCOM.GeneralData)oGeneralService.GetDataInterface(GeneralServiceDataInterfaces.gsGeneralData);

                          

                            oGeneralData.SetProperty("Code", Code);

                            oGeneralData.SetProperty("Name", Name);

                            oGeneralData.SetProperty("U_Pastel", PastelCode);

                            oGeneralData.SetProperty("U_Contract", ContractNumber);

                          

                            //adding code

                            //2nd file...

                            if (File.Exists(CsvfilePathR1))

                            {

                                wholeFile1 = System.IO.File.ReadAllText(CsvfilePathR1);

                                lineData1 = wholeFile1.Split('\n');

                                iicount = lineData1.Length;

                                foreach (string lineOfTextR in lineData1)

                                {

                                    if ((iiloop > 1) && (iiloop < (iicount - 1)))

                                    {

                                        fieldData1 = lineOfTextR.Split(',');

                                        //Check record key...

                                        if (fieldData[0] == fieldData1[0])

                                        {

                                            if (k == 0)

                                            {

                                                oChildren = oGeneralData.Child("UNITDETAIL");

                                                oChild = oChildren.Add();

                                                string SerialNumber = fieldData1[2];

                                                string Type = fieldData1[1];

                                                string UnitNumber = fieldData1[3];

                                                string Controller = fieldData1[4];

                                                string Location = fieldData1[5];

                                                string Address = fieldData1[6];

                                                string OccupantType = fieldData1[7];

                                                string OccupantName = fieldData1[8];

                                                string ContactPerson = fieldData1[9];

                                                string Mobile = fieldData1[10];

                                                string Email = fieldData1[11];

                                                string Base = fieldData1[12];

                                                string AccountZone = fieldData1[13];

                                                string OperationZone = fieldData1[14];

                                                DateTime UnitAddDate = Convert.ToDateTime(fieldData1[15]);

                                                string Remarks = fieldData1[16];

                                                string UnitStatus = fieldData1[17];

                                                string Reason = fieldData1[18];

                                                string UnitID = fieldData1[19];

                                                string LocationDescription = fieldData1[20];

                                                //string LastInvoiceDate = fieldData1[21];

                                              

                                                oChild.SetProperty("U_SNUM", SerialNumber);

                                                oChild.SetProperty("U_Type", Type);

                                                oChild.SetProperty("U_Unit", UnitNumber);

                                                oChild.SetProperty("U_Control", Controller);

                                                oChild.SetProperty("U_Location", Location);

                                                oChild.SetProperty("U_Addrss", Address);

                                              

                                            }

                                            else

                                            {

                                                oChildren = oGeneralData.Child("UNITDETAIL");

                                                oChild = oChildren.Add();

                                                string SerialNumber = fieldData1[2];

                                                string Type = fieldData1[1];

                                                string UnitNumber = fieldData1[3];

                                                string Controller = fieldData1[4];

                                                string Location = fieldData1[5];

                                                string Address = fieldData1[6];

                                                string OccupantType = fieldData1[7];

                                                string OccupantName = fieldData1[8];

                                                string ContactPerson = fieldData1[9];

                                                string Mobile = fieldData1[10];

                                                string Email = fieldData1[11];

                                                string Base = fieldData1[12];

                                                string AccountZone = fieldData1[13];

                                                string OperationZone = fieldData1[14];

                                                DateTime UnitAddDate = Convert.ToDateTime(fieldData1[15]);

                                                string Remarks = fieldData1[16];

                                                string UnitStatus = fieldData1[17];

                                                string Reason = fieldData1[18];

                                                string UnitID = fieldData1[19];

                                                string LocationDescription = fieldData1[20];

                                                //string LastInvoice = fieldData1[20];

                                                //string LastInvoiceDate = fieldData1[21];

                                                oChild.SetProperty("U_SNUM", SerialNumber);

                                                oChild.SetProperty("U_Type", Type);

                                                oChild.SetProperty("U_Unit", UnitNumber);

                                                oChild.SetProperty("U_Control", Controller);

                                                oChild.SetProperty("U_Location", Location);

                                                oChild.SetProperty("U_Addrss", Address);

                                              

                                            }

                                            k = k + 1;

                                        }

                                    }

                                    iiloop = iiloop + 1;

                                }

                                oGeneralService.Add(oGeneralData);

                                iiloop = 0;

                                k = iiloop;

                            }

                        }

                      

                        iloop = iloop + 1;

                    }

                }

                else

                {

                    File.Create(CsvfilePathO);

                }           

            }

            catch (Exception ex)

            {

                string ss = ex.Message;

            }

            return ODataList ;

     

    }

Hope it helps. In case of problem please feel free to ask.

Thanks & Regards

Ankit Chauhan