Sap MRS
Sap MRS
Sap MRS
In a typical plant maintenance scenario, PM or service orders are created. The work
of these orders have to be completed by technicians.
If there are huge number of orders coming in then it really becomes a task to decide
who works on what and from what time to what time. Solution is MRS.
Moreover, not everyone is skilled to complete each type of task .Tasks with special
skill requirements can only be completed by a skilled resource. For e.g. if a machine
breaks down, not any Tom-dick-harry can repair it. To search for a particular skill
from the resource pool of hundreds of resources (taking into consideration the
availability of the resource) can be a tricky task. Solution is MRS.
The graphical planning board makes MRS easy to use. There are hundreds of
features and options available at a click of mouse.
MRS becomes a really powerful solution because it can be integrated with other
modules of R/3 viz PM (Plant maintenance); PS (Project systems); HR. It could also
be deployed on CRM, R3, DBM systems.
MRS is one of the critical area of SAP where hardly any consultant available. In this post I
have tried to explain end to end step for implementation of SAP MRS and also guide you
to integrate with SAP PS and HR module.
Introduction
Introduction to MRS
Multi Resource Scheduling (MRS) is a solution for resource management in the service and in
the project business With Multi Resource Scheduling you are able to visualize your service
planning status and assign requests to your service staff and tools using an intuitive graphical
planning board.
Main Features of MRS:
Make use of mobile connectivity to update the requests for your field service
personnel
This is achieved by decoupling the old Add on into two: Add on for
Netweaver and Add on for ECC.
The ERP Add on can be installed only on ECC 6.0 and required MRS
Netweaver Add on as prerequisite.
Demands from multiple PM/CS systems can be integrated into one instance
of MRS
Configuration Guide
Configuration guide to MRS
1 Basic Settings
a. Status
Why do we really need an abstract status?
In SAP, all the statuses are 4 Character statuses and these are language dependent. Moreover, this
4 character status can be customized also. The system statuses are delivered by SAP and the user
statuses are customized at each customer location.
So, a status that represents 'Work has started' for an assignment could be customized differently
at each customer location. I can call it STRT and you can call it BEGN.
If in MRS we were to code some logic that depends on statuses, then it would be big mess if we
coded based on the 4 character statuses STRT or BEGN (because they would be different for
different customers). So inside MRS we use "Abstract status" which can be mapped to the
concrete statuses.
Thus the MRS code always depends upon the abstract status and on the UI, we always continue
to show the 4 character concrete statuses (because this is what is shown in all other SAP
applications and users are comfortable with this)
In this customizing step, there are mainly 2 settings to be maintained.
1. Define Abstract
Status
Status
Evaluation paths for Authorizations: Specify the evaluation paths that should be used for
evaluating the user authorizations. Here, from the user the system will identify the Org units
using these evaluation paths. The resulting org units are the ones for which the user is authorized.
These evaluation paths are used only if in the basic settings you have activated "Authorization
check based on Evaluation paths".
Evaluation path for resources: This evaluation path is used to determine the resources from a
resource planning node. So when you double click on an org unit in planning board, the
resources are fetched based on this evaluation path.
Evaluation path for Resource planner and contact person: This evaluation path is used to
determine the Resource planner and contact person of a Resource planning node. In the resource
planning scenario for project business, we enter the Org unit number in network header customer
enhancement tab. At that point, this evaluation path is used to determine the names and details of
contact person and resource planners.
EP: Resource planning node to Resources: The name here is slightly confusing. This
evaluation path is used to determine the resource planning nodes to which a person is attached.
This is used at the time of authorization checks. For a person, this evaluation path will find the
planning nodes to which this person is attached. If the resource planner is not authorized to plan
these planning nodes, then he cannot create / change the assignment or time allocations for this
resource.
Eval Path for higher level RP nodes: This evaluation path is used to find the parent org units
for a given org unit. This is used at many places. For instance during the authorization checks
also to determine if the planner is authorized for higher org units.
EP: Dir assigned RP Node for Resource planner: As the name suggests, this evaluation path
will get the directly assigned resource planning node for a resource planner. This is used in
transaction /MRSS/PLBOTIME to find the RP Node for the current user. It is also used in the
lean planning board transactions.
EP: Dir assigned RP Node for contact person: As the name suggests, this evaluation path will
get the directly assigned resource planning node for a contact person. This is used in the
transaction /MRSS/RAP_CP.
Log. Work center to RP Node: This evaluation path is used to find the work center connected to
a Resource planning node. This EP is used to determine the work center during the back
integration. For example if you change the assignment to planning node for a demand in
A standard priority
An exception indicator for the time allocation that specifies that this time allocation
type does not form part of basic availability (normal working times)
Example
You define a time allocation type for illness. You define a time allocation type "ILL" for the
absence type illness. Since a resource is not available when ill, you assign the availability 0. You
then define the standard priority of this absence.
You have defined a value range from (-64) to 64 for your priorities, where (-64) is the lowest
priority and 64 the highest. Since employees are never available when they are ill, you assign the
time allocation type the priority 64.
Since ILL does not form part of the "normal" working times, you mark it as an exceptional time
allocation type.
You then enter "ILL" as the short text and "ILLNESS" as the long text.
b. Assign Time Allocation Types to Resource Types/ Time allocation Type for Tools
The time allocation types defined in the previous step must be assigned to resource types. Then
only they can be used in Planning board.
Activities to be performed are:
Enter the time allocation types manually or select then from F4 list
Note:
The resource types 00(Human Resource), 01(Tool Resource) and 99(Team Resource) are
You also have to specify a time allocation type with which the availabilities of the tool are to be
created in MRS Basis. This time allocation type is required when the tool is used for the first
time.
Example: AVAIL.
This time allocation type must have availability type '1-Available' and exception
Set Up Scheduler Workplace -> Workplace Profiles -> Check Profile -> Define
Classes for Performing the Checks
Set Up Scheduler Workplace -> Workplace Profiles -> Check Profile -> Define Check
Profiles
Set Up Scheduler Workplace -> Workplace Profiles -> Alert Profile -> Define Alert
Types
Set Up Scheduler Workplace -> Workplace Profiles -> Alert Profile ->Define Alert
Profiles
After reading the above mentioned documentation you need to do the following:
Step 0:
Create a new message type in SE91. This will be the message that appears in the alert
monitor.
Step 1:
Create a new check class. Let's call it ZCL_MY_CHECKS. This class must implement
the interface /MRSS/IF_SGE_CHECK. Here you need to define all 4 methods of this interface.
CHECK_PERFORM : This
imports all the data from the planning board and this data can be used to create alerts.
INITIALIZE :
This method is called at the initialization of the planning board. Here you can
populate some global variables etc. This method will import the reference of Alerts, Resource
manager, Work list and Clocking interface. These references will be used to get the global
buffered data of MRS application.
IS_TIME_DEPENDENT :
or not. Here, you just have to return the RETURNING flag as 'X' or ' '. If 'X' is returned then it
means that the checks in this class will be called at a periodic interval of time. It is useful if you
have certain checks that depend on time. So these checks have to be carried out at a regular
interval of time.
CHECK_PERFORM_CHANGE :
allocation etc) is changed in MRS engine. This method imports the changed data object of
type : /MRSS/CL_SGE_DATA_CHANGED. Here, to identify if an assignment was changed or
demand was changed, you can use the attribute GV_OBJECT_TYPE of this changed object.
Note: This class /MRSS/CL_SGE_DATA_CHANGED is abstract and is inherited by many
classes. Based on the type of object changed, you can typecast it to the specific class and then
use the attributes of the inherited classes.
Step 2:
When implementing the methods in your class ZCL_MY_CHECKS you need to write
When creating alerts you need to provide the component type and
guide. The component is the object for which alerts is created. For e.g. if I create a alert for
resource unavailability, then the component type will be 'D' for resource and the component
guide will be resource guide. Also, we can populate additional components for an alert message.
For e.g. in this case I can populate the Assignment guide and Demand guide in additional
components. This is populated in structure: /MRSS/T_ALERTDATA.
The methods of object for alerts (imported in INITIALIZE method above) must be used to
create, modify, delete alerts. Check the methods provided by interface:
/MRSS/IF_SGA_ALERT_INT.
In your coding, you should only call the methods of this interface to create or modify alerts.
Step 3 - Customization:
Add you class to list of check classes. This will be done in: Set Up Scheduler
Workplace -> Workplace Profiles -> Check Profile -> Define Classes for Performing
the Checks. When you do this, your class will also be called when ever checks for
alerts are called.
Add your check class in your check profile. This check profile is in turn linked to
the planning board profile. This is done in: Set Up Scheduler Workplace ->
Workplace Profiles -> Check Profile -> Define Check Profiles
Define your new alert type in customizing : Set Up Scheduler Workplace ->
Workplace Profiles -> Alert Profile -> Define Alert Types
Define your new alert message number in your alert profile. This is done in
customizing: Set Up Scheduler Workplace -> Workplace Profiles -> Alert Profile
->Define Alert Profiles
That's all. Then launch your planning board and your checks and alerts are active.
Planning board
1 Optimizer
The optimization function in MRS enables the scheduler to create optimized schedule for their
technicians. The strategies of optimizer can be configured. Thus the optimizer can be used to
create schedules such that: Travel time is minimum OR Utilization of resources is maximum OR
Overtime for technicians is minimum OR any other strategy which is suitable for the customer.
The Relevant data for Optimizer:
Technician:
The availability information of the technician. His working times, breaks etc. The
The optimizer will find all the possible solutions for a given situation. It will then calculate the
cost associated to each solution and will then propose a solution with the minimum cost. The
"cost" here represents an abstract cost parameter. For e.g. the cost of travel per KM can be 10
units. Thus if a technician travels for 5 KMs the cost of travel is 50 Units.
Important configuration before using Optimizer:
Define Travel Times settings
Define Optimizer settings
2 Utilization Report in MRS
The Utilization report in MRS show the utilization of a Single Org unit, a Resource, or a group
of Org units.
This report can be launched separately as a new transaction or directly from the planning board.
To Launch the Utilization report directly from the planning board, the customizing for
transaction jumps must be maintained. For details check: Customizing of UI Profile.
To view the utilization of a single resource, right click on the resource box in the MRS Planning
board grant and select the option: "Resource Utilization".
The utilization report makes use of bar chart control to show the utilization values in form of
Bars, Area, Lines etc. Some salient features of this report are:
Move any of the operations ahead in time. Trigger scheduling for the Order.
Check that other related operations should also move accordingly. Also, the capacity of the work
center must be calculated accordingly.
What have we tested?
Troubleshooting:
The work center cannot be seen on the planning board - Check that you have
successfully transferred the work center as described in step 2.
The capacity utilization of the work center is shown incorrectly for the old order Save the order again and then relaunch the planning board. It should work fine. If
you still get problems - raise a flag!
Check if the system is ready for tests. Check the following points. If one or more checks
fail - write a mail to the system administrator and get it resolved before proceeding for testing.
Check in table T000 if the logical system for the defined for the testing client.
Check that the system is open for customizing changes and correction changes.
If the testing client is not delivery client (000) then make sure that the delivery
customizing is imported before you proceed.
Step 1:
Make sure that you have employees created in your SAP HR system and make sure that
a) HR Integration->Configure Settings for HR Integration - Define the work and work break
entries here. The entry should look like this:
b) MRS Basis->Define Time Allocation Types - Define the time allocation types WORK and
WORK_BREAK here. The entries should look like this:
c) MRS Basis->Assign Time Allocation Types to Resource Types - Assign the time allocation
types to the Human resources
d) Sources of Demand->Orders->Define resource planning relevance for PM/CS orders - Define
the Order integration here.
e) Basic Settings->Assign ERP Objects->Assign Work Center Types - Assign the work center
category (Of the work center to be created in step 6) to WCPN (WC for Planning node). This is
required so that during the forward integration, the linked Org unit for a work center can be
found.
Step 4:
Check that in CR03, the work center (that you plan to use) has the HRMS link to the org
units.
Step 7:
Create a sample order from transaction IW31 and save. If you want to integrate the
existing orders, then just open and save the order again.
Step 8: Launch planning board via transaction /MRSS/PLBOORG. You should see the resources
and their working times transferred. You should also see the sample order created in Step 7. Drag
and drop the demand on the resource. The assignment must be created.
Troubleshooting:
The Order I created does not appear on the planning board - Check the
customizing in step 3-d. Confirm the note in step 5 has been correctly
implemented. Check that the work center is correctly created as described in step
6. If you still don't get the order... raise a flag!
I can see the resources in planning board but the work timings are weird - Check
your customizing in steps 3-a, 3-b and 3-c. If necessary, delete the resource data
using the same report and run the availability transfer report once again after
correcting the customizing. If you still don't see the correct data... raise a flag!
Implement the note 1135512 for PS integration. This note has automatic corrections as
Check that in CR03, the work center (that you plan to use) has the HRMS link to the org
units.
Step 7:
Troubleshooting:
The Order I created does not appear on the planning board - Check the customizing in step 7.
Confirm the note in step 5 has been correctly implemented. If you still don't get the order...
raise a flag!
6 Test PS Resource Planning Integration of MRS
After testing the PS Integration for work center planning, it is not time to test the PS integration
for Resource Planning. After you have successfully completed the previous steps, follow the
below steps now:
Step 1:
Implement the note 1135512 for PS integration. This time, you have to implement only
the manual steps given in the note. Follow all the steps given in the long text of the note.
Important: If you have note implemented the automatic corrections yet, please implement them
also.
Step 2:
Create a Contact Person and Resource Planner for the Organizational units that you want
Create a Project, WBS Elements, Networks, Activities, Save the Project in CJ20N.
Note: Now you should see an additional tab in the network header and network activity screens
named 'Customer Enhancement tab'. This tab is of the most relevance for MRS integration.
Set the flag Start of Planning in network activity screen and save the network.
Step 5:
Launch the planning board for your selected org unit. Here you should see your network
Step 6:
Troubleshooting:
The Order I created does not appear on the planning board - Check the
customizing in step 2. Confirm the note in step 1 has been correctly implemented.
If you still don't get the order... raise a flag!
The 'Start of Planning Flag' is cleared automatically - Check the status customizing
in step 2. Pay special attention to the status language in customizing.
Here, you should see that the work center capacity and dispatching information is shown on the
planning board.
Step 5: Move any of the operations ahead in time. Trigger scheduling for the Order.
Check that other related operations should also move accordingly. Also, the capacity of the work
center must be calculated accordingly.
What have we tested?
Troubleshooting:
The work center cannot be seen on the planning board - Check that you have
successfully transferred the work center as described in step 2.
The capacity utilization of the work center is shown incorrectly for the old order Save the order again and then relaunch the planning board. It should work fine. If
you still get problems - raise a flag!
MRS Tutorials
1 Work Center Planning in MRS
It is also possible to do work center planning (also referred as rough cut scheduling) in MRS.
This function is available since MRS 610 SP03 release.
The important functions of MRS rough cut scheduling are:
Undo-Redo function available - Simulate your results and finally save them
In order to use this function, you must first transfer the work center to MRS. This is done by
executing the report: /MRSS/SGE_PN_MNT.
2 Travel times in MRS 610
The current version of MRS - MRS 610 is equipped with lot of new features. You can now
visualize the travel time for your technicians if they are traveling to a customer location to
complete the work.
MRS can also calculate travel times automatically.
3 Screen Layouts in MRS
For e.g. you can customize a layout to show only the resource gantt and the item work list, OR
you could customize a layout to show only the DPD (Demand planning and dispatching) Gantt.
You can switch between different layouts easily and you can also default a layout in your user
settings.
4 Create Assignments in MRS
You can create assignments via drag-drop or by drawing on the Gantt chart. You can also move
them. You can undo and redo your work multiple times and then finally save your work.
Enhancements in MRS
In this section, you can find how to enhance SAP solution MRS to cater to your custom needs.
This section will explain about the MRS BADIs and enhancements, how they can be
implemented and in which scenarios which Badi needs to be implemented.
Change the sort sequence of resources in Planning board
Lot of customers wonder if they can change the sequence of the resources in Planning board. The
standard planning board by default sorts the resources based on their name.
However, if you wish to change the sort sequence, then you can do so. There is no customizing
option to do that, but a BADI is available that can be used to change the sorting sequence.
Implement the BAdi: /MRSS/SGU_SORT_RESOURCES_SEQU (Enhancement spot:
/MRSS/SGU_ES_SORT_RESOURCES).
This BAdi provides a method SORT_RESOURCE_SEQUENCE that will import a list of
resource and its data. You can then change the sequence and export the resources back with new
sort order.
In this method all the necessary information like: Resource Guide, Name, Org unit information is
available. Based on these details, customers can decide their sort sequence.