pm.cs userexits and bapis.pdf

99
The Ultimate guide to Customer Enhancements relevant to PM & CS (Release 4.6C) Contents 1. Enhancement List .................................................................................................................................. 2 2. BAPI List .............................................................................................................................................. 5 3. Enhancements in Detail ........................................................................................................................ 6 4. BAPI’s in Detail .................................................................................................................................. 88

Upload: fernunezg

Post on 30-Nov-2015

927 views

Category:

Documents


55 download

TRANSCRIPT

Page 1: PM.CS UserExits and BAPIs.pdf

The Ultimate guide to

Customer Enhancements

relevant to PM & CS

(Release 4.6C)

Contents 1. Enhancement List .................................................................................................................................. 2 2. BAPI List .............................................................................................................................................. 5

3. Enhancements in Detail ........................................................................................................................ 6 4. BAPI’s in Detail .................................................................................................................................. 88

Page 2: PM.CS UserExits and BAPIs.pdf

1. Enhancement List

Enhancement Description

IBase IB020001 Filter components IBPP0001 Filter IBase Components When Generating From PP Data

Partner Selection ICRP0201 Search Help CS_ORG_02: Authorization Check ICRP0202 Search Help CS_ORG_02: Internally-Programmed Selection ICRP0203 Search Help CS_ORG_02: Propose Task

ICSV0001 Display of geographic location data ICSV0002 Automatic task determination for service notifications ICSV0003 Partner selection ICSV0004 Check PM object and display object information ICSV0005 Determining reason for rejection - resource-related billing ICSV0007 Serial Number Partner Transfer on Goods Issue and Returns ICSV0008 Validation of additional partner types

Master Data IBIP IBIP: Trans. IBIP Data Transfer IEQM0001 Add. checks for equip. installation at functional locations IEQM0002 Additional checks for definition of equipment hierarchies IEQM0003 Additional checks before equipment update IEQM0004 Object is allowed for contract partner (Order->MaintCont.) IEQM0005 Object allowed for SD contract (MaintContract->MaintCont.) IEQM0006 Object allowed for SD contract (Maintain maintenance cont.) IEQM0007 Check/change manufacturer field in equipment master IHCL0001 Create equipment using material template: Classes/chars ILOM0001 Additional checks before saving a functional location ILOM0002 User exit when checking structure of location numbers ITOB0001 PM: Customer include subscreen for technical object master data ITOB0002 ITOB: Field changes to copy model ITOB0003 PM: Customer Include subscreen for fleet object data ITOB0004 PM: Customer Exit fleet identification data: Checks

Measuring Points/Documents IMRC0001 Measurement Point/Measurement Document: Exit before update (after COMMIT WORK) IMRC0002 Measurement Point: Menu exit for customer-specific function IMRC0003 Measurement Document: Menu exit for customer-specific function

Maintenance Plans IPRM0002 Determine planned date info for maintenance plan IPRM0003 User field: Maintenance plan IPRM0004 Maintenance plan / item: Customer check for time "SAVE" IPRM0005 Determine Offset for Performance-Based Strategy Plans

Serial Numbers IQSM0001 Automatic serial number assignment IQSM0002 Check when copying object list IQSM0003 Serial numbers, user exit for additional data IQSM0004 Serial numbers, user exit after exiting the serial screen IQSM0005 Serial numbers, user exit in the update IQSM0007 Serial numbers, user exit for goods movements IQSM0008 Serial number character string check

IDocs IWMI0001 User exits for SM/PM IDOCs

Orders CNEX0013 Order: Customer enhancement: Default item category component assignment IWO10001 Create a PM sub-order IWO10002 PM maintenance order: Customer check for order release IWO10004 Maintenance order: Customer check for order completion IWO10005 Maintenance order: Customer-specif. determination of profit centre IWO10006 Maintenance order: FCode exclusion through customer enhancement

Page 3: PM.CS UserExits and BAPIs.pdf

IWO10007 Maintenance order: Customer enhancement - permits in the order IWO10008 Customer enhancement: Determination of tax jurisdiction code IWO10009 PM Order: Customer Check for 'Save' Event IWO10010 Maintenance order: Customer enhancement for determining WBS element IWO10011 Maintenance order: Customer enhancement for component selection IWO10012 Maintenance order: Priority handling on central header IWO10015 Maintenance order: F4 Help for user fields on operation IWO10016 PM Order: Customer enhancement to check operation user fields IWO10017 Determine external order number by customer logic IWO10018 Maintenance order: User fields on order header IWO10020 Maintenance order: Automatically include task list IWO10021 Automatic task list transfer when creating order from notification IWO10022 Determine calendar from user exit IWO10023 Service order: Change header data for advance shipment doc. IWO10024 Service order: Changes to items for advance shipment IWO10025 PM/SM order: Finding responsible cost centre IWO10026 User check on setting status 'Do not perform' IWO10027 User exit: Generate user-defined settlement rule IWO10029 Inclusion of bill of material in PM/SM order IWO20001 PM order: User exit to pass routing to order COOM0001 Customer Functions for Overhead Percentages COZF0001 Change purchase req. for externally processed operation COZF0002 Change purchase req. for externally procured component CY190001 Capacity Planning: Change order operation

Billing KSDIEX01 Determining expenditures in resource-related billing

General IWOC0001 Create PM/SM notification: Determine reference object IWOC0002 PM/SM notification: Check whether status change is allowed IWOC0003 PM/SM authorization check of ref. object and planner group IWOC0004 Change single-level list editing PM/QM/SM ALV settings IMSMCOMM MSM communication enhancement

Confirmation CONF0001 Enhancements in order confirmation CONFPM01 PM/SM order conf.: Determine customer specific default values CONFPM02 PM/SM order confirmation: Customer specific input checks 1 CONFPM03 PM/SM order conf.: Customer specific check after op. Selection CONFPM04 PM/SM order conf.: Customer specific input check 2 CONFPM05 PM/SM order conf.: Customer specific enhancements when saving

CATS CATS0001 CATS: Compile worklist CATS0002 CATS: Supplement recorded data CATS0003 CATS: Validate recorded data CATS0004 CATS: Deactivate functions in the user interface CATS0005 CATS: Customer field enhancements CATS0006 CATS: Validate entire time sheet CATS0007 CATS: Subscreen on initial screen CATS0008 CATS: Determine workflow recipients for approval CATS0009 CATS: Customer-Specific Text Fields in Data Entry Section CATS0010 CATS: Customer-Specific Text Fields in Worklist CATS0011 CATS: Customer functions CATS0012 CATS: Subscreen on data entry screen CATSBW01 Customer Exit for Transferring Time Sheets > BW

Notifications QQMA0001 QM/PM/SM: User subscreen for notification header QQMA0002 QM: Authorization Check for Entry into Notification Transaction QQMA0003 QM: "User data" Function in "Goto" Menu QQMA0004 QM: "User data" Function in "Goto -> Item” Menu QQMA0005 QM: Check Validity of Status Change QQMA0006 QM: Automatic Task Determination for Quality Notifications

Page 4: PM.CS UserExits and BAPIs.pdf

QQMA0007 QM: Default Values when Creating a Notification QQMA0008 QM/PM/SM: User Subscreen for Additional Data on Notification Item QQMA0009 QM: Predefine QM Order Parameters QQMA0010 QM/PM/SM: User Subscreen for Additional Data on Cause QQMA0011 QM/PM/SM: User Subscreen for Additional Data on Task QQMA0012 QM/PM/SM: User Subscreen for Additional Data on Activity QQMA0013 QM: Default Values when Creating a Task QQMA0014 QM/PM/SM: Checks before saving a notification QQMA0015 QM/PM/SM: User-Exit before Call-Up of F4 Help on Catalogs QQMA0016 QM/PM/SM: "User data" Function "Goto" > "Task" Menu QQMA0017 QM/PM/SM: "User data" Function "Goto" > "Activity" Menu QQMA0018 QM/PM/SM: Deadline setting based on entered priority QQMA0019 QM/PM/SM: Default Partner when Creating a Notification QQMA0020 QM: Determining BOM Usage at BOM explosion QQMA0021 QM/PM/SM: Function "User data" in "Goto" menu QQMA0022 QM/PM/SM: "User data" function in "Goto -> Causes" menu QQMA0023 QM/PM/SM: "User data" function in "Goto -> Item" menu QQMA0024 QM/PM/SM Deactivate function codes in CUA menu QQMA0025 PM/SM: Default values when adding a notification QQMA0026 PM/SM: Auth. check when accessing notification transaction QQMA0027 PM/SM: Default values when adding a task QQMA0028 QM: Create notification from confirmation of production order QQMA0029 QM/PM/SM: Change Notification Type

Reporting MCI10001 MCI1: PMIS/QMIS updating MCR00001 LIS: Authorization check for standard analyses MCR00002 Standard analyses: Key figure display RMCAF000 LIS: Import External Data for Copy Management

External Services Mgt INTERFAC Interface for data transfer SRV_FRM SRV: Formula calculation (obsolete since 4.0A!) SRVDET User screen on tab strip of service detail screen SRVEDIT Service list control (maintenance/display) SRVENTRY Unplanned part of entry sheet (obsolete since Rel. 3.1G) SRVESI Data conversion entry sheet interface SRVESKN Set account assignment in service line SRVESLL Service line checks SRVESSR Set entry sheet header data SRVEUSCR User screen on entry sheet tabstrip SRVKNTTP Setting the account assignment category when reading in, if “U” SRVLIMIT Limit check SRVMAIL1 Processing of mail before generation of sheet SRVMSTLV Conversion of data during importing of standard service cat. SRVPOWEB Purchase order for service entry in Web SRVQUOT Service export/import for inquiry/quotations SRVREL Changes to comm. structure for release of entry sheet SRVSEL Service selection from non-SAP systems

Under development CRM00001 User Exits in Customer Relationship Management

Page 5: PM.CS UserExits and BAPIs.pdf

2. BAPI List

BAPI Description IQS6 CS/SM notifications BAPIs BAPI_SERVNOT_ADD_DATA BAPI_SERVNOT_CHANGEUSRSTAT BAPI_SERVNOT_CLOSE BAPI_SERVNOT_CREATE BAPI_SERVNOT_DEL_DATA BAPI_SERVNOT_GET_DETAIL BAPI_SERVNOT_MODIFY_DATA BAPI_SERVNOT_POSTPONE BAPI_SERVNOT_PUTINPROGRESS BAPI_SERVNOT_SAVE

Added Items, Causes, Activities, Tasks, Partners of the service notification Change the user status of a service notification Complete service notification Create service notification Delete Items, Causes, Activities, Tasks, Partners of the service notification Get details about a service notification Modify a service notification or associated sub-data Postpone service notification Put in process a service notification Save service notification

IQS7 CS/SM Tasks BAPIs BAPI_SERVNOT_COMPLETE_TASK BAPI_SERVNOT_RELEASE_TASK BAPI_SERVNOT_SUCCESSFUL_TASK

Complete Notification Task Release Notification Task Release Notification Task

ITOB_BAPI_EQ PM Equipment: BAPIs BAPI_EQUI_CHANGE BAPI_EQUI_CREATE BAPI_EQUI_CREATE_BY_REFERENCE BAPI_EQUI_DISMANTLE BAPI_EQUI_GETDETAIL BAPI_EQUI_GETLIST BAPI_EQUI_INSTALL

PM BAPI: Change Equipment PM BAPI: Create Equipment PM BAPI: Create Equipment with Reference Equipment PM BAPI: Install Equipment (Functional Location, Superior Equipment) PM BAPI: Read Equipment

ITOB_BAPI_FL PM BAPI: Install Equipment (Functional Location, Superior Equipment) BAPI_FUNCLOC_CHANGE BAPI_FUNCLOC_CREATE BAPI_FUNCLOC_GETDETAIL BAPI_FUNCLOC_GETLIST BAPI_FUNCLOC_SET_LABEL_SYSTEM

IWWO BAPI_SERVNOT_GETCATALOGPROFIL IWWW BAPIs for Equipment + Service Notifications BAPI_EQMT_CREATE BAPI_EQMT_DETAIL BAPI_EQMT_DISMANTLEFL BAPI_EQMT_DISMANTLEHR BAPI_EQMT_GETCATALOGPROFIL BAPI_EQMT_GETLISTFORCUSTOMER BAPI_EQMT_INSTALLFL BAPI_EQMT_INSTALLHR BAPI_EQMT_MODIFY BAPI_SERVICENOTIFICAT_CREATE BAPI_SERVICENOTIFICAT_GETLIST

Create equipment Read details for equipment Dismantle equipment at functional location Dismantle equipment from equipment hierarchy Determine catalog profile for equipment Select customer equipment Install equipment at functional location Install equipment in equipment hierarchy Change equipment Create service notification Select service notifications according to customer or contact person

MLBO BAPIs for Entry Sheet (BO 2091) BAPI_ENTRYSHEET_CHECK BAPI_ENTRYSHEET_CREATE BAPI_ENTRYSHEET_DELETE BAPI_ENTRYSHEET_GETDETAIL BAPI_ENTRYSHEET_GETLIST BAPI_ENTRYSHEET_GETRELINFO BAPI_ENTRYSHEET_RELEASE BAPI_ENTRYSHEET_RESET_RELEASE

Check Service Entry Sheet Create Entry Sheet Delete Entry Sheet Display Detailed Data on Entry Sheet List Entry Sheets Detailed Release Information Relating to Entry Sheet Release Entry Sheet Cancel Release of Entry Sheets

Page 6: PM.CS UserExits and BAPIs.pdf

3. Enhancements in Detail IB020001 Function exits: EXIT_SAPLIBSD_001

Filter components Filter components

No documentation in English at present.

IBIP Function exits: EXIT_SAPLIBIP_001

IBIP: Trans. IBIP Data Transfer User Exit: Data Transfer Module (IBIP Batch Input)

You can use this enhancement to develop your own data transfer. The advantage of the user exit over an internal ABAP is that the following functions are available to you:

Error handling

Remote function call

Test data functions This extension is called up using transactions IBIP, IBI2 and the ABAP RIIBIP00. User exit EXIT_SAPLIBIP_001 USER EXIT 001: EXIT_SAPLIBIP_001 of expansion IBIP. How it works: Fill out internal table BDCDATA[] (for further information see ABAP LXPMZU01). BDCDATA[] is a table with batch input details. It defines which screens and which fields should be filled with which values. The source from which these field are filled is in INT_TAB[]. Note:

The interface is shifted immediately to the standard work fields.

The interface data is moved automatically to other work fields. Logical interface: You need: - tables INT_TAB[] <===== INPUT CURR_TRAN[] <===== INPUT - field string (record) INT_TAB <===== INPUT to fill the table BDCDATA[] =====> OUTPUT For more information, see also IBIP Data transfer documentation. Enter your coding in ZXPMZU01. ABAP program LXPMZexa contains an example of source code. Note:

You can use all GLOBAL data and FORM subroutines in the Includes LXPMZU01 or LIBIPTAP.

Page 7: PM.CS UserExits and BAPIs.pdf

IBPP0001 Function exits: EXIT_SAPLIBPP_001

Filter IBase Components When Generating From PP Data Filter Components

No documentation in English at present.

ICRP0201 Function exits: EXIT_SAPLCS_ORG_02_001

Search Help CS_ORG_02: Authorization Check Customer Exit: Reduction of Displayed Records

The system offers you differing search helps depending on the partner role. From Release 4.6C, you can also use tasks to search for organizational units. After you have entered the task, the system determines the organizational units. You can use this customer exit to reduce the number of organizational units, for example, if you do not require all organizational units for a particular notification type in your company. If you do not use this customer exit, the system displays all suitable organizational units. The system proposes the following interfaces:

Table P_RECORD_TAB contains all organizational units.

Parameter P_SHLP contains information about the search help.

Parameter P_CALLCONTROL Note: You can delete or supplement organizational units by adding or deleting data records to or from the table P_RECORD_TAB. Do not change the parameter P_CALLCONTROL_STEP if you want to use the general search help display function. If you want to replace the general search help display by your own display, you must change the parameter P_CALLCONTROL_STEP as follows:

P_CALLCONTROL_STEP = 'EXIT': Search help processing should be cancelled.

P_CALLCONTROL_STEP = 'PRESEL’: You can start search help processing from the beginning.

P_CALLCONTROL_STEP ='RETURN' You have programmed your own search help display, and want the system to transport the selected organizational units to the screen. Set the parameter P_CALLCONTROL_STEP to 'RETURN', and enter the selected organizational unit in the table P_RECORD_TAB.

ICRP0202 Function exits: EXIT_SAPLCS_ORG_02_002

Search Help CS_ORG_02: Internally-Programmed Selection Customer Exit: Selection of Org Units

The system offers you differing search helps depending on the partner role. From Release 4.6C, you can also use tasks to search for organizational units. After you have entered the task, the system uses the evaluation path A204 in the standard system to determine which organizational units can fulfil the tasks entered. You can use this customer exit to define the rules for determining organizational units. You will find the tasks that have been predefined by SAP in the table SELOPT which is a component of the parameter P_SHLP. You must enter suitable organizational units in the table P_RECORD_TAB. Note:

The parameter of this customer exit is the search help P_SHLP.

Change the table P_RECORD_TAB only.

As an example, you can use the SAP program CS_ORG02_STEP_SELECT from the function group CS_ORG_02. You will find SAP standard coding here.

Page 8: PM.CS UserExits and BAPIs.pdf

ICRP0203 Function exits: EXIT_SAPLCS_ORG_02_003

Search Help CS_ORG_02: Propose Task Customer Exit: Proposal of Task Profile

You use this customer exit to define the tasks to be used for determining organizational units. If you have defined the tasks, the system immediately starts the process of determining the organizational units. The system proposes the table TASKS as an interface. The table is empty, enabling you to enter the tasks of your choice. The table consists of the following fields:

OBJTY - This field contains the object type of a task and should have the value T

OBJID - Eight-character number of the task

ICSV0001 Menu entries: RIAUFK20+LOC RIEQUI20+LOC RIIFLO20+LOC RIQMEL20+LOC RQMELL10+LOC SAPLIPAR+LOC Function exits: EXIT_SAPLICUS_001

Display of geographic location data External system External system External system External system External system External system Display Location Information

This enhancement enables an external program to be called up and integrated with location data being displayed. The module is called up from the PM system at various stages with the corresponding location data, for example:

Equipment lists

Functional location lists

Notification lists

Order lists

Partner overviews of equipment, functional locations, notifications and orders The field key includes a key for each, for example, the equipment number, the field

ICSV0002 Function exits: EXIT_SAPMIWO0_003

Automatic task determination for service notifications Automatic determination of tasks for service notifications

Within the framework of notification processing it is possible to determine tasks automatically. In SAP Standard these tasks are determined on the basis of response time and service window. These are, in turn, determined by the notification type and/or by the service order. In addition to this standard functionality you also have the option of carrying out your own determination of tasks. Complete, up-to-date notification data is available as a basis for information to enable you do this. You can derive the tasks that you want from it to create your own notification. You are also able to establish whether or not the SAP Standard Functionality should run. The structure VIQMEL contains the notification header data. Necessary customizing information can be contained in the structures TQ80 and RIWO02. The tables contain the notification positions (I_QMFE), causes (I_QMUR), tasks (I_QMSM) and actions (I_QMMA). You can export the tasks that you have determined back into the notification in the table E_QMSM.

Page 9: PM.CS UserExits and BAPIs.pdf

ICSV0003 Menu entries: SAPLIPAR+PAE SAPLIPAR+PAF SAPLIPAR+PAO SAPLIPAR+PAR Function exits: EXIT_SAPLIPAR_002

Partner selection External system External system External system External system Selection of Notification Partners

You can use this enhancement to extend the SAP System to include your own partner selection from the notification and the order. Equipment and functional location number are available to you as parameters. The corresponding notification number will also be transferred if specified. In the OBJTYPE (object type) field, you can establish from where the call originated. SN = Service notification PN = Maintenance notification QN = Quality notification SO = Service order PO = Maintenance order The parameter AUTOMATIC shows whether the call was made manually by the user or whether a determination of partners should be carried out automatically. A determination will then always be attempted if the reference object was changed or re-entered. The actual partner determination procedure is actually transferred into the parameter PARGR. Transfer the necessary partner roles and the corresponding partner numbers to the system. The parameter OBJNR contains the current object number of the status object belonging to the notification or the order. Make sure that the partner numbers are given in internal format i.e. with zeros at the beginning. IMPORTANT: This enhancement will become effective at the same time for all notification categories, for example for quality notifications and internal maintenance notifications. It is also active for service and functions and the corresponding partner number into the system. maintenance orders .

ICSV0004 Function exits: EXIT_SAPLIWO1_003

Check PM object and display object information Check PM Object and Display Object Information

Whenever a maintenance object is changed in service and maintenance notifications or in service and maintenance orders this function module is directly called up. Accordingly, you have the option of making the user aware of particular characteristics of the object or of data relating to it i.e. open notifications. However, the user is also able to call up this function explicitly. It can be called up by first calling up SAP Standard Object Information. The object keys and texts are provided in the corresponding fields. The activity category shows which session the user is working in. You obtain the key to the parameters for the SAP Standard Object Information in the field INFO_WIND. You can use the parameter AUTOMATIC_CHECK to find out whether the user explicitly asked for object information or whether the function was simply called up automatically by the system due to an object being changed.

ICSV0005 Function exits: EXIT_SAPLISDI_001

Determining reason for rejection - resource-related billing Customer Exit: Determining Rejection of Billing Document - Warranty

Using this enhancement, it is possible to determine a reason for rejection due to an existing warranty claim and forward it to the billing request. This enhancement is called up in the resource-related billing (transaction VA90, program SAPLV45H) after the warranty check of the reference object, in case a warranty request was established on the part of the customer. The reason for rejection can be determined with the help of the transferred data (equipment number, master warranty number, service order number and result of the warranty check).

Page 10: PM.CS UserExits and BAPIs.pdf

ICSV0007 Function exits: EXIT_SAPLIPAS_001

Serial Number Partner Transfer on Goods Issue and Returns Partner Transfer of Serial Numbers for Goods Issue

You can use this customer exit to determine which partners you would like to transfer into the serial number, within the framework of deliveries when posting goods issues. In the standard system, the partners transferred from the goods issue are those that are marked in Customizing for Plant Maintenance with the indicator Copy partner from partner determination procedure under Functions in the determination procedure, and that exist in the goods issue document.

ICSV0008 Function exits: EXIT_SAPLIPAR_003 EXIT_SAPLIPAR_004 EXIT_SAPLIPAR_005

Validation of additional partner types Customizing partner check Reading of the additionally supported partner types F4 Help for additional partner types

EXIT_SAPLIPAR_003 This customer exit enables you to use partner types that are not available as standard partner types in the CS, QM and PM components. Previously you were able to use the following partner types:

KU Customer

LI Vendor

AP Contact person

O Organizational unit

S Position

US User

PE Personnel number Example: partner_art-nrart = ' '. append partner_art. Result: You can also create partner functions of partner type " " in the components PM, QM and SM. EXIT_SAPLIPAR_004 If you support additional partner types using the function module EXIT_SAPLIPAR_003, you need this function module to read the table entries of the new partner types. Z contains the table entries for the additionally permitted partner type ' '. This table may also be a customer-defined one. Example: tables: z_table. case nrart. when ' '. select single * from z_table where parnr = parnr. move-corresponding z_table to diadrp_wa. endcase. EXIT_SAPLIPAR_005 The F4 function makes available this function module for additionally supported partner types.

Page 11: PM.CS UserExits and BAPIs.pdf

IEQM0001 Function exits: EXIT_SAPLIEL2_002

Add. checks for equip. installation at functional locations Check of User-Defined Rules on Installation of Equipments at Function Locations

The function module EXIT_SAPLIEL2_002 mentioned in this enhancement is called up when you want to install a piece of equipment at a functional location. You can arrange for additional functional and logical checks to be carried out at this location, before the equipment can be installed at the functional location. The indicator INSTALLATION_NOT_ALLOWED on 1 (= Installation not allowed) or <blank> (= Installation allowed) is set after the checks have been carried out. If the installation of equipment was not allowed, the system informs the user of this with dialog message IA051.

IEQM0002 Function exits: EXIT_SAPLIEL2_001

Additional checks for definition of equipment hierarchies Check of User-Defined Rules When Defining the Equipment Hierarchy

The function module EXIT_SAPLIEL2_001 mentioned in this enhancement is called up when you define equipment hierarchies, therefore, during the following activities:

when you assign sub-equipments to a superior equipment

when you exchange one sub-equipment for another

when you delete the superior equipment for a sub-equipment and/or define a new superior equipment

When you change the position of a sub-equipment You can arrange for additional functional and logical checks to be carried out before the data changes are authorized. After the checks have been carried out, the indicator IND_EQ_SELECT on (= Equipment hierarchies not allowed) or <blank> (= Equipment hierarchy allowed) is set. If the equipment hierarchy was not allowed, the system informs the user of this with the dialog message IE061.

Page 12: PM.CS UserExits and BAPIs.pdf

IEQM0003 Function exits: EXIT_SAPMIEQ0_001

Additional checks before equipment update Check of Customer-Defined Rules Before Equipment Update

You call up the function module EXIT_SAPMIEQ0_001 mentioned in this customer exit when you update the data of a piece of equipment and the data of a serial number. You can initiate additional objective and logical checks by the system before the piece of equipment and the serial number are updated. The update of the data can only take place if the module does not generate an error condition (in the form of an exception). If an exception is created, the system does not perform the update, but simply issues a corresponding message. Which message this is, depends on whether you want to define a message of your own:

If so, you must create the exception POSTING_NOT_ALLOWED_EXT. Use the instruction MESSAGE xnnn RAISING <exception> for this. The system issues the message that you specified in the instruction (alsxnnn)

If not, you must create the exception POSTING_NOT_ALLOWED, whereby it is sufficient to use the instruction RAISE <exception>. The system issues the standard message IS200.

In the function module it is not just additional checks that can be performed. It is also possible to supply particular fields of the equipment and serial number master records with customer-specific values. The following export parameters are available for these values:

UPDATE_DATA_EQ

UPDATE_DATA_EZ The fields to be interpreted in them must be selected in the corresponding update structures:

UPDATE_FLAGS_EQ

UPDATE_FLAGS_EZ Example: If the sort field ILOA-EQFNR is to be filled with the value '4711', the module must return the following values:

UPDATE_DATA_EQ-EQFNR = '4711' and

UPDATE_FLAGS_EQ-EQFNR = 'X'.

IEQM0004 Function exits: EXIT_SAPLIPW0_001

Object is allowed for contract partner (Order->Maintenance Contract) Object Permissible for Contract (Copying of Order/Maintenance Order)

You can use this customer exit to check in the maintenance contract when copying a sales order, whether an object (piece of equipment, functional location, material, assembly) is allowed for the contract partner. The partners for an object can be read using the corresponding function module in the function group IPAR. The current partners for the maintenance contract can be read by customer exit form routines, that you can find in the module pool SAPMV45A. If an object is not allowed for the partner, an exception can and should be generated in this customer exit using the statement "MESSAGE RAISING".

IEQM0005 Function exits: EXIT_SAPLIPW0_002

Object allowed for SD contract (MaintContract->Maintenance Contract) Object Permissible for Order (Copying of Maintenance Order/Maintenance Order)

