The user exit for the signature process in the PM application is realized with a BADI.
This BADI implements the digital signature process for PM Maintenance Plans (per master data, items, scheduling separate).
The BADI will be invoked in any case when related maintenance plan data have been changed and the user activates the "save" button. The specified data will be transferred to the signature tool as an ASCII string (document) and saved on the database after the applications "commit work".
IP03, IP10, IP42, IP02, IP10, IP04, IP05.
When the SAVE event is invoked in any of these transactions, the signature pop-up is displayed.
This displays the fields in the Maintenance Plan, a place for comments, remarks, reason for change and the user id and password.
Once the password passes validation, the Maintenance Plan/Item is saved and the electronic document is also saved.
See screen shots below.
A configuration table is needed to control whether or not the signature should pop-up. This is needed to be able to suppress the pop-up during the conversion process.
Go to transaction DSAL -> Select Application as PM: Maintenance Plans- Master Data ->Signature object as Signature for PM Maintenance Plans- Master Data and the signature time.
On executing, you will get an entire list of logs. Click on the one you need to view. Select the line item and press the Document button.
This will display you the smartform which is linked to your e-signature.
The smartform displays the name of the person who made the changes, the remarks, along with the change that was done in transaction IP02 etc.
See screen shots below.
I created ZUSI_MAINTPLA_DIGSIG Digital Signature for Maintenance Plan.
DIG_SIGNATURE_MAINT_PLAN (Digital signature for MP (master data))DIG_SIGNATURE_MAINT_ITEM (Digital signature for MP item) DIG_SIGNATURE_MAINT_PLAN_SCHED (Digital signature for MP Scheduling)
Create an implementation of BADI: CJ_DSAL_FUNC, which is the BADI for DSAL for Including Customer Functions.
GET_MULTI (Information for multiple marked rows (not used in this application)
GET_SINGLE (Display document for selected signature log)
GET_BUTTON (Setting individual drop down buttons for transaction DSAL)
For ECC 6.0, you will also need to change some of the classes, interfaces and methods being used in the GET_SINGLE method.
For the new code you can refer to the blog -