How to Debug Batch Header (F0011) Related Issues in Distribution

Purpose of Document

This note is to guide how to debug when issue pertains to Batch Header (F0011) File. The audience for this note is someone with developer level knowledge.

This note is based on thin client configuration and supposed that you understood Batch Control Processing in EnterpriseOne. In EnterpriseOne Batch Header is heavily used to isolate a certain transaction when the result of transaction affects monetary account or needs to be written into F0911 (General Ledger File).

Table of Contents

This note is to explain how to debug when a certain issue is coming from batch header file (F0011). Batch header is to be written, when a certain transaction affects General Ledger, to set boundary of transaction. It is important to capture both jasdebug.log and jdedebug.log to debug issue properly because batch header information has to be handled from both client (serialized object) and server (callobject kernel). In case, the code you are on is not up to the latest code there is chance of


To enable you to debug your issue better this note explains how batch header is handled in Distribution module. Same routine may have implemented in Financial or Manufacturing Module so the way you can debug is more or less same.

Note that most of codes here are hard coded so do not modify any code and Oracle does not bear any responsibility for wrong result may be caused by custom code you are on.

Before review below note, refer to <Document Batch Control Processing and Related Business Functions in EnterpriseOne to understand Batch Control Processing better.


General routine to add/update/delete Batch Control Records (F0011)

Creating new transaction:

Hook-up Event Business Function Notes
Insert Row is Exited Changed - Asynch B0000004 - BatchOpenOnInitialization (F0011 Write Batch Header) F4114EditLine
F4111EditLine
FSOpenBatch
BatchOpenOnInitialization
- Before F0911FSBeginDoc gets called
Update 1 Post OK button clicked B0000007 - BatchReviseOnTransactionCommit (F0011 Update on Transaction Commitment) F4114EndDocument
F4111EndDocument
F0911FSEndDoc
BatchReviseOnTransactionCommit
Update 2 Close Button Clicked F4114ClearDetailStack
F4111ClearDetailStack
BatchReviseOnExit
Delete Cancel button clicked
or Batch in Error in Batch Application
FSCloseBatch
BatchReviseOnExit
Close Batch N0000001 - BatchControlProcessing (Batch Control Processing)

* Batch Control is ON batch header has to be written before batch control form gets opened through F0011 Write Batch Header

Editing/updating existing data:
Hook-up Event Business Function Notes
Insert Dialog is Initialized N0000001 - BatchOpenBatchControlProcessing (Batch Open - Batch Control Processing) Written by N0000001
Update 1 Post OK button clicked B0000007 - BatchReviseOnTransactionCommit (F0011 Update on Transaction Commitment) F4312EndDoc
F0911FSEndDoc
BatchReviseOnTransactionCommit
Update 2 Close Button Clicked FSCloseBatch
BatchReviseOnExit
Delete Cancel button clicked FSCloseBatch
BatchReviseOnExit
Close Batch N0000001 - BatchControlProcessing (Batch Control Processing)


Example I - Inventory Transaction

: Inventory transaction creates Cardex (F4111) file so below routine explains how application related with inventory transaction handles batch header
1. Insert:
Event: Row Is Exited Changed - Asynch
Business function: dit Line routine calls F4111EditLine
Function: Insert takes place before F0911FSBeginDoc as Cache for G/L has to be written with batch created through the Business Function BatchOpenOnInitialization
Call Stack:
1. F4114EditLine (XT4114Z1 - F4114 Edit Line)
2. F4111EditLine (XT4111Z1 - F4111 Edit Line)
3. FSOpenBatch (B0000042 - F0011 Open Batch)
4. BatchOpenOnInitialization (B0000004 - F0011 Write Batch Header)
INSERT INTO PRODDTA.F0011 (ICICUT, ICICU, ICIST, ICIAPP, ICAICU, ICUSER, ICDICJ, ICNDO, ICBAL, ICBALJ, ICAME, ICDOCN, ICAUSR, ICPOB, ICIBOI, ICAIPT, ICOFFP, ICPID, ICJOBN, ICUPMJ, ICUPMT, ICDRSP, IC52PP, ICCBP) VALUES ('N',159698.000000,'U','P',0.000000,'SDONGMYE',111142,0.000000,' ',' ',0.000000,0.000000,' ','N',' ',0.000000,' ',' ',' ',0,0.000000,' ',' ',' ') 3. F0911FSBeginDoc (B0900049 - F0911 Begin Document)

