SAP Knowledge Base Article - Public

3121216 - Changes in Labor Law 2021 (Saudi Arabia)

Symptom

The purpose of this KBA is to guide you with possible solutionto adapt your SuccessFactors Employee Central and Employee Central Payroll implementation with the latest labor reforms initiative that was effective in March 2021 and the Saudi labor law proposed changes announced in early 2021 which aims to support Saudi 2030 vision for establishing an attractive job market, empowering, and developing labor competencies and developing the work environment in the Kingdom. 

The changes are related to the following topics: 

  1. Labor Reforms Initiative 
  2. Contract Binding  
  3. Probation Period 
  4. Contract Termination 
  5. Notice Period 
  6. Time Management 

Environment

  • SAP SuccessFactors Employee Central
  • SAP SuccessFactors Employee Central Payroll
  • SAP SuccessFactors HXM Suite

Resolution

  1. 1. Labor Reforms Initiative 

Expat employee has the right to transfer his sponsorship to a new employer freely without the current employer's approval. In case employer did renew the employee’s work-permit and Iqama and paid the government fees already before he receives the employee separation request then employer has the right to take appropriate compensation from the employee corresponding to the extra fees the employer has paid. 

Solution 

  1. A new field “Document Fees (SAR)” will be introduced in Employee Central Payroll in infotype 0185 “Personal ID” to capture the fees. 
  2. A new custom field “Document Fees (SAR)” should be added to let employee or HR Admin enter the fees in Employee Central in “Work Permit” portlet. 
  3. Configure replication of SAU-Work Permit” document type in “Work Permit portlet to infotype 0185 “Personal ID”. 
  4. Replication logic should also be added to replicate the fees amount from “Work Permit” portlet to infotype 0185 “Personal ID. 
  5. The calculation of the compensation will take place in Employee Central Payroll based on “work-permit and “Iqama renewal fees, and the duration between employee “termination date” and “contract end date”. 

How to add new custom field “Document Fees (SAR)” in “Work Permit” portlet? 

  1. Go to Admin Center -> Manage Data -> Manage Business Configuration. 
  2. Select WorkPermitInfo. 
  3. In the HRIS fields, add a new custom field with the Identifier as custom-doubleXX where XX is the next available field from 1 to 20. 
  4. Add the Label as ‘Document Fees (SAR)’, Enabled as ‘Yes’ and Mandatory as Yes / No as per the company requirement. 
  5. Select ‘Details’ to modify the other field attributes. 
  6. Click on ‘Save’ to save the information. 
    BCUI.png
  7. If you want to label the field in Arabic, then use the succession data model to modify the HRIS element from provisioning as below after saving the above WorkPermitInfo HRIS element. 
    <label xml:lang="ar-SA">  رسوم المستندات (ريال سعودي) </label>  
    XML.png

The Arabic language can also be provided in BCUI (Manage Business Configuration). If the user selects the icon on the right side close to the label in English, they will get a new UI with all the enabled languages and can provided the Arabic label under ar_SA - رسوم المستندات (ريال سعودي). 

Grant permission to the role via Manage Permission Roles --> Employee Central Effective Dated Entities. 

How to configure replication of “SAU-Work Permit” document type in “Work Permit” portlet to infotype 0185 “Personal ID? 

Step 1: You can enable the replication of Personal IDs from Work Permit portlet to infotype 0185 for any other countries/regions, via Customer table HRSFEC_D_IT0185C. 

You can find more details in the following link: 

You need to maintain one entry in table HRSFEC_D_IT0185C with below details in respective field: 

MOLGA =24 (MOLGA of SA) 

EC_DATA_TYPE = PERSON_IDENTIFICATION_DOC_TYPE (Data type in Employee Central). 

Step 2: You need to configure the required document type in table T77SFEC_CVMAPC. 

EC_DATA_TYPE = PERSON_IDENTIFICATION_DOC_TYPE (Data type in Employee Central). 

COUNTRY_ISO = SA (ISO Code of the Country/Region). 

ALT_LIST_ID = Leave this as BLANK. 

EC_CODE_VALUE = Fill required document type need to be replicated in ECP which is already present in EC. 

ERP_CODE_VALUE = Fill respective valid sub type of IT0185 where it will be replicated in ECP for IT0185. 

   

Step 3: you need to maintain one entry in table T77SFEC_IT_FILT for SA with below details in respective field to consider IT0185 as part of replication. 

MOLGA = 24 (MOLGA of SA) 

INFTY = 0185 (required Info type) 

SUBTY = * (Required sub type, * is for all sub type else can maintain any particular sub type) 

