cancel
Showing results for 
Search instead for 
Did you mean: 

Material Master Data from SAP ECC to SAP ME

Former Member
0 Kudos

Hi Everyone,

I am an MII consultant and have a very basic understanding of SAP ME.

Currently I have a project requirement, wherein we are supposed to load Material Master Data and Material Classification from SAP ECC to SAP ME.

As per my understanding goes, the integration should contain the following steps:

1) A program is scheduled to run which creates a IDOC of type MATMAS03 and sends the data to MII system.

2) SAP MII has SAPMEINT installed on it which helps it to connect to the ME system.

3) SAP MII has a IDOC listener enabled which executes a BLS in MII, reads through the IDOC and calls the appropriate Web service of SAP ME that can insert a new material record or update an existing one.

Please let me know if my understanding is correct.

Also I have the following questions:

1) Where can I find the SAP ME web services that can be used by SAP MII to send the data from MII to ME?

2) As per the latest versions of SAP MII and SAP ME, I got to know that MII has inbuilt ME action blocks that can be used instead of calling these web services. Can you please let me know if anyone has tried it and what versions work the best.

3) Is MII and SAPMEINT a must for sending the Master data and Material classification data from ECC to ME? or with current releases, SAP has bypassed that? Since In my system landscape, I can only find ME and not MII. If MII and SAPMEINT are must, I have to suggest to my project team to get that.

Please reply to my queries.

Regards,

Gita

Accepted Solutions (1)

Accepted Solutions (1)

Former Member
0 Kudos

Hi Chandan/Tim,

I am using the web service wsdl : http://<hostname>:<portnum>/manufacturing-papiservices/ItemConfigurationServiceWSService?wsdl

When Iam using SOAPUI to test this, along with the fields that you mentioned above, I get a lot of other fields, for RouterRef, ShoprOrderTypeRef, DocumentRef etc.

Below:

I do not know how to mentioned the REF fields, with the BO extension.

