The purpose of this document is to explain the limitation of search functionality in both P42101/W42101C [Manage Exiting Order] and P4210|W4210E [Customer Service Inquiry] to answer below inquiry,
1. Set Symbol Customer/Supplier (F41001.SYM5) for the branch/plant 'M30' (F41001.MCU)
2. Add Cross Reference for the customer 74242 using P4104 (Cross Reference) as below,
- Cross-Reference Code Type = 'C' (F4104.XRT)
- Cross Reference Item Number = 'COFFEE' (F4104.CITM)
- Address Number = 74242 (F4104.AN8)
- Eff Date = Today's date
- Expired Date = 12/31/Default Value of DD Alias DCYR (or CENTCHG)
Address Number | Xref Type | Short Item No | Expired Date | Effective Date | Customer/Supplier Item Number | Description | 2nd Item Number | ... |
74242 | C | 933290 | 12/31/25 | 03/23/18 | COFFEE | Blank coffee - blend | KOPI-O |
3. Set the processing option of P4210|Version as below,
- (Tab) 12-Order Inquiry
- 7. Customer Cross Reference Type = 'C'
4. Enter customer's Item Number with symbol (= #COFFEE) in the column Item Number below,
Note: the check box may show additional column in Grid to show the Customer Item Number when it is set properly.
Currently, it is functioning as designed as exiting enhancement <Bug 10991876> - SEARCH IN P42101 FOR CUSTOMER - SAR: 8840258. As explained, it is very unlikely we implement this because of usability.
There are three different behaviors in P4210/P42101,
Example to parse customer item number to company's item number,
F4101 Get Item Master Row (X4101, VerifyAndGetItemMaster)
GC Item Number -> BF szPrimaryItemNumber /* IN: example: #COFFEE which is customer item number */
VA evt_szBranchPlant_MCU -> BF szBranchPlant /* IN: Detail Branch/Plant = M30 to resolve symbol # because this symbol can be different per branches */
-> BF cSymbolidentifier /* IN: To match symbol based on branch/plant - not only customer number but also any symbol */
VA evt_mnShortItemNumber_ITM FC Address Number -> BF mnAddressnumber /* IN: Sold To Address to build WHERE clause */
"0" -> BF cReturnPtr /* IN: Not to return pointer - otherwise it can cause memory leak */
"1" -> BF cSuppressErrorMsg /* IN: 1 - Suppress Error, 0 - Do not Suppress - show error and stop processing */
"1" -> BF cCallType /* IN: Hard coded to control the routine */
"1" -> BF cCrossRefMode /* IN: 0 or 1 to determine whether to read F4104 or not */
FC Order Date -> BF jdExpirationDate /* IN: Since there can be multiple rows for item number. F4101 : 4104 = 1 : many */
Note: the example of code will be discussed in different document to explain the usage of X4101.