Skip to Content
Technical Articles

Custom KPI calculation methodology in SAP OEE

SAP Overall Equipment Effectiveness Management (SAP OEE Management) allows to measure and analyze plant performance both in real-time and historically. SAP OEE enables to measure availability and performance of the equipment and the quality of goods produced by the equipment. It provides analytics and charts that focus on OEE and different kind of losses like performance loss, availability loss, quality loss related KPIs. It has drill down capability to enable root cause analysis of those losses.

To measure the performance of manufacturing process and resources, its necessary to define the KPIs and set specific target values that need to be achieved. Its also important to measure those KPIs continuously to ensure the process is stable and optimized.

SAP OEE has in built standard KPI named as AVAILABILITY, PERFORMANCE, QUALITY AND OEE. Apart from these four, there could be industry specific KPIs that need to be captured and monitored in a plant.

So, here in this document the methodology has been described to achieve custom KPI calculation for all key performance indicators in SAP OEE.

Following steps are required to achieve custom KPI calculation or update standard KPI calculation which are displayed in KPI panel of OEE dashboard.

  1. For custom KPI calculation, those custom KPIs must be defined along with standard KPIs and target values should be set under plant hierarchy in ERP system.

Once that is defined and transferred through Plant hierarchy IDocs, same starts reflecting under Display SAP ERP Master Data.

Below IDocs need to be sent from ERP to SAP MII which are having KPI information:

  • PLANT_HIERARCHY_04
  • KPI

Below standard OEE database tables will get an update on triggering IDoc from ERP. These three tables are utilized to store KPI related data information.

Table Name Description
MPM_KPI This table contains client specific standard and custom KPIs created in ERP, UOM, KPI_Type
MPM_KPIT This table contains description of all KPIs maintained in MPM_KPI table in all languages supported by SAP OEE
MPM_KPITARG This table contains client and plant specific  KPIs, Target values of each KPIs, Material specific Node ID of Workcenter maintained under plant hierarchy. This data comes with Plant hierarchy IDoc.
  1. On click of Details button, KPI actual values are displayed with a color-coding set based on the target value range. If this target value is not maintained in ERP, then display of actual values with color coding will not appear in the dashboard.

Below standard OEE database tables will get an update on triggering IDoc from ERP. These three tables are utilized to store KPI related data information.

3.Using SAP MII workbench, custom business logic service is developed and all the custom KPI calculation will be performed inside the transaction.

  1. Activity Configuration:
  • Go to SAP MII Menu Page
  • Navigate Worker UI management–> Activity Configuration.
  • Create two custom activities- one is for custom extension and another for displaying custom KPI in OEE dashboard.
  • Choose Create Activity.
  • Give proper activity ID
  • Class or URL is defined as sap.oee.ui.oeeOperatorDashboardStandardDeliveredActivityForPanel2
  • Activity Type is UI
  • Put Description as ALLOWED_KPI
  • Under Option tab, assign ALLOWED_KPI (same as description) and define all required custom and standard KPI name
  • AUTO_REF_TIME_IN_MIN parameter can be defined to achieve auto refresh functionality on OEE dashboard in a certain frequency interval (defined as value of the parameter) to get runtime custom value of KPIs and displayed them on dashboard.

 

Activity ID creation for custom extension:

  • Give proper activity ID
  • In the Activity URL, specify Custom transaction path created in MII workbench.
  • Choose Activity Type as Transaction.
  • Put Proper description of that Activity.

 

  1. Dashboard Configuration
  • Under operator dashboard, Create a copy of standard Operator dashboard.
  • Give Dashboard ID.
  • Put Dashboard Description.
  • Content for section B would be replaced by ALLOWED_KPI which was created earlier as an activity for displaying KPIs on OEE dashboard. So, on loading of OEE operator dashboard current shift KPIs panels positioned to second layout gets updated with computed KPI values.

  1. General Configuration
  • Go to SAP MII Menu Page
  • Navigate Worker UI management–> General Configuration.
  • Select client and plant to see the plant hierarchy.
  • In that Plant hierarchy select line or work center for which extension configuration needs to be done.
  • Under Extension configuration select Get OEE KPIs
  • Click on Add button (+) to assign the activity.
  • Assign that Activity ID description under which your custom transaction URL has been defined.

Extension Type: POST (as we need extension needs to be run after the method)

Extension sequence: Set a sequence number to enable extension

Click on checkbox to enable the extension and save it.

 

So, on loading of OEE dashboard screen, this Get OEE KPIs method is basically getting executed first as extension type is chosen as POST. As an output of this service method, we will receive two XML inputs (structure of these two has been explained later in this section). Once, this method gets executed, output will be passed into custom transaction which has been assigned under the activity defined in extension configuration. Finally, output of the transaction will be shown in dashboard through the activity defined for displaying custom KPI.

7. In custom transaction, below properties need to be defined:

  1. XMLInputString

Data Type: XML

Type: Input

This Input parameter holds details of Client, Plant, Shift Start and End Time, Node ID of the Line or work center on which KPI is going to be calculated.

XMLInputString structure:

 