2. Update 1
Event: Post OK button clicked
Business Function: Update take place in F0911FSEndDoc routine through business function BatchReviseOnTransactionCommit
Function: This is to isolate working batch as there is chance to create batch through Edit Line and exit from routine without committing transaction

2'. Update 2
Event: After all the data have committed through BatchReviseOnExit in End Doc routine
Function: This is to make a certain batch to get ready
Call Stack:
1. F4114EndDocument (XT4114Z1 - F4114 End Document)
2. F4111EndDocument (XT4111Z1 - F4111 End Document)
3. F0911FSEndDoc (B0900049 - F0911 End Document)
4. BatchReviseOnTransactionCommit (B0000007 - F0011 Update on Transaction Commitment)
UPDATE PRODDTA.F0011 SET ICICUT='N ',ICICU=159698.000000,ICIST='U',ICIAPP='P',ICAICU=0.000000,ICUSER='SDONGMYE ',ICDICJ=111142,ICNDO=0.000000,ICBAL=' ',ICBALJ=' ',ICAME=4000.000000,ICDOCN=1.000000,ICDRSP=' ',IC52PP=' ',ICCBP=' ' WHERE ( ICICUT = 'N' AND ICICU = 159698.000000 )

2''. Update 3
Event: when Close button is clicked to close batch
Call Stack:
1. F4114ClearDetailStack (XT4114Z1 - F4114 Clear Detail Stack)
2. F4111ClearDetailStack (XT4111Z1 - F4111 Delete Work File)
3. BatchReviseOnExit (B0000008 - F0011 Update on Exit)
UPDATE PRODDTA.F0011 SET ICICUT='N ',ICICU=159698.000000,ICIST='A',ICIAPP='A',ICAICU=0.000000,ICUSER='SDONGMYE ',ICDICJ=111142,ICNDO=0.000000,ICBAL='N',ICBALJ='N',ICAME=4000.000000,ICDOCN=1.000000,ICDRSP=' ',IC52PP=' ',ICCBP=' ' WHERE ( ICICUT = 'N' AND ICICU = 159698.000000 )

3. Delete
Event: Cancel Button clicked
Business Function: FSCloseBatch
Function: Batch created through Edit Line has to be deleted as transaction is abandoned

Data in F0011 - Batch Header through P4114 - Inventory Adjustment

DB Action ICUT ICU IST IAPP AICU USER DICJ NDO BAL BALJ AME DOCN AUSR POB IBOI AIPT OFFP PID JOBN UPMJ UPMT
Insert N 9999 U P 0 UserID 111130 0 0 0 N 0 0 0
Update1 4000 1
Update2 A A N N
Update3
Delete N 9999


Example II - P4312 - Purchase Order Receipt

1. Insert
Event: Dialog is Initialized
Business Function: BatchOpenBatchControlProcessing
Function: To debug this routine jasdebug.log has to be captured

2. Update
Event: Post OK button clicked
Business Function: BatchReviseOnTransactionCommit in F0911FSEndDoc routine from F4312EndDoc
Call Stack:
1. F4312EndDoc (XT4312Z1 - F43121 End Document)
2. F0911FSEndDoc (B0900049 - F0911 End Document)
3. BatchReviseOnTransactionCommit (B0000007 - F0011 Update on Transaction Commitment)
UPDATE PRODDTA.F0011 SET ICICUT='O ',ICICU=42197.000000,ICIST='U',ICIAPP='P',ICAICU=0.000000,ICUSER='SDONGMYE ',ICDICJ=111130,ICNDO=0.000000,ICBAL=' ',ICBALJ=' ',ICAME=20000.000000,ICDOCN=2.000000,ICDRSP=' ',IC52PP=' ',ICCBP=' ' WHERE ( ICICUT = 'O' AND ICICU = 42197.000000 )

