cancel
Showing results for 
Search instead for 
Did you mean: 

Adding custom actions to 'Actions' in the CRM web UI toolbar

jcarbonell
Participant
0 Kudos

Hello,

  We are using SOLMAN 7.1 Incident Management, and I am trying to add a new custom action to the 'Actions' pull-down list in the CRM web UI toolbar.I have followed the steps in the 'Aplication Incident Management Configurationj and Upgrade guide', and in the note 1567003.

If you wish to include your own actions in the toolbar, ensure that they conform to the following criteria:

    1. The action must be manually executable by the user in dialog (see the action definition).
    2. The action must be displayable in the toolbox (see the action definition).
    3. The action must not call any GUI functions, such as launching transactions, displaying dialog boxes, or navigating to URLs. Such GUI functions are not compatible with the CRM UI.


If your action meets the above criteria, add an entry in table AGS_WORK_CUSTOM in the following form:

           IM_CRM_UI_PPF_<sequence no> <method filter>

Example:
           IM_CRM_UI_PPF_01             Z_CUSTOM_ACTION_FILTER_01
           IM_CRM_UI_PPF_02             Z_CUSTOM_ACTION_FILTER_02

I have defined the action in the action profile as manually executable and displayable in the toolbar. And it does not call any gui function.

As I have not found any information about what the <method filter> is, I have added an entry with the name of the action definition that I want to run, as it appears in  the action profile,  to the table AGS_WORK_CUSTOM:

But it does not appear in the 'Actions' pull-down list.

Does anybody know how do I have to configure it?

Thank you,.

Jose

View Entire Topic
younmazz
Participant
0 Kudos

Hi Jose,

I think you don't need drop down action on the menu to achieve what you want to do. I think you better to use action container  : BADI CONTAINER_PPF 

Please check below link to know how to define variables for CONTAINER_PPF.

First, you need to define a variable like gv_proc_change (type flag) in according to above link , and define an implementation for BADI  CONTAINER_PPF. here you need to define BADI filter BUS2000223 (For my case - ITSM/incident/SR) before adding a  custom logic in the method  MODIFY_CONTAINER.

here is a sample code

   DATA: LS_OBJECT          TYPE SIBFLPORB,

         LT_VALUES          TYPE TABLE OF SWCONT,

         LV_GUID            TYPE CRMT_OBJECT_GUID,

         LV_GUID_DB         TYPE CRMT_OBJECT_GUID,

         LS_VALUE           TYPE SWCONT,

         LV_RETURN          TYPE SY-SUBRC,

*        LS_STATUS_OW       TYPE CRMT_STATUS_WRK,

         LT_STATUS_DB       TYPE CRMT_STATUS_WRKT,

         LS_STATUS          TYPE CRMT_STATUS_WRK.

* check if classes are bound

   CHECK: CI_CONTAINER IS BOUND,

          CI_PARAMETER IS BOUND.

   CASE FLT_VAL.

     WHEN 'BUS2000223'.

* Get Parameter

       CALL METHOD CI_PARAMETER->GET_VALUES

         RECEIVING

           VALUES = LT_VALUES.

*** Parameter STATUS_CHANGE

       READ TABLE LT_VALUES INTO LS_VALUE WITH KEY ELEMENT = 'GV_PROC_CHANGE'.

       IF SY-SUBRC = 0.


///->> logic


use function module CRM_ORDER_READ_OW or CRM_ORDER_READ to compare between processor in buffer and processor in DB. If the processor has been changed, set   GV_PROC_CHANGE = 'X'. 

///-->

............................

       endif.

ENDCASE.

      


Lastly, in Action condition, trigger the email when GV_PROC_CHANGE = 'X'

Whether use GV_PROC_CHANGE in starting condition or schedule condition is up to you. but it must be scheduled condition at save point, so you need to change the configue part of action definition .

Hope it might help you to sort out your problem .

Regards,

Jin