Quantcast
Channel: SCN : Document List - Enterprise Asset Management (SAP EAM)
Viewing all 842 articles
Browse latest View live

Cost Element Determination Logic for PM03 Operation

$
0
0

Title  :‘Cost Element’ determination logic in Plant Maintenance Order Operation with control Key PM03.

 

SAP Release        :         Above release 4.5

 

SAP Module        :         SAP Plant Maintenance

 

SAP Sub-Module          :         Plant Maintenance order

 

Pre-requisite        :         PM order with Control Key PM03 (External Services)

 

Practical Scenarios –

 

  1. PM Order à PM03 Operation à External Tab àAgreement No.

 

In this scenario, based on the customization setting, SAP will create the Purchase Requisition (PR) after creation CRTD or release REL.

 

The ‘Cost Element’ populated in the PR will be the Cost Element maintained in the ‘External Profile’

 

  1. SPRO àPlant Maintenance and Customer Service àMaintenance and Service processing àMaintenance and Service Order à Function and settings for order type à Create default values profile for External Procurement.

 

Note– The ‘Cost Element’ field at operation level will not display any ‘Cost Element’ Value.

After release 4.5, ‘Cost Element’ for PM03 control key will not be available for Operation Header level but will be available for Service line item level.

So that ‘Different’ service items have different Cost Element instead of single Cost Element of Header level.

 

  1. PM Order àPM03 Operation àExternal Tab à Assignment of codified Services i.e. Specifying particular ‘Service Number’

 

In this scenario, based on the customization setting, SAP will create the Purchase Requisition (PR) after creation CRTD or release REL.

 

The ‘Cost Element’ populated in the PR will be taken from ‘Service Master’ data using the logic –

  1. SAP will check ‘Valuation Class’ maintained in the Service Master (Check Transaction Code AC03 – Display Service”.
  2. Go to transaction Code OBYC (Configuration Accounting display) and Double click on ‘Offsetting entry for inventory posting – GBB).
  3. Enter the desired ‘Charts of Accounts’.
  4. Now for Purchase Requisition (PR) check the Debit/Credit entry for the combination of – General Modification (VBR) and Valuation Class (Taken from Service Master).

 

If SAP get the entry it will populate the ‘Cost Element’ derived from above logic and if system did not get any ‘Cost Element’ then system will populate from the logic described in the Scenario -1.

 

  1. PM Order àPM03 Operation àExternal Tab à Assignment of Non-codified Services i.e. Specifying description of the Service

 

In this scenario, based on the customization setting, SAP will create the Purchase Requisition (PR) after creation CRTD or release REL.

 

The ‘Cost Element’ populated in the PR will be the Cost Element maintained in the ‘External Profile’

 

  1. SPRO àPlant Maintenance and Customer Service àMaintenance and Service processing àMaintenance and Service Order à Function and settings for order type à Create default values profile for External Procurement.

 

   