2. Update 2
Event: Post Close button clicked in W4312F (not W4312A)
Business Function: BatchReviseOnExit through FSCloseBatch
Call Stack:
1. FSCloseBatch (B0000042 - F0011 Close Batch)
2. BatchReviseOnExit (B0000008 - F0011 Update on Exit)
UPDATE PRODDTA.F0011 SET ICICUT='O ',ICICU=159701.000000,ICIST='A',ICIAPP='A',ICAICU=0.000000,ICUSER='SDONGMYE ',ICDICJ=111142,ICNDO=0.000000,ICBAL='N',ICBALJ='N',ICAME=20000.000000,ICDOCN=1.000000,ICDRSP=' ',IC52PP=' ',ICCBP=' ' WHERE ( ICICUT = 'O' AND ICICU = 159701.000000 )

3. Delete
Event: Cancel button clicked in W4312A
Business Function: BatchReviseOnExit through FSCloseBatch

Data in F0011 Batch Header in P4312 - Purchase Order Receipt

DB Action ICUT ICU IST IAPP AICU USER DICJ NDO BAL BALJ AME DOCN AUSR POB IBOI AIPT OFFP PID JOBN UPMJ UPMT DRSP 52PP CBP
Insert O 9999 U P 0 UserID 111130 0 0 0 N N 0 0
Update1 2000 2
Update2 A A
Delete O 9999


Example III - P4314 - Voucher Match

1. Insert
Event: Dialog is Initialized in W4314A
Business Function: BatchOpenBatchControlProcessing
Note: To debug this routine jasdebug.log has to be captured

2. Update
Event: Post OK button clicked in W4314A
Business Function: BatchReviseOnTransactionCommit in F0911FSEndDoc routine from F4312EndDoc
Call Stack:
1. F4314EndDoc (XT4314ZN - F4314 End Document)
2. F0411FSEndDoc (B0400047 - F0411 End Document)
3. BatchReviseOnTransactionCommit (B0000007 - F0011 Update on Transaction Commitment)
UPDATE PRODDTA.F0011 SET ICICUT='V ',ICICU=159704.000000,ICIST='U',ICIAPP='P',ICAICU=0.000000,ICUSER='SDONGMYE ',ICDICJ=111142,ICNDO=0.000000,ICBAL=' ',ICBALJ=' ',ICAME=20000.000000,ICDOCN=1.000000,ICDRSP=' ',IC52PP=' ',ICCBP=' ' WHERE ( ICICUT = 'V' AND ICICU = 159704.000000 )

2. Update 2
Event: Post Close button clicked in W4314A
Business Function: BatchReviseOnExit through FSCloseBatch
Call Stack:
1. FSCloseBatch (B0000042 - F0011 Close Batch)
2. BatchReviseOnExit (B0000008 - F0011 Update on Exit)
UPDATE PRODDTA.F0011 SET ICICUT='V ',ICICU=159704.000000,ICIST='A',ICIAPP='A',ICAICU=0.000000,ICUSER='SDONGMYE ',ICDICJ=111142,ICNDO=0.000000,ICBAL='N',ICBALJ='N',ICAME=20000.000000,ICDOCN=1.000000,ICDRSP=' ',IC52PP=' ',ICCBP=' ' WHERE ( ICICUT = 'V' AND ICICU = 159704.000000 )

3. Delete
Event: Cancel button clicked in W4314A
Business Function: BatchReviseOnExit through FSCloseBatch

Data from F0011 - Batch Header in P4314 - Voucher Match

DB Action ICUT ICU IST IAPP AICU USER DICJ NDO BAL BALJ AME DOCN AUSR POB IBOI AIPT OFFP PID JOBN UPMJ UPMT DRSP 52PP CBP
Insert V 9999 U P 0 UserID 111130 0 0 0 N N 0 0
Update1 2000 2
Update2 A A 0
Delete V 9999


Example IV - R42800 - Sales Update