You can use this customer exit when copying a maintenance contract into the others, to check whether an object (piece of equipment, functional location, material, assembly) is allowed for the contract partner. The partners for an object can be read by the corresponding function modules in the function group IPAR. The current partners for the maintenance contract can be read by customer exit form routines that you find in the module pool SAPMV45A. If an object is not allowed for partner, an exception can and should be generated in this customer exit using the statement "MESSAGE RAISING".

Page 13: PM.CS UserExits and BAPIs.pdf

IEQM0006 Function exits: EXIT_SAPLIPW0_003

Object allowed for SD contract (Maintain maintenance cont.) Object Permissible for Contract (Maintenance of Maintenance Contract)

You can use this customer exit when processing maintenance contracts to check whether an object (piece of equipment, functional location, material, assembly) is authorized for the contract partner. The partner for an object can be read with the corresponding function modules in the function group IPAR. The current partners for the maintenance contract can be read with customer exit form routines, which you can find in the module pool SAPMV45A. If an object is not authorized for the contract partner, an exception can and should be generated in this customer exit using the statement "MESSAGE RAISING".

IEQM0007 Function exits: EXIT_SAPMIEQ0_002

Check/change manufacturer field in equipment master Customer-Defined Check/Change in Manufacturer Data for Technical Object

This user exit enables you to check and process equipment or serial number master data. It is called up when the master data is saved. In this way, requirements are made before the actual save procedure takes place. For example,

Perform individual data verification or

Make available data of other applications Changes cannot however be made to the data to be saved within the exit.

IHCL0001 Function exits: EXIT_SAPLIHCL_001

Create equipment using material template: Classes/chars IHCL Customer Include: Default Values for Classes and Characteristics

The system calls up this function module when you create a piece of equipment using a material as a template, provided that the material classification data should also be copied over. Assignment to classes and valuation of the characteristics can be influenced. Process:

All assignments to classes as well as valuation of the characteristics will be read in the function module PM_CL_COPY_CLASSIFICATION_1.

Both will be transferred to the function module EXIT_SAPLIHCL_001. The number of the new piece of equipment as well as the material will also be transferred. The following changes should be performed here:

- Removal of classes and characteristics that are not required - Replacement of the class type of the material classes by the class type for the equipment classes (field KLART). In

the standard SAP system, the class type therefore changes from 001 to 002 - Replacement of the number of classes for the material by the number for the corresponding equipment class (field

CLINT). You can find these numbers by using transaction SE16 for table KLAH, for example. - If differing characteristics are used in the classification of material and equipment, the characteristic numbers (field

ATINN) must also be exchanged. - Setting of the export parameter E_IND_CL_COPY_ACTIVE to 'X' if the adjusted data should also be copied.

The tables will be evaluated during processing of the classification module CLFM_OBJECT_CLASSIFICATION. Sample coding: data: l_kssk_rec like kssk. data: l_ausp_rec like ausp. * Change of class type in the assignments move: '002' to l_kssk_rec-klart. modify allocations from l_kssk_rec transporting klart where klart <> '002'. * Change of class number move: '0000060414' to l_kssk_rec-clint. modify allocations from l_kssk_rec transporting clint where clint <> '0000060414'. * Change of class number during characteristic evaluation move: '002' to l_ausp_rec-klart. modify values from l_ausp_rec transporting klart where klart <> '002'. * Activate the evaluation move 'X' to e_ind_cl_copy_active. Notes: Restrictions and comments:

Page 14: PM.CS UserExits and BAPIs.pdf

Classes and characteristics for class types 022 and 023 as well as class types for the variant configuration will not be transferred to the customer exit. Special processing of these class types is not allowed in function modules for copying.

Only the date can be used to restrict the validity. For this reason, the general validity statement cannot be used.

Only classes and valuations for a class type can be reset.

The transfer structures contain the complete record structure of AUSP and KSSK. In this function module, only fields KLART and CLINT may be modified in the assignment structure. In characteristic evaluations, changes can be made to fields ATINN, KLART and the internal valuation.

The system first evaluates and checks the tables during processing in the function module CLFM_OBJECT_CLASSIFICATION.

ILOM0001 Function exits: EXIT_SAPMILO0_001

Additional checks before saving a functional location User exit before update of a functional location

Functionality: Customer-defined enhancements before the update of a functional location This user exit enables the master data of a functional location to be checked and processed. It is called up when the master data is saved. In this way, you are able to do the following before the actual update:

Perform customer-defined data checks, or

Determine the contents of particular customer-specific fields. Notes: The time of execution for the user exits is defined as follows:

After triggering of the function "Save" (F11)

Before the assignment of internal numbers (status, ILOA number, address) If you do not want a functional location to be updated, you must trigger an exception:

The exception POSTING_NOT_ALLOWED results in the standard message IL201 being displayed in the R/3 System.

After the exception POSTING_NOT_ALLOWED_EXT, the customer-specific message that you defined in the user exit with MESSAGE ... RAISING POSTING_NOT_ALLOWED_EXT is displayed in the R/3 System.

You can also set some fields directly, based on the check of the field contents. These fields are included in the interface parameter UPDATE_DATA_IFLO (structure IFLO_USR1). If you want to change the content of a field using this structure, you must transfer the appropriate update indicator (same field name) with the value 'X' in the corresponding parameter UPDATE_FLAGS_IFLO (structure IFLO_USR1U). This has the advantage that you do not always have to fill all fields correctly, and that the fields can nevertheless be initialized explicitly. If you have extended table IFLOT to include customer-defined fields by creating the Customizing include CI_IFLOT, these customer-defined fields are also available to you in the view IFLO and in the structure IFLO_USR1. If you also want to change these fields, you must create the Customizing include CI_IFLOTU with the corresponding update indicators (data element 'X').

ILOM0002 Function exits: EXIT_SAPLILOS_001

User exit when checking structure of location numbers User exit when checking structure of location numbers

Functionality: When creating a functional location, the structured location number is checked against the edit mask of the structure indicator. You are able to perform customer-specific checks on the basis of this standard check using the existing user exit. You are even able to change the location number directly, using the call parameter CORRECT_BLOCK_DIGITS. Example: It is often the case for customers that only very few characters are possible in particular positions in the structure number, or that a certain character string in one part of the structure number is not compatible with particular character strings in another part of the structure number. Internal number assignment is delivered as sample coding for the last part of each location number. For example: Edit mask: NNN-ANNN-XXXXX Hierarchy levels: 1 2 3 Existing locations: 123-P101 123-P102 123-P201 Entry: 123-P1<

Page 15: PM.CS UserExits and BAPIs.pdf

Generated number: 123-P103 Function:

The special character "<" is not normally allowed.

After the standard coding has been activated, "<" is interpreted as the required start of internal number assignment to the end of the current block. The end of the current block results from the definition of the hierarchy levels.

The system selects the locations that already exist (123-P1...) from the database in order to determine the next free number.

The SAP locking mechanism is also used to check whether the number found in this way is already being used by someone else working in parallel, or whether it is being used by you yourself. In cases such as these, the next number is reassigned.

Notes:

In the R/3 System, the exception KEY_NOT_ALLOWED results in the standard message IL848.

After the exception KEY_NOT_ALLOWED_EXT, the customer-specific message that you defined in the user exit with MESSAGE ... RAISING KEY_NOT_ALLOWED_EXT, is displayed in the R/3 System. In this case, the message defined by you must contain a number as the first variable (&1), which the R/3 System uses to position the cursor in the input field of the structure number. For example, if you enter the number 1, the cursor is positioned left-aligned. You can use the standard message IL847 as a reference.

Page 16: PM.CS UserExits and BAPIs.pdf

ITOB0001 Function exits: EXIT_SAPLITO0_001 EXIT_SAPLITO0_002 Screen areas: SAPLITO01080_XUSR1080_SAPLXTOB1000 SAPLITO01080_XUSR1080_SAPLXTOB1001 SAPLITO01080_XUSR1080_SAPLXTOB1002 SAPLITO01080_XUSR1080_SAPLXTOB1003 SAPLITO01080_XUSR1080_SAPLXTOB1004

PM: Customer include subscreen for technical object master data Customer Include ITO0: Data Import (Initiator => Include) Customer Include ITO0: Data Export (Include => Caller) Include screen: Alternative 4 Include screen: Alternative 4 Include screen: Alternative 4 Include screen: Alternative 4 Include screen: Alternative 4

This customer enhancement enables you to enter additional master data for technical objects such as equipment, serial numbers, and functional locations. For this purpose, you can use transaction CMOD to generate one of the include subscreens assigned to the customer enhancement, which then appears on the tab for "Other data" (screen 1080 in function group ITO0). As of Release 4.6A, the flexible (and multiple) assignment of include subscreens on different tabs is supported by customizing suitable view profiles. The data exchange between the call program (ITO0) and the subscreen is realized by two exit function modules belonging to the enhancement:

EXIT_SAPLITO0_001 (Data import ITO0 => XTOB) and

EXIT_SAPLITO0_002 (Data export XTOB => ITO0) An area with a maximum of ten lines is reserved for the include subscreen on screen SAPLITO0 1080. The include subscreen must be of the type "Subscreen". A maximum of five include subscreens (with numbers 1000 to 1004) are provided in transaction SMOD. The different screens can be used, for example, to show individual data screens depending on the technical object (equipment, functional location) or tab concerned. You use transaction CMOD to physically create the required include subscreens. The include subscreen that is then displayed in the transaction is defined in the function module EXIT_SAPLITO0_001 (output parameter E_SUBSCREEN_NUMBER). If the module does not return a value, the include subscreen 1000 is always displayed. EXIT_SAPLITO0_001 Functionality This exit function module is part of the customer exit ITOB0001 and is used to import the master data of technical maintenance objects in the include subscreen belonging to the customer exit. The following technical objects are currently supported:

Functional locations (I_OBJECT_TYPE = '01'),

Equipment (I_OBJECT_TYPE = '02'),

Serial numbers (I_OBJECT_TYPE = '03'). Technical object data will be transferred to the module in the following structures:

I_DATA_IFLO (Functional locations),

I_DATA_EQUI, I_DATA_EQKT, I_DATA_EQUZ, I_DATA_ILOA (Equipment),

I_DATA_EQUI, I_DATA_EQKT, I_DATA_EQUZ, I_DATA_ILOA (Serial numbers). However, for serial numbers without a complete equipment master, the initial structures are I_DATA_EQKT, I_DATA_EQUZ and I_DATA_ILOA. EXIT_SAPLITO0_002 Functionality This exit function module is part of the customer exit ITOB0001 and is used to export the master data of technical maintenance objects from the include screen belonging to the customer exit. Data is imported in the include subscreen using the module EXIT_SAPLITO0_001. Data to be exported is transferred to the transfer structures

Page 17: PM.CS UserExits and BAPIs.pdf

E_UPDATE_DATA_IFLO (Functional locations),

E_UPDATE_DATA_EQ, E_UPDATE_DATA_EZ (Equipment),

E_UPDATE_DATA_EQ, E_UPDATE_DATA_EZ (Serial numbers), depending on the technical object. However, the structure E_UPDATE_DATA_EZ is ignored for pure serial numbers. The data to be copied from the transfer structures is determined by the relevant indicator structures

E_UPDATE_FLAGS_IFLO (Functional locations),

E_UPDATE_FLAGS_EQ, E_UPDATE_FLAGS_EZ (Equipment) and

E_UPDATE_FLAGS_EQ, E_UPDATE_FLAGS_EZ (Serial numbers).

ITOB0002 Function exits: EXIT_SAPLITOBS_001

ITOB: Field changes to copy model Customer Exit Creating With Copy Model: Change Copied Field

When creating new technical objects based on a reference object, this customer enhancement enables you to:

Pre-fill fields

Change fields from the object that is being used as a copy reference

The system checks whether the changes you have made are consistent with the system settings. Functionality: When creating new technical maintenance objects with reference to a model object, the user can change the copying of field contents from the copy model set by the system as default. The settings are checked for consistency with the system settings before they are copied over from the system. If a technical object is created with a configured copy model in the context of service processing, the system copies the configuration from the copy model. In this case, it is no longer possible to modify field KMATN. Notes: If at least one field was changed, the export parameter E_CHANGED should not be set to an initial value so that the changes will be taken into account by the system for further processing.

ITOB0003 Function exits: EXIT_SAPLITO0_003 EXIT_SAPLITO0_004 Screen areas: SAPLITO01330_XUSR1330_SAPLXTOB2000 SAPLITO01330_XUSR1330_SAPLXTOB2001 SAPLITO01330_XUSR1330_SAPLXTOB2002 SAPLITO01330_XUSR1330_SAPLXTOB2003 SAPLITO01330_XUSR1330_SAPLXTOB2004

PM: Customer Include subscreen for fleet object data Customer Include Additional Fleet Data: Data Import (Caller => Include) Customer Include Additional Fleet Data: Data Export (Include => Caller) Include screen, alternative 4 Include screen, alternative 4 Include screen, alternative 4 Include screen, alternative 4 Include screen, alternative 4

You can use this customer enhancement to enter additional data for fleet objects. For this purpose, you can generate one of the include screens of this customer enhancement (using transaction CMOD), and it will then appear on the tabstrip for fleet object data. The data exchange between the calling program (ITO0) and the subscreen is realized by two of the exit function modules that belong to the enhancement:

EXIT_SAPLITO0_003 (Data import ITO0 => XTOB) and

EXIT_SAPLITO0_004 (Data export XTOB => ITO0) In screen SAPLITO0 1330, an area of maximum ten lines is reserved for the include subscreen. The include subscreen must be of the type "subscreen". In transaction SMOD, a maximum of five include subscreens are provided (numbered 2000 to 2004). The various screens can be used, for example, to display individual data screens per fleet object type. You can use transaction CMOD to physically create the required include subscreens. You define in function module EXIT_SAPLITO0_003 (output parameter E_SUBSCREEN_NUMBER) which include subscreen should then

Page 18: PM.CS UserExits and BAPIs.pdf

be displayed in the transaction. If the module does not return a value, include subscreen 2000 is always displayed. EXIT_SAPLITO0_003 Functionality: This exit function module is part of the customer exit ITOB0001 and is used to import the master data of technical maintenance objects in the include subscreen belonging to the customer exit. The following technical objects are currently supported:

Functional locations (I_OBJECT_TYPE = '01'),

Equipment (I_OBJECT_TYPE = '02'),

Serial numbers (I_OBJECT_TYPE = '03'). Technical object data will be transferred to the module in the following structures:

I_DATA_IFLO (Functional locations),

I_DATA_EQUI, I_DATA_EQKT, I_DATA_EQUZ, I_DATA_ILOA (Equipment),

I_DATA_EQUI, I_DATA_EQKT, I_DATA_EQUZ, I_DATA_ILOA (Serial numbers). However, for serial numbers without a complete equipment master, the initial structures are I_DATA_EQKT, I_DATA_EQUZ and I_DATA_ILOA. EXIT_SAPLITO0_004 Functionality: This exit function module is part of the customer exit ITOB0001 and is used to export the master data of technical maintenance objects from the include subscreen belonging to the customer exit. Data is imported in the include subscreen using the module EXIT_SAPLITO0_001. Data to be exported is transferred to the transfer structures: o E_UPDATE_DATA_IFLO (Functional locations), o E_UPDATE_DATA_EQ, E_UPDATE_DATA_EZ (Equipment), o E_UPDATE_DATA_EQ, E_UPDATE_DATA_EZ (Serial numbers), depending on the technical object. However, the structure E_UPDATE_DATA_EZ is ignored for pure serial numbers. The data to be copied from the transfer structures is determined by the relevant indicator structures

E_UPDATE_FLAGS_IFLO (Functional locations),

E_UPDATE_FLAGS_EQ, E_UPDATE_FLAGS_EZ (Equipment) and

E_UPDATE_FLAGS_EQ, E_UPDATE_FLAGS_EZ (Serial numbers)

ITOB0004 Function exits: EXIT_SAPLITO0_005

PM: Customer Exit fleet identification data: Checks Customer Exit Fleet Identification Data: Checks

You can use this exit function module to check and modify identification data for fleet objects (for example, for clarity). You can also refer to:

The object type (functional location, equipment)

The activity (creating, changing, displaying)

All technical object data (View ITOB) and

All fleet object-specific fields (Table FLEET) for checking. This data is transferred to the structures I_OBJECT_TYPE, I_ACTIVITY_TYPE, I_DATA_ITOB and I_DATA_FLEET. You can only change the fleet object-specific identification data. This data will then be transferred to the transfer structure E_UPDATE_FLEET_IDENT.

Page 19: PM.CS UserExits and BAPIs.pdf

IMRC0001 Function exits: EXIT_SAPLIMR0_001

Measurement Point/Measurement Document: Exit before update (after COMMIT WORK) User Exit Before Update of Measuring Points/Documents (After COMMIT WORK)

Functionality: This user exit enables the following customer-specific enhancements:

Determination of particular field contents in measuring points and measurement documents

Generation of workflow events

Update of customer-defined tables Example: Before a solution is provided in the standard system, or independently of this, business processes can be automated. Possible scenarios could include:

Automatic task determination when value limits are exceeded or when a particular valuation code occurs

Automatic scheduling of the affected maintenance plans after a counter reading is updated

Valuation of counter reading differences as the basis on which billing or internal cost allocation is performed The generation of malfunction notifications when particular valuation codes occur is delivered as sample coding. This enables customer-specific, condition-based maintenance. A malfunction notification is triggered in the sample coding if:

The measurement document has not yet been assigned to a notification or order, and the measurement document contains a valuation code whose last digit is not equal to '0'.

The system can also check by how much the measurement reading IMRG-READG deviates from the target value IMPT-DESIR or whether particular threshold values have been exceeded. With regard to this, the customer-specific parameters that are required can be stored in the customizing include CI_IMPTT or in the classification of the measuring point. Notes: The user exit is executed after COMMIT WORK has been triggered by the leading application program. In online programs this occurs after the user has triggered the function "Save" (F11). At this point, no further dialog is possible. If you want to set the content of particular data fields of measuring points or measurement documents, use the table parameters IMPT_UPD_USR and IMPT_INS_USR for measuring points, or IMRG_UPD_USR and IMRG_INS_USR for measurement documents. The reference structures IMPT_USR1 or IMRG_USR1 determine which fields you can set directly: In addition to some standard fields, this comprises all customer-defined fields corresponding to the respective customizing include. In the standard system, the update of measuring points and measurement documents occurs in the asynchronous update task. For this reason, the parameter UPDATE_ASYNCHRON has the default value 'X'. However, as the idea behind measuring points is that they can be linked to any application objects, customer-defined update calls should support both cases, meaning CALL FUNCTION once with, and once without the addition IN UPDATE TASK. Further Information: You can use the function module MEASUREM_DOCUM_RFC_SINGLE_001 for performing the automatic transfer of measurement and counter readings from feeder systems.

Page 20: PM.CS UserExits and BAPIs.pdf

IMRC0002 Menu entries: SAPLIMR0+PT1 Function exits: EXIT_SAPLIMR0_002

Measurement Point: Menu exit for customer-specific function External system User exit for customer function in measuring point menu

Functionality: This user exit enables the following customer-specific enhancements:

Triggering of customer-specific functions based on the online processing of a measuring point. This can also involve calls of programs outside the R/3 System. The R/3 System then acts as a client.

Calling of customer-defined screens for displaying and maintaining customer-defined data fields at the measuring point. Example: An external visualization program can be started as a customer-specific function for a process that is to be analyzed. The current measuring point can be highlighted graphically in this process-visualization. In so far as this involves non-critical functions, the operation of the external process can occur directly from the R/3 user interface as the result of customer-specific functions. Notes: The SAP enhancement IMRC0002 must be activated if you want to use the function module. The data fields of the measuring point contained in the structure IMPT_USR1 can be changed using the parameter UPDATE_DATA_IMPT. A prerequisite for this is that the field UPDATE_DATA_IMPT-POINT is filled correctly and that the parameter ACTIVITY_TYPE is not equal to "3" (Display). In addition, the parameter UPDATE_INDICATOR must either have the value "I" (Insert) or "U" (Update). If you have extended table IMPTT to include customer-defined fields by creating the Customizing include CI_IMPTT, then these fields are also available to you in the structures IMPT and IMPT_USR1.

IMRC0003 Menu entries: SAPLIMR0+DO1 Function exits: EXIT_SAPLIMR0_003

Measurement Document: Menu exit for customer-specific function External system User exit for customer function in measurement document menu

Functionality: This user exit enables the following customer-specific enhancements:

Triggering of customer-specific functions based on the online processing of a measurement document. This can also involve calls of programs outside the R/3 System. The R/3 System then acts as a client.

Calling of customer-defined screens for displaying and maintaining customer-defined data fields at the measurement document.

Example: If you want to increase the meaningfulness of a measurement document by documenting the environment conditions or the measurement procedures used, then you do not have to just rely on the long text for doing this. Instead, you can extend the measurement document table IMRG to include customer-defined fields, and display and maintain these fields in a customer-defined data screen. Notes: The SAP enhancement IMRC0003 must be activated if you want to use the function module. The data fields of the measurement document contained in the structure IMRG_USR1 UP can be changed using the parameter UPDATE_DATA_IMRG. A prerequisite for this is that the field UPDATE_DATA_IMRG-MDOCM is filled correctly and that the parameter ACTIVITY_TYPE is not equal to "3" (Display). In addition, the parameter UPDATE_INDICATOR must either have the value "I" (Insert) or "U" (Update). If you have extended table IMRG to include customer-defined fields by creating the Customizing include CI_IMRG, then these fields are also available to you in the structure IMRG_USR1.

Page 21: PM.CS UserExits and BAPIs.pdf

IQSM0001 Function exits: EXIT_SAPLIPW1_001

Automatic serial number assignment Automatic Serial Number Assignment

Functionality: You can use this customer exit to determine keys for new serial numbers that are to be created, and return them to the calling program. The following data is available to help determine the keys:

Number of serial numbers required

Operation for which the serial numbers are to be created (generally, this involves one of the serialization procedures that are defined in Customizing for the serial number profile)

Material, for which serial numbers are to be assigned (possibly with configuration data)

Possible SD document number and document item number

Possible PP order number and order item number, as well as production plant A table is returned with the generated serial number keys. These keys are then subjected to those checks necessary in the SAP standard program. Notes: The customer exit can be used in the following situations:

Generation of serial numbers on the basis of the goods movement: - Either if the indicator Serial number usage is set as "automatic" in the serial number profile for the corresponding

serialization operation - Or, if the user chooses "Create serial numbers automatically" during a serialization operation in the dialog window

for creating serial numbers

Multiple entry of serial numbers on the basis of the master data; in this case, the transaction code of the relevant master data transaction IQ04 is transferred as the serialization procedure.

If fewer serial numbers than required are generated, due to the customer-specific program logic of this customer exit, the standard generation logic creates the remaining serial numbers with consecutive, numerical keys. If more serial numbers than required are generated, the superfluous keys are ignored.

IQSM0002 Function exits: EXIT_SAPLIPW1_002

Check when copying object list Check on Copying Object List

Functionality: You can use this customer exit to initiate checks that should be performed when copying object list entries during serialization operations. The following data is available for this:

The serialization operation that initiated the copying (see also table T377X or T377X_T)

The header data of the object list that serves as a copy reference

The header data of the object list that data is being copied to

The current object list entry that is to be copied

The master data of the serial number which - if it exists - is part of the copy operation If the result of the check is negative, the exception "Veto" must be triggered. The object list entry concerned is then not copied. If the message fields of structure SYST are filled, for example, by a MESSAGE ... RAISING language element, then the message information is then further processed by the calling program (for example, they are recorded in a log).

Page 22: PM.CS UserExits and BAPIs.pdf

IQSM0003 Menu entries: SAPLIPW1+ZUD Function exits: EXIT_SAPLIPW1_003

Serial numbers, user exit for additional data External system Serial Numbers, User Exit for Additional Fields

Functionality: This customer exit enables you to enter customer-specific fields for the serial numbers within the framework of serial number processing. This can also be performed in an internal dialog mode. The exit contains a function code that you can activate in the user interface. The function code in turn calls the function module EXIT_SAPLIPW1_003. The update of this data is performed by customer exit IQSM0005. The transfer parameters are:

S3_HEADER - SER01 Delivery - SER02 Maintenance contract, SD order - SER03 Goods movement - SER04 Inspection lot - SER05 PP order

S3_HEADER_DATA

Data from the respective documents, document number, document item

S3_AKTYP - V Change - H Create

S3_IEQUI Table of Serial Numbers - The table contains all serial numbers that play a role in the current transaction. By using the table field OBKNR, it is - Possible to filter out the serial numbers assigned to the object list header that is currently relevant

(S3_HEADER_DATA), since the object list header also contains the internal object list number. Example:

You want to maintain additional data for the serial numbers, that is stored in internal structures or in append structures of structure EQUI. You can call up the screen for maintaining this data using this function.

You want to maintain additional data for the serial number that exists in structure EQUI. The fields that you can transfer are in the internal structure ISTRU_EQ

Page 23: PM.CS UserExits and BAPIs.pdf

IQSM0004 Function exits: EXIT_SAPLIPW1_004

Serial numbers, user exit after exiting the serial screen Serial Numbers, User Exit After Exiting the Serial Screen

Functionality: This customer exit enables you to enter further fields for the serial number, within the framework of serial number processing. This can also be performed in dialog mode. The customer exit is called up when the system leaves the serial number screen. The update of this data is performed by customer exit IQSM0005. The transfer parameters are:

S4_HEADER - SER01 Delivery - SER02 Maintenance contract, SD order - SER03 Goods movement - SER04 Inspection lot - SER05 PP order

S4_HEADER_DATA - Data from the respective documents, document number, document item

S4_AKTYP - V Change - H Create

S4_IEQUI Table of Serial Numbers - The table contains all serial numbers that play a role in the current transaction. By using the table field OBKNR, it is

possible to filter out the serial numbers assigned to the object list header that is currently relevant (S4_HEADER_DATA), since the object list header also contains the internal object list number.

Example:

You want to maintain additional data for the serial numbers, that is stored in internal structures or in append structures of structure EQUI. You can call up the screen for entering this data using this function.

You want to maintain additional data for the serial numbers that exists in structure EQUI. The fields that you can transfer are in the internal structure ISTRU_EQ.

IQSM0005 Function exits: EXIT_SAPLIE01_005

Serial numbers, user exit in the update Serial Numbers, User Exit in the Update

This customer exit is called up during an update for each serial number. For each serial number you can enter data that has been defined in the following structures:

ISTRU_EQ (data for segment EQUI)

ISTRU_EZ (data for segments EQUZ and ILOA) This data is copied to the serial numbers. Each of the structures has its own respective indicator, which displays whether changes should be made or not. Note: It is not possible at present to transfer usage period data for the piece of equipment. If necessary, this must be performed manually. Example: You can call up the update of internal structures for the serial number here. A manufacturer part number can be assigned to each serial number. The manufacturer data can be determined from the manufacturer part number, and copied to the serial number.

Page 24: PM.CS UserExits and BAPIs.pdf

IQSM0007 Function exits: EXIT_SAPLIE01_007

Serial numbers, user exit for goods movements Serial Numbers, User Exit in Goods Movement