Configurable Task List (Continuation to http://scn.sap.com/docs/DOC-43459 )

$
0
0

This is addition to the document written by Jogeswara Rao Kavala.http://scn.sap.com/docs/DOC-43459.

 

Only step 5 is modified as following to make sure the automatic assignment for characteristics values.

 

Step 5. Create Configurable Material using MM01 transaction code and assign class "MOTOR_TYPES" in material classification with default values for characteristics.

mm01.png

mm01_classification.png

 

Step 5.1 Assign configurable material in configuration data tab of equipment master using IE02 transaction code.

 

configuration_data.png

 

Please refer to http://scn.sap.com/docs/DOC-43459 for further details.

 

Configurable task list can be used in maintenance plan after implementing it with configurable material.

Featured Content for Enterprise Asset Management (EAM)

$
0
0

Asset Management for the 21st Century - Key Takeaways from " Getting Ready for PAS 55 /  ISO 55000 Seminar

This is part of an upcoming blog series brought to you by Norm Poynter and Paul Kurchina, designed to inspire and educate by sharing experiences with the SAP Enterprise Asset Management Community. This blog series will be based on a series of interviews with John Woodhouse from the Woodhouse Group, who delivered this well-received seminar. Read more and add your comments.

Work order and notification creation with external fleet number

$
0
0

Most of the fleet users want to create work order and/or notification with reference to well-known external fleet numbers like license number, fleet object number or VIN rather than to use auto-generated SAP Equipment number.

 

Following configuration is available in standard SAP PM to cater this requirement.

 

1.png

2.png

 

After doing the necessary configuration, O150 scenario needs to be setup as default value in work order and notification for the fleet users.

 

3.png

 

Work Order Screen after settings

 

4.png

 

Notification Screen after settings

 

5.png

General Task List Upload on LSMW with Document (DMS) by Direct Input method

$
0
0

Table of Contents

I. Requirement

II. Solution

III. How to do

1. Prerequisite

2. Correct wrong default transaction on LSMW

          Symptom

          Solution

        3. LSMW creation for General Task List

Maintain Object Attributes

Maintain Source Structures

Maintain Source Fields

Maintain Structure Relations

Maintain Field Mapping and Conversion Rules

Define Upload File

Specify Files

Read Data

Convert Data

Create Batch Input Session

Run Batch Input Session

 

 

 

 

I. Requirement

  • Upload General Task Lists with operations
  • Task List number is generated automatically
  • Documents are assigned to Operations on task list

 

II. Solution

  • Create LSMW with Direct Input method
  • Multi - level structure with 3 levels : task list header, task list operation and document


III. How to do

1. Prerequisite

 

  • Document Management System is implemented in advance
  • Documents are already created on CV01N
    • Sample documents using on scope of this Document are


1.png

 

2. Correct wrong default transaction on LSMW

Symptom

  • Transaction LSMW with objects 0490 - general task list call to IA01 (equipment task list) instead of IA05
  • Apply SAP Note 1120544

Solution

Detail steps are:

 

Go to transaction code SM31, select table SXDA3, choose Maintain


2.png

Click on Table Name and Enter, type IBIPTLST on Table Name


3.png

Double click on below record

4.png

 

Change value IA01 to IA05 and Save

 

5.png

 

Other method to change the T code

 

In the LSMW under Maintain "Field Mapping and Conversion Rules" in change mode

 

 


  3.jpg

 

Just double click on IBIPLIST-TCODE it will pop up new screen where you can change the T code = IA05

Note: If you dont find the technical fileds in the above screen you can activate by menu path Extras>layout , then tick mark the "Technical Fields"

 

4.jpg

 

Edited the content for sharing the information , thanks to Mr PHI DANG for this documentation

 

3. LSMW creation for General Task List

Maintain Object Attributes

Choose Object and Method as below

6.png

Maintain Source Structures

Create Source Structure as below.

Put curse on TLHEADER and click  7.pngbutton, select Lower Level and type TLOPERATION

Put curse on TLOPERATION and click 7.png button, select Lower Level and type TLDOCUMENT

 
8.png
 

 

Maintain Source Fields

Enter source fields as below. You may enter other field length number.

Note:

IDENT is a key to map Header and Operation

IDENT2 is a key to map Operation and Document

 
  9.png

 

Maintain Structure Relations

Create Relationship as below

10.png

Maintain Field Mapping and Conversion Rules

Select Extra à Auto-Field Mapping for this step


11.png

Define Upload File

There are 3 upload file: HEADER, OPERATION and DOCUMENT

Below are sample upload files

     1. Header

12.png 
Note

If you want to use INTERNAL NUMBER RANGE, put the “!” on PLNNR, otherwise, upload program just create the first task list only

If you want to use EXTERNAL NUMBER RANGE, enter Group name as normal (E.g. Inspection1)

     2. Operation

In my upload, I create 2 operations for each task list; Header of each Operation is identified by IDENT key

13.png


     3. Document

Document is attached to Operation as PRT with PRT category Document

IDENT2 is a key to identified which document is assigned to which operation

In this example, I assign 2 documents to each operation of 1st Task list, 3 documents to each operation of 2nd task list and 1 document to operation 10 of 3rd task list

14.png


Note

Document with DMS is usually assigned on task list as below:

15.png


Specify Files

Assign correct upload files on this step

  16.png
  17.png

 

Read Data

Convert Data

Do as normal

Create Batch Input Session

Choose application server and assign Physical file for save incorrect data records. In my case, I use the same file

18.png


Run Batch Input Session

Execute Session and get Result

21.png

 

Check Task List 45

HEADER

h.png

Operation

o.png

 

Document on Operation 10

d.png

2 documents on operation 10 of the 1st task list as on upload file.

Find user exit for transaction code

$
0
0

Find user exits for transaction code :

 

 

  1. Find user exit for transaction code IW31 .
  2. Enter t.code IW31 in command bar ,then press
    enter.
  3. Now click on System then click on  Status.
  4. Double click on transaction IW31.
  5. Note down package name IWO1.
  6. Now go to SMOD transaction then press enter.
  7. Click on dropdown box.
  8. Enter package name IWO1 then press on “right” button.
  9. List of Exits will appear
  10. Based on your requirement get exits .

 

 

Thanks,

Nitin

ALV Report on Catalog Profile and Catalog Codes

$
0
0

ALV Report on Catalog Profile and Catalog Codes

__________________________________________________________________________________________________________

Author: Jogeswara Rao Kavala

 

 

Introduction:

After the exposure to many standard ALV reports, it is seen that the clients or end-users expect similar reports for Catalog-codes, so that it will be easier to search for such available profiles which suits to their requirements and they can use the same, saving lot of time, effort and duplication of data.

For big organisations, comprising of several units where SAP-PM is adopted, this requirement is vary common.

We do not have such ready report 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 after this article:


A report with selection screen like this

untitled.png

 

 

will generate a report like this: (list of all profiles related to 'Motors')

output.jpg

 


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 join)

1.JPG

 

- Select the required fields from tables (left) to the Field Groups in the right. (Drag & Drop) as shown here.

