viernes, 22 de mayo de 2009

El Primer Desarrollo en PI (Parte 1)

Antes de partir describiendo los pasos de este ejercicio voy a empezar explicando el objetivo.

La idea es transformar la estructura de un Archivo XML a otra estructura diferente (ver Cuadros 1 y 2). Aunque este cambio de estructura pareciera un poco irrelevante lo que intentamos es explorar los elementos básicos que se necesitan utilizar para implementar una transformación básica en PI.

Para empezar quisiera sugerir que vayan repasando sus nociones elementales de XML, básicamente estructura y terminos, lo que si les sugeriría para posteriores artículos es que vayan repasando mas sobre XML que como verán mas adelante es la estructura base en PI. Adicionalmente quisiera disculparme por los terminos en Inglés que vayan encontrar, lamentablemente solo dispongo de una versión en Inglés de PI y pienso que no es adecuado hacer traduccion de algunos de sus componentes ya que podria generar más confusión que ayuda.

I. Pasos previos...

Primero asegurarse que contamos con las herramientas necesarias para hacer un desarrollo en PI, por lo cual verificar que se cuenta con lo siguiente:

  • Acceso a PI dentro del SAP GUI (Consulte con el equipo de seguridad y el el equipo de "basis" para que le den el acceso adecuado)

  • Derechos necesarios para ejecutar la transacción: SXMB_IFR y a todos sus componentes.

  • Tener instalado en su Computadora Personal el ambito de ejecucion de Java oesa el Java Runtime Environment (JRE) versión 1.4.2_XX

II. Plan de implementación...

Luego de que nos hayamos asegurado de que tenemos a los accesos y herramientas debemos asegurarnos de contar con la siguiente información:

  1. Estructuras de origen y destino que vamos utilizar, es lo equivalente a la definición de la estructura de una tabla (nombre de campos, tipos, valores por defecto, restricciones) quizás un poco más flexible considerando que son estructuras XML y que estas pueden aceptar varios niveles de anidamiento y ocurrencia.

  2. Determinar las reglas que se van a utilizar para convertir la estructura de origen a la estructura de destino, para nuestro caso esto será casi intuitivo, pero para ejemplos posteriores veremos situaciones más complicadas.

  3. Determinar el medio por del cual se va obtener y dejar la información que se va procesar en PI. Para nuestro caso en particular nos referimos al folder y nombre del archivo de origen y el nombre o nombres de los archivos de destino. En ciertos casos en particular vamos a necesitar de reglas para obtener y dejar el mensaje esto más adelante será explicado.

Para nuestro caso en particular esta es la información requerida:

  1. Estructuras de origen y destino

    • Origen

    <origen>

    <nombre>Alejandra</nombre>

    </origen>

    Cuadro 1

    • Destino

    <destino>

    <mensaje>Hola Alejandra</mensaje>

    </destino>

    Cuadro 2

  2. Regla
  3. Se tomara el valor "Hola " y se concatenara con el valor del elemento <nombre> de la estructura origen y se grabara en el Elemento <mensaje> del destino.

  4. Archivo de Origen/Destino
  5. Se denominara "ArchivoDeOrigen.xml" se ubicara en el directorio "\\servidor\origen"

    Se denominara "ArchivoDeDestino.xml" que se ubicara en el directorio "\\servidor\destino"

III. Empezando…

Comenzare por un resumen de las tareas y posteriormente explicare con más detalle cada punto, estos temas van a ser complementados en posteriores artículos con informacion adicional que les ayudara a consolidar sus conocimientos, se que posteriormente a estos pasos te estaras preguntando el por que, eso paulatinamente lo iremos cubriendo con nuevos articulos:

    SLD

  1. Crear el Software Component Version en el System Landscape Directory (SLD)
  2. Integration Repository

  3. Importar el Software Component Version en el Integration Reposity (IR)
  4. Crear los Namespaces
  5. Crear los Data Types de las estructuras de Origen y de Destino
  6. Crear los Message Types
  7. Crear los Message Interfaces
  8. Crear el Message Mapping
  9. Crear la Interface Mapping
  10. Integration Directory

  11. Crear Scenario
  12. Crear el Party de Origen y el Party de Destino
  13. Crear el Service de Origen y El Service de destino
  14. Crear el Communication Channel de origen y el Communication Channel de destino
  15. Crear el Sender Agreement y Receiver Agreement
  16. Crear el Receiver Determination y Interface Determination
  17. Message Monitoring y Runtime Workbench

  18. Verificar que se hayan ejecutado correctamente los pasos del Pipeline
  19. Verificar que la información ha pasado correctamente por los adaptadores.

Estos son los pasos basicos luego de que te hayas asegurado de que ellos hayan sido ejecutados correctamente estarás listo a desarrollar nuevos ejercicios de transformación en el proxímo capitulo empezaremos a dar mas detalles.

