AccessOrderApprovalRow

Approval Processing Functions

Minor Business Rule

Object Name: B4300140

Parent DLL: CDIST

Location: Client/Server

Language: C

Functional Description

Purpose

The purpose of this business function is to either insert, remove or update  a row into the Held 

Orders Table (F4209) for Purchase Order Approval Processing.


Setup Notes and Prerequisites


Special Logic




Technical Specification



2.4Processing 


If the AccessMode is blank then exit the business function.


Use GetAuditInfo to retrieve the following Information :

UserID
CurrentSystemDate

CurrentSystemTime




If RowType = O then

F4209/HOASTS = ' O'  (i.e. Letter O with a leading blank)

If OriginatorNotification  is NOT '1' 

If RowType = N  
If the ApproverType = '1' then 
F4209/HOASTS = '1N'
If the ApproverType = '2' then 
F4209/HOASTS = '2N'

If RowType = A
If the ApproverType = '1' then 
F4209/HOASTS = '1A'
If the ApproverType = '2' then 
F4209/HOASTS = '2A'

If RowType = R
If the ApproverType = '1' then 
F4209/HOASTS = '1R'
If the ApproverType = '2' then 
F4209/HOASTS = '2R'

If RowType = B
F4209/HOASTS = '2R'


If OriginatorNotification is '1'

If RowType = 'A' then
F4209/HOASTS = '3N'
F4209/HOAN8 = 0.

If RowType = 'R' then
F4209/HOASTS = '3N'
F4209/HOASTS = Originator.



If the AccessMode (EV03) is equal to 'I' for Insert or 'U' for Update  then :



If HOASTS has not been assigned and is blank then End Business Function Processing  without 
inserting into the table.


If the AccessMode is 'U' for update then 
fetch the record to be updated using the key : 
HCOD = '**', 

DCTO, DOCO, KCOO and 

ASTS = '1N' if ApproverType is Budget (1) 

OR ASTS = '2N' if ApproverType is Monetary (2)


If fetch was not successful then switch to insert mode.


A row should be inserted into or updated in the F4209 table with the following information :

HOHCOD     Hold Code            '**'

HORPER     Person Responsible   ResponsiblePerson

HOAN8      Address Number       Originator

HOMCU      Business Unit        '            '

HOKCOO     Order Number Documen OrderCompany

HODOCO     Order Number         OrderNumber

HODCTO     Order Type           OrderType

HOSFXO     Order Suffix         OrderSuffix

HOLNID     Line Number         ' '

HOITM      Item Number (Short)  ' '

HOLITM     2nd Item Number      ' '

HOAITM     3rd Item Number      ' '

HOTRDJ     Order Date           CurrentSystemDate

HODRQJ     Requested            ' '

HOPDDJ     Promised             ' '

HOCTYP     Code Type            ' '

HORDC      Release Code         ' '

HORDB      Release By           UserID

HORDJ      Released Date       CurrentSystemDate

HORDT      Released Time        CurrentSystemTime

HOARTG     Approval Route Code  ApprovalRouteCode

HOASTS     Approval Status      

HOATY      Approver Type       ' '



If the AccessMode (EV03) is 'R' for Remove then :


Delete a record from the F4209 table using the key :
HCOD = '**', 

DCTO, DOCO, KCOO and 

ASTS = '1N' if ApproverType is Budget (1) 

OR ASTS = '2N' if ApproverType is Monetary (2)




End of Business Function Processing.


Data Structure

D4300140E - Access Order Approval Row

Parameter NameData ItemData TypeReq/OptI/O/Both
szOrderTypeDCTOcharNONENONE

A user defined code (00/DT) that identifies the type of document. This code also indicates the origin of the transaction. J.D. Edwards has 
reserved document type codes for vouchers, invoices, receipts, and time sheets, which create automatic offset entries during the post 
program. (These entries are not self-balancing when you originally enter them.) The following document types are defined by J.D. Edwards and 
should not be changed: P Accounts Payable documents   R Accounts Receivable documents   T Payroll documents   I Inventory documents  
O Purchase Order Processing documents   J General Accounting/Joint Interest Billing documents   S Sales Order Processing documents

mnOrderNumberDOCOMATH_NUMERICNONENONE

A number that identifies an original document. This document can be a voucher, a sales order, an invoice, unapplied cash, a journal entry, 
and so on.

szOrderCompanyKCOOcharNONENONE

A number that, along with order number and order type, uniquely identifies an order document (such as a purchase order, a contract, a 
sales order, and so on). If you use the Next Numbers by Company/Fiscal Year facility, the Automatic Next Numbers program (X0010) uses the 
order company to retrieve the correct next number for that company. If two or more order documents have the same order number and order 
type, the order company lets you locate the desired document. If you use the regular Next Numbers facility, the order company is not used to 
assign a next number. In this case, you probably would not use the order company to locate the document.

szOrderSuffixSFXOcharNONENONE

In the A/R and A/P systems, a code that corresponds to the pay item. In the Sales Order and Procurement systems, this code identifies 
multiple transactions for an original order. For purchase orders, the code is always 000. For sales orders with multiple partial receipts against an 
order, the first receiver used to record receipt has a suffix of 000, the next has a suffix of 001, the next 002, and so on.

szApprovalRouteCodeARTGcharNONENONE

A code that determines to whom an order is routed for approval.

mnResponsiblePersonRPERMATH_NUMERICNONENONE

The address book number of the person who is responsible for reviewing and releasing orders placed on hold.

mnOriginatorAN8MATH_NUMERICNONENONE

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

cApprovalTypeATYPcharNONENONE

Special Input Expected
1-Budget 

2-Monetary Approver

^

cRowTypeEV01charNONENONE

Special Input Expected
O-Original Approval Request 

N-Next Action Record 

A-Record of Approval 

R-Record of Rejection 

B-Record of Bypassed Approver


^

cOriginatorNotificationEV02charNONENONE

Special Input Expected
1-Notify Originator

Blank-Do not notify originator


^

cAccessModeEV03charNONENONE

Special Input Expected
I-Insert 

U-Update 

R-Remove

^

szBranchPlantMCUcharNONENONE

