this  brief blog is dedicated to EAM planers who often miss the capability to copy components within the plant maintenance order.


This has been an missing quite some time and is available Now within the EAM Web User Interface.


This new feature is all about simple user Interaction and ease of use with the following benefits

  • No retyping of vendor specific attributes like contract number , contract item , supplier
  • No retyping of user / order specific attributes unloading point, recipient
  • No retyping of component longtext


via this new features planers can now work more efficiently.


You find this new feature  in Innovation Discovery under the Innovation

"Enterprise search" functionality plus Master Data Information Center within the SAP Enterprise Asset Management solution"

here you find:

  • Demo
  • Screenshot
  • PDF Document summarizing the innovations and how to activate


i hope you enjoy this new feature





SAP is attending the Esri User Conference and showcasing spatial solutions - also in the business context of SAP EAM. Please read this blog.


About BPML in SAP PM

Posted by PS R Jun 13, 2016

Hi All,


Within this blog,I intend to share in brief on "Business Process Master List" in SAP PM. This will guide on how to prepare a BPML and it will be useful to all.


Business Process Master List SAP PM
Business ScenarioBusiness ProcessesProcess StepTransactionActivity
Master Data
Functional LocationCreate Functional locationIL01IL01,02,03_ Create-change- display Functional Location.Doc
Change Functional locationIL02
Display Functional locationIL03
List Display - Functional LocationIH06IH06_List Display- Functional Location.Doc
EquipmentCreate EquipmentIE01IE01,02,03_ Create-change-displayEquipment.Doc
Change EquipmentIE02
Display EquipmentIE03
List Display - EquipmentIH08IH08_List Display-Equipment.Doc
Work CenterCreate WorkcenterIR01ir01,02,03_Create-change-display Work center.Doc
Change WorkcenterIR02
Display WorkcenterIR03
Bills of MaterialsCreate Equipment BOMIB01IB01,02,03 _ Create Equipment  BOM
Change Equipment BOMIB02
Display Equipment BOMIB03
Create a functional location BOMIB11IB11,12,13_ Functional location BOM
Change a functional location BOMIB12
Display a functional location BOMIB13
Plant MaterialCreate Material MM01MM01.02.03Create-Change-Display Material .Doc
Change materialMM02
Display material MM03
Measuring PointCreate a measuring pointIK01IK01- create measuring point
Create notificationIW21IW21,22,23_Create Notification
Change notificationIW22
Display notificationIW23
Maintenance Order
Create Maintenance orderIW31IW31,32,33_Create Order
Change Maintenance orderIW32
Display Maintenance orderIW33
Preventative Mantenancepreventive maintenance
Create General Maintenance task listIA05IA05-Create General maintenance task list.Doc
Create a functional location tasklistIA11IA11-Create functional location Task list.Doc
Create a equipment tasklistIA01IA01-create equipment task list.Doc
Created single cycle planIP41IP41-Single Cycle Plan.Doc
Create a strategy planIP42IP42- Strategy based Plan
Create a multicounter planIP43IP43- Multi counter plan
Schedule Preventive maintenanceIP10IP10_Schedule maintenance plan
List of Notification ( Multilevel display )IW30
List of Orders ( Multilevel display )IW40
PMIS - Damage AnalysisMCI5
PMIS - Breakdown analysisMCI7
PMIS - Cost AnalysisMCI8
Period End Closing
Actual cost determinationKG12
Settlement of orderKO88





With Regards,



This subject is of a frequently asked nature and the documentation of knowledge I have on the subject, has been pending since long. When I rebuilt the first infostructure (S070) around 3years ago, my learning started on this.  As you know learning does not happen in a single event, it took considerable time to know about various aspects of LIS rebuilding. I had been replying to queries with the then knowledge I had. I delayed documenting of the same until now, with an objective of content enrichment. The stuff here answers the FAQ, most of our SAP-PM users / consultants ask about.

So the objective is to

Share my knowledge about how I rebuild SAP-PM infostructures whenever need arises.


I understood the LIS tables this way:

  • LIS, namely the Logistic Info Structure is a table having rows with aggregated values of data from regular tables.
  • Means, when users create Notifications, each Notification data is stored in tables such as QMEL, QMFE, QMSM, QMUR, QMMA and so on, as one row for each Notification. Similarly in case of Orders the data is filled in tables AUFK, AFIH, AFVC, AFRU and so on. These are the regular tables I am referring to as.
  • Now about how the LIS is related to these tables? For example my QMEL table is having 10,000 rows of Breakdown Notification, which were created on say 100 Equipments, then the related LIS namely S070 will be containing the summery data for these 100 Equipments month-wise. Means here the rows will far less than 10,000, because these give Equipment-wise totals for a period. Hope you could follow.
  • And then, how this LIS table is filled? Beginners often expect to see the data changes in LIS related tcodes (PMIS reports in our context) as soon as a Notification attains NOCO. But it does not happen so. A standard LIS update frequency is set via tcode OMOS which usually is Monthly. We can change it to as frequent as Daily in these settings. (But it is a rare practice to alter).
  • Here comes the need of Re-build.
    • Suppose there is a business requirement in the last days of a month to see the upto-date PMIS reports on Breakdowns like MCJB, MCJC, MCI4 etc. including the current month then, I would need to update the LIS S070 manually.
    • OR if I doubt inconsistencies in the data displayed by these PMIS tcodes then I would need to rebuild the corresponding LIS.

           In cases like these the present post helps.

  • And most importantly, the rows of a LIS with version value '000'  only are considered for the PMIS reports. (This applies to LIS based reports of other modules also)



