The following sample code is used to import Vendors from CSV.
static void Krishh_importVendorfromCSV(Args _args)
{
CommaIO csvFile;
container readCon;
counter icount,inserted;
Dialog dialog;
DialogField dfFileName;
DirPartyRecId partyRecId,contactPartyRecid;
Name name,contactName;
VendTable vendtable;
FileName fileName;
str contactperson;
DirPartyPostalAddressView addressView;
DirPartyContactInfoView contactView;
ContactPerson contactpersonTable;
LogisticsElectronicAddressMethodType enumType;
DirParty dirParty;
LogisticsPostalAddress address;
LogisticsElectronicAddress logisticsElectronicAddress;
BinData binData;
str stringImage;
inserted =0;
#File
dialog = new Dialog("Pick the file");
dfFileName = dialog.addField(extendedTypeStr(FileNameOpen));
dialog.filenameLookupFilter(["All files", #AllFiles]);
if (dialog.run())
{
filename = dfFileName.value();
}
csvFile = new CommaIO(filename, 'r');
if (csvFile)
{
readCon = csvFile.read();
ttsbegin;
while (csvFile.status() == IO_Status::OK)
{
readCon = csvFile.read();
icount++;
if (readCon)
{
name = conPeek(readCon,2);
partyRecId = DirPartyTable::createNew( DirPartyType::Organization, name).RecId;
vendtable.clear();
vendtable.initValue();
vendtable.Party = partyRecId;
vendtable.AccountNum = conPeek(readCon,1);
vendtable.VendGroup = conPeek(readCon,5);
vendtable.Currency = conPeek(readCon,6);
//vendtable.Blocked =
vendtable.DlvMode = conPeek(readCon,8);
vendtable.PaymMode = conPeek(readCon,9);
ContactPerson = conPeek(readCon,12);
if(contactperson != '')
{
contactname = conPeek(readCon,12);
ContactPerson::findOrCreateNameParty(partyRecId,contactname);
}
vendtable.insert();
address.CountryRegionId = strLRTrim(conPeek(readCon,14));
//addressView.State = strLRTrim(conPeek(readCon,16));
address.ZipCode = strLRTrim(conPeek(readCon,15));
address.Street = strLRTrim(conPeek(readCon,19));
// address.county = strLRTrim(conPeek(readCon,17));
address.City = strLRTrim(conPeek(readCon,18));
addressView.LocationName = name;
addressView.IsPrimary = NoYes::Yes;
addressView.Party = partyRecId;
addressview.initFromPostalAddress(address);
DirParty = DirParty::constructFromPartyRecId(addressView.Party );
DirParty.createOrUpdatePostalAddress(addressView);
contactView.LocationName = "Delivery email";
contactView.Locator = strLRTrim(conPeek(readCon,10));
contactView.Type = LogisticsElectronicAddressMethodType::Email;
contactView.Party = partyRecId;
contactView.IsPrimary = NoYes::Yes;
dirParty.createOrUpdateContactInfo(contactView);
contactView.LocationName = "Delivery Cellular Phone";
contactView.Locator = strLRTrim(conPeek(readCon,11));
contactView.Type = LogisticsElectronicAddressMethodType::Phone;
contactView.Party = partyRecId;
contactView.IsPrimary = NoYes::Yes;
dirParty.createOrUpdateContactInfo(contactView);
contactView.LocationName = "Delivery Phone";
contactView.Locator = strLRTrim(conPeek(readCon,3));
contactView.Type = LogisticsElectronicAddressMethodType::Phone;
contactView.Party = partyRecId;
contactView.IsPrimary = NoYes::Yes;
dirParty.createOrUpdateContactInfo(contactView);
contactView.LocationName = "Delivery Fax";
contactView.Locator = strLRTrim(conPeek(readCon,4));
contactView.Type = LogisticsElectronicAddressMethodType::Fax;
contactView.Party = partyRecId;
contactView.IsPrimary = NoYes::Yes;
dirParty.createOrUpdateContactInfo(contactView);
inserted++;
}
}
ttsCommit;
}
info(strfmt("%1 records inserted out of %2",inserted,icount));
}
Hi Krishna,
ReplyDeleteSathish here....
Can you please share the template, what are the fields needs to be fill and the order of the field.
As I'm a functional consultant and It would be great for me.
Thanks in advance....
Hi Sathish,
ReplyDeleteThis is not Microsoft Template. this was provided my client with the fields which was prepared from navision.I will send that file to your mail.
Thanks.
Hi Krishna,
ReplyDeleteCan you please send the file for reference. Please mail to sathishkkmca@gmail.com.
Thanks in advance....
Hi Krishna,
ReplyDeleteThanks,
Using this code i could import the vendor master and the address book also getting automatically created.
Really thanks. It saves my time.
Do you have any idea about retail item master import. If yes please share the details. It really helps me.
We are using AIF to import Items MasterData as this data used to come frequently and in XML structure, SO i build the AIF service with using XSLT to import the legacy format to AIF standard format and importing into the tables.
ReplyDeleteThanks for your reply...
ReplyDeleteI'll try the same and let u know..