2'.jpg

 

 

In order to arrange the Calatogs in B, C, 5, 2, A order 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

3.JPG

The specification of field 'SORT' while creating

sort.JPG

 

Now, keep cursor on the 'SORT' field and click on the 'CODE' icon, and write the following code.

sort1.JPG

Save the code,

 

 

 

 

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 as shown here.

 

4.JPG

untitled1.png

 

Now the 'Selections' tab will look like this.

sel.JPG

 

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

6.JPG

 

Select all the 3 tables appearing here used in Infoset and click next.

sq011.JPG

 

Select the fields required for display in ALV.

sq012.JPG

 

 

Click on Basic List' button and arrive at the following screen.

(If this screen does not appear go to 'Settings' menu Settings-->check the 'Graphical Menu Painter' option)

sq013.JPG

 

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

untitled1.jpg

 

to get this result.

report.JPG

 

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.

 

 

In my organisation this report was very much sought and proved very useful for end-users to find and use already prepared profiles (by users in other units)   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

Equipment Availability - Concept & Issues

$
0
0

 

 

 

The Availability & MTTR, MTBR

 

In the maintenance function, often things end-up with questions about the Availability of Machines for Production, for a specified mission (time period)

 

This parameter is known by different names such as

 

- Equipment Availability

 

- Operational Availability etc.

 

 

Usually the Equipment Availability value is computed with a base formula:

 

1.jpg

 

This is expressed in percentage and calculated using the following methods

 

___________________________________________________________________________

 

 

Method1

 

2.jpg

 

Where

 

A (Available Hrs)          =  Mission period in HrsMaintenance 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

 

3.jpg

 

 

 

 

 

 

 

  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:

4.png

 

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.

 

 

 

-----@@@----

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


Release Authorization at Maintenance Order

$
0
0

Purpose:Provide Release Authorization for Maintenance Hierarchy due to Technician, Manager and Maintenance Head level.

 

Step 1: Create two Authorization Role at Technician and Manager User id with Authorization Object I_VORG_ORD and Release code BFRE.

 

TC: PFCG or SPRO Path

 


 

Step2: Release Authorization applicable to Manager Level.

 

 

TC: PFCG

Step3: Now Create Authorization Role at Technician user id without Release code.

 

 

Step4: Release Authorization not applicable at Technician Level.

 

 

 

 

 

Best Regards,

Akhilesh Singh

Operation Text Activation during Maintenance Order Confirmation

$
0
0

Purpose:Provide Operation all character details during maintenance order confirmation.

Application:whenever we have to confirm operation in IW42, then operation details (operation short text) display till 40 characters and access to above operation details move to maintenance order screen as well as this is time taken activities.

So, this functionality Provide operation details as up to 40 characters in order confirmation process.

Step1: Operation appears till 40 Characters which is unable to view all details.

TC: IW42


Step2: In table AFKO with ref to order and pass BEDID value in table AFVC for getting to OBJNR and click on long text operation for further details.

  TC: IW32


Click on Goto-Heaer

Step3:And take all details and pass this value in Function Module READ_TEXT by SE37.

TC: SE37

 


Step4: Now, click on operation text and there have appearedall character details during operation confirmation.

  TC: IW42


Step5: This logic provided to Technical consultant as they have create coding (screen no, crusher & etc) and finalize my requirement in standard process.

Coding details have below mentioned.

DATA: WS_LINE TYPE I,
ws_field
(30) TYPE c,
WS_VALUE
(255) TYPE C,
pcode
type sy-ucomm,
val
(40) type c.

data: mandt like afvc-mandt,
aufpl
like afvc-aufpl,
vornr
like afvc-vornr,
bedid
like afko-bedid,
APLZL
LIKE AFVC-APLZL.

FIELD-SYMBOLS: <aufnr>.

* Assign value of variable from calling prog to field symbol
ASSIGN ('(SAPLCMFU)CMFUD-AUFNR') TO <aufnr>.
*BREAK-POINT.
get cursor FIELD ws_field line ws_line VALUE WS_VALUE.
set CURSOR FIELD 'AFRUD-UVORN'.

if sy-stepl = .

if ( ws_field = 'AFVGD-LTXA1' ).

