Anuncio

Colapsar
No hay anuncio todavía.

Ponerle un filtro a un CDS VIew en SAC

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

  • Ponerle un filtro a un CDS VIew en SAC

    Hola,

    tengo la siguiente duda, cómo puedo hacer para filtrar un CDS View en SAC para que no me traiga todo al momento de realizar la importación de datos? por ejemplo me interesaría un filtro por tipos de documentos, fechas o algo por el estilo. Es posible?

    Muchas gracias de antemano.

  • #2
    Hola Juanma,

    Estoy trabajando con la integración S/4HANA y SAC. En mi caso estoy utilizando un conexión del tipo "Live data". Para ello me he creado una CDS View y luego un BW Query.

    He intentado crear parámetros de selección en la CDS View pero me da el siguiente error "Infoobject ***X must be uniquely selected in the query". Como solución provisional, he optado por crear un filtro directamente en la BW Query, pero tienes una penalización alta en el rendimiento. Lo ideal sería filtrar en la CDS View.

    Sigo investigando. Ya comentamos cualquier avance en este tema.

    Saludos,

    Comentario


    • #3
      Hola Chivi82, te menciona infoobjet como si fuera una conexión BW, probaste hacerlo directo contra la CDS? Y respecto a lo de BW, qué tipo de penalización viste en el rendimiento? las pocas pruebas que hice me funcionaron muy bien hasta ahora.

      Aguardo tus comentarios, porque todo esto es muy nuevo y se van dando situaciones nuevas día a día.

      Comentario


      • #4
        Buenos días Koken,

        He intentado por todos los medios realizar la conexión directa contra la CDS View pero no hay manera. Cuando voy a crear el modelo no me aparece mis CDS Views ni su transient provider generado. Por ello me veo obligado a crear una Query Bex.

        He probado definir la CDS View de dos formas mediante las anotaciones @, ninguna de las 2 me funciona:
        • Opción 1:
        @AbapCatalog.sqlViewName: 'ZV_TEST'
        @AbapCatalog.compiler.compareFilter: true
        @AbapCatalog.preserveKey: true
        @AccessControl.authorizationCheck: #CHECK
        @EndUserText.label: 'Test data definition MFM'
        @Analytics.dataCategory: #CUBE
        • Opción 2
        @AbapCatalog.sqlViewName: 'ZVTEST2'
        @AbapCatalog.compiler.compareFilter: true
        @AbapCatalog.preserveKey: true
        @AccessControl.authorizationCheck: #NOT_REQUIRED
        @EndUserText.label: 'Test data definition MFM'
        @Analytics.query: true
        @VDM.viewType: #CONSUMPTION

        En las 2 opciones he añadido la anotación @DefaultAggregation: #SUM antes de cada ratio.

        ¿Me podrías indicar como declaras tus CDS Views para que se vean directamente en SAC?

        Muchas gracias de antemano.

        Saludos,

        Comentario


        • #5
          Hola!

          por defecto estas son mis anotaciones:

          Código:
          @AbapCatalog.sqlViewName: 'Z_TEST'
          @AbapCatalog.compiler.compareFilter: true
          @AccessControl.authorizationCheck: #CHECK
          @EndUserText.label: 'Verificación'
          @Analytics.dataCategory: #CUBE
          Otra cosa que podés probar es si ves otros CDS estándar, para descartar que otro sea el problema.
          Y ahora va otra consulta, que conexión usas para ver los CDS? porque en una empresa me ocurrió (por el momento desconozco la razón), sólo veía mis CDS View si hacía la conexión vía BW.

          Y por último, quizás suene muy obvio pero probaste buscar el CDS por sqlviewName y por el otro nombre?

          Comentario


          • #6
            Hola Koken,

            Mi problema es que al crear el modelo en SAC no puedo seleccionar las CDS Views directamente.

            Revisando foros he encontrado este esquema:
            Haga clic en la imagen para ver una versión más grande