This customer exit is used to transfer the document data for a goods movement into serial number management. This involves: The complete goods document (transfer table S7_TAB_MSEG, structure MSEG), The purchase order history (transfer table S7_TAB_EKBE, structure EKBE). The customer exit is called as soon as the document is saved. This means that at this moment in time the document data can be placed in the global memory of function group IE01, where it is then available when the serial numbers in the document are saved immediately afterwards. Access to the document data (placed in the global memory of IE01) is performed in customer exit EXIT_SAPLIE01_005, which can be activated using customer exit IQSM0005. Certain document data can now be copied into the master data of the serial numbers. Example: You want to copy the goods recipient from the material document and the value from the purchase order history into the serial number. Goods movement You activate the customer exit EXIT_SAPLIE01_007 so that you can prepare the required information from the goods document and the purchase order history. You can read additional data (for example, from the purchase order) where necessary. Posting You activate the customer exit EXIT_SAPLIE01_005. The data prepared with user exit EXIT_SAPLIE01_007 is available here (for example, goods recipient or purchase orders value). This data can be copied into the master data of the serial numbers.

IQSM0008 Function exits: EXIT_SAPLIPW1_008

Serial number character string check Check of Serial Number - Character String

You can use this customer exit to check whether a character string that has been entered or transferred via an interface (for example, BAPI or IDOC) is permitted as a serial number. The corresponding material number in this context is available as an interface parameter for check criteria.

Page 25: PM.CS UserExits and BAPIs.pdf

IWMI0001 Function exits: EXIT_SAPLISMPM_IDOCS_001 EXIT_SAPLISMPM_UPD_IDOCS_001 EXIT_SAPLISMPM_UPD_IDOCS_002 EXIT_SAPLISMPM_UPD_IDOCS_003

User exits for SM/PM IDOCs Create additional IDoc data segments in IORDER01 or INOTIF01 IDoc Validate if an order can be completed Validate if a notification or notification task can be completed Validate if order or operation can be updated

Functionality: The function modules in function group XIWMI provide user exits for processing some Work Management Interface IDocs. IORDER01 and INOTIF01 outbound IDocs: the EXIT_SAPLISMPM_IDOCS_001 function is called each time a data segment is added in T_IDOC_DATA internal table. The internal table can be modified in the user exit (entries can be inserted/modified/deleted). IORUPD01 inbound IDoc: the EXIT_SAPLISMPM_UPD_IDOCS_001 function is called when the completion of an order is requested via IDoc. A COMPLETION_REJECTED exception can be raised by the user exit. INTUPD01 inbound IDoc: the EXIT_SAPLISMPM_UPD_IDOCS_002 function is called when the completion of a notification or a task (for a task when the MANUM parameter is not initial) is requested via IDoc. A COMPLETION_REJECTED exception can be raised by the user exit. IOAUPD01 inbound IDoc: the EXIT_SAPLISMPM_UPD_IDOCS_003 function is called when the update of work assignment fields is requested via IDoc for an order or an operation (for an operation when the T_OPER-VORNR parameter field is not initial). A UPDATE_REJECTED exception can be raised by the user exit, or different values can be set in fields to be updated. If one IDoc is extended, add the new segment data after the preceding standard segment was processed. To determine which of the many optional import parameters is available for which segments, look at the code of the IDOC_INPUT_IORDER or IDOC_INPUT_INOTIF calling functions. EXIT_SAPLISMPM_IDOCS_001 Functionality: This user exit can be used to insert/modify/delete entries in the IDoc data segments internal table, for IORDER01 and INOTIF01 outbound IDocs. The function is called each time a new data segment is added to the T_IDOC_DATA internal table. Notes: The code should look like this: CASE idoc_type. WHEN 'IORDER01'. CASE segment_name. WHEN 'E1ORHDR'. ... ENDCASE. WHEN 'INOTIF01'. ... ENDCASE. If one IDoc is extended, add the new segment data after the preceding standard segment was processed. Technical note: To determine which of the many optional import parameter is available for which segments, look at the code of the IDOC_INPUT_IORDER or IDOC_INPUT_INOTIF calling functions. EXIT_SAPLISMPM_UPD_IDOCS_001 Functionality: This user exit is called by the IORUPD01 inbound IDoc processing, when the completion of an order is requested. If the order should not be completed based on user criteria, a COMPLETION_REJECTED exception can be raised. EXIT_SAPLISMPM_UPD_IDOCS_002 Functionality: This user exit is called by the INTUPD01 inbound IDoc processing, when the completion of a notification or task is requested. If the completion should not be performed based on user criteria, a COMPLETION_REJECTED exception can be raised.

Page 26: PM.CS UserExits and BAPIs.pdf

Technical note: If the MANUM parameter is initial, the completion is requested for the whole notification, else it is for a task of the notification. EXIT_SAPLISMPM_UPD_IDOCS_003 Functionality: This user exit is called by the IOAUPD01 inbound IDoc processing, to allow the validation of an update of work assignment fields for an order or an operation. If the update is not allowed based on user criteria, a UPDATE_REJECTED exception can be raised. If the work assignment fields can be updated, but to different values than those contained in the IDoc, the values can be modified in the user exit. Technical note: If the T_OPER-VORNR field is initial, the order header is to be updated. The order work assignment fields are in the T_ORDER structure. Else, an operation is to be updated and the work assignment fields are in the T_OPER structure.

CNEX0013 Function exits: EXIT_SAPLCOMK_004

Order: Customer enhancement: Default item category component assignment PM Order: Customer Enhancement - Default for Item Category in component assignment

By using this customer enhancement, you can carry out your own determination of the item category with the component assignment in the order. The enhancement only runs with the creation of a component in the component list. The entire dialog structure of a component from the system is available as a parameter. The enhancement simply returns the item category. This is then checked by the system.

IWO10001 Function exits: EXIT_SAPLCOIH_001

Create a PM sub-order Create Maintenance Sub-Order: Customer-Specific Additions for Order Header

In this function module, customer-specific supplements can be performed when creating a PM sub-order. Supplements refer exclusively to the PM sub-order header.

IWO10002 Function exits: EXIT_SAPLCOIH_002

PM maintenance order: Customer check for order release PM Order: Customer Exit Before Release

The function module EXIT_SAPLCOIH_002 listed in this enhancement is called up when you want to release a PM order. You can specify at this point that the PM order must be subject to further checks (e.g. an additional budget check) before it can be released. Using this enhancement, you can perform one check on all data entered in the order header. In this enhancement, the indicator NO_RELEASE is set to x (= no release) or <blank> (= release allowed) once checks have been carried out. If the release of the order is refused, the system informs the user with dialog message IW555.

IWO10004 Function exits: EXIT_SAPLCOIH_004

Maintenance order: Customer check for order completion PM Order: Customer Exit for Technical Completion Event

In this customer expansion, checks can be carried out at the time of the technical completion. If the customer check shows that technical completion should not be carried out, the function module can be left, with the exception of COMPLETION_REJECTED. Technical completion will not be performed. The example of checking the order header status finally completed is given here. If the status is not set, technical completion is not performed. * * INCLUDE ZXWO1U03 *

Page 27: PM.CS UserExits and BAPIs.pdf

* rückgemeldet data: stk_rue like jest-stat value 'I0009'. clear sy-subrc. call function 'STATUS_CHECK' exporting objnr = caufvd_imp-objnr status = stk_rue exceptions status_not_active = 02. if sy-subrc = 2. raise completion_rejected. endif.

IWO10005 Function exits: EXIT_SAPLCOIH_005

Maintenance order: Customer-specific determination of profit centre PM Order: Customer Enhancement to Determine Profit Centre

This extension allows you to perform customer-specific determination of the profit centre. In the SAP standard, the system determines the profit centre from the cost centre of the main work centre. However, if you want to represent the point of receipt in the profit centre, you can use the following coding as a reference. In this example the cost centre of the PM object (functional location or equipment) is used for profit centre determination. If no profit centre determination is required, the exception NO_PC_DETERMINATION can be set. Also, no profit centre determination will be carried out if the customer extension returns a profit centre. * * * INCLUDE ZXWOCU04 * * DATA: DATE LIKE CAUFVD-GSTRP. DATA: XCSKSV LIKE CSKSV. PERFORM GET_HEADER_DATE(SAPLCOIH) USING CAUFVD_IMP DATE. IF NOT CAUFVD_IMP-KOSTL IS INITIAL. CALL FUNCTION 'RK_KOSTL_READ' EXPORTING DATUM = DATE KOKRS = CAUFVD_IMP-KOKRS KOSTL = CAUFVD_IMP-KOSTL IMPORTING XCSKSV = XCSKSV EXCEPTIONS KOSTL_NOT_FOUND = 02. * . . . Kostl nicht vorhanden IF SY-SUBRC = 1. RAISE KOSTL_NOT_FOUND. ELSE. PRCTR = XCSKSV-PRCTR. ENDIF. ELSE. RAISE NO_PC_DETERMINATION. ENDIF.

Page 28: PM.CS UserExits and BAPIs.pdf

IWO10006 Function exits: EXIT_SAPLCOIH_006

Maintenance order: FCode exclusion through customer Enhancement PM Order: Customer Enhancement for Exclusion of Function Codes

Menu functions can be deactivated with this customer enhancement. In the Menu Painter, the names of the functions can be determined via the function list for program SAPLCOIH. Functions which recall the customer expansion are deactivated.

IWO10007 Function exits: EXIT_SAPLCOIH_007

Maintenance order: Customer enhancement - permits in the order PM Order: Customer Enhancement for Permits

The customer expansion is called in the case of order release and of technical completion. It is used to place expansions in conjunction with permits. The following example can be expanded on a customer-specific basis. It shows how permits can be read in: * * * INCLUDE ZXWOCU05 * * data: begin of ihsg_tab occurs 30. include structure ihsg. data: end of ihsg_tab. data: begin of ihgns_tab occurs 30. include structure ihgns. data: end of ihgns_tab. if not ind_gen is initial. call function 'SPECIALPER_FOR_PRINT' exporting objnr = caufvd_imp-objnr tables pihsg = ihsg_tab pihgns = ihgns_tab exceptions others = 1. endif.

IWO10008 Function exits: EXIT_SAPLCOIH_008

Customer enhancement: Determination of tax jurisdiction code PM order: Customer enhancement to determine Tax Jurisdiction

No documentation in English at present. (SAPLCOIH LCOIHF2V EXIT_SAPLCOIH_008 ZXWOCU06). This user-exit is triggered each time the order is saved OSS Note: 528811 Customer exit IWO10008 is not called

Page 29: PM.CS UserExits and BAPIs.pdf

IWO10009 Function exits: EXIT_SAPLCOIH_009

PM Order: Customer Check for 'Save' Event PM order: Customer check at time 'Save'

This customer enhancement allows you to perform customer-specific checks. If the customer enhancement is left with an exception, the order cannot be saved. Messages must be processed starting from the customer enhancement. Example 1: A customer wants the order to always include a long text. If the order does not have a long text, an exception is sent and, as a result, the order cannot be saved. Example 2: A customer wants to ensure that only certain people are authorized to set certain priorities. Example 3: A customer does not authorize certain people to change certain fields. To do this, the original status must be determined within the customer enhancement. This can be performed by using the following function module: function CO_BT_CAUFV_OLD_READ_WITH_KEY. Note that this customer enhancement is also processed for the maintenance plan call or for the immediate order from the notification. An exception message here results in a program termination. (If you want to prevent this, request the transaction code (SY-TCODE) in the customer enhancement.

IWO10010 Function exits: EXIT_SAPLCOIH_010

Maintenance order: Customer enhancement for determining WBS element PM Order: Customer Enhancement for Determination of WBS Element

You can use this enhancement to make your own determination of the WBS element. The enhancement runs:

When creating the order

For each change of the maintenance object

When saving The entire dialog structure of the order header is made available as a parameter. The WBS element of the object may already be available in the dialog structure, depending on the Customizing setting. In case of change, the "old" work area is also available. In the field Event, the following times are encrypted:

1 = Create

2 = Change object

3 = Save The customer enhancement simply returns the WBS element. This is then checked. Caution: As soon as the enhancement is activated, the WBS element, which may already be available in the export parameter PSPEL, must be returned if no determination is made.

Page 30: PM.CS UserExits and BAPIs.pdf

IWO10011 Menu entries: SAPLCOIH+MSF Function exits: EXIT_SAPLCOMK_003

Maintenance order: Customer enhancement for component selection External system PM Order: Customer Enhancement for Component Selection

By using this customer enhancement, you can transfer data records that are stored in a local file as components in the list of component assignments to the maintenance order. The data records in the local file are generated or stored there by a non-SAP system. If the enhancement is active, it calls up the function module EXIT_SAPLCOMK_003. The Include LXWocF08 is defined in this module. Within this Include you must define the following:

The files with a different format that should be imported from outside

The record structures of the files that are imported via the table ZCOM_TAB

The assignment by field of the imported data records to the fields provided by SAP in the structure RIHFCOM. These are then imported record for record into the table ZCOM_TAB and transferred, clearly defined, into the component list.

Within this Include you can also define the following:

The local file location of the file in your system. This optional information serves as a default value.

With which item category the components in the component list are transferred. If nothing is specified in the enhancement, 'T', meaning text item, is set as the default.

Default values for quantity and unit of measure NOTE: Change in environment

If your environment changes, you must extend the example program LXWOCF08 accordingly to the places described above. You must do this, for example, in the following cases:

if you would like to consider further external systems for the component transfer

for a structure already in existence, if you would like to transfer further fields from the imported table into the component list for the maintenance order, clearly defined by using the table FCOM_TAB or the structure RIHFCOM assigned to it

Materials kept in stock There are currently no plans to transfer materials kept in stock. Dialog message You can activate the dialog message provided in the Include LXWOCFO8 as required. In this case, you must create the message in a message class (for example, Y9) that you have defined for yourself as a user. For example, the message "900" could read as follows: Short text: The assignment by field from upload to transfer structure is not defined Long text: Diagnosis In the program LXWOCF08 (function module EXIT_SAPLCOMK_003), an upload was implemented of a file that was specified by you. However, as yet no assignment by field of the imported file structure (ZCOM_T*) to the transfer structure (FCOM_TAB) has been defined for this file.

IWO10012 Function exits: EXIT_SAPLCOIH_012

Maintenance order: Priority handling on central header PM Order: Priority treatment on central header

No documentation in English at present.

Page 31: PM.CS UserExits and BAPIs.pdf

IWO10015 Function exits: EXIT_SAPLCOIH_015

Maintenance order: F4 Help for user fields on operation PM Order: F4 Help for User Fields on Operation

This customer exit is available when you request possible entries for a field in the operation detail screen User data. The R/3 System provides the following fields as import parameters:

Fields in the order header

All fields for the operation

The name of the operation field for which you have requested possible entries You can enter the value that you determined in the R/3 System.

IWO10016 Function exits: EXIT_SAPLCOIH_016

PM Order: Customer enhancement to check operation user fields PM Order: Check Entry of User Fields on Operation

This customer exit is available when you enter data in a field in the operation detail screen User data. Here, you have the option of performing your own checks and issuing notifications for the fields in this screen.

IWO10017 Function exits: EXIT_SAPLCOIH_017

Determine external order number by customer logic PM Order: Determine External Order Number by Customer Logic

You can use this enhancement to create an external order number according to internal logic. The dialog can be suppressed using the parameter SUPPRESS_DIALOG = X. The number is then checked by the system. Note: The enhancement only runs if the system defines that the order type has an external number range. The enhancement does not run for the maintenance call. Caution: Do not send any system messages in the enhancement because these cause a program termination in the PBO.

IWO10018 Function exits: EXIT_SAPLCOIH_018 EXIT_SAPLCOIH_019 Screen areas: SAPLCOIH6666_CUSTSCR1_SAPLXWOC0900

Maintenance order: User fields on order header PM Order: User Fields for Order Header PBO PM Order: Customer Enhancement for User Fields for Order Header PAI Include screen user data

The data for the maintenance order/service order is stored in one of the database tables defined by SAP AG. You can use this enhancement to make customer-specific enhancements in the table of order headers (table AUFK). In the transactions for order processing, you can activate a customer-specific function, with which you can call up your own screen. On this screen, you can call up the newly listed fields in the table AUFK for maintenance or display purposes. The enhancement IWO10018 contains the following components:

Menu options:

SAPLCOIH + CUK

Function exits:

EXIT_SAPLCOIH_018

EXIT_SAPLCOIH_019

Screen areas:

SAPLCOIH 6666 CUSTSCR1 SAPLXWOC 0900 Proceed as follows:

1. Create an enhancement project using transaction CMOD. 2. Assign the enhancement IWO10018 to this project. 3. List your fields in the structure CI_AUFK using transaction SE11 (ABAP Dictionary) if they have not already been defined by

Page 32: PM.CS UserExits and BAPIs.pdf

other applications. 4. Note the name space for fields reserved for the customer. 5. Activate the structure. 6. Note that a table may contain a maximum of 255 fields. SAP can list new fields in the table AUFK. 7. Process the components in transaction CMOD. 8. To do this, you must: 9. Assign a name to the function Customer fields 10. Code the function exit EXIT_SAPLCOIH_018 for data transfer from the SAP application to the screen area 11. Code the function exit EXIT_SAPLCOIH_019 for data transfer from the screen area to the SAP application 12. Create the screen area 13. The function exits are filled, in which the Include contained therein is created. 14. Call up processing of the Include using Choose. 15. Activate the project.

EXIT_SAPLCOIH_018 This function module provides the customer-specific screen SAPLCOIH 6666 with the data from the order header and the data entered individually by you. EXIT_SAPLCOIH_019 This function module writes the data, which was entered in the customer-specific screen SAPLCOIH 6666, to the document table.

IWO10020 Function exits: EXIT_SAPLCOIH_020

Maintenance order: Automatically include task list PM Order: Automatic Inclusion of Task List Using IW31, IW34, IW36

This customer exit enables you to find automatically maintenance task lists when creating maintenance orders/service orders and to include them immediately in the generated order. You can use this customer exit in the following transactions:

Create PM order (IW31)

Create PM order for the notification (IW34)

Create PM sub-order (IW36) The data of the order header is available to enable you to determine the data that you require. In order to simplify the use of this function module, the following example coding is included in the enhancement: Call-up of task list selection contained in the standard system:

Object-related

Task list for assembly

Task list for object structure

Task list generally

Using number

User-specific selections (enhancement IWO20001)

Page 33: PM.CS UserExits and BAPIs.pdf

IWO10021 Function exits: EXIT_SAPLCOIH_021

Automatic task list transfer when creating order from notification PM: Automatic Task List Transfer when Order Generated from Notification

This customer exit enables you to find automatically task lists when generating a maintenance order/service order from a notification and then include these in the order generated. The data of the order header is available to enable you to determine the task lists that you require. The task lists are identified by means of the task list header data and are transferred to the system, which then puts the task lists in the order that is generated. In order to simplify the use of this function module, the following example coding is included in the enhancement: Call-up of task list selections contained in the standard system:

Object-related

Task list for assembly

Task list for object structure

General maintenance task list selection Additionally, you can also develop your own selections. If you use customer exit IWO20001 (customer-specific selection of task-lists in the maintenance order), you can also use the coding found there in the same way for this customer exit.

IWO10022 Function exits: EXIT_SAPLCOIH_014

Determine calendar from user exit Maintenance Order: Priority Handling on Central Header

This user exit gives you the option of defining a calendar especially for the order header dates, which does not correspond to the calendar of the main work centre for the order. You can therefore also schedule, if necessary, special dates (for example, weekends, public holidays). The system determines the calendar valid for the order header dates according to the following hierarchy:

Plant calendar Calendar of the main work centre Calendar which is active for this customer exit

IWO10023 Function exits: EXIT_SAPLISM6_001

Service order: Change header data for advance shipment doc. Exit for Advance Shipment Addition of Header Data for Sales Order

Using this customer exit, you can change or complete data to the sales document header structure PAR_VBAKKOM_CHG. You can change the following data:

Sales document type

Shipping condition

Sales area

Sales office

Sales group You can complete the following data:

Collective number

Order reason You can still change and complete additional partner functions with the corresponding partner evaluations in the structure PAR_VBPAKOM_TAB (for example, partner function VU responsible user with partner evaluation <Office user name>). The actual values of the service order header (Structure PAR_CAUFVD_IMP) as well as transaction environment data (Structure PAR_TC10_IMP) and the basic service type (Structure PAR_T350_IMP) are available as contextual data. EXIT_SAPLISM6_001 When creating a pre-dispatch document for the service order, sales document header data for the document can be changed. Data for the structure VBAKKOM is already available for change.

Page 34: PM.CS UserExits and BAPIs.pdf

IWO10024 Function exits: EXIT_SAPLISM6_002

Service order: Changes to items for advance shipment Advance Shipment Addition of Item Data for Sales Order from Order

Using this customer exit, you can change or complete all data for the sales item (structure PAR_VBAPKOM_CHG). You can change the following data:

Accounting indicator

Material number

Plant

Storage location

Target quantity

Target unit You can complete the following data for example:

Billing block

Reason for cancellation Using the structure PAR_VBEP_CHG, you can change (customer order quantity) or complete (delivery block, item category of schedule line) the data for the first schedule line of each item. You can still change and complete additional partner functions with the corresponding partner evaluations in the structure PAR_VBPAKOM_TAB (for example, partner function VU responsible user with partner evaluation <Office user name>). The current values of the service order header (Structure PAR_CAUFVD_IMP) as well as transaction environment data (Structure PAR_TC10_IMP) and the basic service type (Structure PAR_T350_IMP) are available as contextual data. EXIT_SAPLISM6_002 When creating the pre-dispatch document, you can change data here for the VBAPKOM (item data) and VBEPKOM (scheduling data) structures. .

IWO10025 Function exits: EXIT_SAPLCOIH_025

PM/SM order: Finding responsible cost centre Customer Determination of Cost Centre Responsible

The customer exit is used to determine the responsible work centre. The customer exit runs when the order is created and each time it is saved. It is no longer processed once the order has been technically completed or a business completion has been performed. If SAP logic should not be used to determine the responsible work centre (the cost centre of the main work centre), the exception NO_KOSTV must be set.

IWO10026 Function exits: EXIT_SAPLCOIH_026

User check on setting status 'Do not perform' Customer Check Status 'Not Performed'

No documentation in English at present.

Page 35: PM.CS UserExits and BAPIs.pdf

IWO10027 Function exits: EXIT_SAPLCOI1_027

User exit: Generate user-defined settlement rule Customer Enhancement: Create Settlement Rule

This customer exit can be used to generate settlement rules. You can use it, if an object list with different account assignment objects is assigned to the order, and you want to distribute the settlement of costs proportionally to the account assignment objects. The function module has the following parameters: Import parameter:

CAUFVD_IMP: Order header data Tables:

PMDFU_TAB: Settlement rule(s) to be generated

RIWOL_TAB: Object list for order (if available) Prerequisites To form the settlement rules, enter the required data in the following fields of the internal table PMDFU_TAB:

PMDFU_TAB-KONTY: Account assignment receiver category The following account assignment receiver categories are supported:

Cost centre

Order

WBS element

Profitability segment

Fixed asset

G/L account Sales and distribution document PMDFU_TAB-FDIND: Receiver PMDFU_TAB-FDIND2: For those cases where there are two key fields (for example, fixed asset, and sales and distribution document), enter the second key here.

PMDFU_TAB-PERBZ: Period description

PMDFU_TAB-PROZS: Percentage

PMDFU_TAB-AQZIF: Equivalence number SAP is continuing to enhance the structure PMDFU. Exceptions DO_NOT_BUILD_SETTLEMENTRULE: The setting of this exception prevents the system from generating a settlement rule with a default for the distribution rule. This can be necessary, for example, if very complex settlement rules are involved. Example: The following ABAP coding example should show how 50% rules can be generated for the cost centres A100 and K011: First entry in table PMDFU_TAB: PMDFU_TAB-KONTY = 'KS'. PMDFU_TAB-FDIND = 'A100 '. PMDFU_TAB-PERBZ = 'GES'. PMDFU_TAB-PROZS = '50'. APPEND PMDFU_TAB. Second entry in table PMDFU_TAB: PMDFU_TAB-KONTY = 'KS'. PMDFU_TAB-FDIND = 'K011 '. PMDFU_TAB-PERBZ = 'GES'. PMDFU_TAB-PROZS = '50'. APPEND PMDFU_TAB.

Page 36: PM.CS UserExits and BAPIs.pdf

IWO10029 Function exits: EXIT_SAPLCOMK_029

Inclusion of bill of material in PM/SM order Inclusion of Bill of Material in PM/SM Order

No documentation in English at present.

IWO20001 Menu entries: SAPLCOIH+PLS Function exits: EXIT_SAPLCOIH_003

PM order: User exit to pass routing to order External system PM Order: USER-Specific Determination of Task Lists for PM Order

This extension allows you to create your own selection options. This option is in addition to the existing SAP options for selecting maintenance task lists that you want to copy to the order. Using the data from the SAP order header, you can determine the task lists that you require. The determined task list headers are then copied to the SAP system. You can also disable the operation selection. The following selection options for task lists are feasible:

notifications for the order

task codes in the notification

damage in the notification

work centre in the notification/order header

maintenance planner group in the notification/order header

maintenance planning plant in the notification/order header As there are no equivalent fields for damage or task codes in the task list, you should use the classification of the task list to represent these fields. If one task list per notification item is sufficient, the task list can be based on the classification of the notification item key fields task list type, task list group and group counter. (This would mean that the user would no longer need to read the task list tables).

COOM0001 Function exits: EXIT_SAPLKASC_001 EXIT_SAPLKASC_002 EXIT_SAPLKASC_003

Customer Functions for Overhead Percentages Overhead Rates: Calculation Base Overhead: Overhead rates Overhead Rates: Credit

To meet the requests that the standard functionality for overhead surcharges be enhanced or adapted to individual circumstances, the system now includes user exits for the following components in the costing sheet:

Calculation base

Surcharge

Credit These user exits can be processed as part of SAP enhancement management (choose Tools -> ABAP/4 Workbench -> Utilities -> Enhancements -> Project management). For comprehensive documentation on SAP enhancement management, choose Utilities -> Online manual in this transaction (CMOD). The function modules are brought together under SAP enhancement COOM0001. An include program, containing sample code, has been defined for each function module. These examples contain a note on how the transfer structures for the individual function modules should be filled. However, these are neither complete nor your best option as far as runtimes are concerned.

Function module Means Include program EXIT_SAPLKASC_001 Calculation base LXKSCF01 EXIT_SAPLKASC_002 Surcharge LXKSCF02 EXIT_SAPLKASC_003 Credit LXKSCF03

For more information on the programming for the user exists, see the documentation on the relevant function modules. Effects on Customizing The following new IMG chapters have been added re this user exit: Under Controlling -> Overhead Cost Controlling -> Overhead cost orders -> Actual postings / Overhead surcharges: Develop enhancements

Page 37: PM.CS UserExits and BAPIs.pdf

Under Project System -> Project Execution/Implementation -> Project Period-End Closing -> Overhead Surcharges (Actual): Develop enhancements for overhead surcharges Under Controlling -> Product cost controlling ->

Basic settings for product costing: Develop enhancements for surcharge calculation

Base object costing: Develop enhancements for surcharge calculation

Basic settings for production of intangible goods: Develop enhancements for surcharge calculation

Basic settings for order related production: Develop enhancements for surcharge calculation

Basic settings for repetitive manufacturing: Develop enhancements for surcharge calculation

Basic settings for process manufacturing: Develop enhancements for surcharge calculation

Basic settings for sales-order-related production: Develop enhancements for surcharge calculation Further Notes If the project to which this enhancement is assigned is active, the user exits for the calculation base, surcharges and credits will run for each surcharge calculation. EXIT_SAPLKASC_001 Functionality: With this user exit, you can pass values or quantities for a calculation base to surcharge calculation. The function module is accessed for each base line as the costing sheet is processed. The following parameters are passed on: Parameter Means...

I_CBASE Calculation base processed

I_KOKRS Controlling area

I_WRTTP Value type: actual, plan, commitment (see parameter documentation)

I_VERSN Version

I_YEAFR From fiscal year

I_YEATO To fiscal year

I_PERFR From period

I_PERTO To period

I_COIOB Object data (see parameter documentation)

I_KOMK Communication structure header (see parameter documentation)

I_KOMP Communication structure item (see parameter documentation) There is additional documentation in support of the parameters so marked. To reach this in the function module document view, position the cursor on the relevant parameter and double-click. The expected result is entries in table T_COSSA for the specified fiscal year and period interval. Further processing evaluates the entries in the fields T_COSSA-GJAHR, T_COSSA-MEINH, T_COSSA-WTGnnn, T_COSSA-WOGnnn, T_COSSA-WKGnnn, T_COSSA-WKFnnn, T_COSSA-PAGnnn, T_COSSA-PAFnnn, T_COSSA-MEGnnn, T_COSSA-MEFnnn (nnn = period). Unless you are updating in more than one currency, it is sufficient to fill the values in the period fields of table T_COSSA-WKGnnn (in addition to the fiscal year); in the case of quantity-based surcharges, fill the period fields in T_COSSA-MEGnnn and T_COSSA-MEINH. If table T_COSSA is empty, the system behaves as if there were no user exit and selects the data from the database per the cost element intervals maintained for the calculation base. If you want to transfer value or quantity zero, a line containing initial values is sufficient in table T_COSSA. Example: Program LXKSCF01 contains sample code for the following cases:

Surcharges based on delivered order quantity: A quantity-based surcharge is calculated for production orders, in line with the quantity of material delivered. The user exit is to be used to assign the output quantity to calculation base B000. If you use this calculation base in a costing sheet, you can reference a quantity-based surcharge to the relevant line.

Surcharges based on cost centre/activity type: In this example, cost centre 1 yields activity type "FST". The activity type for this cost centre is to have its own surcharge applied to it. To this end, the costs incurred are determined via the user exit and transferred in calculation base "B000". If you enter this calculation base into a costing sheet, you can reference a percentage surcharge to the relevant line.

Notes:

Page 38: PM.CS UserExits and BAPIs.pdf

You must use customizing to define the calculation base which is to be processed with the user exit. However, you do not need to maintain any cost element intervals. For reasons of clarity, you are well advised to create your own calculation basis for scenarios when values are to be determined by means of the user exit. EXIT_SAPLKASC_002 With this user exit, you can transfer values or quantities for a calculation base to surcharge calculation. The function module is accessed for each base line as the costing sheet is processed. The following parameters are transferred: Parameter Means...

I_OHEAD Surcharge

I_DATE Value date (see parameter documentation)

I_WRTTP Object data (see parameter documentation)

I_KOMK Communication structure header (see parameter documentation)

I_KOMP Communication structure item (see parameter documentation) There is additional documentation in support of the parameters so marked. To reach this in the function module document view, position the cursor on the relevant parameter and double-click. In the case of percentage surcharges, only the field E_PCENT is interpreted as a return value. The other fields have no effect. In the case of quantity-related surcharges, you must enter values in all the return fields. If no values are returned, the system uses the surcharge record stored in Customizing. Example Sample source code is stored in program LXKSCF02 for the following case:

Surcharge rates dependent on Profit Centre: If the order being processed is assigned to profit centre 1, a surcharge of 10% is to be levied on one base line, and one of 12% in all other cases. The percentage for surcharge "C000" is to be determined by means of a user exit. To this end, you must use the Customizing function to maintain value rates for all the surcharge types in surcharge C000 which are to be overwritten by the user exit.

Notes The surcharge to be processed with the user exit must be defined in Customizing, depending on whether it is a percentage or quantity-related surcharge. You must create a dependency assignment, but this has no effect on the user exit. In addition, there must also be a valid surcharge rate. If there is not, the system clears the relevant surcharge line in the costing sheet and does not access the user exit during costing sheet processing for this surcharge. The content of the overhead record defined has no effect on the user exit. For reasons of clarity, you are well advised to create your own calculation basis for scenarios when values are to be determined by means of the user exit. EXIT_SAPLKASC_003 With this user exit, you can transfer a credit cost element and a credit cost centre/credit order to surcharge accounting. During costing sheet processing, the function module is accessed for each surcharge line which contains a credit. The following parameters are transferred: Parameter Means...

I_CREDT Credit

I_KOKRS Controlling area

I_DATE Value date (see parameter documentation)

I_COIOB Object data (see parameter documentation)

I_KOMK Communication structure header (see parameter documentation)

I_KOMP Communication structure item (see parameter documentation) There is additional documentation for the parameters so marked. To access it from the function module documentation view, position the cursor on the parameter and double-click. The expected return values are a cost element, which must be of type 41, and either a cost centre or an order. You can also opt to transfer values for the fixed cost portion and the origin. If no values are returned, the system transfers the data maintained for the credit in Customizing.

Page 39: PM.CS UserExits and BAPIs.pdf

Example: Sample source code is defined in program LXKSCF03 for the following scenario: Credit cost centre dependent on plant: A company has two plants: 0001 and 0002. If the order processed is assigned to plant 0001, cost centre 1 is to be credited under credit cost element 660000; if the order is assigned to plant 0002, it is to be credited under cost centre 2, cost element 660000. To this end, the credit object for credit E01 is determined using the user exit. You must then enter credit E01 in the appropriate surcharge line in the costing sheet. Notes: You must use Customizing to define the credit to be processed by means of the user exit. However, you do not need to maintain any credit objects. For reasons of clarity, you are well advised to create your own credits for scenarios when values are to be determined by means of the user exit.

COZF0001 Function exits: EXIT_SAPLCOZF_001

Change purchase req. for externally processed operation Customer Exits in Function Group COZF

With this customer enhancement you can change the purchase request that results from an externally processed operation. The changeable fields are defined in the structure EBAN_ORD_CUST. If certain fields in this structure are already filled when imported in the customer enhancement then you should check carefully the effects of a field change (if in doubt do not change the settings made by SAP). The externally processed operation itself cannot be changed in this customer enhancement. Thus, the customer enhancement must be run on every change to an operation that affects the purchase requisition (so that the original field content is not copied back to the purchase requisition). Important note: If you work in your system with collective orders then you must ensure that all purchase requisitions for a collective order are of the same type (field BSART)! To change the purchase requisition the fields in the order header (CAUFVD) and the fields in the operation (AFVGD) are made available in the customer enhancement. If you define internal work structures then it should always be when using the ABAP language element LIKE so that later structure enhancements by SAP do not lead to changing the coding in the customer enhancement.

COZF0002 Function exits: EXIT_SAPLCOZF_002

Change purchase req. for externally procured component Customer Exits in Function Group COZF

With this customer enhancement you can change the purchase request that results from an externally processed operation. The changeable fields are defined in the structure EBAN_ORD_CUST. If certain fields in this structure are already filled when imported in the customer enhancement then you should check carefully the effects of a field change (if in doubt do not change the settings made by SAP). The externally processed operation itself cannot be changed in this customer enhancement. Thus, the customer enhancement must be run on every change to an operation that affects the purchase requisition (so that the original field content is not copied back to the purchase requisition). Important note: If you work in your system with collective purchase requisitions then you must ensure that all purchase requisitions for one collective purchase requisition have the same order type (field BSART)! To change the purchase requisition the fields in the order header (CAUFVD) and the fields in the component (RESBD) are made available in the customer enhancement. If you define internal work structures then it should always be when using the ABAP language element LIKE so that later structure enhancements by SAP do not lead to changing the coding in the customer enhancement.

Page 40: PM.CS UserExits and BAPIs.pdf

CY190001 Function exits: EXIT_SAPLCY19_001

Capacity Planning: Change order operation User exits to change order operations

The enhancement enables you to change operation data that is displayed on a planning table. 'Objects' on the planning table can be selected and transferred to the enhancement using a special menu function. The operations (order operations) that belong to the objects selected are copied to the table CYEXIT_1. The operations transferred can be changed and transferred back. The changed objects are saved in planning table simulation and when saving the planning table written to the database. The following data is copied to the enhancement (structure CYEXIT_1):

INDEX (Information): Index for the operation in the simulation. You can use this index along with the function module "CY01_OBJECT_INFORMATION_READ" to read more information about the operation such as work centre data, order header data etc.

AUFNR (Information): if necessary the number of the relevant order

PLNUM (Information): if necessary, the number of the relevant planned order

VORNR (Information): Number of the operation

UVORN (Information): Number or the sub-operation

EPANF (changeable value): Dispatching start date; date when an operation to be dispatched is to start (useful in connection with the function 'dispatch' see above)

EPANZ (changeable value): Dispatching start time; time when the operation to be dispatched is to start (useful in connection with the function "dispatch" see above).

EPEND (changeable value): Dispatching finish date; date when an operation to be dispatched is to finish (useful in connection with function 'dispatch' see above).

EPENZ (changeable value): Dispatching finish time; time when the operation to be dispatched is to finish (useful in connection with the function "dispatch" see above).

VGE01 (changeable value): unit of standard value 1

VGW01 (changeable value): standard value 1

VGE02 (changeable value): unit of the standard value 2

VGW02: standard value 2 . .

VGE06 (changeable value): unit of the standard value 6

VGW06: standard value 6

DAUNE (changeable value): unit of the normal operation duration

DAUNO: Normal operation duration

ARBEH (changeable value): unit of work for the operation

ARBEI: work of operation

ARBID (changeable value): ID of work centre

SEQNR (changeable value): Sequence number of order

SEQNRV (changeable value): Sequence number of operation in order (not for planned orders) FUNCTION1 (changeable value): 1. Function to be executed

1 = Changing operation

2 = Dispatching operation

3 = De-allocating operation

FUNCTION1 (changeable value) 2. Function to be executed

1 = Changing operation

2 = Dispatching operation

3 = De-allocating operation

An example is saved in INCLUDE LXCY0F01.

Page 41: PM.CS UserExits and BAPIs.pdf

IPRM0002 Function exits: EXIT_SAPLIPM5_001 EXIT_SAPLIPM5_002 EXIT_SAPLIWP3_003

Determine planned date info for maintenance plan Planned Date for Task List Counter Reading (Individual Forecast) Determination of Planned Date for Time-Based Maintenance Plans Dynamic Change of Annual Activity for Counter During Scheduling

You can use this user exit to enter the next planned date for preventive maintenance for performance-based and time-based maintenance plans. You can also dynamically determine the annual counter performance in scheduling, which enables you to directly influence the calculated planned date in advance. It consists of three function modules:

Planned date for planned counter reading (individual forecast)

Determine planned date for time-based maintenance plans

Dynamic modification of annual counter performance for scheduling EXIT_SAPLIPM5_001 You can use this function module to define the date on which the next planned counter reading should be reached for performance-based maintenance according to your own rules. In the standard system, the respective planned date is based exclusively on the acceptance of the estimated annual performance. You can use this function module to call upon internal forecast models or seasonal models to calculate the planned date. The following parameters are given to the function module as import parameters:

Planned date calculated by the system

Next planned counter reading

Current counter reading with date

Maintenance plan data The function module returns the modified planned date as export parameters. EXIT_SAPLIPM5_002 You can use this function module to adapt the planned date, which the system has calculated for the preventive maintenance, to the individual customer. However, this only applies for time-based maintenance schedules. Examples Possible examples of individual customer adjustments:

If the calculated planned date is not a workday, the system determines the first workday before or after the planned date.

Exact month scheduling, whereby the system, for example, always determines the first Monday in a month. A prepared sample coding exists for the second variant: Program : LIPM5F08 Routine : FORM SPECIAL_DATE_F08 The function module receives the planned date calculated by the system as an import parameter. The function module returns the modified planned date as an export parameter. EXIT_SAPLIWP3_003 You can use this customer exit to modify the estimated annual performance for the counters used in the maintenance plan. The modifications you make to the annual performance are not written to the counter; but are valid only for current scheduling. Use the function module MEASUREM_POINT_UPD_PYEAR to change the estimated annual performance in the master record of the counter. Example: You have created a maintenance plan for a machine whose performance is subject to strong seasonal fluctuations. The estimated annual operating hours defined in the counter are correct when calculated over the year; however, 90% of the operating hours occur in the summer months between May and September. You now want to define this fact in the system so that the planned dates can be calculated according to this distribution. In the customer exit, you can read a customer-specific table for this case in which the operating hours are broken down on a monthly basis

Page 42: PM.CS UserExits and BAPIs.pdf

.

IPRM0004 Function exits: EXIT_SAPLIWP3_004

Maintenance plan / item: Customer check for time "SAVE" Maintenance Plan/Item: Customer Checks at "Save"

No documentation in English at present.

IPRM0005 Function exits: EXIT_SAPLIWP3_010

Determine Offset for Performance-Based Strategy Plans

No documentation in English at present.

IPRM0003 Function exits: EXIT_SAPLIWP3_001 EXIT_SAPLIWP3_002 EXIT_SAPLCOIH_030 EXIT_SAPLCOIH_031 EXIT_SAPLIWOL_032 Screen areas: SAPLIWP38027_CUSSSCR1_SAPLXPRM0100

User field: Maintenance plan Maintenance Plan: User Fields for Screen; PBO Maintenance Plan: User Fields from Screen; PAI Transfer User Fields from the Maintenance Plan to the Order User Fields Transferred from Maintenance Plan to Notification Transfer User Fields from the Notification to the Order Include screen user data

The maintenance item data is stored in the MPOS database table defined by SAP. From Release 4.6A, you can add customer-specific fields to the table of maintenance items (table MPOS). For this, the Include CI_MPOS has been added to the table of maintenance items which must be created by the customer, completed with field entries, and activated. When the customer exit IPRM0003 is activated, an additional tab page Customer exit for item appears in the maintenance plan and maintenance item. The fields shown on this tab page include those defined by the customer (see procedure). The fields defined in the Include CI_MPOS can be transferred to the call object (currently orders and notifications) generated by the maintenance plan. For this, the function exits EXIT_SAPLCOIH_030 and EXIT_SAPLIWOL_031 are available. If an order is generated from a notification, which itself has been generated from a maintenance plan, then the customer-specific fields can be forwarded to the order using the function exit EXIT_SAPLCOIH_032. The customer exits IWO10018 (for the call object 'order') and QQMA0001 (for the call object 'notification') are available for displaying customer-specific fields in the respective call object. Customer exit IPRM0003 contains the following components:

Function exits: o EXIT_SAPLIWP3_001 o EXIT_SAPLIWP3_002 o EXIT_SAPLCOIH_030 o EXIT_SAPLCOIH_031 o EXIT_SAPLIWOL_032

Screen areas: o SAPLIWP3 8027 CUSSSCR1 SAPLXPRM 0100

Procedure:

1. Create a customer exit project using transaction CMOD. 2. Assign the customer exit IPRM0003 to this project. 3. Include your fields in the structure CI_MPOS using the transaction SE11 (ABAP/Dictionary), if these have not already been

defined by other applications. Note the namespace for fields reserved for customers. 4. Activate the structure. Note that a table may contain a maximum of 255 fields. SAP can include new fields in the table MPOS. 5. Create the screen 0100 in the function group XPRM. The screen must correspond to the screen type Subscreen. 6. Define the type pool WC (type pools: WC.) in the top Include for the function group XPRM.

Page 43: PM.CS UserExits and BAPIs.pdf

KSDIEX01 Function exits: EXIT_SAPLEBBS_001 EXIT_SAPLEBBS_002 EXIT_SAPLEBBS_003

Determining expenditures in resource-related billing (VA90 only) Determine Items for New Documents Read Items for Existing Documents Record Document Flow

In expense-related billing, individual expense items are generated from cost information. In the process, activity numbers (material numbers) are determined for use in identifying the individual items in the billing document. The complexity of billing item selection and activity number determination means that it is not possible to cover all options in the standard SAP system. Enhancement KSDIEX01 has been added to permit inclusion of customer-specific requirements for the transfer of item information to SD documents, by building on the standard functionality. Currently, the enhancement is only addressed as part of resource-related billing, but has been prepared with future functions involving transfer of information to SD documents in mind. In detail, you can carry out the following functions with this enhancement:

Filtering of the items selected with the standard functionality, using a customer-specific logic

Addition of items not selected in the standard

Customer-specific additions to items selected in the standard

Influence on document flow update Components in the Enhancement: Enhancement KSDIEX01 contains the following components (function exits):

EXIT_SAPLEBBS_001: Determining items for new documents. This function exit is accessed when you create a new SD document.

EXIT_SAPLEBBS_002: Reading items for existing documents. This function exit is accessed when during editing of an existing document.

EXIT_SAPLEBBS_003: Document flow update. This function exit is access when the document flow for an SD document is being read.

A detailed description of the function exits and their interfaces can be found in the documentation to the EXIT_SAPLEBBS_XXX function modules. General Technical Information ID for Document Flow Processing When an SD document is created, a document flow is recorded for the items, including those created within the framework of this enhancement. So that you can edit these items, it is necessary to assign each one a unique, reproducible 22-character ID. IDs relating to items created in this enhancement must begin with “Y" or "Z". So that you can read the items selected in the standard, their IDs must first be decoded. You can use the standard function module EBBS_ITEM_KEY_GET for this. Performance Aspects If you want to evaluate the standard item selection again in this enhancement, you do not need to read the items again from the database. You can access the standard function module EBBS_BUFFERED_TABLES_GET to read the item information from a buffer. Procedure For a description of the procedure for using enhancements, read the system documentation or the online documentation for transaction CMOD (project management of SAP enhancements, function exits). EXIT_SAPLEBBS_001 This user exit is accessed if line item information is to be used to generate items in an SD document. This is the case if you are generating billing requests as part of resource-related billing. The line items selected with the standard functionality are offered processing in customer-specific enhancements. You also have the option of creating your own items for inclusion in the SD document. Interface The items selected using the standard functionality are made available in table SAP_ITEMS. The table shows the following information for each item:

the item ID

the material number, which represents the item in the SD document

Page 44: PM.CS UserExits and BAPIs.pdf

the quantity originally posted, and its value

additional information on the item (posting date, cost centre, personnel number, supplier, number of the object debited) You can change table SAP_ITEMS in the following ways:

By deleting individual items per your own individual criteria

By replacing the material numbers determined for the individual items using the standard functionality.

Additional item information can be transferred to the SD document. The table USER_ITEMS includes the items which you determined yourself and which you want to include in the billing request. For this reason, it is empty when the function module is accessed. The USER_ITEMS table has the same structure as table SAP_ITEMS. For the items you have selected, you must maintain the following fields as a minimum:

the material number

the quantity posted and/or the value posted

item ID An object table called OBJECTS is transferred to the function module as a parameter for selecting your own items. This table contains all the objects also used for the standard selection. The object type, object number and (depending on the object type) the actual object key are given. The parameter SELECTION_TYPE indicates the commercial function which this function exit is accessed. You can use this parameter to realize various enhancements for different functions in the function exit. The (standard) include LEBBSEQG contains equates for the selection types currently used in the standard. In addition, you can use the parameters DATE_FROM and DATE_TO to give information on the period for which items are to be determined (with the standard selection). The customer-specific selection will also be carried for this period. ID for Document Flow Processing When an SD document is created, a document flow is recorded for the items, including those contained in table USER_ITEMS. So that you can edit these items, it is necessary to assign each one a unique, reproducible 22-character ID. The IDs relating to items created in this enhancement must begin with "Y" or "Z". EXIT_SAPLEBBS_002 This user exit is accessed when you want to change or display an existing SD document. This will be the case if you are changing a billing request as part of resource-related billing. Customer-specific enhancements are possible for the items contained in the SD document which were selected using the standard selections. Information can be read on the items contained in the billing request which were created in the user exit EXIT_SAPLEBBS_001 (customer-specific). This module is only accessed if the document flow update is not suppressed in function module EXIT_SAPLEBBS_003. Interface The items selected using the standard functionality are made available in table SAP_ITEMS. The table shows the following information for each item:

the item ID

the material number, which represents the item in the SD document

the quantity originally posted, and its value

additional information on the item (posting date, cost centre, personnel number, supplier, number of the object debited) You can change table SAP_ITEMS in the following ways:

By deleting individual items per your own individual criteria

By replacing the material numbers determined for the individual items using the standard functionality.

Additional item information can be transferred to the SD document. The table USER_ITEMS contains (in the EXPID field) the items which you determined yourself (in function module EXIT_SAPLEBBS_001 which also belongs to component KSDIEX01) and which you want to include in the billing request. These items must be created and added to table USER_ITEMS. The USER_ITEMS table has the same structure as table SAP_ITEMS. For the items you have selected, you must maintain the following fields as a minimum:

the material number

the quantity and/or value posted

Page 45: PM.CS UserExits and BAPIs.pdf

EXIT_SAPLEBBS_003 This user exit is accessed before a document flow is recorded in the EBII. This is the case, for example, when you save a billing request. You can use the function to:

suppress document flow update

create additional document flow entries Interface The table USER_FLOW_ITEMS makes available the document flow entries created for items you created yourself in the user exit EXIT_SAPLEBBS_001. The table contains an entry for each of these items, showing the following information:

item ID

number and item from the SD document to which the item was assigned

item quantities or values assigned to the SD document You can change table USER_FLOW_ITEMS as follows:

by deleting the document flow entries for which you want prevent update

by adding further additional document flow entries. You need to do this, for example, if you used user exit EXIT_SAPLEBBS_001 to summarize a number of items and only included the summarized information in the billing request. Assignment of line items to their summarization items cannot also take place in the document flow (for further evaluations). You do this by creating document flow entries for the line items too.

In the export parameter NO_FLOW_UPDATE, you can specify whether the document flow should generally be updated. Suppressing document flow update is only a good idea if no reference from the SD document to the original item will be needed later. Document flow update is always required if the existing SD document can be changed, thereby necessitating references to the information in the original items.

IWOC0001 Function exits: EXIT_SAPLIWO1_001

Create PM/SM notification: Determine reference object Create PM/CS Notification: Determination of Ref. Object for Customer Exit

In this function module, you can perform customer-specific extensions when creating a maintenance or service notification. The extensions refer only to the PM/SM notification. Description of interface: At the interface, the data from the notification type table TQ80 are copied to the function module. On the basis of this data, you can determine the relevant reference object (functional location, equipment, assembly) and transfer it to the called program. The called program checks the data and copies it to the notification.

IWOC0002 Function exits: EXIT_SAPLIQS0_001

PM/SM notification: Check whether status change is allowed Customer Exit "Check Status Change for Permission" for PM/CS Notifications

This customer exit enables you to implement individual authorization checks for a status change in addition to the authorization checks implemented in the standard SAP System. Furthermore, the customer exit enables field checks to be made in the current notification and allows the status change dependent on the inspection result. Note the documentation for the function exit EXIT_SAPMIWO0_021

Page 46: PM.CS UserExits and BAPIs.pdf

IWOC0003 Function exits: EXIT_SAPLIWO1_004 EXIT_SAPLIWO1_005

PM/SM authorization check of ref. object and planner group PM/SM - Authorization Check for Reference Object PM/SM - Authorization Check when Changing Planner Group

EXIT_SAPLIWO1_004 You can use this customer exit to switch off the authorization check on master data. It can be called up in Plant Maintenance and Customer Service in the following places:

When changing a notification, order or maintenance item

When changing an object in a notification, order or maintenance item In both cases, the system checks whether the user has authorization to change master data. You can use the customer exit to switch off the authorization check. EXIT_SAPLIWO1_005 You can use this customer exit to switch off the authorization check for planner groups. It can be called up in Plant Maintenance and in Customer Service when changing the planner group in the notification and order.

IWOC0004 Function exits: EXIT_SAPLIREP1_001

Change single-level list editing PM/QM/SM ALV settings Single-Level List Editing PM/QM/CS: Change ALV Settings

You can use this customer exit to alter how single-level lists are displayed in Customer Service, Plant Maintenance and Quality Management. When doing this, you can change accordingly various parameters and tables that are transferred from the report in the ABAP List Viewer (ALV). For example, the following changes are possible:

Deactivate alternating white/gray display

Set print parameters (with/without cover sheet)

Change field attributes in the field catalog (hide fields, set automatic optimization of column widths, define fields as being mandatory)

Change field grouping for field selection

Enter a title for the list The following reports are supported: Customer Service and Plant Maintenance RIAFRU20 Display Confirmations RIARCMRI Display Measurement Documents From Archive RIAUFK20 Display and Change Service and Maintenance Orders RIAUFM20 Display Goods Movements for Order RIIFLO20 Display Functional Location RIIMPT20 Display Measuring Point RIIMR020 Display Measurement Documents RIIRLO20 Display Reference Location RIGENE10 List of Active Permits RIMARA20 Display Material RIMHIO00 Scheduling: Maintenance Scheduling Overview RIMPLA00 Maintenance Plan List RIMPOS00 Maintenance Item List RIPLKO10 Display Task Lists RIQMEL20 Notification List RIQMEL30 List of Notification Tasks RIQMEL40 List of Notification Items RIQMEL60 List of Notification Actions RIVEDA20 List of Contracts for Serviceable Items RMIAPL60 Material Where-Used List for Task Lists RXASMD10 List Processing: Service Master RIAFVC10 Entering Confirmations via Operation List RIAFVC20 Display and Change Operations RIEQUI20 Display Equipment RIEQUI21 Display Serial Numbers RIIBAS10 IBase Where-Used List (Based on a point in time) RIIBAS30 IBase Where-Used List (Based on a time period) RINET0E0 Object Network: List of Equipment Links RINET0T0 Object Network: List of Functional Location Links

Page 47: PM.CS UserExits and BAPIs.pdf

Quality Management RQMELL10 Single-Level List - Quality Notification RQMELL20 List of Tasks RQMELL30 List of Notification Items RQMELL40 Activity List RQARCQDL Deletion Program for Quality Levels where Deletion Date Exceeded RQBAAM10 QM Release: Mass Maintenance RQBAAM20 Worklist of Source Inspections RQCPRM10 QM Worklist: Quality Certificates in Procurement RQDAAM10 Quality Level Evaluation RQEEAL10 Inspection Lot Selection RQERKM10 Overview Quality Control Charts for Inspection Lots RQERKM20 Overview Quality Control Charts for Task List RQERKM30 Overview of Control Charts for Master Inspection Characteristic RQEVAI10 Collective Usage Decision for OK Lots RQEVAM10 Inspection Lots Without Inspection Completion RQEVAM20 Inspection Lots With Outstanding Quantities RQEVAM30 Inspection Lots without Usage Decision RQMQMM00 Mass Change of QM Inspection Setup Data in Materials RQMTBV10 Display Inspection Method List RQPMKV10 Display Master Inspection Characteristics RQPRLS10 Create Inspection Lots for Physical Samples RQPRSS10 Create New Physical-Sample Drawing with Reference RQPRSS30 Mass Maintenance of Storage Data for Physical Samples RQTETR00 Test Equipment Tracking Example 1 In Report RIAFRU20 (Displaying Completion Confirmations), you should not be able to display the field personnel number using field selection: data h_fieldcat_wa type SLIS_FIELDCAT_ALV. if is_program = 'RIAFRU20'. loop at it_fieldcat into h_fieldcat_wa. if h_fieldcat_wa-fieldname = 'PERNR'. h_fieldcat_wa-tech = 'X'. modify it_fieldcat from h_fieldcat_wa. endif. endloop. endif. Example 2 The standard line display in a "zebra pattern" is not desirable; moreover, neither a cover sheet nor selection information should be printed together with lists. These settings should be valid for all lists. is_layout-zebra = space. is_print-no_coverpage = 'X'. is_print-no_print_selinfos = 'X'. Notes: You can modify the field attributes in the field catalog IT_FIELDCAT using this customer exit. However, we must point out that the table as a whole should not be modified, that is, you should neither add nor delete rows. Further Information: You will find a detailed description of the interface in the documentation for the ALV function module (function group SALV); for example, function modules REUSE_ALV_LIST_DISPLAY and REUSE_ALV_COMMENTARY_WRITE.

Page 48: PM.CS UserExits and BAPIs.pdf

CONF0001 Function exits: EXIT_SAPLCORU_001

Enhancements in order confirmation Order Confirmation: Deactivation of Functions

You can use this customer enhancement to hide function codes in confirmation transactions. The complete order-/network header (CAUFVD) is transferred to the interface along with the order-/network operation (AFVGD). You can extend the table T_CUAFC using function codes (with or without the use of the information transferred). These function codes are then deactivated in the CUA interface. You can find out what the function codes are called using transaction SE41 (maintain CUA interface). The program name for the confirmation is SAPLCORU. You can use the new function status list to get an overview of all the statuses that belong to this program. When you select a status from this list you find the internal names for the function codes in the detailed processing of the status.

CONFPM01 Function exits: EXIT_SAPLCORF_001

PM/SM order conf.: Determine customer specific default values PM/SM Order Confirmation: Customer-Specific Setting of Default Values

With this customer exit you can generate your own default values for a confirmation. They can deviate from those in the SAP logic. The system copies the following data:

operation in the order (AFVGD)

complete order header (CAUFVD)

confirmation (AFRUD)

confirmation parameters (TCORU) The confirmation is copied from the customer exit to the SAP standard program. Changing the confirmation segment is only permitted by the system, if there is no danger of inconsistent data being written to the database:

Changes are allowed by the system before the SAP checks.

Changes are not allowed after the SAP checks. The customer exit is implemented as the central FORM routine. On this basis, you can create customer exits of the same type for all order types.

CONFPM02 Function exits: EXIT_SAPLCORF_002

PM/SM order confirmation: Customer specific input checks 1 PM/SM Order Confirmation: Customer-Specific Entry Check Without Change

With this customer exit you can carry out your own checks on the confirmation once the SAP checks have been carried out. Note the following: Changing the confirmation segment is only permitted by the system, if there is no danger of inconsistent data being written to the database:

Changes are allowed by the system before the SAP checks.

Changes are not allowed after the SAP checks. With this customer exit the data thus cannot be changed. The system copies the following data:

operation in the order (AFVGD)

complete order header (CAUFVD)

confirmation (AFRUD) The customer exit is implemented as the central FORM routine. On this basis, you can create customer exits of the same type for all order types.

Page 49: PM.CS UserExits and BAPIs.pdf

CONFPM03 Function exits: EXIT_SAPLCORF_003

PM/SM order conf.: Customer specific check after operation selection PM/SM Order Conf.: Customer-Specific Checks Acc. to Operation Selection

With this customer exit you can carry out your own checks once an operation has been selected for the confirmation. Note the following: Changing the confirmation segment is only permitted by the system, if there is no danger of inconsistent data being written to the database:

Changes are allowed by the system before the SAP checks.

Changes are not allowed after the SAP checks. With this customer exit the data cannot be changed. The customer exit is implemented as the central FORM routine. On this basis, you can create customer exits of the same type for all order types. The system copies the following data:

operation in order (AFVGD)

complete order header (CAUFVD)

CONFPM04 Function exits: EXIT_SAPLCORF_004

PM/SM order conf.: Customer specific input check 2 PM/SM Order Confirmation: Customer-Specific Entry Checks with Change

With this customer exit you can make your own checks on the confirmation before the SAP checks are executed. Note the following: Changing the confirmation segment is only permitted by the system, if there is no danger of inconsistent data being written to the database:

Changes are allowed by the system before the SAP checks.

Changes are not allowed after the SAP checks. With this customer exit the confirmation can be changed depending on the user's entries. The customer exit is implemented as the central FORM routine. On this basis, you can create customer exits of the same type for all order types. The system copies the following data:

operation in order (AFVGD)

complete order header (CAUFVD)

confirmation (AFRUD)

CONFPM05 Function exits: EXIT_SAPLCORF_005

PM/SM order conf.: Customer specific enhancements when saving PM/SM Order Conf.: Customer-Spec. Enhancements when Saving (No Dialog!!!)

With this customer exit you can update your own data once you have saved the confirmation. Note the following: Changing the confirmation segment is only permitted by the system, if there is no danger of inconsistent data being written to the database:

Changes are allowed by the system before the SAP checks.

Changes are not allowed after the SAP checks. With this customer exit the data cannot be changed. Caution! In this customer exit it is strictly forbidden to send error messages or other messages since otherwise inconsistencies in the data may arise. SAP cannot be held responsible for this!! The customer exit is implemented as the central FORM routine. On this basis, you can create customer exits of the same type for all order types. The system copies the following data:

a table with all the confirmations created in this transaction (AFRUD)

a table with the order relevant headers (CAUFVD)

Page 50: PM.CS UserExits and BAPIs.pdf

CATP0001 Function exits: EXIT_SAPLCATP_001

Determine target hours Determine Target Hours

You can use this enhancement to have the target hours proposed according to your requirements. To do this, you can use the specifications made in the Time type target hrs, Subtract HR hours and Add overtime fields in your data entry profile. Examples On days that are days off according to the factory calendar, the target hours are set to "0" instead of "8". Tables: T001W Data: is_0315 type cats_0315, is_target_hours type cats_hours_per_day. Data: plant like ps0315-werks, default_plant like ps0315-werks value '0001', workingday_indicator like scal-indicator, date like catsdb-workdate, working_hours like cats_hours_per_day-stdaz value 8. * Read plant from infotype 0315 CALL FUNCTION 'CATS_GET_INFOTYPE_0315' EXPORTING PERNR = sap_pernr DATE = sap_begda IMPORTING I0315 = is_0315 EXCEPTIONS others = 1. if is_0315-werks is initial. is_0315-werks = default_plant. endif. if t001w-werks <> is_0315-werks. select single * from t001w where werks = is_0315-werks. endif. date = sap_begda. while date <= sap_endda. clear is_target_hours. is_target_hours-date = date. * Check calendar for working days CALL FUNCTION 'DATE_CONVERT_TO_FACTORYDATE' EXPORTING DATE = date FACTORY_CALENDAR_ID = T001W-FABKL IMPORTING WORKINGDAY_INDICATOR = workingday_indicator EXCEPTIONS others = 1. if sy-subrc <> 0. raise error_in_sap_enhancement. endif. if workingday_indicator is initial. is_target_hours-stdaz = working_hours. endif. append is_target_hours to sap_target_hours. date = date + 1. endwhile.

Page 51: PM.CS UserExits and BAPIs.pdf

CATS0001 Function exits: EXIT_SAPLCATS_001

CATS: Compile worklist CATS: Compile Worklist

You can use this enhancement to structure the contents of your worklist according to your requirements. The worklist (based on the parameters of the data entry profile) is copied to the table SAP_ICATSW. The table is defined in the function module interface. It takes the format of the (DDIC) table CATSW and contains the contents of the worklist. You can change or delete lines from the table that is from what will become the worklist. You can also insert new lines. You cannot, however, use this enhancement to insert new columns. The table contents are displayed in the time sheet worklist. The data entry profile (SAP_TCATS), the personnel number (SAP_PERNR), and the data entry period (SAP_DATELEFT and SAP_DATERIGHT) are also copied to the table. Note that you must activate the Customer enhancement field in the Worklist section when you maintain the settings for the data entry profile you want to use.

CATS0002 Function exits: EXIT_SAPLCATS_002

CATS: Supplement recorded data CATS: Supplement Recorded Data

You can use this SAP enhancement to supplement the data entered using the Time Sheet. The internal table ENRICH_TABLE is used to communicate with the SAP System. When the enhancement is called, the table contains one data record. You can then change the contents of the record and use the internal table ENRICH_TABLE to return it to the standard program. Example: You want to replace the receiver cost centre "0000000666", recorded on January 3, 1997, with the cost centre that is currently valid (cost centre "0000003200"). LOOP AT ENRICH_TABLE. IF ENRICH_TABLE-RKOSTL = '0000000666' AND ENRICH_TABLE-WORKDATE = '19970103'. ENRICH_TABLE-RKOSTL = '0000003200'. MODIFY ENRICH_TABLE. ENDIF. ENDLOOP. You can also return more than one data record. The system then inserts another line for the new record.

Page 52: PM.CS UserExits and BAPIs.pdf

CATS0003 Function exits: EXIT_SAPLCATS_003

CATS: Validate recorded data CATS: Validate Recorded Data

You can use this SAP enhancement to validate any data already recorded. Validations are performed for one cell (an entry by one person on one day). Example: You do not want user XYZ to record time data for receiver cost centre 0000000666. The transfer structure used is the structure FIELDS. This structure contains all the account assignment fields relevant to you. If you want to return messages to the standard program, you will also need to use internal table I_MESSAGES. In this example, error message "001" is issued with message class "ZZ", message type "E", and parameter "XYZ". Making entries in table I_MESSAGES is equivalent to using the command "MESSAGE E001(ZZ) WITH 'XYZ'". However, to ensure that all the program flows can run, fill the internal table I_MESSAGES rather than use this command. Example: REFRESH I_MESSAGES. IF FIELDS-RKOSTL = '0000000666' AND SY-UNAME = 'XYZ'. I_MESSAGES-MSGTY = 'E'. I_MESSAGES-MSGID = 'ZZ'. I_MESSAGES-MSGNO = '001'. I_MESSAGES-MSGV1 = 'XYZ'. APPEND I_MESSAGES. ENDIF.

CATS0004 Function exits: EXIT_SAPLCATS_004

CATS: Deactivate functions in the user interface CATS: Deactivate Functions in the User Interface

You can use this customer enhancement to hide the function codes in CATS transactions. Besides the screen number and the processing mode, the data entry profile with the current settings (TCATS) and the personnel number are transferred to the interface. You can extend table T_CUAFC with function codes (using the transferred information or not). The function codes are then deactivated in the graphical user interface (GUI). You can find the names of the function codes using transaction SE41 (for maintaining the GUI). The program name for CATS is SAPLCATS. You can obtain an overview about all the statuses in this program using the status list function. If you select a status from this list, you can find the internal names of the function codes in the details.

Page 53: PM.CS UserExits and BAPIs.pdf

CATS0005 Menu entries: SAPLCATS+CU1 Function exits: EXIT_SAPLCATS_005 EXIT_SAPLCATS_008 Screen areas: SAPLCATS8900_CUSTSCR1_SAPLXCAT1000

CATS: Customer field enhancements CATS: Export Data to Customer Dialog CATS: Import Data from Customer Dialog Box

You can use this SAP enhancement to validate any data already recorded. The validation is performed for the entire time sheet. When you save data or you change the current data entry period by scrolling, the validation is called automatically. You can also call the validation via a function key. Example: You do not want a user to record more than 8 hours per day. The transfer structure used for the data records is the table CHECK_TABLE. This table contains all the account assignment fields that are relevant to you. The two variables "DATEFROM" and "DATETO" contain the time limits of the time sheet to be validated. If you want to return messages to the standard program, you will also need to use internal table I_MESSAGES. In this example, error message "001" is issued with message class "ZZ", message type "E" and parameter "XYZ". Making entries in table I_MESSAGES is equivalent to using the command "MESSAGE E001(ZZ) WITH 'XYZ'". However, to ensure all the program flows can run, fill the internal table I_MESSAGES rather than use this command. Define customer Include CI_CATSDB in the ABAP/4 Dictionary. Include only fields in the customer name range in structure CI_CATSDB. Otherwise, this may cause problems during a system upgrade. Use only fields of type 'CHAR' and 'NUMC'. Define subscreen SAPLXCAT 1000. This subscreen is then included in the dialog box that is called. This subscreen contains your customer- specific fields. Define a menu option to trigger the dialog box with your customer fields. Define a function module to receive data in the transfer structure FIELDS from the calling program. Define a function module to return data in the transfer structure FIELDS to the calling program.

Page 54: PM.CS UserExits and BAPIs.pdf

CATS0006 Function exits: EXIT_SAPLCATS_006

CATS: Validate entire time sheet CATS: Validate Entire Time Sheet

You can use this SAP enhancement to validate any data already recorded. The validation is performed for the entire time sheet. When you save data or you change the current data entry period by scrolling, the validation is called automatically. You can also call the validation via a function key. Example: You do not want a user to record more than 8 hours per day. The transfer structure used for the data records is the table CHECK_TABLE. This table contains all the account assignment fields that are relevant to you. The two variables "DATEFROM" and "DATETO" contain the time limits of the time sheet to be validated. If you want to return messages to the standard program, you will also need to use internal table I_MESSAGES. In this example, error message "001" is issued with message class "ZZ", message type "E" and parameter "XYZ". Making entries in table I_MESSAGES is equivalent to using the command "MESSAGE E001(ZZ) WITH 'XYZ'". However, to ensure all that all the program flows can run, fill the internal table I_MESSAGES rather than use this command. Example: DATA: OLD_WORKDATE LIKE CATSDB-WORKDATE. DATA: CATSHOURS LIKE CATSDB-CATSHOURS. REFRESH I_MESSAGES. SORT CHECK_TABLE BY WORKDATE. CLEAR OLD_WORKDATE. LOOP AT CHECK_TABLE WHERE WORKDATE BETWEEN DATEFROM AND DATETO. IF OLD_WORKDATE NE CHECK_TABLE-WORKDATE. OLD_WORKDATE = CHECK_TABLE-WORKDATE. CLEAR CATSHOURS. CATSHOURS = CATSHOURS + CHECK_TABLE-CATSHOURS. ELSE. CATSHOURS = CATSHOURS + CHECK_TABLE-CATSHOURS. ENDIF. IF CATSHOURS GT 8. I_MESSAGES-MSGTY = 'E'. I_MESSAGES-MSGID = 'ZZ'. I_MESSAGES-MSGNO = '001'. I_MESSAGES-MSGV1 = 'XYZ'. APPEND I_MESSAGES. ENDIF. ENDLOOP.

CATS0007 Screen areas: SAPLCATS1000_CUSTSCR2_SAPLXCAT2000

CATS: Subscreen on initial screen

You can use this SAP enhancement to show additional fields on the initial screen. You need to define the subscreen SAPLCATS 2000. Note that you can only use this enhancement to display fields. You cannot use these fields for selection.

Page 55: PM.CS UserExits and BAPIs.pdf

CATS0008 Function exits: EXIT_SAPLCATS_007

CATS: Determine workflow recipients for approval CATS: Determine Workflow Recipients for Approval

You can use this SAP enhancement to determine the recipient of the approval workflow and to control further processing when released data is saved in the time sheet. You must set the following indicators:

POSITION Position

USER User

WORKCENTRE Work centre

JOB Job

UNIT Organizational unit These five fields determine the type of recipient. Note that only one of the indicators may be set at one time.

AGENT Recipient Set the recipient with reference to the above recipient type. SCREEN_DARK Workflow screen in background If this indicator is not set, the recipient determined is displayed for checking and can be changed by the user. If the indicator is assigned the value "X", the recipient is not displayed. If the agent determined in the enhancement is not permitted (the user is invalid, for example), the agent screen is displayed even if the SREEN_DARK indicator is set. The incorrect data can then be changed. The enhancement determines the recipient based on the following information:

Personnel number SAP_PERNR

Data entry profile SAP_TCATS

Recorded data SAP_ICATSDB All persons currently approving data for the personnel number (that is, all users who still have work items to approve for the user in their inbox) SAP_AGENTS

CATS0009 Function exits: EXIT_SAPLCATS_009

CATS: Customer-Specific Text Fields in Data Entry Section CATS: Customer-Specific Text Fields in Data Entry Section

You can use this SAP enhancement to display customized texts in the data entry section of the time sheet. The fields CATSFIELDS-DISPTEXT1 and CATSFIELDS-DISPTEXT2 are used for this purpose. The fields are 40 characters long and can be used to display the description of an object that has been entered (such as a WBS element), for example. These are display-only fields, which are lost when you leave the transaction, that is, they are not stored with the other data when you save.

CATS0010 Function exits: EXIT_SAPLCATS_010

CATS: Customer-Specific Text Fields in Worklist CATS: Customer-Specific Text Fields in Worklist

You can use this SAP enhancement to display customized texts in the time sheet worklist. The fields CATSFIELDS-DISPTEXTW1 and CATSFIELDS-DISPTEXTW2 are used for this purpose. The fields are 40 characters and can be used to display the description of a displayed object (such as a WBS element), for example. These are display-only fields, which are lost when you leave the transaction, that is, they are not stored when you save the other data.

Page 56: PM.CS UserExits and BAPIs.pdf

CATS0011 Menu entries: SAPLCATS+CU2 SAPLCATS+CU3 SAPLCATS+CU4 SAPLCATS+CU5 SAPLCATS+CU6 SAPLCATS+CU7 Function exits: EXIT_SAPLCATS_011

CATS: Customer functions CATS: Customer Functions in Initial Screen/Data Entry Screen

You can use this SAP enhancement to include up to two functions of your choice in the data entry screen Extras and Environment menus. You can display additional information on a person (leave status, flexitime balance) in a dialog box, for example. The internal table SAP_CATSD contains the data in the data entry section. You can query which SAP_CATSD field the cursor is positioned in when the function is called using the SAP_CURSOR_FIELD and SAP_CURSOR_CATSDLINE fields.

Page 57: PM.CS UserExits and BAPIs.pdf

QQMA0001 Function exits: EXIT_SAPMIWO0_008 EXIT_SAPMIWO0_009 Screen areas: SAPLIQS07790_USER0001_SAPLXQQM0100 SAPLIQS07790_USER0001_SAPLXQQM0101 SAPLIQS07790_USER0001_SAPLXQQM0102 SAPLIQS07790_USER0001_SAPLXQQM0103 SAPLIQS07790_USER0001_SAPLXQQM0104 SAPLIQS07790_USER0001_SAPLXQQM0105 SAPLIQS07790_USER0001_SAPLXQQM0110 SAPLIQS07790_USER0001_SAPLXQQM0115 SAPLIQS07790_USER0001_SAPLXQQM0120 SAPLIQS07790_USER0001_SAPLXQQM0125 SAPLIQS07790_USER0001_SAPLXQQM0130 SAPLIQS07790_USER0001_SAPLXQQM0135 SAPLIQS07790_USER0001_SAPLXQQM0140 SAPLIQS07790_USER0001_SAPLXQQM0145 SAPLIQS07790_USER0001_SAPLXQQM0150 SAPLIQS07790_USER0001_SAPLXQQM0155

QM/PM/SM: User subscreen for notification header Customer Exit: Transfer Notification Data to User Screen Customer Exit: Transfer Notification Data from User Screen Subscreen w/out fields default Subscreen w/out fields default Subscreen w/out fields default Subscreen w/out fields default Subscreen w/out fields default Subscreen w/out fields default Subscreen w/out fields default Subscreen w/out fields default Subscreen w/out fields default Subscreen w/out fields default Subscreen w/out fields default Subscreen w/out fields default Subscreen w/out fields default Subscreen w/out fields default Subscreen w/out fields default Subscreen w/out fields default

With this customer enhancement, you can incorporate additional data in the notification header screens. The notification header data is transferred to the function group using function module exits for this purpose. You can then include this data on the customer-specific screen. You can change the data. Make sure, however, that the structure VIQMEL is transferred back to the export structure E_VIQMEL before you leave the enhancement. Only in this way, are the fields that you did not change are transferred back properly. Note: If the field TQ80-USERSCR1 (which you can maintain in the Customizing application) receives a screen number, this screen is called up as a subscreen; otherwise screen 0100 is used. It is important that the screens for program SAPLXQQM are defined. If you want to add your own fields to the VIQMEL view, you must include them as an APPEND structure in table QMEL. In this way, the additional fields are automatically copied into the view VIQMEL. To display the subscreen on the notification header screen, you must first define it in Customizing for the notification type and copy the screen area "Customer subscreen" to one of the notification tabs(using the Customizing function Define screen areas) Function Module: This function module exit allows you to display a subscreen on the notification header screen (SAPLIQS0 7790). From this subscreen, you can maintain your own fields for the notification. An area consisting of four lines is reserved on screen SAPLIQS0 7790. The screen must be of the "subscreen" type. You can use the VIQMEL structure to display your own fields. The transferred structure is saved in the global structure VIQMEL. This structure must be transferred back to the export structure E_VIQMEL, before you leave the user exit. In this way, the fields that you have not changed are transferred back completely and inconsistencies in the database are avoided. On the basis of the import parameter I_AKTYP, you can determine the transaction type from which the function is called:

A - Display

V - Change

H - Create Note: If you want to include your own fields in the VIQMEL view, you must copy them into table QMEL as an APPEND structure. In this way the additional fields are automatically copied into the VIQMEL view. To display the subscreen on the notification header screen, you must first define the subscreen in Customizing for the notification type and copy the screen area "Customer subscreen" to one of the notification tabs (using the Define screen areas function in Customizing). Screen: You can use this customer enhancement to display a subscreen on the notification header screen. You can maintain your own fields for

Page 58: PM.CS UserExits and BAPIs.pdf

the notification header on this subscreen (a section of four lines is reserved for this on screen SAPLIQS0 7790). The screen must be of the type "Subscreen". You can use the Customizing function to control which screen is to be called for the program SAPLXQQM. Using this function, you can display different subscreens for different notification types. It is important that you create screen 0100 as an empty subscreen containing four lines. Screen 0100 is then always used, if no specific screen is defined in Customizing. In this way, you can make sure that the customer enhancement is not active for all notification types, but only for the notification types that have a screen number defined in Customizing. You can use all other screens in the normal way. In Customizing, You must assign the screen area customer subscreen as well as the screen number (using define notification types).

QQMA0002 Function exits: EXIT_SAPLQAUT_001

QM: Authorization Check for Entry into Notification Transaction Customer Exit: Authorization Check for Notification Transactions

This user exit allows you to carry out an individual authorization check when you call up a quality notification. The system calls up the user exit after the authorization object Q_QMEL has been subjected to the standard SAP check. The user exit is called up after the SAP standard check is carried out for authorization object Q_QMEL. The following tables are available in the user exit for your own authorization checks:

VIQMEL - Notification header record

TQ80 - Notification type

Page 59: PM.CS UserExits and BAPIs.pdf

QQMA0003 Menu entries: SAPLQM00+US1 Function exits: EXIT_SAPMIWO0_004

QM: "User data" Function in "Goto" Menu Function Code "+US1" in Menu "Goto" During Notification Processing

With this user exit, you can activate your own function code for the processing or display functions for quality notifications. For example, you can use this code to call up a customer-specific screen. The function code is included in the Goto menu option. Function module With this user exit, you can activate your own function code for the quality notification processing or display transactions. For example, you can use this code to call up a customer-specific screen. The function code is included in the menu option Goto. On the basis of import parameter I_AKTYP, you can identify the transaction type from which the function is called up:

A - Display

V - Change

H - Create The export parameter E_FCODE controls whether or not the data should be transferred: Data is transferred upon:

0001 - Continue/Close Data is not transferred upon:

0002 - Cancel Misc. - response same as for cancel Note: Before you leave the user exit, you must transfer the notification record (I_VIQMEL) to the export parameter (E_VIQMEL). In this way, the fields that you did not change will be transferred back completely and an inconsistency in the data will be avoided. Function code You can use this function code, for example, to call up a customer-specific screen. This code is included in the menu under Goto You can freely define the text for the function code. If you do not enter your own text, the text "User data" will be used (defined in the standard system).

Page 60: PM.CS UserExits and BAPIs.pdf

QQMA0004 Menu entries: SAPLQM00+US2 Function exits: EXIT_SAPMIWO0_005

QM: "User data" Function in "Goto -> Item” Menu Function Code "+US2" in Menu "Goto/Item" During Notification Processing

With this user exit, you can activate your own function code for the processing or display functions for quality notifications. For example, you can use this code to call up a customer-specific screen for a notification item. The function code is included in the Goto -> Item menu option. Function module: With this user exit, you can activate your own function code for the quality notification processing and display functions. For example, you can use this code to call up a customer-specific screen for a notification item. The function code is included in the menu path Goto -> Item. On the basis of the import parameter I_AKTYP, you can determine the transaction type from which the function is called up:

A - Display

V - Change

H - Create The export parameter E_FCODE controls whether or not the data should be transferred:

0001 - Continue/close: Data transfer for current item and close dialog box.

0002 - Next marked item: Data transfer for current item and retrieval of data for next marked item.

0003 – Cancel: No transfer of data.

Misc. - Cancel: No transfer of data. Note: Before you leave the user exit, you must transfer the item record (I_VIQMFE) back to the export parameter (E_VIQMFE). In this way, the fields that you did not change will be transferred back completely and an inconsistency in the data will be avoided. Function code: You can use this function code, for example, to call up a customer-specific screen. This code is included in the menu under Goto. You can freely define the text for the function code. If you do not enter your own text, the text "User data" will be used (defined in the standard system).

Page 61: PM.CS UserExits and BAPIs.pdf

QQMA0005 Function exits: EXIT_SAPMIWO0_006

QM: Check Validity of Status Change User Exit "Check Authorization for Status Change"

With this user exit, you can carry out individual authorization checks when a status is changed (in addition to the standard SAP authorization checks). On the basis of the import parameter I_AKTYP, you can determine the transaction type from which the function is called up:

A - Display

V - Change

H - Create

QQMA0006 Function exits: EXIT_SAPMIWO0_007

QM: Automatic Task Determination for Quality Notifications Automatic Determination of Tasks for Quality Notifications

When you process the notifications, you can have the system determine the tasks automatically. In the standard system, the system determines the tasks on the basis of the response time and service profile, which are assigned to the notification type. In addition to this standard function, you can also determine the tasks yourself. The system provides you with all of the latest notification data as a source of information. On the basis of this information, you can create your own algorithms to determine the tasks. These tasks will be copied into the notification. You can also specify whether or not the standard SAP function will be executed. Function module: This user exit allows you to carry out an individual determination of tasks, as a supplement to the standard function for determining the tasks. In the process, the system supplies you with the complete, current notification data as a source of information. On the basis of this information, you can define your own tasks which are then copied into the notification. You can also specify whether or not the SAP standard functionality should be executed. Use the exception condition NO_SAP_STD_TASK_DETERMINATION for this purpose. If you trigger this exception condition in your function module, the determined tasks in table E_QMSM will still be copied into the notification. In addition to the tasks, all items, causes and activities that already exist will also be available in the user exit. Data can only be exported back to the quality notification for tasks. All records contained in the export table E_QMSM are appended to the task records that already exist. Note: When you transfer the contents of table I_QMSM to table E_QMSM, duplicate task records may be created. The import parameter SIMULATION shows you that only a simulation of the tasks to be determined is being carried out, allowing you to react accordingly (for example, by printing a list that contains the determined tasks).

Page 62: PM.CS UserExits and BAPIs.pdf

QQMA0007 Function exits: EXIT_SAPMIWO0_001

QM: Default Values when Creating a Notification Default Values When Creating a Notification

This customer enhancement allows you to define default values when you create a quality notification. Time of call-up: On the initial screen (program SAPLIQS0, screen 0200) after the possible call-up of an initial screen. Note: If you want to add your own fields to the VIQML view, you must include them as an APPEND structure in table QMEL. In this way, the additional fields are automatically copied into the view VIQMEL. Function module: You can use this module to predefine default values for the notification header when you create a quality notification. For example, you can pre-assign a standard value to the "Plant" field. Time of call: On the initial screen (program SAPLIQS0, screen 0200), after the call of a dialog box (if one is called). Note: Before you leave the function module exit, you must transfer the notification header record (I_VIQMEL) to the export parameter E_VIQMEL). This is the only way to ensure that the fields that remain unchanged can be correctly reconfirmed and that no inconsistency of data occurs .

