viernes, agosto 24, 2012

Devolver mensajes de error estándar de proxies

Cuando se definen interfaces con Fault Message Type, para rellenar la estructura estándar cuando se han producido errores existe el siguiente método:
  
  datastandard_data type zpi_exchange_fault_data,
        detail_data   type zpi_exchange_log_data,
        ls_return     type bapiret2.




  clear standard_data.
  standard_data-fault_text   = 'Ha ocurrido una excepción'(001).

    loop at gt_return  into ls_return.

      call method cl_proxy_fault=>get_fault_detail
        exporting
          msgty    ls_return-type
          msgid    ls_return-id
          msgno    ls_return-number
          msgv1    ls_return-message_v1
          msgv2    ls_return-message_v2
          msgv3    ls_return-message_v3
          msgv4    ls_return-message_v4
        importing
          severity detail_data-severity
          text     detail_data-text
          url      detail_data-url
          id       detail_data-id.
      append detail_data to standard_data-fault_detail[].

    endloop.

    raise exception type zpi_cx_fmt_ecc_factura
      exporting
        automatic_retry abap_false
        no_retry        abap_true
        standard        standard_data.


Para poder ver la descripción del mensaje a través del explorador. Será necesario tener activo el servicio /sap/xi/docu_apperror en la tx: SICF.

No hay comentarios: