import com.workbrain2.platform.publ.api.SystemPublicServiceAccess
import com.workbrain2.platform.publ.api.CurrentUserPublService
import com.workbrain2.platform.publ.api.exceptions.PublException
import com.workbrain2.ta.publ.api.employeeimport.EIContext
import com.workbrain2.ta.publ.api.employeeimport.EmployeeImportScriptable
import com.workbrain2.ta.publ.api.employeeimport.ctx.EmployeeCtxPublService
import com.workbrain2.ta.publ.api.employeeimport.ctx.EmployeeJobsCtxPublService
import com.workbrain2.ta.publ.api.employeeimport.ctx.EntitlementPolicyCtxPublService
import com.workbrain2.ta.publ.api.EmployeePublService
import com.workbrain2.ta.publ.api.TAPublicServiceAccess
import com.workbrain2.ta.publ.api.EmployeeImportServiceAccess
import com.workbrain2.ta.publ.api.EntitlementPublService
import com.workbrain2.ta.publ.api.domain.EmployeePubl
import com.workbrain2.ta.publ.api.domain.EmployeeJobPubl
import com.workbrain2.ta.publ.api.domain.EntitlementEmployeePolicyPubl
import com.workbrain2.ta.publ.api.domain.EntitlementPolicyPubl
class PreProcessorExample extends EmployeeImportScriptable {
@Override
void process(EIContext context) throws PublException {
EmployeeCtxPublService importEmployeeService = EmployeeImportServiceAccess.getEmployeeCtxPublService()
EmployeeJobsCtxPublService jobService = EmployeeImportServiceAccess.getEmployeeJobsCtxPublService()
CurrentUserPublService userService = SystemPublicServiceAccess.getCurrentUserService()
EmployeePubl employee = importEmployeeService.getEmployee(context)
List<EmployeeJobPubl> employeeJobs = jobService.getEmployeeJobs(context)
String employeeName = userService.getCurrentUser().getEmployeeName()
EmployeePubl newEmployee = TAPublicServiceAccess.getEmployeePublService().getEmployeePublBuilder()
.init(employee)
.setVal1(employeeName)
.setVal2("val2")
.build()
importEmployeeService.setEmployee(context, newEmployee)
for (EmployeeJobPubl employeeJob : employeeJobs) {
EmployeeJobPubl newEmployeeJob = TAPublicServiceAccess.getEmployeePublService().getEmployeeJobPublBuilder()
.init(employeeJob)
.setUdf1("udf1")
.build()
jobService.setEmployeeJob(context, newEmployeeJob)
}
// Entitlement Policy
EntitlementPolicyCtxPublService eiEntPolicyService = EmployeeImportServiceAccess.getEntitlementPolicyCtxPublService()
EntitlementPublService entPolicyService = TAPublicServiceAccess.getEntitlementService()
EntitlementPolicyPubl p2Policy = entPolicyService.getPolicyByName("P2")
// create new Policy
EntitlementEmployeePolicyPubl newEntPolicy = TAPublicServiceAccess.getEntitlementService().getEntitlementEmployeePolicyBuilder()
.setEntitlementPolicyId(p2Policy.getId())
.setStartDate(context.getOverrideStartDate())
.setEndDate(context.getOverrideEndDate())
.setFlag1("Y")
.setUdf1(newEmployee.getVal1())
.build()
eiEntPolicyService.setEntitlementPolicy(context, newEntPolicy)
}
}
import com.workbrain2.platform.publ.api.SystemPublicServiceAccess
import com.workbrain2.platform.publ.api.exceptions.PublException
import com.workbrain2.ta.publ.api.employeeimport.EIContext
import com.workbrain2.ta.publ.api.employeeimport.EmployeeImportScriptable
import com.workbrain2.ta.publ.api.employeeimport.ctx.EmployeeCtxPublService
import com.workbrain2.ta.publ.api.EmployeePublService
import com.workbrain2.ta.publ.api.TAPublicServiceAccess
import com.workbrain2.ta.publ.api.EmployeeImportServiceAccess
import com.workbrain2.ta.publ.api.EntitlementPublService
import com.workbrain2.ta.publ.api.domain.EmployeePubl
import com.workbrain2.ta.publ.api.domain.EntitlementEmployeePolicyPubl
import com.workbrain2.ta.publ.api.domain.EntitlementPolicyPubl
class PostProcessorOnProcessCompleteExample extends EmployeeImportScriptable {
@Override
void process(EIContext context) throws PublException {
}
@Override
void onProcessComplete(EIContext context) throws PublException {
EmployeeCtxPublService ieEmpService = EmployeeImportServiceAccess.getEmployeeCtxPublService()
EmployeePublService empService = TAPublicServiceAccess.getEmployeePublService()
EntitlementPublService entitlementService = TAPublicServiceAccess.getEntitlementService()
// employee update
//t1 - if getEmployeeByName was executed
EmployeePubl dbEmployee = empService.getEmployeeByName(context.getEmpName())
// t2 - if we can change cache data
EmployeePubl employee = ieEmpService.getEmployee(context)
EmployeePubl newEmployee = empService.getEmployeePublBuilder()
.init(employee)
.setFlag1("Y")
.build()
ieEmpService.setEmployee(context, newEmployee)
// t2- if we can execute policy update
EntitlementPolicyPubl p2Policy = entitlementService.getPolicyByName("P2")
EntitlementEmployeePolicyPubl policyPubl = entitlementService.getEntitlementEmployeePolicyBuilder()
.setEmployeeId(employee.getId())
.setStartDate(context.getOverrideStartDate())
.setEndDate(context.getOverrideEndDate())
.setEnabled(true)
.setPriority(10)
.setEntitlementPolicyId(p2Policy.getId())
.build()
entitlementService.addEntitlementEmployeePolicy(policyPubl)
}
}