The Objects of Re-building Infostructure in SAP-PM:

The tcodes involved here are OLPM  and  OLIX .

Before we see what these tcodes are about, we see the LIS list relevant to SAP-PM. These are:


(Expecting not to receive any queries here on specific LIS of the above list, as this is not the present topic)


  • OLPM is a tcode used to set-up a version for PM Infostructures whose list is shown above. Now we see what is a version in LIS table:
  • A version is a 3char field in the LIS table. Rows with version value '000are meant for reports. In the process of rebuilding, often we create temporary versions with values like '&(0' , '&(1' .  I repeat here, for PMIS reports only the rows with version value '000' matter. There is no role of rows with version values other than '000'  those are existing in the LIS table.
  • Coming back to OLPM tcode, it is a tool to set up a version --> A temporary version or a reports version ('000').


Then tcode OLIX is used to:

  • Delete a version from a Infostructure. (Option Delete version)
  • Copy a source version to a Target version. (Option Copy version)
  • Copy a source version to a Target version and at the same time delete the source version. (Option Copy + delete)


OLIX tcode is common across LIS of all SAP modules for the purpose of above listed functions, but OLPM is exclusively for SAP-PM and every LIS of other modules will have its own tcode equivalent to OLPM.

Now about How the LIS is re-built

Suppose I am in a situation already described as an example in the beginning, where I can not wait for OMOS scheduled update of LIS to happen and I need to do it manually say for LIS S070. (Another example situation can be an inconsistency in PMIS reports, which could force you to re-build the LIS).

Step1 OLPM

olpm best practice.JPG

  • Save under version : We gave temporary version name &(0 . In case rows already existing in LIS with this version value, system asks you whether to delete, you should accept this OR you should give a new version name such as &(1 .
  • Number of Parallel processes: Put value 1 here.
  • Block all documents : Better Tick this to prevent creation of more data by users during this re-build, which would not reflect in the PMIS reports. For example during this run with with this Tick, if you create any Notification it will be prevented from Saving by throwing an error message like this:


(It is a different mater that, such Notification numbers are lost forever. You will not find this Notification number in the system. And the next successful Notification number will be a number next to this number. )

  • Now Execute .

My experience here is that this step is the time consuming one. My system takes about 90 to 120 min for this task where the related tables have around 2000K records. Then it displays the information like this one.

olpm info.JPG

Step2 OLIX

Now you are ready with a Temporary version records to be copied to Final version namely '000'.

  • As a first step here, use the Delete version option > Give value '000'  in the field > Give value '000' in the Source version and Execute. With this act you are deleting all '000' rows from the LIS. If this is not done your present rebuild will double the statistics in the PMIS reports.
  • Now come back to the initial screen of OLIX and click on Copy + delete. In the next screen ensure that you have &(0 your temporary version in the Source version field and 000 in the Target version field. See this picture.

olix final.JPG

  • Now Execute .

This step will not take much time (under 5 min). You get information similar to the above picture in the case of OLPM.

That's all, the Re-build is complete.


I have experimented the following way by reducing the role of OLIX.


  • First I deleted the version 000 using OLIX.
  • Then I executed OLPM in the same manner as explained above buy with Save under version as '000' . This means without creating a Temporary version and copying it to Target version '000' in OLIX, we are creating '000' directly using OLPM.
  • I found no issues.
  • But it is believed that above mentioned procedure of Temporary version Copying to '000' version using OLIX is believed to be the Best practice.


I think the job is done and it is time to stop.  Hope members will be benefited with this write-up.


Here is a related post after knowing the above concepts:  Hierarchical Equipment Availability Calculations on F/Locns


Author's other posts




'Update Order user-status upon Save of Notification or Order' : Obviously we are talking about linked Notification-Order Scenario .


Dear Friends,

To my approximation I gave around 150 enhancement solutions so far while answering the queries. Among these I felt like documenting few (7 so far) because of their complex and interesting nature. I felt that the present one too is of similar nature and forum will be benefited if it is presented in the form of a technical blog.


So here it is:.......


It is about a recent call for help, where the member was seeking solution for her requirement which was expressed as:  "When particular Task  is open in the Notification, how to update the user status in IW31/32 on Service Order . Please Suggest." .

I felt this is another opportunity to contribute few lines of enhancement code to the forum. I gave the solution ie., the user-exit and the code. The code reads the System status of the Notification, if it finds OSTS (outstanding task) then it sets a specific user status (say ABCD) to the Order, obviously during Save (of Order as the requirement sounded).

The member then clarifies like: "No no, I do not want during Order Save, It to happen while Notification Save".  Then I gave that solution too, other user-exit, and corresponding code obviously.

So here we are going to see both the solutions for

  1. Updating Order User-status during Order Save if Notification has outstanding tasks. (user-exit IWO10009,  F/exit EXIT_SAPLCOIH_009)
  2. Updating the Order User-status during Notification Save if Notification has outstanding tasks. (user-exit QQMA0014,  F/exit EXIT_SAPMIWO0_020)


Before we see the individual solution codes for both of these, let's first look at the logic.

  • The start point is to know whether any outstanding Task is there in the Notification. This means Notification system status will have OSTS value.
  • To know this we need to use function module STATUS_READ. The input to this fm is Notification OBJNR value which we get from QMEL or VIQMEL table.
  • But the output from the above fm will be in code (not in text format OSTS). We need to know this code for our coding. This is known from table TJ02T when we input value 'OSTS' in the field 'TXT04'  and 'E' in field SPRAS. We get the value as 'I0158' . (This common for you, me and for all others)
  • So in the code we need to tell to update the Order status to 'ABCD' if the Notification user status code is 'I0158'.
  • We need to use function module 'STATUS_CHANGE_EXTERN' to update the Order user-status.
  • This fm works OBJNR value of Order as input which is
    • Readily available as a field in the Import structure (caufvd_imp) of the user-exit if it is case1 above
    • Need to get it from table AUFK if it is case2..
  • But this fm too needs code only not the text of user status (ABCD) to set it in Order. So how do we get it?
  • We get it from table TJ30T by inputting the Status profile of Order in field STSMA, value 'ABCD' in field TXT04 and value 'E' in field SPRAS. Let's assume we got this as 'E0004'.
  • Now we are ready for coding.



If it is the case1, ie., Updating Order User-status during Order Save if Notification has outstanding tasks, we need to put the following code in include ZXWOCU07.

And the code is:



      l_objnr TYPE j_objnr.


SELECT SINGLE objnr FROM viqmel INTO l_objnr WHERE qmnum = caufvd_imp-qmnum.



     objnr       = l_objnr

     only_active = 'X'


     status      = i_stat.


LOOP AT i_stat.

   IF i_stat-stat = 'I0158'.




         objnr       = caufvd_imp-objnr

         user_status = 'E0004'

         set_inact   = ' '.




If it is case2: Updating the Order User-status during Notification Save if Notification has outstanding tasks, we need to use the code below in the include ZXQQMU20.


The code is:



        l_objnr TYPE j_objnr.


   SELECT SINGLE objnr FROM aufk INTO l_objnr WHERE aufnr = i_viqmel-aufnr.




       objnr       = i_viqmel-objnr

       only_active = 'X'


       status      = i_stat.


   LOOP AT i_stat.

     IF i_stat-stat = 'I0158'.




           objnr       = l_objnr

           user_status = 'E0004'

           set_inact   = ' '.









  • Though already mentioned in the logic points above, I want to remind about the 'E0004' code used in the codes above. you have to get this value from table TJ30T by inputting your Order status profile in field STSMA, the user-status to be set in Order in field TXT04 and  'E'  in field SPRAS.
  • Both the codes I tested before posting to that discussion. If you are going to use, test well for its satisfactory working in the Dev servers.


.....And thus we arrive at the end of this post..




Thank you and Regards


Dear Friends,

Today I am having another piece of knowledge to preserve which is a non-routine solution worked-out while trying to help one amongst us. Let's see the What and Hows about it.



Our friend has configured a Measuring Point Category 'C'. He wants the system should allow users to Create (IK01) only Measuring Points but not Counters.


What is the issue?

Functionally this looks very much possible through the Customizing tcode OIMRC  where we can hide fields using MeasPointCategory  as the Influencing field. So he selected Hide radio-button for field IMPT-INDCT (MeasPoint is counter) for the influencing field value as category 'C' .

You might have understood that the whole exercise is to hide the Counter checkbox from IK01 initial screen. 

The result (The issue).

The Checkbox disappears only after we fill the MPT category (C) and click on the refresh button in the application toolbar of IK01 initial screen. Means user is free to create the Counter on any Mpt category inspite of efforts to hide the Counter checkbox through customizing.


So how do we achieve this?

First I explored the available IMRC user-exits but none was found fitting into this need. Then I though to explore the Implicit Enhancement Point in the IK01 program namely SAPLIMR0. After few minutes of working, I could succeed.


Here is the Solution

I created an Enhancement named ZPM_INDCT  at Line3  in the include LIMR0F18  (of the above program i.e., SAPLIMR0).. Then I put a simple code shown below  and activated the enhancement.



IF impt-mptyp = 'C' and impt-indct = 'X'.

   MESSAGE: 'Creating Measuring Point as Counter is prohibited' type 'E'.




With this code in place, when user tries to Enter inside the IK01 Create screen with Tick in the Counter checkbox and with vale 'C'  in the MeasPtCategory field, he gets an error pop-up shown below and he will have to exit, rerun IK01 and correct himself.



It is a very simple job for a beginner of ABAP. . For the convenience of implementation I am giving herewith  the implementation screen of the Include.




So that's all. Hope this piece of knowledge will be found of help to few members.

Author's other posts







As a functional, its always important to know the tables in SAP. Specifically when it comes to support projects, it becomes more challenging to find the exact table where your transaction data gets stored. There is an excellent document by Maria on this topic.How to find ABAP Tables and Fields


Through this blog, I would like to share one simple way to know the tables which get populated when you perform any transaction in SAP.


What do you need to know?


You just need to know Archiving objects in SAP PM/EAM. I have listed them as below


PM_IFLOTFunctional Locations
PM_IMRGMeasurement Documents
PM_MPLANMaintenance Plans
PM_NETObject links, master data
PM_OBJLISTSerial Number History
PM_ORDERService and Maintenance Orders
PM_QMELMaintenance Notifications




For analysis on some issue, you want to know all CO tables which are updated once you do Time confirmation OR perform goods issue against an order?


Lets find it using SARA


1) Execute T-code SARA




2) Enter Archiving object PM_ORDER. Press Enter & Click on Database tables.




3) As shown in above screen, you will see two radio buttons Tables with deletion & All tables.Check & Browse the list of tables for relevant information based on table descriptions. In our example scenario, we need to know CO tables. Following screenshot shows some of the CO tables. LIkewise you can scroll down for more list of tables. & check these tables in another session by accesing SE16N transaction.




Advantages of using SARA for finding the tables


1) As a functional, you can troubleshoot any process related issues, by checking its relevant tables from the complete list using SARA

2) If you are writing a Functional Specs, you can get detailed information on table & articulate your FS in order to have effective & time saving communication

