Uno de los problemas con que se puede encontrar un consultor SAP BW a la hora de agrupar información de diferentes fuentes en una única, es seleccionar la opción adecuada. Hoy vamos a analizar la diferencia entre dos de esas opciones, el MultiSitio (Multiprovider) y el InfoSet. Sin entrar en el detalle de cómo se crean, veamos cómo se comporta cada uno de ellos y así entenderemos los casos concretos en que debemos elegir uno u otro.

Diferencias entre InfoSet y MultiSitio

MultiSitio (MultiProvider)

Agrupa todos los registros de los InfoProviders que lo componen. La cantidad de registros disponibles es, por tanto, la suma de los registros de cada InfoProvider. A la hora de crearlo se especifica cada InfoObjeto de que InfoProvider proviene, pudiendo elegir en caso necesario, más de uno. En el MultiSitio resultante, por tanto, no habrá InfoObjetos repetidos.

Infoset

Cruza los registros de los InfoProviders que lo componen. A la hora de crearlo se especifica por medio de que InfoObjetos se relacionan los InfoProviders.  Existe la posibilidad de cruzarlos de manera normal (inner join), que aparezcan todos los registros de uno de los componentes (left outer join) o que aparezcan los que no tienen en común (anti join).

Para su mejor comprensión, veamos los diferentes comportamientos con un ejemplo.

Tenemos un cubo y un ODS con diferente información sobre las incidencias de los clientes:

Cubo

1

ODS

2 

Multicubo

Al juntarlos en un multicubo, se obtienen 12 registros (5 del Cubo + 7 del ODS). Cada uno con los campos correspondientes a su origen rellenos y vacíos el resto.

 3

InfoSet

Veamos las diferentes opciones a la hora de enlazar los datos.

  • Inner join

Al juntarlos mediante inner join, se obtienen 5 registros. Los que existen tanto en el Cubo como en el ODS. Todos los campos están rellenos y los que existen en ambas fuentes, aparecen por duplicado. La cantidad de registros disponibles es, por tanto, igual a la cantidad de registros que tienen informados esos campos en todos los InfoProvider.

4

  • Left outer join

En este caso, la cantidad de registros resultante es igual a la de uno de los InfoProvider que lo compone, el ODS.  Por lo tanto, los datos del ODS estarán todos rellenos y la información del cubo se completará en aquellos registros que existan también en el cubo.

5

  • Anti join

Por último, con el anti join, se obtienen los registros que sólo están en uno de los InfoProvider y no en el otro. En nuestro caso, los dos registros que están sólo en el ODS.

6

Así que solo hace falta tener claro que se quiere conseguir para elegir la opción adecuada.