Foro -Documentación -Código fuente -Contacto -Empleo

Buscar

Traducir

Amazon

Z_CALL_BI PDF Imprimir E-mail
Usar puntuación: / 0
MaloBueno 
Código fuente - Utilidades varias
Sábado, 05 de Junio de 2004 02:08
Ejecutar juego datos BI en modo Call Transaction
REPORT z_call_bi.
PARAMETERS: queue_id LIKE apqd-qid.
PARAMETERS: e_group(12) DEFAULT 'MMWM-OUT'. 

DATA:   l_mstring(480).
DATA:   l_subrc LIKE SY-SUBRC.
DATA:   messtab LIKE bdcmsgcoll OCCURS 0 WITH HEADER LINE.
DATA:   tabla LIKE bdcdata OCCURS 0 WITH HEADER LINE.
DATA:   e_group_opened.
DATA:   fnam(20).
TABLES: t100,  apqi,  tstc.

START-OF-SELECTION.

  SELECT SINGLE * FROM apqi WHERE qid = queue_id.
  IF SY-SUBRC NE 0.
    EXIT.
  ENDIF.

  DO apqi-puttrans TIMES.
    CALL FUNCTION 'BDC_OBJECT_READ' 
         EXPORTING
               queue_id = queue_id
*         DATATYPE         = '%BDC'
              trans = sy-index
         TABLES
               dynprotab = tabla
              .
    IF SY-SUBRC <> 0.
       MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
              WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
    ENDIF.
    REFRESH messtab.
    LOOP AT tabla WHERE dynbegin = 'T'. 
       fnam = tabla-fnam.
      DELETE tabla.
    ENDLOOP.
    SELECT SINGLE * FROM tstc WHERE tcode = fnam.

    IF SY-SUBRC = 0.  " This transaction has been executed with rc ne 0.
      CALL TRANSACTION fnam USING tabla
                        MODE  'E' 
                       UPDATE 'S' 
                        MESSAGES INTO messtab.
       l_subrc = SY-SUBRC.
      WRITE: / 'CALL_TRANSACTION', 

                'returncode:'(i05), 
                l_subrc,
                'RECORD:', 
                sy-index.
      LOOP AT messtab.
        SELECT SINGLE * FROM t100 WHERE sprsl = messtab-msgspra
                                  AND   arbgb = messtab-msgid
                                  AND   msgnr = messtab-msgnr.
        IF SY-SUBRC = 0.
           l_mstring = t100-text.
          IF l_mstring CS '&1'. 
             REPLACE '&1'  WITH messtab-msgv1 INTO l_mstring.
             REPLACE '&2'  WITH messtab-msgv2 INTO l_mstring.
             REPLACE '&3'  WITH messtab-msgv3 INTO l_mstring.
             REPLACE '&4'  WITH messtab-msgv4 INTO l_mstring.
          ELSE.
             REPLACE '&'  WITH messtab-msgv1 INTO l_mstring.
             REPLACE '&'  WITH messtab-msgv2 INTO l_mstring.
             REPLACE '&'  WITH messtab-msgv3 INTO l_mstring.
             REPLACE '&'  WITH messtab-msgv4 INTO l_mstring.
          ENDIF.
          CONDENSE l_mstring.
          WRITE: / messtab-msgtyp,  l_mstring(250).
        ELSE.
          WRITE: / messtab.
        ENDIF.
      ENDLOOP.
      SKIP.

      IF l_subrc <> 0 AND e_group <> space.
        IF e_group_opened = ' '. 
          CALL FUNCTION 'BDC_OPEN_GROUP' 
               EXPORTING
                     client = sy-mandt
                    GROUP = e_group
                     user = 'DI013' 
                     keep = 'X'. 
           e_group_opened = 'X'. 
        ENDIF.
        CALL FUNCTION 'BDC_INSERT' 
             EXPORTING
                   tcode = fnam
             TABLES
                   dynprotab = tabla.
      ENDIF.
    ENDIF.
    REFRESH tabla.
  ENDDO.
  CALL FUNCTION 'BDC_CLOSE_GROUP'. 

Comentarios
Buscar
¡Sólo los usuarios registrados pueden escribir comentarios!

3.26 Copyright (C) 2008 Compojoom.com / Copyright (C) 2007 Alain Georgette / Copyright (C) 2006 Frantisek Hliva. All rights reserved."

 
home search