ANyway, I entered the following details, and got the error below:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:mep="mepapi:com:sap:me:productdefinition" xmlns:prod="http://www.sap.com/me/productdefinition" xmlns:com="http://www.sap.com/me/common" xmlns:doc="http://www.sap.com/me/document">

   <soapenv:Header/>

   <soapenv:Body>

      <mep:createItem>

         <!--Optional:-->

         <mep:Site>TF01</mep:Site>

         <!--Optional:-->

         <mep:Request>

            <!--Optional:-->

            <prod:ref></prod:ref>

            <prod:item>TEST_MATERIAL</prod:item>

            <com:revision>1</com:revision>

            <!--Optional:-->

            <com:description></com:description>

            <prod:itemType>MANUFACTURED</prod:itemType>

            <!--Optional:-->

            <prod:createTrackableSfc></prod:createTrackableSfc>

            <!--Optional:-->

            <prod:quantityRestriction></prod:quantityRestriction>

            <!--Optional:-->

            <prod:collectParentSerial></prod:collectParentSerial>

            <!--Optional:-->

            <prod:collector></prod:collector>

            <prod:lotSize>1</prod:lotSize>

            <!--Optional:-->

            <prod:quantityMultiplier></prod:quantityMultiplier>

            <!--Optional:-->

            <prod:panel></prod:panel>

            <!--Optional:-->

            <prod:unitOfMeasurement></prod:unitOfMeasurement>

            <!--Optional:-->

            <prod:preAssembled></prod:preAssembled>

            <!--Optional:-->

            <com:maximumUsage></com:maximumUsage>

            <prod:timeSensitive>false</prod:timeSensitive>

            <!--Optional:-->

            <prod:currentRevision></prod:currentRevision>

            <!--Optional:-->

            <prod:routerRef></prod:routerRef>

            <!--Optional:-->

            <prod:statusRef></prod:statusRef>

            <!--Optional:-->

            <prod:bomRef></prod:bomRef>

            <!--Optional:-->

            <prod:storageLocationRef></prod:storageLocationRef>

            <!--Optional:-->

            <prod:erpBackflushing></prod:erpBackflushing>

            <!--Optional:-->

            <prod:erpPutawayStorageLocation></prod:erpPutawayStorageLocation>

            <!--Optional:-->

            <prod:maxFloorLife></prod:maxFloorLife>

            <!--Optional:-->

            <prod:maxFloorLifeUnits></prod:maxFloorLifeUnits>

            <!--Optional:-->

            <prod:maxShelfLife></prod:maxShelfLife>

            <!--Optional:-->

            <prod:maxShelfLifeUnits></prod:maxShelfLifeUnits>

            <!--Optional:-->

            <prod:expirationDate></prod:expirationDate>

            <prod:allowResetFloorLife>true</prod:allowResetFloorLife>

            <prod:allowResetShelfLife>true</prod:allowResetShelfLife>

            <!--Optional:-->

            <prod:assemblyDataTypeRef></prod:assemblyDataTypeRef>

            <!--Optional:-->

            <prod:transferItemGroupRef></prod:transferItemGroupRef>

            <!--Optional:-->

            <prod:holdId></prod:holdId>

            <!--Optional:-->

            <prod:incrementBatchNumber></prod:incrementBatchNumber>

            <!--Optional:-->

            <prod:assignSerialAtRelease></prod:assignSerialAtRelease>

            <!--Optional:-->

            <prod:removalAssemblyDataTypeRef></prod:removalAssemblyDataTypeRef>

            <!--Optional:-->

            <prod:selectorNote></prod:selectorNote>

            <!--Optional:-->

            <prod:requireSerialChange></prod:requireSerialChange>

            <!--Optional:-->

            <prod:originalStatusRef></prod:originalStatusRef>

            <!--Optional:-->

            <prod:selectorActivityRef></prod:selectorActivityRef>

            <!--Optional:-->

            <prod:maskGroupRef></prod:maskGroupRef>

            <!--Optional:-->

            <prod:lastReleasedDate></prod:lastReleasedDate>

            <!--Optional:-->

            <prod:inventoryAssemblyDataTypeRef></prod:inventoryAssemblyDataTypeRef>

            <!--Optional:-->

            <prod:drawingName></prod:drawingName>

            <!--Optional:-->

            <prod:notes></prod:notes>

            <!--Optional:-->

            <prod:timeBasedComponentType></prod:timeBasedComponentType>

            <!--Optional:-->

            <prod:consumptionTolerance></prod:consumptionTolerance>

            <!--1 or more repetitions:-->

            <prod:itemAlternateList>

               <!--You may enter the following 10 items in any order-->

               <!--Optional:-->

               <prod:alternateItemRef></prod:alternateItemRef>

               <prod:sequence>10</prod:sequence>

               <!--Optional:-->

               <prod:substitute></prod:substitute>

               <!--Optional:-->

               <prod:itemRef></prod:itemRef>

               <!--Optional:-->

               <prod:itemGroupRef></prod:itemGroupRef>

               <!--Optional:-->

               <prod:requiredSubstitute></prod:requiredSubstitute>

               <!--Optional:-->

               <prod:validAssembly></prod:validAssembly>

               <!--Optional:-->

               <prod:validEndDate></prod:validEndDate>

               <!--Optional:-->

               <prod:validRevision></prod:validRevision>

               <!--Optional:-->

               <prod:validStartDate></prod:validStartDate>

            </prod:itemAlternateList>

            <!--1 or more repetitions:-->

            <prod:itemLocationList>

               <!--You may enter the following 4 items in any order-->

               <prod:location>T001</prod:location>

               <!--Optional:-->

               <prod:description></prod:description>

               <prod:sequence>10</prod:sequence>

               <!--Optional:-->

               <prod:itemRef></prod:itemRef>

            </prod:itemLocationList>

            <!--1 or more repetitions:-->

            <prod:itemDpmoList>

               <!--You may enter the following 4 items in any order-->

               <prod:operationRef>ISSUE</prod:operationRef>

               <!--Optional:-->

               <prod:itemRef></prod:itemRef>

               <prod:dpmoCategoryRef>ASSEMBLY</prod:dpmoCategoryRef>

               <!--Optional:-->

               <prod:opportunities></prod:opportunities>

            </prod:itemDpmoList>

            <!--1 or more repetitions:-->

            <prod:itemShopOrderTypeList>

               <!--Optional:-->

               <prod:itemRef>I1103A5KPBG</prod:itemRef>

               <prod:routerRef>RouterBO:PMR</prod:routerRef>

               <prod:shopOrderTypeRef>PRODUCTION</prod:shopOrderTypeRef>

            </prod:itemShopOrderTypeList>

            <!--Zero or more repetitions:-->

            <prod:documentList>

               <doc:documentRef>TEST</doc:documentRef>

               <com:sequence>10</com:sequence>

            </prod:documentList>

            <!--Zero or more repetitions:-->

            <prod:transferDataList>

               <!--Optional:-->

               <exportTemplateRef></exportTemplateRef>

               <!--Optional:-->

               <receiveReq></receiveReq>

               <!--Optional:-->

               <messageTypeRef></messageTypeRef>

               <!--Optional:-->

               <transferSite></transferSite>

               <!--Optional:-->

               <transferType>N</transferType>

               <!--Optional:-->

               <transferParentContext>

                  <!--Optional:-->

                  <shopOrderRef></shopOrderRef>

                  <!--Optional:-->

                  <itemRef></itemRef>

                  <!--Optional:-->

                  <itemGroupRef></itemGroupRef>

               </transferParentContext>

               <!--Optional:-->

               <defChoice></defChoice>

            </prod:transferDataList>

            <!--Zero or more repetitions:-->

            <prod:customData>

               <name>BATCH_NUMBER</name>

               <!--Optional:-->

               <value>111111</value>

            </prod:customData>

         </mep:Request>

      </mep:createItem>

   </soapenv:Body>

