sábado, 10 de junio de 2017

Servicio web de OBIEE con Python

La base de este artículo está en el post de ritmanmead.com, que trata el mismo tema, pero
en nuestro caso queríamos ver si podíamos obtener información de permisos de los objetos que
pertenecen al catálogo de OBIEE, y sacar un listado completo de una sola vez para un usuario
concreto o un grupo.

OBIEE (Oracle Business Intelligence Enterprise Edition) es una herramienta de inteligencia de negocio que permite llevar a cabo analítica de datos, desarrollada por la empresa
Oracle.

Dicho esto, escogimos Python para consultar el web service que tiene OBIEE.
Para ello, empleamos la librería suds-jurko como cliente del web service (la misma que
utiliza en el ejemplo de ritmanmead.com), y a partir de aquí, tenemos tres ejemplos que se
muestran a continuación:

1) Listar aquellos objetos sobre los que un usuario o grupo que pasemos como parámetro
a nuestro script, tenga permisos (lectura, recorrer, control completo), comenzando por la raíz de la carpeta compartida:




Los métodos empleados en este script son getSubItems y getItemInfo, del WebCatalogService.

2) Listar los miembros de un grupo, el cual se pasa como parámetro al script:



Aquí se emplea el método getMembers, del servicio SecurityService.

3) Listar los grupos a los que pertenece un usuario, el cual se pasa como parámetro al script:



En este caso, se utiliza el método getGroups del servicio SecurityService.


*NOTA: La sentencia inicial

logging.getLogger('suds.client').setLevel(logging.CRITICAL)

que tienen todos los scripts es debido a que suds-jurko volcaba mensajes de error y warning, por lo que se aplicó la solución propuesta en StackOverflow.