Anuncio

Colapsar
No hay anuncio todavía.

Rutina de actualización de infoobjeto: ABAP

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

  • Rutina de actualización de infoobjeto: ABAP

    Hola a todos,

    En una regla de actualización necesito actualizar un infoobjeto con una rutina de actualización. He de actualizar un ODS con los campos de un InfoCubo. En el InfoCubo tengo el siguiente campo:
    • FPKI
      • Atributos del InfoObjeto FPKI:
        • Calendario 1
        • Calendario 2


    En el ODS el campo que he de actualizar es Calendario de manera que sea la concatenación de Calendario 1 y Calendario 2.

    En la rutina sé que me puedo referir al campo FPKI del InfoCubo mediante COMM_STRUCTURE-FPKI pero lo que no sé es cómo puedo hacer referencia a los atributos de este campo... ya que así en RESULT podría concatenarlos.

    Si alguien me puede ayudar se lo agradecería. Muchas gracias de antemano.

    Saludos

  • #2
    Hola,

    sólo con poner las flechas hacia ese campo en la regla de actualización te tiene que aparecer ese campo como valor de entrada.

    Saludos!

    Comentario


    • #3
      Hola koken,

      el problema es que tengo que concatenar dos infoobjetos para actualizar uno, es decir a la hora de actualizar Calendario ha de ser la concatenación de Calendario 1 y Calendario 2, y estos dos ultimos no estan en el Cubo (fuente de datos) pero si son atributos de un infoobjeto (FPKI) que si que esta en el InfoCubo.

      Gracias de todos modos.

      Comentario


      • #4
        Posible solución

        Hola,

        me han explicado una posible solución. A través de la tabla P del InfoObjeto FPKI (/BIC/PYCFM_0003) puedo acceder a sus atributos, entonces en la rutina con un select en esa tabla y una condición de que FPKI valga lo de la COMM_STRUCTURE, selecciono los atributos que necesito y entonces sólo es concatenar esos dos campos en el result de la rutina.

        Pongo el código para que quede más claro:

        PROGRAM UPDATE_ROUTINE.
        *$*$ begin of global - insert your declaration only below this line *-*
        TABLES: /BIC/PYCFM_0003.
        DATA: it_fpki TYPE TABLE OF /BIC/PYCFM_0003 WITH HEADER LINE.
        *$*$ 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/CS8ICFM_0002
        RECORD_NO LIKE SY-TABIX
        RECORD_ALL LIKE SY-TABIX
        SOURCE_SYSTEM LIKE RSUPDSIMULH-LOGSYS
        CHANGING RESULT LIKE /BIC/AOCFM_00700-/BIC/YCFM_0091
        RETURNCODE LIKE SY-SUBRC "Do not use!
        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

        * Selección de los atributos Calendario 1 y Calendario 2 del InfoObjeto
        * FPKI, guardándolos en una tabla interna.
        SELECT /BIC/YCFM_0084 /BIC/YCFM_0085 FROM /BIC/PYCFM_0003 INTO TABLE
        it_fpki WHERE /BIC/YCFM_0003 = COMM_STRUCTURE-/BIC/YCFM_0003.

        * Ordenación de la tabla interna
        SORT it_fpki.

        * Eliminación de registros duplicados
        DELETE ADJACENT DUPLICATES FROM it_fpki.

        * Concatenación de los campos Calendario 1 y Calendario 2, y el
        * resultado se guarda en RESULT.
        CONCATENATE it_fpki-/BIC/YCFM_0084 it_fpki-/BIC/YCFM_0085 INTO RESULT.

        * result value of the routine
        * RESULT = it_fpki-/BIC/YCFM_0084 + it_fpki-/BIC/YCFM_0085.
        * if abort is not equal zero, the update process will be canceled
        ABORT = 0.

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

        Éste código no se si funciona, así que es posible que no sea del todo correcto pero es un comienzo...

        Si alguien sabe cómo puedo probar si funciona una rutina de actualización me sería muy útil para comprovar su funcionamiento.

        Muchas gracias.

        Comentario

        Trabajando...
        X