QQMA0008 Function exits: EXIT_SAPMIWO0_010 EXIT_SAPMIWO0_011 Screen areas: SAPLIQS03030_USER0002_SAPLXQQM0100 SAPLIQS03030_USER0002_SAPLXQQM0210 SAPLIQS03030_USER0002_SAPLXQQM0211 SAPLIQS03030_USER0002_SAPLXQQM0212 SAPLIQS03030_USER0002_SAPLXQQM0213 SAPLIQS03030_USER0002_SAPLXQQM0214 SAPLIQS03030_USER0002_SAPLXQQM0215 SAPLIQS03030_USER0002_SAPLXQQM0220 SAPLIQS03030_USER0002_SAPLXQQM0221 SAPLIQS03030_USER0002_SAPLXQQM0222 SAPLIQS03030_USER0002_SAPLXQQM0223 SAPLIQS03030_USER0002_SAPLXQQM0224 SAPLIQS03030_USER0002_SAPLXQQM0225 SAPLIQS03030_USER0002_SAPLXQQM0230 SAPLIQS03030_USER0002_SAPLXQQM0231 SAPLIQS03030_USER0002_SAPLXQQM0232 SAPLIQS03030_USER0002_SAPLXQQM0233 SAPLIQS03030_USER0002_SAPLXQQM0234 SAPLIQS03030_USER0002_SAPLXQQM0235