data: tname(70) TYPE C.
DATA: TDLINE LIKE TLINE OCCURS 0 WITH HEADER LINE,
TEXT TYPE STRING.
SELECT single bedid from afko into bedid WHERE aufnr <aufnr>.
SELECT single mandt aufpl APLZL into (mandt, aufpl, APLZL) from afvc
where bedid = bedid
*    AND aplzl = ws_line
and ltxa1 = ws_value.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
INPUT         = APLZL
IMPORTING
OUTPUT        = APLZL
.
CONCATENATE mandt aufpl APLZL into tname.
CALL FUNCTION 'READ_TEXT'
EXPORTING
*       CLIENT                        = SY-MANDT
ID                            = 'AVOT'
LANGUAGE                      = 'E'
NAME                         
= TNAME
OBJECT                       
= 'AUFK'
*       ARCHIVE_HANDLE                = 0
*       LOCAL_CAT                     = ' '
*     IMPORTING
*       HEADER                        =
TABLES
LINES                         = TDLINE[]
EXCEPTIONS
ID                            = 1
LANGUAGE                      = 2
NAME                         
= 3
NOT_FOUND                    
= 4
OBJECT                       
= 5
REFERENCE_CHECK              
= 6
WRONG_ACCESS_TO_ARCHIVE      
= 7
OTHERS                        = 8
.
IF SY-SUBRC <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
LOOP AT TDLINE .
IF TDLINE-TDLINE IS NOT INITIAL.
CONCATENATE TEXT TDLINE-TDLINE  INTO TEXT SEPARATED BY space.
ENDIF.
ENDLOOP.
if text is NOT INITIAL.
MESSAGE TEXT TYPE 'I'.

**        ELSE.
**          MESSAGE WS_VALUE TYPE 'I'.
endif.
ENDIF.

*    endif.
endif.
*clear sy-ucomm.
*    endif.
******************************END OF CODE***********************************************************
ENDENHANCEMENT.

 

Best Regards,

Akhilesh Singh

Upload Task List - LSWM Direct Input Method

$
0
0

Introduction:

 

During data migration projects,General Task List is complex object to upload in SAP.Normally most of the users face problem in uploading long text for Task List Header and its operations.

 