<?xml version="1.0" encoding="UTF-8"?><ns2:InputKPIService xmlns:ns2="com.sap.xapps.oee.dto.kpiservices">

                      <client></client>

                      <endTimestamp></endTimestamp>

                      <nodeID></nodeID>

                      <plant></plant>

                      <startTimestamp></startTimestamp>

                </ns2:InputKPIService>

 

  1. XMLModifiedOutputString

Data Type: XML

Type: Output

This is the final Output that is assigned with all custom KPI computed values. This Final Output XML is passed in the OEE dashboard to show all custom KPI values.

 

  1. XMLOutputString

Data Type: XML

Type: Input

XMLOutputString sample structure:

<?xml version="1.0" encoding="UTF-8"?><ns2:OutputKPIService xmlns:ns2="com.sap.xapps.oee.dto.kpiservices">

<availability>100.0</availability>

<changeoverTime>0.0</changeoverTime>

<customKpis>

        <entry>

            <key>SPEED</key>

            <value/>

        </entry>

    </customKpis>

    <flowTime>0.0</flowTime>

    <loadingTime>5422.0</loadingTime>

    <netOperatingTime>412.0</netOperatingTime>

    <netProductionTime>5422.0</netProductionTime>

    <oee>6.89814</oee>

    <performance>7.599</performance>

    <quality>90.777</quality>

    <qualityLossTime>38.0</qualityLossTime>

    <scheduledDowntime>0.0</scheduledDowntime>

    <speedLossTime>0.0</speedLossTime>

    <theoreticalSpeedLossTime>5010.0</theoreticalSpeedLossTime>

    <timeUom>SECOND</timeUom>

    <totalProductionAndLossQuantityInStandardRateUOM>1100.0</totalProductionAndLossQuantityInStandardRateUOM>

    <totalShiftBreakDuration>0.0</totalShiftBreakDuration>

    <unScheduledDowntime>0.0</unScheduledDowntime>

    <unaccountedTime>5010.0</unaccountedTime>

    <valueOperationTime>374.0</valueOperationTime>

</ns2:OutputKPIService>

 

Loading Time = Shift duration – scheduled downtime

If one order runs for entire shift (let’s say from 6:00 AM. To 2 P.M.), then it will consider entire shift duration. But if order starts at 6:00 AM and completes at 10 AM and no other new order is active for next 10:00 AM – 2:00 PM then shift duration will only be considered from 6-10 AM.

Net Production time = Loading time- Unscheduled downtime

Net Operating Time = Time required to produce quantity reported (Yield + Scrap) for one shift.

Quality Loss Time = Total time loss for Scrap quantity that has been reported for one shift

Value Operation Time = Time taken to produce Yield quantity for one shift.

KPI Calculation formula:

Availability = netProductionTime / Loading Time

Performance = netOperatingTime / netProductionTime

Quality =  ValueOperationTime / netOperatingTime

OEE = Availability * Performance * Quality

 

This XML contains all standard KPI values and custom KPI name along with other parameters which are utilized to calculate custom KPI values.

Finally computed custom KPI value is mapped against each custom KPI value node under custom KPIs segment.

Below Points need to be considered:

  1. KPI will be calculated and shown for one shift. If we move to the next shift, then all KPIs are shown as zero except availability (as it depends on downtime). To check KPIs for previous shift, we need to change shift timing.
  2. For one shift, if multiple orders are running then KPI is shown for that workcenter/Line as aggregated result of all downtimes, quantity reported for those orders.
  3. Loading time is affected by only reported scheduled/planned downtime. There is no impact on loading time if unscheduled or unplanned downtime is reported.
  4. Workcenter/Line for which KPI calculation need not to be shown, we can set Irrelevant for OEE calculation as YES from customization configuration under general configuration.

Conclusion:

With all the configuration that has been explained and by creating custom transaction, custom KPI calculation can be done and displayed on the OEE dashboard KPI panel.

 

 

4 Comments
You must be Logged on to comment or reply to a post.
  • Hi Rudrakshma,

    clear explication,

    Do you know how the flow time is used in calculations for OEE? The SAP documentation is too brief on that section.

    In our production process, it takes more than 1 hour before the first product is produced.

    Using the flowtime, the OEE should take this into account, however

    • Unscheduled Downtimes during flowtime are not taken into account in the current shift
    • Not clear how next shift is calculated, it looks like a flowtime in the previous shift does not have influence. Are product registrations not shifted in time by the flowtime?

    br

    Frederik

    PS. By the way is there a way to limit the OEE calculation to 100 when performance is higher than 100

    • Hi Fredrik,

      Thanks!!

      I will try to answer your queries.

      • is there a way to limit the OEE calculation to 100 when performance is higher than 100--

      When performance is higher than 100 then you need to set or maintain ideal run rate (standard rate) properly at ERP end for that particular line, which should have some justifiable value. Standard rate only can control your OEE calculation in your case.

      • Flow time is the time taken between the start of an order and the first finished product. So, its non productive time and not part of loading time. Impact on KPIs of this flow time is similar to Scheduled Downtime.
      • If you want to consider flow time in OEE KPI calculations, configure a data collection element for flow time as Data Collection Element in SAP ERP and transfer this to SAP MII. You can then report flow time when reporting downtimes from the OEE dashboard.