</soapenv:Envelope>

ERROR:

ASJ.ejb.005044 (Failed in component: sap.com/me~ear) Exception raised from invocation of public com.sap.me.frame.Data com.sap.me.frame.BasicBOBean.dbCreateAndRead(com.sap.me.frame.Data) throws com.sap.me.frame.BasicBOBeanException method on bean instance com.sap.me.productdefinition.ItemBOBean@33b040cc for bean sap.com/me~ear*xml|me.productdefinition.ejb-6.1.2.0.jar*xml|ItemBO in application sap.com/me~ear.; nested exception is: java.lang.NullPointerException: while trying to invoke the method java.lang.String.indexOf(int) of a null object loaded from local variable 'tmpString';

I do not have MII and we have to consume this web service in PI and create materials from there.

I am totally clueless about it. PLease help me out.

Regards,

Gita

0 Kudos

Hi Gita,

You have incorrectly defined itemAlternateList in particular: the sequence has been defined only.

I was able to successfully import the following material - please start with it and add all the needed tags one by one to successuvely eliminate all your issues. Please note the list tags should be specified fully inside, at least with one element - otherwise remove them from the request at all.

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:mep="mepapi:com:sap:me:productdefinition" xmlns:prod="http://www.sap.com/me/productdefinition" xmlns:com="http://www.sap.com/me/common" xmlns:doc="http://www.sap.com/me/document">

   <soapenv:Header/>

   <soapenv:Body>

      <mep:createItem>

         <!--Optional:-->

         <mep:Site>SK</mep:Site>

         <!--Optional:-->

         <mep:Request>

            <!--Optional:-->

            <prod:ref/>

            <prod:item>TEST_MATERIAL</prod:item>

            <com:revision>2</com:revision>

            <!--Optional:-->

            <com:description/>

            <prod:itemType>MANUFACTURED</prod:itemType>

            <!--Optional:-->

            <prod:createTrackableSfc/>

            <!--Optional:-->

            <prod:quantityRestriction>A</prod:quantityRestriction>

            <!--Optional:-->

            <prod:collectParentSerial/>

            <!--Optional:-->

            <prod:collector/>

            <prod:lotSize>1</prod:lotSize>

            <!--Optional:-->

            <prod:quantityMultiplier/>

            <!--Optional:-->

            <prod:panel>false</prod:panel>

            <!--Optional:-->

            <prod:unitOfMeasurement/>

            <!--Optional:-->

            <prod:preAssembled/>

            <!--Optional:-->

            <com:maximumUsage/>

            <prod:timeSensitive>false</prod:timeSensitive>

            <!--Optional:-->

            <prod:currentRevision>true</prod:currentRevision>

            <!--Optional:-->

            <prod:routerRef/>

            <!--Optional:-->

            <prod:statusRef/>

            <!--Optional:-->

            <prod:bomRef/>

            <!--Optional:-->

            <prod:storageLocationRef/>

            <!--Optional:-->

            <prod:erpBackflushing/>

            <!--Optional:-->

            <prod:erpPutawayStorageLocation/>

            <!--Optional:-->

            <prod:maxFloorLife/>

            <!--Optional:-->

            <prod:maxFloorLifeUnits/>

            <!--Optional:-->

            <prod:maxShelfLife/>

            <!--Optional:-->

            <prod:maxShelfLifeUnits/>

            <!--Optional:-->

            <prod:expirationDate/>

            <prod:allowResetFloorLife>false</prod:allowResetFloorLife>

            <prod:allowResetShelfLife>false</prod:allowResetShelfLife>

            <!--Optional:-->

            <prod:assemblyDataTypeRef/>

            <!--Optional:-->

            <prod:transferItemGroupRef/>

            <!--Optional:-->

            <prod:holdId/>

            <!--Optional:-->

            <prod:incrementBatchNumber/>

            <!--Optional:-->

            <prod:assignSerialAtRelease/>

            <!--Optional:-->

            <prod:removalAssemblyDataTypeRef/>

            <!--Optional:-->

            <prod:selectorNote/>

            <!--Optional:-->

            <prod:requireSerialChange/>

            <!--Optional:-->

            <prod:originalStatusRef/>

            <!--Optional:-->

            <prod:selectorActivityRef/>

            <!--Optional:-->

            <prod:maskGroupRef/>

            <!--Optional:-->

            <prod:lastReleasedDate/>

            <!--Optional:-->

            <prod:inventoryAssemblyDataTypeRef/>

            <!--Optional:-->

            <prod:drawingName/>

            <!--Optional:-->

            <prod:notes/>

            <!--Optional:-->

            <prod:timeBasedComponentType/>

            <!--Optional:-->

            <prod:consumptionTolerance/>

         </mep:Request>

      </mep:createItem>

   </soapenv:Body>