3) Easy way to find object linked tables when it comes to cross-modules integration.

4) As shown in above screenshot, you can take a backup for these list of tables for your future reference.


Hope you find it useful for your day to day activities in your SAP projects.


Good Luck.


Best Regards,


Hello Friends again,

Thought of preserving a solution evolved while helping a member in a recent discussion



To Control Order Release Authorizations using user-exit IWO10002 .

Order Releasing authorities at various levels will have their own limits for Releasing an Order (sometimes called DOP or Delegation Of Powers). Here we are discussing a situation where the Plan Costs should not go beyond the respective limits assigned to the users for Releasing an Order.



The Solution:



Create a Ztable (say ZPLANCOST) wtih TMG (Table Maintenance Generator to update the Table Entries)


Do not forget to enter the currency Reference fields as shown below.



Have the entries, UserIds vs the Allowed limit of Plan Costs for Release. like shown below


(The column heads User Name and Period value are coming from the data-elements we used in ztable.)




Put this code in include ZXWO1U02 of user-exit IWO10002.

DATA: v_stat TYPE char1.
SELECT SINGLE iphas FROM afih INTO v_stat WHERE aufnr = caufvd_imp-aufnr.
IF v_stat = '0'.
DATA:v_cost     TYPE bp_wpl,
        v_wrt      TYPE bp_wpl,
        v_wrt01    TYPE bp_wpl,
        v_wrt02    TYPE bp_wpl,
        v_wrt03    TYPE bp_wpl,
        v_wrt04    TYPE bp_wpl,
        v_wrt05    TYPE bp_wpl,
        v_wrt06    TYPE bp_wpl,
        v_wrt07    TYPE bp_wpl,
        v_wrt08    TYPE bp_wpl,
        v_wrt09    TYPE bp_wpl,
        v_wrt10    TYPE bp_wpl,
        v_wrt11    TYPE bp_wpl,
        v_wrt12    TYPE bp_wpl.
