This document contains detail information of the Business Function XX0901(Validate Account Number) and its usage in dealing with Account Master Information.
This document is created based on EnterpriseOne 9.1 release.
This document requires expert knowledge in C++ programming and Account Master application.
This document may help in understanding how Account Master work and may help with customization, however, Oracle Support does not support customization. The information in this document is provided as is, to get input and ideas from other customers, consider posting this to the My Oracle Support Community at https://community.oracle.com/community/support/jdedwards_enterpriseone
The XX0901 (Validate Account Number) business function is used for Account Number Validation. This validation need to take place because database format is different from display format for each segment/components in building up account information.
XX0901 (Validate Account Number) is made up of the following functions:
F0009.FLEX (F0009.gcflex) is to be set 'Y' only when F0907 (Chart of Account Format) meets any of below conditions:
1) If the first segment not stored in business unit
2) If the first segment length is NOT 12
3) If the first segment NOT mapped to the business unit
Then in clicking OK button in P0907 (Flex Format Setup) F0009.FLEX = 'Y'
When F0009.FLEX is Y and MCU, OBJ and SUB are not specified then SimpleAccountConcatenation is to issue error '0003 - Blank Invalid'
XX0901 - SimpleAccountConcatenation (Business Unit, Object, Subsidiary Merge)
Purpose: This business function will concatenate the individual account segments in database format into the long account format. This function has to be called before F0911FSEditLine gets called to write F0911.ANI - AcctNoInputMode (Account Number - Input (Mode Unknown))
Parameters
Data Structure: D0000324 : Simple Account Concatenation
Structure Member Name
Data Type
Req
I/O
Alias
Usage
szAccountNumber[30]
JCHAR
O
ANI
Long account format MCU, OBJ and SUB concatenated value with (Account Segment) separator. ANI column belongs to F0911 (Account Ledger) but not F0901 (Account Master)
szDatabaseBusinessUnit[13]
JCHAR
I
MCU
(Input) Business Unit
szDatabaseObject[7]
JCHAR
I
OBJ
(Input) Object Account
szDatabaseSubsidiary[9]
JCHAR
I
SUB
(Input) Subsidiary
Detail Routine:
1. Call GetAccountGeneralConstants to get information on,
cSeparatorCharacter (F0009.SEP) and convert it to string szSeparatorCharacter
cFlexAccountCoding (F0009.FLEX)
2. (Optional) If Flex accounts are used then fill in the flex structure with flex description.
3. Scrub Business Unit through X0006ScrubCostCenter with cBasedOnFormat SEGMENT_DATABASE (='1') and save it as 'szBusinessUnitWork'
4. Scrub Object through X09011ScrubObjectAccount with cBasedOnFormat SEGMENT_DATABASE (='1') and save it as 'szObjectWork'
5. Scrub Subsidiary through X09012ScrubSubAccount with cBasedOnFormat SEGMENT_DATABASE (='1') and save it as 'szSubsidiaryWork'
6. Format the segments into long Account Number (szBusinessUnitWork + Separator + szObjectWork + Separator + szSubsidiaryWork)
Purpose: This business function scrubs, validates and formats the account number in the manner specified by the calling program.
Parameters:
Data Structure: D0900028 : Validate Account Number
Structure Member Name
Data Type
Req
I/O
Alias
Usage
szAccountNumber[30]
JCHAR
ANI
szAccountID[9]
JCHAR
AID
szUnstructuredAccount[26]
JCHAR
ANS
szDatabaseBusinessUnit[13]
JCHAR
MCU
szDatabaseObject[7]
JCHAR
OBJ
szDatabaseSubsidiary[9]
JCHAR
SUB
szDisplayBusinessUnit[13]
JCHAR
MCUR
szDisplayObject[7]
JCHAR
OBJA
szDisplaySubsidiary[9]
JCHAR
SUBA
szAccountDescription[31]
JCHAR
DL01
cBasedOnFormat
JCHAR
Y
I
EV01
You will need to specify a based on format as follows * 1 - Process using the short account * 2 - Process using the long account * 3 - Process using the third account * 4 - Process using the account segments
in DISPLAY mode * 5 - Process using the account segments
in DATABASE mode * 6 - Process using the object and subsidiary only. Note: when processed in this mode the short account, third account and the business unit segments will not be returned. * 7 - Process using the account symbols
cFormatAccountNumberAs
JCHAR
Y
I
EV02
(Optional) You will need to specify the account number format to return as follows * 1 - return default format * 2 - return structured account format (Default) * 3 - return is same mode as the based on format * 4 - return unformatted in the same mode as the based on format. * 5 - return short account * 6 - return third account
cIncludeAccountSymbol
JCHAR
Y
I
EV03
You will need to specify if an account symbol is to be included in the account number as follows * 1 - include the account symbol * 0 - do not include the account symbol
Purpose: to verify values of the parameters that were passed.
Verify input value for parameters cBasedOnFormat, cFormatAccountNumberAs (including NULL and a space) and cIncludeAccountSymbol.
Set cFormatAccountNumberAs as 'LONG_ACCOUNT' (= 2) if input value is A Space or NULL.
Set cIncludeAccountSymbol as 'NO_ACCOUNT_SYMBOL' (= 0) if input value is A Space or NULL.
Clear input parameters not used for input based on the mode (regardless input parameters handed over).
GetAccountGeneralConstants: through GetAccountGeneralConstants to get value for Flex Account (F0009.flex)
Refer to above section XX0901 - GetAccountGeneralConstants (F0009 Get General Account Constants)
I_XX0901_Interpret_Flex
Verifiy that all parameters were sent and if flex accounts are used. This function will fill the struct containing the information for the flex account. It is loaded, and counts the number of flex pieces.
This internal function reads/gets data from F0907 (Chart of Accounts Format) to get the size of segments (MCU, OBJ, SUB).
X0006ScrubCostCenter
Refer section "XX0901 - X0006ScrubCostCenter (F0006 Edit Business Unit)" below.
Refer to "XX0901 - X09012ScrubSubAccount (Subsidiary Format)" below.
I_XX0901_Parse_Segments
Purpose: This function will parse apart the account into its component pieces. For example, 30.1110.BEAR to 30 for Business Unit, 1110 for Object and BEAR for Subsidiary.
Determin if parsing whole account number or a particular segment (1 - Business Unit, 2 - Object, 3 - Subsidiary, default - Account Number).
Go thru the account number character by character. At a minimum, we will count the total number of characters in the string. Otherwise, check to see if the character is a delimiter of some sort. If it is, then parse out the characters between the two delimiters and store the values for later use.
I_XX0901_Parse_Segments_Flex
Purpose: This function will parse apart the account into its component pieces.
Determine if parsing whole account number or a particular segment. 1 for Business Unit, 2 for Object and 3 for Subsidiary.
Go thru the account number character by character. At a minimum, we will count the total number of characters in the string. Otherwise, check to see if the character is a delimiter of some sort. If it is, then parse out the characters between the two delimiters and store the values for later use.
I_3609CheckSpeed
Purpose: This function will check to see if speed entry is being used
jdeCacheInit with Cache name I0012
Check if the cache has already been written to, if not call internal function (I_3609CacheSpeedCodes) to cache speed code values
If speed codes have already been cached, it will terminate this instance of the cache handle after it has checked this account for speed codes
We will not look for speed codes in the subsidiary segment
Speed codes can only be 1 character long
I_3609CacheSpeedCodes:
Purpose: This function is to get all available speed code from F0012 (Automatic Account Instruction Master) to cache
Get data from F0012 where (F0012.ITEM LIKE "SP%" AND F0012.CO ="00000")
I_3609ProcessShortAccount
Purpose: This function will process the parsed fields for input mode 1
Format the short id w/ leading zeros (fill in zero till it reaches MAX_SHORT_ACCT_LEN (=8))
Error '043C - Account Number &1 is Invalid' if more than one part
I_3609ProcessLongAccount
Purpose: This function will process the parsed fields for input mode 2
Error "043G" if too many account parts passed
Verify the lengths of the cost center/obj/and sub acct pieces. If exceed defined max values set error '043D' (for MCU), '043E' (for OBJ) and '043F' (for SUB)
Right justify the cost center in its work field
If Subsidiary exceeds 8 characters trim the leading characters so that it does not overwrite the business unit field
Place the parsed information into the cc/ obj/ sub fields
I_3609ProcessLongAccountFlex
Purpose: This function will format the account number for return to the calling program for output mode 2. Output Mode 2 will give a formatted account id in the LongAccountNumber field with the Business Unit, Object and Subsidiary properly formatted.
Read the struct with the definition for the FLEX account, and map each of the fields from the VALUES struct into Business Unit/Object/Subsidiary.
Verify the length of each segment as it is processed (Length = F0907.gyell) and Account Part Length is bigger than Flex Part Length set error '043G'
Place the value in the CC, OBJ or SUB field based on the subtype from the flex definition structure
I_3609ProcessThirdAccount
Purpose: This function will process the parsed fields for input mode 3
Error "043C" Error if there is more than one part
Error "043C" if the length of the part exceeds the maximum length allowed
I_3609FetchRecord
Purpose: This function will attempt to fetch a record from the F0901 file. The function will determine the type of access to use, that is, which index should be used, and then attempt to fetch the record from the file using the correct index. This this function listed parameters below can be set as output value from F0901 (Account Master)
If the mode does not require record retrieval then skip record retrieval
Fetch data from F0901 using ACCOUNT_ID (F0901.aid)
Or Fetch data from F0901 using Business Unit, Object and Subsidiary (F0901.mcu, F0901.obj, F0901.sub)
Or Fetch data from F0901 using UNSTRUCTURED ACCOUNT ID (F0901.ans)
Scrub any blanks from the object account for display purposes
Place the results into the variables for return if not an invalid account (Invalid Account is set as '#')
szAccountCompany = lF0901.gmco
szAccountCompany = F0901.gmaid
szUnstructuredAccount = F0901.gmans
szDatabaseBusinessUnit = F0901.gmmcu
szDatabaseObject = F0901.gmobj
szDatabaseSubsidiary = F0901.gmsub
szAccountDescription = F0901.gmdl01
cCostObjectEditCode01 = F0901.gmcec1
cCostObjectEditCode02 = F0901.gmcec2
cCostObjectEditCode03 = F0901.gmcec3
cCostObjectEditCode04 = F0901.gmcec4
cItemEditCode = F0901.gmiec
cGLAccountTaxable = F0901.gmtxgl
szTaxArea1 = F0901.gmtxa1
cAdjustmentEntry = F0901.gmadjent
cFAR_UnAllowableFlag = F0901.gmuafl
Check to see if there is an alternate description by calling BSFN GetAlternativeDescription then assign it to output parameters
(When F0901D is populated and user preference language is set properly) szAccountDescription = GetAlternativeDescription.szDescription001 (= F0901D.dl01)
cAccountPostingEdit = F0901.gmpec
szAccountCurrency = F0901.gmcrcd
szAccountUnitOfMeasure = F0901.gmum
cModelAccountsFlag = F0901.gmfmod
I_3609FormatReturn()
Purpose: This function will format the account number for return to the calling program. The format to return is based on the output mode parameter that was passed in to the program.
Based on the output mode requested, call a function to format the account in the proper manner
Scrub Business Unit via BSFN X0006ScrubCostCenter
Scrub Object Account via BSFN X09011ScrubObjectAccount
Scrub Subsidiary via X09012ScrubSubAccount
I_3609FormatAccountID
Purpose: This function will format the account number for return to the calling program for output mode 5. Output Mode 5, returns the Account ID (AID) in the LongAccountNumber field
I_3609FormatThirdAccount
Purpose: This function will format the account number for return to the calling program for output mode 6. Output Mode 6 returns the third account number (GMANS) in the LongAccountNumber field.
I_3609FormatLongAccount
Purpose: This function will look at the values in the general accounting constants to determine how to format the value returned in the account number field. The based on format field will be updated to reflect the value returned in the account number field
If FormatAccountNumberAs = DEFAULT_FORMAT, then based on the account general constants return the default account format in AccountNumber
If FormatAccountNumberAs = LONG_ACCOUNT, then return the long account format in AccountNumber
If FormatAccountNumberAs = SAME_AS_BASED_ON_FORMAT or UNFORMATED_SAME_AS_BASED_ON, then return the long account format in AccountNumber.
If BasedOnFormat = OBJECT_SUBSIDIARY_ONLY then return the object and subsidiary only in the AccountNumber.
I_3609FormatLongAccountFlex
Purpose: This function will format the account number for return to the calling program for output mode 2. Output Mode 2 will give a formatted account number in the LongAccountNumber field with the Business Unit, Object and Subsidiary properly formatted according to the flex definition if file F0907.
Find starting character in the Cost Center field
Read the struct with the definition for the FLEX account, and map each of the fields from the VALUES struct into MCU/OBJ/SUB.
Pass back account parts (BU,OBJ,SUB)
Error Codes:
4371 - Invalid Input Parameter
CAUSE . . . . The Input Parameter contains an invalid value. RESOLUTION. . Enter a valid input parameter value.
(Technical Input) this error is coming when the value for input parameters cBasedOnFormat, cFormatAccountNumberAs (including NULL and a space) and cIncludeAccountSymbol do not meet above listed value
4364 - Invalid Parameters
CAUSE . . . . The parameters passed to the called function are invalid. RESOLUTION. . Review the parameters and correct.
(Technical Input): This error is coming via internal routine I_XX0901_Interpret_Flex:. If possible, capture jdedebug (callobject kernel log) and analyze it
043C - Account Number &1 is Invalid
CAUSE . . . . &1 does not exist in the Account Master file (F0901). NOTE: If you get this error message on a discount amount, it is indicating that the account numbers set up in the Automatic Accounting Instructions are invalid. The AAI records being validated against are PKD/PKL for Accounts Payable and RKD for Accounts Receivable. If business unit is not defined in the AAI accounts, the program will use the business unit from the voucher/invoice. If the error message is on adjustment reason in cash receipts, the same holds true about the AAI account number being invalid for the adjustment reason entered. If you get this error message on a job being closed, it is indicating that the AAI account JCPB (Prior Year End Balance in Closed Jobs), JCR (Job Revenue),or JCC (Job Costs) is not set up. RESOLUTION. . Enter the correct account number.
043G - &1 Has Too Many Parts
CAUSE . . . . &1 contains too many segments and does not comform to the account setup. RESOLUTION. . Enter a valid account.
043D - Business Unit &1 too long
CAUSE . . . . &1 is too long and does not comform to the account setup. RESOLUTION. . Enter a valid Business Unit
043E - Object Account &1 too long
CAUSE . . . . &1 is too long and does not comform to the account setup. RESOLUTION. . Enter a valid Object Account.
043F - Subsidiary Account &1 too long
CAUSE . . . . &1 is too long and does not comform to the account setup. RESOLUTION. . Enter a valid Subsidiary Account.
XX0901 - X0006ScrubCostCenter (F0006 Edit Business Unit)
Purpose: This function will scrub the Business Unit based on the form specified by the calling program.
Parameters:
Data Structure: D0000029 : Scrub Business Unit
Structure Member Name
Data Type
Req
I/O
Alias
Usage
szDatabaseBusinessUnit[13]
JCHAR
I/O
MCU
Priority 2
szDisplayBusinessUnit[13]
JCHAR
MCUZ
Priority 1
cBasedOnFormat
JCHAR
I/O
MIVL
' ' - Business Unit in Display mode
1 - Business Unit in Database mode
szDescription[31]
JCHAR
DL01
cValidateBusinessUnit
JCHAR
I
EV01
0 - Do not validate business unit
1 - Validate Business Unit
szCategoryCode012[4]
JCHAR
O
RP12
mnContractNumber
MATH_NUMERIC
DOCO
cAdjustmentEntry
JCHAR
ADJENT
cFAR_UnAllowableFlag
JCHAR
O
UAFL
szCompany[6]
JCHAR
O
CO
Detail Routine:
1. Change Upper Case for both Display Business Unit and Database Business Unit
2. If Display Business Unit is not blank, copy value to Work BU, else copy the Database Business Unit into the Work BU
3. Remove special characters and blanks regardless of Flex (Special Characters: The value which is not 0 through 9 and A through Z and '-')
4. Copy result from 3 to Scrubbed Business Unit then assign it to Display Business Unit and Database Business Unit
5. Call a function to verify all of the parameters that were passed (via I_D0000029VerifyParms. Refer ValidateAccountNumber Section)
6. Retreive the Account General Constants to cSeparatorCharacter and cFlexAccountUsed
7. Call a function to check to see if flex accounts are used. If Flex accounts are used then Fill the Flex Struct with flex description (refer I_XX0901_Interpret_Flex from ValidateAccountNumber Section)
8. If FLEX is not being used and validation is not required, then return to calling program.
9. Right justify the business unit (both Display Business Unit and Database Business Unit)
10. Parse the input data (via I_D0000029InputMode refer ValidateAccountNumber section)
11. Format the data for return based on the output mode passed to the program (refer I_D0000029FormatReturn from ValidateAccountNumber section)
12. Fetch the record from F0006 (Business Unit Master) through I_D0000029FetchRecord (Error 078D, 044N can be issued)
CAUSE . . . . Table &1 could not be opened. The table may not exist in your environment or you may not have authority to open it. RESOLUTION. . Add the table to your environment and verify that you have proper authority. You may also check the JDE.LOG and JDEDEBUG.LOG for additional information.
(Technical Input) &1 (=F0006). This error is coming when JDB API JDB_OpenTable() is failed.
044N - Business Unit &1 is Invalid
CAUSE . . . . &1 does not exist in the Business Unit Master file (F0006). In the following situations, use of the invalid G/L account prefix '#' is not accepted unless the Business Unit exists in the Business Unit Master file: o using Journal Entries with VAT tax (P09106) o using Multi-Voucher Entry program (P041017) o using multi-currency processing o entering 'G' type transactions in Cash Receipts (P03103) RESOLUTION. . Enter a valid Business Unit or add the entered Business Unit to the Business Unit Master file (F0006).
(Technical Input) &1 (=szDatabaseBusinessUnit). Error '044N' is coming when JDB_FetchKeyed() failed to get data either from Database Cache or from Table F0006
Purpose: This function will scrub the Object Account based on the form specified by the calling program.
Parameters:
Data Structure: D0000030 : Scrub Object Account
Structure Member Name
Data Type
Req
I/O
Alias
Usage
szDatabaseObject[7]
JCHAR
I/O
OBJ
(Optional) Priority 2
szDisplayObject[7]
JCHAR
I/O
OBJT
Priority 1
cBasedOnFormat
JCHAR
I
MIVL
* ' ' - Object in Display Mode * 1 - Object in Database Mode (or SEGMENT_DATABASE)
Detail Routine:
1. Change both input object accounts (szDatabaseObject and szDisplay Object) to Upper Case
2. If Display Object is not blank, copy value to WorkObjField, else copy the Database Object into the WorkObjField
3. Remove special characters and blanks regardless of Flex (Special Characters: characters not between 0 through 9, A through Z and '-')
4. Copy into the Scrubbed Obj for both Database Object and Display Object
5. Call a function to verify all of the parameters that were passed (via I_D0000029VerifyParms. Refer ValidateAccountNumber Section)
6. Retreive the Account General Constants to cSeparatorCharacter and cFlexAccountUsed
7. Call a function to check to see if flex accounts are used. If Flex accounts are used then Fill the Flex Struct with flex description (refer I_XX0901_Interpret_Flex from ValidateAccountNumber Section)
8. If FLEX is not being used and validation is not required, then return to calling program.
9. Format the data for return based on the output mode passed to the program through I_D0000030FormatReturn (Note data structure ID here)
- This function will format the account number for return to the calling program. The format to return is based on the output mode parameter that was passed in to the program.
- Concatenate both Database Object and Display Object with '.' (dot/period) to make use this value as return
Purpose: This function will scrub the subsidiary account to the form requested by the calling program.
Parameters:
Data Structure: D0000031 : Scrub Subsidiary Account
Structure Member Name
Data Type
Req
I/O
Alias
Usage
szDatabaseSubsidiary[9]
JCHAR
I/O
SUB
(Optional) Priority 2
szDisplaySubsidiary[9]
JCHAR
I/O
SUBA
Priority 1
cBasedOnFormat
JCHAR
Y
I
MIVL
' ' - Sub account in Display mode, 1 - Sub account in Database mode. (= SEGMENT_DATABASE)
Detail Routine:
1. Change both input subsidiaries (szDatabaseSubsidiary and szDisplaySubsidiary) to Upper Case
2. If Display Subsidiary is not blank, copy value to WorkSubField, else copy the Database Subsidiary into the WorkSubField
3. Remove special characters and blanks regardless of Flex (Special Characters: characters not between 0 through 9, A through Z and '-')
4. Copy into the Scrubbed Sub for both Database Subsidiary and Display Subsidiary
5. Call a function to verify all of the params that were passed (via I_D0000029VerifyParms. Refer ValidateAccountNumber Section)
6. Retreive the Account General Constants to cSeparatorCharacter and cFlexAccountUsed
7. Call a function to check to see if flex accounts are used. If Flex accounts are used then Fill the Flex Struct with flex description (refer I_XX0901_Interpret_Flex from ValidateAccountNumber Section)
8. If FLEX is not being used and validation is not required, then return to calling program.
9. Format the data for return based on the output mode passed to the program through I_D0000031FormatReturn,
This function will format the account number for return to the calling program. The format to return is based on the output mode parameter that was passed in to the program.
- Concatenate both Database Subsidiary and Display Subsidiary with '.' (dot/period) to make use this value as return
Purpose: This function is to terminate unterminated cache of F0901 (Account Master) and F0012 (Automatic Accounting Instructions Master) if any.
Parameters:
Data Structure: D09X0901 : X0901 Terminate Caches
Structure Member Name
Data Type
Req
I/O
Alias
Usage
cTerminateI0901
JCHAR
I
EV01
1 - Terminate Cache 0 - Do nothing
cTerminateI0012
JCHAR
I
EV01
1- Terminate Cache 0 - Do nothing
Detail Routine:
Set up the cached index with offset(I0901, gmev01) and look for cache name 'I0901'
Terminate I0901 Cache
Set up the cached index with offsetof(I0012, kgitem) and look for cache name 'I0012'
Terminate I0012 Cache
Error Codes: N/A
XX0901 - X0907CheckFlex (F0907 Get Flex Account Format)
Purpose: This business function will determine if the FLEX account structure is being used by reading F0907 (Chart of Accounts Format) File when F0009.FLEX is ON. A value will be returned to the calling program to let it know what is being used
Parameters:
Data Structure: D09X0907 : X0907 Check Flex
Structure Member Name
Data Type
Req
I/O
Alias
Usage
cFlexaccountcoding
JCHAR
I/O
EV01
Values from GL Constant F0009.gcflex. Default is '1' = FLEX_ACCTS_NOT_USED
Detail Routine:
Read F0907 (Chart of Accounts Format) using Key2F0907
Check conditions for FLEX if the file exists
For the first segment, check the following conditions. If ANY of the following conditions are true flex is used:
If the first segment not stored in business unit
If the first segment length is NOT 12
If the first segment NOT mapped to the business unit
For the second segment, check the following conditions. If ANY of the following conditions are true, flex is used:
If the second segment not stored in object
If the second segment length is LESS than 4
If the second segment NOT mapped to the object account
For the third segment, check the following conditions. If ANY of the following conditions are true, flex is used:
XX0901 - CheckforAccountExistenceF0901 (Check for Account Existence (F0901))
Purpose: This function is to determine whether a certain account master information does exist either from database cache or table F0901 (Account Master) based on either (Account ID) or (Business Unit, Object and Subsidiary) combination. And this function can be used to have columns written below parameter files.
Parameters
Data Structure: D0000005 : Check for Account Existence (F0901)
Structure Member Name
Data Type
Req
I/O
Alias
Usage
szAccountID[9]
JCHAR
I/O
AID
(Optional) Account ID. In case this value is NULL or '00000000' following MCU, OBJ and SBU should not be blank (returns) F0901.gmaid when cUsingAccountIDFlag = 'N'
szCompany[6]
JCHAR
O
CO
(returns) F0901.gmco
szBusinessUnit[13]
JCHAR
I/O
MCU
(returns) F0901.gmmcu when cUsingAccountIDFlag = 'Y'
szObjectAccount[7]
JCHAR
I/O
OBJ
(returns) F0901.gmobj when cUsingAccountIDFlag = 'Y'
szSubsidiary[9]
JCHAR
I/O
SUB
(returns) F0901.gmsub when cUsingAccountIDFlag = 'Y'
szAccountDescription[31]
JCHAR
O
DL01
(returns) F0901.gmdl01
cModelConsolidationFlag
JCHAR
O
FMOD
(returns) lF0901.gmfmod
cPostingEditCode
JCHAR
O
PEC
(returns) F0901.gmpec
cLevelOfDetail
JCHAR
O
LDA
(returns) F0901.gmlda
szCurrencyCode[4]
JCHAR
O
CRCD
(returns) F0901.gmcrcd
sz3rdAccountNumber[26]
JCHAR
O
ANS
(returns) F0901.gmans
szBudgetPatternCode[4]
JCHAR
O
BPC
(returns) F0901.gmbpc
szUnitOfMeasure[3]
JCHAR
O
UM
(returns) F0901.gmum
cBillable
JCHAR
O
BILL
(returns) F0901.gmbill
szCategoryCode1[4]
JCHAR
O
R001
(returns) F0901.gmr001
szCategoryCode2[4]
JCHAR
O
R002
(returns) F0901.gmr001
szCategoryCode3[4]
JCHAR
O
R003
(returns) F0901.gmr001
szCategoryCode4[4]
JCHAR
O
R004
(returns) F0901.gmr001
szCategoryCode5[4]
JCHAR
O
R005
(returns) F0901.gmr001
szCategoryCode6[4]
JCHAR
O
R006
(returns) F0901.gmr001
szCategoryCode7[4]
JCHAR
O
R007
(returns) F0901.gmr001
szCategoryCode8[4]
JCHAR
O
R008
(returns) F0901.gmr001
szCategoryCode9[4]
JCHAR
O
R009
(returns) F0901.gmr001
szCategoryCode10[4]
JCHAR
O
R010
(returns) F0901.gmr001
szCategoryCode11[4]
JCHAR
O
R011
(returns) F0901.gmr001
szCategoryCode12[4]
JCHAR
O
R012
(returns) F0901.gmr001
szCategoryCode13[4]
JCHAR
O
R013
(returns) F0901.gmr001
szCategoryCode14[4]
JCHAR
O
R014
(returns) F0901.gmr001
szCategoryCode15[4]
JCHAR
O
R015
(returns) F0901.gmr001
szCategoryCode16[4]
JCHAR
O
R016
(returns) F0901.gmr001
szCategoryCode17[4]
JCHAR
O
R017
(returns) F0901.gmr001
szCategoryCode18[4]
JCHAR
O
R018
(returns) F0901.gmr001
szCategoryCode19[4]
JCHAR
O
R019
(returns) F0901.gmr001
szCategoryCode20[4]
JCHAR
O
R020
(returns) F0901.gmr001
szCategoryCode21[11]
JCHAR
O
R021
(returns) F0901.gmr001
szCategoryCode22[11]
JCHAR
O
R022
(returns) F0901.gmr001
szCategoryCode23[11]
JCHAR
O
R023
(returns) F0901.gmr001
szAlternateObjectAccount[7]
JCHAR
O
OBJA
(returns) F0901.gmobja
szAlternateSubsidiary[9]
JCHAR
O
SUBA
(returns) F0901.gmsuba
szWorkersCompInsuranceCode[5]
JCHAR
O
WCMP
(returns) F0901.gmwcmp
cMethodOfComputation
JCHAR
O
CCT
(returns) F0901.gmcct
szEquipmentRateCode[3]
JCHAR
O
ERC
(returns) F0901.gmerc
cHeaderTypeCode
JCHAR
O
HTC
(returns) F0901.gmhtc
cLodQuantityRollupCode
JCHAR
O
QLDA
(returns) F0901.gmqlda
cCostCodeComplete
JCHAR
O
CCC
(returns) F0901.gmccc
szUserID[11]
JCHAR
O
USER
(returns) F0901.gmuser
szProgramID[11]
JCHAR
O
PID
(returns) F0901.gmpid
szWorkStationID[11]
JCHAR
O
JOBN
(returns) F0901.gmjobn
jdDateLastUpdated
JDEDATE
O
UPMJ
(returns) F0901.gmupmj
mnTimeLastUpdated
MATH_NUMERIC
O
UPMT
(returns) F0901.gmupmt
cSuppressErrorsFlag
JCHAR
I
EV01
1 - Suppress Error 0 - Do not suppress Error
szErrorCode[5]
JCHAR
O
VC04A
cAccountExistsFlag
JCHAR
O
EV01
set 'Y' when JDB_FetchKeyed() returns data from F0901(Either database cache or table)
cCostObjectEditCode01
JCHAR
CEC1
(returns) F0901.gmcec1
cCostObjectEditCode02
JCHAR
CEC2
(returns) F0901.gmcec1
cCostObjectEditCode03
JCHAR
CEC3
(returns) F0901.gmcec1
cCostObjectEditCode04
JCHAR
CEC4
(returns) F0901.gmcec1
cItemEditCode
JCHAR
IEC
(returns) F0901.gmiec
cGLAccountTaxable
JCHAR
TXGL
(returns) F0901.gmtxgl
szTaxArea1[11]
JCHAR
TXA1
(returns) F0901.gmtxa1
cAdjustmentEntry
JCHAR
ADJENT
(returns) F0901.gmadjent
cFAR_UnAllowableFlag
JCHAR
UAFL
(returns) F0901.gmuafl
Detail Routine:
1. Check szAccountID whether the input value is Blank or "00000000" then
2. Attempting to process without the Account ID, checking to see if Business Unit, Object Account and Subsidiary parameters are blank. If they are will set the Blanks Invalid error
3. Pull data from F0901 using index key ID_F0901_BUSINESS_UNIT_OBJECT (key 3) and set flag cUsingAccountIDFlag 'N' (index key2)
4. If szAccountID is not blank or "00000000" then pull data from F0901 using index key ID_F0901_ACCOUNT_ID and set flag cUsingAccountIDFlag 'Y' (index key3)
5. Fetch Account Master Table (F0901) record (depends on input parameter it uses different index key)
Error Codes:
0003 - Blanks Invalid
CAUSE . . . . The data field being processed does not allow blanks or zeros to be entered. RESOLUTION. . Enter a non-blank or non-zero value.
(Technical Input) Account ID and Business Unit, Object Account and Subsidiary parameters are blank
078D - Open for table &1 failed
CAUSE . . . . Table &1 could not be opened. The table may not exist in your environment or you may not have authority to open it. RESOLUTION. . Add the table to your environment and verify that you have proper authority. You may also check the JDE.LOG and JDEDEBUG.LOG for additional information.
078I - Fetch from table &1 failed
CAUSE . . . . The record to be fetched from table &1 does not exist or you do not have authority to fetch records from this table. RESOLUTION. . Verify that the record being fetched exists and that you have proper authority. Check the JDE.LOG and JDEDEBUG.LOG for additional information.
(Technical input) Reset database cache or check row security settings
Consideration: In case the value returned by this business function is different from what is expected, then reset database cache