Import customer list from ExcelFile using Job
static void importCustomersFromExcel(Args _args)
{
SysExcelApplication application;
SysExcelWorkbooks workbooks;
SysExcelWorkbook workbook;
SysExcelWorksheets worksheets;
SysExcelWorksheet worksheet;
SysExcelCells cells;
COMVariantType type;
System.DateTime ShlefDate;
FilenameOpen filename;
dialogField dialogFilename;
Dialog dialog;
//Table Declarations Starts
CustTable _CustTable;
DirPartyTable dirPartyTab;
Address addTab;
//Table Declartions Ends
CustAccount AccNum;
//CustAccount CustGruopId;
int iAccNum;
int row=1;
int cnt;
CustName custSearchName;
CustName CustName;
//Addressing adress;
//Phone phone;
//TeleFax teleFax;
CustGroupId GroupId;
Str currencyData;
smmSegmentId segmentId;
CommissSalesGroup SalesGroup;
VendCurrencyCode currency;
AddressCity city;
AddressStreet street;
CustTableAlias nameAlias;
#Excel
// convert into str from excel cell value
str COMVariant2Str(COMVariant _cv, int _decimals = 0, int _characters = 0, int _separator1 = 0, int _separator2 = 0)
{
switch (_cv.variantType())
{
case (COMVariantType::VT_BSTR):
return _cv.bStr();
case (COMVariantType::VT_R4):
return num2str(_cv.float(),_characters,_decimals,_separator1,_separator2);
case (COMVariantType::VT_R8):
return num2str(_cv.double(),_characters,_decimals,_separator1,_separator2);
case (COMVariantType::VT_DECIMAL):
return num2str(_cv.decimal(),_characters,_decimals,_separator1,_separator2);
case (COMVariantType::VT_DATE):
return date2str(_cv.date(),123,2,1,2,1,4);
case (COMVariantType::VT_EMPTY):
return "";
default:
throw error(strfmt("@SYS26908", _cv.variantType()));
}
return "";
}
;
dialog = new Dialog("Excel Upoad");
dialogFilename = dialog.addField(typeId(FilenameOpen));
dialog.filenameLookupFilter(["@SYS28576",#XLSX,"@SYS28576",#XLS]);
dialog.filenameLookupTitle("Upload from Excel");
dialog.caption("Excel Upload");
dialogFilename.value(filename);
if(!dialog.run())
return;
filename = dialogFilename.value();
application = SysExcelApplication::construct();
workbooks = application.workbooks();
try
{
workbooks.open(filename);
}
catch (Exception::Error)
{
throw error("File cannot be opened.");
}
workbook = workbooks.item(1);
worksheets = workbook.worksheets();
worksheet = worksheets.itemFromNum(1);
cells = worksheet.cells();
do
{
try
{
row++;
AccNum = COMVariant2Str(cells.item(row, 1).value());
CustName = COMVariant2Str(cells.item(row, 2).value());
GroupId = COMVariant2Str(cells.item(row,3).value());
currencyData = COMVariant2Str(cells.item(row,4).value());
custSearchName = COMVariant2Str(cells.item(row,5).value());
if(row > 1)
{
//Insert into _CustTable Table
select firstonly _CustTable where _CustTable.AccountNum == AccNum;
if(!_CustTable)
{
_CustTable.initValue();
_CustTable.AccountNum = AccNum;
_CustTable.Name = CustName;
_CustTable.nameAlias = custSearchName;
_CustTable.CustGroup = GroupId;//"COMPANY";
_CustTable.LanguageId = "EN-US";
_CustTable.PartyType = DirPartyType::Organization;
_CustTable.Currency = currencyData;//"SAR";
_CustTable.insert();
cnt++;
info(strfmt("Customer uploaded successfully",_CustTable.Name));
}
else
{
warning(strfmt("Customer already exists %1 : ",_CustTable.Name));
}
}
}
catch
{
info(strfmt("Upload Failed in row %1", row));
}
type = cells.item(row+1, 1).value().variantType();
}while (type != COMVariantType::VT_EMPTY);
info(strfmt("%1 Customers uploaded successfully",cnt));
application.quit();
}
{
SysExcelApplication application;
SysExcelWorkbooks workbooks;
SysExcelWorkbook workbook;
SysExcelWorksheets worksheets;
SysExcelWorksheet worksheet;
SysExcelCells cells;
COMVariantType type;
System.DateTime ShlefDate;
FilenameOpen filename;
dialogField dialogFilename;
Dialog dialog;
//Table Declarations Starts
CustTable _CustTable;
DirPartyTable dirPartyTab;
Address addTab;
//Table Declartions Ends
CustAccount AccNum;
//CustAccount CustGruopId;
int iAccNum;
int row=1;
int cnt;
CustName custSearchName;
CustName CustName;
//Addressing adress;
//Phone phone;
//TeleFax teleFax;
CustGroupId GroupId;
Str currencyData;
smmSegmentId segmentId;
CommissSalesGroup SalesGroup;
VendCurrencyCode currency;
AddressCity city;
AddressStreet street;
CustTableAlias nameAlias;
#Excel
// convert into str from excel cell value
str COMVariant2Str(COMVariant _cv, int _decimals = 0, int _characters = 0, int _separator1 = 0, int _separator2 = 0)
{
switch (_cv.variantType())
{
case (COMVariantType::VT_BSTR):
return _cv.bStr();
case (COMVariantType::VT_R4):
return num2str(_cv.float(),_characters,_decimals,_separator1,_separator2);
case (COMVariantType::VT_R8):
return num2str(_cv.double(),_characters,_decimals,_separator1,_separator2);
case (COMVariantType::VT_DECIMAL):
return num2str(_cv.decimal(),_characters,_decimals,_separator1,_separator2);
case (COMVariantType::VT_DATE):
return date2str(_cv.date(),123,2,1,2,1,4);
case (COMVariantType::VT_EMPTY):
return "";
default:
throw error(strfmt("@SYS26908", _cv.variantType()));
}
return "";
}
;
dialog = new Dialog("Excel Upoad");
dialogFilename = dialog.addField(typeId(FilenameOpen));
dialog.filenameLookupFilter(["@SYS28576",#XLSX,"@SYS28576",#XLS]);
dialog.filenameLookupTitle("Upload from Excel");
dialog.caption("Excel Upload");
dialogFilename.value(filename);
if(!dialog.run())
return;
filename = dialogFilename.value();
application = SysExcelApplication::construct();
workbooks = application.workbooks();
try
{
workbooks.open(filename);
}
catch (Exception::Error)
{
throw error("File cannot be opened.");
}
workbook = workbooks.item(1);
worksheets = workbook.worksheets();
worksheet = worksheets.itemFromNum(1);
cells = worksheet.cells();
do
{
try
{
row++;
AccNum = COMVariant2Str(cells.item(row, 1).value());
CustName = COMVariant2Str(cells.item(row, 2).value());
GroupId = COMVariant2Str(cells.item(row,3).value());
currencyData = COMVariant2Str(cells.item(row,4).value());
custSearchName = COMVariant2Str(cells.item(row,5).value());
if(row > 1)
{
//Insert into _CustTable Table
select firstonly _CustTable where _CustTable.AccountNum == AccNum;
if(!_CustTable)
{
_CustTable.initValue();
_CustTable.AccountNum = AccNum;
_CustTable.Name = CustName;
_CustTable.nameAlias = custSearchName;
_CustTable.CustGroup = GroupId;//"COMPANY";
_CustTable.LanguageId = "EN-US";
_CustTable.PartyType = DirPartyType::Organization;
_CustTable.Currency = currencyData;//"SAR";
_CustTable.insert();
cnt++;
info(strfmt("Customer uploaded successfully",_CustTable.Name));
}
else
{
warning(strfmt("Customer already exists %1 : ",_CustTable.Name));
}
}
}
catch
{
info(strfmt("Upload Failed in row %1", row));
}
type = cells.item(row+1, 1).value().variantType();
}while (type != COMVariantType::VT_EMPTY);
info(strfmt("%1 Customers uploaded successfully",cnt));
application.quit();
}
Comments
Post a Comment