SAP Knowledge Base Article - Public

2532512 - Position Management: Troubleshooting "error occurred while transitioning workflow" in position changes

Symptom

Sometimes when you try to approve a workflow regarding a position change you may get an error in the workflow saying "error occurred when transitioning workflow".

Another error that may happen is when you are importing a position change with SYNC and then you get the following error "Cannot cast class com.successfactors.ruleengine.gorule.bean.PickListValueWrapper to class java.lang.String"

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 Employee Central (EC) - All Versions

Reproducing the Issue

*VIA UI*

  1. Change position data via orgchart and save your changes;
  2. Approve the workflow;
  3. Get the error "error occured when transitioning workflow"

*VIA IMPORT*

  1. Prepare the file to import with the field technicalParameters enabled in position;
  2. Import the file with the field technicalParameters with the value SYNC;
  3. get the error "Cannot cast class com.successfactors.ruleengine.gorule.bean.PickListValueWrapper to class java.lang.String"

Cause

This error happens because there is an inconsistency between the picklist values from position and the picklist values from the HRIS element of the incumbent.

Below you can see the explanation and troubleshooting steps.

Resolution

  1.  The first step of your troubleshooting is to identify which fields you have configured in your sync rule, for this, you can go to Position Management Settings>Click on the Synchronization tab>check the field Rule for Synchronizing Position to Job Information;

KBA1.jpg

  1. After you identify the rule you need to see the rule to get the information about which fields you are syncing there (take note of those fields);

KB2.jpg

In this image (the first line) you can see that you have Job Information.Location which is the location of the employee receiving Job Information.Position.Location which is the location in the position of this employee. Basically this means that the location of the employee must derive from the location of the position which this employee occupies.

  1. Now that you know the fields, you must check the Position object in Configure object definitions, you must look for each field on that rule and take note of the ones which are picklists;

KB3.jpg

In this example here emplType is the only picklist field so you need take note of this field. And if you check the rule in step two you'll see that the employee type in job information derives from employee type in position.

  1. The next step is to check which picklist your field is using, you need to click on Details fot the specific field you have noted and look for Valid Values Source and also take note of this picklist name (this is the MDF picklist);

KB4.jpg

The picklist that you see in this screenshot is an MDF picklist. And when you have this sort of configuration you need to grant that both MDF and Legacy Picklist have the same values and external code.

  1.  Now that you have the picklist from position, you need to check the picklist being used for the job information field, for that you need o go to manage business configuration> select jobInfo >look for the field you are syncing> click on details;

KB5.jpg

  1. On the details section you have the picklist name from the job information, after performing this step you are going to compare both the MDF and legacy picklist and they must have the same values and external codes (take note of the legacy picklist name also);

KB6.jpg

  1. Now you will first get the MDF picklist, for this go to Configure Object Definitions> select Picklist > search for the MDF picklist you took note on the step 4;

KB7.jpg

  1. Download the legacy picklist that you took note on the step 6. You do this on: Picklist Management> Export All Picklist> uncheck Include System Generated Job Codes> click on submit;

KB8.jpg

Bellow you can se one image of the legacy picklist that I have in my step 6 (employee-type);

KB9.jpg

  1. In this last step you will compare Legacy Picklist X MDF picklist and correct any error you find:

KB10.jpg

You have three possibilities to correct this:

  1. Correct the MDF picklist (which is easier);
  2. Correct the legacy picklist;
  3. Simply remove this field from the sync rule (which is not the best solution);

You need to repeat the steps on this KBA for each picklist field you are syncing.

Keywords

position management, postojob, employee central, Pos2Job, Cannot cast class com.successfactors.ruleengine.gorule.bean.PickListValueWrapper to class java.lang.String , KBA , LOD-SF-EC-POS , Position Management , LOD-SF-EC , Employee Central , How To

Product

SAP SuccessFactors Employee Central all versions