0. Identify the relevant attributes for Task List source structures by manual creation of General Task List using IA05.Only the following sources structures with mandatory attributes have been considered for this article.

    • Task List Header (TL_ID    PLNNR    PLNAL    KTEXT    ARBPL    WERKS    STATU)
    • Task List Long Text (TL_ID    TXPARGRAPH    TXLINE)
    • Task List Operations (TL_ID    OP_ID    VORNR    ARBPL    STEUS    WERKS    LTXA1)
    • Task List Operation Long Text (TL_ID    OP_ID    TXPARGRAPH    TXLINE)
    • Material for Task List Operations (TL_ID    OP_ID    IDNRK)

     

        1.  Maintain Object Attributes through LSMW transaction code

     

     

    2.     Maintain Source Structures

     

     

    3.     Maintain Source Fields

     

     

    TL_ID and OP_ID has been used for identification the unique task list and its operations.TL_ID is required in operation source structure so operations can be correlate with individual task list and OP_ID has been used in Task List Component and Task List Operation Long Text sources structures so materials and long text for each operation can be specified.

     

    4.    Maintain Structure Relations

     

     

     

    5.    Maintain Field Mapping and Conversion Rules (Refer to the attachment)

    6.    Maintain Fixed Values, Translations, User-Defined Routines (Don't need to maintain anything)

    7.     Specify Files

     

    8.     Assign Files

     

     

    9.     Read Data (Just Run it)

    10.     Display Read Data (Don't need to run it unless required)

    11.     Convert Data (Just Run it)

    12.     Display Converted Data (Don't need to run it unless required)

    13.     Create Batch Input Session (Maintain like the following and Run it)

     

     

    14.     Run Batch Input Session

     

    Problem:

    Short description for task list header and operation are overwritten by long text description.I find quick fix for it by including short description as first line in long text source file.

    Automatic Task Determination

    $
    0
    0

    Purpose:

    Notification Tasks will be automatically populated upon selecting 'Priority'.

    Different set of Tasks will be populated automatically according to the selected 'Priority' value.

     

    Applications:

    This feature acts as an Equipment/Functional Location Tasklist for Maintenance Orders and mostly used in cases where jobs end at Notification levels (no need of Orders).

    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)

    1.jpg

     

     

    Image2

    1a.jpg

     

     

    Image3

    2.jpg

     

     

     

    Now let's see what is to be done to achieve this:

     

    1.SPRO: Define Priority

    SPRO1.jpg

     

    dp1.JPG

     

    spro1.JPG

     

    dp2.jpg

     

    spro2.jpg

    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

     

    dp3.jpg

     

    SPRO3.JPG

     

     

     

    2. QS41: Create Task CodeGroup (ACOH)& Codes

    (List of all jobs related to all types of HVAC equipments)

    qs41.JPG

     

     

     

    3.SPRO: Define Response Monitoring

     

    SPRO2.jpg

     

    rt1.jpg

     

    Create Response Profile '00000005'

    rt1'.JPG

     

    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)


    rt11.JPG

     

     

    Define Service Profile.

    rt2.jpg

    rt2'.JPG

     

    rt3.jpg

     

    Specify Service profile and Response Profile against Notification type.

    Capture.JPG

     

    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 the settings are made during the plan creation, the triggered notifications come alongwith the set of Tasks.

     

    y.JPG

     

     

    -Jogeswara Rao K

     

     

    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.

    Configurable Task List (Continuation to http://scn.sap.com/docs/DOC-43459 )

    $
    0
    0

    This is addition to the document written by Jogeswara Rao Kavala.http://scn.sap.com/docs/DOC-43459.

     

    Only step 5 is modified as following to make sure the automatic assignment for characteristics values.

     

    Step 5. Create Configurable Material using MM01 transaction code and assign class "MOTOR_TYPES" in material classification with default values for characteristics.

    mm01.png

    mm01_classification.png

     

    Step 5.1 Assign configurable material in configuration data tab of equipment master using IE02 transaction code.

     

    configuration_data.png

     

    Please refer to http://scn.sap.com/docs/DOC-43459 for further details.

     

    Configurable task list can be used in maintenance plan after implementing it with configurable material.

    Work order and notification creation with external fleet number

    $
    0
    0

    Most of the fleet users want to create work order and/or notification with reference to well-known external fleet numbers like license number, fleet object number or VIN rather than to use auto-generated SAP Equipment number.

     

    Following configuration is available in standard SAP PM to cater this requirement.

     

    1.png

    2.png

     

    After doing the necessary configuration, O150 scenario needs to be setup as default value in work order and notification for the fleet users.

     

    3.png

     

    Work Order Screen after settings

     

    4.png

     

    Notification Screen after settings

     

    5.png

    Measuring Point entry Notification with Mail If value exceed from your Measurement Limit

    $
    0
    0

    Purpose: Measuring document mail and Notification, if you have put entry from your Measurement Limit.

    Application: This process implementation will help to prevent your measure problem occurred for any Equipments.

    Step1: Firstly maintain your E-mail id in Equipment master through TC- IE02.

    Step2: Maintain your measuring Point data with Measurement Range Limits by IK02.


    Step3: Please maintain your all settings (TC- SCOT) from your SAP Server to Email Server by Basis Consultant.



    Step4: Please put measuring point entry beyond from measurement limit and save document.

    Step5: Check your mail status from TC: SOST/SBWP.


    Step6: Please find program which is applied by Technical Consultant but firstly prepare to FS logic with field and table details.

     

     

    *BREAK-POINT.
    DATA: I_BAPI2080_NOTHDRI TYPE STANDARD TABLE OF BAPI2080_NOTHDRI WITH HEADER LINE.
    DATA: I_BAPI2080_NOTHDRI2 TYPE STANDARD TABLE OF BAPI2080_NOTHDRE WITH HEADER LINE.
    DATA: I_BAPIRET2 TYPE STANDARD TABLE OF BAPIRET2 WITH HEADER LINE.

    DATA: I_BAPIRET21 TYPE STANDARD TABLE OF BAPIRET2 WITH HEADER LINE.

    DATA: I_BAPI2080_NOTHDRE TYPE STANDARD TABLE OF BAPI2080_NOTHDRE WITH HEADER LINE.
    DATA: I_BAPI2080_NOTFULLTXTI TYPE STANDARD TABLE OF BAPI2080_NOTFULLTXTI WITH HEADER LINE.
    DATA: IT_DYNPREAD TYPE STANDARD TABLE OF DYNPREAD,
    WA_DYNPREAD
    LIKE LINE OF IT_DYNPREAD .


    DATA: EQNO(18) TYPE C,
    OBNO
    (22) TYPE C,
    **      MINR TYPE f,"ltp," DECIMALS 16,
    **      MAXR TYPE f,"ltP," DECIMALS 16,
    MINR
    (10) TYPE P," DECIMALS 14,
    MAXR
    (10) TYPE P," DECIMALS 14,
    DESC
    (25) TYPE C.

    DATA: MESG TYPE STRING,
    NDESC
    TYPE STRING,
    edesc
    type string,
    UNIT(3) TYPE C,
    FACT
    TYPE F.

    *****************************************************************************
    *                   Data Declaration For E-Mail                             *
    *****************************************************************************
    DATA:   W_CNT                  TYPE I,
    LD_FORMAT
    (4)           TYPE C ,"so_obj_tp ,
    LD_ATTDESCRIPTION
    (40TYPE C ,
    LD_ATTFILENAME        
    TYPE SO_OBJ_DES ,
    V_NAME                
    TYPE STRING,
    GD_ATTACHMENT_DESC
    (22) TYPE C,
    GD_CNT                
    TYPE I,
    GD_SENT_ALL
    (1)         TYPE C,
    GD_DOC_DATA           
    LIKE SODOCCHGI1,
    GD_ERROR              
    TYPE SY-SUBRC.
    DATA:   IT_PACKING_LIST LIKE SOPCKLSTI1 OCCURS 0 WITH HEADER LINE,
    IT_CONTENTS
    LIKE SOLISTI1 OCCURS 0 WITH HEADER LINE,
    IT_RECEIVERS
    LIKE SOMLRECI1 OCCURS 0 WITH HEADER LINE,
    IT_ATTACHMENT
    LIKE SOLISTI1 OCCURS 0 WITH HEADER LINE,
    IT_MESSAGE
    TYPE STANDARD TABLE OF SOLISTI1 INITIAL SIZE 0 WITH HEADER LINE.
    *************************************************************************************
    **data imrg-point type char12.

    * create field symbol
    FIELD-SYMBOLS: <STATUS>,
    <TEMP>
    .

    * Assign value of variable from calling prog to field symbol
    ASSIGN ('(SAPLIMR0)IMRG-POINT') TO <STATUS>.
    ASSIGN ('(SAPLIMR0)RIMR0-READC') TO <TEMP>.


    SELECT SINGLE  MPOBJ MRMIN MRMAX PTTXT MRNGU FROM IMPTT INTO (OBNO, MINR, MAXR, DESC, UNIT)
    WHERE POINT = <STATUS>.


    ***CALL FUNCTION 'MC_UNIT_CONVERSION'
    ***  EXPORTING
    ****   MATNR                      = ' '
    ***    NACH_MEINS                 = UNIT
    ***    VON_MEINS                  = 'Pa'
    *** IMPORTING
    ***   UMREF                      = FACT
    *** EXCEPTIONS
    ***   CONVERSION_NOT_FOUND       = 1
    ***   MATERIAL_NOT_FOUND         = 2
    ***   NACH_MEINS_MISSING         = 3
    ***   OVERFLOW                   = 4
    ***   VON_MEINS_MISSING          = 5
    ***   OTHERS                     = 6
    ***          .
    ***IF SY-SUBRC <> 0.
    **** MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
    ****         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ***ENDIF.
    DATA: ILOAN TYPE ILOA-ILOAN,
    ADNO
    TYPE ILOA-ADRNR,
    EMAIL
    TYPE ADR6-SMTP_ADDR.

    SELECT SINGLE EQUNR  FROM EQUI INTO EQNO WHERE OBJNR = OBNO.
    SELECT SINGLE EQKTX FROM EQKT INTO EDESC WHERE EQUNR EQ EQNO AND SPRAS EQ 'EN'.

    SELECT SINGLE ILOAN FROM EQUZ INTO ILOAN WHERE EQUNR EQ EQNO.
    SELECT SINGLE ADRNR FROM ILOA INTO ADNO WHERE ILOAN EQ ILOAN.
    SELECT SINGLE SMTP_ADDR FROM ADR6 INTO EMAIL WHERE ADDRNUMBER = ADNO.

    CONCATENATE 'Measuring Point' DESC 'Notification' INTO NDESC SEPARATED BY SPACE.

    IF ( ( <TEMP> < MINR ) OR ( <TEMP> > MAXR ) ).
    * create header data
    I_BAPI2080_NOTHDRI
    -REFOBJECTKEY = SY-UNAME."'PJAREF'.
    I_BAPI2080_NOTHDRI
    -EQUIPMENT    = EQNO."'10000030'.
    I_BAPI2080_NOTHDRI
    -REPORTEDBY   = SY-UNAME."'PJAREP'.
    I_BAPI2080_NOTHDRI
    -SHORT_TEXT   = NDESC."'PJA Short Test from BAPI'.
    I_BAPI2080_NOTHDRI
    -PRIORITY     = '1'.

    * create header long text
    I_BAPI2080_NOTFULLTXTI
    -OBJTYPE    = 'QMEL'.
    I_BAPI2080_NOTFULLTXTI
    -FORMAT_COL = 'U1'.
    I_BAPI2080_NOTFULLTXTI
    -TEXT_LINE  = 'Long text 1'.
    APPEND I_BAPI2080_NOTFULLTXTI.
    I_BAPI2080_NOTFULLTXTI
    -OBJTYPE    = 'QMEL'.
    I_BAPI2080_NOTFULLTXTI
    -FORMAT_COL = 'U1'.
    I_BAPI2080_NOTFULLTXTI
    -TEXT_LINE  = 'Long text 2'.
    APPEND I_BAPI2080_NOTFULLTXTI.


    CALL FUNCTION 'BAPI_ALM_NOTIF_CREATE'
    EXPORTING
    *   EXTERNAL_NUMBER          =
    NOTIF_TYPE              
    = 'M1'
    NOTIFHEADER             
    = I_BAPI2080_NOTHDRI
    *   TASK_DETERMINATION       = ' '
    *   SENDER                   =
    *   ORDERID                  =
    IMPORTING
    NOTIFHEADER_EXPORT      
    = I_BAPI2080_NOTHDRE
    TABLES
    *   NOTITEM                  =
    *   NOTIFCAUS                =
    *   NOTIFACTV                =
    *   NOTIFTASK                =
    *   NOTIFPARTNR              =
    *    longtexts                = i_bapi2080_notfulltxti
    *   KEY_RELATIONSHIPS        =
    RETURN                   = I_BAPIRET2.

    CALL FUNCTION 'ALM_PM_MAINTNOT_PUTINPROGRESS'
    EXPORTING
    NUMBER             = I_BAPI2080_NOTHDRE-NOTIF_NO
    *     LANGU              = SY-LANGU
    *     LANGUISO           =
    *     TESTRUN            = ' '
    *   IMPORTING
    *     SYSTEMSTATUS       =
    *     USERSTATUS         =
    *   TABLES
    *     RETURN             =
    .
    IF SY-SUBRC = 0.

    CALL FUNCTION 'BAPI_ALM_NOTIF_SAVE'
    EXPORTING
    NUMBER            = I_BAPI2080_NOTHDRE-NOTIF_NO
    IMPORTING
    NOTIFHEADER      
    = I_BAPI2080_NOTHDRI2
    * TABLES
    *   RETURN            =
    .
    ENDIF.
    if sy-subrc = 0.

    PERFORM STATUS_UPDATE IN PROGRAM SAPLBSVA.

    *  CALL FUNCTION 'STATUS_UPDATE_TASK_TRIGGER'.

    CONCATENATE 'Measurement Limit Out of Range.                Notification ' I_BAPI2080_NOTHDRI2-NOTIF_NO 'Created.' INTO MESG SEPARATED BY SPACE.

    MESSAGE MESG TYPE 'I'.

    *  Code for mail added by Sachin Singhal on 19.12.2012**********************************************
    data: mail_text TYPE string.
    CONCATENATE ndesc I_BAPI2080_NOTHDRI2-NOTIF_NO 'Created on' edesc INTO mail_text SEPARATED BY SPACE.

    IF eMAIL IS NOT INITIAL.

    CONSTANTS:
    *    gc_subject TYPE so_obj_des VALUE 'ABAP Email with CL_BCS',
    gc_raw    
    TYPE char03 VALUE 'RAW'.

    DATA:
    gc_subject
    TYPE so_obj_des,
    gv_mlrec        
    TYPE so_obj_nam,
    gv_sent_to_all  
    TYPE os_boolean,
    gv_email        
    TYPE adr6-smtp_addr,
    gv_subject      
    TYPE so_obj_des,
    gv_text         
    TYPE bcsy_text,
    gr_send_request 
    TYPE REF TO cl_bcs,
    gr_bcs_exception
    TYPE REF TO cx_bcs,
    gr_recipient    
    TYPE REF TO if_recipient_bcs,
    gr_sender       
    TYPE REF TO cl_sapuser_bcs,
    gr_document     
    TYPE REF TO cl_document_bcs.

    TRY.
    gc_subject
    = ndesc.
    "Create send request
    gr_send_request
    = cl_bcs=>create_persistent( ).
    "Email FROM...
    gr_sender
    = cl_sapuser_bcs=>create( sy-uname ).
    "Add sender to send request
    CALL METHOD gr_send_request->set_sender
    EXPORTING
    i_sender
    = gr_sender.

    "Email TO...
    gv_email
    = email.
    gr_recipient
    = cl_cam_address_bcs=>create_internet_address( gv_email ).
    "Add recipient to send request
    CALL METHOD gr_send_request->add_recipient
    EXPORTING
    i_recipient
    = gr_recipient
    i_express  
    = 'X'.

    "Email BODY
    APPEND MAIL_TEXT TO gv_text.
    gr_document
    = cl_document_bcs=>create_document(
    i_type   
    = gc_raw
    i_text   
    = gv_text
    i_length 
    = '12'
    i_subject
    = gc_subject ).
    "Add document to send request
    CALL METHOD gr_send_request->set_document( gr_document ).

    "Send email
    CALL METHOD gr_send_request->send(
    EXPORTING
    i_with_error_screen
    = 'X'
    RECEIVING
    result             
    = gv_sent_to_all ).
    **      IF gv_sent_to_all = 'X'.
    **        WRITE 'Email sent!'.
    **      ENDIF.

    "Commit to send email
    *      COMMIT WORK.

    "Exception handling
    CATCH cx_bcs INTO gr_bcs_exception.
    WRITE:
    'Error!',
    'Error type:',
    gr_bcs_exception
    ->error_type.
    ENDTRY.

    IF SY-SUBRC <> 0.
    MESSAGE ID SY-MSGID TYPE 'S' NUMBER SY-MSGNO
    WITH SY-MSGV1.
    ELSE.
    CL_OS_TRANSACTION_END_NOTIFIER
    =>RAISE_COMMIT_REQUESTED( ).
    CALL FUNCTION 'DB_COMMIT'.
    CL_OS_TRANSACTION_END_NOTIFIER
    =>RAISE_COMMIT_FINISHED( ).
    *      MESSAGE ID 'ZHR' TYPE 'S' NUMBER '002' WITH WA_DISPLAY-PERNR.
    ENDIF.

    endif.
    endif.
    ENDIF.


    Best Regards,

    Akhilesh Singh



    Catalogs & Codes: F4 help filter

    $
    0
    0

    Catalog-Codes F4 help filter facility through user-exit QQMA0015.

     

    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).

     

    First let’s see what is this facility we are talking about.

     

    Select a Code & Code Group  in the Catalog-codes tab of a notification.

    (Say we have selected ‘DRIVE-SET’)

     

    Capture.JPG

     

    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)

    Capture1.JPG

    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.

     

    If the above feature looks interesting & useful, the following section demonstrates how to achieve this.

     

     

     

     

     

    Let’s  suppose we have a coding data as under.

     

     

     

    1.JPG

     

    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).

    a.JPG

    -  Complete other Coding (QS41) as per the above Excel-sheet data.

     

    OQN6:

    - Create a Profile as shown below.

     

    prof.JPG

     

    And assign this Profile (PUMPASSLY) to the respective Equipments.

     

     

    The F4 Filter:

     

    Write the following Code in the include ZXQQMU21 of user-exit QQMA0015.

    -------------------------------------------------------------------------------------------------------

    code.JPG

    -------------------------------------------------------------------------------------------------------

     

    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.

     

    untitled1.jpg

     

    Jogeswara Rao K

    User Exit 'QQMA0014', the applications

    $
    0
    0

    As the name of the user exit indicates, (Checks before saving a notification), this user exit when used, prevents user from saving a notification if the conditions specified in the code (written in include ZXQQMU20)  are not satisfied.

     

    Use:

    Often users are forced to use this exit, due to a strange behaviour of Notification configuration.

    That is: When configuring a notification type, the user marks few fields as 'Required' in the SPRO settings. While working on these notifications it is seen that such mandatory fields inside a tab other than 'Header' tab fail to force the user to fill them, if he does not enter the tab before saving.

     

    Here this user exit comes to help:

    An example code is given below to be written in the include (ZXQQMU20) of the exit.

    Capture.JPG

    This code prevents user from saving the notification of type 'M4' if he does not fill the 'Cost Center' field in the 'Location' tab.

    Such many innovative uses can be derived out of this exit in this area.

     

    Secondly,

    This can be for intelligence in 'Catalogs & Codes' tab for relating values of one catalog to the other.

    An example code is here:

    Capture1.JPG

     

    This means,

    When 'Object part' code is 'PR' in the catalog-codes tab, and 'Damage' code is not filled, then the notification does not save, wth the custom message (blacked-out).

    Similarly, when 'Object part' code is other than 'PR' and the 'Damage' code is filled then also the notification saving is prevented.

     

    This code is just to illustrate. Readers can apply in similar way to all their requirements.

     

    Jogeswara Rao K

     

    PS: After going through many discussions on the subject topic, the idea of posting this to documents section came, where there is no document available on this topic.

    Equipment Availability - Concept & Issues

    $
    0
    0

     

     

     

    The Availability & MTTR, MTBR

     

    In the maintenance function, often things end-up with questions about the Availability of Machines for Production, for a specified mission (time period)

     

    This parameter is known by different names such as

     

    - Equipment Availability

     

    - Operational Availability etc.

     

     

    Usually the Equipment Availability value is computed with a base formula:

     

    1.jpg

     

    This is expressed in percentage and calculated using the following methods

     

    ___________________________________________________________________________

     

     

    Method1

     

    2.jpg

     

    Where

     

    A (Available Hrs)          =  Mission period in HrsMaintenance 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

     

    3.jpg

     

     

     

     

     

     

     

      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:

    4.png

     

    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.

     

     

     

    -----@@@----

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

    Finding Tables in SAP

    $
    0
    0

    How to find tables in SAP:

    1. Select the required field
    2. Press F1 for help
    3. Select the Technical information button (hammer/spanner), or press F9 if you are using the old style help dialog screen
    4. Double-click on the data element field
    5. Double-click on the domain field (provided it isn't something like CHAR1, otherwise go to step 6)
    6. Select the where-used button (button with little yellow square with 3 arrows radiating)
    7. Select indirect application from the pop-up box
    8. Double-click on the Database Tables line in the next pop-up box
    9. You should now have a list of all DB tables where that field is used (this should work in about 90% of cases)

     

    Alternatively:

    1. Run TCode ST05 (performance analysis)
    2. Press <activate trace> button
    3. Enter the transaction you want to use (e.g. /NIW32) in the command code box
    4. Enter an order number in the Order sub-screen
    5. Execute, or F8
    6. Enter /NST05 in the command code box
    7. Press the <deactivate trace> button
    8. Press the <display trace> button
    9. Review tables

    Adjusting Table Control Settings

    $
    0
    0

    SAP Help

     

    This document explains how the user can adjust the table control settings to allow them to view the most important fields for their business requirements.

     

    The image below show the Operation Overview tab within a maintenance work order. The operations are displayed in an ABAP function called a table control.

     

     

    The user has the ability to change the following in a table control:

    • Change the column sequence
    • Change the column width

     

    Example: the user wants to see the schedule dates rather than page to the right to find them. Here is the process to follow:

     

    Step

    Description

    1

    Rearrange the table control columns as required:

    2

    Click the configuration button () in the top right-hand corner of the table control.


    3

    This will now display a popup screen as follows:


    4

    Enter a variant name and press the CREATE button. Then press the SAVE button

     

    5

    The values should now look like this:

     

    6

    Now each time you enter this screen you should be presented with the fields  in the order you determined above.

    7

    Note: you can create many variants if required, but only one can be your default setting.

    Viewing all 842 articles
    Browse latest View live