An alphanumeric code that identifies a separate entity within a business for which you want to track costs. For example, a business unit 
might be a warehouse location, job, project, work center, branch, or plant. You can assign a business unit to a document, entity, or person for 
purposes of responsibility reporting. For example, the system provides reports of open accounts payable and accounts receivable by 
business unit to track equipment by responsible department. Business unit security might prevent you from viewing information about business units 
for which you have no authority.

jdDateTransactionJulianTRDJJDEDATEOPTNONE

The date that an order was entered into the system. This date determines which effective level the system uses for inventory pricing.

Related Functions

B0100011 Error Message Processor to PPAT System
B0100025 Initialize PPAT Error Message API
B9800100 Get Audit Information
B9800140 Get User Address Book Number
BLM0016 SetLevel_RequestForApproval

Related Tables

F4209 Held Orders
F43008 Approval Levels
ApproveOrRejectOrder

ApproveOrRejectOrder

Approval Processing Functions

Major Business Rule

Object Name: B4300140

Parent DLL: CDIST

Location: Client/Server

Language: C

Functional Description

Purpose


The purpose of this business function is to Approve or Reject an order that has been held in the 

Purchase Order Approval Processing.  All of the required audit records will be written to the Held Orders 

Table (F4209).  If another approver exists in the Route Code, and the Order has been approved then the 

next person in the Route will be notified requesting approval.


Setup Notes and Prerequisites


Special Logic

• This business function will create an audit of any approvers that may have been bypassed in the 
Approval Route Code.

• If the next person to approve the order is the same as the person signed on, then the person is 
bypassed and the next Approver is selected.



Technical Specification


2.3Related Business Functions

GetUserAddressBookNumber

DetermineCurrentApprover

AccessOrderApprovalRow

DetermineNextApprover

UpdateLogForBypassedApprovers



2.4Processing 


If the UserCurrentlySignedOn is blank then use GetAuditInfo to retrieve the User-ID of the user 

currently signed on.  Use GetUserAddressBookNumber to retrieve the address book number of the user 

currently signed on.  

If the UserCurrentlySignedOn is still zero then end processing


Call the business function DetermineCurrentApprover to retrieve the current approver from the table.


If CurrentApprover is zero then End Business Function Processing.


_______________________________________________________________________________________


If CurrentApprover has an ApproverType of '1'     /* FOR BUDGET APPROVER PROCESSING */

 

If CurrentApprover is NOT equal to UserCurrentlySignedOn then
End Business Function Processing.

If ApprovalOrRejection is equal to 'R'  /* Reject Order */

If CurrentApprover is equal to UserCurrentlySignedOn 
/* Write an approval log record for rejection */
AccessOrderApprovalRow with

RPER - UserCurrentlySignedOn

AN8- Originator

ATYP- 1

EV01- A

EV02- blank

EV03- U(pdate).


If ApprovalOrRejection is equal to 'A' /* Approve Order */

If CurrentApprover is equal to UserCurrentlySignedOn
/* Write an approval log record */
AccessOrderApprovalRow with

RPER - UserCurrentlySignedOn

AN8- Originator

ATYP- 1

EV01- R

EV02- blank

EV03- U(pdate).



DetermineNextApprover
While DetermineNextApproveris equal to UserCurrentlySignedOn

OR DetermineNextApproveris NOT equal to '1'

/* Write an approver bypassed record */
AccessOrderApprovalRow with

RPER- NextApprover

AN8- Originator

ATYP- 2

EV01- B

EV02- blank

EV03- I(nsert)

End While


If DetermineNextApproveris equal to '1' then

/* Write an approved/Rejected record back to the Originator */
AccessOrderApprovalRow

RPER- Originator

AN8- ' '

ATYP- 2

EV01- A 

EV02- 1

EV03- I(nsert)


End Business Function Processing


If  DetermineNextApproverApprover is not equal to UserCurrentlySignedOn
/* Write a record requesting the next approver */
AccessOrderApprovalRow

RPER- NextApprover

AN8- Originator

ATYP- 2

EV01- N

EV02- blank

EV03- I(nsert).


End Processing of Business Function


_____________________________________________________________________________________


If  ApproverType of the CurrentApprover is equal to '2'  /*Monetary Approver processing */


If CurrentApprover is equal to UserCurrentlySignedOn then

If ApprovalOrRejection is equal to 'R'  /* Reject Order */

/* Write an approval log record */
AccessOrderApprovalRow with

RPER - UserCurrentlySignedOn

AN8- Originator

ATYP- 2

EV01- R

EV02- blank

EV03- U(pdate).



If ApprovalOrRejection is equal to 'A'  /* Approve Order */

/* Write an approval log record */
AccessOrderApprovalRow with

RPER - UserCurrentlySignedOn

AN8- Originator

ATYP- 2

EV01- A

EV02- blank

EV03- U(pdate).



If CurrentApprover is NOT equal to UserCurrentlySignedOn then


UpdateLogForBypassedApprovers  /* See Below - this would probably be an internal function 

called from this bueiness function - whatever is best */


/* Remove the request for the Current User */

AccessOrderApprovalRow with

RPER- CurrentApprover

AN8- Originator

ATYP- 2

EV01- N

EV02- blank

EV03- R(emove)



If ApprovalOrRejection is equal to 'R'  /* Reject Order */


/* Add the Approved Log for the UserCurrentlySignedOn */
AccessOrderApprovalRow with

RPER- UserCurrentlySignedOn

AN8- Originator

ATYP- 2

EV01- R

EV02- blank

EV03- I(nsert)



If ApprovalOrRejection is equal to 'A'  /* Approve Order */


/* Add the Approved Log for the UserCurrentlySignedOn */
AccessOrderApprovalRow with

RPER- UserCurrentlySignedOn

AN8- Originator

ATYP- 2

EV01- A

EV02- blank

EV03- I(nsert)




DetermineNextApprover
While DetermineNextApproveris equal to UserCurrentlySignedOn

OR DetermineNextApproveris NOT equal to '1'

/* Write an approver bypassed record */
AccessOrderApprovalRow with

RPER- NextApprover

AN8- Originator

ATYP- 2

EV01- B

EV02- blank

EV03- I(nsert)

End While


If DetermineNextApproveris equal to '1' then
/* Write an approved record back to the Originator */
AccessOrderApprovalRow

RPER- Originator

AN8- ' '

ATYP- 2

EV01- A 

EV02- 1

EV03- I(nsert)


End Business Function Processing