SELECT SINGLE cost FROM zplancost INTO v_cost WHERE uname = sy-uname.
SELECT SINGLE wrt01 wrt02 wrt03 wrt04 wrt05 wrt06 wrt07 wrt08 wrt09 wrt10 wrt11 wrt12
FROM pmco INTO ( v_wrt01, v_wrt02, v_wrt03, v_wrt04, v_wrt05, v_wrt06, v_wrt07, 
v_wrt08, v_wrt09, v_wrt10, v_wrt11, v_wrt12 ) WHERE  objnr = caufvd_imp-objnr AND 
wrttp = '01'.
  v_wrt = v_wrt01 + v_wrt02 + v_wrt03 + v_wrt04 + v_wrt05 + v_wrt06 + v_wrt07 + v_wrt08 +
  v_wrt09 + v_wrt10 + v_wrt11 + v_wrt12.
IF v_wrt > v_cost.
     MESSAGE: 'Plan costs exceed your DOP limit, Order can not be released.' TYPE 'W' DISPLAY LIKE 'E'.

With this code in place, when the user ABCD_EFGH tries to release an Order (with CRTD status) where the Plan Cost is more than 5000 the system will throw below error (when clicked on REL flag).


Means the user ABCD_EFGH will not be able to release the Order.





We are talking about Plan costs, means we are talking about things after the Order is Saved. If someone tries to Release at the time of Order creation itself with excessive plan costs the code will not stop.


For  this purpose  put the following code also after the above code.

IF sy-tcode = 'IW31'.
MESSAGE: 'Order can not be released while creating. Release Order thorugh ''IW32''.' TYPE 'W' DISPLAY LIKE 'E'.


This throws the error below in the status bar if some one tries toRelease the Order in IW31 itself..



Because we have TMG for Ztable, we will be able to maintain the Table entries in the Ztable (Add, Modify or Delete) in PRD client through SM30.

This solution evolved while my answering the discussion Using Permits to form Release Strategy   The code in the present blog has been improvised to take care of more possibilities of Plan costs.




  • I feel that one valuable thing in the above code is when a member studies and understands the code, he/she understands the table PMCO and its cost fields.
  • These solutions often become significant not for their being able to directly applying and resolving issues, but for triggering ideas and adopting them to our own similar issues. So look for the applications in your own area which could make use of the above solution.




