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
Post a Comment