Importing vendor invoice journal to AX 2012 [Excel-->AX 2012]

 


                    

class Dax_001_Dayan

{

    //Dailog related varialbes

    

    Dialog                             dialog;

    DialogField                     dialogfield;

    Filename                         filename;


    //Excel related variables

    

    #AviFiles

    SysExcelApplication       application;

    SysExcelWorkbooks        workbooks;

    SysExcelWorkbook         workbook;

    SysExcelWorksheets       worksheets;

    SysExcelWorksheet         worksheet;

    SysExcelCells                  cells;

    COMVariantType            type;

    COMVariantType             typeModule;

    NumberSeq                      numberSeq;

    NumberSequenceTable     numSeqTable;

    

    //Declaring the fields we are using in dataType order wise


    str                     Name, num,text, currency,businessunit,account,accountType,

                            department,offsetaccount,OffsetAccounttype,jourName,jourNum,postingProfile;

    int64                   costcenter,personalNum,AssesValue,lineNum;

    real                    debit, credit,maxRetPrice;

    container               Account1, offsetaccount1;

    str                     acc,txt,payment,logLocId;

    date                    transdate,due;

    NoYes                   approved;


    

    //Declaring Tables

    

    LedgerJournalName       ledgerJournalName;

    LedgerJournalTable      ledgerJournalTable;

    LedgerJournalTrans      ledgerJournalTrans, ledgerJournalTranslocal;

    LogisticsLocation       logisticsLocation;


    container               cont1,cont2,offSetAcctPattern;

    int                     cnt;

    DimensionDynamicAccount ledgerDim, offsetledgerDim;

    LedgerJournalAC         AccountNumb, offsetAccountnum;


    container               ledgerDimension;

    DimensionDefault        DimensionDefault;

    LedgerJournalACType     LedgerJournalACType;

    boolean                 ret;


}


                    { Method 2 Clicked Method}


void clicked()

{

    Args args = new Args();

       KPMG_ImportVendInvoiceJournalLines KPMG_ImportVendInvoiceJournalLines = new                        KPMG_ImportVendInvoiceJournalLines();

       KPMG_ImportVendInvoiceJournalLines.run(args);

}








public void DataImport()

