Quantcast
Channel: SCN : Discussion List - SAP CRM: Sales
Viewing all articles
Browse latest Browse all 1559

Trying to update using partner using CRM_ORDER_MAINTAIN

$
0
0

Hi I am trying to udpate Partner details from the file using CRM_ORDER_MAINTAIN but it is not getting updating, can you please check and update me if some thing is wrong from the code.

 

input file contains below fields.

 

Transaction number:

Business partner:

Address number:

Personal number:

 

REPORT  Z_CRM_ACT_EMP_MASS_UPDATE.

PARAMETERS: p_file TYPE  string.

TYPES: BEGIN OF ty_data,
        Trans_no type CRMT_OBJECT_ID_DB,
        PARTNER_NO type CRMT_PARTNER_NO,
        ADDR_NR  type AD_ADDRNUM,
        ADDR_NP type AD_PERSNUM,

       END OF ty_data.

DATA:it_data  TYPE TABLE OF ty_data.
data:v_guid   TYPE CRMT_OBJECT_GUID,
     P_guid   TYPE CRMT_OBJECT_GUID,
     wa_data  TYPE ty_data.

data:it_guid_h type crmt_object_guid_tab,
ls_guid_h type crmt_object_guid.

data: lt_partner_com  type crmt_partner_comt,
      wa_partner_com   type crmt_partner_com.


data:et_partner type crmt_partner_external_wrkt,
     wa_partner_wrk type crmt_partner_external_wrk.

data:lt_input_fields type crmt_input_field_tab,
     wa_input_fields type crmt_input_field.

DATA: i_header_guid  TYPE crmt_object_guid_tab,
      i_return_objects    TYPE crmt_return_objects.


data : lt_object_to_save type CRMT_OBJECT_GUID_TAB,
       lt_saved_objects type CRMT_RETURN_OBJECTS,
       wa_return type BAPIRET2.

AT SELECTION-SCREEN ON p_file.
  IF p_file IS INITIAL.
    MESSAGE 'Enter Valid Input File Path' TYPE 'E'.
  ENDIF.

************************************************************************
*F4 Help(s)                                                            *
************************************************************************
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.
****   Get file path / name.
  PERFORM get_file.

************************************************************************
*Start of selection                                                    *
************************************************************************
START-OF-SELECTION.
****   Get file data
  PERFORM get_file_data.

END-OF-SELECTION.

**** Process Data.
  PERFORM process_data.


*&---------------------------------------------------------------------*
*&      Form  GET_FILE
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM GET_FILE .

  DATA :   lv_desktop TYPE string,
           li_ftab    TYPE filetable,
           lw_ftab    TYPE file_table,
           lv_rc      TYPE i.

  CALL METHOD cl_gui_frontend_services=>get_desktop_directory
    CHANGING
      desktop_directory    = lv_desktop
    EXCEPTIONS
      cntl_error           = 1
      error_no_gui         = 2
      not_supported_by_gui = 3
      OTHERS               = 4.
  IF sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
  ENDIF.


  CALL METHOD cl_gui_cfw=>flush
*  EXCEPTIONS
*    cntl_system_error = 1
*    cntl_error        = 2
*    others            = 3
          .
  IF sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
  ENDIF.


  CALL METHOD cl_gui_frontend_services=>file_open_dialog
    EXPORTING
      window_title            = 'Select File'
      default_extension       = 'TXT'
*    default_filename        =
*    file_filter             =
*    with_encoding           =
      initial_directory       = lv_desktop
*    multiselection          =
    CHANGING
      file_table              = li_ftab
      rc                      = lv_rc
*    user_action             =
*    file_encoding           =
    EXCEPTIONS
      file_open_dialog_failed = 1
      cntl_error              = 2
      error_no_gui            = 3
      not_supported_by_gui    = 4
      OTHERS                  = 5
          .
  IF sy-subrc <> 0.
  ENDIF.

  CALL METHOD cl_gui_cfw=>flush
    .
  IF sy-subrc <> 0.

  ENDIF.

  READ TABLE li_ftab INTO lw_ftab INDEX 1.
  IF sy-subrc IS INITIAL.
    p_file = lw_ftab-filename.
  ENDIF.