If  DetermineNextApproverApprover is not equal to UserCurrentlySignedOn
/* Write a record requesting the next approver */
AccessOrderApprovalRow

RPER- NextApprover

AN8- Originator

ATYP- 2

EV01- N

EV02- blank

EV03- I(nsert).



End Processing of Business Function



-----------------------------------------------------------------------------------------------------------------------------------

Processing for UpdateLogForBypassedApprovers


Select the rows from the Approval Route table (F43008) .


Sort in DESCENDING amount (ALIM) sequence.


Set record selection using the key DCTO, ARTG and CurrentPlannedApprover.


If no record is found the Exit Business Function.


Set  record selection using the key DCTO, ARTG and CurrentActualApprover.


If no record is found then Exit Business Function.


DO

Read next record

/* Add log of Bypassed Approver */

AccessOrderApprovalRow with

RPER- NextApprover

AN8- Originator

ATYP- 2

EV01- B

EV02- blank

EV03- I(nsert)




Data Structure

D4300140H - Approve Or Reject Order

Parameter NameData ItemData TypeReq/OptI/O/Both
mnOrderNumberDOCOMATH_NUMERICNONENONE

A number that identifies an original document. This document can be a voucher, a sales order, an invoice, unapplied cash, a journal entry, 
and so on.

szOrderTypeDCTOcharNONENONE

A user defined code (00/DT) that identifies the type of document. This code also indicates the origin of the transaction. J.D. Edwards has 
reserved document type codes for vouchers, invoices, receipts, and time sheets, which create automatic offset entries during the post 
program. (These entries are not self-balancing when you originally enter them.) The following document types are defined by J.D. Edwards and 
should not be changed: P Accounts Payable documents   R Accounts Receivable documents   T Payroll documents   I Inventory documents  
O Purchase Order Processing documents   J General Accounting/Joint Interest Billing documents   S Sales Order Processing documents

szOrderCompanyKCOOcharNONENONE

A number that, along with order number and order type, uniquely identifies an order document (such as a purchase order, a contract, a 
sales order, and so on). If you use the Next Numbers by Company/Fiscal Year facility, the Automatic Next Numbers program (X0010) uses the 
order company to retrieve the correct next number for that company. If two or more order documents have the same order number and order 
type, the order company lets you locate the desired document. If you use the regular Next Numbers facility, the order company is not used to 
assign a next number. In this case, you probably would not use the order company to locate the document.

szApprovalRouteCodeARTGcharNONENONE

A code that determines to whom an order is routed for approval.

mnUserCurrentlySignedOnAN8MATH_NUMERICNONENONE

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

cApprovalOrRejectionEV01charNONENONE

Special Input Expected
A-Approve 

R-Reject

^

mnAmountToApproveUORGMATH_NUMERICNONENONE

The quantity of units affected by this transaction.

szBranchPlantMCUcharNONENONE

An alphanumeric code that identifies a separate entity within a business for which you want to track costs. For example, a business unit 
might be a warehouse location, job, project, work center, branch, or plant. You can assign a business unit to a document, entity, or person for 
purposes of responsibility reporting. For example, the system provides reports of open accounts payable and accounts receivable by 
business unit to track equipment by responsible department. Business unit security might prevent you from viewing information about business units 
for which you have no authority.

szOrderSuffixSFXOcharNONENONE

In the A/R and A/P systems, a code that corresponds to the pay item. In the Sales Order and Procurement systems, this code identifies 
multiple transactions for an original order. For purchase orders, the code is always 000. For sales orders with multiple partial receipts against an 
order, the first receiver used to record receipt has a suffix of 000, the next has a suffix of 001, the next 002, and so on.

jdDateTransactionJulianTRDJJDEDATEOPTNONE

The date that an order was entered into the system. This date determines which effective level the system uses for inventory pricing.

Related Functions

B0100011 Error Message Processor to PPAT System
B0100025 Initialize PPAT Error Message API
B9800100 Get Audit Information
B9800140 Get User Address Book Number
BLM0016 SetLevel_RequestForApproval

Related Tables

F4209 Held Orders
F43008 Approval Levels
CheckForDuplicateApprover

CheckForDuplicateApprover

Approval Processing Functions

Major Business Rule

Object Name: B4300140

Parent DLL: CDIST

Location: Client/Server

Language: C

Functional Description

Purpose

Checks the Approval Route Table(F43008) for a duplicate user given the order type, route code, and an 
user address number. Returns a boolean Exists flag


Setup Notes and Prerequisites

This function provides no Error setting, the flag enables the user to set the error.


Special Logic


Ignore Budget Approvers (ie where the budget approver type == 1).   There is only one Budget 

Approver.


Technical Specification


2.2Related Tables 

Table Table Description
F43008Approval Routing Table


2.4Processing 


Set ApproverExists to FALSE ( '0').


Perform a search to see whether or not the ChangingApprover is in the list.  If it is, then set 

ApproverExists = ('1').



^

Data Structure

D4300140J - Check for Duplicate Approver

Parameter NameData ItemData TypeReq/OptI/O/Both
szOrderTypeDCTOcharNONENONE

A user defined code (00/DT) that identifies the type of document. This code also indicates the origin of the transaction. J.D. Edwards has 
reserved document type codes for vouchers, invoices, receipts, and time sheets, which create automatic offset entries during the post 
program. (These entries are not self-balancing when you originally enter them.) The following document types are defined by J.D. Edwards and 
should not be changed: P Accounts Payable documents   R Accounts Receivable documents   T Payroll documents   I Inventory documents  
O Purchase Order Processing documents   J General Accounting/Joint Interest Billing documents   S Sales Order Processing documents

szApprovalRouteCodeARTGcharNONENONE

A code that determines to whom an order is routed for approval.

mnChangingApproverAN8MATH_NUMERICNONENONE

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

cApproverExistsEV01charNONENONE

Special Output Returned
1-True

0-False


^

Related Functions

B0100011 Error Message Processor to PPAT System
B0100025 Initialize PPAT Error Message API
B9800100 Get Audit Information
B9800140 Get User Address Book Number
BLM0016 SetLevel_RequestForApproval

Related Tables

F4209 Held Orders
F43008 Approval Levels
CheckForHeldOrders

CheckForHeldOrders

Approval Processing Functions

Major Business Rule

Object Name: B4300140

Parent DLL: CDIST

Location: Client/Server

Language: C