Nombre:	Esquema S4HANA + SAC.jpg
Visitas:	1488
Size:	110,9 KB
ID:	37957

            He marcado en rojo el inicio del proceso (CDS View) y el destino (SAP Analytics Cloud). Según el esquema parece que existen 2 formas de realizar la conexión:
            • Analytic Query.
            • BW Query (yo he utilizado esta opción).
            Parece que es necesario crear una Query (ya sea Analytic Query o BW Query) para poder consumir la información en SAC. Sólo que en la mayoría de ejemplos y documentación se comentar que al añadir las anotaciones en el CDS View es suficiente (es lo que intentaba probar).

            Sigo teniendo mis dudas. ¿Tú puedes seleccionar las CDS Views creadas al crear un modelo en SAC?

            Al crear el modelo en SAC sí me aparecen otras fuentes de datos pero parecen que tienen nombre de Queries no de CDS Views.

            Saludos,

            Comentario


            • #7
              Hola! si pude sin problemas,

              probaste poniendo las anotaciones que te mencioné? igualmente ten en cuenta que cuando me funcionó consumí el CDS sin pasar por un BEx Query utilizando la conexión de BW y no la de S/4.

              Probaste con la conexión de BW si podés ver los CDS estándar como pueden ser por ejemplo el I_MATERIALSTOCK o algún otro estándar.

              Avisame si puedo ayudarte con algo más.

              Comentario


              • #8
                Buenos días,

                He vuelto a retomar este tema. Mi intención es la de comparar el tipo de conexiones Live Data Connection vs Import Data Connection cuando se consultan datos de un sistema fuente S/4HANA on-premise y se requiere mostrarlos en un SAC. Paso a comentar varias aspectos:

                1) Live Data Connection:
                • Se ha podido crear un modelo a partir de un Query Bex. Esta Query Bex consulta datos de un transient infoprovider (generado por un ZCDS View). En las anotaciones de la cabecera se ha utilizado: @Analytics.dataCategory: #CUBE. El resumen del proceso sería: Tabla Base de datos -> ZCDS View -> Transient Infoprovider -> Query Bex -> Modelo
                • Se ha podido crear un modelo directamente a partir de un CDS view. En las anotaciones de la cabecera se ha utilizado: @VDM.viewType: #CONSUMPTION, @Analytics.query: true y @OData.publish: true. Posteriormente ha sido necesario liberar la CDS view. El resumen de proceso sería: Tabla base de datos -> ZCDS View -> Modelo.
                • No es posible seleccionar la CDS View estándar C_SALESORDERITEMQRY tampoco I_MATERIALSTOCK.
                2) Import Data Connection:
                • NO he podido crear ningún data source que me aparezca en la pantalla de selección a la hora de crear un modelo de tipo Import Data Connection.
                • Si es posible seleccionar la CDS View estándar C_SALESORDERITEMQRY.
                • NO es posible seleccionar la CDS View estándar I_MATERIALSTOCK.
                Conclusiones:
                • En Live Data Connection es posible generar data source a partir de diferentes formas (Query Bex o CDS View odata).
                Problema:
                • No he logrado crear una Import Data Connection, ni con Odata ni con Query Bex.
                • En Importa Data Connection no me aparece algunas CDS Views estándar como C_SALESORDERITEMQRY.
                Agradecería un poco de ayuda. Muchas gracias de antemano.

                Saludos,
                Editado por última vez por chivi82; 26/11/2019, 09:42:18.

                Comentario


                • #9
                  Buenos días Juanma,

                  Volviendo a tu pregunta original, para filtrar datos existen multitud de opciones, te comento algunas:
                  1. Filtrar en la CDS View añadiendo WHERE en la sentencia del SELECT. Un ejemplo WHERE EKKO.BSART = 'NB'.
                  2. Filtrar en la CDS View creando un parámetro y añadiendo WHERE en la sentencia del SELECT. Un ejemplo WHERE ekorg = _ekorg.
                  3. Filtrar en la Query Bex mediante parámetro (opcional -> existe la posibilidad de crear una Query Bex sobre un transient provider generado por la CDS View).
                  4. Filtrar en la Query generada en SAC (generada automáticamente al utilizar una conexión Import Data Connection). Se adjunta pantallazo.
                  5. Filtrar en la Historia mediante un filtro de historia.
                  6. Filtrar en la Historia mediante un filtro de página.
                  Espero que te haya ayudado.

                  Aprovecho para comentar que finalmente he podido utilizar mis CDS Views en SAC. El problema es que S/4HANA tiene dos entornos: Front-end-server (FES) y Back-end-server (BES). Y las conexiones se deben definir para que accedan a FES, en mi caso la conexión está conectada con BES. Este dato es de vital importancia cuando se requiere crear una CDS View con una conexión de Importa data connection y es necesario crear el servicio por la transacción /IWFND/MAINT_SERVICE.

                  Gracias koken.

                  Saludos,
                  Archivos Adjuntos
                  Editado por última vez por chivi82; 29/11/2019, 11:42:21.

                  Comentario

                  Trabajando...
                  X