1. Insert
Event: Do Section for Page Header
Business Function: FSOpenBatch
Call Stack:
1. FSOpenBatch (B0000042 - F0011 Open Batch)
2. BatchOpenOnInitialization (B0000004 - F0011 Write Batch Header)
INSERT INTO PRODDTA.F0011 (ICICUT, ICICU, ICIST, ICIAPP, ICAICU, ICUSER, ICDICJ, ICNDO, ICBAL, ICBALJ, ICAME, ICDOCN, ICAUSR, ICPOB, ICIBOI, ICAIPT, ICOFFP, ICPID, ICJOBN, ICUPMJ, ICUPMT, ICDRSP, IC52PP, ICCBP) VALUES ('IB',159699.000000,'U','P',0.000000,'SDONGMYE',111142,0.000000,' ',' ',0.000000,0.000000,' ','N',' ',0.000000,' ',' ',' ',0,0.000000,' ',' ',' ')

2. Update1
Event: Calling End Document routines of Master Business functions B0900049, B03B0011 and/or XT4314ZN and End Section Event of Sales Update And Report
Business Function: Various

2. Update2
Event: Calling End Document routines of Master Business functions B0900049, B03B0011 and/or XT4314ZN and End Section Event of Sales Update And Report
Business Function: Various
Function: Before exit from batch it updates batch status to A - Approved

2. Delete
Event: End Section Event of Sales Update And Report
Business Function: BatchReviseOnExit through FSCloseBatch
Note: Batch ends in error then Delete routine comes
Call Stack:
1. FSCloseBatch (B0000042 - F0011 Close Batch)
2. BatchReviseOnExit (B0000008 - F0011 Update on Exit)
DELETE FROM PRODDTA.F0011 WHERE ( ICICUT = 'IB' AND ICICU = 159699.000000 )

Data from F0011 - Batch Header in R42800 - Sales Update

DB Action ICUT ICU IST IAPP AICU USER DICJ NDO BAL BALJ AME DOCN AUSR POB IBOI AIPT OFFP PID JOBN UPMJ UPMT DRSP 52PP CBP
Insert IB 9999 U P 0 UserID 111130 0 0 0 N N 0 0
Update1 2000 2
Update2 A A
Delete IB 9999

Note:


List of application with Batch Control

List of interactive application.

Apps ID Description Form ID Form Description Old New Notes - Batch Type
P31113 Work Order Inventory Issues W31113D Inventory Issue Revisions B0000055 N0000014
P4105 Cost Revisions W4105A Cost Revisions B0000004 N0000001
P4105 Cost Revisions W4105A Cost Revisions B0000056 N0000015
P41051 Speed Cost Maintenance W41051A Work With Location Costs B0000004 N0000001
P41051 Speed Cost Maintenance W41051A Work With Location Costs B0000057 N0000016
P4112 Inventory Issues W4112A Inventory Issues B0000004 N0000001
P4113 Inventory Transfers W4113B Inventory Transfers B0000004 N0000001
P4114 Inventory Adjustments W4114A Inventory Adjustments B0000004 N0000001
P4116 Item Reclassifications W4116B Item Reclassifications B0000004 N0000001
P415101 General Stock Movements W415101B General Stock Movements B0000004 N0000001
P4312 PO Receipts W4312A Purchase Order Receipts B0000004 N0000001
P4312 PO Receipts W4312D Work With Receipts Purchase Or B0000058 N0000017
P4312 PO Receipts W4312F Work With Purchase Orders to R B0000059 N0000018
P4314 Voucher Match W4314A Voucher Match B0000004 N0000001
P4314 Voucher Match W4314A Voucher Match B0000060 N0000019
P43214 Purchase Receipts Inquiry W43214A Work With Purchase Receipts B0000004 N0000001
P43214 Purchase Receipts Inquiry W43214A Work With Purchase Receipts B0000061 N0000020
P43250 Receipt Routing Movement and D W43250K Work With Routing Statuses B0000004 N0000001
P43250 Receipt Routing Movement and D W43250K Work With Routing Statuses B0000062 N0000021
P43252 Routing Ledger Inquiry W43252D Work With Receipt Routing Ledg B0000063 N0000022
P43253 Routing Disposition W43253A Routing Disposition B0000064 N0000023
P4576 Ship and Debit Claims W4576A Work With Claims B0000065 N0000024
P4915 Work with Shipments W4915B Work with Shipments B0000066 N0000025
P49640 Transportation Load Confirmati W49640A Confirm Load B0000067 N0000026
P49640 Transportation Load Confirmati W49640B Confirm Load - Compartments B0000068 N0000027
P49650 Deliver Confirm W49650A Deliver Confirm Load B0000069 N0000028