Functional Description

Purpose

To check the Hold Orders Table(F4209) for held orders linked to an approver.

Key used:- ASTS, RPER, DCTO, ARTG


If a record exists the ERR flag is set to '1' alse it has a value of '0'


Technical Specification


Parameters:
ASTSApprovalStatusI

RPERResponsiblePersonI

DCTODocumentTypeI

ARTGApprovalRouteCodeI

ERRErrorCodeO


Edits:

None.

Retrievals:

Retrieves the first occurance of the key ASTS, RPER, DCTO and ARTG from the F4209 table.  If a record exists then the ERR flag is set to '1'.  If no record 
exists then the error code is set to '0'.





Data Structure

D4300140A - Check for Held Orders

Parameter NameData ItemData TypeReq/OptI/O/Both
mnResponsiblePersonRPERMATH_NUMERICNONENONE

The address book number of the person who is responsible for reviewing and releasing orders placed on hold.

szDocumentTypeDCTOcharNONENONE

A user defined code (00/DT) that identifies the type of document. This code also indicates the origin of the transaction. J.D. Edwards has 
reserved document type codes for vouchers, invoices, receipts, and time sheets, which create automatic offset entries during the post 
program. (These entries are not self-balancing when you originally enter them.) The following document types are defined by J.D. Edwards and 
should not be changed: P Accounts Payable documents   R Accounts Receivable documents   T Payroll documents   I Inventory documents  
O Purchase Order Processing documents   J General Accounting/Joint Interest Billing documents   S Sales Order Processing documents

szApprovalRouteCodeARTGcharNONENONE

A code that determines to whom an order is routed for approval.

cErrorCodeERRcharNONENONE

The Data Field Error Code field is simply a generic data field to pass an error condition flag.  This field is one of the fields that make up the 
external parameter data structure of the Data Dictionary Server.

cApprovalTypeEV01charNONENONE

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

Related Functions

B0100011 Error Message Processor to PPAT System
B0100025 Initialize PPAT Error Message API
B9800100 Get Audit Information
B9800140 Get User Address Book Number
BLM0016 SetLevel_RequestForApproval

Related Tables

F4209 Held Orders
F43008 Approval Levels
CheckIfApproverAuthorized

CheckIfApproverAuthorized

Approval Processing Functions

Major Business Rule

Object Name: B4300140

Parent DLL: CDIST

Location: Client/Server

Language: C

Functional Description

Purpose

This business function determines whether a user is authroized to approve a Purchase Order.  The Held 
Orders table (F4209) is checked for the approver next in line to approve.  The Approval Route 

(F43008) is also checked to evaluate whether the current user exists as an approver with a higher monetary 

limit than the current approver.


Technical Specification

2.3Related Business Functions

DetermineCurrentApprover
RetrieveApproverLimit



2.4Processing 


Initialize AuthorizedToApprove to '0'


Use the business function DetermineCurrentApprover to determine whether the currenct approval request 

record exists in the F4209 table.



If the business function returns a blank/NULL 'CurrentApprover' then 

set AuthorizedToApprove to '0' 
End Processing.


If the business function returns a value in 'CurrentApprover'

AND 'CurrentApprover' is equal to UserCurrentlySignedOn then

set AuthorizedToApprove to '1' 
Set the ApproverType to the value returned by DetermineCurrentApprover.

End Processing.


If 'CurrentApprover' is not equal to UserCurrentlySignedOn then

If the ApproverType returned by DetermineCurrentApprover is '1' then
set AuthorizedToApprove to '0' 
Set the ApproverType to the value returned by DetermineCurrentApprover.

End Processing.



Using the business fucntion RetrieveApproverLimit retrieve the ApprovalLimit (1)  for the 

'Current Approver' 


Using the business function RetrieveApproverLimit retrieve the ApprovalLimit (2) for the 

UserCurrentlySignedOn.


If the Approval Limit (2) is GREATER THAN the ApprovalLimit (1) then 

set AuthorizationToApprove to '1'
Set the ApproverType to '2'

End Processing

else 
set AuthorizationToApprove to '0'
Set ApproverType to BLANK

End Processing



^

Data Structure

D4300140F - Check If Approver Authorized

Parameter NameData ItemData TypeReq/OptI/O/Both
mnOrderNumberDOCOMATH_NUMERICNONENONE

A number that identifies an original document. This document can be a voucher, a sales order, an invoice, unapplied cash, a journal entry, 
and so on.

szOrderTypeDCTOcharNONENONE

A user defined code (00/DT) that identifies the type of document. This code also indicates the origin of the transaction. J.D. Edwards has 
reserved document type codes for vouchers, invoices, receipts, and time sheets, which create automatic offset entries during the post 
program. (These entries are not self-balancing when you originally enter them.) The following document types are defined by J.D. Edwards and 
should not be changed: P Accounts Payable documents   R Accounts Receivable documents   T Payroll documents   I Inventory documents  
O Purchase Order Processing documents   J General Accounting/Joint Interest Billing documents   S Sales Order Processing documents

szOrderCompanyKCOOcharNONENONE

A number that, along with order number and order type, uniquely identifies an order document (such as a purchase order, a contract, a 
sales order, and so on). If you use the Next Numbers by Company/Fiscal Year facility, the Automatic Next Numbers program (X0010) uses the 
order company to retrieve the correct next number for that company. If two or more order documents have the same order number and order 
type, the order company lets you locate the desired document. If you use the regular Next Numbers facility, the order company is not used to 
assign a next number. In this case, you probably would not use the order company to locate the document.

mnUserCurrentlySignedOnAN8MATH_NUMERICNONENONE

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

szApprovalRouteCodeARTGcharNONENONE

A code that determines to whom an order is routed for approval.

cAuthorizedToApproveEV01charNONENONE

Special Output Returned
0-No 

1-Yes


^

cApprovalTypeATYcharNONENONE

Special Output Returned
1-Budget Approval 

2-Monetary Approval



^

szOrderSuffixSFXOcharOPTNONE

In the A/R and A/P systems, a code that corresponds to the pay item. In the Sales Order and Procurement systems, this code identifies 
multiple transactions for an original order. For purchase orders, the code is always 000. For sales orders with multiple partial receipts against an 
order, the first receiver used to record receipt has a suffix of 000, the next has a suffix of 001, the next 002, and so on.

Related Functions