</soapenv:Envelope>

Regards,

Sergiy

Answers (6)

Answers (6)

Former Member
0 Kudos

Ok got it.

Thank you Sergiy, Chandan and Prashant.

I was able to get answers to all my questions.

Closing this thread as of now.

I do have questions regarding the development of custom screens, but will create a separate thread for it. Please reply.

Regards,

Gita

Former Member
0 Kudos

Hi All,

I know this thread is closed.

But I am not able to use the web service for inserting custom data.

I created a custom data for material in custom data maintenance and while creating the web service I am trying to add this custom data value:

<prod:customData>

               <name>PROD_ENG</name>

               <!--Optional:-->

               <value>ANDY PIERCE</value>

            </prod:customData>

The material is not getting created and I get error

java.lang.IllegalArgumentException: TypeNotRecognized

What can be the reason?

Former Member
0 Kudos

Hi Sergiy,

There are multiple lists in the request structure. 1 such list is:

<prod:itemShopOrderTypeList>

               <!--Optional:-->

               <prod:itemRef>?</prod:itemRef>

               <prod:routerRef>?</prod:routerRef>

               <prod:shopOrderTypeRef>?</prod:shopOrderTypeRef>

            </prod:itemShopOrderTypeList>

This has ItemRef, routerRef, and shopOrderTypeRef values. I need to know the format for specifying the values.

We need to load 1000 materials, either together or one by one. Mostly it will be 1 request per material. Was just trying to estimate how much time it will take.

0 Kudos

Ref is a value of HANDLE field of the object's table. For example, itemRef = ItemBO:SITE,MATERIAL,REVISION.

former_member206397
Contributor
0 Kudos

Hi Gita,

In you Request structure you will get list for itemAlternateList, itemLocationList, itemDpmoList,itemShopOrderTypeList, documentList and transferDataList and your item is only one.