How to enable replication of “Document Fees (SAR)” from “Work Permit” portlet to infotype 0185 “Personal ID” using BADi? 

Ensure that the following notes are implemented as a prerequisite before BADI implementation: 

SAP Note: 3116534 - [PTP] - Adapt Secondary Infotype for Infotype 0185 

Below logic should be implemented in method if_hrsfec_ce_change_it0185~change_info_type_data of your BADI implementation class. You need to mention your field type used for "Document fees" field in work permit portlet in Employee Central (EC) system instead of 'custom_doubleXX'. 

METHOD if_hrsfec_ce_change_it0185~change_info_type_data. 
    DATA: lv_value_list   TYPE pad_sfec_ce_field_value, 
          cs_prelp_secondarylike LINE OF CT_PRELP_SECONDARY, 
          lx_hrsfec_ce_conv  TYPE REF TO  cx_hrsfec_ce_conv, 
          lv_second_titleTYPE string. 
    DATA: ls_t582v TYPE t582v, 
          ls_t582w TYPE t582w, 
          lv_secondary_infty_existsTYPE abap_bool, 
          ls_p3305 TYPE p3305. 
    CONSTANTS: gc_secondary_3305 TYPE INFTY VALUE '3305'. 
* Below logic is implemented for 'SAU' only 
    LOOP AT is_employment_node-personal_documents_informationASSIGNING FIELD-SYMBOL(<fs>) WHERE country EQ 'SAU'. 
** In below line 'custom_doubleXX' is the type of field configured for "Document fees" field in EC side in work permit portlet. 
** You need to mention your own field type in place of 'custom_doubleXX' whic is used for "Document fees" field in EC system to replicate successfully 
      READ TABLE <fs>-_value_listINTO lv_value_listWITH KEY element_name= 'custom_doubleXX'. 
** As there is no standard field for "Document Fees" in IT0185, this value is coming in _value_list section only. 
      IF sy-subrc= 0 AND lv_value_list-element_valueIS NOT INITIAL. 
** Fetching existing IT0185 data of the same record comparing the document number, Issue date and Expiration date 
        READ TABLE ct_infty_0185 ASSIGNING FIELD-SYMBOL(<fs_0185>) 
                                 WITH KEY icnum= <fs>-document_number 
                                          begda= <fs>-issue_date 
                                          endda= <fs>-expiration_date. 
        IF sy-subrc= 0. 
*Check for secondary infotype 
      lv_secondary_infty_exists= cl_hr_t582v=>check_view_existence( infty= cl_hrsfec_service_lib=>gc_infty_0002 ). 
      IF lv_secondary_infty_exists= abap_true. 
        ls_t582v = cl_hr_t582v=>read( 
                 molga= '24' 
                 infty= '0185' ). 
        IF ls_t582v IS NOT INITIAL. 
          ls_t582w = cl_hr_t582w=>read( vinft= ls_t582v-vinft seqnr= 2 ). 
          IF ls_t582w-infty = gc_secondary_3305. 
*            add the value to the global attribute 
              cv_infty_prelp_secondary= ls_t582w-infty. 
              ls_p3305-pskey        = <fs_0185>-pskey. 
              ls_p3305-pskey-infty  =gc_secondary_3305. 
**            Assigning the value of Document Fees to field DCFEE in secondary info type 
              TRY. 
                 ls_p3305-dcfee  =lv_value_list-element_value. 
              CATCH cx_hrsfec_ce_convINTO lx_hrsfec_ce_conv. 
                      CALL METHOD io_msg_handler->collect_exception_message 
                        EXPORTING 
                          ix_hrsfec_root= lx_hrsfec_ce_conv. 
              ENDTRY. 
*             Convert back to PRELP 
              CALL METHOD cl_hr_pnnnn_type_cast=>pnnnn_to_prelp 
                EXPORTING 
                  pnnnn= ls_p3305 
                IMPORTING 
                  prelp= cs_prelp_secondary.   " HR Master Data Buffer 
              append cs_prelp_secondaryto CT_PRELP_SECONDARY. 
              CLEAR: ls_p3305. 
          ENDIF. 
        ENDIF. 
    ENDIF. 
        ENDIF. 
      ENDIF. 
    ENDLOOP. 
  ENDMETHOD. 

How will Work Permit fees compensation be calculated in Payroll? 

Please refer to the following SAP Note:  3104091 - 2021 Legal Changes

 

  1. 2. Contract Binding 

All labor contracts (newly issued and renewal) should be legally registered by updating employee contract information in GOSI/Mudad portal. 

