/
HCM Service Desk Technical

HCM Service Desk Technical

1. Purpose:

The purpose of this document is to show the implementation design of HCMConnector plugin.

2. Introduction:

 It is JIRA plugin that enables seamless integration/automation between SAP SuccessFactors & Atlassian JIRA.   

3. Scope:

HCMConnector plugin provides automation to create issues when employee add on SuccessFactors platform. Now It supports only for new hire event. 

4. High Level Design:

HCMConnector plugin high level design and description.  

4.1 High level Design: 


4.2 Description: 

  1. Manual Sync - Once user click on manual sync records from HCMConnector plugin then it looks new hire employees in SuccessFactors database for given time period.  If any new hire employees are available then it creates JIRA issues for those employee based on new hire process settings.

  2. Automatic Sync - Once user add any new employee on SuccessFactors platform then immediately it triggers the new hire event and it calls rest api of HCMConnector plugin through the intelligence service of SuccessFactors. Once event is triggered then  it creates JIRA issues for the employee based on new hire process settings.

5. Modules:

These three modules are available in HCMConnector:

  1. Integration Setting - This page is responsible to save the SuccessFactors connection settings and events setup. User can configure the connection settings, events and sync mode(Manual or Automatic).

  2. New Hire Process - This is the configuration page for new hire process. User creates activity, step and action for the issues. It is like master data to create issues for event. 

  3. Synced Users  - Once employees are synced from SuccessFactors platform then user can view synced record here.

6. Process Flow Diagram:

6.1 Process Flow Design: 



6.2 Process Flow Description:

       6.2.1 Prerequisite steps are below for the HCMConnector:

Step 1: Go to administrator page → click on project tab → click on "Create project".

  


Step 2: Select the project type and enter the name →  Click on "Submit"  button.

Step 3: Select issues from setting icon to creates custom fields for SuccessFactors.


Step 4: Costume fields screen will appear → Click on the "Add Custom Field".


Step 5: Create custom filed for "Employee Id". Select custom field as Text Field(single line) → click "Next" button.


Step 6: Enter the name and description for the custom field. Click on "Create" button.


Step 7: Select check box for the project and associate custom field with the project → Click on "Update" button.  

Note: Create following custom filed for the SuccessFactors( Repeat step 4 to 7).

Custom Field for SuccessFactors
S. NoCustom Field Custom Field  Type 
1Employee Id               Text Field(Single line)
2User Id                      Text Field(Single line)
3Person Id                   Text Field(Single line)
4Start Date                 Date Picker
5Original Start Date Date Picker
6End Date Date Picker
7First Name Text Field(Single line)
8Middle Name Text Field(Single line)
9Last Name Text Field(Single line)
10Email Address Text Field(Single line)
11Phone Number Text Field(Single line)
12Business Unit Name Text Field(Single line)
13Event Reason Code Text Field(Single line)
14Event Reason Name Text Field(Single line)
15Manager Id Text Field(Single line)
16Job Class Code Text Field(Single line)
17Job Class Name Text Field(Single line)
18Job Title Text Field(Single line)
19Cost Center Text Field(Single line)
20Location Text Field(Single line)
21CompanyText Field(Single line)


6.2.2 Steps below for the Integration Settings:

Step 1: Login as JIRA admin user and go to Add-ons section and click on integration setting page.


Step 2: Click on edit Setting and provide tenant id, user, password, data center, SF API URl and configure module. Click on the "Test Connection".

Note:

    1.  If sync frequency is Manual means it syncs the records as manual mode for given time range.
    2.  If sync frequency is Automatic means it syncs the records through intelligence service (Real Time Sync).


Step 3: If test connection is success then click on "Save  Connection" button. Screen below will appear.

 

 6.2.3 Steps below for the New Hire process settings:

Step 1: Go to Add-ons → New Hire Process → Click on "Add Activity".


Step 2: Enter the Activity name and click on "Create button".

Step 3: Click on "Add Step"  → Select activity name and enter the step name. Click on "Create Button".

Step 4: Click on "Add Action" → Select activity name, step, target system, action type, project and issue type  → Enter the action name and click on "Next button".

Step 5: Custom Filed Mapping screen appears. Map the custom filed name with SuccessFactors or JIRA.  

Note: By default all custom field name map with SuccessFactors.

Step 6: JIRA Filed Mapping screen appears. Select appropriate reporter, priority and assigning. Enter the description and click on "Next" Button. 

Step 7: SF Field Mapping screen appears. Map all SuccessFactors fields with custom fields(like Employee id → Employee Id) and click on "Submit" button. 

Step 8: Verify the SuccessFactors fields mapping with custom fields. If any wrong mapping then click on "Edit" button to change the mapping. 

Step 9: Go to "Integration Setting "  → Click on the "Sync Now" button. If any new employee added on SuccessFactors for within given time period then it creates issues for those employees.

 

