job for create create addresses and role types by using customer account or vendor or prospect :
job:
static void insertProspectAddress(Args _args)
{
SysExcelApplication application;
SysExcelWorkbooks workbooks;
SysExcelWorkbook workbook;
SysExcelWorksheets worksheets;
SysExcelWorksheet worksheet;
SysExcelCells cells;
COMVariantType type;
Name name;
FileName filename;
//InventPosting InventPosting;
int row =1;
DimensionAttributeValueCombination DimensionAttributeValueCombination;
LogisticsAddressZipCode zipCode;
LogisticsAddressZipCodeId zipCodeId;
LogisticsAddressCity city;
LogisticsAddressStateId stateId;
LogisticsAddressState state;
LogisticsAddresssCity cityRecord;
LogisticsAddressCountyName countyName;
LogisticsAddressCountyId countyId;
LogisticsAddressCounty county;
LogisticsAddressStreet street;
LogisticsAddressDistrictName district;
boolean badRecord;
int i=1;
int numProcessedRecords=0,numzipcodesinserted;
LogisticsAddressCountryRegionId _countryRegionId;
LogisticsAddressDistrict districtRecord;
LogisticsAddressStreet_RU streetRecord;
smmBusRelAccount AccountNum;
CustName CustName;
MCGOneTimeAddress MCGOneTimeAddress;
smmBusRelTable smmBusRelTable;
LogisticsLocationRoleName LogisticsLocationRoleName;
LogisticsLocationRoleType LogisticsLocationRoleType;
Phone phone;
EMail eMail;
TeleFax fax;
URL url;
;
application = SysExcelApplication::construct();
workbooks = application.workbooks();
//specify the file path that you want to read
filename = "D:\\McLane Xpo\\Data\\Imported data\\Prospects\\AllProspectAddressJob.xlsx";//testingemail.xlsx";// //prospect addresses addresses only.xlsx";//
try
{
workbooks.open(filename);
}
catch (Exception::Error)
{
throw error("File cannot be opened.");
}
ttsbegin;
workbook = workbooks.item(1);
worksheets = workbook.worksheets();
worksheet = worksheets.itemFromNum(1); //Here 3 is the worksheet Number
cells = worksheet.cells();
do
{
row++;
CustName = cells.item(row, 1).value().bStr();
if(CustName == "")
CustName = int2str(cells.item(row, 1).value().double());
_countryRegionId = cells.item(row, 2).value().bStr();
AccountNum = cells.item(row, 3).value().bStr();
if(AccountNum == "")
AccountNum = int2str(cells.item(row, 3).value().double());
LogisticsLocationRoleName = cells.item(row, 4).value().bStr();
eMail = cells.item(row, 6).value().bStr();
phone = cells.item(row, 7).value().bStr();
fax = cells.item(row, 8).value().bStr();
url = cells.item(row, 14).value().bStr();
city = cells.item(row, 9).value().bStr();
countyId = cells.item(row, 10).value().bStr();
stateId = cells.item(row, 11).value().bStr();
street = cells.item(row, 12).value().bStr();
if(street == "")
street = int2str(cells.item(row, 12).value().double());
//district = cells.item(row, 17).value().bStr();
zipCodeId = cells.item(row, 13).value().bStr();
if(zipCodeId == "")
zipCodeId = int2str(cells.item(row, 13).value().double());
smmBusRelTable = smmBusRelTable::find(AccountNum);
if(smmBusRelTable)
{
LogisticsLocationRoleType = str2enum(LogisticsLocationRoleType,LogisticsLocationRoleName);
//MCGOneTimeAddress::CreateOneTimeAddress("","",street,city,district,countyid,stateid,zipCodeid,_countryRegionId,"","",LogisticsLocationRoleType::Payment);
MCGOneTimeAddress::mcLaneCreateOneTimeAddress(AccountNum,CustName,"",street,city,district,countyid,stateid,zipCodeid,_countryRegionId,phone,eMail,fax,url,LogisticsLocationRoleType);
numzipcodesinserted++;
}
numProcessedRecords++;
type = cells.item(row+1, 1).value().variantType();
}
while (type != COMVariantType::VT_EMPTY);
info(strFmt("zip-%1 - rec-%2",numzipcodesinserted,numProcessedRecords));
ttsCommit;
application.quit();
}
class:
class MCGOneTimeAddress
{
}
public static LogisticsLocationRecId mcLaneCreateOneTimeAddress(
smmBusRelAccount smmBusRelAccount,
CustName custName,
LogisticsAddressStreetNumber streetNumber,
AddressStreet street,
AddressCity city,
LogisticsAddressDistrictName districtName,
AddressCountyId county,
AddressStateId state,
AddressZipCodeId zip,
AddressCountryRegionId country,
Phone phone,
EMail eMail,
TeleFax fax,
URL url,
LogisticsLocationRoleType logisticsLocationRoleType
)
{
boolean validInsert = false;
LogisticsPostalAddress postalAddress;
smmBusRelTable smmBusRelTable;
container roleContainer;
DirPartyPostalAddressView addressView;
LogisticsLocation location;
LogisticsPostalAddressEntity postalAddressEntity;
LogisticsPostalAddressView logisticsPostalAddressView;
DirPartyLocationEntity partyLocationEntity;
LogisticsLocationRecId logisticsLocationRecId;
// If there aren't any address fields, don't try to create the address.
if (street == "" && city == "" && zip == "" && county == "" && country == "" && eMail == "" && phone == "")
{
return logisticsLocationRecId;
}
smmBusRelTable = smmBusRelTable::find(smmBusRelAccount);
roleContainer = [LogisticsLocationRole::findBytype(logisticsLocationRoleType).RecId];
if (smmBusRelTable)
{
addressView.StreetNumber = streetNumber;
addressView.Street = street;
addressView.City = city;
addressView.ZipCode = zip;
addressView.State = state;
addressView.County = county;
addressView.CountryRegionId = country;
addressView.DistrictName = districtName;
addressView.IsPrimary = NoYes::No;
addressView.Party = smmBusRelTable.Party;//new CustomerEntity(custTable, DirUtility::getCurrentDateTime()).getPartyRecId();
// Create LogisticsPostalAddress and LogisticsLocation
postalAddressEntity = LogisticsPostalAddressEntity::construct();
logisticsPostalAddressView.initFromPartyPostalAddressView(addressView);
postalAddress = postalAddressEntity.createPostalAddress(logisticsPostalAddressView);
if (postalAddress.RecId > 0)
{
partyLocationEntity = DirPartyLocationEntity::construct(addressView.Party);
partyLocationEntity.parmLocation(postalAddress.Location);
// Create party links
partyLocationEntity.createPartyLocationAssociation(roleContainer, addressView.IsPrimary, addressView.IsPrivate);
}
select forUpdate RecId from location where location.RecId == postalAddress.Location;
location.Description = custName;
location.update();
logisticsLocationRecId = location.RecId;
// Create LogisticsElectronicAddresses
if (eMail != "" ||phone != "" ||fax != "" ||url != "" )
{
MCGOneTimeAddress::CreateLogisticsElectronicAddress(logisticsLocationRecId, eMail,phone,fax,url);
}
/*
if (eMail != "")
{
MCGOneTimeAddress::CreateLogisticsElectronicAddress(logisticsLocationRecId, LogisticsElectronicAddressMethodType::Email, eMail);
}
if (phone != "")
{
MCGOneTimeAddress::CreateLogisticsElectronicAddress(logisticsLocationRecId, LogisticsElectronicAddressMethodType::Phone, phone);
}
if (fax != "")
{
MCGOneTimeAddress::CreateLogisticsElectronicAddress(logisticsLocationRecId, LogisticsElectronicAddressMethodType::Fax, fax);
}
if (url != "")
{
MCGOneTimeAddress::CreateLogisticsElectronicAddress(logisticsLocationRecId, LogisticsElectronicAddressMethodType::URL, url);
}*/
}
return logisticsLocationRecId;
}
public static void CreateLogisticsElectronicAddress(int64 parentLocationId,
EMail eMail,
Phone phone,
TeleFax fax,
URL url)//, LogisticsElectronicAddressMethodType methodType, LogisticsElectronicAddressLocator locator)
{
LogisticsLocation location;
LogisticsElectronicAddress electronicAddress;
location.initValue();
location.ParentLocation = parentLocationId;
location.IsPostalAddress = NoYes::No;
location.insert();
if(eMail)
{
electronicAddress.initValue();
electronicAddress.Type = LogisticsElectronicAddressMethodType::Email;
electronicAddress.Location = location.RecId;
electronicAddress.Locator = eMail;
electronicAddress.insert();
}
if(phone)
{
electronicAddress.initValue();
electronicAddress.Type = LogisticsElectronicAddressMethodType::Phone;
electronicAddress.Location = location.RecId;
electronicAddress.Locator = phone;
electronicAddress.insert();
}
if(fax)
{
electronicAddress.initValue();
electronicAddress.Type = LogisticsElectronicAddressMethodType::Fax;
electronicAddress.Location = location.RecId;
electronicAddress.Locator = fax;
electronicAddress.insert();
}
if(url)
{
electronicAddress.initValue();
electronicAddress.Type = LogisticsElectronicAddressMethodType::URL;
electronicAddress.Location = location.RecId;
electronicAddress.Locator = url;
electronicAddress.insert();
}
//info(strFmt("%1 - %2 -%3",location.RecId,electronicAddress.RecId,electronicAddress,electronicAddress.Locator));
}
reference: retailordermanager class