Solution 

  1. The HR (GRO) will update a new custom field “Contract Registration Status in “Job Information” portlet in Employee Central to indicate the registration status. 

  1. The HR (GRO) will generate one report from Employee Central Reporting with all contract details due for registration to use this info in updating the government portal. 

How to add new custom field “Contract Registration Status” in “Job Information” portlet? 

 

How to add the new field in Employee Central. 

  1. Go to Admin Center -> Manage Data -> Picklist Center. 
  2. Create a new picklist id (e.g., “contractRegStatus_SAU”). 
  3.  Add the values Unregistered and Registered. 
  4. Click on ‘Save’ to save the information. 
  5. Go to Admin Center -> Manage Data -> Manage Business Configuration. 
  6. Select jobInfo and the country jobInfo_SAU. 
  7. In the HRIS fields, add a new custom field with the Identifier as custom-stringxx where xx is the next available field from 1 to 20. 
  8. Add the Label as ‘Contract Registration Status’, Enabled as ‘Yes’ and Mandatory as Yes / No as per the company requirement. 
  9. Select ‘Details’ to modify the other field attributes. 
  10. Assigthe created picklist (e.g., “contractRegStatus_SAU”) to the field “Picklist”. 
  11. Click on ‘Save’ to save the information. 
    bcui2.png
    DEATILS.png
  12. Grant permission to the role via Manage Permission Roles --> Employee Central Effective Dated Entities
    RBP.png
    JobInfo.png

How to generate employee contract information report for unregistered contracts? 

 

  1. Go to reporting. 
  2. Click on New” to create new report. 
  3. Select “Story”. 
  4. Query Designer will open, in “Available Data” section, search for Job Information. 
  5. We need to build tables relationship like below: 
    table.png
  6. Click on “Job Information”. 
  7. Click on “Select Columns” to select the columns you need to show in the report. 
  8. Click on “Add Filters”, then “Simple Filter” to filter only effective records (Effective End Date is 31 Dec 9999). 
  9. Click on “Show Related Tables to add below tables and select the columns you need from each report to show in the report 
          a.
    Compensation > Pay Component and filter on Basic Salary Pay Component 
          b. Click on “Pay Component” and click on “Copy” then filter on Housing Pay Component 
          c. Employment > Country-specific Job Information > Saudi Arabia 
          d. Personal Information > Biographical Information > National ID Information 
  10. After finishing the query, go to the “Designer” then “Builder” to select the columns and the order of display. 
  1. 3. Probation Period 

Probation Period can be either 90 or 180 days, 90 days can be extended to 180 days within the first 90 days from contract start date. 

Solution 

  1. Enable the field “Probation Period” in Job Information portlet in Employee Central. 

  1. A business rule to be created to validate that probation period is either 90 or 180 days and if change from 90 to 180 days takes place in first 90 days from contract start date. 

How to create validation business rules for probation period? 

 

  1. Make the field of Job Information > Probation Period visible via Manage Business Configuration --> Employee Central --> HRIS Elements --> jobInfo --> jobinfo_SAU. 
    bcui3.png
  2. Grant permission to the role via Manage Permission Roles --> Employee Central Effective Dated Entities --> check the access. 
    rbo2.png
    jobinfo2.png
  3. Create message via Manage Data --> Message Definition. 
    MesDef.png
    Messages can be translated into local languages by clicking on the language you want to modify. 
    Translation.png

  4. Create validation rule via Configure Business Rules for scenario Employee Central Core --> Validation for HRIS Elements (using the message created in step 3.) 
    The new rule to limit the change can only be from 90 to 180. 
    rule1.png
    A new rule to limit the change can only be made within the first 90 days from Job Information hire date (contract start date). 
    rule2.png

  5. Assign the new rules to the field Probation Period via Manage Business Configuration --> Employee Central --> HRIS Elements --> jobInfo --> jobinfo_SAU. 
    trigger.png
  6. Go to Employment Information and check/edit Job Information ‘Probation Period’.
  1. 4.Contract Termination 

There are many termination cases, here we focus on 4 of them. 

Case #1: In case employee with limited contract wants separation from employer before contract expiry date without agreement (Unagreed Separation)“Separation Penalty” will be deducted from employee equal the salary corresponding to remaining period in the contract (min 2 months’ salary) or lumpsum amount per the contract if exist. 

Case #2: In case employer wants to terminate employee with limited contract before contract expiry date without agreement (Unagreed Termination), a “Termination Compensation” will be paid to employee equal the salary corresponding to remaining period in the contract (min 2 months’ salary) or lumpsum amount per the contract if exist. 

