ALKY in Procurement and Sales

Purpose of Document

This note is to explain how ALKY is handled in EnterpriseOne Sales and Procurement.

Across Sales and Procurement product family, form control 'ALKY - AlternateAddressKey, Long Address Number' are implemented for easier search of Customer, Ship To, or Supplier search. This note is to answer, or possibly provide help with debugging issues specific to this form control ALKY. Since this control is a string (or character array), data dictionary item both String and Math Numeric data type can be stored.

Note that this document may not guide you to the best practice in your population of ALPH (NameAlpha, Name - Alpha), ALKY (AlternateAddressKey - Long Address Number), ALP1 (Kanjialpha, Secondary Alpha Name) and DC (DescriptionCompressed, Description -Compressed) in F0101 (Address Book Master File). Rather this document focuses on how to get data based on as-is value


Business Function can be used to Validate/Edit/Return ALKY control:-
Currently there are two different business functions to scrub user input value and return valid customer/supplier information:


Example of Data from F0101 (Address Book Master) for Language CS - Chinese Simplified:

Address Number (AN8) Long Address
(ALKY)
Tax ID
(TAX)
Alpha Name
(ALPH)
Description Compressed
(DC)
Alternate Char Set Name (ALP1)
8625 甲骨文公司 8529634 Oracle Corp - Alha Name CAPITALSYSTEM
8626 ALKY - 2 * A 8529635 Oracle Corp - Alha Name2 ORACLECORPALHANAME2
8627 甲骨文 8529635 Oracle Corp - Alha Name3 甲骨文公司 甲骨文公司
8628 甲骨文公司-ALKY 8529635 甲骨文公司 - ALPH 甲骨文公司ALPH 甲骨文公司
8629 甲骨文公司 - ALKY# 8529635 甲骨文公司 - ALPH& 甲骨文公司-alp1% 甲骨文公司 - alp1%

Note:




Table (F0101) Column Explanation:

Col Description Usage How to Populate
AN8 AddressNumber (Address Number) Primary Key for table F0101
This value can be entered in ALKY control which will return TAX, ALPH
Either system assign based on next number 01/1 - Address Book Number
Or user can override to have meaningful numbers
ALPH NameAlpha (Name - Alpha) This column stored legal entity name Manual population which will be appeared reports and associated AN8 description
ALKY AlternateAddressKey (Long Address Number) Alternative Unique information to make entity meaningful if needed (optional) Different language (code set/page) can be entered if needed
TAX TaxId (Tax ID) Unique Tax ID (optional) this has to be valid entry and this can trigger localization code
DC DescripCompressed (Description - Compressed) All address book search is handled by this column value This column is populated by system
If ALP1 is not blank then DC = ALP1 after removing spaces
If ALP1 is blank then DC = ALPH. For this example
  • Remove after removing special characters as defined in UDC H95/SC - Word Search Special Character
  • Remove Spaces
  • Set Upper Case
Note: R01302 (F0101 Description Compressed Conversion) always set DC = ALPH regardless the language you set. This is because this application is meant for upgrade when DC is not populated in lower E1 releases
ALP1 Kanjialpha (Secondary Alpha Name) To store different language description for double byte Asian languages This column will be populated only when preference lanague (F00921.LNGP) is not blank (e.g., CS, CT, KO, J and so on) AND Special Handling Code is defined 2 (for boule byte language) and 3 (3 byte language)

Note: Columns here are only for ALKY explanation




Table (F0009) Columns:

Col Description Default Value Usage
SYMA SymboltoIdentifyABAltern (Symbol to Identify A/B Alternate Key) * In ALKY control, if you type "*ALKY" which is to return Address Book Number
SYMT SymbolUsedtodefineABTaxI (Symbol Used to define A/B Tax ID) / In ALKY control, if you typ "/TaxId" which returns Address Book Number
SYMN SymbolUsedtodefineABShor (Symbol Used to define A/B Short Number) If you specify address book number which will return necessary information

Note: This table F0009 belongs to Environment Cache which control across system. So it is not advisable to change at once you go-live





Business Function: N0100061 - ScrubAddressNumberNER (Scrub Address Number)