{

    

    str         invoice;

    str         TDSgroup,taxGroup,taxItemGroup;

    date        documentdate;

    Voucher     voucher;


    ledgerJournalTransTaxExtensionIN   ledgerJournalTransTaxExtensionIN;

   


    SysOperationProgress progress = new SysOperationProgress();

    int           row = 0;

    workbook       = workbooks.item(1);

    worksheets     = workbook.worksheets();

    worksheet      = worksheets.itemFromNum(1);

    cells              = worksheet.cells();


    info(ledgerJournalTranslocal.journalnum); 


    row = 1;

    

    


    do

    {

        row++;

        

        //Arranging the values as per Excel Order

        

        Currency                             = cells.item(row, 1).value().bStr();   

        jourNum                              = cells.item(row, 2).value().bStr();

        lineNum                              = cells.item(row, 3).value().int();

        voucher                                = cells.item(row, 4).value().bStr();

        accountType                        = cells.item(row, 5).value().bStr();

        //ledgerDimension               = cells.item(row, 6).value().bStr();  

        DimensionDefault               = cells.item(row, 7).value().int();        

        txt                                        = cells.item(row, 8).value().bStr();

        Debit                                   = any2real(cells.item(row, 9).value().double());

        Credit                                 = any2real(cells.item(row, 10).value().bStr());

        OffsetAccounttype            =cells.item(row, 11).value().bStr();

        offsetledgerDim                = cells.item(row, 12).value().int();

        postingProfile                   = cells.item(row, 13).value().bStr();

        invoice                             = cells.item(row, 14).value().bStr();

        documentdate                  = cells.item(row, 15).value().date();

        jourName                        = cells.item(row, 16).value().bStr();

        transdate                         = cells.item(row, 17).value().date();

        payment                          = cells.item(row, 18).value().bStr();

        TDSgroup                      = cells.item(row, 19).value().bStr();

        due                                = cells.item(row, 20).value().date();

        approved                       = str2enum(approved,cells.item(row, 22).value().bStr());

        taxGroup                      = cells.item(row, 23).value().bStr();

        taxItemGroup               = cells.item(row, 24).value().bStr();

        logLocId                      =  cells.item(row, 25).value().bStr();

        maxRetPrice                = any2real(cells.item(row, 26).value().double());

        AssesValue                  = cells.item(row, 29).value().int();

        //In Excel cell should be in Text format

        try

        {

            ttsbegin;


            ledgerJournalTrans.clear();

            ledgerJournalTrans.initValue();

            

            //Assigning the values into table

            

            ledgerJournalTrans.JournalNum   = jourNum;//ledgerJournalTranslocal.JournalNum; //modified by yajiv

            ledgerJournalTrans.TransDate    = transdate;

            ledgerJournalTrans.CurrencyCode = Currency;


            select firstOnly numSeqTable

                where numSeqTable.RecId  == ledgerJournalName.NumberSequenceTable;

            if (numSeqTable && !voucher)

            {

                numberseq = numberseq::newGetVoucherFromCode(numSeqTable.NumberSequence);

                voucher = numberseq.voucher();

            }

            ledgerJournalTrans.Voucher      = voucher;

            ledgerJournalTrans.AccountType  = str2enum(LedgerJournalACType, accountType);


            ledgerJournalTrans.LedgerDimension  = ledgerDim;

            

            cnt++;

            ledgerJournalTrans.Txt                              = Txt;

            ledgerJournalTrans.AmountCurDebit       = Debit;

            ledgerJournalTrans.AmountCurCredit      = Credit;

            ledgerJournalTrans.OffsetAccountType    = str2enum(LedgerJournalACType, offsetaccountType);


            cont1=conNull();

            cont2=conNull();

            ledgerDimension =conNull();

            cnt=0;

            

            

              //Assigning the values into table


            ledgerJournalTrans.TaxGroup                               =       taxGroup;

            ledgerJournalTrans.TaxItemGroup                       =       taxItemGroup;

            ledgerJournalTrans.DocumentDate                       =       documentdate;

            ledgerJournalTrans.TDSGroup_IN                      =       TDSgroup;

            ledgerJournalTrans.Invoice                                  =       invoice;

            ledgerJournalTrans.Payment                                 =       payment;

            ledgerJournalTrans.PostingProfile                        =       postingProfile;

            ledgerJournalTrans.AssessableValue_IN               =       AssesValue;

            ledgerJournalTrans.MaximumRetailPrice_IN       =       maxRetPrice;

            logisticsLocation.LocationId                                 =       logLocId;

            ledgerJournalTrans.JournalNum                            =       jourNum;

            ledgerJournalTrans.LineNum                                =       lineNum;

            ledgerJournalTrans.OffsetLedgerDimension        =       offsetledgerDim;

            ledgerJournalTable.JournalName                          =       jourName;

            ledgerJournalTrans.Due                                         =       due;

            ledgerJournalTrans.Approved                                =       approved;

            ledgerJournalTrans.Approver                                =       personalNum;

            ledgerJournalTrans.insert();


            

           

            


            if(ledgerJournalTrans.recid)

            {

                ledgerJournalTransTaxExtensionIN.initValue();

                ledgerJournalTransTaxExtensionIN.TaxModelDocLineExtensionIN::init(ledgerJournalTrans);

                ledgerJournalTransTaxExtensionIN.LedgerJournalTrans = ledgerJournalTrans.RecId;

                ledgerJournalTransTaxExtensionIN.insert();

            }

            ttsCommit;


                type = cells.item(row+1, 1).value().variantType();

            }

           catch(Exception::Error)

            {

                info(strFmt('Catched an error in row: %1',row));

            }


            }


                while (type != COMVariantType::VT_EMPTY);

                application.quit();


                info(strFmt('journal inserted %1',ledgerJournalTable.JournalNum));

            }


                                { Method 3}



public void run(Args _args)

{

    ledgerJournalTranslocal = _args.record() as ledgerJournalTrans;


    dialog = new dialog('Excel Import');

    dialogfield = dialog.addField(extendedTypeStr(FilenameOpen), 'File Name');


    if(dialog.run())

    {

        filename =(dialogfield.value());

    }

    application = SysExcelApplication::construct();

    workbooks   = application.workbooks();

    if(filename)

    {

        try

        {

            workbooks.open(filename);

        }

        catch (Exception::Error)

        {

            throw error('File cannot be opened.');

        }

        this.DataImport();

    }

}







 

                      { Method 4}


public static void main(Args args)

{

    KPMG_ImportVendInvoiceJournalLines import = new KPMG_ImportVendInvoiceJournalLines();

    import.run(args);


}




create one button on form level give name as     IMPORTtoAX


Create one menuItem and add classname on object and give object as Action.. and write below code in button clicked method 




void clicked()

{

    Args args;

    

    super();


    args= new Args();


    args.record(LedgerJournalTrans);

    new MenuFunction(identifierStr(ImportExcel),menuitemtype::Action).run(args);


    LedgerJournalTrans_ds.refresh();

}



















Comments