Cómo relacionar AFO y Queries en SAP BW/4HANA

En el post de hoy os quería contar algo que me ha sucedido y que estando en BW4HANA 2.0 no se había planteado, sacar la relación de Workbook AFO con las queries que lo van a conformar. Algo que sabíamos como sacarlo…. pero han cambiado algunas cosas….

¿Quieres ver de un vistazo qué queries están asociadas a tus libros de trabajo AFO en BW/4HANA? Os dejo un desarrollo ABAP CDS o un pequeño programa ABAP lo hace posible, mostrando los workbooks AFO, sus queries y los textos asociados. También es posible sacar secuencias y funciones de planificación, ver de esta forma rápida donde se usan.


Anteriormente….

En versiones anteriores de BW, se podía obtener esta relación consultando tablas como RSRWBOOKT o RSRREPDIR. Sin embargo, en BW/4HANA 2.0, estas tablas ya no contienen datos útiles para los workbooks AFO. Esto significaba que los métodos antiguos que teníamos devuelven cero registros, lo que nos obligaba a buscar una nueva estrategia para relacionar los libros de trabajo con sus queries.

La solución fue utilizar tablas como:

  • RSAOOBJ y RSAOOBJT → información y textos de los workbooks.
  • RSAOOBJXREF → dependencias entre AFO, queries, secuencias….
  • RSZCOMPDIR y RSZELTTXT → IDs y textos de las queries asociadas.

Los workbooks AFO pueden contener múltiples elementos (queries, funciones, secuencias), y saber cuáles se usan puede ser tedioso si se hace manualmente. La solución: un programa ABAP que recupere toda la información de RSAOOBJ, RSAOOBJXREF, RSZCOMPDIR y RSZELTTXT.

Programa ABAP optimizado con JOINs

Con esta sencilla Select, obtenemos toda la información en un solo paso, después lo puedes «pintar» con ALV precioso, con varios parámetros de selección, por ejemplo. Para un seguimiento rápido de un administrador o el propio consultor.

SELECT a~techname,
b~descr AS wb_text,
c~compid,
t~txtlg AS qu_text,
x~objnm,
a~objvers,
a~owner,
a~timestmp
FROM rsaoobj AS a
INNER JOIN rsaoobjt AS b ON a~techname = b~techname
AND b~langu = @sy-langu
INNER JOIN rsaoobjxref AS x ON a~techname = x~techname
AND a~objvers = x~objvers
AND x~tlogo = 'ELEM'
LEFT OUTER JOIN rszcompdir AS c ON x~objnm = c~compuid
AND c~objvers = 'A'
LEFT OUTER JOIN rszelttxt AS t ON c~compuid = t~eltuid
AND t~objvers = 'A'
AND t~langu = @sy-langu
INTO TABLE @gt_out
WHERE a~techname IN @s_wb.
ABAP CDS para SAC o Analysis for Office

Ya que no podemos porque no hacer un ABAP CDS, para integraciones modernas, se puede replicar esta lógica en CDS View, exponiendo la relación AFO – query directamente a herramientas como SAC, AFO o BW por ejemplo.


define view ZCDS_AFO_QUERY as
   select from rsaoobj as a
     inner join rsaoobjt as b on a.techname = b.techname
     inner join rsaoobjxref as x on a.techname = x.techname
                                and a.objvers = x.objvers
                                and x.tlogo = 'ELEM'
     left outer join rszcompdir as c on x.objnm = c.compuid
     left outer join rszelttxt as t on c.compuid = t.eltuid
     {
          a.techname as Workbook,
          b.descr as WorkbookText,
          x.objnm,
          c.compid as QueryName,
          t.txtlg as QueryText
}

De igual forma podemos hacer una Vista HANA. Para luego tenerla disponible con Open ODS View o Composite Provider de SAP BW4 etc etc

Me parecía una forma sencilla de ver todas las relaciones y buena para poder documentar o empezar a ver modelos de datos desde los AFO que se utilizan

Publicado por Óscar Gómez Huertas

Os dejo mi perfil https://www.linkedin.com/in/oscar-gomez-huertas/

Deja un comentario