B0100011 Error Message Processor to PPAT System
B0100025 Initialize PPAT Error Message API
B9800100 Get Audit Information
B9800140 Get User Address Book Number
BLM0016 SetLevel_RequestForApproval

Related Tables

F4209 Held Orders
F43008 Approval Levels
DetermineApproverAtNextLimit

DetermineApproverAtNextLimit

Approval Processing Functions

Minor Business Rule

Object Name: B4300140

Parent DLL: CDIST

Location: Client/Server

Language: C

Data Structure

D4300140K - Determine Approver At Next Limit

Parameter NameData ItemData TypeReq/OptI/O/Both
szOrderTypeDCTOcharOPTNONE

A user defined code (00/DT) that identifies the type of document. This code also indicates the origin of the transaction. J.D. Edwards has 
reserved document type codes for vouchers, invoices, receipts, and time sheets, which create automatic offset entries during the post 
program. (These entries are not self-balancing when you originally enter them.) The following document types are defined by J.D. Edwards and 
should not be changed: P Accounts Payable documents   R Accounts Receivable documents   T Payroll documents   I Inventory documents  
O Purchase Order Processing documents   J General Accounting/Joint Interest Billing documents   S Sales Order Processing documents

szApprovalRouteCodeARTGcharOPTNONE

A code that determines to whom an order is routed for approval.

mnCurrentApproverAN8MATH_NUMERICOPTNONE

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

mnNextApproverAN8MATH_NUMERICOPTNONE

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

mnApproverLimitALIMMATH_NUMERICOPTNONE

A number indicating the lower end of the range of amounts for which this approver is responsible when approving orders. The message 
Budget indicates that this approver is the budget approver.

cApproverTypeATYcharOPTNONE

A code to specify the type of approver for order approval processing. Valid values for this field are:    1   The approver has the responsibility 
to approve or reject the order on the basis of budget requirements, and    2   The approver has the responsibility to approve or reject the 
order at different dollar ranges for non-budget reasons.

cApproversBypassedEV01charOPTNONE

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

cNoFurtherApproversEV01charOPTNONE

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

cRouteCodeNotFoundEV01charOPTNONE

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

cErrorCodeEV01charOPTNONE

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

szErrorMessageIDEKEYcharOPTNONE

A 4-digit number assigned to all errors. When this number is used in the error message facility (F7 from any form), you may enter a specific 
error message number and press F13 to automatically exit to the revisions program referenced within the text of the error message. This 
function applies only to error messages that refer to items such as user defined codes.

Related Functions

B0100011 Error Message Processor to PPAT System
B0100025 Initialize PPAT Error Message API
B9800100 Get Audit Information
B9800140 Get User Address Book Number
BLM0016 SetLevel_RequestForApproval

Related Tables

F4209 Held Orders
F43008 Approval Levels
DetermineCurrentApprover

DetermineCurrentApprover

Approval Processing Functions

Major Business Rule

Object Name: B4300140

Parent DLL: CDIST

Location: Client/Server

Language: C

Functional Description

Purpose

This business function returns the Current Approver for an order as well as the approver type (i.e. 
whether the approver is a budget or monetary approver)


Technical Specification


2.4Processing 


Using the key HCOD = '**

DOCO

DCTO

KCOO

ASTS = '1N'

fetch a record form the F4209 table.



If the fetch is successful then

Assign AN8 to the Originator
Assign RPER to the CurrentApprover

Assign '1' to the ApproverType


If the fetch fails then

Using the key HCOD = '**'
DOCO

DCTO

KCOO

ASTS = '2N'

fetch a record from the F4209 table.


If the fetch succeeds then

Assign AN8 to the Originator
Assign RPER to the CurrentApprover

Assign '2' to the ApproverType


else
if the fetch fails for ASTS = 2N

Assign NULL to the Originator
Assign NULL to the ApproverType

Assign NULL to the CurrentApprover


End of Processing



^

Data Structure

D4300140C - Determine Current Approver


^

Parameter NameData ItemData TypeReq/OptI/O/Both
mnOrderNumberDOCOMATH_NUMERICNONENONE

A number that identifies an original document. This document can be a voucher, a sales order, an invoice, unapplied cash, a journal entry, 
and so on.

szOrderTypeDCTOcharNONENONE

A user defined code (00/DT) that identifies the type of document. This code also indicates the origin of the transaction. J.D. Edwards has 
reserved document type codes for vouchers, invoices, receipts, and time sheets, which create automatic offset entries during the post 
program. (These entries are not self-balancing when you originally enter them.) The following document types are defined by J.D. Edwards and 
should not be changed: P Accounts Payable documents   R Accounts Receivable documents   T Payroll documents   I Inventory documents  
O Purchase Order Processing documents   J General Accounting/Joint Interest Billing documents   S Sales Order Processing documents

szOrderCompanyKCOOcharNONENONE

A number that, along with order number and order type, uniquely identifies an order document (such as a purchase order, a contract, a 
sales order, and so on). If you use the Next Numbers by Company/Fiscal Year facility, the Automatic Next Numbers program (X0010) uses the 
order company to retrieve the correct next number for that company. If two or more order documents have the same order number and order 
type, the order company lets you locate the desired document. If you use the regular Next Numbers facility, the order company is not used to 
assign a next number. In this case, you probably would not use the order company to locate the document.

mnCurrentApproverRPERMATH_NUMERICNONENONE

The address book number of the person who is responsible for reviewing and releasing orders placed on hold.

mnOriginatorAN8MATH_NUMERICNONENONE

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

cApproverTypeATYcharNONENONE

Special Input Expected
Blank-No approver found 

1-Budget Approver 

2-Monetary Approver


^

szOrderSuffixSFXOcharOPTNONE

In the A/R and A/P systems, a code that corresponds to the pay item. In the Sales Order and Procurement systems, this code identifies 
multiple transactions for an original order. For purchase orders, the code is always 000. For sales orders with multiple partial receipts against an 
order, the first receiver used to record receipt has a suffix of 000, the next has a suffix of 001, the next 002, and so on.

szApprovalRouteARTGcharOPTNONE

A code that determines to whom an order is routed for approval.

Related Functions

B0100011 Error Message Processor to PPAT System
B0100025 Initialize PPAT Error Message API
B9800100 Get Audit Information
B9800140 Get User Address Book Number
BLM0016 SetLevel_RequestForApproval

Related Tables

F4209 Held Orders
F43008 Approval Levels
DetermineFirstApprover

DetermineFirstApprover

Approval Processing Functions

Major Business Rule

Object Name: B4300140

Parent DLL: CDIST

Location: Client/Server

Language: C

Functional Description

Purpose

The purpose of this business function is to find the first Approver for Approval Processing using the 
Approval Routing Table(F43008). 



If a budget hold exists and a budget approver exists, then write the " 0" record for the originator, 

and the "1N" record for the budget approver in the Held Orders Table (F4209).

 

If the originator exists in the Route Code, then write the " 0" record for the originator, write "2B" 

bypassed records for approvers up to the orginator and write "2A" record for the originator, and 

automatically write the "2N" record for the next approver else the "3N - AN8=0" for no more approver in 

the list using the Held Orders Table (F4209). 


If the originator does not exist in the Route Code, find the first approver with an approval amount 

less than or equal to the PO, then write the " 0" record for the originator, and a "2N" record for the 

approver in the Held Orders Table (F4209).


If the Originator = 0, then write an "O" record for the originator, and write a "2N" record for the 

first level approver in the route table.


If the OrderLimit is below the limit of the first level approver, then write an "O" record for the 

originator and then write a "3N" record.  The approval route is bypassed in this instance.



Setup Notes and Prerequisites

Special Logic


This business function creates the audit trail for Approval Routing.

If the orginator is in the list, write bypassed records, and approved record for the orginator, and 

write the next "2N" or "3N - AN8=0" record



Technical Specification


2.4Processing 


Set UpdateStatusCodes = TRUE



If the Originator is blank then use GetAuditInfo to retrieve the User-ID of the user currently signed 

on.  Use GetUserAddressBookNumber to retrieve the address book number.

  

/*  Remove all existing approval messages from the Approval table if the Order is being modified.

If OrderActionCode is equal to '2' then

DELETE all records with matching key of OrderType, OrderNumber,OrderCompan, ApprovalRouteCode, 
and Order Approval Status (F4209.HOASTS) equal to '1N' or '2N'. 


If the BudgetHold equals '1' 

and DetermineNextApprover finds a budget approver 

and the Originator is not the BudgetApprover then

AccessOrderApprovalRow with
RPER - Originator
AN8- Originator

ATYP- blank

EV01- O

EV02- blank

EV03- I(nsert)


AccessOrderApprovalRow with
RPER - Budget Approver
AN8- Originator

ATYP- 1

EV01- N

EV02- blank

EV03- I(nsert)


Set UpdateStatusCodes = FALSEelse 

RetrieveApproverLimit  of the first approver
CheckForDuplicateApprover to see if originator is in approval route

If the Originator exists in the Approval Route table and 

     the OrderLimit  is greater than the ApprovalLimit of the first approver  then

AccessOrderApprovalRow with
RPER - Originator
AN8- Originator

ATYP- blank

EV01- O

EV02- blank

EV03- I(nsert)


UpdateLogForBypassedApprovers 

/**
while Approver exist below the originator  write bypassed records
AccessOrderApprovalRow with
RPER - ApproverBelowOriginator
AN8- Originator

ATYP- 2

EV01- B

EV02- blank

EV03- I(nsert)

**/
AccessOrderApprovalRow with
RPER - Originator
AN8- Originator

ATYP- 2

EV01- A

EV02- blank

EV03- I(nsert)


If DetermineNextApproveris equal to '1' the

(write back to the originator)

AccessOrderApprovalRow with
RPER - Originator
AN8- '0'

ATYP- 3

EV01- N

EV02- blank

EV03- I(nsert)

else
(write the next approver)

AccessOrderApprovalRow with
RPER - NextApprover
AN8- Originator

ATYP- 2

EV01- N

EV02- blank

EV03- I(nsert)


Set UpdateStatusCodes = FALSE

end
else 
      If the DetermineNextApproverLimit <= PO Amount

           or the mnOriginator equal zero

AccessOrderApprovalRow with
RPER - Originator
AN8- Originator

ATYP- blank

EV01- O

EV02- blank

EV03- I(nsert)


AccessOrderApprovalRow 
with
RPER - FirstApprover
AN8- Originator

ATYP- 2

EV01- N

EV02- blank

EV03- I(nsert)


Set UpdateStatusCodes = FALSE

        else

/* write 'O' and '3N' record */

AccessOrderApprovalRow with
RPER - Originator
AN8- Originator

ATYP- blank

EV01- O

EV02- blank

EV03- I(nsert)


AccessOrderApprovalRow 
with
RPER - Originator
AN8- '0'

ATYP- 3

EV01- N

EV02- blank

EV03- I(nsert)

     end


end

^

Data Structure

D4300140I - Determine First Approver

Parameter NameData ItemData TypeReq/OptI/O/Both
szOrderTypeDCTOcharNONENONE

A user defined code (00/DT) that identifies the type of document. This code also indicates the origin of the transaction. J.D. Edwards has 
reserved document type codes for vouchers, invoices, receipts, and time sheets, which create automatic offset entries during the post 
program. (These entries are not self-balancing when you originally enter them.) The following document types are defined by J.D. Edwards and 
should not be changed: P Accounts Payable documents   R Accounts Receivable documents   T Payroll documents   I Inventory documents  
O Purchase Order Processing documents   J General Accounting/Joint Interest Billing documents   S Sales Order Processing documents

mnOrderNumberDOCOMATH_NUMERICNONENONE

A number that identifies an original document. This document can be a voucher, a sales order, an invoice, unapplied cash, a journal entry, 
and so on.

szOrderCompanyKCOOcharNONENONE

A number that, along with order number and order type, uniquely identifies an order document (such as a purchase order, a contract, a 
sales order, and so on). If you use the Next Numbers by Company/Fiscal Year facility, the Automatic Next Numbers program (X0010) uses the 
order company to retrieve the correct next number for that company. If two or more order documents have the same order number and order 
type, the order company lets you locate the desired document. If you use the regular Next Numbers facility, the order company is not used to 
assign a next number. In this case, you probably would not use the order company to locate the document.

szApprovalRouteCodeARTGcharNONENONE

A code that determines to whom an order is routed for approval.

szOrderSuffixSFXOcharNONENONE