24 comentarios:

  1. hola, hace poco empece con PI y estoy realizando pruebas previas a un desarrollo, despues de tener toda la estructura completa no consigo ver los mensajes en el PI, no se deberian ver una vez activados? o se debe realziar alguna accion concreta, muchas gracias, y blog muy interesante.

    ResponderEliminar
  2. Este comentario ha sido eliminado por el autor.

    ResponderEliminar
  3. Antetodo Lorenzo, Gracias por visitar nuestro blog, En el equipo tenemos muchos temas por compartir que esperemos sean de tu interes y sobretodo de utilidad.

    Yendo a tu pregunta, me gustaría aclares algunos puntos, Que versión de PI estas usando?, Tu pregunta no es muy clara es por eso tambien que me gustaría saber en que momento ocurre el problema es en Diseño (usando el Integration Builder) o al momento de ejecutar tu escenario? (cuando monitoreas el mensaje), Si hicieramos un paralelo con los pasos que menciono en el artículo de arriba (del paso 1 al 16), en cual de ellos estaría ocurriendo , Gracias nuevamente.

    ResponderEliminar
  4. Hola Ruben, gracias por contestar, he creado varios escenarios, file2file, jdbc2jdbc, etc, pero en ninguno me salen los mensajes, por ejemplo ahora estoy con uno que es jdbc a fichero ftp, en el diseño de objetos los test aparecen como correctos, en el enterprise builder, en el integration builder tambien he creado lo necesario, dos cananles de comunicacion, los receivers y senders, etc, al ejecutar el test en integration builder tambien es correcto, el proceso seria BD en AS400 -> PI -> guardar en ftp, el caso es que aparentemente todo esta correcto pero al ir al procesamiento de mensajes del XI no aaprece n verde ni rojo ni nada, en el runtime workbench en el apartado 'component monitoring' -> 'adapter engine' me aprecen los canales de comunicacion en rojo y em dice que todos son incorrectos, pero he creado dos technical systems de terceros, los dos bussiness system y en principio esas maquinas estan.
    En fin que debo hacerlo funcionar los ams rapido posible y no consigo ni ver si funcionan o no. Saludos y gracias.

    ResponderEliminar
  5. Ante todo podrias primero confirmame si has podido llegar a testear tus objetos en el integration Repositorio, hay 2 elementos claves que debes asegurarte esten bien desarrollado y son el "Message Mapping" y el "Interface Mapping", ambos cuentan con una opción de testeo esas opciones te permiten crear ejemplos y si funcionan correctamente ya casi tienes el 75% del escenario correcto.

    Luego que estes seguro que funcione eso correctamente procede a verificar el "Integration Directory" verifica que los objetos esten correctamente generados y relacionados quizas la parte más tediosa sea la generación del "Receiver Determination" e "Interface Determination", pon bastante cuidado a esa parte y verifica que este correcta.

    Ya en runtime verifica donde ha ocurrido el error da dobleclick en alguno de los rows con bandera roja y verifica hasta que punto a llegado, si por ejemplo el ultimo paso es "Request Message Mapping" es que hay un problema en el Mapa, alli vas ha encontrar incluso el payload de entrada y lo podras usar para tus pruebas en el "Integration Repository", espero esto te sea de utilidad, como dato te digo que pronto vamos abrir un foro para discutir y clarificar algunos puntos con mayor comodidad. Por ahora con confianza pregunta nomas, trataremos de responder lo mejor, considerando el poco espacio que tenemos para explayarnos, Saludos

    ResponderEliminar
  6. Hola Ruben, ya se que este no es el lugar mas indicado para este tipo de consultas, pero encontrar foros en español sobre este tema es casi imposible.
    En el repository los testeos son ok, en el directory los check de los objetos y el test es correcto, el problema viene despues, que aun estando todo ok no aparece en el runtime, solo me dice que los canales de comunicacion tienen errores, lo curioso es que son todos los canales, entonces no se si es culpa mia, del PI que este mal configurado o que me faltan permisos para ejecutar los mensajes. Si quieres te envio unos pantallazos del desarrollo. Muchas gracias y saludos!

    ResponderEliminar
  7. Podrias enviarme el tipo de mensaje de error que has podido capturar, y decirme donde lo has obtenido? es acaso en el Runtime Work Bench o en la transaction sxi_monitor? si no llega al sxi_monitor, es posiblemente error del adaptador, mandame al menos las referencias del error eso me ayudaria bastante para ayudarte. Slds

    ResponderEliminar
  8. Hola, es en el runtime workbench, al seleccionar el Adapter engine sale en rojo, y no sale ningun error, simplemente me dice que los cananles tienen errores, hoy no puedo enviarte ninguna captura de pantalla pues es fiesta aqui, mañana te la envio para que veas donde me lo dice, de todas formas ya lo hare en el foro que he visto ya esta creado, muchas gracias y un saludo.

    ResponderEliminar
  9. Lo habra conseguido lorenzo? ya que no ha dado mas señales de vida.

    ResponderEliminar
  10. Everardo Espinosa..3 de febrero de 2010, 16:52

    Hola a todos el equipo....

    Yo de igual modo, estoy en SAP desde diciembredel 2009 y a marchas forzadas aprendiendo.....anteriormente hice una pregunta a Luis, sobre como sacar un inventario de las interfaces....ya me paso unas transacciones que me estan sirviendo.....La pregunta ahora que deseaba hacerles...es si existe algun modo de sacar estas interfaces y conocer a que horas estan corriendo...saludos y de favor espero su respuesta....everardo.espinosa@e-arca.com.mx

    ResponderEliminar
  11. Hola,cuando recibes datos de SAP y en PI lo envias a uns sistema externo, el cc es sender, no?
    cuando lo recibes del externo para enviar a SAP es receiver?
    thanks.

    ResponderEliminar
  12. En todo escenario tienes un sender y un receiver. Para PI, el punto de referencia son los sistemas que se están comunicando, es decir, si envias datos de ECC hacia un legacy system el sender cc sender está al lado de ECC mientrás el receiver está al lado del legacy. Espero te sirva.

    ECC ======================== > Legacy
    cc sender _____________________ cc receiver

    ResponderEliminar
  13. Si pero entiendo con eso que si envio de XI al Legacy, ese comm channel debe ser receiver, no?

    ResponderEliminar
  14. Hola amigo, me encanta tu página pero por mas que busco no encuentro un tema en el que estoy totalmente interesado: "Cómo Instalar SAP PI 7.1 o 7.3? o aunque sea el XI... gracias por tus aportaciones y espero seguir en contacto...

    ResponderEliminar
  15. Hola Azael te dejo este link.

    http://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/00004f25-6190-2b10-2c8b-fa419234c28b?QuickLink=index&overridelayout=true&35661113529864

    Saludos
    luixleo@gmail.com

    ResponderEliminar
  16. Hola una consulta cada vez quiero hacer una consulta en el sxi_monitor del PI este se cuelga, tambien pasa lo mismo cuando trato de ingresar al sxi_cache.
    Quiero saber si puede ser por que el PI fue instalado mal o que?

    ResponderEliminar
  17. Hola.. Que tipo de error se te presenta?
    Puede ser conectividad o puede ser configuracion de los parametros, son varios las causas.

    Luis Ortiz
    luixleo@gmail.com

    ResponderEliminar
  18. Hola buenos días. Tengo una duda. Estoy tratando de ingresar a un integration repository pero me da un error al abrir. El error es el siguiente Ha habido un error al ejecutar la aplicación.

    Cargo: Integration Builder
    Proveedor: SAP AG
    Categoría: Error de seguridad

    Una aplicación sin firma solicita acceso sin restricciones al sistema
    Recurso sin firma: http://XXXXX.XXXX.com.ve:51000/rep/repository/iaik_ssl.jar

    Actualmente tengo la version de java 1-4-2-10 en un pc con Win7 64 bits.

    Al abrir el integration directory no tengo problemas.

    Debo cambiar la version ?

    Mil gracias por su ayuda

    ResponderEliminar
  19. Hola Que tal.. Que version PI manejas.? En resumen.

    7.0---Java 1.4.42
    >7.1 -- >Java 1.5.

    Por otro lado en si como haces el ingreso...Al abrir el repository descarga un archivo jnlp, desde ahi puedes ingresar.

    Prueba tb con otro navegador.

    ResponderEliminar
  20. Manejo la versión 7.0 Si efectivamente tal cual como lo indicas hace la descarga pero me da el error que comete anteriormente. Ya he probado de distintos navegadores, sistemas operativos y nada. De hecho el mensaje indica que por alguna firma de seguridad no deja bajar el archivo jnlp. Lo raro del cuento es que al integration directory puedo abrirla sin inconvenientes.

    Te ha pasado este caso alguna vez? Mil gracias por tu ayuda

    ResponderEliminar
  21. Hola Ruben.

    Soy nuevo en el tema de PI y agradezco mucho la información que compartes con nosotros en este site. Quisiera preguntarte si tienes planeado publicar la 2 parte de este post y que libro recomendarías a las personas que apenas que estamos iniciándonos en el mundo XI/PI.

    Muchas gracias

    ResponderEliminar
  22. hola estoy utilizando PI y los canales ahora presentan un estado functionnig en vez de running en la pestaña que dice short log, alguien me puede ayudar como restaurarlos a running en las dos pestañas.

    gracias.

    ResponderEliminar
  23. Buenas tardes soy de Mexico y quiero incursionar en PI como puedo realizar practicas ya que no cuento con una servidor para este objetivo o lo puedo descargar de algun lugar. Gracias de antemano por su informacion

    ResponderEliminar