Please find here the format for ref data  

<prod:itemRef>ItemBO:<Site>,<Item>,<Revision></prod:itemRef>

             

<prod:routerRef>RouterBO:<Site>,<Routing number>,U,<Revision></prod:routerRef>

             

<prod:shopOrderTypeRef>ShopOrderTypeBO:<Site‪>,PRODUCTION (If it is production order) </prod:shopOrderTypeRef>

Please try with it and I think it will work for you.

Thanks

Chandan

Former Member
0 Kudos

Thank you Sergiy,

Yes it worked.

Now I just need to know if I want to add these lists with REF items, how do I mention the value?

what is the format for it?

Also, can I use web services to load my initial Material list? Like, at the begining of my project, I want to load some 1000 materials from PI, making use of web services, is a good choice? Is there a limit of items?

Regards,

Gita

0 Kudos

Which REF items?

Yes, you can use the WS to load whatever materials.

1000 materials in the one request? Not sure, because of possible limitation of the lenght of the request. If one by one, then I guess no problem.

Former Member
0 Kudos

Thank you Chandan,

But my landscape here does not include MII at all. We have mainly 2 requirements:

1) ECC sending material details to PI using IDOCs, and PI using the PAPI WS to load the materials to ME.

     The Issue I am facing here is the web service I am using, ItemConfigurationServiceWS_WS_PAPI_BASIC_Service, CreateItem gives me some weird exceptions and expects me to enter the optional fields also as a mandate, else it does not execute. I tried entering the mandatory fields: Site, item, revision, description, lotSize, timeSensitive. Have you also faced a similar issue? I am testing my web service using SoapUI

2) I have to create some custom screens, using SAP ME SDK which use the Material, operation, workcenter data existing in my SAP ME. and also want to post data back to SAP ME.

     The issue here is that I do not know how to do this. I read through a lot of articles and guides and now know how to create and deploy the UI extensions for ME. But the question for me is how to use the data existing in SAP ME using eclipse, and how to post this data back? Do I need to use the API s or can I simply do it by querying the SAP ME WIP database from Eclipse?

Regards,

Gita

tim_drury
Active Participant
0 Kudos

What is the error you get when you call the ItemConfigurationService web service?

former_member206397
Contributor
0 Kudos

Hi Gita,

I have tested the ItemConfigurationService ->

      <productdefinition:item>TEST_ITEM_01</productdefinition:item>

      <common:revision>A</common:revision>

      <common:description>Test Item</common:description>

      <productdefinition:itemType>MANUFACTURED_PURCHASED</productdefinition:itemType>

      <productdefinition:createTrackableSfc>

        <!--false-->

      </productdefinition:createTrackableSfc>

      <productdefinition:quantityRestriction>

        <!--ONLY_1-->

      </productdefinition:quantityRestriction>

      <productdefinition:collectParentSerial>

        <!--false-->

      </productdefinition:collectParentSerial>

      <productdefinition:collector>

        <!--false-->

      </productdefinition:collector>

      <productdefinition:lotSize>1</productdefinition:lotSize>

      <productdefinition:quantityMultiplier>

        <!--10-->

      </productdefinition:quantityMultiplier>

      <productdefinition:panel>

        <!--false-->

      </productdefinition:panel>

      <productdefinition:unitOfMeasurement>PCE</productdefinition:unitOfMeasurement>

      <productdefinition:preAssembled>

        <!--false-->

      </productdefinition:preAssembled>

      <common:maximumUsage>

        <!--10-->

      </common:maximumUsage>

      <productdefinition:timeSensitive>false</productdefinition:timeSensitive>

 
in WIP database you will get the table called "ITEM" where the data will be stored when item is created successfully and related more tables are ITEM_ALTERNATE, ITEM_MASTER, ITEM_DPMO, ITEM_GROUP, ITEM_GROUP_MASTER, ITEM_LINK, ITEM_LOCATION.