7. Code Details:

7.1  Integration Setting : it uses to save the SuccessFactors connection settings and events setup. User can configure the connection settings, events and sync mode(Manual or Automatic). Below are the classes details:

    • IntegrationSettingsResource.java →  It has all the rest api which is using by "Integration Settings" page.
    • SFJiraConfigService.java →  It is interface using for integration Settings and New Hire Process page.
    • SFJiraConfigServiceImpl.java → It is implementation class of SFJiraConfigService. It has implemented method for the business logic for the rest api.
    • SFJiraConfigRepository.java →  It is repository layer for the database operations.
    • ODataRepository.java →   It is repository layer to call the OData service(Test connection and Sync Now) of SuccessFactors.  
    • IssueRepository.java →  It is using for creating issues based on SF JIRA configuration.
    • SuccessFactorJiraEditSettingWebworkAction.java → it uses for save the connection info, event and Sync mode of  SuccessFactors.
    • SuccessFactorJiraWebworkAction.java –>  it uses for view the connection info, event and Sync mode of  SuccessFactors.


7.2  New Hire Process : it uses as configuration page for new hire process. User creates activity, step and action for the issues. It is like master data to create issues for event.  Below are the classes details: 

    • NewHireProcessResource.java →  It has all the rest api which is using by "New Hire Process"  page.
    • SuccessFactorJiraOnboardingWebworkAction.java → It uses to view the activities, steps and actions for new hire process configuration.


7.3  Synced Users :  it uses to view all synced employees from SuccessFactors platform Below are the classes details:

    • EmployeeResource.java →  It has all the rest api which is using by "Synced Users"  page.
    • EmployeeService.java → It is interface using for Synced Users page.
    • EmployeeServiceImpl.java →  It is implementation class of EmployeeService. It has implemented method for the business logic for the rest api.
    • EmployeeRepository.java →  It is repository layer for the employee related database operations.

7.4  Active Object Class: it uses for entity classes for the database. Below are the classes details:

    • SfAction.java → It uses for Action entity. 
    • SfActivity.java → It uses for Activity entity. 
    • SfCustomFieldMapp.java → It uses for Custom Field Mapping entity. 
    • SfEmployee.java → It uses for Employee entity. 
    • SfFieldMapp.java → It uses for SuccessFactors Field Mapping entity. 
    • SfJiraEvent.java → It uses for JIRA Event entity. 
    • SfJiraFieldMapp.java → It uses for JIRA Field Mapping entity. 
    • SfLogging.java → It uses for Logging entity. Which stores log in database.
    • SfLoginDetail.java → It uses for Login Detail entity. 
    • SfStep.java → It uses for strep entity. 


.7.4  Other Util and Supporting class:  Below are the some util  and supporting classes details:

    • HttpClientUtil.java → It uses as HTTP client class to test connection and Sync the employee from SuccessFactors. 
    • LoggingHandler.java → It uses for handling log in databases level.
    • SecurityUtil.java → It uses for security related like encryption and decryption for the password.
    • StringUtil.java →  It uses for String based operation for the plugin.
    • XmlUtil.java → It uses for XML based operation(Like traversing etc) for the plugin
    • DOToDTOMapper → It converts object to DTO objects.
    • LicenseServlet.java- It uses for plugin license.
    • EmpyraWSException.java → It uses for exception handling in plugin. 
    • ODataResponse.java - It is DTO object for OData response. it auto generated class based on JSON structure of OData response.

 

8. DB Details:

 Below are the table details (active object consider as table in JIRA) with relationship to each other. 


9. Controls:  

Below are the some controls for HCMConnector.

    1.   If sync frequency is "Manual" then user has to sync the records manually in integration setting page. 
    2.  User can sync maximum 1 month of records from the current date in manual mode.
    3.  If sync frequency is "Automatic" then employee syncs automatically through intelligence service.
    4.  All password stores in encrypted format for the security purpose.
    5.  Now manual and automatic(Intelligence service) sync works only for the "New Hire Event" of SuccessFactors. 

10. Install and Integration:  

 Below is the installation and integration guide for HCMConnector plugin.

 Link→   Deployment Note for HCMConnector.docx

11. Conclusion: 

Some current and future benefits of the seamless integration: 

    • Raise IT support ticket in JIRA automatically e.g. new equipment request based on the level and team of the newly hired employee.
    • Raise Access Card requests to Facilities Management team using JIRA Service Desk.
    • Assign required reading task to the new employee (E.g. code of conduct, vacation policy etc.)
    • Grant access to JIRA projects based on the group/cost center of the employee.
    • Assignment of ongoing tasks to backup resources in case of Long Term Disability or vacation.
    • Disallowing JIRA issue assignment in case of employee's long term unavailability


---------- *** ----------