QM/PM/SM: User Subscreen for Additional Data on Notification Item Customer Exit: Transfer Item Data to User Screen Customer Exit: Transfer Item Data from User Screen Subscreen w/o fields (default) Subscreen w/o fields (default) Subscreen w/o fields (default) Subscreen w/o fields (default) Subscreen w/o fields (default) Subscreen w/o fields (default) Subscreen w/o fields (default) Subscreen w/o fields (default) Subscreen w/o fields (default) Subscreen w/o fields (default) Subscreen w/o fields (default) Subscreen w/o fields (default) Subscreen w/o fields (default) Subscreen w/o fields (default) Subscreen w/o fields (default) Subscreen w/o fields (default) Subscreen w/o fields (default) Subscreen w/o fields (default) Subscreen w/o fields (default)

With this customer enhancement, you can include additional data on the detail screen for the notification item (screen SAPLIQS0 3030). The notification header data and item data are transferred to the function group for this purpose. You can then include this data on the customer-specific subscreen. You can change the data. Make sure you transfer the structure VIQMFE to the export structure E_VIQMFE, before you leave the user exit. Only in this way, are the fields that you did not change transferred back properly. Note: If field TQ80-USERSCR2 (which you can maintain in the Customizing application) contains a screen number, this screen is called up as a subscreen; otherwise screen 0100 is used. It is important that the screens for program SAPLXQQM are defined. If you want to add your own fields to the VIQML view, you must include them as an APPEND structure in table QMEL. In this way, the additional fields are automatically copied into the view VIQMEL.

Page 63: PM.CS UserExits and BAPIs.pdf

Function Module: This user exit allows you to display a subscreen on the item detail screen (SAPLIQS0 3030). You can maintain your own fields for the item on this screen. An area of three lines is reserved in the screen SAPLIQS0 3030. The screen must be of the "subscreen" type. The structures VIQMEL and VIQMFE are available for purposes of displaying your own fields. The transferred structures are saved in the global structures VIQMEL and VIQMFE. Before you leave the user exit, the structure VIQMFE must be transferred back to the export structure E_VIQMFE. As a result, the fields that you have not changed are transferred back completely, and inconsistencies in the database are avoided. On the basis of import parameter I_AKTYP, you can determine the transaction type from which the function is called up:

A - Display

V - Change

H - Create Screen This customer enhancement allows you to display a subscreen from within the item detail screen. On this subscreen, you can maintain your own fields for the item. On screen SAPLIQS0 3030 there is a section of three lines reserved for this purpose. The screen must be of the "subscreen" type. Using the Customizing function, you can control which screen is to be called for the SAPLXQQM program. You can also display different subscreens for different notification types. It is important to create screen 0100 as an empty subscreen with three lines. The screen 0100 is then always used, if no specific screen is noted in Customizing. As a result, the customer enhancement is not active for all notification types, but only for those notification types, for which you have defined a screen number in Customizing. The screen SAPLIQS0 3030 is used for maintenance, service and quality notifications. If you do not define screen 0100, the notification function is terminated for those notification types that have no screen number defined in Customizing. If you define screen 0100, but enter fields instead of using it as an empty subscreen, the subscreen appears with the fields on the item detail screen, when you use one of the three notifications mentioned above. You can use screens 0210-0215, 0220-0225 and 0230-0235 in the normal way. Recommendation Notification types for maintenance notifications: Screens 0210-0215 Notification types for quality notifications: Screens 0220-0225 Notification types for service notifications: Screens 0230-0235

QQMA0009 Function exits: EXIT_SAPMIWO0_012

QM: Predefine QM Order Parameters Customer Exit: Supply QM Order Parameters with Default Values

With this user exit, you can influence the order parameters individually before you create a QM order. Among other items, you can change the settlement rule (for example, when you a settle a WBS element).

Page 64: PM.CS UserExits and BAPIs.pdf

QQMA0010 Function exits: EXIT_SAPMIWO0_013 EXIT_SAPMIWO0_014 Screen areas: SAPLIQS07116_USER0003_SAPLXQQM0100 SAPLIQS07116_USER0003_SAPLXQQM0310 SAPLIQS07116_USER0003_SAPLXQQM0311 SAPLIQS07116_USER0003_SAPLXQQM0312 SAPLIQS07116_USER0003_SAPLXQQM0313 SAPLIQS07116_USER0003_SAPLXQQM0314 SAPLIQS07116_USER0003_SAPLXQQM0315 SAPLIQS07116_USER0003_SAPLXQQM0320 SAPLIQS07116_USER0003_SAPLXQQM0321 SAPLIQS07116_USER0003_SAPLXQQM0322 SAPLIQS07116_USER0003_SAPLXQQM0323 SAPLIQS07116_USER0003_SAPLXQQM0324 SAPLIQS07116_USER0003_SAPLXQQM0325 SAPLIQS07116_USER0003_SAPLXQQM0330 SAPLIQS07116_USER0003_SAPLXQQM0331 SAPLIQS07116_USER0003_SAPLXQQM0332 SAPLIQS07116_USER0003_SAPLXQQM0333 SAPLIQS07116_USER0003_SAPLXQQM0334 SAPLIQS07116_USER0003_SAPLXQQM0335

QM/PM/SM: User Subscreen for Additional Data on Cause Customer Exit: Transfer Cause to User Screen Customer Exit: Transfer Cause from User Screen Subscreen w/o fields (default) Subscreen w/o fields (default) Subscreen w/o fields (default) Subscreen w/o fields (default) Subscreen w/o fields (default) Subscreen w/o fields (default) Subscreen w/o fields (default) Subscreen w/o fields (default) Subscreen w/o fields (default) Subscreen w/o fields (default) Subscreen w/o fields (default) Subscreen w/o fields (default) Subscreen w/o fields (default) Subscreen w/o fields (default) Subscreen w/o fields (default) Subscreen w/o fields (default) Subscreen w/o fields (default) Subscreen w/o fields (default) Subscreen w/o fields (default)

With this customer enhancement, you can include additional data on the CAUSE detail screen for notification item (screen SAPMLIQS0 3030). For this purpose, the data for the notification header, item and cause data are transferred to the function group via the user exit. You can then include this data on the customer-specific subscreen. It is possible to change the data. Make sure the structure VIQMUR is transferred to the export structure E_VIQMUR before you leave the user exit. Only then will the unchanged fields be transferred back properly. Note: If field TQ80-USERSCR3 (maintained in Customizing) contains a screen number, this screen is called up as a subscreen. Otherwise, screen 0100 is used. It is important that the screens for program SAPLXQQM are defined. Function Module: This user exit allows you to display a subscreen on the item detail screen (SAPMIWO0 3030). You can maintain your own fields for the cause on this subscreen. An area of two lines is reserved on the screen SAPMIWO0 3030. The screen must be of the "subscreen" type. You can use the structures VIQMEL, VIQMFE and VIQMUR to output your own fields. The transferred structures are saved in the global structures VIQMEL, VIQMFE and VIQMUR. Before you leave the user exit, structure VIQMMA must be transferred back to the export structure E_VIQMUR. This ensures that the unchanged fields will be transferred back completely and that inconsistencies in the database will be avoided. You can determine the transaction type from which the function is called on the basis of import parameter I_AKTYP:

A - Display

V - Change

H - Create Screen: This customer enhancement allows you to display a subscreen from within the item detail screen. On this subscreen, you can maintain your own fields for the cause. On screen SAPLIQS0 3030 there is a section of two lines reserved for this purpose. The screen must be of the "subscreen" type. Using the Customizing function, you can control which screen is to be called for the SAPLXQQM program. You can also display different subscreens for different notification types. It is important to create screen 0100 as an empty subscreen with three lines. The screen 0100 is then always used, if no specific screen is noted in Customizing. As a result, the customer enhancement is not active for all notification types, but only for those notification types, for which you have defined a screen number in Customizing. The screen SAPLIQS0 3030 is used for maintenance, service and quality notifications.

Page 65: PM.CS UserExits and BAPIs.pdf

If you do not define screen 0100, the notification function is terminated for those notification types that have no screen number defined in Customizing. If you define screen 0100, but enter fields instead of using it as an empty subscreen, the subscreen appears with the fields on the item detail screen, when you use one of the three notifications mentioned above. You can use screens 0310-0315, 0320-0325 and 0330-0335 in the normal way. Recommendation Notification types for maintenance notifications: Screens 0310-0315 Notification types for quality notifications: Screens 0320-0325 Notification types for service notifications: Screens 0330-0335

QQMA0011 Function exits: EXIT_SAPMIWO0_015 EXIT_SAPMIWO0_016 Screen areas: SAPLIQS04010_USER0004_SAPLXQQM0100 SAPLIQS04010_USER0004_SAPLXQQM0410 SAPLIQS04010_USER0004_SAPLXQQM0411 SAPLIQS04010_USER0004_SAPLXQQM0412 SAPLIQS04010_USER0004_SAPLXQQM0413 SAPLIQS04010_USER0004_SAPLXQQM0414 SAPLIQS04010_USER0004_SAPLXQQM0415 SAPLIQS04010_USER0004_SAPLXQQM0420 SAPLIQS04010_USER0004_SAPLXQQM0421 SAPLIQS04010_USER0004_SAPLXQQM0422 SAPLIQS04010_USER0004_SAPLXQQM0423 SAPLIQS04010_USER0004_SAPLXQQM0424 SAPLIQS04010_USER0004_SAPLXQQM0425 SAPLIQS04010_USER0004_SAPLXQQM0430 SAPLIQS04010_USER0004_SAPLXQQM0431 SAPLIQS04010_USER0004_SAPLXQQM0432 SAPLIQS04010_USER0004_SAPLXQQM0433 SAPLIQS04010_USER0004_SAPLXQQM0434 SAPLIQS04010_USER0004_SAPLXQQM0435 SAPLIQS04100_USER0004_SAPLXQQM0100 SAPLIQS04100_USER0004_SAPLXQQM0410 SAPLIQS04100_USER0004_SAPLXQQM0411 SAPLIQS04100_USER0004_SAPLXQQM0412 SAPLIQS04100_USER0004_SAPLXQQM0413 SAPLIQS04100_USER0004_SAPLXQQM0414 SAPLIQS04100_USER0004_SAPLXQQM0415 SAPLIQS04100_USER0004_SAPLXQQM0420 SAPLIQS04100_USER0004_SAPLXQQM0421 SAPLIQS04100_USER0004_SAPLXQQM0422 SAPLIQS04100_USER0004_SAPLXQQM0423 SAPLIQS04100_USER0004_SAPLXQQM0424 SAPLIQS04100_USER0004_SAPLXQQM0425 SAPLIQS04100_USER0004_SAPLXQQM0430 SAPLIQS04100_USER0004_SAPLXQQM0431 SAPLIQS04100_USER0004_SAPLXQQM0432 SAPLIQS04100_USER0004_SAPLXQQM0433 SAPLIQS04100_USER0004_SAPLXQQM0434 SAPLIQS04100_USER0004_SAPLXQQM0435

QM/PM/SM: User Subscreen for Additional Data on Task Customer Exit: Transfer Task to User Screen Customer Exit: Transfer Task from User Screen Subscreen w/o fields (default) Subscreen w/o fields (default) Subscreen w/o fields (default) Subscreen w/o fields (default) Subscreen w/o fields (default) Subscreen w/o fields (default) Subscreen w/o fields (default) Subscreen w/o fields (default) Subscreen w/o fields (default) Subscreen w/o fields (default) Subscreen w/o fields (default) Subscreen w/o fields (default) Subscreen w/o fields (default) Subscreen w/o fields (default) Subscreen w/o fields (default) Subscreen w/o fields (default) Subscreen w/o fields (default) Subscreen w/o fields (default) Subscreen w/o fields (default) Subscreen w/o fields (default) Subscreen w/o fields (default) Subscreen w/o fields (default) Subscreen w/o fields (default) Subscreen w/o fields (default) Subscreen w/o fields (default) Subscreen w/o fields (default) Subscreen w/o fields (default) Subscreen w/o fields (default) Subscreen w/o fields (default) Subscreen w/o fields (default) Subscreen w/o fields (default) Subscreen w/o fields (default) Subscreen w/o fields (default) Subscreen w/o fields (default) Subscreen w/o fields (default) Subscreen w/o fields (default) Subscreen w/o fields (default) Subscreen w/o fields (default)

With this customer enhancement, you can include additional data on the task detail screens (SAPLIQS0 4010 and 4100). For this purpose, the notification header data, item data and task data are transferred to the function group via the user exit. You can then include this data on the customer-specific subscreen. It is possible to change the data. Make sure the structure VIQMSM is transferred to the export structure E_VIQMSM before you leave the user exit. Only then are the unchanged fields transferred back properly. Note: If field TQ80-USERSCR4 (maintained in Customizing) contains a screen number, this screen is called up as a subscreen. Otherwise, screen 0100 is used. It is important that the screens for program SAPLXQQM are defined.

Page 66: PM.CS UserExits and BAPIs.pdf

Functional Module: This user exit allows you to display a subscreen on the task detail screen (SAPLIQS0 4010 and 4100). You can maintain your own fields for the task on this subscreen. An area of three lines is reserved on the screen SAPLIQS0 4010 or 4100. The screen must be of the "subscreen" type. You can use the structures VIQMEL, VIQMFE and VIQMSM to output your own fields. The transferred structures are saved in the global structures VIQMEL, VIQMFE and VIQMSM. Before you leave the user exit, structure VIQMSM must be transferred back to the export structure E_VIQMSM. This ensures that the unchanged fields are transferred back completely and that inconsistencies in the database are avoided. You can determine the transaction type from which the function is called on the basis of import parameter I_AKTYP:

A - Display

V - Change

H - Create Screen This customer enhancement allows you to display a subscreen from within the task detail screen. On this subscreen, you can maintain your own fields for the item. On screens SAPLIQS0 4010 and 4100 there is a section of three lines reserved for this purpose. The screen must be of the "subscreen" type. Using the Customizing function, you can control which screen is to be called for the SAPLXQQM program. You can also display different subscreens for different notification types. It is important to create screen 0100 as an empty subscreen with three lines. The screen 0100 is then always used, if no specific screen is noted in Customizing. As a result, the customer enhancement is not active for all notification types, but only for those notification types, for which you have defined a screen number in Customizing. The screens SAPLIQS0 4010 and 4100 are used for maintenance, service and quality notifications. If you do not define screen 0100, the notification function is terminated for those notification types that have no screen number defined in Customizing. If you define screen 0100, but enter fields instead of using it as an empty subscreen, the subscreen appears with the fields on the item detail screen, when you use one of the three notifications mentioned above. You can use screens 0410-0415, 0420-0425 and 0430-0435 in the normal way. Recommendation Notification types for maintenance notifications: Screens 0410-0415 Notification types for quality notifications: Screens 0420-0425 Notification types for service notifications: Screens 0430-0435

Page 67: PM.CS UserExits and BAPIs.pdf

QQMA0012 Function exits: EXIT_SAPMIWO0_017 EXIT_SAPMIWO0_018 Screen areas: SAPLIQS05010_USER0005_SAPLXQQM0100 SAPLIQS05010_USER0005_SAPLXQQM0510 SAPLIQS05010_USER0005_SAPLXQQM0511 SAPLIQS05010_USER0005_SAPLXQQM0512 SAPLIQS05010_USER0005_SAPLXQQM0513 SAPLIQS05010_USER0005_SAPLXQQM0514 SAPLIQS05010_USER0005_SAPLXQQM0515 SAPLIQS05010_USER0005_SAPLXQQM0520 SAPLIQS05010_USER0005_SAPLXQQM0521 SAPLIQS05010_USER0005_SAPLXQQM0522 SAPLIQS05010_USER0005_SAPLXQQM0523 SAPLIQS05010_USER0005_SAPLXQQM0524 SAPLIQS05010_USER0005_SAPLXQQM0525 SAPLIQS05010_USER0005_SAPLXQQM0530 SAPLIQS05010_USER0005_SAPLXQQM0531 SAPLIQS05010_USER0005_SAPLXQQM0532 SAPLIQS05010_USER0005_SAPLXQQM0533 SAPLIQS05010_USER0005_SAPLXQQM0534 SAPLIQS05010_USER0005_SAPLXQQM0535

QM/PM/SM: User Subscreen for Additional Data on Activity Customer Exit: Transfer Activity to User Screen Customer Exit: Transfer Activity from User Screen Subscreen w/o fields (default) Subscreen w/o fields (default) Subscreen w/o fields (default) Subscreen w/o fields (default) Subscreen w/o fields (default) Subscreen w/o fields (default) Subscreen w/o fields (default) Subscreen w/o fields (default) Subscreen w/o fields (default) Subscreen w/o fields (default) Subscreen w/o fields (default) Subscreen w/o fields (default) Subscreen w/o fields (default) Subscreen w/o fields (default) Subscreen w/o fields (default) Subscreen w/o fields (default) Subscreen w/o fields (default) Subscreen w/o fields (default) Subscreen w/o fields (default)

With this customer enhancement, you can include additional data on the activity detail screen (SAPLIQS0 5010). For this purpose, the notification header data, item data and activity data are transferred to the function group via the user exit. You can then include this data on the customer-specific subscreen. It is possible to change the data. Make sure the structure VIQMMA is transferred to the export structure E_VIQMMA before you leave the user exit. Only then are the unchanged fields transferred back properly. Note: If field TQ80-USERSCR5 (maintained in Customizing) contains a screen number, this screen is called up as a subscreen. Otherwise, screen 0100 is used. It is important that the screens for program SAPLXQQM are defined. Function Module: This user exit allows you to display a subscreen on the activity detail screen (SAPMIWO0 5010). You can maintain your own fields for the activity on this subscreen. An area of three lines is reserved on the screen SAPMIWO0 5010. The screen must be of the "subscreen" type. You can use the structures VIQMEL, VIQMFE and VIQMMA to output your own fields. The transferred structures are saved in the global structures VIQMEL, VIQMFE and VIQMMA. Before you leave the user exit, structure VIQMMA must be transferred back to the export structure E_VIQMMA. This ensures that the unchanged fields are transferred back completely and that inconsistencies in the database are avoided. You can determine the transaction type from which the function is called on the basis of import parameter I_AKTYP:

A - Display

V - Change

H - Create Screen: This customer enhancement allows you to display a subscreen from within the activity detail screen item detail screen. On this subscreen, you can maintain your own fields for the item. On screen SAPLIQS0 5010 there is a section of three lines reserved for this purpose. The screen must be of the "subscreen" type. Using the Customizing function, you can control which screen is to be called for the SAPLXQQM program. You can also display different subscreens for different notification types. It is important to create screen 0100 as an empty subscreen with three lines. The screen 0100 is then always used, if no specific screen is noted in Customizing. As a result, the customer enhancement is not active for all notification types, but only for those notification types, for which you have defined a screen number in Customizing. The screen SAPLIQS0 5010 is used for maintenance, service and quality notifications. If you do not define screen 0100, the notification function is terminated for those notification types that have no screen number defined in Customizing.

Page 68: PM.CS UserExits and BAPIs.pdf

If you define screen 0100, but enter fields instead of using it as an empty subscreen, the subscreen appears with the fields on the item detail screen, when you use one of the three notifications mentioned above. You can use screens 0510-0515, 0520-0525 and 0530-0535 in the normal way. Recommendation Notification types for maintenance notifications: Screens 0510-0415 Notification types for quality notifications: Screens 0520-0525 Notification types for service notifications: Screens 0530-0535

QQMA0013 Function exits: EXIT_SAPMIWO0_019

QM: Default Values when Creating a Task Default Values When Creating a Task

This user exit allows you to enter default values when you create a task. The system calls up this user exit at one of the following times:

after you have entered the task

after you have selected the function for the automatic determination of tasks Note: Before you leave the function module exit, you must transfer the task record (I_VIQMSM) back to the export parameter (E_VIQMSM). In this way, the fields that you did not change will be transferred back completely and an inconsistency in the data will be avoided.

QQMA0014 Function exits: EXIT_SAPMIWO0_020

QM/PM/SM: Checks before saving a notification Customer Exit: Checks before Saving Notification

When saving notifications, this customer enhancement allows you to carry out inspections and to supplement missing values. Whenever you call the F11 save function in the notification transaction, a subroutine is run. The enhancement is called up from this subroutine. The call up takes place after the mandatory partner check and before the number assignment, the update of the logistics information system, and the start of subsequent functions for tasks. Example: Example coding is stored in Include LXQQMF20.

QQMA0015 Function exits: EXIT_SAPLIQS0_002

QM/PM/SM: User-Exit before Call-Up of F4 Help on Catalogs User Exit for Influencing the F4 Help for Catalogs

You can use this customer enhancement to adapt the F4-Help function for the catalog. You call up the enhancement before the F4-Help function module for the catalog.

Parameters I_RIWO02 and T_RIWO020TAB: Bring up the catalog profile.

Parameter I_EBENE: States the notification object, for which the F4-Help was called.

Parameter I_INDEX: Contains the index for the relevant table.

Return parameter E_CODEGRUPPE: You can enter the code group that is to be displayed in the F4-Help If you make a generic entry, all code groups are shown in the F4-Help that correspond to this generic entry. You cannot make an entry of several specifically-named code groups.

Page 69: PM.CS UserExits and BAPIs.pdf

QQMA0016 Menu entries: SAPLICUA+U10 SAPLICUA+U11 SAPLICUA+U12 SAPLICUA+U13 SAPLICUA+US3 SAPLICUA+US4 SAPLQM00+U10 SAPLQM00+U11 SAPLQM00+U12 SAPLQM00+U13 SAPLQM00+US3 SAPLQM00+US4 SAPMIWO0+U10 SAPMIWO0+U11 SAPMIWO0+U12 SAPMIWO0+U13 SAPMIWO0+US3 SAPMIWO0+US4 Function exits: EXIT_SAPLIQS0_003 EXIT_SAPLIQS0_008

QM/PM/SM: "User data" Function "Goto" > "Task" Menu Function Code "+US3/4" in Menu "Goto/Task" in Notification Processing Supply Function Codes with Text/ Deactivate Codes: "Goto/Task"

You can use this customer enhancement to activate your own function code for the processing and display transactions of the notifications, (service, maintenance and quality notifications). You can use these codes, for example, to call a customer-specific view for the task. These function codes are in the menu under Goto -> Tasks Goto -> Item -> Task. EXIT_SAPLIQS0_003 You can use this customer enhancement to activate your own function code for the processing or display transactions of the notifications: Service, Maintenance and Quality notifications. You can use these function codes, for example, to call a customer-specific view for a task. The function codes are in the menu under Goto -> Task or Goto -> Item -> Task. Structure Import parameter I_AKTYP: This parameter displays the transaction type from which the function is called.

A Display

V Change

H Create Return parameter E_FCODE: You use this parameter to control whether or not the data is to be copied.

0001 - Continue/Close: The system copies data for the current task and closes the dialog box.

0002-Next task selected: The system copies data for the current task and makes the data available for the next task that has been selected.

0003- Cancel: No data is copied

Other- Cancel: No data is copied Note: Before exiting the customer enhancement, you must enter the task record that has been specified (I_VIQMSM) in the return parameter (E_VIQMSM). This is the only way to ensure that the fields you have not changed are correctly transferred back and that inconsistency of data is avoided. EXIT_SAPLIQS0_008 You use this function module to dynamically determine the function code text for this customer enhancement. In addition, you can deactivate the function codes that are not being used. Structure Import parameter I_AKTYP: This parameter displays the transaction type from which the function is called.

A Display

V Change

H Create Import parameter I_TQ80: This parameter displays the application.

I_TQ80-QMTYP = 01 Plant Maintenance

I_TQ80-QMTYP = 02 Quality Management

Page 70: PM.CS UserExits and BAPIs.pdf

I_TQ80-QMTYP = 03 Service Management Return parameter E_US3_INACTIVE - E_U13_INACTIVE You use this parameter to control the activation or deactivation of the function code in the menu.

"X" Function code deactivated in the menu

" " Function code active in the menu Return parameter E_US3_TEXT - E_U13_TEXT You use this parameter to define the text that forms the name of the function in the menu. If you do not enter texts, the function codes "+US3", "+US4", "+U10", “+U11", "+U12" and "+U13" appear under the text "Customer data for tasks". Note: The function code text can only be defined using this function module. Even if you enter a text using the "Edit component” function, the system always displays the text that was given in the relevant return parameter in the function module. The creation of the function code text using the "Edit component" function has no effect. Function Code: You can use this function code to call a customer-specific view for the item at task level. The function code is in the menu under Goto -> Item -> Task. Note: You can only freely define the text for the function code using the function module "EXIT_SAPLIQS0_008". If you do not enter your own text in this function module, the text "Customer data for the task" is displayed. In addition, you can use the function module "EXIT_SAPLIQS0_008” to deactivate the function code.

Page 71: PM.CS UserExits and BAPIs.pdf

