Anuncio

Colapsar
No hay anuncio todavía.

Refenciar a tablas desde una rutina de regla de actuzalicación

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

  • Refenciar a tablas desde una rutina de regla de actuzalicación

    Buenas,

    tengo la duda de cómo puedo desde dentro de una rutina de una regla de actualización hacer referencia a una tabla estandar.

    Por ejemplo, dentro de la rutina me llega la estructura que le paso y además me gustaría hacer (dentro de la rutina) una select a la tabla kna1.

    Por los ejemplos que he visto suelen declarar las tablas como
    TABLES: /bic/knb1. pero me dice que
    E:The Dictionary structure or table "/BIC/KNB1" is either not active or
    does not exist.

    Supongo que fallo en el concepto.
    Si alguien me lo pudiese explicar o decirme dónde puedo encontrar documentación se lo agradecería.

    Saludos

  • #2
    Hola David,

    sólo tendrías que declarar la tabla interna que vos querés para almacenar los datos a usar, pero la estándar no le tenés que hacer nada sólo la llamas desde el select.

    Y la tabla es que intentas declarar justamente te da ese error porque no existe en el sistema.

    Saludos!

    Comentario


    • #3
      Refenciar a tablas desde una rutina de regla de actuzalicación

      Koken, algo debo estar haciendo mal porque me sigue sin reconocer las tablas estandar.
      Por ejemplo, cualguiera de las declaraciones siguiente, me falla:

      DATA: i_dist TYPE TABLE OF lfa1 WITH HEADER LINE.
      TABLES: lfa1.
      DATA: nombre LIKE lfa1-name1.

      Me dice:
      E:"LFA1-NAME1" is not defined in the ABAP Dictionary as a table

      Pego como tengo la rutina. Es básica y me falla cuando hago referencia a alguna tabla estandar:
      PROGRAM UPDATE_ROUTINE.
      *$*$ begin of global - insert your declaration only below this line *-*
      * TABLES: ...
      * DATA: ...
      *$*$ end of global - insert your declaration only before this line *-*


      FORM compute_data_field
      TABLES MONITOR STRUCTURE RSMONITOR "user defined monitoring
      USING COMM_STRUCTURE LIKE /BIC/CSZPROCESOS4EXCEL
      RECORD_NO LIKE SY-TABIX
      RECORD_ALL LIKE SY-TABIX
      SOURCE_SYSTEM LIKE RSUPDSIMULH-LOGSYS
      CHANGING RESULT LIKE /BIC/VZPROCESO4T-/BIC/ZPREM_ACE
      RETURNCODE LIKE SY-SUBRC
      ABORT LIKE SY-SUBRC. "set ABORT <> 0 to cancel update
      *
      *$*$ begin of routine - insert your code only below this line *-*
      * fill the internal table "MONITOR", to make monitor entries

      *DATA: i_dist TYPE TABLE OF lfa1 WITH HEADER LINE.
      ** TABLES: lfa1.
      *** DATA: ikna1 like kna1.
      ** DATA: s_dlifnr LIKE lfa1-name1.

      DATA: nombre(35) type c.

      * result value of the routine
      ** DATA: existe TYPE int1.
      ** DATA: iysd002 TYPE ysd002.
      IF COMM_STRUCTURE-/BIC/ZCONT = 1.

      *???? FALLA LA SELECT. DICE QUE NO RECONOCE lfa1.
      SELECT name1 INTO nombre
      FROM lfa1-name1
      WHERE bukrs = 1100
      AND lifnr = '0002000073'.

      RESULT = 1.
      ELSEIF COMM_STRUCTURE-/BIC/ZCONT1 = 1.
      RESULT = 0.
      ENDIF.

      * if the returncode is not equal zero, the result will not be updated
      RETURNCODE = 0.
      * if abort is not equal zero, the update process will be canceled
      ABORT = 0.

      **/BIC/ZLOTEITA

      *$*$ end of routine - insert your code only before this line *-*
      *
      ENDFORM.

      ....

      Comentario


      • #4
        Hola,

        tu problema claramente es que quieres declarar tablas como LFA1 de R/3 y esas tablas no se encuentran en SAP BI BW.

        Saludos!

        Comentario


        • #5
          Refenciar a tablas desde una rutina de regla de actuzalicación

          koken,

          ¿hay algún modo de referenciarlas?..

          Comentario


          • #6
            Hola,

            deberías crear un extractor para traerte los datos de esa tabla y ahí podrías usarlas.

            Saludos!

            Comentario


            • #7
              Refenciar a tablas desde una rutina de regla de actuzalicación

              Hola koken,

              tengo un extractor que me coje los datos de la tabla. En la rutina, mi duda es como hago la consulta.

              Me genera lo siguiente:
              FORM compute_data_field
              TABLES MONITOR STRUCTURE RSMONITOR "user defined monitoring
              USING COMM_STRUCTURE LIKE /BIC/CSZPROCESOS4R3
              RECORD_NO LIKE SY-TABIX
              RECORD_ALL LIKE SY-TABIX
              SOURCE_SYSTEM LIKE RSUPDSIMULH-LOGSYS
              CHANGING RESULT LIKE /BIC/VZPROCESO4T-/BIC/ZPREM_ACE
              RETURNCODE LIKE SY-SUBRC
              ABORT LIKE SY-SUBRC. "set ABORT <> 0 to cancel update
              ????

              Comentario


              • #8
                Hola,

                la consulta debes hacerla en el lugar donde dejas los datos, por ejemplo un ODS.

                Saludos.

                Comentario


                • #9
                  Refenciar a tablas desde una rutina de regla de actuzalicación

                  Hola koken,

                  perdona pero no veo dónde puedo hacer la select. Con el ODS que he hecho consigo unos datos consolidados de la tabla. Luego monto la regla de actualización pero lo que vuelvo a recibir en la regla de actualización es una estructura de comunicación y dentro de la rutina no veo cómo puedo hacer una consulta select???

                  Comentario


                  • #10
                    Me refería a que realices las consultas a las tablas que genera ese ODS donde depositaste los datos.

                    Saludos!

                    Comentario

                    Trabajando...
                    X