SAP Knowledge Base Article - Public

2878664 - Compensation - Launching form job fails with Error: For input string: "N/A"

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 JobExecutionProxy
com.successfactors.jobscheduler.ScheduledJobExecutionException: Execution Job failed in JobExecutionProxy
at 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.

Suite Integration Test Page.png

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.

GetEffectiveEntityForUse compensation query.png

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:

GetEffectiveEntityForUser error.png

For employees which have no data issues it'll populate results as shown below:

GetEffectiveEntityForUse correct results.png

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

Product

SAP SuccessFactors Compensation all versions ; SAP SuccessFactors HCM Suite all versions