In another case, one of our scn friends wanted a solution 'To stop Release of Refurbishment Order when its Plan cost exceeds 60% the Cost of New material' . The solution code was worked-out, tested and given to him here: Restrict release of refurbishment order, if the Plan cost exceeds 60% or more than cost of new equipment.



Then there was a challenge. The case is :

Order was Created with Components and not released. Now in IW32, if user makes changes to components tab like altering quantities OR adding more component lines the, this will immediately not reflect on Plan costs. So Order will get Released if the new Plan Costs (to be after save) is more than the limit of the user. To take care of this the following code needs to be put after the above codes.

IF sy-tcode = 'IW32'.
   TYPES: BEGIN OF ty_resb,
            matnr TYPE resb-matnr,
            rspos TYPE resb-rspos,
          END OF ty_resb.
         wa_resb LIKE LINE OF it_resb,
         lines   TYPE i,
         lines1  TYPE i.
   SELECT * FROM resb INTO TABLE it_resb WHERE aufnr = caufvd_imp-aufnr.
   DESCRIBE TABLE it_resb LINES lines.
   FIELD-SYMBOLS: <fs_resb> TYPE any.
   DATA: BEGIN OF i_resb OCCURS 0.
           INCLUDE STRUCTURE resb.
   DATA:END OF i_resb.
   ASSIGN ('(SAPLCOBC)resb_bt[]') TO <fs_resb>.
   i_resb[] = <fs_resb>.
   DESCRIBE TABLE i_resb LINES lines1.
   IF lines <> lines1.
     MESSAGE: 'First Save the Order before Release.' TYPE 'W' DISPLAY LIKE 'E'.
     SET SCREEN 3000.
     LOOP AT i_resb.
       READ TABLE it_resb INTO wa_resb WITH KEY rsnum = i_resb-rsnum rspos = i_resb-rspos.
       IF sy-subrc = 0.
         IF wa_resb-bdmng <> i_resb-bdmng.
           MESSAGE: 'First Save the Order before Release.' TYPE 'W' DISPLAY LIKE 'E'.
           SET SCREEN 3000.
           LEAVE SCREEN.

This code throws the error below in the taskbar if someone modifies the data in Components tab and tries to release a this point. (Code has taken care of Quantities and new lines, additional requirement if any to be addressed by you).

Capture (1).JPG

...And thus this post started very simple and evolved into a complete solution.

Author's other posts





SAP Predictive Maintenance and Service, on-premise edition, delivers on the potential of the Internet of Things (IoT) and Big Data with out-of-the-box business applications to improve the health of assets and optimize their operation and servicing.


It runs on an extendable, high-performing data processing platform, which can process huge amounts of fused Information Technology (IT) and Operational Technology (OT) data using sophisticated machine learning algorithms. The standard product offers a flexible extensibility concept that allows you to adopt the capabilities you need.

SAP Predictive Maintenance and Service, on-premise edition, brings the power of Big Data and IoT into existing service processes to enable manufacturers of equipment to provide differentiating and higher margin service offerings to their customers and at the same time improve product quality by better understanding root causes of failures.

The IoT Applications of Asset Health Control Center and Asset Health Factsheet comprise the main components of SAP Predictive Maintenance and Service, on-premise edition.


Blog image_1.png


The Asset Health Control Center allows users to analyze a ‘fleet’ of assets to monitor health and prevent failures and initiate preventive counter measures that trigger service or maintenance notifications, orders or requests to enable a closed-loop maintenance and service process.


The Asset Health Factsheet provides a 360° view on a single asset. Together they provide the holistic management of asset health and decision support for maintenance schedules and resources optimization based on health scores, anomaly detection, spectral analysis and machine learning.


Blog image_2.PNG


Operationalized Analytics and Data Science Services

Insight Providers are micro-services that provide analytical and predictive functionalities that are consumed by applications and are shipped as part of the SAP Predictive Maintenance and Service, on-premise edition. Insight Providers consume data from the fusion services and implement the business logic to expose the insights. Customers can productize their domain knowledge as custom Insight Providers to enhance their competitive edge.


Applications are the user interaction shell or ‘mash-ups’ of Insight Providers, which each have one particular functionality, their own UI, and are technically built as stand-alone “micro services”. Customers or partners can develop custom applications and custom Insight Providers on top of the open and extensible SAP Predictive Maintenance and Service, on-premise edition platform.

SAP Predictive Maintenance and Service, on-premise edition, is a scalable, extensible and integrated solution built on a high-performing big data platform that provides:

  • IoT connectivity to enable device management, monitoring and data transfer utilizing various protocols
  • Scalable and cost-effective storage for time series data, cleansing and management utilizing ‘schema-on-read’ which results in minimum effort and maximum flexibility when uploading data
  • Distributed and fault-tolerant processing of batch and streaming data in analyses
  • IoT base services that includes sophisticated predictive modeling and analysis tools for the whole lifecycle of dealing with statistical models, discovering the data, “learning” such models, relearning them and scoring assets
  • Process integration with existing business systems to drive insight to action

Blog image_3.png