In the A/R and A/P systems, a code that corresponds to the pay item. In the Sales Order and Procurement systems, this code identifies 
multiple transactions for an original order. For purchase orders, the code is always 000. For sales orders with multiple partial receipts against an 
order, the first receiver used to record receipt has a suffix of 000, the next has a suffix of 001, the next 002, and so on.

mnOrderLimitALIMMATH_NUMERICNONENONE

A number indicating the lower end of the range of amounts for which this approver is responsible when approving orders. The message 
Budget indicates that this approver is the budget approver.

szBranchPlantMCUcharNONENONE

An alphanumeric code that identifies a separate entity within a business for which you want to track costs. For example, a business unit 
might be a warehouse location, job, project, work center, branch, or plant. You can assign a business unit to a document, entity, or person for 
purposes of responsibility reporting. For example, the system provides reports of open accounts payable and accounts receivable by 
business unit to track equipment by responsible department. Business unit security might prevent you from viewing information about business units 
for which you have no authority.

mnOriginatorAN8MATH_NUMERICNONENONE

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

cBudgetHoldEV01charNONENONE

Special Input Expected
1-True

0-False




^

cUpdateStatusCodesEV01charNONENONE

Special Output Returned
1-True 

0-False



^

cOrderActionEV01charOPTNONE

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

jdDateTransactionJulianTRDJJDEDATEOPTNONE

The date that an order was entered into the system. This date determines which effective level the system uses for inventory pricing.

Related Functions

B0100011 Error Message Processor to PPAT System
B0100025 Initialize PPAT Error Message API
B9800100 Get Audit Information
B9800140 Get User Address Book Number
BLM0016 SetLevel_RequestForApproval

Related Tables

F4209 Held Orders
F43008 Approval Levels
DetermineNextApprover

DetermineNextApprover

Approval Processing Functions

Major Business Rule

Object Name: B4300140

Parent DLL: CDIST

Location: Client/Server

Language: C

Functional Description

Purpose

The purpose of this business function is to retrieve the NEXT approver from an Approval Route code.  
The Approver Type and Monetary Limit are also returned.


Technical Specification


2.4Processing 


Select records with the partial key DCTO and ARTG



If no records found then 

set RouteCodeNotFound to '1'
End Business Function Processing.


Sort in ALIM ascending order.


Retrieve the record with F43008/RPER equal to the CurrentApprover. 


If no record exists then 

retrieve the FIRST record from the sorted selection.  
Move F43008/ALIM to ApproverLimit

Move F43008/ATY to ApproverType

Move F43008/RPER to NextApprover


Set NoFurtherApprovers to '0'


Set RouteCodeNotFound to '0'


End Business Function Processing



If a record has been found then

Retrieve the NEXT record from the sorted selection.

If no further records exist in the selection then 
Set NoFurtherApprovers to '1'

Set RouteCodeNotFound to '0'


End Business Function Processing.


If a record has been found in sorted selection then
Move F43008/ALIM to ApproverLimit
Move F43008/ATY to ApproverType

Move F43008/RPER to NextApprover


Set NoFurtherApprovers to '0'


Set RouteCodeNotFound to '0'


End Business Function Processing



^

Data Structure

D4300140D - Determine Next Approver

Parameter NameData ItemData TypeReq/OptI/O/Both
szOrderTypeDCTOcharNONENONE

A user defined code (00/DT) that identifies the type of document. This code also indicates the origin of the transaction. J.D. Edwards has 
reserved document type codes for vouchers, invoices, receipts, and time sheets, which create automatic offset entries during the post 
program. (These entries are not self-balancing when you originally enter them.) The following document types are defined by J.D. Edwards and 
should not be changed: P Accounts Payable documents   R Accounts Receivable documents   T Payroll documents   I Inventory documents  
O Purchase Order Processing documents   J General Accounting/Joint Interest Billing documents   S Sales Order Processing documents

szApprovalRouteCodeARTGcharNONENONE

A code that determines to whom an order is routed for approval.

mnCurrentApproverAN8MATH_NUMERICNONENONE

Special Input Expected
If left blank, the FIRST approver in the route code is returned.


^

mnNextApproverAN8MATH_NUMERICNONENONE

Special Output Returned
This is the next approver who is responsible to approve the order in the approval route code.


^

mnApproverLimitALIMMATH_NUMERICNONENONE


^

cApproverTypeATYcharNONENONE

Special Output Returned
1-Budget Approver

2-Monetary Approver


^

cNoFurtherApproversEV01charNONENONE

Special Output Returned
Set to '1' if the CurrentApprover is the last approver in the Route.


^

cRouteCodeNotFoundEV02charNONENONE

Special Output Returned
Set to '1' if the Approval Route Code for this order type has not been found.



^

Related Functions

B0100011 Error Message Processor to PPAT System
B0100025 Initialize PPAT Error Message API
B9800100 Get Audit Information
B9800140 Get User Address Book Number
BLM0016 SetLevel_RequestForApproval

Related Tables

F4209 Held Orders
F43008 Approval Levels
RetrieveApproverLimit

RetrieveApproverLimit

Approval Processing Functions

Major Business Rule

Object Name: B4300140

Parent DLL: CDIST

Location: Client/Server

Language: C

Functional Description

Purpose

The purpose of this business function is to return the monetary limit up to which an approver is 
allowed to approve an order.  If the approver is a budget approver then no monetary limit applies.  The 

monetary limit will be 0 and the ApproverType will be set to '1'.


Technical Specification


2.4Processing 


Using the key DCTO, ARTG and RPER retrieve a record from the F43008 table.  



If  no record is found then set the ApproverNotFoundFlag to '1'.


If a record is found then 

Move the monetary limit ALIM to the Data Structure
Move the type (ALIM) from the table to the data structure.


End of Processing.


^

Data Structure

D4300140G - Retrieve Approver Limit

Parameter NameData ItemData TypeReq/OptI/O/Both
szOrderTypeDCTOcharNONENONE

A user defined code (00/DT) that identifies the type of document. This code also indicates the origin of the transaction. J.D. Edwards has 
reserved document type codes for vouchers, invoices, receipts, and time sheets, which create automatic offset entries during the post 
program. (These entries are not self-balancing when you originally enter them.) The following document types are defined by J.D. Edwards and 
should not be changed: P Accounts Payable documents   R Accounts Receivable documents   T Payroll documents   I Inventory documents  
O Purchase Order Processing documents   J General Accounting/Joint Interest Billing documents   S Sales Order Processing documents

