PDA

Ver la Versión Completa : Proponer soluciones para comunicación R/3 <-> XI


kerberos
04/06/09, 07:22:04
Saludos!

Agradezco me ayuden con la siguiente duda:

Tengo que obtener y procesar una cantidad importante de información en R/3. Esta información debe ser enviada a XI que sirve sólo como puente para enviar luego la información a un portal (Desconozco la tecnología que corre en dicho portal). Es imperativo que la información pase por XI, así solo sirva de puente y no realice ninguna transformación de la misma.

La idea es que XI "dispare" en R/3 mi programa. Mi programa obtendrá y procesará la información (Este proceso debe durar varias horas) y posteriormente mi programa enviará la información a XI.

He pensado utilizar una RFC en R/3 para para la extracción y procesamiento de la información, de esta forma XI la puede ejecutar y le prodría entregar los resultados. Pero me preocupa lo mucho que tomará la ejecución de la misma (Varias horas) y no se si se pueda mantener la conexión tanto tiempo abierta o si genere problemas de rendimiento en los sistemas.

Que me recomiendan para atacar este problema?

Muchas gracias.

Mike
04/06/09, 12:35:36
No se como trabaja XI pero en el caso de BW que extrae informacion de R/3 y de igual forma puede durar horas, lo hace por paquetes de datos, con paquetes de datos me refiero que transfiere por ejemplo de 50.000 en 50.000 registros, cada 50.000 registros en un paquete, los extractores de BW para poder hacer eso utilizan la instruccion FETCH NEXT CURSOR en el SELECT, desde BW la funcion es llamada tantas veces hasta que se llama una excepcion cuando ya no hay mas data que buscar, de esta manera se extrae todos los registros que necesitas pero por paquetes, imagino que XI debe trabajar de manera similar ya que ambos son de NetWeaver.

Te puedes revisar la funcion RSAX_BIW_GET_DATA_SIMPLE para que veas como funciona

Espero te sirva.

Saludos,

ballan
04/06/09, 13:46:58
Lo que se me ocurre es hacer dos ABAP proxies, una de entrada (XI -> R3) y otra de salida (R3 -> XI)

Cuando alguien haga una peticion desde el portal ejecutarias la abap proxy de entrada, dentro del metodo de esta abap proxy puedes meter el codigo ABAP que quieras, acceder a tablas o lo que tengas que calcular, podria tardar el tiempo que necesitara y luego la ultima intruccion de tu ABAP proxy de entrada seria invocar a la abap proxy de salida para devolverle los datos a XI, luego para enviarlos al portal dependeria de la arquitectura pero puedes mandarlos por webservice o no se

Espero haberme explicado bien

kerberos
04/06/09, 13:51:25
Lo que se me ocurre es hacer dos ABAP proxies, una de entrada (XI -> R3) y otra de salida (R3 -> XI)

Cuando alguien haga una peticion desde el portal ejecutarias la abap proxy de entrada, dentro del metodo de esta abap proxy puedes meter el codigo ABAP que quieras, acceder a tablas o lo que tengas que calcular, podria tardar el tiempo que necesitara y luego la ultima intruccion de tu ABAP proxy de entrada seria invocar a la abap proxy de salida para devolverle los datos a XI, luego para enviarlos al portal dependeria de la arquitectura pero puedes mandarlos por webservice o no se

Espero haberme explicado bien

Muchas gracias Ballan!

Me puedes explicar un poco más sobre ABAP Proxy, la verdad nunca habia escuhado sobre esta tecnologia.

kerberos
04/06/09, 13:53:29
No se como trabaja XI pero en el caso de BW que extrae informacion de R/3 y de igual forma puede durar horas, lo hace por paquetes de datos, con paquetes de datos me refiero que transfiere por ejemplo de 50.000 en 50.000 registros, cada 50.000 registros en un paquete, los extractores de BW para poder hacer eso utilizan la instruccion FETCH NEXT CURSOR en el SELECT, desde BW la funcion es llamada tantas veces hasta que se llama una excepcion cuando ya no hay mas data que buscar, de esta manera se extrae todos los registros que necesitas pero por paquetes, imagino que XI debe trabajar de manera similar ya que ambos son de NetWeaver.

Te puedes revisar la funcion RSAX_BIW_GET_DATA_SIMPLE para que veas como funciona

Espero te sirva.

Saludos,

Gracias Mike por tu respuesta. La verdad estoy más interesado en las tecnologias involucradas en la conexión entre R/3 y XI (RFC, IDOC, etc). Ya que no se cual sera mejor utilizar en este caso.

Y definitivamente debo utilizar el FETCH en mis selecciones de datos debido al volumen de los mismos.

ballan
04/06/09, 15:04:49
No tengo conocimientos especificos de XI, solo lo conozco a grandes rasgos por lo que no te puedo dar informacion concreta de como crear las abap proxy aunque seguro que por la red encuentras mucha informacion sobre como crearlas

Hablando "a grosso modo" una abap proxy es una clase que se ejecuta cuando XI recibe un determinado input (por ejemplo la peticion efectuada desde el portal)

Esa abap proxy crea unas clases en R3 y al final lo que tienes es un metodo (suele llamarse EXECUTE_ASYNCHRONOUS o EXECUTE_SYNCHRONOUS dependiendo del tipo de abap proxy) donde puedes colocar tu codigo ABAP

chusuco
29/01/10, 09:56:51
Buenas, a estas alturas imagino que lo tendrás resuelto ya, pero de cualquier manera, en la transacción sm59 del sistema XI es donde se crean las conexiones http, es el tipo de conexión que hay en Abap proxy vs SAP XI (PI). Antes de ello deben estar implementadas en R3, pero estoy en la parte de Netweaver, por lo que ya no se decirte mucho más con fiablidad.

Saludos.

uo4396
29/01/10, 12:03:30
Buenas.

En primer lugar lo que se debería hacer es establecer las comunicaciones http en ambos sistemas (R3 Y XI) para poder realizar la comunicación vía proxy entre sap r3 y xi.

Una vez establecidas las comunicaciones lo que se debe hacer es crear las estructuras del proxy en xi tanto para el proxy de entrada a sap r3 como para el de salida.

Posteriormente en la transacción sproxy de sap r3 se tendrán que importar estos proxys generandose así las clases que encapsularán la comunicación vía proxy con xi.

En el proxy de entrada a sap se implementa la obtención de datos, se rellena la estructura de datos del proxy de salida y se lanza este proxy de salida hacia xi.

Xi se encargará de transformar si es necesario la información y transmitirla al sistema destino.

Saludos