Technical Articles
Creating a Custom Instance of SAP Asset Manager Application
SAP Asset Manager is the next generation mobile application for asset management. SAP Asset Manager is based on the /IWFND/ and /IWBEP/ gateway framework and uses oData as the communication protocol with the SAP S/4 Hana or SAP ECC 6.0 backends.
In this blog post we will answer the question of how to copy SAP Asset Manager configuration successfully to create a custom instance of the SAP Asset Manager application for testing purposes on embedded SAP Gateway scenario. Please note that for productive applications, customer instances of SAP Asset Manager are NOT recommended. The SAP Asset Manager application is made to be modular and easily extendable, so it should not be copied into the customer namespace and then used as a productive application. ONLY the SAP standard application should be used as a productive application.
Prerequisites:
- SAP S/4 Hana System: SAP S/4HANA 1610 FPS 03 or higher or SAP ECC 6.0 System: SAP Enhancement Package 7 for SAP ERP 6.0 Support Package 14 or higher or SAP Enhancement Package 8 for SAP ERP 6.0 Support Package SP07 or higher
- Fully functioning Syclo Configuration Panel
- Functioning SAP Asset Manager standard application (backend component only)
- Administrator /IWBEP/ and /IWFND/ role
- Customizing transport
For set up of the SAP Asset Manager backend component please refer to the SAP Asset Manager documentation linked below.
https://help.sap.com/viewer/product/SAP_ASSET_MANAGER/4.0/en-US
In order to make sure that you have a working SAP Asset Manager standard application from the backend component, follow the steps below:
- Open SAP GUI and log into the backend system
- From the SAP Easy Access Menu, navigate to transaction /n/IWFND/GW_CLIENT
- Make sure that the request URI is: /sap/opu/odata/MERP/SAP_ASSET_MANAGER_40/?sap-client=800&sap-language=EN (in this case the application is SAP Asset Manager version 4.0). If you are attempting to copy a different version, just change the version at the end of the path. In addition to this make sure that the client is set to your test client, for the purposes of this blog post our test client is 800 and we are operating in the English language as noted by sap-language=EN. If you wish to operate in another language that parameter will need to be set accordingly
- Set the HTTP Header Request to: Header Name: Accept, Value: application/json (this is for readability purposes)
- Click execute at the top left corner of the screen
- Note the response – the response code should be 200 and there should be numerous entity sets in the body of the response, as there are many entity sets defined in SAP Asset Manager. The response should look something like the following screen shot
This indicates that SAP Asset Manager is configured correctly in the backend, which is required in order to successfully copy the application.
The next sections in creating the copy of Asset Manager are as follows:
- Create model in the customer namespace for each one of the SAP Asset Manager components
- Create service in the customer namespace for each one of the SAP Asset Manager components and bind the models created in Step 1 to the services
- Copy the configuration from the configuration panel
- Run the compare report to find any filters which were not updated in the copy and fix them in the configuration panel
- Register the customer namespace Asset Manager service to the SAP Gateway and test that the newly created application is working correctly in the SAP Gateway Client
Section 1: Create model in customer namespace for all SAP Asset Manager Components
- From the SAP Easy Access Menu in Development Client navigate to transaction /n/syclo/configpanel
- If a login screen appears, login with your backend user name and password
- From the configuration panel home, under oData Channel Integration Settings click the oData Model Configuration link
- Set the filter at the top of the page to the standard application and expand the hierarchy on the left. This will show all of the services that have to be re-created in the customer namespace in order to be able to copy the application correctly
- Next from the SAP Easy Access Menu navigate to transaction /n/IWBEP/REG_MODEL
- Enter Model Name: ZSAP_ONLINE_LOOKUP_EXT_01, Model Version: 1 . Please note that this is the same name in the configuration panel when we expanded the model for SAP Asset Manager with one difference: the /MERP/ prefix is replaced by the customer prefix Z. The suffix 0001 is automatically attached by the system, so it is not necessary to add this.
- Click the Create button
- Enter Model Provider Class: /MFND/CL_CORE_ODATA_V2_MPC – this is a generic model provider class which means that it will be selected in all components of Asset Manager
- Enter Description: Model – SAP Asset Manager Online Lookup Extension Service – this description can be anything you choose
- Click the Save button at the top of the screen
- In the Create Object Directory Entry prompt click local object
- The model object is now saved
- Click the back button
- Repeat Steps 6 – 13 with the following model names and descriptions, the Model Provider Class is exactly the same as the one we entered in Step 8 for all models:
Model | Description |
ZSAP_ASSET_CENTRAL_EXT_20 | SAP Asset Central Extension 2.0 |
ZSAP_ASSET_MANAGER_40 | SAP Asset Manager 4.0 |
ZSAP_CREW_MANAGER_12 | SAP Crew Manager 1.2 |
ZSAP_FIELD_OPER_WORKER_12 | SAP Field Operations Worker 1.2 |
If SAP Asset Manager with Meter Management is being copied the following additional model is required
Model | Descriptionl |
ZMISU_SAP_ASET_MANAGER_40 | SAP Asset Manager 4.0 – ISU extension |
Section 2. Create oData Service for each one of the SAP Asset Manager components and bind the previously created models
- Starting from the SAP Easy Access menu navigate to transaction /n/IWBEP/REG_SERVICE
- Enter Technical Service Name: ZSAP_ONLINE_LOOKUP_EXT_01 and Servicer Version: 1
- Click the Create Button
- Enter Description: SAP Asset Manager Online Lookup Extension
- Enter Data provider class: /MFND/CL_CORE_ODATA_V2_DPC, like the model provider class at the creation of the models, this data provider class is generic and will be used for all of the services that we will create
- Click the Save Button at the top
- In the Create Object Directory Entry prompt click local object and then the save button
- Now your service is saved and it is time to assign the model to it
- Click the Assign Model button and enter the name of the model we created in Section 1, step 6
- Click the green checkmark button
- Click the Save button at the top of the screen
- The changes have been saved
- Click the back button
- Repeat Steps 2 – 13 with the following technical services and descriptions:
Technical Service | Description | Model |
ZSAP_ASSET_CENTRAL_EXT_20 | Service Definition – SAP Asset Central Extension 2.0 | ZSAP_ASSET_CENTRAL_EXT_20 |
ZSAP_ASSET_MANAGER_40 | Service Definition – SAP Asset Manager 4.0 | ZSAP_ASSET_MANAGER_40 |
ZSAP_CREW_MANAGER_12 | Service Definition – SAP Crew Manager 1.2 | ZSAP_CREW_MANAGER_12 |
ZSAP_FIELD_OPER_WORKER_12 | Service Definition – SAP Field Operations Worker 1.2 | ZSAP_FIELD_OPER_WORKER_12 |
If SAP Asset Manager with Meter Management is being copied, the following additional service is required
Model | Description | Model |
ZMISU_SAP_ASET_MANAGER_40 | SAP Asset Manager 4.0 – ISU extension | ZMISU_SAP_ASET_MANAGER_40 |
Section 3: Copy the configuration from the configuration panel
- Starting from SAP Easy Access navigate to transaction /n/SYCLO/CONFIGPANEL
- If the login screen appears, login with your backend username and password
- From the configuration panel home page, under General Info click on Mobile Application Configuration
- Under the defined applications, click on the application you would like to copy. For our example we will select SAP_ASSET_MANAGER_40
- Click the Copy Button
- Change the New Mobile Application Name to ZSAP_ASSET_MANAGER_40 – deleting the suffix _CPY
- In the Find and Replace section, click in “Find What” and enter _CPY leave the “Replace With” blank. This will remove all of the _CPY from the strings
- Click the replace button – note Target Exchange Object names should look exactly the same as the source
- Again in the Find and Replace section click in “Find What” and enter SAM40, click in “Replace With” and enter ZSAM40
- Click the Replace Button
- Now you should note that the Target Exchange object prefix has changed from SAM40 to ZSAM40
- Click on the oData Service Assignment Tab
- Use the dropdown to select the corresponding service created in Section 2 and click the checkbox. If the checkbox is not selected, the configuration under the particular service will not be copied.
- Click the Copy Button
- If the Prompt for Customizing Request appears, create or select your customizing request and click continue.
- If the copy was successful you will see a green check mark in the upper right hand side of the screen
- Refresh your browser and when you go back into the mobile application configuration, you will see your new application
Section 4: Run the compare report to find out which filter values need to be manually updated
This step is required because the configuration panel copy find and replace does not search inside oData Mobile Data Object(oMDO) Filters. These filters (more particularly filter rules) need to be updated manually. The easiest way to identify the differences is to run the Syclo Application Comparison Report Utility in transaction SE38 which will identify the oMDO and the filter which needs to be updated.
- Starting from the SAP Easy Access Menu navigate to transaction SE38 ABAP Editor
- In the program field enter /SMFND/CORE_MAPP_COMPARE_PROG
- Click execute
- We want to compare 2 oData Applications, so we can disable the entire 4th section “Comparison Options” because they are not applicable. You can do this by clicking on the button outlined and labeled 1 below
- Next select everything in the oData Comparison options which can be done with the button immediately to the right of the variant
- Source Application would be the SAP Asset Manager application we copied SAP_ASSET_MANAGER_40
- Target Application will be the application which we created ZSAP_ASSET_MANAGER_40
- Reference Object Pattern is the prefix of of the Source Application which is SAM40
- New Object Pattern is the prefix of our application which is ZSAM40
- Since we did not make any adjustments in the descriptions we will leave those patterns blank
- In the oData Model Comparison Service Mapping Section, we will need to input the names of our services that we created. For the purposes of this guide we are working with the base SAP Asset Manager. However, if the application you are copying contains the Meter Management extension, or ISU extension, you will have to enter the New Meter Mngr Service pattern which as described above is ZMISU_SAP_ASSET_MANAGER_40
- Click the execute button
- The output of the program is as follows:
- What the program indicates is that the filter rule in the oMDO ZSAM40 Equipment Read Partner Function does not conform to the pattern which we have input, as compared to the standard application oMDO Equipment Read Partner Function. This is accurate because in this rule we can see the oMDO in the target application on the right still states prefix SAM40. This should be adjusted to ZSAM40_PARTNER_FUNCTION.
- In order to do this we navigate to the configuration panel transaction /n/SYCLO/CONFIGPANEL
- Under the oData Channel Integration Settings click on oData Mobile Data Object Configuration
- In the filter select our application ZSAP Asset Manager 4.0
- On the right side expand the hierarchy and select ZSAM40_EQUIPMENT
- Click on Data Filter Tab
- Expand operation Read
- Expand Standard Filter
- Find and select the PARTNER_FUNCTION filter, in the input parameter you will notice that it is still pointing to the standard application
- Click the change button
- Change the input parameter to point to our application ZSAM40_PARTNER_FUNC
- Click the Save Button
- Record the change against your customizing request
- Proceed to correct all of the filters that the Comparison Report Utility presents. There is only 1 informational message that it will present in the Service Header Comparison, which is not a problem that needs to be corrected. Everything in the oMDO Comparison result section needs to be corrected.
- The following section does not need to be corrected:
Section 5. Expose the newly created oData Service to the SAP Gateway
- In the system’s development client starting at the SAP Easy Access Menu navigate to transaction /n/IWFND/MAINT_SERVICE
- Click the Add Service button at the top of the screen
- Enter System Alias: LOCAL
- Enter Technical Service Name: ZSAP_ASSET_MANAGER_40 – the service we created for our new SAP Asset Manager application. If SAP Asset Manager with Meter Management extension is copied enter the ISU service ZMISU_SAP_ASSET_MANAGER_40
- Click the Get Services Button in the upper left hand side
- Our ZSAP_ASSET_MANAGER_40 or ZMISU_SAP_ASSET_MANAGER_40 service should appear in the Selected Backend Services. If the service appears select it and Click the Add Selected Service Button
- On the next screen click the Local Object button
- Uncheck the Set Current Client as Default Client in ICF Node – we will be setting up a system alias to the test client in the next step
- Click the green check mark button, you should get a message that you are creating the service in the customer namespace
- Click the green check mark button again and you should get a message “Service ZSAP_ASSET_MANAGER_40 was created and its metadata was successfully loaded”
- Log in your system’s test client. In this example the test client is 800 – the client number may be different for your system
- From the SAP Easy Access Menu again navigate to transaction /n/IWFND/MAINT_SERVICE
- Click the filter button at the top of the screen
- In the filter Technical Service Name Type: ZSAP_ASSET_MANAGER_40 which is the service that we created, and External Service name ZSAP_ASSET_MANAGER_40 which is the external application name we selected when exposing the technical service to the SAP Gateway(see screenshot after step 8). If SAP Asset Manager with Meter Management extension is being copied enter ZMISU_SAP_ASSET_MANAGER_40 instead
- Click the green check mark and select the service we added ZSAP_ASSET_MANAGER or ZMISU_SAP_ASSET_MANAGER_40 in the case of Meter Management component
- Click on the Add System Alias button
- An information prompt will appear letting you know that entries are not recorded against a change request which means this alias will need to be set in every system after the transport has been imported
- Click the green checkbox
- Click the New Entries button at the top of the screen
- Enter the Service name followed by the wild card character ZSAP_ASSET_MANAGER_40* and press the F4 button on your keyboard to pull up the selection help, or ZMISU_SAP_ASSET_MANAGER_40* in the case of Meter Management component
- Double click on the service to select it
- Enter the system alias – this is a self referencing RFC connection that is maintained in the system. For example if our system name is ABC and we are in test client 800 self referencing RFC connection defined should be referring to system ABC test client 800.
- Select the checkboxes Default System and Metadata Default
- Hit Enter; the system should populate any additional fields
- Click the Save Button at the top of the screen
- Record the change against your customization request and hit the green check button
- Click the back button navigating back to the Activate and Maintain Services transaction
- Click the SAP Gateway Client button
- Change the request URI where format = xml, set it to format=json
- Click the execute button
- You should receive the service document of your new application. This indicates that you have successfully set up a copy of SAP Asset Manager 4.0 in your system
Please note the URI that is being called from the gateway client includes the newly created application and this URI needs to be added to the mobile destination in the SAP Hana Cloud Platform Mobile Services if you would like to do testing from the front end mobile application
Alex, Nice Blog.. very well explained about Asset manager customizations and various configurations.
Alex, Couple of questions please -
Hi Prashanthi
Thank you for your questions, you will find the answers below.
The standard SAP Asset Manager can be customized in a robust way and should be used as the productive application. You can still use custom instance applications for your testing.
Hi Alex Topalov,
If a customer absolutely must have two different Asset Manager apps (eg. for vastly different business units) is it still not recommended to have 2 different app config backends?
If not, I presume the only other option is to configure the one backend config set to handle the needs of both frontend apps.
Thanks
Michael
Hi Alex,
Thanks for this blog, it is very helpful.
When I run the compare report /SMFND/CORE_MAPP_COMPARE_PROG, I have corrected all filter configurations. How ever, I stil see some things to be corrected that I haven't been able to find and (it seems) do not share a counter part in the report:
Thanks in advance.
Regards,
Gonzalo.
I have found it. I think the configuration is OK and somehow the report is not "capturing" the new OMDO pattern (ZSAM2010) when it comes to OMDO dependencies.
Hi Alex - are there any changes to the procedure for making a copy of OOB SAM 2110? I am guessing not, but just wanted to check.
Thanks,
Scott
Hello,
currently we are copying the SAP Service & Asset Manager 2210 for different tests in our System.
But after copying there are many Entities missing. This can be seen in /n/IWFND/MAINT_SERVICE --> show Metadata of Service.
For Example everything from Notifications & WorkOrders - also refreshing Metadata does not help.
This can also been seen in /n/IWBEP/REG_SERVICE:
Did we forget anything in this process?
Thank you and Regards
Björn
Hi Björn,
Did you resolve your issue? I am facing the same error when copying SSAM 2305.
Best regards,
Gonzalo.