ProcessUnpaidDBAs

Process unpaid DBAs

Major Business Rule

Object Name: N0800071

Parent DLL: CHRM

Location: Client/Server

Language: NER

Functional Description

Purpose

This function will check for any unpaid deduction-type DBA's (DISO = "D") in F06146, Employee 

Transaction History Summary, and, if desired, will write the amount due in F0709, Deduction/Benefit/Accrual 

Ledger File, as a one-time override. Records are based on the calendar year.


Setup Notes and Prerequisites

If the generation of records in F0709 is desired, it is recommended that this function be called 

twice: once with the flag cGenerateEntryInLedgerFile01 = 0, and if warnings and errors are not detected 

(mnWarningCodeReturned and mnErrorCodeReturned = 0), then call it again with the flag = 1. Warnings may 

require manual processing. Errors always require manual processing. 


Special Logic

Only declining balance and number of periods deduction setup at the employee level are considered. No 

DBA instructions will be included that are defaulted as a result of the union/group plans or required 

at the DBA level. Wage attachments (F06107) also are not included at this time (see note at bottom.) 

Only records with amount due not equal zero are written to F0709.


AN8mnAddressNumberIYAddress number of employee

DTjdDateTerminatedIYDate of termination

EV01cGenerateEntryInLedgerFile01IY0 = Do not generate entries 

1 = Generate entries in F0709

PIDszProgramIDofCallingProgramIYProgram ID of calling program. If 

not entered, then "N0800071" is used. This value 

is used when F0709 is updated.

MATH06mnNoOfUnpaidDBAsOYNumber of unpaid DBA's found ( 

records with arrearage, amount due, or no. of 

periods not = 0). One DBA may have multiple records 

in F06146  Notes: A value of zero may mean: 1. 

records have not been rolled over, or 2.there are 

no unpaid DBA's

MATH06mnNoOfRecsWrToF0709OYNumber of records successfully 

written to F0709

MATH06mnWarningCodeReturnedOYWarning codes: 0 = no warnings 

1 = a record in F06146 does not 

have an active record in F06106 

2 = a record in F0709 with DWK = 

DT already exists 4 = record(s) in F0709 with DWK 

< DT exist 8 = at least one record was not 

successfully written to F0709  Notes: 1.  A 

warning requires manual processing 2.  The 

reported warning code is the sum of  the 

above-mentioned codes. For example, a code of 13 means 

codes 1, 4, & 8 were set

MATH06mnErrorCodeReturnedOYError codes: 0 = no errors 

detected

1 = Date of termination 

was not entered 

2 = no record found in 

F060116. This may be caused by a wrong 

Address Number 

3 = Pay Status 

(PAST) in F060116 

should be 0 - 9 (active employee) 

because when this function is called, 

it is assumed that the employee is 

still active 

4 = Record locked out in 

F060116; can not modify F0709. If 

F0709 is not to be modified, then 

this                                                             error may be ignored 

11 = a DBA in F06146 has no record in 

F069116 12 = DISO for one of the DBA's 

in F069116 does not = 

"D" 13 = a DBA has an invalid 

combination with DBAL = "Y" and 

NP not = 0 14 = a DBA has an invalid 

combination with NPER = "Y" and AD not 

= 0 101 - 199 = error 

codes 1 - 99 from N0700025, which 

verifies the employee Tax Area code 

(TARA) in F060116 Note: 

function will return when the first 

error is detected


Related Tables

Related Tables 

Table Table Description
F0709Deduction/Benefit/Accrual Ledger File

F06106Employee Pay Instructions

F06146Employee Transaction History Summary

F069116Payroll Transaction Constants



1.3Related Business Functions

Source NameFunction Name
N0700025TARA Extract of State, Count, City


Processing 

1.Verify that a date is entered in DT.

2.Get the two-digit year from termination date. This will become the DTEY key to F06146


3.Fetch and verify employee information in F060116 (see error codes for what is verified).


4.Search F06146 based on AN8, DISO = "D", and DTEY for records with values not equal to zero in ARRA 

(arrearage amount), AD (amount due), or NP (number of periods). Read records with PDBA code starting 

with code 1000. 


5.If a record is found, then read F069116 for DBA found in step 4 and verify information (see error 

codes for what is verified).


6.Read F06106 for corresponding record based on AN8 and PDBA with jdDateTerminated between PSDT and 

PTDT. Date fields left blank are considered to be in effect (open-ended). Check if RTAM, ANN8, and 

GVCH have been overridden by values in F069116. If a record is not found in F06106, then a warning code 

is set.


7.Fetch all records in F06146 for PDBA and add ARRA, AD and NP from all records.


8.Calculate Gross Pay (GPA) to be reported in F0709: If declining-balance DBA, then amount due = sum 

from all records in F06146 (AD + ARRA). If number of periods DBA, then amount due = sum from all 

records in F06146 (NP x RTAM + ARRA). Calculate ARRA to be inserted in F0709 = -(sum of all ARRA in 

F06146).


9.Search F0709 for records with Work Date (DWK) equal to or less than jdDateTerminated. If either is 

found, set warning flag.


