‎2011 Jul 20 3:13 PM
Hi to all,
My scenario is the automatic creation of Sales order to my SAP system by tranlating a PO from another SAP system through ALE.
I have used message type ORDERS and I have the following problem.
The Idoc passed correctly to the receiver system but with status 51 (the doc. has not been posted). Double clicking on the status I have the message "The material number for item 000010 could not be identified".
I have already created a customer info record to the receiver system and the weird thing is that whenever i use tcode WE19 and manually run (foregroung) the relevant inbound function module (IDOC_INPUT_ORDERS) the document is posted without any problem.
Could someone give me an explanation?
Thanks in advance.
GA
‎2013 Jul 10 3:06 PM
I have the same problem. Did you find a solution?
Best regards
Markus
‎2013 Jul 11 4:57 AM
Refer below note, however for older releases though. Check if applies to your software component release.
Note 314823 - SD EDI:Error VG203 despite existing mat.info record ( Check related notes at bottom)
Best,
Abhijith
‎2013 Jul 11 1:12 PM
Thanks for your quick reply! Note 314823 and related notes do not fit, since the system is SAP ECC 6.0.
Best regards
Markus
‎2013 Jul 11 6:38 AM
Hello,
Check the following SAP note that explains the material determination for inbound ORDERS-Idocs:
305309 Mat.determination at receipt of ORDERS-IDOCs
Please check the correct use of the three possibilities for material determination to avoid error message VG203.
Regards,
David
‎2013 Jul 11 1:31 PM
Thanks for your hint! This note possibly has to do with my problem:
I want to use the following option:
1. as a customer material
Enter the customer material in field E1EDP19-IDNTR with qualifier 001. In this case a customer material info record for the sold-to party must exist in the sales organization.
You can create this customer material info record using Transaction VD51.
The possible problem is, that I don not use sold-to party (SP resp. AG in german) but ship-to partner (SH resp. WE in german).
For this reason I implemented the MV45AFZB user exit with the USEREXIT_CUST_MATERIAL_READ form as described in note 626931.
The user exit works in transaction VA01 and partially in WE19 (test tool for IDoc processing):
- "Inbound function module" + "In foreground" works
- "Inbound function module" + "In foreground after error" works
- "Inbound function module" + "In background" DOES NOT work
- "Standard inbound" DOES NOT work
This seems very strange for me, since IDOC_INPUT_ORDERS only processes a CALL TRANSACTION VA01 and should in my opinion be the same in all 4 variants.
Any further help is appreciated!
Regards
Markus
‎2019 Aug 21 5:18 PM
Thanks David for the explanation of the three cases.
I'm creating the SO from the PO using idoc ORDERS. The defalut qualifier is 001 which means material "as a customer material" according to note 305309.
There is a customer material inforecord created. I got an error on the idoc when it is executed in background but not in the foreground. I think the error came because in the foreground when creating the item, the material is first empty, then populated, then Information message appears:
Message no. V1009
You have changed either the Customer material field or the Material field. The 'dependent' field was not redetermined.
The system determines the 'dependent' field only when there is no value in the field. When you change the Customer material field, for instance, the Material field is dependent. When you change the Material field, the Customer material field is dependent.
In order for the system to automatically redetermine the 'dependent' field when you are changing something, you must delete the field's contents.
I think in the background this information message blocks the idoc processing.
‎2013 Jul 12 6:26 AM
‎2013 Aug 21 10:35 AM
Hi,
I am also facing the same issue. Cpuld you please let me know the solution.
Regards,
Madhav
‎2013 Aug 21 4:14 PM
My solution is to switch SH (resp. WE in german) to SP (resp. AG in german) and vice-versa and looks as follows.
In include LVEDAF23 / FORM determine_material I added the following enhancements:
FORM determine_material.
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""$"$\SE:(1 ) Form DETERMINE_MATERIAL, Anfang D
*$*$-Start: (1 )--------------------------------------------------------------------------------$*$*
ENHANCEMENT 21 Z_DETERMINE_MATERIAL_01. "active version
DATA: ls_xvbadr like xvbadr,
le_kunnr_ag TYPE kunnr,
le_kunnr_we TYPE kunnr.
LOOP AT xvbadr INTO ls_xvbadr.
CASE ls_xvbadr-parvw.
WHEN 'AG'.
le_kunnr_ag = ls_xvbadr-kunnr.
WHEN 'WE'.
le_kunnr_we = ls_xvbadr-kunnr.
WHEN OTHERS.
ENDCASE.
ENDLOOP.
xvbak-kunnr = le_kunnr_we.
ENDENHANCEMENT.
*$*$-End: (1 )--------------------------------------------------------------------------------$*$*
********************************************************************************
* ... original SAP code
********************************************************************************
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""$"$\SE:(2 ) Form DETERMINE_MATERIAL, Ende D
*$*$-Start: (2 )--------------------------------------------------------------------------------$*$*
ENHANCEMENT 22 Z_DETERMINE_MATERIAL_01. "active version
xvbak-kunnr = le_kunnr_ag.
ENDENHANCEMENT.
*$*$-End: (2 )--------------------------------------------------------------------------------$*$*
ENDFORM. " DETERMINE_MATERIAL
In include MV45AFZB / FORM userexit_cust_material_read I implemented the according User-Exit (using enhancement technology)
FORM userexit_cust_material_read USING us_kunnr.
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""$"$\SE:(1 ) Form USEREXIT_CUST_MATERIAL_READ, Anfang D
*$*$-Start: (1 )--------------------------------------------------------------------------------$*$*
ENHANCEMENT 348 Z_CUST_MATERIAL_READ. "active version
DATA: ls_xvbpa LIKE LINE OF xvbpa,
le_kunnr_ag TYPE kunnr,
le_kunnr_we TYPE kunnr.
LOOP AT xvbpa INTO ls_xvbpa.
CASE ls_xvbpa-parvw.
WHEN 'AG'.
le_kunnr_ag = ls_xvbpa-kunnr.
WHEN 'WE'.
le_kunnr_we = ls_xvbpa-kunnr.
WHEN OTHERS.
ENDCASE.
ENDLOOP.
us_kunnr = le_kunnr_we.
ENDENHANCEMENT.
*$*$-End: (1 )--------------------------------------------------------------------------------$*$*
* US_KUNNR = xxxx-zzfield1.
ENDFORM. "USEREXIT_CUST_MATERIAL_READ
Hope this helps
Regards
Markus