Symptom
When launching forms, you can see these jobs are failing
How can these be corrected and where are they populating?
Important: The below steps will only be available for EC instances only. Should you have this issue when using nonEC then we recommend reviewing the UDF fully.
**Image/data in this KBA is from SAP internal systems, sample data, or demo systems. Any resemblance to real data is purely coincidental**
Environment
SAP SuccessFactors Compensation
Cause
When checking the provisioning jobs, we can see the following within the details:
2019-12-17 20:45:00.123, ID="123456789", JOB_REQUEST_ID="77776", NAME="CompMassCreate_AdminMassCreate_Tue Dec 17 20:40:02 CET 2019", COMPANY_ID="TESTINSTANCE", TYPE_NAME="CompMassCreate", HOSTNAME="sc2bs2job07t", QUEUE="default", STATUS="FAILED", WORKER_START_DATETIME="2019-12-17 20:40:12.19661", WORKER_END_DATETIME="2019-12-17 20:40:32.040562", RUN_AT="2019-12-17 20:40:12.0", SCHEDULED_DATETIME="2019-12-17 20:40:12.0", ERROR_INFO="Execution Job failed in JobExecutionProxycom.successfactors.jobscheduler.ScheduledJobExecutionException: Execution Job failed in JobExecutionProxyat com.successfactors.schedulerservice.JobExecutionProxy.execute(JobExecutionProxy.java:291)
at com.successfactors.schedulerservice.workermgmt.WorkerThread$ExecuteJob.execute(WorkerThread.java:213)
at com.successfactors.schedulerservice.workermgmt.WorkerThread$ExecuteJob.access$2(WorkerThread.java:209)
at com.successfactors.schedulerservice.workermgmt.WorkerThread.run(WorkerThread.java:77)
Caused by: com.successfactors.jobscheduler.ScheduledJobExecutionException: [Error: For input string: "N/A"]at com.successfactors.jobscheduler.jobimpl.SimpleJob.execute(SimpleJob.java:493)
Resolution
This error can occur due to employee data being mapped from Employee Central.
The request here would be to ensure employee data is 100% accurate in Employee Central before launching forms.
While checking logs mentioned above, we can see the following which notes HRIS properties:
Caused by: java.lang.NumberFormatException: For input string: "N/A"at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
at java.lang.Long.parseLong(Long.java:589)
at java.lang.Long.parseLong(Long.java:631)
at com.successfactors.hris.service.impl.PropertyResolver.getPropertyFromHrisElementField(PropertyResolver.java:846)
at com.successfactors.hris.service.impl.PropertyResolver.getProperty(PropertyResolver.java:512)
at com.successfactors.hris.service.impl.PropertyResolver.getValueFromRuleEngine(PropertyResolver.java:339)
at com.successfactors.hris.service.impl.HrisPropertyHandler.getProperty(HrisPropertyHandler.java:59)
We can narrow this down to custom columns mapped to EC fields which have a property. For example, when you map a column to Jobinfo.customString6.name or Jobinfo.customString6.Externalname etc.
Using the suite tool, we can check a planners reports for these fields coming from EC to determine where the problem field/user can be.
This page can be found in Provisioning under 'Suite Integration Test Page'.
Using the execution of 'GetEffectiveEntityForUse' you can query each field you have mapped in the template for each user.
When you access this page copy the text from the 'Request Parameters' box into notepad/Notepad ++, then clear the page.
The query we want to use here would be the following from the text you copy from the UI.
GetEffectiveEntityForUser API request parameters example{
"ruleExternalCode":"ValidateJob",
"startDate":"2011-11-01",
"userSysIds":["admin","asingh1"],
"templateId":"1", --> Used for compensation promotion. Optional to provide.
"displayPolicy":"1", -->1 mean external code and 2 mean-Displayname
"requestedKeys":["jobInfo.job-code","jobInfo.job-title","jobInfo.location","jobInfo.notes"]
}
Populate the fields as needed which should include username, startdate (Template EC effective date), requestedkeys for the fields and ruleExternalCode which is always 'ValidateJob'.
Below is an example of this query. Note the templateId can be left at '1' as well as the displayPolicy.
{"ruleExternalCode":"ValidateJob",
"startDate":"2020-03-01",
"userSysIds":["ADMIN"],
"templateId":"1",
"displayPolicy":"1",
"requestedKeys":["jobInfo.custom-string6.externalName"]
}
Once this is written out with the columns etc paste it into the UI and select the 'Execute GetEffectiveEntityForUse' option.
Once executed you will get either result at the bottom of the page or nothing.
Should there be data issues with the employee on these columns the page will show a response as follows:
For employees which have no data issues it'll populate results as shown below:
With this you can find, correct the problem and attempt to launch forms again.
Note
If you are launching a form for a planner and the job fails, you will need to do this check on all of the employees who they are planning for.
Keywords
For input string, "N/A", launch forms failed, launch failure, JobExecutionProxy, suite integration, compensation form launch, comp forms, worksheet error, getPropertyFromHrisElementField, , KBA , LOD-SF-CMP , Compensation Management , LOD-SF-CMP-FRM , Forms & Templates , Problem