This document is a case study only with general debugging methods.
P4114 (Inventory Adjustment) issues error with Flex Account on as below,
Item Number Invalid
A form level error has occurred.
CAUSE.... The Item Number entered does not exist in the Basic Item Master
(P4101).
ER Details:
Form P4114_W4114A
Control Id 1
Control Title Grid
Event Row is Exit & Changed - Asynch
Line No 61
BSFN Details:
Source File x4101.c
Source Line 1321
Error ID 026
Same repeats in JDEDEBUG.log as below,
sql> SELECT IMITM, IMLITM, IMAITM, IMDSC1, IMDSC2, IMIFLA, IMTFLA, IMTMPL, IMSEG1, IMSEG2, IMSEG3, IMSEG4, IMSEG5, IMSEG6, IMSEG7, IMSEG8, IMSEG9, IMSEG0, IMMIC FROM PRODDTA.F4101 WHERE ( IMITM = 741386741386.000000 )
No More Data found (hRequest 0A6F44C0)
ERROR INFO JDEERR - ID= 0, Error= 0267 - x4101.c, Line= 1321
Note:
Flex Rule Definition - Flexible Sales Account Revisions
AAI Table Number 4124 Company 00001
Document Type IA
Seq | Business Unit | Subsidiary | Subledger | Item | Cost Object | Cost Type | File Name | Len | Description | Data Item | Data Type |
1 | X | F4102 | 6 | Category Code 7 | SRP7 | ||||||
2 | X | F4102 | 8 | Item Number - Short | ITM | ||||||
3 | X | F4102 | 8 | Item Number - Short | ITM | ||||||
4 | 3 | P | F4102 | 3 | Commodity Class | PRP1 | |||||
5 | 3 | P | F4102 | 3 | Commodity Class | PRP1 | |||||
6 | 4 | G | F4102 | 3 | Supplier Rebate Code | PRP3 | |||||
7 | 4 | G | F4102 | 3 | Supplier Rebate Code | PRP3 |
Note:
To debug and resolve this type of issue,
1. Capture jdedebug.log (call object kernel log) with error
2. Look for error based on the error code represented in HTML client
For instance, you may find "ERROR INFO JDEERR - ID= 0, Error= 0267 - x4101.c, Line= 1321" in jdedebug.log captured
Get the function name based on c Source File X4101C which is GetItemMasterByShortItem
3. Look for the SELECT statement failed by scrolling up a few lines. Based on the function analyzed GetItemMasterByShortItem, which issues query as below (Issue SELECT using ITM 741386741386)
SELECT IMITM, IMLITM, IMAITM, IMDSC1, IMDSC2, IMIFLA, IMTFLA, IMTMPL, IMSEG1, IMSEG2, IMSEG3, IMSEG4, IMSEG5, IMSEG6, IMSEG7, IMSEG8, IMSEG9, IMSEG0, IMMIC FROM PRODDTA.F4101 WHERE ( IMITM = 741386741386.000000 )
No More Data found (hRequest 0A6F44C0)
: This query fails because the mnIdentifierShortItem repeats twice
4. Determine the condition to write ITM. Only possible cause of repetition is Flex Account settings (Refer <Document ID 756543.1> - E1: 42: Flexible Accounting for Distribution (R42800/P4112/P4113/P4114/P4312/P4314/P43291/P40296) if you are interested in). Commonly Item number can be set using Flexible account setup to record F0911.ITM based on the value specified.
5. Review Flex set up using P40296 (or, table F4096).
6. Delete replicated lines unless you want to set it up item master for the same. For this example, the short item number exceeds the defined length but both SQL and Oracle DB shall not issue any error (you may hit hard error in DB2 environment) when the length exceeds 8 digits.
Seq Business Unit Subsidiary Subledger Item Cost Object Cost Type File Name Len Description Data Item Data Type
[To - Be] setting
Seq | Business Unit | Subsidiary | Subledger | Item | Cost Object | Cost Type | File Name | Len | Description | Data Item | Data Type |
1 | X | F4102 | 6 | Category Code 7 | SRP7 | ||||||
2 | X | F4102 | 8 | Item Number - Short | ITM | ||||||
3 | 3 | P | F4102 | 3 | Commodity Class | PRP1 | |||||
4 | 4 | G | F4102 | 3 | Supplier Rebate Code | PRP3 |
7. Delete Database Cache because F4096 is a member of Database Cache as defined in P98613
8. Test it again
SELECT IMITM, IMLITM, IMAITM, IMDSC1, IMDSC2, IMIFLA, IMTFLA, IMTMPL, IMSEG1, IMSEG2, IMSEG3, IMSEG4, IMSEG5, IMSEG6, IMSEG7, IMSEG8, IMSEG9, IMSEG0, IMMIC FROM PRODDTA.F4101 WHERE ( IMITM = 741386.000000 )
Fetched the record (hRequest 0A6F3FB0)
: F0911.ITM = F4102.ITM will be written