Case #3: In case employee with unlimited contract wants separation from employer before contract expiry date without agreement (Illegal Separation), a “Separation Penalty” will be deducted from employee equal half month salary for each service year (min 2 months’ salary) or lumpsum per the contract if exist. 

Case #4: In case employer wants to terminate employee with unlimited contract before contract expiry date without agreement (Illegal Termination), a “Termination Compensation” will be paid to employee equal one-month salary for each service year (min 2 months’ salary) or lumpsum amount per the contract if exist. 

In general, end of service gratuity (EOS) will be calculated for all cases and paid through off-cycle. 

Solution 

  1. The calculation of the penalty or compensation will take place in Employee Central Payroll based on termination action reason (that will be replicated from Employee Central)duration remaining in contract or duration of service depending on the case, any agreed penalty/compensation lumpsum amount. 
  2. Penalty and compensation lumpsum amounts will be driven from wage types “Separation Penalty” and “Termination Compensation” in infotype 0014 “Recuring Payment” in Employee Central Payroll. 
  3. The wage types will be replicated from pay components saved in “Compensation” portlet in Employee Central. 
  4. New off-cycle payroll reason will be introduced to pay EOS. 

How to add new pay components for “Separation Penalty” and “Termination Compensation” in Compensation’ portlet? 

Solution 

  1. Employee and Employer agreed to pay / compensate in case of Employee resigns or employer terminates the employee without an agreement with other party 
  2. During hiring an employee using Add New Employee / Add New Employee Fixed Term / Manage Pending Hires, make sure you maintain this employee lumpsum penalty or employer lumpsum compensation as
    one time deduction / 
    one time payment with the deduction / payment date as Dec 31, 9999 (31.12.9999).
     
    OneTimeDed.png
    OneTimePay.png

How “Separation Penalty” and “Termination Compensation” will be calculated in Payroll? 

Please refer to the following note: 
3104091 - 2021 Legal Changes

 

How will EOS be paid through Off-Cycle Payroll? 

Please refer to the following note:  
3007375 - EOS payout in off-cycle payroll

 

  1. 5. Notice Period 

Upon resignation, employees should give a 30 days’ notice period to employer, and the employee should pay penalty for the days the employee doesn’t comply with. 

Upon terminationthe employer should give 60 days’ notice period to the employee, and the employer should pay compensation for the days the employer doesn’t comply with. 

Solution 

  1. The fields “Employee Notice Period”“Employer Notice Period” and “Notice Period Start Date” to be enabled in Job Information” portlet in Employee Central. 
  2. “Employee Notice Period” and “Employer Notice Period” will be captured upon hiring. 
  3. New action “Notice Period” to be created in Employee Central with reasons “by Employee” or “by Employer. “Notice Period Start Date” will be captured with the action. 
  4. The notice period action will be delimited by termination action to know the actual notice period (days between notice period action start and end date). 
  5. Another option can be replication of “Notice Period Start Date” in “Job Information” portlet to infotype 0041 “Date Specification if you don’t want to use action. 
  6. The calculation of the penalty or compensation will take place in Employee Central Payroll based on notice period action reason (that will be replicated from Employee Central)employee/employer notice period, and actual notice period.

How to enable “Employee Notice Period”, “Employer Notice Period” and “Notice Period Start Date” fields in “Job Information” portlet? 

The three fields are all Job info generic fields.  

  • Employee Notice Period --> hris field id="employee-notice-period" 

  • Employer Notice Period --> hris-field id="dismissals-notice-period-for-employer" 

  • Notice Period Start Date --> hris-field id="notice-period-start-date" 