Structure Member Name Data Type Req I/O Alias Used For
szAlternateAddressKey[21] JCHAR <> ALKY Actual value to returned however ALKY
Input value can be,
AN8 - AddressNumber (Address Number)
TAX - TaxId (Tax ID)
ALPH - NameAlpha (Name - Alpha)
ALP1 - Kanjialpha (Secondary Alpha Name)
mnAddressNumber MATH_NUMERIC <- AN8 Output value to store back to control (hidden control)
szTaxid[21] JCHAR TAX Not used for cInputSelection 5
cInputSelection JCHAR -> EV01 Valid Values are,
1 - I0100016_ScrubValidate
2 - I0100016_ScrubByAN8
3 - I0100016_ScrubByALKY
4 - I0100016_ScrubByTAX
5 - I0100016_ScrubValidate
cSuccessFlag JCHAR <- EV02 Return values are,
0 - Success
1 - Fail
4 - Wrong cInputSelection
szNameAlpha[41] JCHAR <> ALPH To show Alpha description which is same with Associated Description
szLongAddressKey[41] JCHAR MLNM

Detail routine:
Refer below flow chart for validation and getting value

Call App


1. Check cInputSelectionFlag: this value has to be IN ('1', '2', '3', '4', or '5'). For this note only '5' is to be used
2. Check input szAlternateAddressKey whether this value is blank or not. If blank exit from routine.
3. Get Address Book Constant (F0009) to get SYMA, SYMT and SYMN
4. Check leading character of (input) szAlternateAddressKey and compare it with the value returned in step 3. For example, input string starts with '*' check which column contains this out of syma, symt and symn
5. (Contine) when (input) szAlternateAddressKey does not contain any character defined in Address Book Constant
6. Then call I0100016_SearhByALPH (or refer below flow chart on Search by ALPH


Internal functions: List of internal functions to indicate the functionality of this business function's N0100061 and B0100016
This information may provide easier understanding on what is internal routine which can be scrub input value and fetch data from F0101

Internal function Used For Others
I0100016_RetrieveF0009 This function retrieves the F0009 record and saves it in the output param. All error conditions are set here for F0009 fetch failures
078D - Failed to open table F0009
4430 - JDB_FetchKeyed failed
To check leading character in F0009
I0100016_ScrubValidate This function scrubs and validates the input Alternate Address Key Value. If the Selection Flag is '5', it will also perform Alpha Name search.This function is called when Selection is '1' or '5'
078D - Failed to open table F0101
N0100061 is specific to this functionality
I0100016_SearchByALPH This function searches F0101 by Alpha Name. The SQL query will retrieve records by Compressed Desc. If there are multiple matches, P0101SL will be started. This function is only called when Selection Mode is '5'
1. Convert Alternate Key to a compressed description form.
2. Issue LIKE query to database.
3. If multiple records are found, start P0101SL to enable users to select Address Book Records
Unlike the description of function, it searches based on F0101.DC
I0100016_ScrubByALKY This function scrubs and validates the input Tax Key
I0100016_FetchByALKY This function fetches from F0101 by ALKY
I0100016_ScrubByAN8 This function scrubs and validates the input Address Number
I0100016_FetchByAN8 This function fetches from F0101 by AN8
I0100016_ScrubByTAX This function scrubs and validates the input Tax Key
I0100016_FetchByTAX This function fetches from F0101 by TAX
I0100016_CheckDataPrivacy Check Data Privacy Implemented through SAR 7285985


Below flow chart may give you how cInputSelection = '5' (where most of Sales and Purchase application is making use of),<

Detail in PO


1. Check whether users are on double-byte language by calling B0100097 - SearchSpecialCharacter
2. If special charater is found from (input) szAlternateAddressKey
3. Call API jdeGetUserLanguagePreference to get F00921.LNGP which is values defined in UDC 01/LP - Language (Preference)
4. Call BSFN B9800002 (LanguageTypeEdit) to determine special character to use scrub input string based on UDC H95/SC - Word Search Special Character
5. Call BSFN B0100009 (CompressCharacterString) to scrub off special characters/spaces and set upper case if needed
6. Loop F0101 where F0101.DC LIKE '(input) szAlternateAddressKey + %'
7. If there are more than 1 records from F0101 call(App:P0101SL, Form:W0101SLA)


Error Codes:

Error Code Description Condition to Issue Error
0038 Characters Invalid failed to get data from F0101 based on AN8
078D Open for table &1 failed
4430 Constants not set up when it fails to get information from F0009
496Z Invalid Tax ID failed to return based on TAX
799L Invalid Long Address Number failed to get based on ALKY



Reference:
<Document 643400.1> E1: 42: Address Invalid Error message upon exiting from ALKY exiting on P4210