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.

 

Question 8: Then is there any existing logic for nType?

Answer 8: Yes. nType = 3 will be used during below processes:

 

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.

 

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;

case 5 :
/* Amount Due - accumulate */

nMathReturn = MathAdd(&dsCustomerMasterMBF.mnAmountDue, &dsCustomerMasterMBF.mnAmountDue, &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.