Symptom
Personal Public Service (PPS) numbers are allocated by the Department of Employment Affairs and Social Protection.
If National ID deep validation check-box is not enabled then:
- Valid values should be as per the regular expression format defined in CSFSDM.
- For Invalid values - validation should be thrown to match the regular expression values.
If National ID deep validation is enabled then:
- Valid values should be as per the logic defined for the respective country.
- If a value matching the regular expression as per CSFSDM is updated , but that value doesn't match the logic defined for that country then validation should be thrown.
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 - Localization & Country Specifics
Resolution
Current Code
<country id="IRL">
<format-group id="national-id">
<format id="PPSN">
<instruction>Personal Public Service Number</instruction>
<instruction xml:lang="de-DE">Personenkennzeichen</instruction>
<instruction xml:lang="el-GR">Αριθμός Μητρώου Δημόσιας Υπηρεσίας</instruction>
<instruction xml:lang="en-GB">Personal Public Service Number</instruction>
<instruction xml:lang="es-ES">Número personal de servicio público</instruction>
<instruction xml:lang="es-MX">Número personal de servicio público</instruction>
<instruction xml:lang="fi-FI">Personal Public Service Number</instruction>
<instruction xml:lang="fr-CA">Numéro personnel pour les services publics (Irlande)</instruction>
<instruction xml:lang="fr-FR">Numéro personnel de sécurité sociale</instruction>
<display-format>NNNNNNNAA</display-format>
<reg-ex>[\d]{7}[A-W]{1}[ABWXTZ]{0,1}</reg-ex>
</format>
Aditional Information
@Employee Central Product Support: See internal memo for further guidance
See Department of Employment Affairs and Social Protection here
Modulus 23 calculation
The alphabetic check character in position 8 is calculated using a weighted addition of all the numbers and a modulus 23 calculation. It therefore checks for incorrectly entered digits and for digit transposition - digits in the wrong order will alter the sum due to the weightings.
The alphabetic character in position 8 will continue to operate as a check character for all existing and the new range of PPS numbers. To avoid any confusion between an “old” number and a “new” number using the same 7 numeric values in the first 7 positions, the modulus 23 calculation will be revised as follows:
- A numeric value will be allocated to the new alphabetic character in position 9, with “A” = 1, “B” = 2, C = 3, etc. An existing “W” or a blank will be allocated a numeric value of zero.
- A weighting of 9 will be assigned to the numeric equivalent of the alphabetic character in position 9.
- Accordingly the check character for the “old” number 1234567 is “T”, whereas the check character for the “new” number 1234567_A will be “F”.
The new Modulus 23 calculation will not alter the alphabetic check character for existing PPS numbers as a numeric value of zero will be applied to a blank or a “W” in position 9.
NOTE: "B" character was recently introduced for position 9 (first half-year release of 2024). The regular expression must be adjusted from [\d]{7}[A-W]{1}[AWXTZ]{0,1} to [\d]{7}[A-W]{1}[ABWXTZ]{0,1}.
Keywords
ECT-109942, PPSN, National ID, Ireland,NNNNNNNAA,[\d]{7}[A-W]{1}[ABWXTZ]{0,1}, INC7845971 , KBA , LOD-SF-EC-PER-NAT , National ID - Config, Rules, RBP, UI , How To