2) To show the SAP ME data related to Material, Operation, workcenter  in custom screen you can use ME PAPI WS  also, there are list of ME PAPI WS available to send the data back in ME. You need to open the PAPI WS wsdl URL in wsnavigator and you will find the list of operations for each PAPI WS. As per your requirement if you do not find the particular operation for a service then you can think for ME WIP database table call but before that you need to find out particular table from the list.

Thanks

Chandan

Former Member
0 Kudos


Thank you Prashant and Sergiy,

I did get a list of available web services for ME.

Actually my client wishes to use ME but not MII. Our target is to send Material Master data from ECC to ME using IDoc and some other middleware technology, like PI or IBM websphere message broker. We plan to call SAP ME web services from this middleware.

Also, we want to create some custom screens and show them on the ME navigation panel just like we can see the material, shop orders etc.

Is this possible? and how?

Sorry for too many questions, but I am really new to ME.

Regards,

Gita

0 Kudos

Hi Gita,

Customizations to SAP ME can be implemented by means of SAP ME SDK.

Regards,

Sergiy

former_member206397
Contributor
0 Kudos

Hi Gita,

In MEINT workflow ME service call now depends on the version of ME you are using. In ME 6.0 you will find the ME Web Services for sending all ECC Master data and transactional from MEINT to ME by the parameter called  Service "Transaction Parameter". The ME Web Services are available with the below URL

http://<Host>:<Port>/manufacturing-services/<ServiceName>

and the available service names are

ProductionService, ApplicationSettingService, BOMService, ItemService, RouterService etc.

But In 6.1.2 what I have seen is that services are replaced by API call in MEINT workflow configuration.

There are also PAPI web services available. You need to go to

NWA-> Application and Scenario Communication -> Single Service Administration

Then put  in find *papi* and Search by: Internal Name

You will get the list of PAPI WS and if you select one at the bottom you will get WSDL URL. You can also test it in wsnavigator.

Thanks

Chandan

Former Member
0 Kudos

Thank you Sergiy,

I have not attended the SAP ME SDK Training in the past. Will I still be able to make the changes? Is there any help or tutorial document available for such changes?

Also, I did install the SDK on my system and also got the workspace created on my system. The workspace had a lot of folders, like, com.sap, org.eclipse. But I do not know where can I find the ME pages that we see on the screen.

The navigation panel page - manufacturing/com/sap/me/system/client/AppFrame.jsp?null and

The Material Manintenance page - manufacturing/application/setup/ItemMaintenance?ACTIVITY_ID=PD060

Can I find them in the workspace folder I got imported into my eclipse?

Regards,

Gita

Former Member
0 Kudos

Hi Gita,

Your understanding is correct, as far as the integration is concerned using SAPMEINT for all idocs coming from SAP ECC to SAP ME, even for MATMAS03 idoc.

Other Answers

1) You may lookup for the available SAP ME webservices in Netweaver administrator. Launch the following URL.

http://<server>:port/nwa

Search for Single Service Administration -> Service Definitions and then filter on namespace column with value http://sap.com/xi/ME. You will get the list of available webservices.

2) Starting SAP ME 6.1.x, there is a possibility to consume SAP ME PAPI's from SAPMEINT because of the co-located environment (SAP ME and SAPMEINT running on same server). There is no need of calling SAP ME webservices.

There is a action block available in SAPMEINT to call ME PAPI's named SAPME PAPI Interface. You can browse for the available PAPI's from the configuration dialog and choose the required PAPI. Then in the expression editor assign the required request structure.

3) MII and SAPMEINT is a must to do the integration from SAP ECC to SAP ME.

Optionally you may choose to write a java plugin instead of using SAP ME PAPI Interface action block. You may refer to the following blog for details

Hope this helps !

0 Kudos

Hi,

Some comments on the answers from Prashant:

1) SAPMEINT mainly uses the web service with "ERP" in the names and they are bound to /manufacturing-erpservices context unlike other ME web services bound to /manufacturing-services context.

To find out which web service is used for a specific workflow in SAPMEINT, you should check Workflow Configuration in SAPMEINT. There is "Service transaction parameter" value for each workflow. "serviceUrl" parameter defines the actual URL of the web service.

2) Utilizing ME PAPI is a default solution configured by MECTC in SAP ME 6.1.

Regards,

Sergiy