PI Tutorial

download PI Tutorial

of 14

Transcript of PI Tutorial

  • SAP PI

    MIRCOLES 27 DE OCTUBRE DE 2010

    Publicado por Luiz en 00:57:00 0 comentarios Enlaces a esta entrada

    Reacciones:

    SAP PI: Variable Substitucion. SAP PI: Variable Substitucion.

    JUEVES 14 DE OCTUBRE DE 2010

    Variable Substitucion. Muchas de las necesidades que se tiene al crear el nombre de un archivo de destino ya sea de tipo XML, texto etc, es agregar algn parmetro adicional de manera dinmica por ejemplo si tu archivo de destino se llama "Target.xml" adicionalmente a los parmetros establecidos en el cual se puede agregar el messagid, timestamp,un contador. tu archivo puede llamarse.

    -"target_20101014-095549-775.xml" -"target_AD1C95F3-CDF0-42EC-26A4-90BF5AE58D05.xml". -"target_0001.xml".

    Sin embargo como se puede agregar otros parmetros o valores , llamese Party,Service,interface etc o quizs un valor del documento. Para esto podemos utilizar la conflagracin del Variable Substitucion en el cual se obtiene valores del encabezado del documento o atributos del payload de cada archivo.

    Por ejemplo de acuerdo al anterior post Scenario XML to Text en el cual se tiene crea un archivo .txt desde una estructura inicial XML de una empresa llamada Xtratogen, ahora el scenario cambiara para hacerlo didactico , son muchas las empresas que enviaran dicha informacin llamese empresaA,empresaB,empresa C. As mismo ya no se desea tener en el nombre del archivo el time-stamp ,se desea ahora un valor unico como fuese el MessageId tambin se desea saber el tipo de clientes que se esta enviando.(Para dicho requerimento la empresa origen enviara dentro dicho valor dentro de un nuevo campo llamado typeCliente para esto agregaremos dicho campo a la estructura de origen as como la destino) Siendo tres tipos de cliente de acuerdo a su frecuencia de compras : Frecuente,Habitual,Ocasional

    fig 01 (click si desea visualizar mejor)

    Dicho valor sera nico en todos los clientes por lo cual se repetir en todos los nodos.

    SUSCRIBIRSE A SAPXIPERU

    Votos hasta el momento: 0 Encuesta cerrada

    SLDIRIDWBAdaptadoresSeguridad

    0 (0%) 0 (0%) 0 (0%) 0 (0%) 0 (0%) 0 (0%)

    EN QU PARTE DE SAP PI ESTS MS INTERESADO?

    SLD (3) B2B (2) Como empezar en SAP PI/XI? (2) Primeros pasos (2) XML (2) A2A(1) AS2 (1) Business System (1) Certificacin (1) Dynamic Configuration (1) Funciones PI/XI (1) HTTP (1) Message Mapping (1) PI tool (1) Que es XI-PI (1) SAP XI (1) SWCV (1) Technical System (1) Tipos de Adaptadores (1) Transacciones PI/XI (Transactions) (1) Variable Substitution (1) foro (1) recomendaciones (1) sapxiperu (1) topycs (1)

    CATEGORAS

    2010 (3) 10/24 - 10/31 (1)

    SAP PI: Variable Substitucion.

    10/10 - 10/17 (2)

    2009 (17)

    ARCHIVO DEL BLOG

    SAP XI PERU Luiz Joan ruben Luz Patricia JIRA

    MIEMBROS

    Compartir Informar sobre mal uso Siguiente blog Crear un blog Acceder

    Page 1 of 14SAP PI

    26/11/2010http://www.sapxiperu.blogspot.com/

  • fig 02 (click si desea visualizar mejor)

    Bueno ahora haremos uso del variable substitucin para esto debemos de activar el parametro en el tab "Advance" activamos el check de Enable. A continuacin podras visualizar un grid con dos columnas indicando el nombre de la variable y la referencia.

    El nombre de la variable es un nombre cualquiera y la referencia es el valor en el cual se hace referencia algun valor del payload siendo estos valores unicos como : sender_party, sender_service, receiver_party, receiver_service, interface_name, interface_namespace,message_id (message ID message_id_hex (msgid sin guiones) etc. Por ejemplo si deseas el nombre de la interface se debe de poner en la columna Reference el valor message:interface_name

    fig 03 (click si desea visualizar mejor)

    Agreguemos la variable enterprise y en la referencia pondremos "message:sender_party" dicha variable "enterprise lo usaremos en el file Name Schema .Esto nos indicar el valor de la empresa que envia dicha informacion.

    Para obtener el valor del tipo de cliente dentro del payload de salida. tendremos que analizar la siguiente estructura del payload: seguido del nombre de los elementos y la ocurrencia separados por coma por ejemplo element1,n1,element2,n2. element1,element2 indica el nombre de los elementos n1,n2 indica la ocurrencia de valor de dicho elemento.

    fig 04 (click si desea visualizar mejor)

    Para indicar el codigo de mensaje unico (message id ) agregamos la variable msgid y la referencia es message_id_hex . De acuerdo a la estructura de destino indicada agregamos otra variable llamada tipocliente y la referencia sera payload:Cliente1,Cliente,1,TypeClient,1

    fig 05 (click si desea visualizar mejor)

    Finalmente en el primer tab File Name Schema para acceder a cada variable se debe indicar con el simbolo de porcentaje. %var01%.

    Luismier

    Google Friend Connect

    Ya eres miembro?Acceder

    Seguidores (13)

    Seguir

    SEGUIDORES

    Contador web

    NMERO DE VISITAS

    Page 2 of 14SAP PI

    26/11/2010http://www.sapxiperu.blogspot.com/

  • Publicado por Luiz en 15:26:00 0 comentarios Enlaces a esta entrada Etiquetas: Dynamic Configuration, Variable Substitution

    Reacciones:

    Para nuestro ejemplo sera asi. Global_Log_%enterprise%_%tcliente%_%msgid%.txt

    fig 06 (click si desea visualizar mejor)

    Luego enviamos un archivo de prueba . En la figura de abajo podras ver el messageid generado dentro del payload.

    fig 07 (click si desea visualizar mejor)

    Finalmente el archivo se ha creado con los parametros indicado anteriormente como el party, el tipo de cliente y el message ID.

    fig 08 (click si desea visualizar mejor)

    Si bien el nombre del archivo es extenso, se trato de usar la mayor cantidad de variables posibles.

    Hay otra manera de usar dinamicamente nombres de archivos que es el Dynamic Configuration y esto lo mostrar en otro tema.

    Scenario Flat File. Hola que tal , nuevamente luego de un gran tiempo retomaremos poco a poco con el blog y es que realmente hay ciertos momentos en los proyectos que no te alcanza el tiempo para las diversas labores que uno desea hacer como uno desea.

    Bueno esta vez volveremos con temas puntuales como son tipos de Scenario Flat File - IDOC - JDBC HTTP etc.

    Scenario XML - Flat File Este es uno de los scenarios en muchos casos el ms bsico y solicitado a la vez del cual se desea transformar de un archivo XML a un formato texto o viceversa. Para esto vamos a tomar como ejemplo la estructura de ejemplo que se hizo anteriormente Mapping 1ra Parte puedes verlo aca.

    De acuerdo a las estructuras anteriores se realizaba el mapeo de una estructura llamada contactos a una de clientes con parecida estructura sin embargo se tiene que considerar algunas reglas de negocio.

    El requerimiento es el siguiente una empresa llamada Xtratogen maneja informacin de contactos (clientes) dicha informacin lo maneja a travs de archivos XML , la otra empresa(Global Logistic) desea recibir dicha informacin en formato de tipo texto.

    De acuerdo a la siguiente estructura la informacin del cliente separada por "|" y la direccin separada "*" Por ejemplo: Cod001|Luis|Ortiz|M|...*Av Luna*Lima*Peru.

    Asi mismo desea el nombre del archivo tenga la siguiente nomenclatura. Global_Log_[Fecha Proceso en el formato yyyyMMdd-HHmmss-SSS]

    Vamos a realizar paso a paso el scenario.

    Creamos los objectos en Integration Repository.

    Page 3 of 14SAP PI

    26/11/2010http://www.sapxiperu.blogspot.com/

  • Interface Objects - Creamos el DataType

    Como podrs ver tenemos 2 estructuras una llama contacto y otra llamada cliente. como dije anteriormente estas estructuras se obtuvo de un tema anterior. Message Mapping

    Contact Fig 01- (double click para visualizar mejor)

    Client Fig 02- (double click para visualizar mejor)

    Crear el Message Type. - Creamos el Message Type Contact y Cliente usando los data type creados anteriormente.

    Crear los interface Type. - Creamos la interfaz de salida de tipo outbound oa_XML_Contact teniendo en base el Message type creado anteriormente.

    Fig 03- (double click para visualizar mejor)

    - Luego creamos la interfaz de entrada de tipo inbound ia_Text_Cliente.

    Fig 04- (double click para visualizar mejor)

    Mapping Objects.

    Creamos el message mapping llamado XML_Contact_to_Text_Cliente , como te mencione anteriormente la lgica de mapeo esta en el tema anterior Mapping 1ra Parte

    Page 4 of 14SAP PI

    26/11/2010http://www.sapxiperu.blogspot.com/

  • Fig 05- (double click para visualizar mejor)

    Creamos el interface mapping oa_XML_Contact_to_ia_Text_Cliente indicando las interfaz de entrada , salida y el mapping creado anteriormente.

    Fig 06- (double click para visualizar mejor)

    Una vez creado los objetos en Repository ahora crearemos los objetos en Configuration para indicar los parametros necesarios para convertir el archivo de XML a texto

    Configuration

    Para esto vamos a crear un scenario Test.

    Creare los Party y luego los business services o business system , la diferencia simplemente es un business system es aquel sistema en el cual tu tienes control y business service es aquello que no tengas control. Como se describio el caso tu tienes tu sistema en el cual trabaja con XML sin embargo quisiera integrar dicho sistema con una empresa externa y dicha empresa ha solicitado que se envie en formato texto separado por "|" y *.

    Como podras visualizar esta es listado de objetos que se deben de crear en la parte Integration Directory

    Fig 07- (double click para visualizar mejor)

    Luego de haber creado los parties y servicios creamos los comunication channels que sern los encargados de enviar y recibir la informacin en el formato indicado comencemos con el canal de envio (sender) en este caso CC_XML_SEND

    Fig 08- (double click para visualizar mejor)

    1.- El tipo de adaptador sera de tipo File. 2.- Protocolo del mensage tipo File tambien. 3.- configurarmos el directorio donde se van a enviar los archivos XML en el file name para un mejor filtro he puesto aquellos archivos de extensin XML

    Creamos el sender agrement escogemos el party,service,interface.. Al crear escogeremos el canal que va transportar el archivo xml a PI.

    Page 5 of 14SAP PI

    26/11/2010http://www.sapxiperu.blogspot.com/

  • fig 09- (double click para visualizar mejor)

    En el receiver determination se indica cual es la interface que va recibir dicha interface previa.

    fig 10- (double click para visualizar mejor)

    Luego creamo el interface determination se indicara el mapping a ser utilizado en este caso de acuerdo al interface mapping.

    fig 11- (double click para visualizar mejor)

    Finalmente se crea el receiver agrement en el cual se indicar los parametros para recibir dicho mensaje y en el caso convertir al formato flat file. Para esto seleccionar el protocolo de tipo File Content Conversion. Al seleccionar se observara que se ha agregado

    un tab mas para indicar la configuracion necesaria para dicho formato. A continuacion tratare de explicar a breve modo como funciona dicho configuracion de este tipo de formato.

    fig 12- (double click para visualizar mejor)

    Page 6 of 14SAP PI

    26/11/2010http://www.sapxiperu.blogspot.com/

  • Para lograr el nombre del archivo de la siguiente forma Global_Log_[Fecha Proceso en el formato yyyyMMdd-HHmmss-SSS] agregamos el nombre "Global_Log_" en el FileNameScheme y escogemos en processing parameters "FileConstruccionMode" AddTimeStamp

    fig 13- (double click para visualizar mejor)

    fig 14- (double click para visualizar mejor)

    En el Parametro Recordset Structure se ponen las estructuras indicadas en la interfaz de salida

    Parametro NameA.addHeaderLine 0 No se incluye ningun encabeza. 1 Se incluye encabezado con el nombre de las columnas indicas en el XML document. 2 Igual el 1 solo que se incluye en blanco.

    Parametro NameA.beginSeparator.

    Aqui puedes poner un valor (cadena) como primera columna del archivo de texto. Es un valor que antecede a la cadena final de toda la informacion.

    Parametro NameA.fieldSeparator Aqui se especifica la cadena que va separar cada elemento en este caso se ha puesto el valor "|"

    Parametro NameA.endSeparator Se especifica el valor que va indicar la finalizacion del registro en este caso se esta poniendo el salto de linea 'nl'

    Bueno aqui les dejo el archivo como resultado , primero claro esta dejamos el archivo XML de ejemplo.

    Page 7 of 14SAP PI

    26/11/2010http://www.sapxiperu.blogspot.com/

  • Suscribirse a: Entradas (Atom)

    Pgina principal Entradas antiguas

    Publicado por Luiz en 12:10:00 0 comentarios Enlaces a esta entrada

    Reacciones:

    fig 15- (double click para visualizar mejor)

    Este es el archivo resultante Global_Log_20101014-112047-592.txt

    fig 16- (double click para visualizar mejor)

    Si deseas mas informacion respecto a dicha configuracion de parametros puedes visitar este link http://help.sap.com/saphelp_nw04/helpdata/en/bc/bb79d6061007419a081e58cbeaaf28/frameset.htm

    Plantilla Simple. Con la tecnologa de Blogger.

    Page 8 of 14SAP PI

    26/11/2010http://www.sapxiperu.blogspot.com/

  • Page 9 of 14SAP PI

    26/11/2010http://www.sapxiperu.blogspot.com/

  • Page 10 of 14SAP PI

    26/11/2010http://www.sapxiperu.blogspot.com/

  • Page 11 of 14SAP PI

    26/11/2010http://www.sapxiperu.blogspot.com/

  • Page 12 of 14SAP PI

    26/11/2010http://www.sapxiperu.blogspot.com/

  • Page 13 of 14SAP PI

    26/11/2010http://www.sapxiperu.blogspot.com/

  • Page 14 of 14SAP PI

    26/11/2010http://www.sapxiperu.blogspot.com/