Symptom
An error is encountered when saving Payment Information even though a Payment Method was selected : "Sorry, you should provide only one main payment method" or "Payment Method is a required field/association on Object Payment Information Detail". This can happen during Hiring / Rehiring New Employee or During Workflow Approval or for existing users. When this happens it is not possible to complete the transaction.
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 - Payment Information
- SAP SuccessFactors Employee Central - New Hire/Rehire
- SAP SuccessFactors Employee Central - Workflow
Reproducing the Issue
- Go to'Manage Pending Hire'
- Add the employee as a rehire and get to the compensation section- payment information
- When you will try to proceed with adding the mapped info to default Main payment method, the error "Sorry, you should provide only one main payment method" appears
- This could happen during Hiring / Rehiring New Employee or During Workflow Approval.
Also, the error may appear when saving Payment Information for existing users.
Cause
This issue is caused by one or the combination of the following:
- There may be an invalid configuration for Payment Information
- Payment Information UI has changed since the employee was last hired/active in the system
- There are Conditional Associations for Payment Information Detail-related objects such as Payment Information Detail USA under Configure Object Definition. This should be done as a part of the Configure UI Rules in Manage Business Configuration
- Configuration Issue - PayType field is disabled. This can be checked in Configure Object Definition > Payment Information Detail object
- UI Corruption
- OnInit rule defined in the Payment Information object. OnInit rules defaulting values triggered on the Payment Information Portlet are not supported
- The service center, performing the manage pending hire step, does not have access to the old profile and / or cannot disable old payment methods
- If it's happening during import, then the column "toPaymentInformationDetailV3.externalCode" is blank into import file. On the first time when payment information data was imported to any user, the system generates a unique externalCode for the initial import. Now if new data is imported to the system without this column toPaymentInformationDetailV3.externalCode filled, the system thinks that you are inserting another record for the Main Payment Method.
Resolution
To correct the configuration of the "payType" field on the "Payment Information Details V3" MDF Object -:
- Navigate to Admin Center > Configure Object Definitions. Select "Object Definition" and "Payment Information Details V3"
- Then click Take Action > Make Correction
- Then click "Details" link for the "payType" field (you can verify it is the correct field in Details by checking the Valid Values Source is set to - com.successfactors.employment.bean.core.model.EnumPayType)
- Set the Required flag to "YES" (as Payment Method is required - particularly for Payroll integration)
- Set the Visibility flag to "Editable" and click Done
- Scroll to the bottom of the object and click Save
NOTE: You will also need to add the field back to the Config UI via Admin Center > Manage Configuration UI. Either add it to the existing UI or create a new UI.
If there are conditional associations in Payment Information Detail-related objects, then remove the associations.
From b1811, a validation was strictly enforced for Payment Information and for customers that have existing configuration issues, specifically to the Payment Information configuration UI, they might face this. For example, once you create the Config UI for Payment Information, by default, you will have two UI Groups:
- PaymentInformationV3 UI Group which is the parent object resolver, ID = "baseobject"
- PaymentInformationDetailV3 UI Group which is the child object resolver, ID = "group-0"
Here's an example of a problematic Config UI:
In the example above, "Routing Number," which is a field defined within the PaymentInformationDetailsV3 object, is configured outside the child UI group. The field is placed within the parent UI group (for PaymentInformationV3).
In this case, the Configuration UI has to be corrected. Parent object fields need to be defined within the Parent UI group and the same applies to child object fields.
- If the field is defined within the Payment Information object, then in the Config UI it should also be placed within the Payment Information UI Group (baseobject).
- If the field is defined within the Payment Information Detail object, then in the config UI it should also be placed within the Payment Information Details UI Group (group-0).
If the issue persists, then most probably it is caused by a corrupt Payment Information UI in Mange Configuration UI. If it cannot be corrected, a new UI must be created or downloaded from Success Store.
In the case that there is an OnInit rule defined in the Payment Information object, please note that such a kind of rules are currently not supported on Parent object. You may instead use an onChange rule on field in PaymentInformationDetailsV3 object (Child) and the same Base Object for the rule (PaymentInformationDetailsV3).
If the issue is happening only during import (works fine in UI), to resolve it proceed with following steps:
- Go to import and export data page. (Go to Admin Center> Import and Export Data)
- Export Payment information detail (Please make sure that you have all the necessary permission to export data from the system)
- Check Employee Records that you are trying to import and get "toPaymentInformationDetailV3.externalCode" field value
- Fill "toPaymentInformationDetailV3.externalCode" into your import file and proceed with import.
Note: The error will still occurs if you try to add 2 Main Methods (during the same transaction) because there should only be One Payment Method.
See Also
2633574 - Application Error when trying to approve a Hire/Rehire Workflow
2293079 - Payment Information: Error when saving Payment Information
2684294- Pre-day 1 - Application error when hiring via Manage Pending Hires
2440812 - Defaulting Payment Information using Business Rules
2786878 - Unable to Import Payment Information Rules from Success Store
Keywords
Payment Information, Main Payment Method, "Sorry, you should provide only one main payment method" , OnSave Rule, b1811, ECT-102423, "Payment Method is a required field/association on Object Payment Information Detail" , KBA , LOD-SF-EC-PAY , Payment Information (Bank Information) , LOD-SF-EC-WFL , Workflows - Configuration, Tools, Objects & Rules , LOD-SF-EC-HIR , Hire & Rehire Wizards , Problem