Anuncio

Colapsar
No hay anuncio todavía.

macros para gestión de mensajes de BI y BAPI

Colapsar
X
 
  • Filtrar
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes

  • macros para gestión de mensajes de BI y BAPI

    Las estructuras de mensajes de BI y BAPI son muy similares; lo justo para hacerse un lío con los nombres de los campos equivalentes.

    Por otra parte, componer un mensaje es un auténtico rollo.

    En otras ocasiones, debemos analizar mensajes procedentes de BI y de BAPI cuando realizamos procesos automáticos complejos en nuestros reports.

    Para ello, he creado unas macros que transforman unos tipos de mensajes en otros y los componen rápidamente.

    Código:
    * _     _    ___                 _
    *| |__ (_)  / / |__   __ _ _ __ (_)   _ __ ___   ___ ___ ___  __ _  __ _  ___ ___
    *| '_ \| | / /| '_ \ / _` | '_ \| |  | '_ ` _ \ / _ \ __| __|/ _` |/ _` |/ _ \ __|
    *| |_) | |/ / | |_) | (_| | |_) | |  | | | | | |  __/__ \__ \ (_| | (_| |  __/__ \
    *|_.__/|_|_/  |_.__/ \__,_| .__/|_|  |_| |_| |_|\___|___/___/\__,_|\__, |\___|___/
    *                         |_|                                      |___/
    * as seen in http://glob.cranf.net
    * ASCII art made using http://ascii.cranf.net
    *
    ***********************************************************************
    DEFINE vc_messtab2bapiret."convierte estructura messtab de BI a bapiret2
      "vc_messtab2bapiret messtab bapiret2.
      "lo hace de línea en línea, no usando tablas
      perform vc_messtab2bapiret using &1 changing &2.
    END-OF-DEFINITION.
    *
    FORM vc_messtab2bapiret USING pbi TYPE bdcmsgcoll
                          CHANGING pbapi TYPE bapiret2.
      pbapi-type = pbi-msgtyp.
      pbapi-id = pbi-msgid.
      pbapi-number = pbi-msgnr.
      pbapi-message_v1 = pbi-msgv1.
      pbapi-message_v2 = pbi-msgv2.
      pbapi-message_v3 = pbi-msgv3.
      pbapi-message_v4 = pbi-msgv4.
    ENDFORM.                    "vc_messtab2bapiret
    ***********************************************************************
    DEFINE vc_bapiret2messtab. "convierte estructura bapiret2 a messtab de BI
      "vc_bapiret2messtab bapiret2 messtab.
      "lo hace de línea en línea, no usando tablas
      perform vc_bapiret2messtab using &1 changing &2.
    END-OF-DEFINITION.
    *
    FORM vc_bapiret2messtab USING pbapi TYPE bapiret2
                         CHANGING pbi TYPE bdcmsgcoll.
      pbi-msgtyp = pbapi-type.
      pbi-msgid = pbapi-id.
      pbi-msgnr = pbapi-number.
      pbi-msgv1 = pbapi-message_v1.
      pbi-msgv2 = pbapi-message_v2.
      pbi-msgv3 = pbapi-message_v3.
      pbi-msgv4 = pbapi-message_v4.
    ENDFORM.                    "vc_bapiret2messtab
    ***********************************************************************
    DEFINE vc_messtab2mensaje. "convierte estructura messtab en mensaje verbal
      "vc_messtab2mensaje messtab cadenadetexto
      perform vc_messtab2mensaje using &1 changing &2.
    END-OF-DEFINITION.
    *
    FORM vc_messtab2mensaje USING pbi TYPE bdcmsgcoll
                         CHANGING pmensaje.
    
      DATA lmsgid LIKE sy-msgid.
      DATA lmsgnr LIKE sy-msgno.
      DATA lmensaje LIKE sy-lisel.
      DATA lmsgv1 TYPE symsgv.
      DATA lmsgv2 TYPE symsgv.
      DATA lmsgv3 TYPE symsgv.
      DATA lmsgv4 TYPE symsgv.
    
      lmsgid = pbi-msgid.
      lmsgnr = pbi-msgnr.
      lmsgv1 = pbi-msgv1.
      lmsgv2 = pbi-msgv2.
      lmsgv3 = pbi-msgv3.
      lmsgv4 = pbi-msgv4.
    
      CALL FUNCTION 'RPY_MESSAGE_COMPOSE'
        EXPORTING
          language          = sy-langu
          message_id        = lmsgid
          message_number    = lmsgnr
          message_var1      = lmsgv1
          message_var2      = lmsgv2
          message_var3      = lmsgv3
          message_var4      = lmsgv4
        IMPORTING
          message_text      = lmensaje
        EXCEPTIONS
          message_not_found = 1
          OTHERS            = 2.
      IF sy-subrc <> 0.
        CLEAR lmensaje.
      ENDIF.
      pmensaje = lmensaje.
    ENDFORM.                    "vc_messtab2mensaje
    ***********************************************************************
    DEFINE vc_bapiret2mensaje."convierte estructura bapiret2 en mensaje verbal
      perform vc_bapiret2mensaje using &1 changing &2.
    END-OF-DEFINITION.
    *
    FORM vc_bapiret2mensaje USING pbapi TYPE bapiret2
                         CHANGING pmensaje.
      DATA lbi TYPE bdcmsgcoll.
      vc_bapiret2messtab pbapi lbi.
      vc_messtab2mensaje lbi pmensaje.
    ENDFORM.                    "vc_bapiret2mensaje
    ***********************************************************************
    Para más información: http://glob.cranf.net/?p=395
    Editado por última vez por koken; 18/02/2010, 12:17:43.
Trabajando...
X