FUNCTION ZN4N_PI_GET_PAYLOAD .
*"----------------------------------------------------------------------
*"*"Local Interface:
*"  IMPORTING
*"     VALUE(IM_MSGKEY) TYPE  SXMSMKEY
*"  EXPORTING
*"     VALUE(PAYLOAD) TYPE  STRING
*"  EXCEPTIONS
*"      NOT_AUTHORIZED
*"      NO_MESSAGE
*"      INTERNAL_ERROR
*"      NO_PAYLOAD
*"      GENERIC_ERROR
*"----------------------------------------------------------------------
  data: pay_bytes type xstring.
  data: ref_bytes type string.
  data: pay_load  type string.

  CALL FUNCTION 'SXMB_GET_MESSAGE_PAYLOAD'
    EXPORTING
      IM_MSGKEY      = IM_MSGKEY
*     IM_ARCHIVE     =
*     IM_VERSION     =
    IMPORTING
      EX_MSG_BYTES   = pay_bytes
    EXCEPTIONS
      NOT_AUTHORIZED = 1
      NO_MESSAGE     = 2
      INTERNAL_ERROR = 3
      NO_PAYLOAD     = 4
      OTHERS         = 5.
  IF SY-SUBRC <> 0.
    case sy-subrc.
      when 1.
        raise NOT_AUTHORIZED.
      when 2.
        raise NO_MESSAGE.
      when 3.
        raise INTERNAL_ERROR.
      when 4.
        raise NO_PAYLOAD.
      when 5.
        raise GENERIC_ERROR.
    endcase.
  ENDIF.

  try.
      CALL FUNCTION 'ECATT_CONV_XSTRING_TO_STRING'
        EXPORTING
          IM_XSTRING  = pay_bytes
*         IM_ENCODING = 'UTF-8'
        IMPORTING
          EX_STRING   = PAYLOAD.

    catch cx_root.
      raise cx_root.
  endtry.
*
*  data l_filename LIKE  RLGRAP-FILENAME.
*  l_filename  = 'c:\tmp\payload.xml'.
*
*  data: begin of tab occurs 0,
*    field type string,
*    end of tab.
*
*  clear tab.
*  refresh tab.
*
*  tab-field = payload.
*  append tab.
*
*  CALL FUNCTION 'WS_DOWNLOAD'
* EXPORTING
*   FILENAME                      = l_filename
*   FILETYPE                      = 'ASC'
*  TABLES
*    DATA_TAB                      = tab
* EXCEPTIONS
*   FILE_OPEN_ERROR               = 1
*   FILE_WRITE_ERROR              = 2
*   INVALID_FILESIZE              = 3
*   INVALID_TYPE                  = 4
*   NO_BATCH                      = 5
*   UNKNOWN_ERROR                 = 6
*   INVALID_TABLE_WIDTH           = 7
*   GUI_REFUSE_FILETRANSFER       = 8
*   CUSTOMER_ERROR                = 9
*   NO_AUTHORITY                  = 10
*   OTHERS                        = 11
*    .
*  IF SY-SUBRC <> 0.

*  ENDIF.


ENDFUNCTION.