SAP Predictive Maintenance and Service, on-premise edition, goes far beyond traditional products and offers a rich set of analytical features, machine learning capabilities and functions for display to apply predictive insights in real time to optimize asset maintenance and servicing. The integration into SAP’s business suite makes it unique and offers customers a complete process from Thing to Insight to Action.



For more, please have a look at:

Technical Objects/Master Data :

Technical Object is a generic term for,

                     1)   A component in a technical system on which a maintenance task is performed (functional location).

                     2)  A physical object that is maintained as an autonomous unit (equipment).

In Other words, Technical Object is nothing but an object which requires Maintenance. In Plant maintenance basically there are two main types of Technical Objects.

Technical objects are maintained in the SAP System in separate master records. If you want to represent part of a technical system as a technical object, you can:

    a) Manage individual data.

    b) Perform breakdown, prepared, or planned maintenance tasks.

    c) Record maintenance tasks that have been performed.

    d) Collect and evaluate technical data over long periods of time.

    e) Track the costs of maintenance tasks.

    f) Track which piece of equipment was installed when at which functional location.

1) Functional Location :

The business object functional location is an organizational unit within Logistics, which structures the maintenance objects of a company according to functional, process-related or spatial criteria. A functional location represents the object at which a maintenance task is to be performed. A functional location represents system area at which an object can be installed. The objects that can be installed at functional locations are called Equipment.

You create a functional location in following cases,

a) When you have to perform maintenance task on a particular part of your complete technical system and record the same.

b) When you have to track the maintenance history of a particular technical object.

c) When you want to represent a major equipment which consist of many small equipment.

d) When you have to monitor Maintenance  Cost.

1.1) Functional Location Category : An indicator that let you differentiate functional locations according to how they are used. Each location category required in the system is described using parameters. The number of functional location categories in a system depends on the number of parameter constellations required

1.2) Structure Indicator for Functional Locations : Numbering of functional Locations will be based on the structure indicator. The Structure Indicator defines the format of the code used to describe the Functional Location hierarchy. The Structure Indicator determines the edit mask and the number of the hierarchy levels when you create functional location structures. The edit mask defines:
  a) the total length of the functional location number.
  b) the lengths of the individual blocks of the functional location number.
  c) the characters allowed.

Structure Indicator



Structure Indicator

Edit Mask


Hierarchy Level

1          2       3         4          5       6          7         8







2) Equipment :

Equipment is a representation of every important and expensive  individual component of a machinery such as Pump, Engine, Motor, Tire etc.

The business object "Equipment" is an individual, physical object that is to be maintained independently. It can be installed in a technical system or part of a technical system. We can manage all types of objects as pieces of equipment. Equipment can also be managed as "assets" in Asset Management.

All types of device as pieces of equipment (for example, production utilities, transportation utilities,test equipment, production resources/tools, buildings, PCs) can be identified as Equipment.

Each piece of equipment is a separate master record and an individual maintenance history can be set for each one. The system manages the master records for pieces of equipment at client level. This means that their numbers are valid for the entire corporate group. This will facilitate,

     a) Defining breakdown / Preventative maintenance tasks.

     b) Measuring specific parameters.

     c) Classification data.

     d) Collection, evaluation, retrieval of data including cost of maintenance, history and usage.

     e) Spare parts planning.

2.1) Equipment Categories : An indicator used to differentiate pieces of equipment according to its characteristic & usage. In SAP, Equipment categories control the number assignment of Equipment. There are two possible options when you are creating a piece of equipment:

a) Internal number assignment

The numbering shall be internal (SAP generated internal number) and is limited to 18 characters.

b) External number assignment

You can enter your own equipment number as per the configured number ranges in the SPRO settings.

2.2) Technical Object Type  : It is the sub-division of the equipment category, which allows a more detailed description. This allows, grouping of pieces of equipment that have the same use. These object types can be alphanumeric.

3) Bill Of Material :

Bill of material is a term used for spare parts which are to be replaced but no history is to be maintained. There are different types of BOM - Production BOM, Maintenance BOM, Costing BOM, Construction BOM. etc. These types of BOM are used for different purpose based on Enterprise business requirement.

In Plant Maintenance, we use Maintenance BOM which is devided into three subcateogires such as

Functional Location BOM, Equipment BOM and Material BOM.

Other Master data in SAP PM

Other than Functional location, Equipment and Bill of Material, there following important master data items in SAP PM module.


1) Task list : List of maintenance task to be performed by a technician to maintain a particular technical object.

Maintenance Task Lists describe a sequence of individual maintenance activities which must be performed repeatedly within a company. These are the master data for Preventative Maintenance Process. There are three types of maintenance task lists that can be distinguished from one another using indicators:

Equipment Task List

Equipment task lists have a specific link to a piece of equipment. Using equipment task lists,

you can centrally define and manage maintenance tasks for your pieces of equipment.

Functional Location Task List

A functional location task list is assigned to a specific functional location. Using a functional

location task list, you can centrally define and manage maintenance tasks for your functional


General Maintenance Task List

General maintenance task lists are task lists that are used for general maintenance tasks.

They do not refer to a specific technical object. Using general maintenance task lists, you can define and manage sequences of maintenance tasks centrally, and use them for


maintenance planning.