How to enable/change the fields in Employee Central? 

  1. Go to Admin Center -> Manage Data -> Picklist Center. 
  2. Add the Parent picklist “ISOCountryList  to the notice period picklist id “EENoticePeriod” and  “dismissalsNoticePeriod for the Notice Period. 
  3.  Add the values 30 days for the employee EENoticePeriod“ and 60 days to the employer dismissalsNoticePeriod” with the Parent Picklsit “SAU”. 
  4. Click on ‘Save’ to save the information. 
    picklist.png
  5. Go to Admin Center -> Manage Data -> Manage Business Configuration. 
  6. Select jobInfo and the country jobInfo. 
  7. In the HRIS fields, search the field “employee-notice-period".
  8. Edit the Label as ‘Employee Notice Period’, Enabled as ‘Yes’ and Mandatory as Yes / No as per the company requirement. 
  9. Select ‘Details’ to modify the other field attributes. 
  10. Assign the picklist “EENoticePeriod” to the field “Picklist” and in the field “Parent Field for Picklist” assign the “country-of-company". 
  11. Click on ‘Save’ to save the information. 
  12. Select jobInfo and the country jobInfo_SAU. 
  13. In the HRIS fields, add the field “dismissals-notice-period-for-employer". 
  14. Add the Label as ‘Notice Period for Employer’, Enabled as ‘Yes’ and Mandatory as Yes / No as per the company requirement. 
  15. Select ‘Details’ to modify the other field attributes. 
  16. Assign the picklist dismissalsNoticePeriod” to the field “Picklist” and in the field “Parent Field for Picklist” assign the “country-of-company". 
  17. Click on ‘Save’ to save the information. 
    bcui4.png
    details2.png
  18. Grant permission to the role via Manage Permission Roles --> Employee Central Effective Dated Entities 

    rbp2.png
    jobinfo3.png

How to enable replication of “Notice Period Start Date” to infotype 0041 “Date Specification (Date Type 81 - Notice Period Begin Date)? 

You can implement this method of your BADI implementation class HRSFEC_B_CE_CHANGE_IT0041 

How Notice Period Penalty/Compensation” will be calculated in Payroll? 

Please refer to the following SAP Note: 

3104091 - 2021 Legal Changes

 

  1. 6. Time Management 

  1. Employer should give an option to the employee to take time in lieu against overtime instead of overtime compensation and remaining overtime balance should be paid out to employee during EOS settlement. 
  2. Companionate Leave now includes the death of more types of relation i.e., brother and sister. 
  3. Maternity leave is now 98 days instead of 70 and it can start by max 28 days before expected delivery date. 

Solution 

  1. Implement Time Off in Lieu feature in Employee Central Time Management. 
  2. A new custom field Relation Type” should be added in Time-Off request in Employee Central Time Management. 
  3. A new custom field “Expected Delivery Date” should be added in Time-Off request in Employee Central Time Management. 
  4. A business rule should be created in Time-Off request in Employee Central Time Management to validate that Maternity leave start date is max 28 days before delivery. 

How to implement Time Off in Lieu? 

https://help.sap.com/viewer/1aefa3ae4677465a887341037214ea49/LATEST/en-US/135e1ffa123346a49ba6f30efd6e341c.html 

How to add new custom field “Relation Type in Time-Off request? 

 

  1. Go to Admin Center-> Configure Object Definition -> EmployeeTime. 
  2. Click on Take Action -> Make Corrections. 
  3. Add a field cust_relationShipType , select the datatype as “picklist” and click on details. 
    details3.png
    In “Valid Values Source” enter the name of the Picklist created. 
    source.png

This field shall be available only for absence type “Compassionate leave”; hence we need to configure the condition. 

Enter the Field Id as “timeType.externalCode” under Condition section and Condition Values will be the externalcode of CompassionateLeave 

condition.png

To Create the Picklist below are the steps to be followed, 

  1. Go to Admin Center -> Picklist Cente->click on “+”. 
  2. Enter the picklist name and effective date information and click on “Save”. 
    picklistnew.png
  3. Click on “+” to enter the picklist values. 
    picklistadd.png
  4. Create the picklist values for the Picklist “RelationShipType” created and click on “Save”. 
    brother.png
    absence.png

 

How to add new custom field “Expected Delivery Date” in Time-Off request? 

  1. Go to Admin Center -> Configure Object Definition -> EmployeeTime. 
  2. Click on Take Action->MakeCorrections 
  3. Enter a field cust_expectedDeliveryDate, select the datatype as “Date” and click on details. 
    details3.png
    This field shall be available only for absence type “Compassionate leave”, hence we need to configure the condition. 
  4. Enter the Field Id as “timeType.externalCode” under Condition section and ConditionValues will be the externalcode of MaternityLeave
    condition2.png
    absencefield.png

How to create validation business rule for Maternity leave start date? 

rule3.png

error.png

error2.png

Keywords

labour law, labor law, ksa, Saudi Arabia , KBA , LOD-SF-EC-PAY , Payment Information (Bank Information) , LOD-SF-EC , Employee Central , LOD-SF-EC-TIM , Time Off , LOD-EC-GCP-PY , Payroll Integration EC to Employee Central Payroll , LOD-SF-EC-CMP , Compensation Information & One-Time Bonus , LOD-SF-EC-RBP , Roles & Permissions (EC Core only) , Problem

Product

SAP SuccessFactors Employee Central all versions ; SAP SuccessFactors HCM all versions