QQMA0017 Menu entries: SAPLICUA+U14 SAPLICUA+U15 SAPLICUA+U16 SAPLICUA+U17 SAPLICUA+US5 SAPLICUA+US6 SAPLQM00+U14 SAPLQM00+U15 SAPLQM00+U16 SAPLQM00+U17 SAPLQM00+US5 SAPLQM00+US6 SAPMIWO0+U14 SAPMIWO0+U15 SAPMIWO0+U16 SAPMIWO0+U17 SAPMIWO0+US5 SAPMIWO0+US6 Function exits: EXIT_SAPLIQS0_004 EXIT_SAPLIQS0_009

QM/PM/SM: "User data" Function "Goto" > "Activity" Menu Function Code "+US5/6" in Menu "Goto/Activities" in Notification Processing Supply Function Codes/ Deactivate Codes: "Goto/Activity"

You can use this customer enhancement to activate your own function code for the processing and display transactions of the Notifications: Service, Maintenance and Quality notifications. You can use these function codes, for example, to call a customer-specific screen for the activity. The function codes are in the menu under Goto -> Activity or Goto -> Item -> Activity. EXIT_SAPLIQS0_004 You can use this customer enhancement to activate your own function code for the processing or display transactions of the notifications: Service, Maintenance and Quality notifications You can use these codes, for example, to call a customer-specific screen for an activity. The function codes are included in the menu under Goto -> Activity or Goto -> Item -> Activity. Structure Import parameter I_AKTYP: This parameter displays the transaction type, from which the function is called.

A Display

V Change

H Create Return parameter E_FCODE You use these parameters to control whether the data is to be copied or not.

0001-Continue/Close: The system copies data for the current activity and closes the dialog box.

0002-Next activity selected: The system copies data for the current activity and makes it available for the next activity that has been selected.

0003-Cancel: No data is copied

Other-Cancel: No data is copied Note: Before exiting the customer enhancement, you must enter the activity record that has been specified (I_VIQMMA) in the return parameter (E_VIQMMA). This is the only way to ensure that the fields you have not changed are correctly transferred back and that inconsistency of data is avoided. EXIT_SAPLIQS0_009 You use this function module to dynamically determine the function code text for this customer enhancement. In addition, you can deactivate the function codes that are not being used. Structure Import parameter I_TQ80: This parameter displays the application.

I_TQ80-QMTYP = 01 Plant Maintenance

I_TQ80-QMTYP = 02 Quality Management

I_TQ80-QMTYP = 03 Service Management

Page 72: PM.CS UserExits and BAPIs.pdf

Return parameter E_US5_INACTIVE - E_U17_INACTIVE You use this parameter to control the activation or deactivation of the function code in the menu.

"X" Function code deactivated in the menu

" " Function code active in the menu Return parameter E_US5_TEXT - E_U17_TEXT You use this parameter to define the text that forms the name of the function in the menu. If you do not enter texts, the function codes "+US5", "+US6", "+U14", "+U15", "+U16" und "+U17" appear under the text "Customer data for activities". Note: The function code text can only be defined using this function module. Even if you enter a text using the "Edit component” function, the system always displays the text that was given in the relevant return parameter in the function module. The creation of the function code text using the "Edit component" function has no effect. Function Code: You can use this function code to call up a customer-specific view for the notification at activity level. The function code is in the menu under Goto -> Activity. Note: You can only freely define the text for the function code using the function module "EXIT_SAPLIQS0_009". If you do not enter your own text in this function module, the text "Customer data for the activity" is displayed. In addition, you can use the function module "EXIT_SAPLIQS0_009" to deactivate the function code.

QQMA0018 Function exits: EXIT_SAPLIQS0_005

QM/PM/SM: Deadline setting based on entered priority Determining Processing Deadlines According to Priority

You can use this customer enhancement to retrospectively change the processing deadlines that the system has determined using the Customizing settings for the priority.

QQMA0019 Function exits: EXIT_SAPLIQS0_006

QM/PM/SM: Default Partner when Creating a Notification Default Partner When Adding A Notification

You can use this customer enhancement to enter default values for the partner function, when creating one of following notifications:

Maintenance notification

Quality notification

Service notification Time of call: From the initial screen

Quality notifications: Program SAPLIQS0, screen 0200; after the initial screen has been called (if one is called)

Maintenance and service notifications: Program SAPLIQS0, screen 0100;

Page 73: PM.CS UserExits and BAPIs.pdf

QQMA0020 Function exits: EXIT_SAPLIQS0_007

QM: Determining BOM Usage at BOM explosion Determination of BOM application for BOM Explosion

You can use this customer enhancement to influence the result of the BOM explosion function on the item detail screen. The following parameters have the following effects:

Parameter E_GRAF: Controls the representation

Parameter E_LEVDO: Determines the representation depth

Parameter E_CAPID: The BOM application stored in this parameter represents a procedure for automatic alternative determination.

In the standard system, the entry in table TQSS is copied as the BOM application. A production or process order must be entered in the notification, so that the BOM application is copied according to the Customizing settings for the order type and for the plant.

QQMA0021 Menu entries: SAPLICUA+U01 SAPLICUA+U02 SAPLICUA+U03 SAPLQM00+U01 SAPLQM00+U02 SAPLQM00+U03 SAPMIWO0+U01 SAPMIWO0+U02 SAPMIWO0+U03 Function exits: EXIT_SAPLIQS0_010 EXIT_SAPLIQS0_011

QM/PM/SM: Function "User data" in "Goto" menu Function Codes in Menu "Goto/Notification" in Notification Processing Supply Function Codes with Text/ Deactivate Codes: "Goto/Notification"

You use this customer enhancement to activate your own function codes for the notification processing and display transactions, that is:

Service notifications

Maintenance notifications

Quality notifications You can use these function codes, for example, to call up a customer-specific view. The function codes are included in the menu under Goto -> Notification Function Module: This user exit allows you to display a subscreen on the item detail screen (SAPLIQS0 3030). You can maintain your own fields for the item on this screen. An area of three lines is reserved in the screen SAPLIQS0 3030. The screen must be of the "subscreen" type. The structures VIQMEL and VIQMFE are available for purposes of displaying your own fields. The transferred structures are saved in the global structures VIQMEL and VIQMFE. Before you leave the user exit, the structure VIQMFE must be transferred back to the export structure E_VIQMFE. As a result, the fields that you have not changed are transferred back completely, and inconsistencies in the database are avoided. On the basis of import parameter I_AKTYP, you can determine the transaction type from which the function is called up:

A - Display

V - Change

H – Create EXIT_SAPLIQS0_011 You can use this customer enhancement to activate your own function code for the processing or display transactions of the quality notifications. You can use these function codes, for example, to call a customer-specific view. The function codes are included in the menu Goto -> Notification Structure Import parameter I_AKTYP: This parameter displays the transaction type, from which the function is called.

A Display

V Change

H Create

Page 74: PM.CS UserExits and BAPIs.pdf

Return parameter E_FCODE You use these parameters to control whether the data is to be copied or not.

0001-Continue/Close: Data is copied

0002-Cancel: No data is copied

Other-Cancel: No data is copied Note: Before exiting the customer enhancement, you must enter the notification record that has been specified (I_VIQMEL) in the return parameter (E_VIQMEL). This is the only way to ensure that the fields you have not changed are correctly transferred back and that inconsistency of data is avoided. EXIT_SAPLIQS0_011 You use this function module to dynamically determine the function code text for this customer enhancement. In addition, you can deactivate the function codes that are not being used. Structure Import parameter I_AKTYP: This parameter displays the transaction type from which the function is called.

A Display

V Change

H Create Import parameter I_TQ80: This parameter displays the application.

I_TQ80-QMTYP = 01 Plant Maintenance

I_TQ80-QMTYP = 02 Quality Management

I_TQ80-QMTYP = 03 Service Management Return parameter E_U01_INACTIVE - E_U03_INACTIVE: You use this parameter to control the activation or deactivation of the function code in the menu.

"X" Function code deactivated in the menu

" " Function code active in the menu Return parameter E_U01_TEXT - E_U03_TEXT: You use this parameter to define the text that forms the name of the function in the menu. If you do not enter texts, the function codes "+U01", "+U02" and "+U03" appear under the text "Customer data for notifications". Note: The function code text can only be defined using this function module. Even if you enter a text using the "Edit component" function, the system always displays the text that was given in the relevant return parameter in the function module. The creation of the function code text using the "Edit component" function has no effect. Function code: You can use this function code, for example, to call a customer-specific view. The code is in the menu under Goto. Note: You can only freely define the text for the function code using the function module "EXIT_SAPLIQS0_011". If you do not enter your own text in this function module, the text "Customer data for the notification" is displayed. In addition, you can use the function module "EXIT_SAPLIQS0_011" to deactivate the function code.

Page 75: PM.CS UserExits and BAPIs.pdf

QQMA0022 Menu entries: SAPLICUA+U18 SAPLICUA+U19 SAPLICUA+U20 SAPLQM00+U18 SAPLQM00+U19 SAPLQM00+U20 SAPMIWO0+U18 SAPMIWO0+U19 SAPMIWO0+U20 Function exits: EXIT_SAPLIQS0_012 EXIT_SAPLIQS0_013

QM/PM/SM: "User data" function in "Goto -> Causes" menu Function Codes in "Goto/Cause" Menu in Notification Processing Supply Function Codes with Text/ Deactivate Codes: "Goto/Cause"

You use this customer enhancement to activate your own function codes for the notification processing and display transactions, that is:

Service notifications

Maintenance notifications

Quality notifications You can use these function codes, for example, to call up a customer-specific view for the cause. The function codes are included in the menu under Goto -> Item -> Causes. EXIT_SAPLIQS0_012 You can use this customer enhancement to activate your own function code for the processing or display transactions of the notifications:

Service notifications

Maintenance notifications

Quality notifications You can use these function codes, for example, to call a customer-specific view for a cause. The function codes are in the menu under Goto -> Item -> Cause. Structure Import parameter I_AKTYP: This parameter displays the transaction type from which the function is called.

A Display

V Change

H Create Return parameter E_FCODE: You use this parameter to control whether or not the data is to be copied.

0001-Continue/Close: The system copies data for the current cause and closes the dialog box.

0002-Next task selected: The system copies data for the current cause makes this data available for the next cause that has been selected.

0003-Cancel: No data is copied

Other-Cancel: No data is copied Note: Before exiting the customer enhancement, you must enter the cause record that has been specified (I_VIQMUR) in the return parameter (E_VIQMUR). This is the only way to ensure that the fields you have not changed are correctly transferred back and that inconsistency of data is avoided. EXIT_SAPLIQS0_013 You use this function module to dynamically determine the function code text for this customer enhancement. In addition, you can deactivate the function codes that are not being used. Structure: Import parameter I_TQ80: This parameter displays the application.

I_TQ80-QMTYP = 01 Plant Maintenance

I_TQ80-QMTYP = 02 Quality Management

I_TQ80-QMTYP = 03 Service Management

Page 76: PM.CS UserExits and BAPIs.pdf

Return parameter E_U18_INACTIVE - E_U20_INACTIVE: You use this parameter to control the activation or deactivation of the function code in the menu.

"X" Function code deactivated in the menu

" " Function code active in the menu Return parameter E_U18_TEXT - E_U20_TEXT: You use this parameter to define the text that forms the name of the function in the menu. If you do not enter texts, the function codes "+U18", "+U19" and "+U20" appear under the text "Customer data for cause" Note: The function code text can only be defined using this function module. Even if you enter a text using the "Edit component” function, the system always displays the text that was given in the relevant return parameter in the function module. The creation of the function code text using the "Edit component" function has no effect. Function code: You can use this function code, for example, to call a customer-specific view at cause level in the notification. The function code is in the menu under Goto -> Item -> Causes. Note: You can only freely define the text for the function code using the function module "EXIT_SAPLIQS0_013". If you do not enter your own text in this function module, the text "Customer data for the cause" is displayed. In addition, you can use the function module "EXIT_SAPLIQS0_013" to deactivate the function code.

QQMA0023 Menu entries: SAPLICUA+U21 SAPLICUA+U22 SAPLICUA+U23 SAPLQM00+U21 SAPLQM00+U22 SAPLQM00+U23 SAPMIWO0+U21 SAPMIWO0+U22 SAPMIWO0+U23 Function exits: EXIT_SAPLIQS0_014 EXIT_SAPLIQS0_015

QM/PM/SM: "User data" function in "Goto -> Item" menu Function Codes in Menu "Goto/Item" in Notification Processing Supply Function Codes with Text/Deactivate Codes: "Goto/Item"

You use this customer enhancement to activate your own function codes for the notification processing and display transactions, that is:

Service notifications

Maintenance notifications

Quality notifications You can use these function codes, for example, to call up a customer-specific view for the item. The function codes are included in the menu under Goto -> Item EXIT_SAPLIQS0_014 You can use this customer enhancement to activate your own function code for the processing or display transactions of the notifications:

Service notifications

Maintenance notifications

Quality notifications You can use these function codes, for example, to call a customer-specific view for the item. The function codes are in the menu under Goto -> Item. Structure Import parameter I_AKTYP: This parameter displays the transaction type from which the function is called.

A Display

V Change

H Create Return parameter E_FCODE: You use this parameter to control whether or not the data is to be copied.

Page 77: PM.CS UserExits and BAPIs.pdf

0001-Continue/Close: The system copies data for the current item and closes the dialog box.

0002-Next item selected: The system copies data for the current item and makes the data available for the next item that has been selected.

0003-Cancel: No data is copied

Other-Cancel: No data is copied Note: Before exiting the customer enhancement, you must enter the item record that has been specified (I_VIQMFE) in the return parameter (E_VIQMFE). This is the only way to ensure that the fields you have not changed are correctly transferred back and that inconsistency of data is avoided. EXIT_SAPLIQS0_015 You use this function module to dynamically determine the function code text for this customer enhancement. In addition, you can deactivate the function codes that are not being used. Structure Import parameter I_TQ80: This parameter displays the application.

I_TQ80-QMTYP = 01 Plant Maintenance

I_TQ80-QMTYP = 02 Quality Management

I_TQ80-QMTYP = 03 Service Management Return parameter E_U21_INACTIVE - E_U23_INACTIVE: You use this parameter to control the activation or deactivation of the function code in the menu.

"X" Function code deactivated in the menu

" " Function code active in the menu Return parameter E_U21_TEXT - E_U23_TEXT: You use this parameter to define the text that forms the name of the function in the menu. If you do not enter texts, the function codes "+U21", "+U22" and "+U23" appear under the text "Customer data for the item". Note: The function code text can only be defined using this function module. Even if you enter a text using the "Edit component" function, the system always displays the text that was given in the relevant return parameter in the function module. The creation of the function code text using the "Edit component" function has no effect. Function code You can use this function code, for example, to call a customer-specific view at item level in the notification. The function code is in the menu under Goto -> Item. Note: You can only freely define the text for the function code using the function module "EXIT_SAPLIQS0_015". If you do not enter your own text in this function module, the text "Customer data for the item” is displayed. In addition, you can use the function module "EXIT_SAPLIQS0_015" to deactivate the function code .

Page 78: PM.CS UserExits and BAPIs.pdf

QQMA0024 Function exits: EXIT_SAPLIQS0_016

QM/PM/SM Deactivate function codes in CUA menu Function Module for Deactivating Notification Function Codes

You use this customer enhancement to deactivate function codes in the menu for the notification, that is:

Service notifications

Maintenance notifications

Quality notifications Structure Import parameter I_TQ80: This parameter contains the Customizing settings for the current notification type. Import parameter I_AKTYP: This parameter displays the transaction type from which the function is called.

A Display

V Change

H Create Import parameter I_VIQMEL: This parameter contains data for the current notification. Table T_EX_FCODE This table contains all function codes that should not be active during notification processing. You must include the function codes in this table that you want to deactivate using this customer enhancement. When the enhancement is called, this table contains all the function codes that were identified as to be deactivated. Do not delete any of these entries, since inconsistent system statuses can then occur.

QQMA0025 Function exits: EXIT_SAPLIQS0_017

PM/SM: Default values when adding a notification Default Values when Adding PM/CS Notification

With this customer exit you can set default values when creating a maintenance notification or service notification. Time of the call:

On the initial screen (program SAPLIQS0, screen 0100) when creating a notification in the foreground.

After the notification is initialized, if this notification was not created in the foreground. Note: If you want to attach your own fields to the view VIQMEL, you must include it as an APPEND structure in the table QMEL. The additional fields are then copied automatically into the VIQMEL view. Caution: Before you exit the function module for the customer exit, you must enter the transferred notification header record (I_VIQMEL) in the return parameter (E_VIQMEL). This allows the fields that you have not changed to be returned completely and avoids data inconsistency.

QQMA0026 Function exits: EXIT_SAPLIBER_001

PM/SM: Auth. check when accessing notification transaction Customer Exit: Authorization Check for Notification Transactions

You can use this customer enhancement to perform an individual authorization check when a quality notification is accessed. This customer enhancement is called up after the SAP standard inspection for authorization object Q_QMEL. The following tables are available in the function exit for user-defined authorization checks:

VIQMEL - Notification header record

TQ80 - Notification type

Page 79: PM.CS UserExits and BAPIs.pdf

QQMA0027 Function exits: EXIT_SAPMIWO0_021

PM/SM: Default values when adding a task Default Values When Creating a Task

This customer exit enables you to set default values when adding a task. The customer exit is called in one of the following situations:

After you have entered the task

After you have executed the function for task determination Notes: Before you leave the function module exit, you must give the transferred task record (I_VIQMSM) to the return parameter (E_VIQMSM). This is the only way to ensure that the fields that you have not changed are returned completely, thus avoiding data inconsistencies.

QQMA0028 Function exits: EXIT_SAPLCORU_S_001

QM: Create notification from confirmation of production order QM: Create Notification from Confirmation of Production Order

You can create quality notifications when you make confirmations for a production order. You can use this customer enhancement to load additional information which can be transferred to the quality notification that you want to create.

QQMA0029 Function exits: EXIT_SAPLIQS0_018 EXIT_SAPLIQS0_019

QM/PM/SM: Change Notification Type Check Whether a Change of Notification Type is Allowed

No documentation in English at present.

IMSMCOMM Function exits: EXIT_SAPLI_MSM_COMM_001

MSM communication enhancement Determination of Communication Text

IMSMCOMM gives you the chance to implement your own way of finding a text that is sent out via the paging functionality from >=45 to a radio device. When you press the paging button in order / notification then

(1) we try to find a standard text from customizing (2) substitute the text symbols from (1) like &caufvd-aufnr& by the "real" value (3) send the text from (2) to the user exit (4) present the text from (3) on the paging screen (5) give the text form (4) again to the user exit (there are two events documented) (6) save and send out the text from (5) via sap-connect.

INTERFAC Menu entries: RM11RL00+DWN RM11RL00+UPL Function exits: EXIT_RM11RL00_001 EXIT_RM11RL00_002

Interface for data transfer External system External system User Exits: Export Data User Exit: Adopt Data

No documentation in English at present.

Page 80: PM.CS UserExits and BAPIs.pdf

MCI10001 Function exits: EXIT_SAPLMCI1_001

MCI1: PMIS/QMIS updating PMIS/QMIS User Exit: Update

The user exit EXIT_SAPLMCI1_001 is called while updating data to the PM and QM information systems. The following data is made available:

I_CONTROL-VRSIO: Update version

I_STAFO : Update group

I_ZEITP : Update event

I_MCIPMB : Update data for hierarchy 'A'

I_MCIQFB : Update data for hierarchy 'B'

I_MCINF : Info structures that are updated for the statistical setup. The fields I_MCIPMB-SUPKZ and I_MCIQFB-SUPKZ flag the records in the tables as “Before Image" with the value 1 and "After Image" with the value 2. "Before Image" reflects the status of the record in the database and "After Image" reflects the status of the record in the current processing.

Page 81: PM.CS UserExits and BAPIs.pdf

MCR00001 Function exits: EXIT_RMCREPAU_001

LIS: Authorization check for standard analyses LIS: Authorization Check for Characteristics (Standard Analyses)

Function exit for the authorization check in the LIS standard analyses Before the standard analysis is carried out, an authorization check is made on certain characteristics of an information structure. This check is based on the authorization objects in the standard R/3 system. In addition, you can use the enhancement MCR00001 to perform a user-defined authorization check. The function exit has the following parameters: Import parameters

I_MCINF: Info structure designed to identify the respective analysis

I_DOMNAME: Domain for the corresponding selection criterion

I_ROLLNAME: Data element for the corresponding selection criterion Changing parameter

C_END_CHECK: Flag which helps you to control whether the standard authorization check should be carried out via the SAP authorization objects in addition to the authorization check using the enhancement MCR00001. This parameter is only relevant in those cases where the characteristics have a standard authorization object. The parameter has the value ' ' when called up. If you set the parameter to 'X' in the enhancement, there will be no further authorization check in the standard analysis for the current characteristic.

Table parameters T_SEL_OPTION: Table with the restrictions for a characteristic. When you call up the enhancement, the table will contain the restrictions that the user specified in the selection screen in the selection criterion for the corresponding characteristic. Example: Selection criterion for plant (name 'SL_0001'). The user wants to select the plants '0001' to '0003' and also plant '0005'. In this case, the table contains the following entries:

SELNAME KIND SIGN OPTION HIGH LOW

SL_0001 S I BT 0001 0003

SL_0001 S I EQ 0005 These entries in the table allow the authorization check to take place in the enhancement MCR00001. This means that the characteristic values for which the user has no authorization must be attached to the table by filling the field SIGN with the value 'E' (for Exclude). Example: The user does not have any authorization for the plant '0002'. When leaving the enhancement, the table must contain the following:

SELNAME KIND SIGN OPTION HIGH LOW

SL_0001 S I BT 0001 0003

SL_0001 S I EQ 0005

SL_0001 S E EQ 0002 new line The program will consequently issue the message: "Authorization check: Selection '&3' was restricted". Changes in the procedure The system will no longer automatically perform those authorization checks that could be carried out before Release 3.0C using the report ZMCREAPU. You can now integrate such a check in the enhancement (refer to the sample coding).

MCR00002 Function exits: EXIT_SAPLMCS2_001

Standard analyses: Key figure display Change Key Figure Texts in Standard Analyses

SAP enhancement: MCR00002, function exit: EXIT_SAPLMCS2_001 Changing key figure texts in standard analyses Description: This SAP enhancement enables you to do the following in the standard analysis of the Logistics Information System: Define the preset key figures depending on the drill-down level.

Page 82: PM.CS UserExits and BAPIs.pdf

Change the text (= column heading) for individual key figures. The standard analysis usually gets the heading for a key figure from the Data Dictionary. (The system reads a text (= field label) which is assigned to the respective data element in the Dictionary). The above SAP enhancement allows you to make your own column headings which differ from data element field labels of the respective key figure. Key figure headings can also consist of two lines. This function exit enables you to create and change the second line of a heading. Display key figure texts that are dependent on the characteristic value, when using the function "All key figures... (display)". Example If you call up this function for material 1, you can, for instance, display the text "quantity of sulphur ordered" instead of the key figure text "order quantity", while in the same place "quantity of chlorine ordered" appears for material 2. The system always calls up the function exit before it displays a list (initial or drill-down list). This means that you can change the preset key figures from list to list. You can therefore configure the key figure view according to the drill-down level. Example At vendor level (= initial list) the key figures A, B and C are displayed. If the user wants to display all materials for a specific vendor (drill down according to material), then he/she can use this function exit to preset the key figures D and E for the drill-down list. The changes made by the function exit remain in effect for all subsequent drill-down lists, i.e. for all subordinate lists in the drill-down hierarchy, until the key figure setting is changed again by the function exit. In the above example, this means that the system will still continue to display the key figures D and E if you drill down on a material according to period and the function exit does not change the key figure setting again before displaying the period list. Input parameters: T_AUS_S000: Contains the data prepared for the screen output of an initial or drill-down list. T_DRILLDOWN: Current drill-down level. In the field T_DRILLDOWN-DDICFELD: the header line of this table contains the name of the characteristic according to which the drill down is performed for the list contained in table T_AUS_S000. (Example: if the field name MATNR is in the DDICFELD, then in the case of the list which is displayed after calling up the function exit, the user is given a material overview.) DDICFELD is a field in the info structure on which the standard analysis is based. Alternatively, you can also request the field T_DRILLDOWN-ROLLNAME in order to determine the current drill-down level. T_DRILLDOWN-ROLLNAME contains the Dictionary data element of the characteristic according to which the drill-down is performed on the list contained in table T_AUS_S000. T_KEY_FIGURES: Preset key figures. MCINF: Name of the info structure that contains the key figures. FLG_ALL_FIGURES: This import parameter contains the value 'X if the function exit is called up before the popup which displays all key figures appears. If an initial or drill-down list is called up then this parameter is reset (i.e. contains a space). OBJECT: Name of the characteristic value (e.g. material or vendor number), for which the user has called up the function "All key figures ... display" (FLG_ALL_FIGURES = X'). Export parameter T_KEY_FIGURES: Key figures preset for the next list. Procedure: Show/hide key figures: You can show and/or hide key figures by either inserting or deleting the line belonging to the key figure in the table T_KEY_FIGURES. If you insert a line in table T_KEY_FIGURES, you only need to fill the fields TABNAME and FIELDNAME. The remaining fields of the tables T_KEY_FIGURES are filled automatically by the standard analysis. TABNAME contains the name of the info structure from which the info structure with the table field name FIELDNAME originates. Change key figure texts (headings): You can find key figure texts in the following four fields of the table T_KEY_FIGURES (the following notation applies to the number of characters permitted): (x) = maximum length [x] = recommended length (in bytes).

Page 83: PM.CS UserExits and BAPIs.pdf

SCRTEXT_S = short key word (10) [10] SCRTEXT_M = medium key word (20) [15] SCRTEXT_L = Long key word (40) [20] REPTEXT = program heading (55) [output length of the key figure] When overwriting these four data fields, please observe that the length of the shortest text affects the column width in which the respective key figure is displayed during the standard analysis. This column width is determined as follows: An output length is assigned to each key figure in the ABAP/4 Dictionary. If you select (in the standard analysis via the menu sequence: "Settings -> Column width -> Key figures") a column width that is longer than the output length of a key figure, the system ignores your entry and displays the key figure in its output length. If the shortest key figure text is longer than the output length, then the system uses the length of the shortest key figure text for the column width. If all four key figure texts in the function exit are NOT filled, then the standard analysis fills the empty text fields in accordance with the following logic: If at least one text field has been filled, the standard analysis copies one of these texts into the empty text fields. If no text has been defined in the function exit at all, the standard analysis takes the key figure texts from the Data Dictionary. The field HEADLINE_2 is used to control the second line of the key figure heading. If you require a second line, then you need to fill this field accordingly. Additional information / tips: For certain purposes it might be necessary to access the table T_AUS_S000. For instance, you might want to read the characteristic texts, in order to find out which key figure texts need to be defined. Table T_AUS_S000 is made up of two parts. The first part is independent of the information structure and is therefore always identical. The fields in this part are defined in the structure AUSTAB_GLOBAL (see program RMCS0TP1). The second part of T_AUS_S000 contains the key figure fields. The structure of this part is therefore dependent on the info structure. In order to access the fields in table T_AUS_S000, you therefore need to define a structure in the function exit, which agrees with the structure of table T_AUS_S000. You can find out the structure of this table in the respective main program. You can find out the name of the main program by displaying the status during the standard analysis in question (menu path: System -> Status). To access the data in table T_AUS_S000, you need to ensure that the lines of T_AUS_S000 that you require are read and then moved to the structure defined in the function exit.

Page 84: PM.CS UserExits and BAPIs.pdf

RMCAF000 Function exits: EXIT_RMCAF000_001

LIS: Import External Data for Copy Management Read External Data for Data Enhancement

User Exit to introduce external data into LIS info structures This Customer Exit is designed to write external data into the info structures of LIS. It can be used, for example, to integrate statistical data from an old system into the LIS. The User Exit is called up in the reorganization tool. For the source info structure, select that info structure, into which you want to write data. Provided that you have activated the User Exit, which provides data for the selected source info structure and you selected the option 'Source data via User Exit', the data collection will be transferred to the User Exit. Input parameters:

1. I_GSTRU: Name of the table for the info structure (e.g., S001, S601) 2. I_INDEX: Index of the first entry of a new packet: Data collection should be carried out in blocks. If you want to process blocks of

500 entries, for example, the variable I_INDEX will supply the value one when the user exit is called up for the first time, and after the first block is updated (and therefore when the user exit is called up for the second time), the I_INDEX will supply the value 501.

3. I_FPATH: path name of the data to be imported (for example, /oracle/C11/data.1993) Table parameters

4. T_DATA: Table with statistics data: Statistical data is read and prepared in the User Exit. This statistical data is processed in the table structure of the info structure (I_GSTRU). This structure is expected in the transfer.

5. I_SELECT_OPTIONS: Table with selection options: Contains the selection options for characteristics and selection-capable key figures that were specified on the selection screen of the report. This allows the data to be selectively read. I_SELECT_OPTIONS has the structure RSPARAMS: SELNAME Name of the selection option from the report. The name of the selection option is found by displaying the F1 Help and carrying out the function 'Technical info'.

KIND 'S' for SELECT-OPTIONS

SIGN See ABAP/4 Documentation on SELECT-OPTIONS

OPTION See ABAP/4 Documentation on SELECT-OPTIONS

LOW See ABAP/4 Documentation on SELECT-OPTIONS

HIGH See ABAP/4 Documentation on SELECT-OPTIONS Exceptions

6. NO_MORE_DATA: No more exist. The User Exit is again called after the last block of data is read, prepared and processed. RAISE NO_MORE_DATA is a signal by the User-Exit that there are no more data available.

Page 85: PM.CS UserExits and BAPIs.pdf

SRVDET Function exits: EXIT_SAPLMLSP_040 EXIT_SAPLMLSP_041 Screen areas: SAPLMLSP0220_SUSCUSER_SAPLXMLU0299

User screen on tab strip of service detail screen Transfer of Data to Detail User Screen Adoption of Data from User Screen

No documentation in English at present.

SRVEDIT Function exits: EXIT_SAPLMLSR_001

Service list control (maintenance/display) User Exit: Control of Service Entry Mode

No documentation in English at present.

SRVESI Function exits: EXIT_SAPLMLSX_002 EXIT_SAPLMLSX_003

Data conversion entry sheet interface Conversion/Checking of Entry Sheet Data in Inbox Conversion of Entry Sheet Data in Outbox

The enhancement SRVESI is part of the interface for exchanging entry sheets with external systems (laptop, vendor system). BAPIs are used to both pick out the data needed to create the entry sheets (purchase orders, contracts, service master records) and actually create the entry sheets. In outbound processing, the components of the enhancement are used to convert the data of the BAPIs BAPI_SERVICE_GET_DETAIL and BAPI_PO_GETDETAIL into a document which is then sent by mail or outputted on a data carrier. In inbound processing, the data of the incoming documents is converted to the interface structures of the BAPI BAPI_ENTRYSHEET_CREATE. EXIT_SAPLMLSX_002 The exit EXIT_SAPLMLSX_002 is part of the interface for exchanging entry sheets with external systems (laptop, vendor system). The exit is used to convert the data from incoming documents (mail, file) to the internal data structures. The data of the incoming document is passed on to the exit unchanged. The structures of the BAPI BAPI_ENTRYSHEET_CREATE are expected as output. The exception WRONG_DOCUMENT can be triggered if the data of the inbound document is incorrect.

SRVESKN Function exits: EXIT_SAPLMLSK_001

Set account assignment in service line Set Account Assignment in Service Line

The enhancement SRVESKN enables you to predefine the account assignment distribution in newly created service lines. The enhancement is invoked in all purchasing documents with account assignment. Functional module: The function module EXIT_SAPLMLSK_001 allows you to predefine the account assignment distribution in new service lines that are created. Beforehand, you must specify the account assignments and the percentages or quantities allocated to each account assignment in table T_ESKN. The function module is invoked in all purchasing documents with account assignment.

SRVESLL Function exits: EXIT_SAPLMLSP_030 EXIT_SAPLMLSP_031

Service line checks User Exit: Fill ESLL Structure Before Checks (After Entry) Check ESLL Data After Checking

No documentation in English at present.

SRVESSR Function exits: EXIT_SAPLMLSR_010

Set entry sheet header data Set Entry Sheet Header Data

The enhancement SRVESSR enables you to set the header data (e.g. location at which the service was performed) when creating an entry sheet.

Page 86: PM.CS UserExits and BAPIs.pdf

SRVEUSCR Function exits: EXIT_SAPLMLSR_020 EXIT_SAPLMLSR_021 Screen entries: SAPLMLSR0400_SUBUSCR_SAPLXMLU0399

User screen on entry sheet tabstrip Transfer of Data to Entry Sheet User Screen Adoption of Data from Entry Sheet User Screen

No documentation in English at present.

SRVKNTTP Function exits: EXIT_SAPLMLSX_001

Setting the account assignment category when reading in, if “U” Entry Sheet Upload: Set Account Assignment Category

No documentation in English at present.

SRVLIMIT Function exits: EXIT_SAPLMLSL_001

Limit check Check Limits in Service Specifications

No documentation in English at present.

SRVMAIL1 Function exits: EXIT_SAPLMLSX_010 EXIT_SAPLMLSX_011

Processing of mail before generation of sheet Process Mail Before Generation of Entry Sheet After Importing Mail, Analysis of Result

The enhancement SRVMAIL1 enables you to modify the data of incoming mails (with service entry sheet data). After Release 4.0B, the enhancement SRVESI should be used instead of enhancement SRVMAIL1, since the former offers greater functionality.

SRVMSTLV Function exits: EXIT_SAPLMLST_001

Conversion of data during importing of standard service cat. Conversion of Units of Measure When Importing Standard Service Catalog

The enhancement SRVMSTLV facilitates the conversion of data during the importing of standard service specifications.

SRVPOWEB Function exits: EXIT_SAPLMEW5_001

Purchase order for service entry in Web Purchase Order: Entry Sheet Web

No documentation in English at present.

SRVQUOT Function exits: EXIT_SAPMM06E_010 EXIT_SAPMM06E_011

Service export/import for inquiry/quotations Export of Service RFQ Data Import Service Prices for Quotation

No documentation in English at present.

SRVREL Function exits: EXIT_SAPLEBND_003

Changes to comm. structure for release of entry sheet Change to Comm. Structure for Release Strategy Determination

In the standard system, communication structure CESSR (for determination of the release strategy defined for an entry sheet) is filled with the data of the PO, the entry sheet and the entry sheet account assignment. Within function module EXIT_SAPLEBND_003, you have access to the fields of the communication structure. Prior to implementing the strategy determination process, you can therefore change the communication fields in any way you wish, thus influencing which strategy is determined.

Page 87: PM.CS UserExits and BAPIs.pdf

SRVSEL Function exits: EXIT_SAPLMLSP_01 EXIT_SAPLMLSP_011

Service selection from non-SAP systems Query Whether Selection of Services from Other Systems is Allowed Call Foreign Selection for Services

No documentation in English at present.

CRM00001 Function exits:

User Exits in Customer Relationship Management

Development not completed.

Page 88: PM.CS UserExits and BAPIs.pdf

4. BAPI’s in Detail

BAPI_SERVNOT_ADD_DATA

This BAPI enables you to add items, causes, activities, task, long texts to a service notification. For more information about necessary import parameters see BAPI_SERVNOT_CREATE (method ServiceNotification.CreateFromData2). Notes: Errors are returned in the parameter RETURN.

BAPI_SERVNOT_CHANGEUSRSTAT

This BAPI changes the user status of a service notification. Notes: Errors are returned in the parameter RETURN. Technical note: The user status can be transferred either in internal or external format (fields USR_STATUS-STATUS_INT or USR_STATUS_EXT). If the external format is used, the language must also be specified (field USR_STATUS-LANGU or USR_STATUS-LANGU_ISO).

BAPI_SERVNOT_CLOSE

This BAPI is called when completing a service notification. Notes: The notification must have a status that allows the completion. Errors are returned in the parameter RETURN.

BAPI_SERVNOT_MODIFY_DATA

This BAPI enables you to modify the header, items, causes, activities, tasks, and partners of the service notification. Notes: Errors are returned in the parameter RETURN. Technical note: If you want to change a field you have to specify the new value of the field in the data structure e.g. NOTIFHEADER-SHORT_TEXT. In addition the corresponding X-structure field e.g. NOTIFHEADER_X-SHORT_TEXT must be checked. If you want to change a partner in the notification, the fields PARTN_ROLE_OLD and PARTNER_OLD must be specified and the X-structure must be filled as described above.

BAPI_SERVNOT_CREATE

This BAPI enables you to create a new service notification. This allows you to create certain fields from the notification header, items, causes, tasks, activities and also long texts for them. Partners can also be maintained. Notes: Errors are returned in the parameter RETURN. Technical note: The sort field must be filled in order to create items, causes, task or activities. When creating a cause the sort field for the item must also be filled. When creating a long text the fields OBJTYP and OBJKEY must be filled. OBJTYP can contain the following values: 1. QMEL - notification header 2. QMFE - notification item 3. QMUR - notification cause 4. QMSM - notification task 5. QMMA - notification activity OBJKEY must contain the corresponding sort field for the above values. The combination of sort field item/cause, item/task or

Page 89: PM.CS UserExits and BAPIs.pdf

item/activity must be unique within the same notification. If you leave the sort field blank and OBJTYP = QMEL, the long text is created for the notification header. An external reference key can be transferred by the field REFOBJECTKEY. The links between external reference keys <-> R/3 keys are returned within export table KEY_RELATIONSHIPS. If the fields SENDER, REFOBJECTTYPE and REFRELTYPE are filled, it is possible to create an object link at notification header level.

BAPI_SERVNOT_DEL_DATA

This BAPI enables you to delete items, causes, activities, tasks, partners for the service notification. Notes: Errors are returned in the parameter RETURN. Technical note: If an entry has to be deleted, the key of the table entry must be specified e.g. ITEM_KEY for the item to be deleted or PARTN_ROLE and PARTNER for the partner to be deleted.

BAPI_SERVNOT_POSTPONE

This BAPI postpones a service notification. Its system status is changed to "Notification postponed". Notes: Errors are returned in the parameter RETURN.

BAPI_SERVNOT_GET_DETAIL

This BAPI enables you to display all details for a service notification. Notes: Errors are returned in the parameter RETURN. Technical note: Notification number is a mandatory entry. Information about the structure of the long text table OBJTYP can contain the following values:

QMEL - notification header

QMFE - notification item

QMUR - notification cause

QMSM - notification task

QMMA - notification activity OBJKEY contains the key of the corresponding object e.g. ITEM_KEY for a notification item. The export structure NOTIFHDTEXT provides additional information about notification header data e.g. description of the corresponding equipment.

BAPI_SERVNOT_PUTINPROGRESS

This BAPI changes the status of a notification to "in process". Notes: Errors are returned in the parameter RETURN. Technical note: If a notification has the status "open", then the BAPI calls the business transaction "put in process", if a notification is already closed, the BAPI calls the business transaction "put in process again".

BAPI_SERVNOT_SAVE

Page 90: PM.CS UserExits and BAPIs.pdf

This BAPI enables you to save changes made to a service notification. Notes: Errors are returned in the parameter RETURN. Technical notes: This BAPI calls the update task function of the notification. Afterwards no further changes are possible until BAPI_TRANSACTION_COMMIT is called.

SM Tasks BAPIs

BAPI_SERVNOT_COMPLETE_TASK

You can use this BAPI to complete a task. Notes: If you use the TESTRUN parameter, the status is not changed. The system checks if the task could be completed by the action. In parameter TASK_KEY, the system expects the key for the task that is on the database. This key can be read in using BAPI BAPI_SERVNOT_GET_DETAIL, for example.

BAPI_SERVNOT_RELEASE_TASK

You can use this BAPI to release a task for processing. Notes: If you use the TESTRUN parameter, the status is not changed. The system checks if the task can be released. In parameter TASK_KEY, the system expects the key for the task that is on the database. This key can be read in using BAPI BAPI_SERVNOT_GET_DETAIL, for example.

BAPI_SERVNOT_SUCCESSFUL_TASK

You can use this BAPI to flag a task as successful. Notes: If you use the TESTRUN parameter, the status is not changed. The system checks if the task could be flagged as being successful. In parameter TASK_KEY, the system expects the key for the task that is on the database. This key can be read in using BAPI BAPI_SERVNOT_GET_DETAIL, for example.

Page 91: PM.CS UserExits and BAPIs.pdf

PM Equipment: BAPIs

BAPI_EQUI_DISMANTLE

Using this method, you install a piece of equipment at a functional location at a predefined point in time. If the installation is performed successfully, the method returns the updated equipment data:

EQUIMASTER: Structure with equipment master data (EQUI)

EQUITIME: Structure with equipment time segments (EQUZ)

EQUITEXT: Structure with equipment short texts (EQKT)

EQUILOCATION: Structure with equipment location data (ILOA)

EQUISALES: Structure with equipment sales data (ILOA)

EQUIHIERARCHY: Structure with equipment hierarchy data (EQUZ, ILOA) Notes: Notifications are returned in the parameter RETURN.

BAPI_EQUI_INSTALL

Using this method, you install a piece of equipment at a functional location at a predefined point in time. If the installation is performed successfully, the method returns the updated equipment data:

EQUIMASTER: Structure with equipment master data (EQUI)

EQUITIME: Structure with equipment time segments (EQUZ)

EQUITEXT: Structure with equipment short texts (EQKT)

EQUILOCATION: Structure with equipment location data (ILOA)

EQUISALES: Structure with equipment sales data (ILOA)

EQUIHIERARCHY: Structure with equipment hierarchy data (EQUZ, ILOA) Notes: Notifications are returned in the parameter RETURN.

BAPI_EQUI_CHANGE

No documentation in English at present.

BAPI_EQUI_CREATE

No documentation in English at present.

BAPI_EQUI_CREATE_BY_REFERENCE

No documentation in English at present.

BAPI_EQUI_GETDETAIL

No documentation in English at present.

BAPI_EQUI_GETLIST

No documentation in English at present.

Page 92: PM.CS UserExits and BAPIs.pdf

PM BAPI: Install Equipment (Functional Location, Superior Equipment) BAPI_FUNCLOC_CHANGE

No documentation in English at present.

BAPI_FUNCLOC_CREATE

No documentation in English at present.

BAPI_FUNCLOC_GETDETAIL

No documentation in English at present.

BAPI_FUNCLOC_GETLIST

No documentation in English at present.

BAPI_FUNCLOC_SET_LABEL_SYSTEM

No documentation in English at present.

Catalog BAPI’s BAPI_SERVNOT_GETCATALOGPROFIL

You use this method to determine the catalog profile for a piece of equipment for the current date. If the method cannot determine a catalog profile for

the equipment itself,

the construction type of the equipment,

the functional location at which the equipment is installed,

the construction type of the functional location, then the catalog profile assigned to the notification type is used Notes: Notifications are returned in the parameter RETURN.

Page 93: PM.CS UserExits and BAPIs.pdf

BAPIs for Equipment and Service Notifications

BAPI_EQMT_CREATE

With this method, you create a piece of equipment. All data for the piece of equipment to be created can be found in the following structures:

EQUIMASTER: Structure containing the master data (EQUI) of the piece of equipment

EQUITIME: Structure containing the usage periods (EQUZ) of the piece of equipment

EQUITEXT: Structure containing the short texts (EQKT) of the piece of equipment

EQUILOCATION: Structure containing the location data (ILOA) of the piece of equipment

EQUISALES: Structure containing the sales data (ILOA) of the piece of equipment If the field EQUIPMENT in the structure EQUIMASTER is blank, the equipment number is assigned internally; otherwise the equipment number specified in the field is assigned. Notes: Notifications are returned in the parameter RETURN.

BAPI_EQMT_DISMANTLEFL

You use this method to dismantle a piece of equipment at a functional location at a specified time. If the dismantling is performed successfully, the method returns the updated equipment data:

EQUIMASTER: Structure containing the master data (EQUI) of the piece of equipment

EQUITIME: Structure containing the usage periods (EQUZ) of the piece of equipment

EQUITEXT: Structure containing the short texts (EQKT) of the piece of equipment

EQUILOCATION: Structure containing the location data (ILOA) of the piece of equipment

EQUISALES: Structure containing the sales data (ILOA) of the piece of equipment

EQUIHIERARCHY: Structure with the hierarchy data (EQUZ,ILOA) of the equipment Notes: Notifications are returned in the parameter RETURN.

BAPI_EQMT_DETAIL

This method reads details of a piece of equipment. The piece of equipment can be identified either by the equipment number (EQUIPMENT) or by a combination of material number and serial number (MATERIAL and SERIALNO). If the piece of equipment specified exists and you have authorization to display the data, the method delivers the details that have been read in the following structures:

EQUIMASTER: Structure containing the master data (EQUI) of the piece of equipment

EQUITIME: Structure containing the usage periods (EQUZ) of the piece of equipment

EQUITEXT: Structure containing the short texts (EQKT) of the piece of equipment

EQUILOCATION: Structure containing the location data (ILOA) of the piece of equipment

EQUISALES: Structure containing the sales data (ILOA) of the piece of equipment

EQUIHIERARCHY: Structure with the hierarchy data (EQUZ,ILOA) of the equipment Notes: Notifications are returned in the parameter RETURN. Technical notes: If you do not want to transfer an equipment number (the piece of equipment is identified by a combination of material and serial number), you must transfer a blank (' ') for the (obligatory) parameter EQUIPMENT.

Page 94: PM.CS UserExits and BAPIs.pdf

BAPI_EQMT_GETCATALOGPROFIL

With this method, you determine the catalog profile for the current date for a piece of equipment. If the method cannot determine a catalog profile

for the piece of equipment itself,

for its construction type,

for the functional location at which the piece of equipment is installed

or for its construction type, Then the catalog profile that is assigned to the notification type is used. Notes: Notifications are returned in the parameter RETURN.

BAPI_EQMT_DISMANTLEHR

You use this method to dismantle a piece of equipment from an equipment hierarchy at a specified time. If the dismantling is performed successfully, the method returns the updated equipment data:

EQUIMASTER: Structure containing the master data (EQUI) of the piece of equipment

EQUITIME: Structure containing the usage periods (EQUZ) of the piece of equipment

EQUITEXT: Structure containing the short texts (EQKT) of the piece of equipment

EQUILOCATION: Structure containing the location data (ILOA) of the piece of equipment

EQUISALES: Structure containing the sales data (ILOA) of the piece of equipment

EQUIHIERARCHY: Structure with the hierarchy data (EQUZ,ILOA) of the equipment Notes: Notifications are returned in the parameter RETURN.

BAPI_EQMT_GETLISTFORCUSTOMER

This method returns a list of all pieces of equipment for a customer. Only the pieces of equipment that have the transferred customer number (CUSTOMERNO) maintained in their master data are considered. The parameter INT_CUSTMODE controls which of the customer fields are compared. You also have the option of limiting the selection by the equipment type (EQUITYPE), as well as by the material number and serial number (MATERIALFROM, MATERIALTO, SERIALNOFROM, SERIALNOTO). In the table EQUIPMENT, only the selected pieces of equipments for which you have display authorization are returned. Notes: Notifications are returned in the parameter RETURN.

BAPI_EQMT_INSTALLFL

You can use this method to install a piece of equipment at a functional location at a specified time. If the installation is performed successfully, the method returns the updated equipment data.

EQUIMASTER: Structure containing the master data (EQUI) of the piece of equipment

EQUITIME: Structure containing the usage periods (EQUZ) of the piece of equipment

EQUITEXT: Structure containing the short texts (EQKT) of the piece of equipment

EQUILOCATION: Structure containing the location data (ILOA) of the piece of equipment

EQUISALES: Structure containing the sales data (ILOA) of the piece of equipment

EQUIHIERARCHY: Structure with the hierarchy data (EQUZ,ILOA) of the equipment Notes: Notifications are returned in the parameter RETURN.

Page 95: PM.CS UserExits and BAPIs.pdf

BAPI_EQMT_INSTALLHR

You can use this method to install a piece of equipment in an equipment hierarchy at a specified time. If the equipment has been successfully installed, the method returns the updated equipment data.

EQUIMASTER: Structure containing the master data (EQUI) of the piece of equipment

EQUITIME: Structure containing the usage periods (EQUZ) of the piece of equipment

EQUITEXT: Structure containing the short texts (EQKT) of the piece of equipment

EQUILOCATION: Structure containing the location data (ILOA) of the piece of equipment

EQUISALES: Structure containing the sales data (ILOA) of the piece of equipment

EQUIHIERARCHY: Structure with the hierarchy data (EQUZ,ILOA) of the equipment Notes: Notifications are returned in the parameter RETURN.

BAPI_EQMT_MODIFY

You can use this method to change a piece of equipment. All data for the piece of equipment to be changed can be found in the following structures:

EQUIMASTER: Structure containing the master data (EQUI) of the piece of equipment

EQUITIME: Structure containing the usage periods (EQUZ) of the piece of equipment

EQUITEXT: Structure containing the short texts (EQKT) of the piece of equipment

EQUILOCATION: Structure containing the location data (ILOA) of the piece of equipment

EQUISALES: Structure containing the sales data (ILOA) of the piece of equipment The indicator INT_ALL_X shows whether all data fields should be considered for the updates (INT_ALL_X = 'X') or just those in the corresponding flag structures that are indicated as being relevant for updating (INT_ALL_X = ' '). Example: Situation: In the structure EQUIMASTER the data fields EQUICATGRY, EQUITYPE and INVENTORY are assigned values and all other fields are blank IN the corresponding flag structure EQUIMASTER_X the flags QUICATGRY, EQUITYPE and MANFACTURE are set to 'X' and all other flags are blank (' '). Case distinction:

If the indicator INT_ALL_X is transferred blank, the data fields - EQUICATGRY and EQUITYPE are copied (INVENTORY remains unchanged!) - The previous content of MANUFACTURE deleted from the structure EQUIMASTER.

If the indicator INT_ALL_X is set to 'X', all data fields are considered and the flag structures are therefore ignored. For the structure EQUIMASTER, this means that the data fields

- EQUICATGRY, EQUITYPE and INVENTORY are copied - And all other fields of the structure are deleted.

Notes: Messages are returned in the parameter RETURN.

Page 96: PM.CS UserExits and BAPIs.pdf

BAPI_SERVICENOTIFICAT_CREATE

You can use this method to create service notifications. This allows you to create certain fields from the notification header, the long text for the notification header and several notification items. Notes: Notifications are returned in the parameter RETURN. Technical note: The following authorizations are checked:

I_QMEL

I_TCODE

I_BEGRP

I_IWERK

I_INGRP

I_SWERK

I_KOSTL

BAPI_SERVICENOTIFICAT_GETLIST

This method selects service notifications assigned to a customer. For this, the following data is used as selection criteria:

the customer that is maintained in the service notification

the notification date whereupon all notifications are selected, whose date is greater than or equal to the data entered You can choose to limit the selection using a partner function and partner number. The service notifications are returned. All notifications are selected regardless of status. You can choose to exclude completed notifications from the selection. Notes: Notifications are returned in the parameter RETURN.

Page 97: PM.CS UserExits and BAPIs.pdf

BAPIs for Service Entry Sheets (BO 2091)

BAPI_ENTRYSHEET_CHECK

This method allows the data of service entry sheets to be checked. Notes: Transfer The entry sheet header data is passed on in the parameter EntrySheetHeader. The account assignments are passed on in the table EntrySheetAccountAssignment. Service data relating to the PO item can be passed on in the tables EntrySheetServices and EntrySheetSrvAccAssValues. Return messages Messages are returned in the table Return.

BAPI_ENTRYSHEET_CREATE

You can use this method to create service entry sheets. Notes: The following authorization objects are checked with the activity 76 (entry of services performed).

M_BEST_BSA Document type of purchase order of entry sheet

M_BEST_EKG Purchasing group of purchase order

M_BEST_EKO Purchasing organization of purchase order

M_BEST_WRK Plant of purchase order Transfer:

The header data of the entry sheet is passed on in the parameter 'EntrySheetHeader'.

The account assignments are passed on in the table 'EntrySheetAccountAssignment'.

The service data for the service entry sheet can be passed on in the tables 'EntrySheetServices' and 'EntrySheetSrvAccAssValues'.

All value and price fields are to be passed on in the currency of the purchase order. Return messages: Messages are returned in the table 'Return'.

Page 98: PM.CS UserExits and BAPIs.pdf

BAPI_ENTRYSHEET_DELETE

You can use this method to delete entry sheets. Notes: The following authorization objects are checked with the activity 76 (entry of services performed):

M_BEST_BSA Document type of purchase order (of entry sheet)

M_BEST_EKG Purchasing group of purchase order

M_BEST_EKO Purchasing organization of purchase order

M_BEST_WRK Plant of purchase order Messages are returned in the table 'Return'.

BAPI_ENTRYSHEET_GETDETAIL

You can use this method to output the detailed data on a service entry sheet. Notes: The following authorization objects are checked with the activity 03 (Display):

M_BEST_BSA Document type in purchase order

M_BEST_EKG Purchasing group in purchase order

M_BEST_EKO Purchasing organization in purchase order

M_BEST_WRK Plant in purchase order Error handling: If error messages are issued during the processing, they are returned in the table 'Return'. This table also logs information messages.

BAPI_ENTRYSHEET_GETRELINFO

This method allows you to output detailed data on the release status of the service entry sheet.

BAPI_ENTRYSHEET_RELEASE

This method allows you to release entry sheets. The entry sheet number and the release code must be passed on. The new release status and the new release indicator are returned. Notes: The authorization object M_EINK_FRG is checked. A COMMIT WORK is set in the module.

BAPI_ENTRYSHEET_RESET_RELEASE

This method allows you to cancel the release of entry sheets. The entry sheet number and the release code must be passed on. The release status and the release indicator valid prior to the release are returned. Notes: The authorization object M_EINK_FRG is checked.

Page 99: PM.CS UserExits and BAPIs.pdf

BAPI_ENTRYSHEET_GETLIST

This method allows you to list service entry sheets. You pass on the desired selection criteria (e.g. purchasing group, plant, vendor) Work, Supplier in the import parameters. For more information, refer to the relevant parameter documentation. Notes: The following authorization objects are checked with the activity 03 (Display):

M_BEST_BSA Document type in purchase order

M_BEST_EKG Purchasing group in purchase order

M_BEST_EKO Purchasing organization in purchase order

M_BEST_WRK Plant in purchase order Return: The entry sheets that satisfy the selection criteria are returned in the table 'ENTRYSHEET_HEADER'. Error handling: If error messages are issued during the processing, they are returned in the table 'Return'. This table also logs information messages.