on 11-27-2006 9:13 PM
Hi mates,
I'm trying to configure the following scenario...
1)Create a material in MDM.
2)Syndicate the material to a MDC (R/3)
3)Material is created in R/3 and MATNR is generated
4)Material IDOC with MATNR is sent to MDM and key mapping is done in MDM.
When I create a material in MDM, I do not have value for MATNR. When I syndicate this material, the IDOC is sent to R/3 which is processed by the i/b process code MAT2 is failing with error 'No Material number transfered'.
How do I resolve this issue, how can I populate MATNR which is not yet created?
How do I realize the step 4?
I highly appreciate your inputs.
thx in adv
praveen
can anyone help me on this?
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hey, I just had to deal with the exact same issue. How are you syndicating the material to MDC? What you want to do is map the IDoc field MSGFN to value = 009. That (005) is the code for creating the material. R/3 will process the IDoc and create the material. Keep in mind that the next time you make changes to that material and re-syndicate, you will need to change the MSGFN field to value = 002. That (002) code is tells R/2 to change the material instead of create a new one. The scenario should look like this:
1. Create Material in MDM
2. Syndicate to R/3
3. R/3 creates material and generates MATNR based on 005 IDoc code
4. Aknowledgement IDoc generated with new MATNR and sent to MDM
5. MDM updates with newly generated MATNR.
6. Change is made to material in MDM
7. Syndicate to R/3
8. R/3 changes material based on 002 IDoc code.
So in your mapping write a rule that says:
if MATNR exists, MSGFN == 002
else, MSGFN == 009
Or something similar to that. Let me know if you need further help, I just finished setting up this scenario.
6.
Hi Harrison,
Thanks for the information. I need couple of clarification..
<i>>>That (005) is the code for creating the material.</i>
You mean to say '009'..I guess..
<i>3. R/3 creates material and generates MATNR based on 005 IDoc code</i>
You mean to say '009'...I guess..
I thought these were typos. So, I tried to create an IDOC with MSGFN = 009..but still the same result...'No material umber transfered'
Here is the IDOC that I'm trying to post...
<i>- <MATMAS05>
- <IDOC BEGIN="1">
- <E1MARAM SEGMENT="1">
<MSGFN>009</MSGFN>
<MATNR />
<PSTAT>KDV</PSTAT>
<MTART>FERT</MTART>
<MBRSH>C</MBRSH>
<MATKL>FG15</MATKL>
<MEINS>KGM</MEINS>
<BRGEW>1.04</BRGEW>
<NTGEW>1</NTGEW>
<GEWEI>KGM</GEWEI>
<VOLUM>0</VOLUM>
<VOLEH>M3</VOLEH>
<TRAGR>0001</TRAGR>
<SPART>72</SPART>
<LAENG>0</LAENG>
<BREIT>0</BREIT>
<HOEHE>0</HOEHE>
<PRDHA>/</PRDHA>
<ERVOL>0</ERVOL>
<MHDRZ>/</MHDRZ>
<MHDHB>/</MHDHB>
<KZUMW>X</KZUMW>
<PROFL>ZNH</PROFL>
<MTPOS_MARA>NORM</MTPOS_MARA>
<VOLTO_NEW>0</VOLTO_NEW>
- <E1MAKTM SEGMENT="1">
<MSGFN>009</MSGFN>
<SPRAS>EN</SPRAS>
<MAKTX>BULK 4602Z MF-NAT Changed in SAP MDM</MAKTX>
<SPRAS_ISO>EN</SPRAS_ISO>
</E1MAKTM>
</E1MARAM>
</IDOC>
</MATMAS05></i>
Looks like there is an ALE parameter which checks whether the MANTR is maintained or not. I'm not able to figure out that. Any ideas?
I appreciate your inputs..
thx
praveen
Praveen,
Let me answer your question on behalf of Harrison since we are working together in the same project.
You need to enhance the function module IDOC_INPUT_MATMAS01 (FM defined in Process code - WE42) to handle creation of material with internal number range. You may call BAPI BAPI_STDMATERIAL_GETINTNUMBER for that in your enhancement.
Zamri
You can use BTE if you want but I am using an Enhancement Framework technique (latest enhancement tool).
Please refer to this link on how to use this tool:
http://help.sap.com/saphelp_nw2004s/helpdata/en/94/9cdc40132a8531e10000000a1550b0/frameset.htm
Zamri
User | Count |
---|---|
86 | |
23 | |
11 | |
9 | |
8 | |
5 | |
5 | |
5 | |
5 | |
4 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.