2) Measuring Points : Measuring points are physical and/or logical locations ( of a technical object) at which a particular condition is described − for example, the temperature, pressure etc. You can enter measurement readings for each object to be maintained.

3) Measuring Counters : These are resources that enable you to represent the wear and tear of an technical object or the consumption or reduction in its useful life. E.g. Running hours of a machine, Mileage indicator of a vehicle. You can enter measurement or counter readings for each object to be maintained.

Other items like maintenance plans, measurement documents we will cover in Maintenance planning process page.

4) Catalog profile/Code groups /codes : 
Catalog Profile is a combination of code groups from several catalogs. Catalog is a compilation of code groups with related contents.

Code Groups consists of data on problems, damages, causes and Corrective action to be taken or taken is recorded in the system

Codes are the means with which this data is managed in the Plant Maintenance (PM) application components. There is a corresponding code for each set of findings. The codes are grouped together in code groups according to particular characteristics.

5) Warranties : Warranties define the scope of the services that a company performs at a technical object in the event of damage or problems. You can assign warranties to pieces of equipment, functional locations, or serial numbers. When warranty is assigned to a technical object, The system can automatically check when processing a maintenance notification/ order.

6) Classification of Technical Objects : Classification consists of Class and Characteristics. Its basic function is as a repository for all the characteristics the objects can have. These characteristics can then be used to group similar objects together in classes. Classification system is used to maintain technical parameters (as characteristics) of a technical object and to group similar objects in a class. Characteristics will have values for the relevant object. Classification helps in identifying similar objects quickly & easily

Thanks & Best Regards,

Amol Khairnar

SAP EAM - SAP Enterprise Asset Management, SAP Plant Maintenance



You wan to know the currently assigned "Number Range number" to a particular task list type.


Introduction on Number ranges for Task lists in SAP PM :


There are majorly 3 task list types used in PM module such as

A - General task list - External Number range possible ( T-code - OIL4 for defining Internal/External Number range)

T - Functional location task list - External number range NOT possible in standard SAP. ( T-code - OIL5 for defining internal Number range)

E - Equipment task list - External number range NOT possible in standard SAP. ( T-code - OIL0 for defining internal Number range)

( Note : This blog is intended for scenario statement mentioned on top. For more information on Number ranges please refer an excellent document written by Sir Jogeswara Rao.Want to learn about Number Ranges?)


Question :


How will you know NR number assigned to a Task list Type in SAP PM?


Answer :


Option 1 - By going to OIL4/OIL5/OIL0


Lets take an example you want to identify active internal number rage for General Maintenance task list. Go to OIL4 transaction. Here If you click on "NR Status" button, you will see list of all existing Number ranges available for that particular task list type. By looking at NR status column, you can guess which Number range is active currently. But challenge comes in picture when you see more than one Number range is having used numbers in number ranges as shown in following screen.




Work-around - Go to IA05, create a general task list, if your group number is taken as 100005, you can assume NR number 03 is currently active. If your group number is taken as 49, you can assume NR number 01 is currently active for task list type A.


Option 2 - By following SPRO path for Routings


This is more accurate and less time consuming way to identify the NR number assignment for your task list type. Go to SPRO menu path mentioned below.


Production - Basic Data - Routing - Control Data - Maintain Task List Types and Set SET/GET Parameters


Here if you execute Maintain Task List Types and Set SET/GET Parameters you will be asked to enter a task list type as below. Enter task list type ( example A in our case) & Click  on continue button.






In above picture, you can see that internal NR number 01 is currently active for Task list type A.



Thanks & Regards,

Amol Khairnar.




1) Client :  It is the highest hierarchical unit in the SAP system. All areas of an organization that are to be integrated into SAP, should be included under one client.

2) Controlling area : An organization unit within a company used to represent a closed system for cost accounting purpose.A controlling area may include single or multiple company codes that may use different currencies. These company codes must use the same operative chart of accounts. All internal allocations refer exclusively to objects in the same controlling area.

3) Company Code : It is the smallest organizational unit of Financial Accounting for which a complete self-contained set of accounts can be drawn up for purposes of external reporting. This includes recording of all relevant transactions and generating all supporting documents required for financial statements.

4) Maintenance Plant : A Maintenance Plant is an organizational unit within Logistics, serving to subdivide an enterprise according to procurement, maintenance, and materials planning.

5) Maintenance planning plant : Maintenance planning plant is a logical location where the maintenance activities on technical objects are planned. The Maintenance Planner Groups who plan and monitor the maintenance activities are defined at the maintenance planning plants. Maintenance planning plants determine if the maintenance planning is centralized, decentralized or partially centralized.

If maintenance is centralized, then there would be one Maintenance Planning Plant for all the Maintenance Plants. if it is decentralized, then there would be a Maintenance Planning Plant for each Maintenance Plant. if it is partially decentralized, then there would be Maintenance Planning Plants, looking after a few Maintenance Plants each.

Business Process & master data Impacts :

a) Material Planning based on maintenance task lists and maintenance orders

b) Management and scheduling of maintenance plans

c) Creation of maintenance notifications

d) Performance of maintenance orders

e) Location-wise analyses on different performance parameters like costs, downtime's, breakdowns etc. are possible at the Planning Plant level.

f) Definition of technical objects, maintenance task lists etc.