ENDFORM.                    " GET_FILE
*&---------------------------------------------------------------------*
*&      Form  GET_FILE_DATA
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM GET_FILE_DATA .

  CALL METHOD cl_gui_frontend_services=>gui_upload
    EXPORTING
      filename                = p_file
      filetype                = 'DAT'
      has_field_separator     = 'X'
    CHANGING
      data_tab                = it_data
    EXCEPTIONS
      file_open_error         = 1
      file_read_error         = 2
      no_batch                = 3
      gui_refuse_filetransfer = 4
      invalid_type            = 5
      no_authority            = 6
      unknown_error           = 7
      bad_data_format         = 8
      header_not_allowed      = 9
      separator_not_allowed   = 10
      header_too_long         = 11
      unknown_dp_error        = 12
      access_denied           = 13
      dp_out_of_memory        = 14
      disk_full               = 15
      dp_timeout              = 16
      not_supported_by_gui    = 17
      error_no_gui            = 18
      OTHERS                  = 19.
  IF sy-subrc <> 0.
    MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
               WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
  ENDIF.

ENDFORM.                    " GET_FILE_DATA
*&---------------------------------------------------------------------*
*&      Form  PROCESS_DATA
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM PROCESS_DATA .

  LOOP AT it_data INTO wa_data.

    CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
      EXPORTING
        INPUT  = wa_data-Trans_no
      IMPORTING
        OUTPUT = wa_data-Trans_no.

    SELECT SINGLE GUID
           FROM  CRMD_ORDERADM_H
           INTO  v_guid
           WHERE OBJECT_ID = wa_data-Trans_no.

            select single PARTNER_GUID
        FROM CRMV_LINKPARTNER
        into P_guid
        where GUID_HI = v_guid
        and PARTNER_FCT = '00000014'.


INSERT  V_guid INTO TABLE i_header_guid.

*Add party Employee Responsible

      wa_partner_com-ref_handle                   = '0000000000'.

      wa_partner_com-ref_partner_handle     =  '0001'.

      wa_partner_com-kind_of_entry              = 'A'.

      wa_partner_com-partner_fct                  = '00000014'.

      wa_partner_com-ref_guid                      = V_guid.
      wa_partner_com-PARTNER_GUID                  = P_guid.

      wa_partner_com-partner_no                  = wa_data-partner_no.
       wa_partner_com-ADDR_NR                 = wa_data-ADDR_NR.
       wa_partner_com-ADDR_NP                 = wa_data-ADDR_NP.


     IF wa_partner_wrk-ref_guid IS INITIAL.


        wa_partner_com-ref_kind = 'A'.

        wa_partner_com-display_type = 'BP'.

        wa_partner_com-no_type = 'BP'.

     ENDIF.


      INSERT wa_partner_com INTO TABLE lt_partner_com.



*      MOVE-CORRESPONDING wa_partner_com TO wa_logic_partner_key.



*      wa_input_fields-logical_key        =  wa_logic_partner_key.

      wa_input_fields-ref_guid            =  V_guid.

*      wa_input_fields-ref_handle        = lv_handle.

      wa_input_fields-ref_kind            = 'A'.

      wa_input_fields-objectname       = 'PARTNER'.

*      wa_input_fields-field_names      = lt_input_field_names.

      INSERT wa_input_fields INTO TABLE lt_input_fields.





*Order Maintain for modifying employee responsible in task

      CALL FUNCTION 'CRM_ORDER_MAINTAIN'

        EXPORTING

          it_partner      = lt_partner_com

        CHANGING

*          ct_orderadm_h   = lt_orderadm_h_com

          ct_input_fields = lt_input_fields

        EXCEPTIONS

          OTHERS          = 99.



*after this i have also call :



      CALL FUNCTION 'CRM_ORDER_SAVE'

        EXPORTING

          it_objects_to_save = i_header_guid

*          iv_no_bdoc_send    = space

        IMPORTING

          et_saved_objects   = i_return_objects

        EXCEPTIONS

          document_not_saved = 1

          OTHERS             = 2.



        CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'

          EXPORTING

            wait   = 'X'

          IMPORTING

            return = wa_return.

  ENDLOOP.


Viewing all articles
Browse latest Browse all 1559

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>