Symptom
Getting the following error message when trying to create a job requisition from the position:
"Sorry, the requisition cannot be created. Creation of a job requisition for position xxxxx failed. Details: The mapping field xxxx is entered in the rule to refer to another OData object, but the Job Requisition OData object has no field with this name that refers to another object."
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 Recruiting Management
Reproducing the Issue
- Go to Position org chart
- Create a requisition from a position
- Note the error shown above
Cause
1. Field not present on the OData API Data Dictionary.
Here are possible causes:
- Spelling of the field is incorrect in the business rule. For example, the field defined in the Job Requisition is PayScaleArea, but the mapping rule is pointing to payScaleArea.
- Custom Field ID contains hyphens. The system converts hyphens (-) in OData property names to underscores (_) by default, which can cause Field ID mismatching.
- OData API Metadata is unsynchronized.
2. Wrong field type on the OData API Data Dictionary.
In the OData API Data Dictionary for the JobRequisition entity, the field appears as a wrong field type. Here are possible causes:
- In one or more of the Job Requisition Templates, the Field ID has been defined using a different field type.
- In Provisioning > Configure Reportable Custom Fields, the Field ID has been associated with a different field type.
3. Wrong Requisition Field for mapping an object field in the business rule.
For example, the Position code is mapped using "std_position_obj.externalCode" instead of "std_position_obj.code".
4. The reference object type configured in the Job Requisition template is not API visible.
The object is not visible in OData API Data Dictionary.
Resolution
1. Field not present on the OData API Data Dictionary.
Download the latest Job Requisition template and make sure that the field has been defined correctly. Please do not use hyphens (-) when naming a custom Field ID, use underscores instead.
Make sure that the spelling of the Requisition Field in the business rule is correct.
If the configurations are correct, go to 'OData API Metadata Refresh and Export' to refresh the metadata.
2. Wrong field type on the OData API Data Dictionary.
Make sure that the field definition is consistent across all active and inactive Job Requisition templates.
For a custom reportable field, make sure that the field has been associated with the correct field type via Provisioning > Configure Reportable Custom Fields.
If there is a reason you would like the field to be of a different field type in one template, you must create a new Field ID in that template.
Once this is done, perform an OData API metadata refresh and re-test the mapping.
Note: Please be aware of the following KBA if changing the field type: 2734323 - Please Do Not Change Field Types in SuccessFactors Recruiting Templates. If the field has been used and contains real data, it would be better to create a new field altogether for the mapping, which has the same field definition id and type on all requisition templates.
3. Wrong Requisition Field for mapping an object field in the business rule.
The External Code is used to map object fields. In certain objects, the externalCode is named as "externalCode", while in others it is named as "code".
Follow the steps below to review the object definition:
- Go to Configure Object Definitions.
- In the 1st dropdown, select Object Definition.
- In the end dropdown, select the object.
- In the list of fields, check the name column of externalCode.
If the name column is "externalCode", the Requisition field in the business rule should be "xxxx.externalCode".
If the name column is "code", the Requisition field in the business rule should be "xxxx.code".
For example, the standard position field should be mapped using "std_position_obj.code". Other similar objects are Pay Scale Area, Pay Scale Group, and so on.
4. The reference object type configured in the Job Requisition template is not API visible.
- Go to Configure Object Definitions.
- In the 1st dropdown, select Object Definition.
- In the end dropdown, select the object.
- Make sure that 'API Visibility' is set to 'Editable' or 'Read Only'.
- In the list of fields, locate the field property mapped, e.g. externalCode. Click on Details and make sure that 'Visibility' is set to 'Editable' or 'Read Only'.
Once this is done, perform an OData API metadata refresh. Check the OData API Data Dictionary to ensure that the object and the mapped field property is visible.
See Also
Similar errors:
- KBA 2761103 - Rule Error While Creating Job Requisition via Position Org Chart: "The mapping field (field name) is entered in the rule to refer to the field (object field) of OData object (object name), but the object (object name) has no such field."- Recruiting Management
- KBA 2621016 - Creation of a job requisition for position **** failed. Details: The mapping field **** is entered in the rule to refer to a simple data type
Configurations:
- KBA 2361220 - How to map Picklist fields in EC Position Management to RCM Integration with oData API
- KBA 2501144 - Position to Job Requisition Rule Definition for the Job Requisition FO/GO Object Fields
- KBA 2734323 - Please Do Not Change Field Types in SuccessFactors Recruiting Templates
- KBA 3294721 - Hyphens (-) in custom Recruiting Field IDs can break Suite Integration - Recruiting Management
Keywords
RCM, EC, position management, Picklist, Job Requisition, OData, object, externalCode, business rule, mapping , KBA , LOD-SF-RCM-POS , Position Integration , LOD-SF-RCM-JOB , Job Postings & Requisitions , LOD-SF-RCM-INT , Integration Center & Intelligent Services , LOD-SF-RCM-API , Webservices & APIs , Problem