Following Job shows you structure which can be helpful in loading data in employee table.
static void uploadWorker(Args _args)
{
CommaTextIo file;
container record;
Description PersonnelNumber,EmploymentType, FirstName, LastName, middleName, Name, Gender, LegalEntity, Address, AddressPhone, CellularPhone, CalendarId, Citizenship, Email, HcmEmployment_ValidFrom, HcmEmployment_ValidTo, Religion, Doctrine, MaritalStatus, Employment_Type, StaffCategory, ProbationEndDate, Employee_status, FirstName_Arabic, LastName_Arabic, Name_Arabic, Designation_Arabic, Grade_Arabic,Department_Arabic, Section_Arabic,Branch_Arabic,Joiningdate_Arabic, EDCemployeeno_Arabic, Nationality_Arabic;
counter c = 0, HcmCompensationLevelCounter = 1;
DirPersonName DirPersonName;
HcmWorkerRecId hcmWorkerRecId;
HcmWorker hcmWorker;
HcmPersonDetails HcmPersonDetails;
HcmPersonPrivateDetails HcmPersonPrivateDetails;
HcmEmployment HcmEmployment;
Date validFrom, ValidTo;
GDI_Status GDI_Status;
utcDateTime _validFrom, _validTo;
;
file = new CommaTextIo(‘D:\\ImportedData\\Copy of Employee Master_Updated.csv’,’r’);
file.inFieldDelimiter(‘,’);
ttsBegin;
while (file.status() == IO_Status::Ok)
{
record = file.read();
PersonnelNumber = conPeek(record, 1);
EmploymentType = conPeek(record, 2);
FirstName = conPeek(record, 3);
LastName = conPeek(record, 4);
middleName = conPeek(record, 5);
Name = conPeek(record, 6);
Gender = conPeek(record, 7);
LegalEntity = conPeek(record, 8);
Address = conPeek(record, 9);
AddressPhone = conPeek(record, 10);
CellularPhone = conPeek(record, 11);
CalendarId = conPeek(record, 12);
Citizenship = conPeek(record, 13);
Email = conPeek(record, 14);
HcmEmployment_ValidFrom = conPeek(record, 15);
HcmEmployment_ValidTo = conPeek(record, 16);
Religion = conPeek(record, 17);
Doctrine = conPeek(record, 18);
MaritalStatus = conPeek(record, 19);
Employment_Type = conPeek(record, 20);
StaffCategory = conPeek(record, 21);
ProbationEndDate = conPeek(record, 22);
Employee_status = conPeek(record, 23);
FirstName_Arabic = conPeek(record, 24);
LastName_Arabic = conPeek(record, 25);
Name_Arabic = conPeek(record, 26);
Designation_Arabic = conPeek(record, 28);
Grade_Arabic = conPeek(record, 29);
Department_Arabic = conPeek(record, 30);
Section_Arabic = conPeek(record, 31);
Branch_Arabic = conPeek(record, 32);
Joiningdate_Arabic = conPeek(record, 33);
EDCemployeeno_Arabic = conPeek(record, 34);
Nationality_Arabic= conPeek(record, 35);
validFrom = str2date(HcmEmployment_ValidFrom, 213);
validTo = str2date(HcmEmployment_ValidTo, 213);
if (validTo < validFrom)
{
validFrom = str2date(HcmEmployment_ValidFrom, 213);
validTo = maxdate();
}
if (PersonnelNumber)
{
DirPersonName.clear();
DirPersonName.initValue();
DirPersonName.FirstName = (FirstName == ” ? Name : FirstName);
DirPersonName.LastName = LastName;
hcmWorker = hcmWorker::findByPersonnelNumber(strRFix(PersonnelNumber,4,’0′));
if (hcmWorker.RecId == 0)
{
hcmWorkerRecId = HcmWorkerTransition::newCreateHcmWorker(DirPersonName, strRFix(PersonnelNumber,4,’0′));
hcmWorker = hcmWorker::find(hcmWorkerRecId);
if (hcmWorkerRecId == 0)
{
continue;
}
}
else
{
DirPersonName = DirPersonName::find(hcmWorker.Person);
hcmWorkerRecId = hcmWorker.RecId;
}
HcmPersonPrivateDetails = HcmPersonPrivateDetails::findByPerson(hcmWorker.Person, true);
if (HcmPersonPrivateDetails.RecId)
{
HcmPersonPrivateDetails.Gender = (Gender == ‘F’? HcmPersonGender::Female:HcmPersonGender::Male);
// HcmPersonPrivateDetails.update();
}
else
{
HcmPersonPrivateDetails.Person = hcmWorker.Person;
HcmPersonPrivateDetails.Gender = (Gender == ‘F’? HcmPersonGender::Female:HcmPersonGender::Male);
// HcmPersonPrivateDetails.insert();
}
_validFrom = DateTimeUtil::minValue();
_validTo = DateTimeUtil::maxValue();
select ValidTimeState(_validFrom, _validTo) hcmEmployment
where HcmEmployment.Worker == hcmWorkerRecId;
// HcmEmployment = HcmEmployment::findByWorkerLegalEntity(hcmWorkerRecId, CompanyInfo::current());
HcmEmployment = HcmEmployment::find(HcmEmployment.RecId, true);
if (HcmEmployment.RecId)
{
HcmEmployment.ValidFrom = DateTimeUtil::newDateTime(validFrom, 0);
HcmEmployment.ValidTo = DateTimeUtil::newDateTime(ValidTo, 0);
HcmEmployment.validTimeStateUpdateMode(ValidTimeStateUpdate::Correction);
//HcmEmployment.update();
}
HcmPersonDetails = HcmPersonDetails::findByPerson(hcmWorker.Person, DateTimeUtil::minValue(), DateTimeUtil::utcNow(),true);
if (HcmPersonDetails.RecId)
{
HcmPersonDetails.MaritalStatus = (MaritalStatus == ‘Married’ ? HcmPersonMaritalStatus::Married : HcmPersonMaritalStatus::Single);
HcmPersonDetails.validTimeStateUpdateMode(ValidTimeStateUpdate::Correction);
HcmPersonDetails.GDI_Status = str2enum(GDI_Status, Employee_status);
HcmPersonDetails.FirstName_Arabic = FirstName_Arabic;
HcmPersonDetails.LastName_Arabic = LastName_Arabic;
HcmPersonDetails.Name_Arabic = Name_Arabic;
HcmPersonDetails.Grade_Arabic = Grade_Arabic;
HcmPersonDetails.Department_Arabic = Department_Arabic;
HcmPersonDetails.Section_Arabic = Section_Arabic;
HcmPersonDetails.Branch = Branch_Arabic;
HcmPersonDetails.EDCEmployeeNo = EDCemployeeno_Arabic;
HcmPersonDetails.Nationality = Nationality_Arabic;
HcmPersonDetails.JoiningDate = Joiningdate_Arabic;
//HcmPersonDetails.ValidFrom = DateTimeUtil::newDateTime(validFrom, 0);
// HcmPersonDetails.ValidTo = DateTimeUtil::newDateTime(ValidTo, 0);
HcmPersonDetails.update();
}
else
{
HcmPersonDetails.Person = hcmWorker.Person;
HcmPersonDetails.MaritalStatus = (MaritalStatus == ‘Married’ ? HcmPersonMaritalStatus::Married : HcmPersonMaritalStatus::Single);
HcmPersonDetails.validTimeStateUpdateMode(ValidTimeStateUpdate::Correction);
HcmPersonDetails.GDI_Status = str2enum(GDI_Status, Employee_status);
HcmPersonDetails.FirstName_Arabic = FirstName_Arabic;
HcmPersonDetails.LastName_Arabic = LastName_Arabic;
HcmPersonDetails.Name_Arabic = Name_Arabic;
HcmPersonDetails.Grade_Arabic = Grade_Arabic;
HcmPersonDetails.Department_Arabic = Department_Arabic;
HcmPersonDetails.Section_Arabic = Section_Arabic;
HcmPersonDetails.Branch = Branch_Arabic;
HcmPersonDetails.EDCEmployeeNo = EDCemployeeno_Arabic;
HcmPersonDetails.Nationality = Nationality_Arabic;
HcmPersonDetails.JoiningDate = Joiningdate_Arabic;
// HcmPersonDetails.insert();
}
}
else
{
info(strFmt(“Line number %1 could not be inserted”,c));
}
}
ttsCommit;
info(“Job has been completed”);
}