The list written this note is non-exhaustible


Column Explanation on F0011 - Batch Control Records

Alias DD Item Description Glossary Notes
ICUT (2)* BatchType Batch Type A code that specifies the system and type of transactions entered in a batch. The system assigns the value when you enter a transaction. Valid values are set up in user defined code table 98/IT. You cannot assign new values. All batch types are hard coded. UDC 98/IT
ICU (8)* BatchNumber Batch Number A number that identifies a group of transactions that the system processes and balances as a unit. When you enter a batch, you can either assign a batch number or let the system assign it using the Next Numbers program. NN (00|1) NN 00/1
IST (1) BatchStatus Batch Status A user defined code (98/IC) that indicates the posting status of a batch. Valid values are:
Blank - Unposted batches that are pending approval or have a status of approved.
A - Approved for posting. The batch has no errors, and is in balance, but has not yet been posted.
D - Posted. The batch posted successfully.
E - Error. The batch is in error. You must correct the batch before it can post.
P - Posting. The system is in the process of posting the batch to the general ledger. The batch is unavailable until the posting process is complete. If errors occur during the post, the batch status changes to E (error).
U - In use. The batch is temporarily unavailable because someone is working with it, or the batch appears to be in use because a power failure occurred while the batch was open.
Management Approval is required then IST =' ' and IAPP = 'P'

Management Approval is not required then, IST ='A', IAPP = 'A', DRSP = ' ', 52PP = ' '

UDC 98/IC

U -> A
U -> E
A -> U -> P -> D
IAPP (1) BatchApprovedForPost Batch Approved for Posting An option that indicates whether a batch is approved and ready for posting, or whether it is pending approval. You may select only one option. They are:
o A - Approved for posting
o P - Pending approval. The batch will not post.
If the system constants do not specify manager approval, the system automatically approves batches that are not in error.
When Management Approval is required value is N then set 'P' else set 'A'

UDC H00/IA
P -> A
AICU (15) AmountBatchExpected Input Total On batch control forms, the total amount that you expect to enter for the batch of transactions. This amount must be entered without decimals. For journal entries, this amount is the total of the debits. In other systems, it is the total amount of all transactions in the batch. If you want to display the amount with decimals, change the value of display decimals in the Data Dictionary for the item (AICU).
After you enter transactions into the batch, the system compares the amounts you entered to the amount you expected to enter and displays the difference, if any, when you exit the batch.
Example:
Input Total - 10052
Total Entered - 10000
Total Remaining - 52
If you are not using batch control, or if you do not enter a total expected amount, the system compares the total amount of the transactions you enter to zero and displays the difference as a negative number.
Batch Control Processing
USER (10) UserId User ID The first User ID is to be retained
DICJ (6) DateBatchJulian Date - Batch (Julian) The date of the batch. If you leave this field blank, the system date is used. The first Batch Date is to be retained
NDO (5) NoOfDocumentsExpected Amount - Number of Documents Expected The number of documents you expect to enter in the current batch. The system maintains a count of the documents you actually enter and displays the difference, if any, when you finish the batch. Batch Control Processing
BAL (1) BalanceDocumentsAmts Balanced - Documents and Amounts An option that indicates whether the amount and number of documents in the batch balance to your control totals. The system updates this option automatically if you use the batch control feature. If the option is turned on, the amounts and documents balance to the control totals. If the option is turned off, the amounts and documents do not balance to the control totals.
Note: The journal review form is used by many JDEdwards EnterpriseOne systems. As a result, this field may not apply to batches created by your particular system.
Set 'Y' when AME = AICU
otherwise set 'N'

UDC H00/BA
BALJ (1) BalancedJournalEntries Balanced - Journal Entries A code that indicates whether the journal entries (JEs) for a document are in balance. After you correct an out-of-balance situation, the N code remains until you run the daily system integrity check. Valid values are:
Y - Yes, JEs are in balance.
N - No, at least one of the JEs is not in balance.
If Transacion is in balance then set 'Y' else 'N'