6) Locations : Location is a place in a maintenance plant at which a technical object is physically located. It allows a plant to be classified according to spatial or situation criteria.

Locations are used for informative assignment only. We can only use Locations as a match code or as parameter criteria in reporting.

7) Plant section : Plant sections are processing units/ production areas within a maintenance plant. These are subdivision of maintenance plants. Machines or sets of machines that are represented in the system as pieces of equipment or functional locations are installed in plant sections.

We can indicate the place for which a maintenance task was requested with the plant section. We also, can establish a contact person for Plant Maintenance using the plant section. Plant sections are assigned to Maintenance plants.

8) Maintenance planner groups : A group of employees responsible for planning and processing maintenance tasks in a plant. Planner groups or Maintenance Planner groups must be defined separately for each planning plant. Depending on the size and structure of your company, a maintenance planning group may be an individual department (for central work preparation), a group of Technician or a workshop.


9) Work Center : Work Center is an organizational unit that defines where and when an operation must be performed. The Work Center has an available capacity. The activities performed at or by the Work Center are evaluated by charge rates, which are determined by Cost Centers and Activity types. Centers and Activity types are defined and detailed in Finance & Controlling Module. Work Centers can be: Machines, People, Production lines or Groups of craftsmen.

Thanks for reading through. Please visit

To achieve better return on investment for any equipment, important components of costs along with equipment availability needs to be analyzed and corrective measures needs to be prepared.


For example, a plant may measure types of work (preventive, predictive, failure and modifications), labor and materials to identify important gaps in their maintenace capability. Let us assume that such analysis will provide information that 10% of the work is predictive, 40% is preventive, 30% is unexpected failure and approximately 20% of the PM is short closed each month. Although at high level this may look OK, but there could be huge overlap between preventive and predictive maintenance. Such unintended overlap increases costs and it occurs because of various activities like Preventive Maintenance and Predictive Maintenance are not planned in a unified system.


Most plants can build their PM programs over long period of time. Creation of PMs are done because they are hopped to reduce failure. Over time, these Preventive maintenance plans will grow to include inspections. Plants may observe some high visibility incidence that may require additional PM. The frequency will be set and the PM applied to every piece of equipment that is similar to the one that failed. It is natural that if machine failed, the boss is unhappy, and PM makes the boss less unhappy. Over time, the number of PMs Increases to the point that many aren’t being completed; even with an extensive PM program, there are still failures that can’t be eliminated.


With PM program getting stabilized with addtional failures, plant would begin additionally a PdM program by monitoring a few pieces of highly critical equipment with vibration analysis (where there usually is some success). In most cases these New PdM program also brings in additional benefits and leads to increase that success, the program would grow. If the organization has a lot of support corporately for implementation of PdM, they would typically apply the technology to 50% of their known assets and use all available technologies. To determine how many assets to monitor, the plant should determine how many technologists it can support and then buy the equipment needed to perform the work.


Conclusion: A well planned maintenance strategy needs mix of Preventive and Predictive methodology. Planning these strategy should be clearly documented along with what benefits it would bring in. Maintenance strategies are compiled and corresponding benefits are noted, it can be used along with current performance to identify possible future improvements in the area derive higher utilization of assets..

Even as an experienced SAP GUI User the following happens quite often:


  • You choose the an Matchcode but  the result list is empty.
  • So use the next one but the result list does not display the object you are searching for.
  • Next  matchode now you got similar objects but the result columns does not allow you to distinguish which of the ones is the right object to select
  • So you open a new modus to display the details of the object


this is quite frustrating for the end user and leads to the fact that the people do not like how the system is reacting . Observations tell us that User spend up to 30 % of the time with searching the right Equipments, Functional Location, Task List ...


Within the new EAM Web User Interface we have tackled this issue and we found a solution which suits the purpose of the value help much better.


Now you are able to:

  • Modern search across different fields like Description, Long text, Planer Group, ...
  • Search across different Objects like General Task List, Equipment task List, Functional Location Task List
  • Refine the search according criteria
  • Define your area of responsibility an prepopulate the search with criteria like plant, Planer Group and object type
  • Display more details of the Objects



This is possible now for the following Objects within EAM:


  • Functional Location / Equipment
  • Task List
  • Maintenance Plan
  • Maintenance Item
  • Notification
  • Order

You find this new feature  in Innovation Discovery under the Innovation

"Enterprise search" functionality plus Master Data Information Center within the SAP Enterprise Asset Management solution"

here you find:

  • Demo
  • Screenshot
  • PDF Document summarizing the innovations and how to activate


we hope this suits the users needs much better.

SAP EAM team in collaboration with SAP User Experience and Design team is pleased to invite you to the SAP Fiori Customer Co-Innovation Forum Q1/2016. During this forum, various SAP tam would showcase new Fiori Apps developed and released SAP.


SAP EAM team would be presenting the first transactional app to create maintenance request during this virtual event. Customer Co-innovation forum, provides a unique experience of viewing features of new app and provide expert advice to the team about how you would see new app can be further improved. The event has been planned with two time slots so that everyone from SAP eco-system across the globe can participate, learn about new functional enhancements and provide their valuable insights.


Use following link to register for this event.


Filter Blog

By author:
By date:
By tag: