Updating Amount Columns in the Customer Master by Line of Business (F03012) table in Sales Order Processing
Purpose of Document
This document is to explain possible routine of updating Amount columns in the Customer Master by Line of Business (F03012) table.
Question 1: How a Customer Master by Line of Business (F03012) gets updated?
Answer 1: Data from F03012 can be inquired/added/changed only through Business Function N0100042 - MBFCustomerMaster (Customer Master - Master Business Function). The Address Book Revisions (P01012) and Supplier Master (P04012) handles data through Master Business Function N0100041 and N0100043 respectively.
Question 2: What is the BSFN which updates Amount columns in F03012?
Answer 2: Amount columns (including AmountDue) has to be computed through BSFN B0100024 - ConvTransAmttoCustCurr (F0301 Update Customer Currency Amounts) . B0100024 calls N0100042 to update F03012 but F03012.PID (ProgramID) in the table will show B0100024.
Question 3: Do all the Amount columns in F03012 get updated through B0100024?
Answer 3: No. B0100024 will compute AmountDue only when nType = 5 which F03012.APRC (AmountOpenOrder). Across Sales Order Module, nType = 3' which computes OpenOrderAmount, so before B0100024 gets called a certain routine may call BSFN B4200250 - UpdateOrdertotalInF4201 (F4201 Update Order Totals) which update F4201.OTOT.
Question 4: What are the available amount columns from F03012 which can be updated in Sales Order Processing?
Answer 4: A specific column will be controlled by nType which is determined in calling a BSFN B0100024.
nType
Column ID
Description
Additional Condition
1
ASTY
Invoiced amount YTD - accumulate
DLID(dateLastInvoiceJulian), DFIJ (DateFirstInvoiceJulian) are to be written
2
ALP
Amount Last Paid - overwrite
DLP (DateLastPaid)
3
APRC
Amount Open Order - accumulate
4
AFCY
Finance Charge YTD - accumulate
5
AD
Amount Due - accumulate
Not updated by any application in EnterpriseOne.
6
AHB
Amount High Balance - overwrite
DHBJ (DateHighBalanceJulian)
7
ABAM
Amount Address Book - overwrite
8
ABAM
Amount Address Book - accumulate
9
ABA1
Amount Address Book 1 - overwrite
10
ABA1
Amount Address Book 1 - accumulate
11
URAT
User Reserved Amount - overwrite
URDT (UserReservedDate)
12
URAT
User Reserved Amount - accumulate
URDT (UserReservedDate)
Question 5: Is there any application which update F03012.AD (mnAmountDue)?
Answer 5: No. Though there is existing logic to update F03012.AD (AmountDue) none of applications in EnterpriseOne will update this. As we can see above to update AmountDue column nType has to be 5 but none of E1 application/BSFN will call B0100024 with nType = 5.
Question 6: During the Credit Check processing how is the Open Amount determined for the credit hold?
Answer 6: The credit check process in sales reads F03B11 (not F03012) along with the Receipt Detail (F03B14) file.
Question 7: In Financial Module, is there any application that updates Amount Due?
Answer 7: In Financial Module, F03B20.CURR and F03B16.CURR can be populated but not F03012.AD. F03B20 will be written through Statement Notification Refresh (R03B500X) and F03B16 will be written through A/R Statical History Refresh(A) (R03B16A) process.
F03B20 - A/R Notification History
F03B16 - A/R Statical History
Question 8: Then is there any existing logic for nType?
Answer 8: Yes. nType = 3 will be used during below processes:
Shipment Confirmation
Backorder Release
Repost Active Sales Orders
Question 9: What is the purpose of nType = 3?
Answer 9: 3 is to populate Amount Open Order in F03012.
Question 10: What are the applications/routines that update Open Order Amount?
Answer 10: It can be determined how B0100024 gets called. This business function can be called directly from application or can be called through other Master Business Functions.
N4200790 - ShipconfirmEndDoc (Shipment Confirmation End Document)
N4200860 - BackorderReleaseEndDoc (Backorder Release End Doc)
N4900960 - TransportationAdjustOrderLine (Transportation Adjust Order Line)
R42995 - Repost Active Sales Orders
Question 11: What is an actual example of implementation?
Answer 11: For example, N4200790 may call B0100024 as below:
*** Break In Code *** F0301 Update Customer Currency Amounts
VA evt_Previous_SoldTo -> BF mnAddressNumber VA evt_Previous_TransactionDate -> BF jdDateExchangeRate VA evt_CurrentDomCurrency_CRCD -> BF szDomCurrencycode VA evt_OrderTotalDifference -> BF mnDomTaxableAmt VA evt_Previous_CurrencyCode -> BF szTransCurrencycode "3" -> BF nType VA evt_CurrentTime -> BF mnTimelastupdated VA evt_CurrentDate -> BF jdDateupdated BF szUserId -> BF szUserid BF szComputerId -> BF szWorkstationid "EP4205" -> BF szProgramid VA evt_Previous_KeyCompanyNumber -> BF szCompany
*** Break In Code **
Question 12: Is there any code example of nType?
Answer 12:
/*****************************************************************/ /* Load File fields for update */ /*****************************************************************/ switch (lpDS->nType) { case 3 :
/* Amount Open Order - accumulate */ nMathReturn = MathAdd(&dsCustomerMasterMBF.mnAmountOpenOrder, &dsCustomerMasterMBF.mnAmountOpenOrder,&mnAmount); if (nMathReturn!=MATH_SUCCESS) { lpDS->cErrorFlag = _J('1'); } break;
Note: GSC is NOT responsible for any code change to write a certain amount columns in F03012 in custom code.
To discuss information further with Oracle experts and industry peers, we encourage you to review, join or start a discussion in the JDE1 Distribution Community.
To look at upcoming or archived Advisor Webcasts please see Advisor Webcast Details (Doc ID 548764.1) if your topic is not currently scheduled please suggest it.