cancel
Showing results for 
Search instead for 
Did you mean: 

Changin message processor

Former Member
0 Kudos

Hi all,

I have a requirement to change message processor of a support desk message, anyone knows what's the FM name to do the same ?.

Thanks and regards

Jijo

Accepted Solutions (1)

Accepted Solutions (1)

Former Member
0 Kudos

hi

Modifying the Support Team

SELECT SINGLE * FROM crmd_partner INTO wa_crmd_partner

WHERE guid = l_lguid AND

partner_fct = 'SLFN0003'.

wa_crmd_partner-partner_no = l_st_guid.

MODIFY crmd_partner from wa_crmd_partner.

UPDATE crmd_order_index SET partner_no = l_sid

WHERE header = iv_guid AND

pft_16 = 'X'.

************************************************************************************************

SELECT SINGLE * FROM crmd_partner into wa1_crmd_partner

WHERE guid = l_lguid AND

partner_fct = 'SLFN0003'.

  • Get Address number corresponding to Partner GUID

if l_st_guid is not initial.

CALL FUNCTION 'BUPA_ADDRESSES_READ'

EXPORTING

IV_PARTNER_GUID = l_st_guid

IMPORTING

EV_STANDARD_ADDRNUMBER = lv_addrnum.

IF SY-SUBRC <> 0."#EC *

  • MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

  • WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.

wa1_crmd_partner-partner_no = l_st_guid.

wa1_crmd_partner-ADDR_NR = lv_addrnum. " Address number

wa1_crmd_partner-ADDR_TYPE = '1'. " Address type ( 1- Orgnaisation Address )

MODIFY crmd_partner from wa1_crmd_partner.

endif.

**********************************************************************************************

  • Deleting Msg.Processor Initially

DELETE FROM crmd_partner

WHERE guid = l_lguid AND

partner_fct = 'SLFN0004'.

DELETE from crmd_order_index WHERE header = iv_guid AND

pft_8 = 'X'.

************************************************************************************

regards,

sabari

Answers (1)

Answers (1)

raguraman_c
Active Contributor
0 Kudos

Elaborate your requirement, it is suggested that not to get into development until you are sure that its not available.

Feel free to revert back.

--Ragu

Former Member
0 Kudos

Hi Ragu,

My requirement is to modify the Message Processor ( partner) of a support desk message.

We can directly change it from CRM_dno_monitor but we are implementing portal integration and i have to

do some bapi for the sam.

I have put a break point in CRM_DNO_MONITOR and called CRM_ORDER_MAINTAIN with the same parameters, even it's not working.

Please find the below code .

DATA : LV_GUID  TYPE  CRMT_OBJECT_GUID.

LV_GUID = '7B8E9648A4C6540CE1000000C0A8643D'.



Data : lit_partner          TYPE CRMT_PARTNER_COMT,
       wa_partner           LIKE LINE OF lit_partner,
       ls_input_field       TYPE crmt_input_field,
       ls_input_field_names TYPE crmt_input_field_names,
       lt_input_field_names TYPE crmt_input_field_names_tab,
       lt_input_fields      TYPE crmt_input_field_tab.

data: it_guid_h  type CRMT_OBJECT_GUID_TAB ,
      wa_guid_h  type CRMT_OBJECT_GUID.

data  it_partner  type  CRMT_PARTNER_EXTERNAL_WRKT.

wa_guid_h = LV_GUID.
append wa_guid_h  to it_guid_h.


MOVE: Lv_guid   TO wa_partner-ref_guid,
     'A'        TO wa_partner-ref_kind,
     '0000'     TO wa_partner-ref_partner_handle,
     'SDSM0004' TO wa_partner-partner_fct,
     '1034'      TO wa_partner-partner_no,
     'SDSM0004' TO wa_partner-ref_partner_fct,
     '1034'      TO wa_partner-ref_partner_no,
     'BP'       TO wa_partner-no_type,
     'BP'       TO wa_partner-display_type,
     'X'        TO wa_partner-mainpartner,
     'C'        to wa_partner-kind_of_entry.
     APPEND wa_partner TO lit_partner.



      ls_input_field-ref_guid    = Lv_guid.
      ls_input_field-ref_kind    = 'A'.
      ls_input_field-objectname  = 'PARTNER'.

DATA  l_logkey type crmt_logical_key.

data  : it_fname  type CRMT_INPUT_FIELD_NAMES_TAB,
        wa_fname  type CRMT_INPUT_FIELD_NAMES.

wa_fname-FIELDNAME = 'DISPLAY_TYPE'.
append wa_fname  to it_fname.

wa_fname-FIELDNAME = 'NO_TYPE'.
append wa_fname  to it_fname.


wa_fname-FIELDNAME = 'PARTNER_NO'.
append wa_fname  to it_fname.



l_logkey = lv_guid.
        concatenate  wa_partner-partner_fct
              wa_partner-partner_no  wa_partner-no_type wa_partner-display_type  into ls_input_field-logical_key.

      ls_input_field-field_names = it_fname.
      INSERT ls_input_field INTO TABLE lt_input_fields.

CALL FUNCTION 'DIALOG_SET_NO_DIALOG'
          .


CALL FUNCTION 'CRM_ORDER_MAINTAIN'
	EXPORTING
		IT_PARTNER = Lit_partner
	CHANGING
		CT_INPUT_FIELDS = lt_input_fields
	EXCEPTIONS
		ERROR_OCCURRED = 1
		DOCUMENT_LOCKED = 2
		NO_CHANGE_ALLOWED = 3
		NO_AUTHORITY = 4
		OTHERS = 5.



DATA    gt_saved_objects   TYPE  crmt_return_objects.
DATA  : IT_sAVE  TYPE  CRMT_OBJECT_GUID_TAB,
        WA_SAVE  TYPE  CRMT_OBJECT_GUID.

        WA_sAVE = LV_GUID.
        APPEND WA_SAVE  TO  IT_SAVE.

data it_nosave  type  CRMT_OBJECT_GUID_TAB.

CALL FUNCTION 'CRM_ORDER_SAVE'
  EXPORTING
    IT_OBJECTS_TO_SAVE         = IT_SAVE
*    IV_UPDATE_TASK_LOCAL       = ''
*   IV_SAVE_FRAME_LOG          = FALSE
*   IV_NO_BDOC_SEND            = FALSE
 IMPORTING
    ET_SAVED_OBJECTS           = gt_saved_objects
*   ET_EXCEPTION               =
    ET_OBJECTS_NOT_SAVED       = it_nosave
* CHANGING
*   CV_LOG_HANDLE              =
 EXCEPTIONS
   DOCUMENT_NOT_SAVED         = 1
   OTHERS                     = 2
          .
IF SY-SUBRC <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.

commit work.

The contents of table gt_saved_objects and it_nosave are always initial. I cant' find out the problem.

Anyone can help me?

Thanks and regards

Jijo

raguraman_c
Active Contributor
0 Kudos

Hang on.... How can you say this feature "Changing Message Processor". Please elaborate your requirement first. you just keep saying "Changing Mesage processor", What do you mean by this?

Instead of just pasting your code here.

Please explain your requirement, there might be some work around.

Feel free to revert back.

--Ragu