TrackDateInCurrentJob

Track Employee Date in Current Position/Job

Minor Business Rule

Object Name: N0800204

Parent DLL: CHRM

Location: Client/Server

Language: NER

Functional Description

Purpose

The two functions in this NER will update the Date in Job or Date in Position depending on changes to 

fields in the employee master.  For Track Date in Current Job if Job type or step has or if Date Pay 

starts changes the Date in Job will be updated to the effective date.  If Date in Job is not populated 

history data will be retrieved and populate the date if that is not available the start date is used. 



Setup Notes and Prerequisites


Special Logic


Technical Specification


Parameters:


D0800204 Track Date in Current Job


Data Item Data StructureDescriptionI/ORequiredNotes

DSTjdDateEmploymentStartIYesEmployees Start Date

JBCDszNewJobCategoryIYesJob Type After change

JBCDszOldJobCategoryIYesJob Type Before change

JBSTszNewJobStepIYesJob Step After change

JBSTszOldJobStepIYesJob Step Before change

EFTOjdDateEffectiveOnIYesEffective Date 

YNcF08042HistoryIYesIs History tracking on

AN8mnAddressNumberIYesEmployees address number

CDIJjdDateinCurrentJobI/OYesDate in Job to be updated

EJSDjdDatePayStartsOldIYesDate Pay Starts Before change

EJSDjdDatePayStartsNewIYesDate Pay Starts After change



Processing:


=======================================================================

NAMED ER: Track Date In Current Job

=======================================================================

evt_szFileName_FILE

evt_szDataItem_DTAI

evt_jdDateEffectiveOnJBST

evt_jdDateEffectiveOnJBCD

evt_jdNextDate_DTE

// If Job type or step has changed update date

If BF szNewJobCategory is not equal to BF szOldJobCategory

Or BF szNewJobStep is not equal to BF szOldJobStep

   If BF jdDateEffectiveOn is not equal to 

      BF jdDateinCurrentJob = BF jdDateEffectiveOn

   Else

      BF jdDateinCurrentJob = SL DateToday

   End If

Else

   // If Date Pay Starts is changed update date

   If BF jdPayStartsDateNew is not equal to BF jdPayStartsDateOld

      If BF jdPayStartsDateNew is not equal to 

         BF jdDateinCurrentJob = BF jdPayStartsDateNew

      Else

         BF jdDateinCurrentJob = SL DateToday

      End If

   Else

      // If Job type or step has not changed update date with history if available

      If BF jdDateinCurrentJob is equal to 

         If BF cF08042History is equal to "Y"

            // Check history file for update

            VA evt_szFileName_FILE = "F060116"

            VA evt_szDataItem_DTAI = "JBCD"

            F08042.Open

            F08042.Select

               VA evt_szFileName_FILE =  TK File Name

               BF mnAddressNumber =  TK Address Number

               VA evt_szDataItem_DTAI =  TK Data Item

            F08042.Fetch Next

               VA evt_jdDateEffectiveOnJBCD <- TK Date - Effective On

            // Find most recent date

            While SV File_IO_Status is equal to CO SUCCESS

               F08042.Fetch Next

                  VA evt_jdNextDate_DTE <- TK Date - Effective On

               If VA evt_jdNextDate_DTE is greater than VA evt_jdDateEffectiveOnJBCD

                  VA evt_jdDateEffectiveOnJBCD = VA evt_jdNextDate_DTE

               End If

            End While

            VA evt_szDataItem_DTAI = "JBST"

            F08042.Select

               VA evt_szFileName_FILE =  TK File Name

               BF mnAddressNumber =  TK Address Number

               VA evt_szDataItem_DTAI =  TK Data Item

            F08042.Fetch Next

               VA evt_jdDateEffectiveOnJBST <- TK Date - Effective On

            While SV File_IO_Status is equal to CO SUCCESS

               F08042.Fetch Next

                  VA evt_jdNextDate_DTE <- TK Date - Effective On

               If VA evt_jdNextDate_DTE is greater than VA evt_jdDateEffectiveOnJBST

                  VA evt_jdDateEffectiveOnJBST = VA evt_jdNextDate_DTE

               End If

            End While

            If VA evt_jdDateEffectiveOnJBCD is greater than VA evt_jdDateEffectiveOnJBST

               BF jdDateinCurrentJob = VA evt_jdDateEffectiveOnJBCD

            Else

               BF jdDateinCurrentJob = VA evt_jdDateEffectiveOnJBST

            End If

            F08042.Close

         Else

            // If there is no date and no history update with the start date

            BF jdDateinCurrentJob = BF jdDateEmploymentStart

         End If

      End If

   End If

End If



Data Structure

D0800204 - Track Employee Date in Current Job

Parameter NameData ItemData TypeReq/OptI/O/Both
jdDateEmploymentStartDSTJDEDATEOPTINPUT

