Its a small guideline docs for Linear asset management of SAP EAM
LSMW – Task List Creation with 5 level input file using Batch Input
Requirement:
Creation of Task List using LSMW Batch Input with 1 input file having 5 level Structure data.
Mapping Template:
5 Structures:
Fields in the structures:
Note: 1) All these 5 rows generate 1 Task list.
2) There can contain multiple Operations (level2) for each Header (Level1) in the input file.
3) There can be multiple Text Lines (Level3), Components (Level4), and Packages (Level5) for
each Operation (Level2).
Input File Format:
The first Column is the Unique Identifier, which we need to maintain at the source field level for correct mapping.
LSMW:
Steps Involved:
Step1: Maintain Object Attributes
We have Batch Input for the Task List Creation in the LSMW.
Data Transfer Object: 0490
Data Transfer Method: B (Batch Input)
Step 2: Maintain Source Structures
Maintain Source Structures as per the Hierarchy.
Create a Header File Structure. Add Operation as the child Node (Next Level) to Header.
Add Long Text, Components, Packages structures as the child node (Next level) to Operations.
But all these three at same level
Step3: Maintain Source Fields
Maintain a Unique Identifier “RECORDNAME” in each structure.
Double Click the RECORDNAME Field and fill the identifying Field Content with some Unique Value.
Similarly, do this for all the Identifying fields in each structure. The same can be screen in the screenshots.
Step4: Maintain Structure Relations
Map the structures respectively.
Step5: Maintain Field Mapping and Conversion Rules
Go to Menu Bar -> Extras -> Auto Field Mappings.
This will map the fields in our Source structures to the corresponding fields the Target Structures.
Similarly, all the fields will be mapped accordingly. It will be better to cross check.
Step6:Maintain Fixed Values, Translations, User-Defined Routines
User Defined Routines or Values can be maintained at this step.
Step7:Specify Files
At this step, specify the input file present at the Presentation Server.
Step8:Assign Files
Assign the input file to each structure applicable as shown below
As we have single input file, assign the same to all the structures applicable.
Step9: Read Data
At this Step, the data in the input file will be read and stored in the Structures.
Step10: Display Read Data
Step11:Convert Data
The data read from the input file, will be converted as the rules we provide in the field mapping stage.
Ex: Here, Conversion Exit was used was for Equipment Number. This conversion will be executed at this stage.
Step12: Display Converted Data
The data converted, can be seen at this step.
Step13: Create Batch Input Session
This step will create the Batch Session. We need to provide the Session Name at this step.
Provide the Session Name. Delete the Deletion indicator, if you want to keep the session even after processing.
Step14: Run Batch Input Session
This will take you to SM35. You can process the session according to your requirement.
Hope this might be helpful...!
Thanks
V Prasanth Kumar Reddy.
This Document aims at automatic determination of task in CS Service Notification.
As per SAP help document which is pasted below, this document will demonstrate 2 option.
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Task Determination and Notification Monitoring
Purpose
To provide good customer service, it is important to have an overview of:
- Incoming service notifications
- Services to be provided
- Progress in completing the service notifications
When entering notifications, you can use the automatic determination of standard tasks.In the case of further processing, the function for notification monitoring always provides you with a current overview of the standard tasks. This ensures that you are up-to-date with regard to customer requests and problems do not escalate unnecessarily.
Prerequisites
The parameters Response Profile, Service Profile and, if necessary, Priority must be preset in Customizing. These parameters determine the times and the time interval, at which a particular response must be made to a notification (refer toExample: Automatic Determination of Tasks).A response profile must be assigned to a notification. This can be done in two ways:
- Using the notification type
- Using a service contract
Settings for Notification TypeYou have maintained the following data in Customizing under Plant Maintenance and Customer Service®Maintenance and Service Processing ® Maintenance and Service Notifications:
- You have defined standard tasks using the code and catalog functions.
- You have defined response profiles, entered the standard tasks and times, in which they must be executed.
- You have defined service profiles and assigned a response profile, if required.
- You have assigned response profiles and service profiles to the notification types.
- If necessary, you have also defined priority types, priorities for each priority type, and assigned the priority types to the notification types.
Note that the response profile, which is entered in the service profile, overrides the response profile for the notification type. The response profile for the notification type is only decisive if:
- No response profile has been entered in the service profile
- The notification is entered outside of the service windows
Settings for Service Contract
In addition to the above data, you also have maintained the following data:
- You have assigned a response profile to the service profile in Customizing.
- You have created a characteristic master record and entered it as table name
T355Rand field name SERWIon the additional data screen. You have thereby assigned the service profile to the characteristic and displayed the Service profile field in the material master record on the characteristic valuation screen.
- You have created a service product (material master record of material type DIEN), classified and performed a characteristic valuation. You have entered the above service profile, to which a response profile is assigned, for the characteristic valuation.
- You have created a service contract for a technical object (functional location or equipment) and entered the service product.
Process Flow
- When entering a notification, call up the function for
automatic task determination.The system copies the standard tasks into the task overview for the notification, where you can add specific information, such as text.
- After entering the notification, you use the list editing function to create a list of all the notifications starting from a particular date.
You can use the monitor to monitor the response times for all tasks.
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Steps for the demonstration
Two characteristics to be created as below. Values of one characteristics which will determine the service profile dynamically though variant configuration as explained in help document.
Characteristics 1: Call Severity
Characteristics 2: Service Profile. This will be a reference characteristics which will be determined based on the value of 'Call Severity'. For this we need to maintain data like below. This will be responsible for determining the service profile in the Notification dynamically through a contract.
We can have more than one parameters which can determine the service profile
Once class with class type 300 to be created and assigned the material which would be the service product.
One material need to be created with material Type KMAT.
One config table to be created (CU61). This table will have mapping of values between the 'call severity' and 'Service Profile'. This will drastically reduce the efforts of writing hard coded and complex code in the procedure. it takes care or one to one or many combination to one output reference characteristics values during configuration evaluation.
The value to be maintained in the config table is as below.
One dependency(CU01) to be created where we write as a procedure.
One Configuration profile needs to be created and above class and the procedure can be assigned as below.
Class need to be assigned to the material through configuration profile. Need not assign through MM01.
Once it is done, we can check the evaluation of the variant configuration through simulation CU50.
Click of Configuration(F8), enter the input characteristics values as 'H' and press enter and based on the config table mapping the Service Profile is derived as 'ZM'. That means the configuration is working fine. this simulation is helpful without creating any sales document like contract, sales order where the configuration is intended to work.
Configuration needed to be done for the service Notification.
SPRO>Plant Maintenance and Customer Service>Maintenance and Service Processing>Notification Processing>Response Time Monitoring>Define Response Monitoring>Define response profile. Please note here priority is maintained at the response profile. If in addition, if individual task is determined by the priority, that also can be done.
SPRO>Plant Maintenance and Customer Service>Maintenance and Service Processing>Notification Processing>Response Time Monitoring>Define Response Monitoring>Define Service Profile.
Click on Service window. Through this we assign service profile to response profile and service windows. Please note the timing on the service window and time at which the notification is created, this timing can create different task based on the response profile. During non office hours the response could be different than during office hours.
SPRO>Plant Maintenance and Customer Service>Maintenance and Service Processing>Notification Processing>Response Time Monitoring>Define Response Monitoring>Response Time Monitoring for Notification Type.
Please see in the notification type 'S1' the default service profile is maintained. because this is being dynamically derived from the variant configuration evaluation. as per SAP Help, system will override with value determined dynamically.
Sequence: Option 1: Notification type ---> Service profile & Response profile --> Priority ---> Task(s) if service Window is irrelevant. (Default way)
Option 2: Notification type ---> Service profile ---> Response profile --> Priority --> Task(s) if service Window is irrelevant based on the time window.
Option 3: Current demonstration: SD Contract --> Configuration evaluation --> Dynamic Service profile determination when the contract is assigned to Notification --> Service Window --> response Profile --> Task(s) without priority
Create a SD contract VA41 with the material and evaluate the variant configuration.
Create notification (IW51), Assign the Sold to party, contract, and then click the 'determine Task'
Two tasks with responsible person, and task planed date/time and task planned end date/time are automatically determined.
Once the tasks are created, it can be monitored by the assigned person and timelines and completed.
Some more document to follow on additional functionalities of Task and Action Box. Hope it helps.....
Follow up action in Notification Task and Action box in Notification
This document is a continuation of the previous document which talked about automatic task determination. http://scn.sap.com/docs/DOC-55763
This is demonstrated the below topic with screen shots. The detailed concept at SAP Help is at Define Follow-Up Actions for Tasks - Notification - SAP Library
1. Follow up action for Notification Task
2. Action Box
The difference between notification task and activities is as below.
Notification Task | Notification Activities |
---|---|
Task is created when we plan to execute a work step | Activity is created after execution of a work step. |
It has control over the notification completion, if some outstanding task(s) exist(s). | No such control. |
Hence it has got a status management and it has got a life cycle. OSTS(Task Outstanding), TSRL(Task Released), TSCO(Task Completed), TSSC(Task successful). | It doesn't have any status management, any life cycle as it only documented after execution. |
For the same purpose, it has got a planned start date/time and planned end date/time. | Obviously it does not have any planned date. |
It has got a follow up action which we are going to discuss in this document in detail and work flow associated with which makes it very powerful for integration with other module and sometimes other system(an interface can be triggered based on status change or an action like task release) | Obviously it does not have any such abilities. |
A person(partner) can be assigned to a task | It stores the person who record the documentation. |
It has got completion date/time and completion by(free text as well as ) | It has got one execution start date/time and end date/time |
Table: QMSM | Table: QMMA |
Can be extended with exit QQMA0011, in addition default values can be populated during task addition QQMA0027 | Can be extended with QQMA0012 |
Authorization: I_VORG_MEL for task status business operation B_USERSTAT : for user status management B_NOT_TASK : Display and processing of task | -- |
Note: Task is comparatively much more powerful, however they have been available for different purpose and requirement. While monitoring a work step, for the same work step task and activity need not to be created together.
Task is created through QS41 with standard catalog type '2'. But we can create as many number of catalog type based on our requirement keeping in mind below structure.
Catalog
-->
Code Group
-->
Catalog Code
Let's say we have a requirement as below.
As soon maintenance work has been identified, we need to make a customer visit for site survey. the result of the site survey has to be summarized as a PDF report and sent by the site engineer to Pricing department for Quotation and so on and on.........
1. This clearly needs one notification with customer details with a task 'Undertake Site Survey'.
2. The task can be assigned to a specific engineer
3. Upload the PDF report as DMS document into notification.
4. Once he completes the task a email can be sent to pricing department with PDF attachment.
In this case we can have multiple tasks which can be created sequentially based on the progress of the process.
1. USSV Undertake Site Survey - Once it is completed, a follow on task can be created for below step.
2. PDVR Pricing department verification: Once this is completed, then only Quotation can be complete.
In this way a chain of step can be achieved by task and follow on task as part of standard follow up action functionality.
We can also create a custom table to control the relationship between tasks.
Follow up action needs to be created as below in SPRO.
Plant Maintenance and Customer Service>Maintenance and Service Processing> Notification Processing>Additional Functions>Define Follow-Up Actions for Tasks>Define follow-up actions.
We have to copy EXAMPL_1 and create our own follow up action.
Create a function module by copying QM10_COPY_REFERENCE_FORM and if we check all structure related task and notification header are available as import parameter of function module.
Populate the customer function module as below.
based on the setting the customer function module gets executed when the follow up action 'ZFOACTN' associated task is completed.
In this function module we can write ABAP code to send mail, etc etc.
In notification, when the task is completed, One system status FUAC(Follow-up action completed) gets set and this shows that the functional module is executed.
Action Box:
Action Box is used to do following.
1. Various actions can be structured during notification processing. It can make a chain of actions which can be sequenced.
2. Based on a action, a task can be created or one activity can be documented automatically.
3. One Function Module in case of activity and two function modules in case task are available to code(ABAP). These function modules can be copied from SAP (QM06_FA* Function modules for activities, QM06_FM* Function modules for tasks,QM06_CO* Function modules for changes to the workflow container). This FMs are executed during processing of the action box items
4. It can also have dependent action linking.
5. Workflow can be triggered based on the clicking on the action box.
6. It can be coupled with follow up action of the task which is being originated from the action box processing.
7. A dialog pop-up can also be programmed for the user
These above configuration makes the action box functionality very powerful.
At one of the client place, action boxes are used to do following.
- it creates a PDF/Excel file and attach the same as a DMS document in notification.
- It serves the purpose of sequencing the activities. Custom ABAP code used to help for any error handling.
- A completed task was created for a record of the action. The list of tasks are used to monitor about the sequence of the tasks that have already been taken care and list which are yet to be taken care.
- It triggers interface and creates Idocs.
- Dialog pop up screen for changing the email id(if required) of the customer while sending the quotation.
More documentation regarding the 'dependent follow on function' is available at FM QM07_MERGE_ACTIONBOX and one example is demonstrated as below.
Adherence to a Sequence of action can be configured in following way.
Example:
Step 1: Inform and Send mail
Step 2: Initiate Approval
Step 3: Initiate Follow up
Condition of sequence:
Steps | Sequence | Remarks |
---|---|---|
Step 1 to be active and performed first | 1 | At this stage, step 2 and 3 are to be inactive. Once step 1 is performed, the same should be made inactive |
Step 2 to be active & performed | 2 | At this stage, step 1 and 3 are to be inactive, Once step 2 is performed, the same should be made inactive |
Step 3 to be active & performed | 3 | At this stage, step 1 and 2 are to be inactive, Once step 3 is performed, the same should be made inactive i.e all are inactive and the end of the process. |
Configuration:
Plant Maintenance and Customer Service>Maintenance and Service Processing> Notification Processing>Additional Functions>Define Action Box>Define Follow-Up Functions (Generated Tasks/Activities)
Action Box Item | Action Box Item Description | Completed Task Radio button | Only performed Once Check box | Dependent Follow up Function check box | Dependent Follow up Function |
---|---|---|---|---|---|
0010 | Inform and Send mail | X | X | 0020 | |
0020 | Initiate Approval | X | X | X | 0030 |
0030 | Initiate Follow up | X | X | X |
At the end of the 3rd step, the notification will have all the 3 tasks completed and all the 3 action box items are grey and inactive which is end of the process. This is as below.
Initiation: Notification creation
After 1st step execution,
After 2nd step execution.
after 3rd step execution and last step.
Action box Item color code
Grey: Performed once
Black: Inactive
Blue Underlined if curser focused: Active
Hope the above document helps.
ETM Catalog - Input File Format and Analysis
Data Present in SAP HELP :
----------------------------------------------------------------------------------
Standard Program
/SAPCEM/CATALOGUE_INPUT
Short Text
Data Transfer - Catalog Data
Purpose
This report serves the DIRECT-INPUT of catalog data.
Prerequisites
If you want to use DIRECT-INPUT, you must have defined a catalog under the IMG node Define Catalog Code.
For catalogs with characteristic values, you also have to ensure that that catalog class and the appropriate characteristics exist and that the class/class type has been entered in the above IMG node.
The data can either be made available via an appropriate tool such as EXCEL (for example, for catalogs that have been self-defined) or via data preparation programs (report /SAPCEM/INPUT_BGL91 for BGL91 data, report /SAPCEM/INPUT_BAL90 for BAL90 data).
A file with the following properties must exist for the data transfer:
- The data is stored in ASCII format and separated within a record with the TAB as separator (*.txt).
- There are three different data types within a data record:
· #1 catalog data
· #2 text data
· #3 characteristic data - You must enter data type #1, but the other two data types are optional. Optional entries are displayed as such in the data type structures.
- Data type #1: there is exactly one entry with the following structure per data record
· #1
· Structure- / catalog number
· Interpolation indicator - Data type #2: there can be any number of entries with the following structure per data record:
· #2
· Language indicator (e.g. D for German, E for English)
· Catalog Text
· BOM text, only to be recommended for CEM BOM catalogs
The catalog text is the descriptive text that is assigned to the numbers in the catalog in the catalog structure display.
The BOM text is a shortened description of the numbers in the catalog that is displayed in the BOMs.
Only the catalog text has to be defined for the catalog structure. It is not absolutely necessary to define a catalog structure for a catalog, but it helps.
When the BGL91 is converted, the catalog text for the catalog entries is determined either via the text file included, if there is none, it is copied from the BOM text.
For a CEM BOM catalog that you defined yourself, both the catalog text and the BOM text should be defined for the catalog entries. Entering a text after the language indicator is always valuated as catalog text, only subsequent text entry would mean the BOM text.
- Data type #3: there can any number of entries with the following structure per data record:
· #3
· Characteristic name
· Characteristic value
Selection
The catalog indicator, the file name (with path) of the data file and the transfer type (I = create, M = change) has to be entered on the selection screen. If you set the "Test run" indicator, only a data test takes place and the data error or data information, if the processing is successful, is returned. If this indicator is not set, the data is also updated.
Example
Structure entry with two languages:
#1 123 #2 D Überschrift #2 E title
Catalog entry with structure text and BOM text and a characteristic
#1 12345 #2 D Test record TEST #3 VALUE 2,6
Catalog entry without text and with a characteristic
#1 12345-a #3 SIZE 7
----------------------------------------------------------------------------------
Analysis : (This might be helpful for both Technical and Functional Consultants)
With the above example , some might have confusion on the exact input file format. Here is my analysis.
(Attached the text file with sample data)
Object: Need to Provide Input file format for the Standard Program /SAPCEM/CATALOGUE_INPUT.
Selection Screen of the above Program:
Note: 1) As F4 help is not provided for the ‘File name’, user should copy the path of the file.
2) Catalog Code must be defined, as mentioned in the Pre requisites.
3) Activity Mode ‘I’ for Add and ‘M’ for Change.
4) Checkbox is used for Test Run.
There are three different data types within a data record:
· #1 catalog data
· #2 text data
· #3 characteristic data
Note: Data type #1 is mandatory and remaining two are optional.
From the Example, it is obvious that each record has different data types starting with hash (#1, #2, #3).
Program Flow:
Input File:
After analyzing the code, each field in the record should be separated by a TAB.
Each red box indicates a TAB.
Selected the Catalog Code as BGL92 (Already configured in the system)
Provided the file path
Data in the input record got updated as
Note: Each TAB is converted to ‘#’.
As per the Program logic, the record should split at ‘#’. It’s mandatory to provide TAB after each field in the record.
Loop Logic needs to be analyzed carefully, in order to maintain different data types.
When the Loop executes for the first time, the value present in <SPLIT> is
As the IF condition passes, HLP_TYPE will be assigned with Data type (1)
No Assignments or manipulations will be done in PERFORM APPEND_WORK_AREA, as no data is assigned to fields WA_KATAL (Catalog no.), WA_TEXT (BOM and Characteristic Text) , WA_VALUE (Characteristic Value).
When the Loop executes for the second time, the value present in <SPLIT> is Catalog Number
In this Case IF condition fails as <SPLIT>-FIELD (1) is not equal to '#'and control goes to ELSE part.
When all the conditions like (Edit mask, Length of catalog Number) satisfied, WA_KATAL will assigned with catalog number provided in the input data file.
When the Loop executes for the third time, the value present in <SPLIT> is Data type (#2).
As the IF Condition is satisfied, HLP_TYPE is assigned with 2 and
PERFORM APPEND_WORK_AREAS is called and Catalog Internal table will be appended as WA_KATAL is not initial this time.
Inside PERFORM APPEND_WORK_AREAS.
When the Loop executes for the fourth time, the value present in <SPLIT> is ‘EN’ representing language English.
The Control goes to ELSE Part and WA_TEXT (Characteristic Text) will be assigned and in next loop, WA_TEXT will passed to corresponding Internal table in PERFORM APPEND_WORK_AREAS.
Note:
BOM Text will be updated based on the ‘Use of catalog’ filed value in Table ‘J_3GT370S’.
BOM Text will be updated only when ‘Use of catalog’ is equal to ‘S’. In remaining cases BOM Text will be ignored.
Similarly, in further loops of SPLIT table, the characteristic Value will also gets assigned to corresponding internal table and finally gets updated into Database tables.
The Results Log is displayed as
Table Entries:
Table J_3GKATAL
Table /SAPCEM/KATTEXT
Hope this might be helpful.
Thanks
V Prasanth Kumar Reddy
Managing Different Languages in SAP PM - A Functional Consultant Perspective
SAP system handles multiple languages, multiple currencies and multiple time zones and on and on.....
This document will detail how multiple languages can be handled in SAP PM from a functional consultant view. This might not be for entire SAP suite of products.
Language management is detailed for below requirements.
- Language maintenance as system administration activities.
- Multi-language management in SAP PM configuration
- Multi-language management in SAP PM Master data
- Multi-language management in SAP Development scenarios
Language maintenance as system administration activities.
This is done in SAP through tcode i18n. New language is added in tcode SMLT. It is normally executed by a basis consultant.
A typical screenshot for multiple language management in configuration is shown as below.
Once the languages required are maintained in system, an user can log on to SAP though a standard default language 'EN' or any other language required as below. Here the log on language is 'DE' - German.
After logging in, the easy Access Menu will like below. All label will be in German language.
Multi-language management in SAP PM configuration
Equipment display (IE03) will look like below.
in DE(German) | in EN(English) |
---|---|
Above screens show a comparative view of the same transaction in different languages. Please note that the below two observations.
- The Tabs title are not visible in German apart from 'General Tab'
- Technical object type description 'Pipe' is not visible in German.
After investigation it is found that the tab title is not maintained in DE language during configuration.
The same is proved based on the table entry.
The reason for not showing the 'Type of technical object' description is for the same reason that the description is not maintained in DE language during configuration.
As part of the configuration, if we want to have maintain the configuration values in different languages it is handled in multiple ways
1. Look for the Menu Goto>Translation
2. language maintained is available during configuration like User status
at status level
For most of the nodes which need configuration values to be maintained in different languages are to be handled as mentioned above but some configurations which are very specific to a region, plant,plant section, planner group, location the translation facility is disabled. Let us check the configuration of 'Plant section'.
Below table in configuration objects in plant maintenance which are categorized based on the above principles.
Translation Allowed | Translation disabled |
---|---|
User status,Authorization group,ABC indicator,Types of Technical Objects | Planned group |
Set View Profiles for Technical Objects,Permit Categories | Plant section |
FLOC Category, EQPT Category, FLOC Structure Indicator | location |
Consumable Types, Engine Type, Usage Type in Fleet Management | Org Area definition in Linear Asset Management |
Offset type definition in Linear Asset Management | |
Object Link: Object type, Medium | |
Serial Number Profiles,Set Maintenance Plan Categories | |
Maintain Task List Status, Define User Fields, | |
Maintain Task List Status, Define User Fields, | |
Notification type, Screen Template, Catalog type,Code group, catalog code, Catalog profile, priority type, Priority, response profile, service profile, Action box items,System conditions, Operational Effect, | |
order type, PM activity type, reason for variance, Value category, Control Key |
In addition to the above for equipment, we can maintain the multilingual text based on the equipment category in configuration.Plant Maintenance and Customer Service>Master Data in Plant Maintenance and Customer Service>Technical Objects> Equipment> Allow Multilingual Text Maintenance for Each Equipment Category
These are a few list of objects in PM, but list can grow based on the principle of translation.
Multi-language management in SAP PM Master data
When a master data needs to be uploaded as part of Data migration, the short text, long text, free text fields need the data as the desired languages. The field which contents are drop down values (controlled by configuration) will be automatically shown based on the log on language if the translation exists for the object.
Some objects for which the translation are not possible are maintained in the desired language. That means e.g 'planner group' which can't be translated can only be maintained in log on language. For a user who logged in with 'FR', only planner groups related to
Functional Location : Menu Goto>Multilingual Text
Equipment : Menu Goto>Multilingual Text
Work Center: Short Text and Long Text. Menu Extras>short texts
Measuring Point: Direct update of short text, log text in desired language i.e log on language
Bill of Materials: Direct update of short text , log text in desired language i.e log on language
Task list header/ operation: Direct update of short text , log text in desired language i.e log on language
Maint. Plan/item: Direct update of short text , log text in desired language i.e log on language
Maint. Strategy: Menu Goto>Translation
Standard Text key: CA10: The standard text key needs to be maintained in different language so that it can be used in order processing further as below.
Characteristics: Menu Extras> Change Language or at 'Descriptions' Tab with desired language.
Class : Menu Extras> Change Language. After changing the language the description needs to be maintained in desired language. after logging in with the desired language, short description will be shown in desired language.
in DE German | In En English |
---|---|
Multi-language management in SAP Development scenarios
Apart from configuration and master data, also from a functional consultant perspective development objects needs attention with respect to Multi languages management.
Forms: special care needs to be take to fetch the data from SAP with respect to the language in which the form needs to be printed. Field label and field contents are to be dynamically fetched and populated in form output.
Enhancement: In this case if we are adding new fields into sap transactions though screen enhancement, we will have to create Data element and these have to be created with respect different language with either through SE11 or SE63. The same is applicable to screen label also.
When we build the custom message, all message attributes and the actual message needs to be created with respect to desired languages (SE91)
SO10 text can also be created with respect to different languages.
Report: If report is to be made from standard fields, then it is automatically taken care. If it is from custom fields, the above point in enhancement will take care. If some output fields in the report which are dynamically displayed by processing the existing fields, then that needs to be taken care by ABAPer with respect to desired language.
SAP Help for text element : Translating Text Elements - ABAP Workbench Tools - SAP Library
Interface: In case of inbound interface when some data is updated/created, if it is to be created with respect to a specific language, then it is to be taken care in the program which does that.
For outbound interfaces, when the data needs to be fetched from SAP, the fetch program should take care of the same.
Hope this helps.
Equipment Availability - Concept & Issues
Equipment Availability - Concept & Issues
______________________________________________________________________________________
Author: Jogeswara Rao Kavala
The Objective:
In many industrial situations, performance analyses often lead to queries about the Equipment Availability.
This document mainly gives the concepts of the same and discusses about the calculations and issues in calculations.
The Availability & MTTR, MTBR
The Availability of an Equipment is known by different names such as
- Equipment Availability
- Operational Availability etc.
Common formula used for the Equipment Availability computation is
This is expressed in percentage and calculated using the following methods
___________________________________________________________________________
Method1
Where
A (Available Hrs) = Mission period in Hrs– Maintenance Hours
B (Breakdown Hours) = Downtime in jobs recorded through M2 Notifications
Mission Period in Hrs = 720, when you are querying the report for a period of 30 days
(30*24).
Maintenance Hours is Downtime in Jobs recorded through preventive jobs.
(usually through M3 Notifications)
_______________________________________________________________________________________
Method 2
where
MTBR = Mean Time Between Repairs (Hrs)
(Also known as Mean Time Between Failures - MTBF)
MTTR = Mean Time To Repair (Hrs)
___________________________________________________________________________
MTTR and MTBR
Example Data:
The above figure shows details of M2 Notifications (Breakdowns) in a month.
The Yellow lines indicate the details of 4 Breakdowns in the month.
The Brown line indicates the details of immediate previous breakdown.
MTTR = Sum of Downtimes (Hrs) / No. of Breakdowns
= (1.35 + 0.17 + 0.18 + 0.83) / 4
= 0.6325 Hrs
MTBR = Sum of Intervals between two
Breakdowns in sequence / No. of Breakdowns
(Here the Brown line details are
used to calculate the interval before the fist yellow-line.)
This comes to 153.45 Hrs.
Here the Availability = [ 153.45 / (153.45 + 0.6325) * 100 ] = 99.6 %
We know that MCJB and MCJC are the PMIS Tcodes to see the MTTR, MTBR values of an Equipment or a Functional Location respectively.
There will be no issues when availability figures are calculated through Z-Reports for equipments as individual objects.
But issues arise at Hierarchical cases like few explained below:
The ‘Crane’ situation:
End-users create Breakdown notifications simultaneously with several time overlaps on many equipments under a single Industrial Crane (F/L) during breakdown stoppage. They do not create any notification on Crane proper (F/L).
But expectations will be there that because of hierarchical representation in the system, database should be able to give the Availability figures at Crane Level.
‘Functional Agencies’ Situation:
In the maintenance function of large manufacturing/process industries, maintenance agencies are sectionalised such as Mechanical, Electrical, Hydraulics, Instrumentation etc. Here these agencies record their Breakdowns / Preventive maintenance activities on their respective equipments independently.
The cases where proper structuring is not done with a focus to capture the availability figures on key assets, involving all the data entered by these agencies,the availability computations on top hierarchy equipments looks very difficult.
-----@@@----
10 Useful Tips on Infoset Queries
Introduction
Often it is seen that. Infoset-query users, stop exploring at the 1st hurdle and switch to ABAP report programs, for requirements a little bit beyond simple ones. But, it is the author's experience, that we can use this tool (Infoset Query) given to Functional people by SAP, to reach very close to the ABAP report programs, with features like those discussed in the other document and also some discussed here.
In this document the author tried to put together the pieces of his knowledge to present in the form of a document.
Tip1
To have a Tcode to your work in Infoset Query.
The following screen with report name appears..
Now you give this report name to your ABAPer and ask him to create a Tcode
OR
You do it yourself through SE93 Tcode, if you have access.
Steps for SE93
And Save. Thus your Infoset query will now be working with Tcode ZTCODE
(This applies also to Quick Viewer report SQVI)
Tip2
Calling Reports from Infoset Query reports.
The output of your query contains key fields like Notification no., Equipment No. etc.
It is natural that one wants to go to the Notification screen or the Equipment screen from the output.
Do this way.
In SQ01
We get this screen
Click here on then on
then select
In the resulting pop-up, specify the Tcode you want to link with the Row in the SQ01 output.
Say IW23 and Save.
It is Done.
Now upon D'clicking anywhere on a particular line item in the query output, you are directed to IW23 screen of the notification of the line-item (row).
You can have many such report assignments.
Suppose you want to have IE03 also. Then repeat the same steps above to have IE03 Tcode.
Now when you D'click (anywhere) on one line-item (row) of the Query output, you will be presented a pop-up menu to select which one you want. i.e.,
Display Notification or Display Equipment. You are taken to the corresponding screen as per your choice.
Note:
We always need to remember that, after Tcode assigning, the modifications done in SQ02 or SQ01 would be in effect to the Tcode, only after executing SQ01 once.
More Details on this subject here: Calling Reports from an Infoset Query
Tip3
Make your report colorful with giving different colors in order to group columns
In SQ01 Basic ListScreen
Here just Drag & Drop the color from Right Tool-Box to the desired field in the Centre portion.
OR
Double click on a field in the Centre, to display field details and color options on the left. Now you select the color.
Example of such output.
Tip4
Always have Selection Fields from Infoset (SQ02).
What does this mean and Why?
This means
We have options for Selection Screen designing both in SQ02 and in SQ01. It is advantageous if we declare selection options in Infoset (SQ02),
Here is how we do it. (In the Extras area), Go to Selections Tab, Click on Create icon, select Selection Criterion or Parameter like below.
And define the Selection field as under.
Observe here the strings written in Extras field.
OBLIGATORY makes this field in the selection screen mandatory.
NO INTERVALS removes the selection range (Removes the To field of the selection criterion)
NO-EXTENSION removes the multiple selection push button
DEFAULT 'M2' provides the M2 value as default in the field.
Like-wise you can design a selection screen as shown below by defining fields one after another.
Note that, we can declare only Standard Selection Fields here. Additional Fields are to be taken into Selection Screen only from SQ01.
The disadvantage in having these standard fields into selection screen from SQ01 is, the previously used values reappear as defaults for new running of the report. We need to erase and type our values. Also there is no provision for making a field mandatory.
Tip5
This is to develop queries in Standard Arearather than in Global Area.
What is this?
See the option below in SQ02 while creating an Infoset Query.
In the Query Areas above we have two options: Global Area, Standard Area.
When we are working in Development Server (client 200 or 210), we work in Global Area option, which generates a transport request, subsequently this will be transported to QAS and PRD at the end of work.
When we select Standard Area as the name indicates, it is client-specific. This means you can directly develop in PRD with this option. To have a Tcode for reports developed so, we need to use the same way explained earlier in this document. But it is to be noted that, we get the report name from the PRD client where we developed the report, and create a Tcode in Development server (client 210 or 200) and same will be. transported to PRD. (One time job)
The main advantage I always enjoyed here is, the moment some addition/deletion/modifications performed on this repor, it is instantly available in PRD.
(No hassles of transport requests). Only requirement is to run SQ01 once. The Tcode will be giving the changed report.
Also, the testing of the the report work is done in a perfect environment with real-time data.
(Working through the Global Area option in Development clients may be having its own advantages, like work back-up , but I never felt such necessity in my environment.If needed we can have a copy report in PRD itself)
Tip6
In case we do not want a certain category of records in the output, then go to SQ02 --> Extras--> Code tab --> Record Processing section, and
Give a code like the sample given below.
What does this do?
With this code, the Infoset query does not bring any records where the ABC indicator field is blank.
Like-wise if you give a code like: check crhd-arbpl <> 'xyz123'.
the output will ignore the records with maint. work center value 'xyz123'.
(Note that these are permanent filters, For optional filters either the Selection Screen OR the Filter in the ALV output display can be used.)
Tip7
F4 help related
F4 Help is not available in infoset query.
Tip8
How to create a radio button in SAP Query SQ01/SQ02.
Tip9
Tip10
We know that, the infoset reports work on Table joins in Infoset. In complex cases, where many tables are joined, the correctness of report depends upon the quality of joins we define. Though system suggests some joins, user can define more joins as per his table knowledge. This is what controls the multiplicity of identical rows appearing in the output sometimes.
It is seen that in situations where the user is unable to control the duplicate (or multiple) identical rows , the CHECK statement used in Tip6 works conditionally. In other cases this multiplicity becomes one of the points where one is forced to go for an ABAP report.
The author has been working in this area since few years. This is an effort to share his knowledge about some very common requirements in this area with the forum. Hope member friends especially those who love Infoset queries, find this useful.
Thank you
Jogeswara Rao Kavala
PS: This post and all further posts in the area of Infosets have been compiled to this blogInfoset Queries: Collection of important posts
Automatic Task Determination in Notifications
Objective:
To automatically populate the list of Tasks upon selecting 'Priority' in a Notification.
Different sets of Tasks will be populated automatically according to the selected 'Priority' value.
Introduction:
Because this process is based on a 'Priority type' which is assigned to a notification, often custom notification types are preferred for this process.
(This is where the standard notifications prefer other priority types.)
Here the custom notification type is 'AC' and a case of Overhauling process of HVAC equipments is demonstrated.
The End result of this document is illustrated here:
Create a notification, select the priority ( Say here 'PAC O/H' ) , then in the menu bar go for
Edit --> Tasks --> Determine .
Set of tasks relevant to 'PAC O/H' are populated automatically, as shown in the images1,2,3 below.
Image1 (IW21/IW22)
Image2
Image3
Now let's see what is to be done to achieve this:
1.SPRO: Define Priority
In above picture, Rel.end field specifies the number of days the job takes to complete.
(Determines the Required Start and Required end dates of the Notification upon selecting the prioirty)
Note the Priority numbers in the above picture (1,2,3,4,5 etc), which will be referred in the forthcoming steps
2. QS41: Create Task CodeGroup (ACOH)& Codes
(List of all jobs related to all types of HVAC equipments)
3.SPRO: Define Response Monitoring
Create Response Profile '00000005'
Specify the Catalog type (2), Code Groups and Codes as under against priority values 1,2,3 etc (Referred above)
(So many number of priority values as many the equipment types)
Define Service Profile.
Specify Service profile and Response Profile against Notification type.
Now your Notification Type 'AC' is enabled to determine tasks automatically, different set of tasks with different value of 'Priority type' as demonstrated in the beginning of this document.
Application in maintenance plans using Notifications:
See the picture below. When these settings are made during the plan creation, the triggered notifications come alongwith the set of Tasks.
Thank you
-Jogeswara Rao K
Configurable Tasklist
Introduction:
Often there are requirements like having a common large tasklist for a category of equipments and choosing the operations selectively into the Maintenance Order depending upon the equipment specifications on which the order is being made.
Let me explain with an example:.
Suppose there are 100 motors falling into 6 categories as under:
SN | Type | Capacity (KW) | Population |
1 | Squirrel Cage Induction (SQI) | 5.5 | 20 |
2 | ‘’ | 7.5 | 30 |
3 | ‘’ | 11.5 | 5 |
4 | Slip Ring (SLR) | 5.5 | 10 |
5 | ‘’ | 7.5 | 15 |
6 | ‘’ | 11.5 | 20 |
Now the operations to carry-out the work on these machines vary with different ratings (specifications), often due to the variance in the amount of work involved.
We can have all operations of such 6 categories of 100 equipments in a single large tasklist, yet use in maintenance orders created on these equipments.
i.e., While creating the maintenance order, system would choose only those operations from the tasklist which are relevant to the equipment on which the order is being made.
Such tasklist is called a ‘Configurable Tasklist’.
Let’s assume the common large tasklist (General Maintenance tasklist) we have for all these motors is the one shown here, which is to be configured.
Now let us see how, the tasklist is configured.
1. Create the characteristics (CT04)
Create a capacity characteristic for ‘MOTOR_CAP’.
Now, specify the values and save.
Similarly create a Type characteristic for ‘MOTOR_MDL’.
Specify the values and save.
2. Create a class (CL02) ,
Say class ‘MOTOR_TYPES’ (type '300'),
Assign characteristics created above and save.
3. Object dependencies (CU01)
Create object dependencies as below:
Here dependency ‘SQI5.5’ illustrated.
Go to ‘Dependency Editor’ and specify the dependency as shown here.
Come back to CU01 initial screen and set the Status to 'Released'
Similar dependencies to be made for all combinations of Capacity and Type, viz.,
SQI7.5,
SQI11.5,
SLR5,5,
SLR7.5 and
SLR11.5
Here another illustration is given for dependency ‘SQI7.5’.
Come back to CU01 initial screen and set the Status to 'Released'
4. Tasklist configuration profile (CU41)
Create a Configuration Profile selecting General Maintenance Tasklist.
Create as shown below. (Do not give values in the value fields) and
Do not forget to select the 'Std Class' check-box.
5. Assign the class to equipments (IE02).
Assign class ‘MOTOR_TYPES’ to the these 100 equipments, with respective characteristic values as shown below:
(Go to 'Class Overview' screen and assign)
6. Assign the dependencies to tasklist operations (IA06):
As shown here:
Assign dependencies to all the tasklist operations which are equipment specific, in a similar way.
Leave the common operations untouched.
Now, the configuration is complete.
Let’s see what effect this exrecise has while selecting tasklist in an order (IW31/32).
Menu : Extras --> Tasklist selection --> Direct Entry
In the popup, give the Tasklist group and counter, as shown.
In the resulting screen, give the characteristic values of the order equipment,
Click ‘Back’ and go to the operations tab.
Here is the result:
System has chosen the relevant dependency operation (0040) and two operations, where no dependencies were specified. (0070, 0080).
This work can be extended to a tasklist of 100's of operations covering 1000s of equipments.
In my experience, very common application has been in Repair shops where equipments like Motors are repaired. Here very few numbers of Configurable tasklists are maintained covering 1000s of motors.
The author is a maintenance manager with 30 years experience in a large manufacturing industry, associated with SAP-Plant maintenance since more than 6 years
_________________________________________________________________________________________________________________________________
Related content:
User-Fields in QM and PM/CS Notifications : Screen-Exit QQMA0001
User-Fields in Notification Tabs: Enhancement QQMA0001
___________________________________________________________________________________________
Jogeswara Rao Kavala
Introduction
One of the very frequently asked questions in this space, is about the subject matter, i.e., How can I add Custom fields to my Maintenance Notification? A documentation on this subject would be helpful to the forum for ready reference.
Objective
This documentation is intended to enable the readers to create the Custom fields in different tabs of Maintenance Notification, update the Noyification Master data Table and also display these fields in IW28 / IW29 output.
Let's see how it is done.
Part1
Create Custom fields in the Notification Table
The table of our context is QMEL. We need to append our Z-fields to this through the include structure namely CI_QMEL.
The process of creating any custom field starts with creating a Data Element with desired Type and Length or with desired Domain name and with the Field Labels we want to have for the Customer fields. For our Demo, we have created Two Data Elements, namely :
- Z_DELAY - Type DEC Len 3 Dec 1 and Field Label ‘Delay(H)’
- Z_REASON - Domain TXT40 and Field Label ‘Reason for Delay’)
Now let us create our Customer fields.
Run Tcode SE11 --> give value QMEL in the Database Table field --> Click on Display. Scroll-down to find include tableCI_QMEL. Double click on this, Go to Change mode and Add Two new fields of our interest as shown in the picture and Activate.
As seen in the picture, we have created Two Customer-Fields namely ZZDELAY and ZZREASON. It is essential for all Customer fields used in Enhancement purposes to be prefixed with ZZ.
Part2
Enhancement and Screen-Exit
1, Create an Enhancement Project say ZPMNOT using Tcode CMOD.
2. Assign Enhancement QQMA0001 to this project .
3. Click on Components in the picture above to reach this screen.
4. Activate by clicking on the Activate Icon (shown in picture above)
Now the screen is like this.
As we see here, there are several screen-exits (27) and Two Function-Exits namely EXIT_SAPMIWO0_008 and EXIT_SAPMIWO0_009 in this enhancement.
Double Click on this screen number to create a Sub-Screen for holding our Custom Fields. You’ll get this pop-up. Press Enter and Continue.
You’re in the screen below, where you’ll give a Description, Select the Subscreen Radio button, Save and Activate.
Click on Layout Arrow in the Application Toolbar of (See the picture above) to reach the Screen-Painter pop-up window, where we will be creating :
- A Box to hold our Z-fields
- Text Fields to for Z-field labels
- Input Fields for Z-fields
The input fields should be referred to the Dictionary fields we have just created. (QMEL-ZZDELAY and QMEL-ZZREASON) as shown above.
Activate the screen-painter.
Part3
Codes to be given in Function-Exits
Go to the following screen
Double click on the Function-Exit EXIT_SAPMIWO0_008 and put the following code in the include ZXQQMU07 .
*---------------------------------------------------------------------------------------------
TABLES: QMEL.
MOVE-CORRESPONDING I_VIQMEL TO QMEL.
*---------------------------------------------------------------------------------------------
Similarly put the following code in the include ZXQQMU08 of the Function-Exit EXIT_SAPMIWO0_009.
*---------------------------------------------------------------------------------------------
MOVE-CORRESPONDING QMEL TO E_VIQMEL.
*---------------------------------------------------------------------------------------------
Part4
SPRO setting to be done
Navigate to the Overview of Notification Type in SPRO.
Select your Notification Type (Here we are doing it in M2) and Enter the Screen Structure for Extended view
Give the following settings in the Malfunction Tab (the tab where we want to have our custom fields)
Almost Done
Let’s see the effect of work done so far.
Create a Maintenance Notification (IW21). You will see the following addition of subscreen area in the Malfunction Start/End Tab.
Enhancement has been added here by the system, in which our Custom fields appear with their labels and the input fields.
Now let’s add some values in these fields and Save the Notification.
Run IW22, open the Notification and verify whether the values are updated to table or not. If they are appearing as you have entered and saved, this means the QMEL table has been updated with these values when Notification was saved.
Part5
Let's have these Custom fields in the Notification list output namely the ALV of Tcode IW28/29
So far we have succeeded in creating our Custom fields and updating the values to the Notification Master data. Next natural requirement of a user would be to have these fields in IW28/29 ALV screen. For this purpose we, need to create an Append Structure in the Structure RIHQMEL_LIST, as shown in the picture below. The Tcode is SE11 again for this task. Here we have created an Append Structure named ZDLAY and in this structure we have added both the Custom fields.
Now let's create few more Notifications, with custom fields filled with some values. Now run IW28 with selection parameters to display these Notifications we created. Click on the icon shown , You'd find the Custom fields in the Column-set list, Bring them to Displayed list on the Right hand side.
Part6
Now if you go to IW23 of any of these Notifications, unlike all other greyed-out fields, the Custom fields will be seen Editable. Though there is no provision to Save the edits here, you’d definitely like to have these fields too in Greyed-out mode.
For this we need to write a small code in the PBO (Process Before Output) module of the screen 0103 we have created. Double click on the Screen number 0103 of the enhancement,
Un-comment line MODULE STATUS_103. and D’Click on the STATUS_0103 of the PBO module. Insert the following code between the MODULE, END MODULE lines like this.
------------------------------------------------------------------------------------------------------------------------
MODULE STATUS_0103 OUTPUT.
IF SY-TCODE = 'IW23'.
LOOP AT SCREEN.
SCREEN-INPUT = '0'.
MODIFY SCREEN.
ENDLOOP.
ENDIF.
ENDMODULE.
-------------------------------------------------------------------------------------------------------------------------
Lastly Rememebr to
Activate the Function GroupXQQM from Tcode SE80. Right click on the Function Group and click on the Activate option
...... and thus we reach to the end of this knowledge sharing Documentation.
Note
1. As this is largely a Technical job, it is recommended to be developed through an experienced ABAPer, especially Part1 which involves Activating the Standard table QMEL.
2. The Environment of Author is ECC 6.0 with no EHPs, hence the document applicability.
Expecting this document too would be of use to many of the members,
Thank you
Jogeswara Rao Kavala
Making Boxed Reports for BOMs using LDBs in Infoset Query
Introduction
Reports on Equipment BOMs, Functional Location BOMS or Material BOMs are not available in standard. We can make these reports using respective tables through infoset queries. SAP provided a great facility in the form of Logical Databases in these areas using which, the report making becomes very easy. Using LDB eliminates the hassles of using independent tables and troubleshooting the joins. LDB has everything in-built for you.
Logical Databases
CTC - Functional Location BOM
CEC - Equipment BOM
CMC - Material BOM
Using LDBs we can design the output as Boxed Reports, i.e., One BOM for each box. See this
Like IT? Let's see how we make it .
This post might not cover every detail at basic level as these aspects are discussed in detail at the post Infoset Queries: Collection of important posts
So here we see the vital aspects of how to make subject reports.
We are learning through the example of Equipment BOM
Infoset (SQ02)
The Infoset is created based on Logical Database CEC as shown below.
As mentioned already everything is already in-built in LDB. You need to just select the fields you want to take into Query. I have taken these.
Here I’ll share with you about the extra fields I’ve created for my report.
My report needs ABC Indicator and Planner Group (LDB does not have these fields). So I created these 2 fields as above and fetched the values as under.
Code for ABCKZ
Code for INGRP
All done here in SQ02. We will have Program (user) selection fields from SQ01 (Query). Let’s Before we swich to SQ01, generate the Infoset we created and assign to our Usergroup.
Infoset Query (SQ01)
Create an Infoset Query based on the Infoset we’ve just Created. Take the fields you require into the output. I have taken these.
Now Go to Settings in the Menu and click on Settings to get this pop-up.
Clear Graphical Query Painter checkbox if checked already. This allows us to design each record in the output in separate boxes in ABAP List option.
Click on Basic list . Here you can define the line structure. Here instead of detailing I’m giving the screens of my work one after one.. (You can play with other options and study the behaviour).
The first screen of Line Structure (Line numbers, Field sequence, Sorts etc)
Next page of Line structure. (through Downward arrow)
Now Press F6 (or click on the icon below) to go to Next Screen The screens are given here one after another.
Next Screen1
Next Screen2
Next Screen3
Next Screen4
Here in this screen you can define the Feilds for colors in the Column Format shown above. OR you can give colors to the fields by switching to Graphical Basic List Option and as explained in the document referred in the beginning.
Next Screen5
This completes the Box design.
Now let's save the Query and execute. See the Selection screen here.
Give your selection field values (in Planner Group etc), Select the ABAP List option and execute. See the output.
One Box for each Equipment BOM, where Equipment details are given in the first line and the component details in Green anf the count summery at the bottom. I like this boxed report.
Then, if someone wants to see this report in ALV only, then a mouse click on the icon in the Application toolbar converts this report into ALV. Click on Back button to come back to Boxes format.
So that's everything about this. It is obvious that the respective reports on Functional Location BOMsand Material BOMs are made in a very similar manner using the respective Logical Databases.
Expecting that this document too would be of help to members.
Thank you
Jogeswara Rao K
User-Exits IEQM0001, IEQM0002: Additional checks in IH01 Structure
Introduction
Like useful Enhancements belonging to various packages in the area of Plant Maintenance discussed so far , we have Enhancements in Package IEQM also, out of which the first two namely, IEQM0001 and IEQM0002 controls the Equipment Structure (IH01) as per the customer need. Through these Enhancements we Qualifyan Equipment to be under a Functional Location (IEQM0001) or under a Superior Equipment (IEQM0002). The logics to be written in the respective Includes (ZXEQMU03, ZXEQMU01) are quite similar.
Objective
This document helps readers in knowing how to use these enhancements to maintain a Quality Asset Structure. As a demo, we will see here the use of IEQM0002 enhancement which defines the Qualification of an Equipment to be as Sub-Equipment to a particular Equipment in a hierarchy. The same will be applicable to implement enhancementIEQM0001also. The environment I have selected here is a Fleet Structure where the Earth Moving Equipments (Dumper, Excavator etc) are mapped as Superior Equipment and the Tyres as Sub-Equipments. Hence, this document can be read in continuation with a previous document with the same Fleet Background namely, Measurement Reading Transfer – A useful functionality.
Let's understand how it is done.
We have so far seen where to write our logics in User-Exits. These basic were discussed in previous Documents like User Exit 'QQMA0014', In a similar way we need to give the logic in the incluse related to our User-Exit. The include is ZXEQMU01.
There are 2 parts in implementing
1. List out your specifications required to qualify an equipment to be sub-equipment in a structure, like......
'If the type of a superior equipment and sub-equipment belong to Fleet, if Position for sub-equipment is vacant, then only system should allow the Sub-equipment to install under the Superior Equipment'.
Demo Situation
Consider a Dumper which has 6 Wheels. We then coded the wheel positions of Dumper as
Wheel Position | Code |
---|---|
Front Left | FL |
Front Right | FR |
Rear Left Inside | RLI |
Rear Left Outside | RLO |
Rear Right Inside | RRI |
Rear Right Outside | RRO |
(Similarly, an Excavator can have 4 Wheels coded as FL, FR, RL and RR)
See this demo structure.
Here a Dumper D-153 is taken for Demo. This vehicle has 6 Tyres installed in the 6 wheel positions. And each Tyre has been specified the position where it is installed in its Masterdata like this.
Now suppose I have written the logic required to satisfy all my conditions in the include. Let's now see how this logic works.
1. First I have dismantled one Tyre having the position say RRO, and tried to put one AVLB Tyre under D-153 with position with some other value.
See What error I get,
2. Similarly without Dismantling any of the 6-Tyres, when I tried to install another wheel, I get this message.
3. Like-wise, when by mistake, I put a value in the Position field other than the 6 codes, i get this message.
These are just few examples, for which the logic to be given in the include I have attached herewith. There will be several such possibilities you can configure with similar syntax, like for:
- Matching the Superior Equipment and Sub-Equipments Category (EQTYP) and several such.
Important:
When we give a code in an enhancement, it applies to all types of Equipments. So we should start any such code by specifying condition such as 'If the Equipment is a Fleet Equipment' etc. Observe the first line in the code attached, this specifies the same and isolates the present code from other Equipment Categories.
Note:
In a similar way we can define the Functional Location and Equipment relation using the enhancement IEQM0001. Also as I said above a document which connects to the present topic is Measurement Reading Transfer – A useful functionality
In the code attached EQART (Type of Technical Object) field-name is used to identify the vehicle (Dumper, Excavator etc). for this purpose we maintain these values in the Tyre Master data like:
So.....
this is another effort of Knowledge sharing in Enhancement area, the idea of which arose when the author recently seen a discussion regarding Fleet Structure.
Hope members would be benefited.
Thank you
Jogeswara Rao K
F4 help filter in Catalogs & Codes tabs of Notification (User-Exit QQMA0015)
Introduction
Catalog-coding functionality covers wide range of applications, hence configured in many different ways to suit the individual requirements.
In this document one such situation has been dealt, where user would like to filter the F4 help of other catalogs as soon as he selects a code-group in object-part (Catalog B).
The End-result of this document
In a Notification, the F4 help in Catalog&Codes tabs Causes, Tasks and Activity, will automatically present the respective codes related to the item selected in the first tab (Object part/Damage). This is done using User-Exit QQMA0015
First, Let's see what is the feature we are talking about:
Select a Code& Code Group in the Catalog-codes tab of a notification.
(Say we have selected ‘DRIVE-SET’)
Upon selecting the ‘DRIVE-SET’ in the Object Part, the filter effect will be activated in the F4 help of all
other catalogs, by showing only the Codes of the Code Group with same name (selected in catalog B).
Here on, this is how the F4 help is presented for other Catalogs (Catalog C is demonstrated here)
Previously, without this filter, all the Code-Group folders were appearing from where you were required
to open the respective folder to select the desired Code.
Similar F4 help filter will be seen in all the other catalog tabs. (namely 5,2 and A).
Note:
In spite of this arrangement, if one needs to override this, he can simply type the name of the other
desired Code Goup (say CG1 or CG2) in the Code Group cell and press Enter. The respective codes
will be appearing.
Find Useful? Then the following section will help you achieve this
Let’s suppose we have a coding data as under.
QS41:
- Create Code Groups with same names across the 5 catalogs (Here these are CG1, CG2, CG3)
- In Object part (B) maintain single code for each group ie., the part itself as shown below (QS41).
- Complete other Coding (QS41) as per the above Excel-sheet data.
OQN6:
- Create a Profile as shown below.
And assign this Profile (PUMPASSLY) to the respective Equipments.
The F4 help Filter
Write the following Code in the include ZXQQMU21 of user-exit QQMA0015.
FIELD-SYMBOLS : <L_EBENE> TYPE ANY. IF I_VIQMEL-RBNR = 'PUMPASSLY'. ASSIGN ('(SAPMIWO0)VIQMFE-OTGRP') TO <L_EBENE>. IF SY-SUBRC = 0. IF I_EBENE = 'OT' . MOVE I_CODEGRUPPE TO E_CODEGRUPPE. ELSE. MOVE <L_EBENE> TO E_CODEGRUPPE. ENDIF. ENDIF. ENDIF.
-------------------------------------------------------------------------------------------------------
Now the desired F4 help filter will be available.
Added on 08/07/2013
If in some situation the user needs the filter to be on Damage code groups too,
i.e. When a code group is selected either in Object part or in Damage further catalogs will be automatically presenting the respective Code Groups only.
A code similar to this would satisfy this need.
DATA: C(50) TYPE C VALUE '(SAPMIWO0)VIQMFE-FEGRP'. FIELD-SYMBOLS: <FS1> TYPE C. FIELD-SYMBOLS : <L_EBENE> TYPE ANY. ASSIGN ('(SAPMIWO0)VIQMFE-OTGRP') TO <L_EBENE>. ASSIGN ('(SAPMIWO0)VIQMFE-FEGRP') TO <FS1>. IF SY-SUBRC = 0. IF I_EBENE = 'OT' OR I_EBENE = 'FE'. MOVE I_CODEGRUPPE TO E_CODEGRUPPE. IF <L_EBENE> IS NOT INITIAL . MOVE <L_EBENE> TO E_CODEGRUPPE . ELSEIF <FS1> IS NOT INITIAL. MOVE <FS1> TO E_CODEGRUPPE. ENDIF. ELSE. IF <L_EBENE> IS NOT INITIAL . MOVE <L_EBENE> TO E_CODEGRUPPE . ELSE. MOVE <FS1> TO E_CODEGRUPPE. ENDIF. ENDIF. ENDIF.
Thank you
Jogeswara Rao K
Explore ALV Graphs
Introduction:
Graphs play a very vital role and have got great impact on business decisions. Senior Management, Clients, Customers all such stake-holders want to see information through Graphs to understand things easily. In SAP we have easy tool facility in ALV screens, but ...... It has been observed that threads related to ALV Graphs are rarely seen here.
Objective:
At the end of this document, members will be familiar with the basics about the ALV Graphs, as well as about various features available. I am sure certain cross-section of members will be benefited by this post through which they will be learning how to interpret the ALV data into various types of Graphs.
Note:
The features discussed in this document are largely applicable to ALVs of custom programs developed through SAP Queries or ABAP codes using fm 'REUSE_ALV_GRID_DISPLAY'. Things mentioned in this document are not applicable to ALV Graphs through Standard programs.
Here we start....
How we get a Graph in ALV?
We know that Graphs need numeric fields for Y-Axis. So the ALVs not containing a single numeric field are not Graph-relevant. Also the field for which you want to plot a Graph, looks like a Numeric, but if its data type is Character, then too it is not possible to plot a Graph for this field. In other-words we can say that, the ALV Layout where there is no icon in the Application Toolbar, we will not be able to draw Graphs.
Ok...Let’s come back to the Graph possibilities. We are in the following ALV screen. Here these are 2 fields for X-Axis namely FinYr and Equipment Description. We have 4 numeric fields for Y-Axis i.e., MTBR, MTTR, TotBDns and Avlb%.
Now select the first 2 columns (for X-Axis) and 3rd column for Y axis (Means we are drawing graph for MTBR values) as shown in the picture below....
....and click on the Graph icon to get this graph window.
What we see in this picture is, system default scale presents only 5 bars in X-axis, for the rest we need to use horizontal Scroll (seen in the picture).
Here we start our exploration of ALV Graphs
1.To have all the Graph bars in one view (in other-words to remove horizontal scroll)
Place the Mouse pointer anywhere on the X-axis line and Right click, to get this menu.
Click on Format Axis... to get a pop-up screen. Go to the tab Scale.
Change the value shown above to as many as you want. In our case the bars are 8. So we change this value to 8. Now the graph has got rid of horizontal scroll showing a;; the Graph bars, like this.
2. The Y-Axis
We see the bar with maximum value is touching the top of the Graph area, by default setting, where we want create some room above this. This is nothing but we need to set the Y-Axis value. Our present maximum value of Y-Axis is 2400. We want to change this to say 3000.
In a similar way we did for X-axis, keep the mouse pointer anywhere on the Y-Axis line, and right click. Go to Scale tab. and .......
change the Maximum value to 3000. See the graph now.
3. Display values on the Bars:
Right click anywhere in the Plot Area to get this menu.
4. Change the Type of Graph (Say to a PIE chart)
Refer to menu picture in Point3 above. Click on chart Type and in the pop-up Select Pies.
Select the pie pattern you like, We here selected the 1st one. Now see how our Graph looks like.
We got the Pies chart but the values disappeared. Follow the procedure explained in point3 to have Values of the Pies.
A number of Chart Type are available in this section of the Menu.
5. Titles to the Graph
Now Let’s Give a Title to our Graph and Configure it. Go to the Title tab of the menu in Point3, Give the Title you want. Say ‘MTBR Values FinYr-wise in Hrs’..
You can Drag & Drop this title to anywhere in the Chart Area. Also you can configure the Font, Font Size, Color etc by Right clicking on the edges of this Title box and choosing Format Chart Title.
In a similar way you can have Titles for yourAxes from the same tab (Title tab).
6. Similar Graphs can be drawn for the rest of the value fields viz., MTTR, TotBDn and Avlb% by selecting these fields as the 3rd field for Graph (First two fields being FinYr and Equipment Description for X-Axis)..
7. Multiple Value Graphs:
Many times we have a requirement for multiple parameters for Y-Axis. This suits when we have an ALV report something like:
MTBR (Hrs) Financial Year wise:
FinYr | Equipment01 | Equipment02 | Equipment03 |
---|---|---|---|
1112 | |||
1213 | |||
1314 |
In this case: The X-Axis will have FinYr, like the present case. The Y-Axis can have all the Equipment fields. In this case there will be 3 bars with different colors above each FinYr on X-Axis. This is a very suitable case for Multi-bar Graph because of the uniformity in UOMs for all 3 bars i.e., Hrs.
No two ALV fields in our current ALV are having same UOMs for demonstrating this case, we choose two fields MTBR and Avlb%. for this demo. I've selected first two columns(FinYr and Equipment Description), and MTBRand Avlb% (total 4 columns) . Now upon Clicking on the Graph icon, system presented the following Graph...
After Configuration
Now let’s discuss about the UOM (Unit Of Measure) on the Y-Axis. When this was a graph for MTBR alone the Y-Axis unit of Hrs is OK. But when we have plotted the Avlb% also, the Maximum value of which is 100, all these bars fell within the first grid line, which is 500 high.
8. Secondary Axis:
The above is the right situation to discuss about the Secondary Axis. i.e., we will have the vertical line on the right side converted as Axis for the 2nd bar (Avlb%). For this Right click on Plot Area ....
Select Secondary Axis.
Now your Graph looks better like this. (The Secondary Axis selected automatically has 0 - 100 Range)
To have values on the Secondary Axis, select as under in the Axes tab of Chart Options.
9. Changing the Colors of Bars, Pies etc.
For this Choose this option:
10. There are other features in the Plot Area / Chart Options Menu as shown below.
Some useful features are
- In the Grid-lines Tab youcan remove or set Grid lines for both Axes.
- In the Legend tab you can have the Color Legend Settings.
You may explore what is there in other 2 tabs Data Table and Options. With this we have explored almost everything in ALV Graphs.
11. Now How to Save Graphs which we configured with so much effort.:
Simple,
Without closing the Graph-window in the ALV layout, click on the Save Layout button on the Application toolbar
and Save the Layout. Now your graph is saved. Any time you select this layout, the graph will be appearing, Similarly, when you save any Selection screen variant with this Layout, upon Executing the report you will be directly presented the Graph.
Addition no.1
Graphs on Sub-Totals
While replying to a member's query, I'd recalled another feature that should be added to this document., i.e., Graphs on sub totals
Example
Suppose I try to draw a graph between Equipment and Breakdown duration for IW28ALV by giving list of Equipments and range of Malfunction Start Date. In this case the output is likely to have several line items for a single equipment. The Graph (X-Axis) will be crowded with of Equipments repeating themselves several times. From such graph we would not get any information for analysis. Here comes the Sub-Total Graphs. For follow these steps. (Have Equipment and Breakdown Duration fields as 1st 2 columns for simplicity)
1. Sort the ALV by Equipment field
2. Select the Breakdown column and click on icon to display the totals.
(Notice that as immediately after this step a sub-total icon would be added to the toolbar next to
icon.)
3. Now Select the Equipment column and click on this Sub-total icon. A report like this would appear.
This is giving Equipment wise Total Breakdown duration. Now let's draw graph for Equipment-wise Breakdown duration. For this, click on the icon at Red-Arrow shown in above picture. This collapses the details and only Sub-total are visible now. as under.
Now select the Equipment Column and click on the Graph icon to get the desired Graph. I have taken IW28 case for ease of demonstration of this section (Sub-total graphs). As I said in the beginning, Graphs through standard reports are not that explorable as discussed in this document. For this very reason, I developed ZIW28 through Infoset query, where all these graph features are available.
Hope this document too helps members across the spaces in SCN.
Thank you.
Jogeswara Rao K
ALV Report on Catalog Profile and Catalogs & Codes - (Infoset way)
Introduction:
After the exposure to many standard ALV reports for masterdata , it is seen that the clients or end-users expect similar reports for Catalog-Profiles, Code Groups and Codes, so that it will be easier to search for such available profiles which suit to their requirements and they can make use of the same, saving lot of time, effort and data duplication.
For big organizations, comprising of several units where SAP-PM is adopted, this requirement is very common.
We do not have such ready report/s provided by SAP. At the same time, SAP has given good tools for Functional persons to generate reports on their own.
These are Quick viewer, and Infoset Queries.Present article is based on Infoset Query.
Let's see what we are going to achieve in this article:
A report with selection screen like this
will generate a report like this: (list of all profiles related to 'Motors')
DO you find it is relevant and useful to you? Then here is how to make it !
Step 1. Create an Infoset as follows
- Create an infoset (Say 'CATCODES') using 'SQ02' Tcode. opting for Table-Join in the initial screen.
- In the Join page Insert these tables as shown ( select left-outer-join for QPGR and QPCD tables join)
- Click Back,
- Select the required fields from tables (left) to the Field Groups in the right. (Drag & Drop) as shown here.
In order to arrange the Calatogs in the sort order of B, C, 5, 2, A in the ALV screen, a user defined field 'SORT' is being created in the following section.
For this click on the 'Extras' tab on the application toolbar to have Extras window on the right.
Click on the 'New' icon and create 'Additional Field' named 'SORT'
The specification of field 'SORT' while creating
Now, keep cursor on the 'SORT' field (Red Boxed area) and click on the 'CODE' icon (Green box), and write the following code.
Save the code,
Making of 'Selection screen' of the report
Go to 'Selections' tab (next to 'Extras' tab) and create the select-option.
Here we are creating the 2 selection fields shown in the 1st image of this document. i.e., Catalog Profile' and 'Created By'.
For this click on 'New' icon in this tab and create two selection fields 'CATPROF' and 'CRTDBY' one after one as shown here.
Now the 'Selections' tab will look like this.
Save and Generate the Infoset.
This completes the job in Infoset creation (SQ02).
Come to initial screen of SQ02 and assign this infoset to your usergroup. (User group is created through SQ03)
Step 2. Create Infoset-Query through SQ01 as follows.
Create a Query (say 'CATCODES') using the infoset made above 'CATCODES'.
Click 'Next' arrow
Select all the 3 tables appearing here used in Infoset and click next.
Select the fields required for display in ALV.
Click on Basic List button and arrive at the following screen.
(If this screen does not appear go to 'Settings' menu, check the 'Graphical Menu Painter' option in the 'Settings' option)
The red box list shows the Field selections you need to appear in the output.
For column coloring you have to drag & Drop colors from tool box to the corresponding field as shown by the Red arrow on the right.
That's all. Now You save the query and return to the initial screen. Execute and test.
To have a Tcode for the program you've just generated
In the SQ01 screen
to get this result.
Copy this string (Report name), Run SE93 in Development Client and create a Z-Tcode with desired name using the above program name.
Transport the request to Production.
Now the report you've made is operated using the Tcode you've created.
To my end-users, this report was very much sought and proved very useful by them. They can now easily search the profiles available in the system (made by users in other shops) for their similar equipments. This report has got many such uses.
The making of this report here has been demonstrated using 'Standard Client 'option in the SQ02 (Environment --> Query Areas), so that no transport needs to be done during creation or modifications. However as explained, the Z-Tcode has to be created in Workbench Dev Client, once.
Also, it is aimed through this document, the beginners in the Infoset query area to be benefited without referring to other detailed documents on SQ03, SQ02, SQ01.
Hoping it is useful to many.
-Jogeswara Rao K
Root Cause Analysis through 5-Whys
Introduction
Many of us are aware that Breakdowns leading to Production losses draw attention of Senior Management as well as QMS audit people. Very frequently asked question by these authorities is What is the Root Cause? Also Many of us know about a very common and effective approach to reach at this Root Cause is through the method of asking Why 5 times. (5-Why method). It is said that by receiving answer to the 5th Why on the Breakdown reason, we would be arriving at the Root Cause. (It is quite possible that we arrive at Root Cause well before answering the 5th Why.)
Objective
We are discussing in this document about an idea implemented to map this process of Root Cause Analysis, making use of Catalogs & Codes. We will be able to show to the Authorities, the Root Cause Analysis done on vital breakdowns.
Here we see how to go about it
Preparation
Make few Code-Groups and Codes as under through Tcode QS41 (and Transport to other clients)
Root Cause Analysis
For demonstration, we have taken a simple case of EME vehicle not starting, on which we had already created a Malfunction Notification. See this Graphic to understand the 5-Why Analysis.
Now let's do it in the system with the help of the codes created above. Go to the Catalogs & Codes Tab of this Notification, give the Object part and Damage details and enter the Causes Tab page. See the picture how we used the above codes to perform 5-Why analysis.
So theRoot Cause we have Arrived at is Training not Given. Note: If needed, you can write long-texts against each code-Text.
Now Go to Activities tab and record this way:
Here too Long texts can be used.
All done.
Now we can show the Authorities, the Analysis we do on vital Breakdowns.
Further, to show it in an impressive Lay-out, and system generated PDF formats, we can go for a Smartform as I opted for (shown below)
I need not explain the picture above, it is self-explanatory. This Samrtform was integrated to custom reports of Breakdown Analysis When clicked on a CAPA cell against a Notification, system presents you the above screen.
Note: The coding part (QS41), will be customized by Readers as per their situation. Bottom line is how we map the 5-Why process using the SAP objects. Hope this share will be useful to members.
Thank you
Jogeswara Rao K
Guideline Document SAP log book and shift note and shift report
1. Background
When a production unit or utility company runs its operation 24X7 and 365 days a year, it operates in shift. It is normally expected to get an overall view of the shift as a dashboard to middle management and details at transaction level for front line managers and supervisors. Though SAP Plant Maintenance module and its functionalities thereof are capable of handling the scenarios of breakdown maintenance, preventive maintenance, adhoc maintenance with resource scheduling and integration with other SAP module like MM, FI/CO and many more to have integrated view across the enterprise however, this expectation from customer was always a customized solution.
2. Objective
Recent Enhancement Packages bring some additional features in SAP PM+ (which is EAM- Enterprise Asset Management) like Log book (LBK1) and shift note/shift report. This document will highlight about the features in details, its customizability in terms of BADIs & configurations available, advantages and disadvantages and integration with advances SAP solutions.
3. Pre Requisite
The prerequisite to understand this document is to have working knowledge of SAP PM Module. Working experience in shift will have added advantage to understand the context of the requirement.
4. Document Usage
This document can be used as a reference by the Functional consultants/Technical Consultants for understanding the functionalities available as part SAP log book or shift note/shift report. This document is produced during exploring various functionalities available in SAP.
5. Details of the Context
To further detail the requirement followings KPIs/information are minimum for any logbook for a shift at a section of plant. The same can be aggregated at plant level as a dashboard view for higher management.
Maintenance perspective
1. Breakdowns, faults, emergencies with details
2. Adhoc job carried out
3. Major material withdrawn with cost details
4. Inspection round details and finding of exceptions with readings
5. Message to next shift
6. Any major incident with Environment/occupational Health and safety
7. Any other performance measurement to be measured
Operation/Production Prospective
1. Production figures
2. Any major quality rejections
3. Machines performances figures
4. Any other performance measurement to be measured
Above requirement is just a list of minimum expectations, however can be further added or modified based on the specific requirement.
6. System Prerequisite and Activating Business Functions
You have to activate the below business functions (T. Code SFW5)
Technical Name of Business Function | LOG_EAM_ELBK, LOG_EAM_POM_2 (log book) LOG_PP_SRN_CONF – Shift note/Shift report |
Type of Business Function | Enterprise business function |
7. SAP Solution of Log book – LBK1
SAP designed LBK1 with following features for DIMP and is now available in ECC with enterprise business function LOG_EAM_ELBK, LOG_EAM_POM_2. This can be activated by SFW5.
New configuration and transaction in to SPRO and SAP easy access path is shown as below.
- SPRO-> Plant Maintenance and Customer Service-> Maintenance and Service Processing-> Logbook
- Logistics->Plant Maintenance-> Maintenance Processing -> Logbook -> LBK1 - Logbook
Log book is designed based on the structure as below.
SAP Log book is created at either for equipment or functional location level which we designate as a log book folder. Log book hierarchy is built based on Object Hierarchy Framework(Fig-1). The hierarchy is shown as the left side of the screen based on the selection screen button . This can be defaulted based on the variant of report DIACL_SELECTION_NEW. Left hand side of the screen shows the objects and its hierarchy and the right hand side will be shown the details of the object. Like in this case the right hand side shows functional location (FLOC)fig -2
As SAP has not provided any standard screen and functionalities, screen shown here is possible by activating few BAdis and importing example code into the implementation.
Customer sub screens can be activated at below level with following BADI.
No | Level | BADI Name | Functionality available and what can be done |
1 | Log Entry folder –FLOC | FLL_SUBSCR_ACL | As this directly refers to FLOC master data and any new field to be stored in CI_IFLO |
2 | Log Entry folder –EQPT | EQL_SUBSCR_ACL | As this directly refers to FLOC master data and any new field to be stored in CI_EQUI |
3 | Log Entry Main | LGETY_SUBSCR_ACL | Any new screen fields added will be added to include structure of DDIC table DIACL_LOG_ENTRY. There is example code available and screen which is shown fig 3 are related to flight log. |
4 | Log Notifications | LGN_SUBSCR_ACL | As SAP standard has provided 4 tab pages(Fig 4). 1. Notification – related to notification 2. Operation – related to order 3. Component - related to order 4. Fast data capturing - related to order and Notification BADi can hide above tab(s) and introduce new tab. However the data needs to be stored either in CI_QMEL or CI_AUFK based its relevance. It can also have new buttons based on the BADi. |
5 | Log Measuring documents | MDC_SUBSCR_ACL | In fig 5, example field ‘shift’ is added for log measurement document and additional field will be stored in CI_IMRG |
Below table shows additional BADis which are available.
No | BADI Name | Functionality available and what can be done |
1. | CNTR_DFLT_ACL | Default Counter Update Values |
2. | HIER_CHECK_LBK | Hierarchy Checks for Logbook Actions |
3. | NAVIGATION_ACL | Manipulation of Logbook Tree Columns |
4. | TOOLBAR_ACL | Addition/Removal of Toolbar Function |
5. | TOOLBAR_FUNC_OHFW | Define Toolbar Function Processing. All implementations for this BADI are default called for the above functionalities. |
6. | AUTHORITY_CHECK_ACL | Check User Authorization for Logbook Activity |
7. | POST_ACTION_ACL | Automatic Actions When Saving Logbook Objects |
8. | BADI_CCM_CLIST_APL, BADI_CCM_CLIST_CBTNS, BADI_CCM_CLIST_FLD | BADis related to component list |
7.1 Main Log Entry
Once sub screen BADI (LGETY_SUBSCR_ACL) is implemented with relevant fields, log entry can be made and the data are saved in DIACL_LOG_ENTRY its entire hierarchy is stored DIOHFW_NODES. Various sub functionalities are associated with main log entries.
a) Status Control
Various system statuses are activated and deactivated based on the standard functionality. Below table show the status control. User status can be configuredand assigned to log entry type level.
Status | Desc | Even when activated |
INPC | In Progress | As soon as log entry is created |
DOCC | Document Created | Measurement document is created |
MDRQ | Measurement document creation required | · It prohibits changing a measurement document if this document is assigned to a completed log entry. · When setting the reversal indicator on a mandatory log measurement document using the standard transaction, the MDRQ (measurement document creation required) system status needs to be reset on the assigned log entry. · When removing the reversal indicator, if this was the final mandatory log measurement for this log entry, the MDRQ status needs to be removed on the Log entry screen. |
COMP | Completed | When log entry is completed. This can be revoked. |
COCE | Completion Certified | When the completed log entry is digitally signed |
CACL | Cancelled | When the log entry is cancelled |
b) Log entry hierarchy
Log entry can be created as ‘follow up’ or ‘preceding’ so that hierarchy of the same is made.
c) Digital Signature
Log entries can be digitally signed. For this we need to create signature strategy and assign it to log entry type.
In SPRO -> Plant Maintenance and Customer Service-> Maintenance and Service Processing-> Logbook-> Controlling Digital
Signature Process.
We can digitally certify log entry, log notification and can be configured as below(Fig-6).
Create signature strategy as below(Fig-7).
When the log book is completed, then this can be certified as shown below(Fig-8) through SAP digital signature methodology.
7.2 Log Notification
a) Log notifications can be created with respect to a log entry. This can be any notification type. However the screen fields available in the header screen are limited. For more fields user need to click the button beside notification text(Fig-9).
A new field is available in notification as ‘Reference no’ in log book and the same is not available in standard screen(Fig-10).
In operation tab, we can identify any task list or without task list we can create work order with respect to the log notification. The log notification can have all standard functionalities and its life cycle of a maintenance notification(Fig-11).
We can release the order from log book screen and after release we can put the actual work and the save the same and this will post confirmation to the work order(Fig-12).
We can certify the order operation confirmation digitally by clicking . The status of the operation list line item in log book becomes PCNF COCE REL.
In components tab, we can install, consume, remove, and exchange materials and equipment into or from superior technical objects. The process is performed with a synchronized goods movement (an issue from or to a receipt to stock). The functionality is similar to IE4N. Following major functionalities are available in component list.
Minimum configuration required to use Component list().
SPRO->Plant Maintenance and Customer Service ->Maintenance and Service Processing ->Configuration Contrl->Determine Properties of Notifications for Installing and Dismantling Parts
BADI (BADI_CCM_CLIST_APL and BADI_CCM_NOTIF_GENER)example code should be imported.
· ‘Consume’ material for an order in component list which creates a reservation and post the 261 movement type to order from inventory when we save the same. For this we have to use ‘Material On’ related fields in ALV. For the same serialization is not mandatory.
· We can also return the material to Inventory by posting 262 movement type to inventory from order by using ‘Material Off’ related fields in ALV.
· We can ‘Remove’ (dismantle) serialized material (Equipment) which create reservation and post 262 movement to inventory from order. During this also one more notification will be created for dismantling. The text for the notification can be transferred from the Component list ALV
· We can ‘install’ serialized material (Equipment) which creates reservation and post 261 movement to order from inventory. During this also one more notification will be created for dismantling. The text for the notification can be transferred from the Component list ALV
· We can also exchange one equipment from one location another location which posts two material documents (261 and 262). This will also create 2 notifications.
A typical screen for the same is shown below(Fig-13).
In ‘Fast data capturing’ tab functionalities related to notification, operation and component tab is available in a single tab and confirmation for the 1st operation can be posted from this tab. A typical screen is shown below(Fig-14).
7.3 Log Measurement Document
Log measurement documents can be posted automatically when a log entry is saved if the BADI CNTR_DFLT_ACL is activated with example code. Standard code will update counters as FH1 (Flying hours) and LC1 (No. of cycles).
The measuring points for the technical object (FLOC/EQPT) for FH1 and LC1 need to be created.
Below Configuration needs to be maintained for the same(Fig-15).
Plant Maintenance and Customer Service-> Maintenance and Service Processing-> Logbook->Controlling Counter Updates
FH1 is calculated time difference in Hrs between takeoff and landing timings (Fig-16)
LC1 is calculated from field ‘ No of Cycles’ field which is shown below(Fig-17).
7.4 Warranty Details
Warranty details can be seen from log book screen for the equipment and functional location. Standard SAP warranty screen appears as below(Fig-18).
7.5 Solution Mapping for the Context
After seeing the standard functionalities available and capabilities log book has got, the requirement with which we started from section 5, needs to be mapped in the below matrix
No | Requirement | Solution | Change |
Generic | Note: As Log book is created with respect to FLOC or EQPT, but there is no collated view with respect to a shift to use LBK1. For shift log book purpose we may have to create dummy FLOC/EQPT as Shift and create log entry with respect to them. Log notification can be created for different equipment/ different FLOC(while changing technical object, SAP gives warning, but can be ignored.) Apart from log notification, we may have to add to link notification and link order functionality. LBK1 should be used as transaction, however to make the details bit more presentable, we can think of some DASHBOARD. | ||
1 | Maintenance Perspective Breakdowns, faults, emergencies with details | This can be achieved with log notification functionality linked with log entry for any FLOC/EQ | Medium change. Note shift field needs to be added in to Log entry and should be propagated to log notification screen and log measurement document. |
2 | Adhoc job carried out | This can be achieved with log notification functionality linked with log entry for any FLOC/EQ | Same as 1 |
3 | Major material withdrawn with cost details | This can be achieved by component list with consumption functionality. | BADI_CCM_CLIST_APL needs to be activated with example code. Medium development |
4 | Inspection round details and finding of exceptions with readings | This can be achieved by a customer tab for order assignment and by activating standard business function LOG_EAM_CI_4 for inspection round Or Measurement entry list can be called from log entry and measurement document can be linked to log entry | Major development is needed in the both the options |
5 | Message to next shift | A long text in the log entry screen | For this we can standardize that for a shift a single log entry will be created with dummy asset (this might be a major disadvantages). |
6 | Any major incident with Environment/occupational Health and safety | In any of the customer tab, if we can link the SAP EHS module related data | Medium development |
7 | Any other performance measurement to be measured | This can be achieved by modifying the logic in BADi CNTR_DFLT_ACL with measurement entry list. | Major development. This could be simple measurement or it could be available from any 3rd party process control system which integrated through SAP MII. |
8 | Operation/Production Prospective Production figures | Data related to PP module can be retrieved and shown. | Major development |
9 | Any major quality rejections | Data related to QM module can be retrieved and shown. | Major development |
10 | Machines performances figures | Same as 7 | Same as 7 |
11 | Any other performance measurement to be measured | Same as 7 | Same as 7 |
7.6 Analysis
From the above matrix, it is clear that the requirement can be achieved by major development. There are no APIs available for creating log entry, log notification, order related to notification, component list, hence the front end transaction functionality of LBK1 needs to be enhanced.
8. SAP Solution for Shift Note/Shift Report
When short note is to be recorded for a shift which can’t be recorded as per current standard SAP functionalities available throughout life cycle of notification or work order process with respect to a shift, then Shift note can be used.
Shift report is digitally signed collated information of shift notes in PDF format for a shift. This PDF format can be changed with more details like production figures and can be integrated with SAP MII.
This is activated by business function LOG_PP_SRN_CONF. New configuration and transaction in to SPRO and SAP easy access path is as below.
- Logistics-> Central Functions->Shift Report and Shift Note for Technical Objects
- SPRO->Plant Maintenance and Customer Service-> Maintenance and Service Processing-> Shift Reports/Notes
Shift note is conceived to be a special type of notification with minimum screen fields available for configuration. This can be created with respect to a work centre or a FLOC/EQPT. For this to happen, we need to maintain the ‘shift note type’ and ‘shift report type’ in the respective master data of work centre or FLOC/EQPT(Fig-19 & 20 ).
8.1 Shift Note
For creating shift note either the for EQPT/FLOC or for the work centre, a notification type needs to be configured as shift note. This can be done in two ways.
1. Independent Shift Note:
a. Creating a notification type as shift note type and assigning shift note related screen area (path: SPRO-> Plant Maintenance and Customer Service-> Maintenance and Service Processing-> Shift Reports/Notes-> Define Screen Templates - for 10\TAB01 – screen area 130 and 131) and in-> Make Settings for Shift Note Type
b. Assign ‘Use’ for the shift note as ‘Independent Shift Note’ as below. For this we have to use transaction SHN1 or ISHN1 for creating shift note for work centre and FLOC/EQPT respectively(Fig-21).
Transaction screen looks like below(Fig-22).
1. 2. Generic Notification with other screen area
a. Repeat step 1 a and add more tabs whichever is needed.
b. Repeat step 1b and assign ‘Use’ to radio button ‘Screen Area of Notific’ and origin as either work center or Floc/EQPT based on the requirement. For this notification type, we can use IQS1/IQS2 etc for transacting notification.
Transaction screen looks like below.
Note: for the both above cases the notification will be created as shift note however they are of ‘General Notification’ category. In case of 2, though additional tabs are added and we can transact the data as general notification however creating maintenance order from this notification is not allowed. Moreover all functionalities of General Notification’ category will be available.
In addition the above configuration, configuration is needed for controlling shift start and end, long text control, category as part of catalog as below. These additional functionalities related to shift note gives control over shift start and shift end. If shift grouping is done in HR module, then it is further integrated with Shift report.
Following RFCs are available to use to create shift note from 3rd party systems.
COCF_SN_CREATE_EAM | Create Shift Note for Technical Objects/Equipment |
COCF_SN_CREATE_PP | Create Shift Note for Work Centers/Hierarchies |
COCF_SN_GET_CATEGORIES | Determines Possible Categories for Shift Note |
COCF_SN_GET_CUSTOMIZING | Determines Shift Note Settings |
COCF_SN_GET_LIST_PP | List of Shift Notes for Work Center/Hierarchy |
COCF_SN_GET_TEXT_MODULE | Determines Text Module for Shift Note |
COCF_SRN_GET_ALL_WORKPLACES | All Work Centers for Which Shift Reports/Shift Notes Can Be Created |
COCF_SRN_GET_USER_WORKPLACES | Work Centers for Which User Has Permission for Shift Reports/Notes |
8.2 Shift Report
Shift report is collated view in PDF of shift notes with functionality of approval, digital certification and open integration of other customer specific data through BADi. The shift report is always with respect to a FLOC/EQUP or work centre for which shift report type needs to be configured as below (Fig-24) and assigned to individual master data of FLOC/EQPT or work centre.
This makes the shift report output configurable with respect to shift note, confirmations, list good movement, Maintenance notification, Maintenance orders, Measuring document, WCM objects,
Note: The data will be shown based on the above configuration if the shift notes, maintenance notification, order or measuring document are created with respect to the FLOC/EQPT or Work centre. Measuring document, WCM objects are not available in the configurations for shift report type related to work center/hierarchy.
A typical shift report is as below (Fig-27).
Additional BADis and enhancement spots are available in package COCF as below.
BADI/Enh. Spots | Functionality |
COCF_BD_SHIFT_REPORT | We can influence shift report before generation, before change, before display and after change. This is applicable for Work centre shift report. |
COCF_BD_SN_BO | This can additional reference e objects in Shift note |
COCF_BD_SR_PDF_CUSTOMER | This triggers when the report is generated and in this customer specific content (list, text etc)can be passed to shift report. |
COCF_BD_SR_SN_SECTION | This influences the list of shift note selection |
COCF_ORDCNF | This influences the confirmation section of the shift report |
COCF_WCM | This influences the WCM section of the shift report |
COCF_WORKLIST | This gives flexibility of additional functions |
Shift note and shift report can used for PP and/or PM, hence confirmation, good movements, missing parts etc related functionalities with respect to Production Planning module can be further explored to suit business requirements.
8.3 Solution mapping for the context
After seeing the standard functionalities available and capabilities shift note/report has got, the requirement with which we started from section 5, needs to be mapped in the below matrix.
No | Requirement | Solution | Change |
Generic | Note: Shift note/report is created with respect to FLOC or EQPT and there is collated view(shift report pdf) with respect to a shift for individual technical object. For shift log book purpose we may have to create dummy FLOC/EQPT as Shift or we can create various shift note and a shift report for a work centre. Shift report is a physical file which is digitally signed information which is static information for the shift. | ||
1 | Maintenance Perspective Breakdowns, faults, emergencies with details | This can be achieved by creating breakdown notification and can be pulled as part of the shift report if created for the specific work centre or FLOC/EQPT. List of orders, confirmations can be part of shift report. Grouping of shift notes can be explored. | Medium change. Note shift field needs to be added in to be added to notification additional field. If the representation or collation of shift note and other details to create a shift report is not as expected, then major development needs to be done in shift report. |
2 | Adhoc job carried out | Same as 1 | Same as 1 |
3 | Major material withdrawn with cost details | This can be achieved by list of good movement in shift report. | No development |
4 | Inspection round details and finding of exceptions with readings | This can be achieved by a customer tab for order assignment and by activating standard business function LOG_EAM_CI_4 for inspection round Or Measurement entry list can be called from log entry and measurement document can be linked to log entry However these details can be picked in shift report. | Medium development, assuming only list of measuring document can be picked and listed for various equipment/floc. Measuring document creation is not part of this development. Note: For work centre measurement documents cannot be picked in shift report. |
5 | Message to next shift | Shift note with specific category | No development |
6 | Any major incident with Environment/occupational Health and safety | In any of the customer tab, if we can link the SAP EHS module related data | Part of 4 |
7 | Any other performance measurement to be measured | Same as 4 | Major development. This could be simple measurement or it could be available from any 3rd party process control system which integrated through SAP MII. |
8 | Operation/Production Prospective Production figures | Data related to PP module can be retrieved and shown. | Major development |
9 | Any major quality rejections | Data related to QM module can be retrieved and shown. | Major development |
10 | Machines performances figures | Same as 7 | Same as 7 |
11 | Any other performance measurement to be measured | Same as 7 | Same as 7 |
8.4 Analysis
From the above matrix, it is clear that the requirement can be achieved by major development. Shift report gives the maximum flexibility of including data related to notification, order, confirmation, list of goods movement, measurement document, however the definition of structuring of FLOC/EQUIP or work centre or creation of dummy FLOC/EQPT or dummy work center to be critically considered. APIs are available to create shift note, maintenance notification, maintenance order, measuring document, confirmation, goods movement etc.
9. Conclusion
From section 7 and 8, it is clear that none of the solution is a perfect match for the requirement, however each solution has got its advantages and disadvantages. Below table details out the same for log book and shift note/shift report SAP solution.
Log book | Details |
Pros | – In a single SAP transaction(screen), we can create log entries and carry it forward to its life cycle – Measurement counter can be automatically updated while saving the log entry with example code and functionality. – Log entries are managed through system status and user status control. – Log entries can be digitally signed – Log notification can be created for any notification types and can be linked to a log entry. |
Cons | – There is no BAPI to create log entries and functionalities of LBK1 can be transacted in SAP transaction screen. – Log entries can be created only with respect a functional location/EQPT. – A lot of BADIs need to be activated as SAP has not provided any standard fields. |
Shift Note/Shift Report | Details |
Pros | – Shift note/ report can be created for work centre as well as FLOC/EQPT. – Shift report is collated view of a shift and is a PDF which can be digitally signed – There are BAPIs available to create shift notes. – Shift report is flexible and configurable. – Shift report can link objects like Measuring document, notification and order, goods movement in a single output PDF. |
Cons | – Shift note is a special notification type of ‘General Notification’ category. Some functionalities of Maintenance notifications are not allowed – No BAPI is available for shift report creation. – Individual shift note don’t have much functionalities other than long text, attachment, shift timing control and link to reference objects. |
Order Confirmation Restriction upon TECO of PM Order
Introduction:
Recently I came across one thread about restriction of Confirmation once after Technical Completion (TECO) of PM Order.
This topic has been discussed many times & different kinds of solution are possible which includes Configuration / Customization and Development / Enhancement.
In SAP, anything & everything can be achieved with some kinds of simple development or complex development. But I would rather prefer to go in Functional way (No harm to technical solution) as Functional solutions can be given within ourselves.
Generally in Implementation projects, users tend to ask more controls but at the later stage they will feel that some of them are not required. By going in functional way, we can address (Providing the control & Revoking the control) these issues very easily.
This is continuation of previous document User Status in SAP
Let me get into the topic.
- User Status Definition (Transaction Code is OIBS)
Defined 2 user statuses. Here, you can assign Authorization Key by which user can't able to change these status themselves at transaction level.
Note: Authorization Keys can be created in transaction BS52.
By double clicking the first status "ACNF" & assign the business transaction "Revoke Technical Completion" & select the option as "SET". So when you revoke the TECO status of the order, this user status can be selected automatically without any manual intervention.
Now double click on 2nd status to assign the appropriate business transactions & its Influence or Next Action.
TECO of PM Order will set the 2nd user status automatically as well as this user status will restrict the allocation of cost to that PM order either through Confirmation and even manual Cost allocation through FI entries.
- Business Usage:
PM Order has been set to TECO.
Now while trying to do the confirmation in IW41 / IW42 or any confirmation transaction.
By Clicking "Status Information" button, you can understand the reason behind this message.
By this, we can able to control the Order Confirmation upon TECO of PM Order.
By having these controls through User Status, it doesn't mean that you can't have other kinds of user statuses in the same profile.
User status profile can be created for any no. of statuses which includes restriction of Confirmation upon TECO.
System doesn't restrict you to do any kinds of analysis with any user status.