UDC H00/BB
AME (15) AmountEntered Amount - Entered The total amount of transactions entered.
DOCN (15) AmountDocumentsEntered Amount - Documents Entered If you are using the batch control feature, the number of transactions entered into the batch. If you are not using batch control, the system displays the number as negative.
Note: The batch review screen is used by many J.D. Edwards systems. As a result, this field might not apply to batches created by your particular system.
If this value is 0 then batch header is to be deleted (e.g., Cancel button clicked before OK button clicked)
AUSR (10) AuthorizedUserId Authorized User ID Authorized User ID N/A
POB (1) PostOutOfBalance Post Out of Balance An option that indicates whether the batch can be posted out-of-balance.
Valid settings are:
On - The batch is not required to balance and can be posted out-of-balance. If you choose this option, you should also turn on the option to exclude the batch from the integrity reports.
Off - The batch is required to balance and cannot be posted out-of-balance.
Default Value = N
UDC H00/PO
IBOI (1) IncludeBatchonIntegrityf Include-Batch-on-Integrity flag An option that determines whether or not an out-of-balance batch is exlcuded from the Batch to Detail report (R007031). If you turn on this option for a specific batch, the batch is not included in the Batch to Detail report. Default Value = Y
Rule: VALUE = YN10
AIPT (15) AmountInputTotal Amount - Input Total On batch header forms, a number that indicates the total amount that you expect to enter for the batch, without decimals.
For journal entries in the general ledger, a number that indicates the total amount of the debits.
In other systems, a number that indicates the total amount of all documents in the batch.
The system keeps track of the amount you enter and displays the difference, if any, when it finishes the batch. When you review batches of transactions, the system displays the difference between the input total and what you actually entered. For example:
Input Total - 10052
Total Entered - 10000
Total Remaining - 52
If you are using batch control but you did not enter an input total, this amount appears as a negative number when you review batches.
N/A
OFFP (1) AutoOffModeDOrBAp Auto Offset Mode (S, Y, or B) - A/P A code that specifies how the system generates the offset entry (document type AE) in the Account Ledger table (F0911) when vouchers, payments, and drafts are posted to the general ledger. Valid values are:
B - The system creates one offset for each batch of transactions by account.
Y - The system creates one offset for each transaction by account.
S - The system creates one offset for each pay item by account.
The system creates offsets for the actual amount (AA) and foreign currency (CA) ledger types only.
N/A
UDC H04/OF
PID (10) ProgramId Program ID N/A
JOBN (10) WorkStationId Work Station ID N/A
UPMJ (6) DateUpdated Date - Updated N/A
UPMT (6) TimeLastUpdated Time - Last Updated N/A
DRSP (1) DetailedRestatementProcessed Detailed Restatement Processed A flag that indicates the batch has been reserved for processing by a current job or has been previously processed by a job of R11411 Detailed Currency Restatement.
If a batch has been previously processed by R11411 and the user sets the flag back to blank, the batch can be processed again, but only detail records available for posting will be selected.
Valid values are:
Blank = Batch has not been reserved or processed by R11411
1 = Batch has been reserved or processed by R11411
N/A
52PP (1) 52PeriodProcessed 52 Period Processed A flag that indicates the batch has been reserved for processing by a current job or has been previously processed by a job of R098011 52 Period Accounting Post. If a batch has been previously processed by R098011 and the user sets the flag back to blank, the batch can be processed again, but only detail records available for posting will be selected. Values are:
Blank - Batch has not been reserved or processed by R098011.
1 - Batch has been reserved or processed by R098011.
N/A
CBP (1) CashBasisProcessed Cash Basis Processed A flag that indicates the batch has been reserved for processing by a current job, or has been previously processed by a job of R11C850 Create Cash Basis Entries.
If a batch has been previously processed by R11C850 and the user sets the flag back to blank, the batch can be processed again, but only detail records available for posting will be selected. Valid values are:
Blank
Batch has not been reserved or processed by R11C850.
1
Batch has been reserved or processed by R11C850.
N/A


Note:


Note: This document is written based on EnterpriseOne application release 9.0 and can be updated when there is any change in the future.