The date on which the employee actually reported to work for the most recent period of hire. When an employee initially begins working, 
the default is the original hire date. If no original hire date exists, the system uses the current date. This field can be updated multiple times if, for 
example, an employee is a seasonal worker. For the calculation tables in the Payroll system and the eligibility tables and date codes in the 
Human Resources system, the system also uses this date as a start date when it calculates deductions, benefits, and accruals.

jdDateinCurrentJobCDIJJDEDATEOPTBOTH

The date when an employee started working in this job.

szOldJobCategoryJBCDcharOPTINPUT

A user defined code (07/G) that defines the jobs within your organization. You can associate pay and benefit information with a job type and 
apply that information to the employees who are linked to that job type.

szNewJobStepJBSTcharOPTINPUT

A user defined code (07/GS) that designates a specific level within a particular job type. The system uses this code in conjunction with job 
type to determine pay rates by job in the Pay Rates table.

szOldJobStepJBSTcharOPTINPUT

A user defined code (07/GS) that designates a specific level within a particular job type. The system uses this code in conjunction with job 
type to determine pay rates by job in the Pay Rates table.

szNewJobCategoryJBCDcharOPTINPUT

A user defined code (07/G) that defines the jobs within your organization. You can associate pay and benefit information with a job type and 
apply that information to the employees who are linked to that job type.

cF08042HistoryYNcharOPTINPUT

The Yes or No Entry field is a common single character entry field for simple yes or no responses on prompt screens.

mnAddressNumberAN8MATH_NUMERICOPTINPUT

A number that identifies an entry in the Address Book system, such as employee, applicant, participant, customer, supplier, tenant, or 
location.

jdPayStartsDateOldEJSDJDEDATEOPTINPUT

The first date on which an employee is paid.

jdPayStartsDateNewEJSDJDEDATEOPTINPUT

The first date on which an employee is paid.

jdPreviousDateinCurrentJobCDIJJDEDATEOPTNONE

The date when an employee started working in this job.

Related Functions

None

Related Tables

None
TrackDateInCurrentPosition

TrackDateInCurrentPosition

Track Employee Date in Current Position/Job

Minor Business Rule

Object Name: N0800204

Parent DLL: CHRM

Location: Client/Server

Language: NER

Data Structure

D0800204A - Track Employee Date in Current Position

Parameter NameData ItemData TypeReq/OptI/O/Both
jdDateEmploymentStartDSTJDEDATEOPTINPUT

The date on which the employee actually reported to work for the most recent period of hire. When an employee initially begins working, 
the default is the original hire date. If no original hire date exists, the system uses the current date. This field can be updated multiple times if, for 
example, an employee is a seasonal worker. For the calculation tables in the Payroll system and the eligibility tables and date codes in the 
Human Resources system, the system also uses this date as a start date when it calculates deductions, benefits, and accruals.

jdDateCurrentPositionCPDTJDEDATEOPTBOTH

The date the employee started the current position.

szNewPositionIDPOScharOPTINPUT

A code that you use for budgetary (position) control purposes. The position ID consists of:   o  Position (position code and its description)     
o  Fiscal year     o  Home business unit  For example, you can identify position A0-1 as Accounting Manager for fiscal year 2005-2006, for 
home business unit 41. You might choose to set up positions so that the position IDs are the same as the corresponding job IDs. Within a home 
business unit, positions appear in the alphanumeric sequence of their position IDs. For example, position A0-1 appears before position A0-2.

szOldPositionIDPOScharOPTINPUT

A code that you use for budgetary (position) control purposes. The position ID consists of:   o  Position (position code and its description)     
o  Fiscal year     o  Home business unit  For example, you can identify position A0-1 as Accounting Manager for fiscal year 2005-2006, for 
home business unit 41. You might choose to set up positions so that the position IDs are the same as the corresponding job IDs. Within a home 
business unit, positions appear in the alphanumeric sequence of their position IDs. For example, position A0-1 appears before position A0-2.

szNewCostCenterHomeHMCUcharOPTINPUT

The number of the business unit in which the employee generally resides.

szOldCostCenterHomeHMCUcharOPTINPUT

The number of the business unit in which the employee generally resides.

cF08042HistoryYNcharOPTINPUT

The Yes or No Entry field is a common single character entry field for simple yes or no responses on prompt screens.

mnAddressNumberAN8MATH_NUMERICOPTINPUT

A number that identifies an entry in the Address Book system, such as employee, applicant, participant, customer, supplier, tenant, or 
location.

jdDatePayStartsOldPSDTJDEDATEOPTINPUT

The date that an employee may begin participating in the company's benefit plans or may be included in payroll processing. You can also 
use this field to provide a beginning date for seasonal employees or for employees who work only part of the year (such as a teacher who 
works only nine months of the year).

jdDatePayStartsNewPSDTJDEDATEOPTINPUT

The date that an employee may begin participating in the company's benefit plans or may be included in payroll processing. You can also 
use this field to provide a beginning date for seasonal employees or for employees who work only part of the year (such as a teacher who 
works only nine months of the year).

jdPreviousDateCurrentPositionCPDTJDEDATEOPTNONE

The date the employee started the current position.

Related Functions

None

Related Tables

None