szApprovalRouteCodeARTGcharNONENONE

A code that determines to whom an order is routed for approval.

mnApproverRPERMATH_NUMERICNONENONE

The address book number of the person who is responsible for reviewing and releasing orders placed on hold.

mnApprovalLimitALIMMATH_NUMERICNONENONE

A number indicating the lower end of the range of amounts for which this approver is responsible when approving orders. The message 
Budget indicates that this approver is the budget approver.

cApprovalTypeATYcharNONENONE

Special Output Returned
1-Budget 

2-Monetary Approver

^

cApproverNotFoundFlagEV01charNONENONE

Special Output Returned
1-Approver Not found in Route Code



^

Related Functions

B0100011 Error Message Processor to PPAT System
B0100025 Initialize PPAT Error Message API
B9800100 Get Audit Information
B9800140 Get User Address Book Number
BLM0016 SetLevel_RequestForApproval

Related Tables

F4209 Held Orders
F43008 Approval Levels
UpdateNextApproverForHeldOrders

UpdateNextApproverForHeldOrders

Approval Processing Functions

Major Business Rule

Object Name: B4300140

Parent DLL: CDIST

Location: Client/Server

Language: C

Functional Description

Purpose

To update the 'Next Approver' for all held orders. This is used in approval delegation.

Technical Specification


Retrievals:

Retrieves ALL rows from the F4209table using the key ASTS, RPER, DCTO and ARTG and updates the APRPER 
to the CurrentResponsiblePerson.




^

Data Structure

D4300140B - Update Next Approver For Held Orders

Parameter NameData ItemData TypeReq/OptI/O/Both
mnCurrentResponsiblePersonRPERMATH_NUMERICNONENONE

The address book number of the person who is responsible for reviewing and releasing orders placed on hold.

mnNewResponsiblePersonRPERMATH_NUMERICNONENONE

The address book number of the person who is responsible for reviewing and releasing orders placed on hold.

szHeldOrderStatusASTScharNONENONE

Text indicating where this order stands in the approval process. Following are valid status messages: Approved - The approver has 
approved the order. When an approver approves an order, the system sends an electronic mail message to the next approver stating that his 
approval is required next. If there are no more required approvers, the system sends a final approved electronic mail message to the person 
who entered the order. Rejected - The approver has rejected the order. When an approver rejects an order, the system sends an electronic 
mail rejection message to the person who entered the order indicating the order was rejected and changes are necessary before the order can 
be approved. After the person who entered the order makes changes, the approval processing begins again with the first 
approver. Pending - The approver has not yet taken action on the order. Bypassed - The approver was skipped in the approval process because someone 
of greater authority has approved or rejected the order. First position meaning:    1   Budget Approver    2   Dollar Level Approver    3   Originator 
of the Request  Second position meaning:    R Rejected - Valid with first postions 1, 2, or 3 .    A Approved - Valid with first postions 1, 2, or 3 .    N 
Pending Message - Message is waiting in the Approval Process.    B Approval Level Skipped - A level of Approval was skipped.    O Time 
Stamp - The information is a record of when the originator entered the information.

szDocumentTypeDCTOcharNONENONE

A user defined code (00/DT) that identifies the type of document. This code also indicates the origin of the transaction. J.D. Edwards has 
reserved document type codes for vouchers, invoices, receipts, and time sheets, which create automatic offset entries during the post 
program. (These entries are not self-balancing when you originally enter them.) The following document types are defined by J.D. Edwards and 
should not be changed: P Accounts Payable documents   R Accounts Receivable documents   T Payroll documents   I Inventory documents  
O Purchase Order Processing documents   J General Accounting/Joint Interest Billing documents   S Sales Order Processing documents

szApprovalRouteCodeARTGcharNONENONE

A code that determines to whom an order is routed for approval.

Related Functions

B0100011 Error Message Processor to PPAT System
B0100025 Initialize PPAT Error Message API
B9800100 Get Audit Information
B9800140 Get User Address Book Number
BLM0016 SetLevel_RequestForApproval

Related Tables

F4209 Held Orders
F43008 Approval Levels
uses the 
order company to retrieve the correct next number for that company. If two or more order documents have the same order number and order 
type, the order company lets you locate the desired document. If you use the regular Next Numbers facility, the order company is not used to 
assign a next number. In this case, you probably would not use the order company to locate the document.

mnCurrentApproverRPERMATH_NUMERICNONENONE

The address book number of the person who is responsible for reviewing and releasing orders placed on hold.

mnOriginatorAN8MATH_NUMERICNONENONE

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

cApproverTypeATYcharNONENONE

Special Input Expected
Blank-No approver found 

1-Budget Approver 

2-Monetary Approver


^

szOrderSuffixSFXOcharOPTNONE

In the A/R and A/P systems, a code that corresponds to the pay item. In the Sales Order and Procurement systems, this code identifies 
multiple transactions for an original order. For purchase orders, the code is always 000. For sales orders with multiple partial receipts against an 
order, the first receiver used to record receipt has a suffix of 000, the next has a suffix of 001, the next 002, and so on.

szApprovalRouteARTGcharOPTNONE

A code that determines to whom an order is routed for approval.

Related Functions

B0100011 Error Message Processor to PPAT System
B0100025 Initialize PPAT Error Message API
B9800100 Get Audit Information
B9800140 Get User Address Book Number
BLM0016 SetLevel_RequestForApproval

Related Tables

F4209 Held Orders
F43008 Approval Levels
DetermineFirstApprover

DetermineFirstApprover

Approval Processing Functions

Major Business Rule

Object Name: B4300140

Parent DLL: CDIST

Location: Client/Server

Language: C

Functional Description

Purpose

The purpose of this business function is to find the first Approver for Approval Processing using the 
Approval Routing Table(F43008). 



If a budget hold exists and a budget approver exists, then write the " 0" record for the originator, 

and the "1N" record for the budget approver in the Held Orders Table (F4209).

 

If the originator exists in the Route Code, then write the " 0" record for the originator, write "2B" 

bypassed records for approvers up to the orginator and write "2A" record for the originator, and 

automatically write the "2N" record for the next approver else the "3N - AN8=0" for no more approver in 

the list using the Held Orders Table (F4