10. If GPA or ARRA are not equal to zero and cGenEntryInLedgFile01 = 1, then insert a record write 

GPA in F0709 as a one-time override. Fields written to F0709 are:


 

Column in F0709Value
*AN8AN8 of employee
*CKCN0

HMO0

DWKDT

*PPED0

CKDT0

*PDBAPDBA from F06146

*UKIDassigned through function F00022

PRTR0

CPECPE from F069116

DISODISO from F06146

RTAM?

DEDMDEDM from F069116

HMCOHMCO from F060116

GPAGross Pay as calculated above

ARRAnegative value of  ARRA as calculated above

PHRW0

MCUGblank (this field is associated only with a time card)

CMHU

CLBS0

UNUNfrom F060116

JBCDJBCD=      =

JBSTJBST=      =

WSTsubstring(TARA/F060116,0,2)

WCNTsubstring(TARA/F060116,2,3)

WCTYsubstring(TARA/F060116,5,4)

ANN8ANN8 from F06106/F069116

WCMPWCMP from F060116

WETWET from F060116

PGRP"M"
MVMV from F069116

ICC

ICS

USR

DAAF

DTSP0

PCKPCK from F069116

YST

GICU0

CMMT

PCNO0

PALFALPH from F060116 (first 12 characters only)

GVCHGVCH from F06106/F069116

WANOWANO from F06106 ?
CALCCALC from F069116

DPRI0

EPRI?
ARRRARRR from F069116

DLVL

TDBA?
UPMJDate updated, from function Get Audit Info
UPMTTime updated, from function Get Audit Info

PIDProgram ID, from function Get Audit Info

JOBNWorkstation ID, from function Get Audit Info

USERUser ID, from function Get Audit Info


Notes:


1.UKID for F0709 is generated through function X00022, F00022 Get Next Unique Key ID, with Object 

Name = "F0709".

 

2.The current World and OneWorld Employee DBA setup programs allow the deletion of an amount-due or 

a number of periods DBA record without having to zero ARRA, AD, or NP (a warning is given; however, 

the user is not forced to zero these fields). The record will be deleted from F06106; however, the 

corresponding record in F06146 is not deleted. If ARRA and/or NP are not zeroed, then different amounts 

will be calculated when using the World or OneWorld Employee DBA Setup programs versus this function, 

because this function will add all records with values other than zero in F06146.

 

3.Currently, Wage Attachments (WA) are not considered because the WA system is not yet set-up in 

OneWorld. The WA system is scheduled to be added after B7.3. The only type the employer needs to be 

collected upon termination is DEDM = "K" (employee loan). Employers are not legally obligated to collect 

the other types of WA's [DEDM= "C" (child support), "L" (levies), and "G" (garnishments)].  To retrieve 

the amount due, search F06107 for DBA's with DEDM in F069116 = "K" and from and to dates within DT. 

Retrieve AD (amount d

Data Structure

D0800071A - Process Unpaid DBAs upon termination

Parameter NameData ItemData TypeReq/OptI/O/Both
mnAddressNumberAN8MATH_NUMERICREQINPUT

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

jdDateTerminatedDTJDEDATEREQINPUT

The date that the employee was terminated, if applicable.

cGenerateEntryInLedgerFile01EV01charREQINPUT

An option that specifies the type of processing for an event.

szProgramIDofCallingProgramPIDcharREQINPUT

The number that identifies the batch or interactive program (batch or interactive object). For example, the number of the Sales Order Entry 
interactive program is P4210, and the number of the Print Invoices batch process report is R42565. The program ID is a variable length value. 
It is assigned according to a structured syntax in the form TSSXXX, where: T The first character of the number is alphabetic and identifies the 
type, such as P for Program, R for Report, and so on. For example, the value P in the number P4210 indicates that the object is a 
program. SS The second and third characters of the number are numeric and identify the system code. For example, the value 42 in the number P4210 
indicates that this program belongs to system 42, which is the Sales Order Processing system. XXX The remaining characters of the numer are 
numeric and identify a unique program or report. For example, the value 10 in the number P4210 indicates that this is the Sales Order Entry 
program.

mnNoOfUnpaidDBAsMATH06MATH_NUMERICREQOUTPUT

Event point for Math Numeric.

mnNoOfRecsWrToF0709MATH06MATH_NUMERICREQOUTPUT

Event point for Math Numeric.

mnWarningCodeReturnedMATH06MATH_NUMERICREQOUTPUT

Event point for Math Numeric.

mnErrorCodeReturnedMATH06MATH_NUMERICREQOUTPUT

Event point for Math Numeric.

Related Functions

None

Related Tables

None
position: absolute; left: 0.500000in">at least one record was not 

successfully written to F0709  Notes: 1.  A 

warning requires manual processing 2.  The 

reported warning code is the sum of  the 

above-mentioned codes. For example, a code of 13 means 

codes 1, 4, & 8 were set

MATH06mnErrorCodeReturnedOYError codes: 0 = no errors 

detected

1 = Date of termination 

was not entered 

2 = no record found in 

F060116. This may be caused by a wrong 

Address Number 

3 = Pay Status 

(PAST) in F060116 

should be 0 - 9 (active employee) 

because when this