Pages

Showing posts with label UJ. Show all posts
Showing posts with label UJ. Show all posts

Nov 12, 2014

SAP BW/BPC - some usefull Transation codes

BW/BPC Transaction Code Description

1 UJ_VALIDATION Validation Maintenance (Old version - currently implemented using CONTROLS in BPC
2 UJ0_IMG_01 BPC Parameters
3 UJ0_IMG_02 BPC AppSet Parameters
4 UJ0_IMG_03 Model Parameters
5 UJ00 BPC Configuration
6 UJBPCTR Transports - Create Request
7 UJBR P&C: Backup & Restore Tool
8 UJETC UJE Transaction Data Check
9 UJFS File Service
10 UJKT Script Logic Tester
11 UJLD auto update msp file upload
12 UJQ0 Query Runtime Parameters
13 UJR0 Writeback Runtime Parameters
14 UJSTAT Performance Statistics Report
15 UJUT_DATA Unit Test Data Maintain

Feb 2, 2011

Tablas de Work Status

Todas las tablas de work status empiezan por * UJW, por lo que se puede hacer una búsqueda de la tabla en las transacciones SE16 o SE11.


El work status bloquea los registros que están almacenados en una tabla que se genera. Dicha tabla utiliza la convención de nombres /1CPMB/LKWS.

Lo que se puede hacer es, mirar la tabla UJA_APPSET_INFO y obtener el prefijo AppSet. A continuación ir a la tabla UJA_APPL para obtener el prefijo de la aplicación.

O también puede utilizar un programa para revisar el work status y este nos da el nombre de la tabla generada. Para hacer esto tiene que ir a la transacción SE38, introduzca el nombre de programa UJW_WS_TEST y haga clic en "ejecutar".

Seleccione el ID de AppSet y Id. de aplicación. A continuación, haga clic en la tabla de "Bloqueo", y el programa determinará el nombre de la tabla generada y ya puede ver la tabla en la transacción SE16.






Esta API puede ser utilizada para manipular los datos en estas tablas. (No recomiendo hacerlo, pero es posible). Las APIs para el work status son módulos de función que empiezan por UJW *. Estas funciones son simples contenedores de gestión de clases del work status (work status manager class) que están en  CL_UJW_WORK_STATUS_MGR.

Feb 1, 2011

Validaciones en BPC. Nueva Seguridad

Como sabemos, SAP BPC versión Netweaver tiene algunas características que funcionan de manera diferente a la versión de Microsoft. Las Validaciones de BPC es una de ellos.

Vamos a ver cómo estas validaciones pueden servir de gran ayuda en el mantenimiento de la integridad de datos.


El propósito de tener validaciones, como habrás adivinado, es evitar que registros inválidos o erroneos se graben en el cubo. Ahora bien, esta afirmación puede plantear muchas preguntas.
¿Válidos de acuerdo con quién o qué?

Lo que es válido para una aplicación BPC puede ser válido para otras aplicaciones. Algo puede no ser válido si se introduce de forma manual, pero lo mismo puede ser válido si se carga desde un paquete del Data Manager.

¿En qué se diferencia esto de tener un Script Logic para revisar y borrar los registros "no válidos"? Vamos a tratar de entender esta función y responder a algunas preguntas.

En primer lugar, las validaciones de SAP BPC 7 NW no dejan que registros inválidos se escriban en la base de datos. Esta es la diferencia de tener un Script Logic para corregir o borrar los registros no válidos, porque para corregir los registros no válidos, los registros primero debe estar disponibles en el cubo.

¿Quién determina si un registro es válido o no válido? El usuario controla lo que es válido y lo que no es válida.


Así que la siguiente pregunta lógica es cómo se puede crear dichas validaciones. Bueno, para hacer eso, por ahora, tenemos que ir a SAP GUI de BPC. En SAP GUI, la operación para mantener la validación es UJ_VALIDATION.


Para comenzar con las validaciones, tenemos que definir una dimensión conductora. Una aplicación sólo puede tener una dimensión conductora, pero varias aplicaciones en el mismo conjunto de aplicaciones pueden tener la misma dimensión conductora, si así se quiere. No es obligatorio definir la dimensión conductora para cada solicitud, si queremos crear validaciones para unas pocas aplicaciones. Como se muestra a continuación, podemos elegir la que debe de ser nuestra dimensión controladora para la aplicación, en nuestro conjunto de aplicaciones.







El siguiente paso es establecer reglas de validación por la dimensión. Así que tenemos que elegir primero la dimensión de la que se va a establecer la norma, tal como se muestra a continuación.






En cuarto lugar, a la hora de elegir los miembros asignados al crear la regla, hay que tener en cuenta que un miembro puede asignarse a varias reglas y una regla puede aplicarse a varios miembros. En otras palabras, es una relación N: N entre los miembros de dimensión y las reglas de validación. Si un miembro de dimensión se rige por la regla 1, regla 3 y regla 6, las tres normas deben cumplirse.


Por último, debe tenerse en cuenta que cuando se están definiendo las reglas, estamos definiendo las dimensiones y los miembros de la dimensión pero en ninguna parte se trata la aplicación. Entonces, ¿qué significa esto? Esto significa que las reglas que se definen aquí son aplicables a todas las aplicaciones en las que la dimensión de la que estamos creando las reglas es su dimensión conductora.

Así en el ejemplo anterior, las reglas que hemos creado para P_ACCT serán aplicables a todas las aplicaciones del AppSet donde P_ACCT sea dimensión conductora.

Si las reglas que queremos definir son complejas y no se puede configurar simplemente con = y <>, entonces podemos implementar esas normas como BADI y en el mantenimiento de la regla, podemos seleccionar la aplicación badi como se muestra a continuación.




Podemos establecer varias reglas para cada dimensión y podemos asignar los miembros de la dimensión para cada regla. Cada regla puede incluir más dimensiones y más miembros de la dimensión.


En la captura de pantalla siguiente se muestra un ejemplo de una regla para la dimensión P_ACCT. Esta regla es válida para los miembros dentro del intervalo [ CE0004000 CE0005000 ] y afirma que la dimensión Category no puede tener el valor 'FORECAST'



Debemos tener en cuenta lo siguiente en esta situación. En primer lugar, los miembros asignados son desde CE0004000 a CE0005000 - ¿así que tenemos que tener los miembros CE0004000 y CE0005000 como miembros válidos para la dimensión P_ACCT?

La respuesta es NO.

No es necesario que estos miembros estén definidos como miembros de la dimensión. Esto funciona como si fueran comodines. Si definimos la regla de arriba, será válida para todos los miembros válidos dentro de este rango. Por lo tanto los miembros como CE0004510, CE0004520, etc, deben de obedecer esta regla, pero los miembros como CE0005010,CE0003990, etc, no estarán obligados por esta norma.

Así que esto nos abre una posibilidad para definir un amplia rando, de 000000000 a ZZZZZZZ, para que todos los posibles miembros serán considerados en ese rango.

Para aquellos que han trabajado con SAP R/3 y SAP BW, puede que esten familiarizados con esta forma de trabajar.


En segundo lugar, aunque se pueden tener rangos de los miembros asignados a la dimensión de lo que estamos creando las validaciones, no podemos tener rangos en las dimensiones adicionales que elegimos en la norma.

Así que volviendo al ejemplo de la regla que hemos creado anteriormente para P_ACCT, no podemos definir los rangos de la Category y los miembros que elegimos para la Category deben de ser válidos para los miembros de esa dimensión. Los operadores disponibles son = y <>. Si optamos por <>, entonces podemos definir varios valores en la misma línea.

En tercer lugar, podemos utilizar múltiples dimensiones en una regla.




Hasta ahora hemos visto la manera de crear reglas de validación. La siguiente pregunta es que una vez que hemos definido estas reglas, tenemos que usarlas en todas partes o ¿tenemos opciones ? En la actualidad, tenemos las siguientes tres opciones.




Así que podemos activar las validaciones o desactivarlas para journal, la planificacion manual o Data Manager. El Data Manager incluye Script Logic y las reglas de consolidación.

Estas validaciones evitarán que los registros no válidos se guarden. Por ejemplo, si definimos la regla de validación y existe un dato no valido, nos aparecerá un mensaje de error como se muestra a continuación.



Podemos copiar o borrar las reglas de validación como parte del mantenimiento de la regla. También puede copiar las validaciones de un AppSet a otro si es necesario.

Las autorizaciones para el mantenimiento de las reglas de validación se rigen por las normas de autorización de SAP para la operación de mantener estas validaciones.

¿Qué pasaría si la dimensión, la que elegimos como dimensión conductora de las reglas de validación se eliminara del AppSet? En ese caso todas las reglas de validación para esa dimensión también se eliminan.

¿Y si borramos AppSet? Obviamente, todas las validaciones para este AppSet también se eliminarán.

Por lo tanto, tenemos otra validación que nos ayuda a mantener la integridad de los datos en la versión Netweaver de BPC.

Jan 31, 2011

Insertar caracteres no válidos en el ID de miembro

A más de alguno se le puede ocurrir introducir caracteres raros en la propiedad ID que viene por defecto en todas las dimensiones, o añadir cierto nombre a una aplicación. ¿Que restricciones existen a la hora de utilizar nombres en BPC para dimensiones, propiedades, ID, . . .? Esto podría ocasionar errores en el cliente Excel.


Como revisar estas palabras reservadas.

1.-Logeate en el sistema ABAP
2.-Vamos a la Tx SM30.
3.-Introduce la tabla/vista UJA_VALID_VAL


Estos son los valores que están restringidos. Según el parche que tengas instalado, y versión, esta tabla varía.
 A continuación te muestro algunos valores que pueden o no estar:

    NAME                                            VALUE

    INVALID_APPL_NAME_CHAR     !
   INVALID_APPL_NAME_CHAR     :
   INVALID_APPL_NAME_CHAR     ;
   INVALID_APPL_NAME_CHAR     |
   INVALID_APPSET_NAME        ADMINTEMPLATES
   INVALID_APPSET_NAME        ROOT
   INVALID_APPSET_NAME        WEBFOLDERS
   INVALID_APPSET_NAME_CHAR   !
   INVALID_APPSET_NAME_CHAR   :
   INVALID_APPSET_NAME_CHAR   ;
   INVALID_APPSET_NAME_CHAR   |
   INVALID_DIM_NAME           AMOUNT
   INVALID_DIM_NAME           APPL_ID
   INVALID_DIM_NAME           APPSET_ID
   INVALID_DIM_NAME           AUTO_REVERSED
   INVALID_DIM_NAME           BALANCED
   INVALID_DIM_NAME           COMMENT
   INVALID_DIM_NAME           CREDIT
   INVALID_DIM_NAME           DATEMODIFIED
   INVALID_DIM_NAME           DATEPOSTED
   INVALID_DIM_NAME           DATEWRITTEN
   INVALID_DIM_NAME           DEBIT
   INVALID_DIM_NAME           DESCRIPTION
   INVALID_DIM_NAME           EDITABLE
   INVALID_DIM_NAME           IDJ_AUTO_REV
   INVALID_DIM_NAME           IDJ_GROUP
   INVALID_DIM_NAME           IDJ_OLD
   INVALID_DIM_NAME           JRN_ID
   INVALID_DIM_NAME           JRN_TMPL_ID
   INVALID_DIM_NAME           KEYWORD
   INVALID_DIM_NAME           KPI
   INVALID_DIM_NAME           OFFLINE
   INVALID_DIM_NAME           ONLINE
   INVALID_DIM_NAME           POSTED
   INVALID_DIM_NAME           PRIORITY
   INVALID_DIM_NAME           RECORDID
   INVALID_DIM_NAME           REMARK
   INVALID_DIM_NAME           REOPEN
   INVALID_DIM_NAME           ROW_NUM
   INVALID_DIM_NAME           SCOMMENT
   INVALID_DIM_NAME           USER_ID
   INVALID_DIM_NAME           USERC
   INVALID_DIM_NAME           USERP
   INVALID_DIM_NAME           VARIABLET
   INVALID_DIM_NAME_CHAR      !
   INVALID_DIM_NAME_CHAR      (
   INVALID_DIM_NAME_CHAR      )
   INVALID_DIM_NAME_CHAR      *
   INVALID_DIM_NAME_CHAR      .
   INVALID_DIM_NAME_CHAR      :
   INVALID_DIM_NAME_CHAR      ;
   INVALID_DIM_NAME_CHAR      |
   INVALID_MBR_ID             TMVL
   INVALID_MBR_ID_CHAR        !
   INVALID_MBR_ID_CHAR        #
   INVALID_MBR_ID_CHAR        $
   INVALID_MBR_ID_CHAR        %
   INVALID_MBR_ID_CHAR        (
   INVALID_MBR_ID_CHAR        )
   INVALID_MBR_ID_CHAR        *
   INVALID_MBR_ID_CHAR        /
   INVALID_MBR_ID_CHAR        ;
   INVALID_MBR_ID_CHAR        ?
   INVALID_MBR_ID_CHAR        |
   INVALID_MBR_ID_CHAR        +

Estos valores los puedes introducir pero con mucho cuidado.

Antes tienes que ir a la Tx SE91, e introducir UJA_EXCEPTION, seleccionar "Cambiar", ir a la linea 270  e introducir, Invalid Appset ID '&1' y "Guardar".


Luego volvemos a la Tx anterior y en la misma UJA y tendrías que darle al botón de "Mantener"  y "Nueva Entrada". Una vez introducido los valor/es anteriores "Guardar".

Espero que esto alguna vez te pueda ayudar

Nov 6, 2010

Programas ABAP para recordar, UJ*

En las versiones SAP BPC 7.0 y 7.5 para NetWeaver existen una serie de programas ABAP que son necesarias conocer. Todas ellas empiezan por UJ*.

Además de que todas las tablas en BPC empiezan por UJ* pasaremos a describir una serie de programas que son básicas.


•    UJ0_STATISTICS_DELETE – Elimina los registros de estadísticas antiguos.

•    UJ_MEMACS_MAINTAIN – Vuelva a construir el acceso cache a los miembros

•    UJA_COPY_APPLICATION – Copiar una aplicación, como ves lo puedes hacer en BW en vez de utilizar el cliente BPC ADMIN

•    UJA_COPY_APPSET – Copiar un conjunto de aplicaciones ( app set) desde BW.

•    UJA_DATA_CHECKER – Revisar los metadatos del conjunto de aplicaciones – Similar a RSRV en BW. Revisa las dimensiones, seguridad, estructura de ficheros, . . .es una buena opción para arreglar errores.

•    UJA_REFRESH_DIM_CACHE – Para actualizar el cache de todos los usuarios que están utilizando  el appset.

•    UJK_SCRIPT_LOGIC_TESTER – Este programa se utiliza para depurar los script logic.

•    UJF_FILE_SERVICE_UI – Programa que actualiza el servicio de ficheros.

•    UJF_FILE_SERVICE_DLT_DM_FILES – Programa que borra  los ficheros del data manager en el servidor de ficheros.

•    UJQ_SQE_TEST – Programa que prueba las llamadas a SQE (Shared Query Engine) .

•    UJS_ACTIVATE_CONTENT – Activa el business content de BPC – Tan fácil como la activación del  business content de BW. Esto no es exactamente un business content, es algo similar. Esto creará los cubos, InfoObjects, etc . . .  que componen Apshell y carga las aplicaciones del ApShell con datos. (transaction code SE38)

•    UJT_CHECK_TABLE_ENTRIES – Permite revisar los registros que tienes las tablas a la hora de transportar.

•    UJT_CRT_BPC_TR – Utilizado para crear peticiones de transporte .

•    UJ0_STAT_DTL – Tabla de Estadisticas – Tcode UJSTAT



*NOTA: Tener acceso a las transacciones de SAP NetWeaver: SE20, SE19, SE20, SE38, STMS


Podéis añadir más . . .