jueves, julio 21, 2011
Probar BAPIs en SE37 con commits
Para probar una BAPI, se puede utilizar la transacción SE37 y rellenar los campos que sean necesarios con el inconveniente de no poder ver el objeto creado en la base de datos debido a que falta el commit. Pues para solucionar este problema, existe una opción en el menú de la SE37 que te permite ejecutar varias funciones seguidas: Módulo funciones -> Verificar -> Secuencias test.
jueves, julio 07, 2011
Recuperar contenido borrado del repositorio
Cuando se borra el contenido de una versión de un componente software aparece el siguiente mensaje de aviso:
Advirtiendo que los objetos y los paquetes de soporte se borrarán sin posibilidad de recuperarlos. Pues bien, eso no es del todo cierto, al menos en PI 7.3. No obstante, mi recomendación es que antes de borrar cualquier objeto, se haga una copia de seguridad previamente exportando el contenido a una ubicación en la que podamos recuperarlo por si algo sale mal:
Advirtiendo que los objetos y los paquetes de soporte se borrarán sin posibilidad de recuperarlos. Pues bien, eso no es del todo cierto, al menos en PI 7.3. No obstante, mi recomendación es que antes de borrar cualquier objeto, se haga una copia de seguridad previamente exportando el contenido a una ubicación en la que podamos recuperarlo por si algo sale mal:
martes, julio 05, 2011
Value Mapping
El mapeo por valor (value
mapping) es una función estándar de PI que permite realizar asignaciones de
valores en función de la relación definida en el sistema. Esta opción solo es
válida para relaciones entre valores 1 a 1. A diferencia con la función de
asignación de valores fijos (FixValues), el value mapping permite reutilizar y
mantener fácilmente las relaciones debido a que sus valores se almacenan en el
Integration Directory. Mientras que con FixValues, la relación se establece a
nivel local entre los campos mapeados.
Para definir un mapeo de valores,
hay que ir a la opción Tool à
Value Mapping del Integration Builder (Integration Directory).
Etiquetas:
ESPXISystemFaultException,
Mapping,
PI 7.11,
Proxy,
XI
viernes, junio 17, 2011
Mensajes de confirmación en proxies asíncronos
Cuando se envía una mensaje de manera asíncrona, puede interesar conocer si el mensaje ha llegado correctamente o si ha habido algún tipo de error. Este escenario me lo encontré en una comunicación proxy -> jdbc, donde quería conocer si la inserción en la base de datos se hizo correctamente.
Como requisito, es necesario que el sistema origen tenga definido el adaptador proxy de recepción para que pueda recibir el mensaje de confirmación (con esto es suficiente, no es necesario definir nada más como el "Receiver agreement"). En el caso de PI 7.11 en adelante, también será necesario definir en el adaptador de envío, la conexión que utilizará para devolver las confirmaciones (esta conexión debe ser creada previamente en el NWA de PI).
Un aspecto a tener en cuenta es que, en mi caso no servía indicar el path "/MessagingSystem/receive/AFW/XI", ya que me daba un error de servicio no activado. Sin embargo sí me sirvió utilizar el path "/sap/xi/engine?type=receiver" y activar el servicio sap/xi/engine en el sistema ECC (tx: SICF), para que pueda recibir dichas respuestas.
Como requisito, es necesario que el sistema origen tenga definido el adaptador proxy de recepción para que pueda recibir el mensaje de confirmación (con esto es suficiente, no es necesario definir nada más como el "Receiver agreement"). En el caso de PI 7.11 en adelante, también será necesario definir en el adaptador de envío, la conexión que utilizará para devolver las confirmaciones (esta conexión debe ser creada previamente en el NWA de PI).
Un aspecto a tener en cuenta es que, en mi caso no servía indicar el path "/MessagingSystem/receive/AFW/XI", ya que me daba un error de servicio no activado. Sin embargo sí me sirvió utilizar el path "/sap/xi/engine?type=receiver" y activar el servicio sap/xi/engine en el sistema ECC (tx: SICF), para que pueda recibir dichas respuestas.
martes, junio 07, 2011
SAP Enterprise Services
En cada EHP, SAP pone a disposición una serie de Enterprise Services con el objetivo de a automatizar procesos de negocio mediante interfaces para otros sistemas. Estos servicios están recogidos en el portal de SDN:
Para poder activar un servicio es necesario descargarlo e importarlo en el sistema. Todo esto viene recogido en el siguiente enlace:
Para poder activar un servicio es necesario descargarlo e importarlo en el sistema. Todo esto viene recogido en el siguiente enlace:
miércoles, mayo 04, 2011
Definición de Sociedades globales
Para que ciertos IDocs se puedan procesar (p.ej. CREMAS) es necesario asignar previamente las sociedades mediante el menú de parametrización. Esta opción se encuentra bajo IMG -> SAP NetWeaver -> Servidor de Aplicación -> Interface IDOC/Application Link Enabling (ALE) -> Modelar e implementar procesos empresariales -> Configurar unidades organizativas globales -> Definir sociedades globales. Ahí habrá que definir en primer lugar las "Sociedades unívocas globales" y a continuación las relaciones correspondientes.
Referencias:
Referencias:
Etiquetas:
IDOC
martes, mayo 03, 2011
Pasar fechas en adaptador JDBC
Cuando se utiliza un adaptador JDBC para volcar datos directamente en una base de datos, existen ciertos tipos de datos que hay que tratarlos de manera específica. Uno de estos tipos es el de fecha. Por defecto, al pasar un campo de tipo xsd:dateTime, p.ej., en el proceso de conversión se pasa el contenido de este campo como si fuera una string y la base de datos devuelve un error del tipo "java.sql.SQLException: literal does not match format string". Para que no se pase el contenido a literal, es necesario definir el campo como "xsd:string" y añadirle el parámetro "hasQuot" con el valor por defecto "No".
De este modo indicaremos que no se pase como literal (entre comillas dobles).
De este modo indicaremos que no se pase como literal (entre comillas dobles).
jueves, abril 28, 2011
Registrar un programa RFC
A la hora de registrar conexiones TCP/IP, es necesario indicar un ID de programa que se encuentre registrado en el servidor (PI). En el caso de que el programa no se encuentre registrado, en el momento de realizar el test de conexión, el sistema devolverá el error "ERROR: Transaction program not registered". Los programas, se registran a través del NetWeaver Administrator (NWA) en el menú Configuration Management -> Infrastructure -> Jco RFC Provider.
Referencias:
Referencias:
miércoles, abril 20, 2011
Error ATTRIBUTE_IDOC_METADATA
Cuando en el envío de un IDoc aparece este mensaje, hay que comprobar que los metadatos del adaptador IDoc están mantenidos en el sistema (tx: IDX2). En caso de que el dato no aparezca, se podrá cargar pulsando el botón Crear (F5) e indicaremos el tipo de IDoc y el puerto de conexión que se usará para recabar los metadatos.
Unable to convert sender service to an ALE logical system name
Este mensaje aparece cuando se va a enviar un IDoc y el sistema no encuentra relación entre un componente de comunicación y un sistema lógico adecuado. La manera de comprobar si el Communication Component tiene asignado correctamente el sistema lógico, bastará hacer doble clic sobre el mismo y seleccionar la opción de menú Communication Component -> Adapter-Specific Identifiers.
Etiquetas:
ATTRIBUTE_INV_SND_SERV,
PI 7.11,
XI
Mapeos PI - Enlaces interesantes
Buscando por la red, he encontrado este Wiki que recoge un gran número de enlaces a páginas con ejemplos de todo tipo de mapeos PI (XSLT, Java, ABAP,...):
viernes, abril 15, 2011
Registrar componente software y versión en el SLD
Si se quiere desarrollar interfaces bajo un componente sofware propio, primero habrá que crearlo / registrarlo en el SLD. De lo contrario, si importamos objetos a dicho componente (RFCs/IDOCs), cuando vayamos a seleccionarlos dentro del Bussines Service correspondiente, por ejemplo, en el Receiver Agreement, veremos que dichas RFCs/IDOCs no aparecen en el listado de servicios disponibles, por lo que habrá que asignar dicho componente al Bussines Service adecuado. Esto se realiza desde la URL http://servidor:puerto/sld , en el apartado Software Catalog. En primer lugar definiremos el producto dentro del catálogo de software en la sección "Products" y seguiremos el asistente.
1. En el primero paso indicaremos que vamos a crear un producto nuevo:
1. En el primero paso indicaremos que vamos a crear un producto nuevo:
jueves, abril 14, 2011
No SLD elements of type SAP_XIAdapterFramework found
Tras la instalación inicial de un PI 7.11 puede que aparezca el mensaje "No SLD elements of type SAP_XIAdapterFramework found" en el momento de definir el adaptador de un canal de comunicación, esto puede deberse a que no se ha realizado el paso de registrar el propio SLD de PI. Para ello habrá que ejecutar la plantilla (template) "PI SLD Self Registration" dentro del asistente de configuración del NetWeaver Administrator (Configuration Management --> Scenarios --> Configuration Wizard).
Enlaces de referencia:
Enlaces de referencia:
viernes, marzo 25, 2011
Conocer las BTEs de una transacción
De manera análoga al modo de conocer las BADIs de una transacción, bastaría con poner break-points en los módulos de función:
Enlaces de referencia:
- PC_FUNCTION_FIND
- BF_FUNCTIONS_FIND
Enlaces de referencia:
miércoles, marzo 02, 2011
Usuario PIRWBUSER bloqueado frecuentemente
En el post Error during communication with SLD: User credentials are invalid or user is denied access indicaba que el principal problema de ese error se debía a que el usuario PIRWBUSER estaba bloqueado. En esta entrada indico cómo solucionar el problema de bloqueo continuo de este usuario.
Para ello, lo más seguro es asignar una nueva contraseña al usuario PIRWBUSER (tx: SU01) y posteriormente actualizar las conexiones de tipo ABAP (3) que empiecen por PMI* en la tx. SM59.
Enlaces de referencia:
Para ello, lo más seguro es asignar una nueva contraseña al usuario PIRWBUSER (tx: SU01) y posteriormente actualizar las conexiones de tipo ABAP (3) que empiecen por PMI* en la tx. SM59.
Enlaces de referencia:
martes, febrero 15, 2011
Procesamiento síncrono de ficheros
En alguna ocasión puede ser necesario configurar un escenario en el que de manera síncrona se procese un fichero de entrada desde un servicio externo y, como respuesta, éste devuelva un fichero de respuesta que se desee almacenar en el servidor local.
Un aspecto a tener en cuenta es que los adaptadores de ficheros no soportan los procesos síncronos, por lo que, para que funcione, existen dos posibles modos de configuración:
Un aspecto a tener en cuenta es que los adaptadores de ficheros no soportan los procesos síncronos, por lo que, para que funcione, existen dos posibles modos de configuración:
- A través de BPM
- Mediante módulos de configuración del propio canal de comunicación
miércoles, enero 19, 2011
Visual Administrator y Config Tool
Posiblemente se traten de las herramientas de administración de J2EE más relevantes. Ambas poseen una interfaz gráfica para configurar los parámetros necesarios.
Para lanzarlos, habrá que ejecutar los siguientes scrips:
Para lanzarlos, habrá que ejecutar los siguientes scrips:
- Config Tool:
/usr/sap/<system_name>/<instance_name>/
j2ee/configtool/configtool.sh - Visual Administrator: /usr/sap/
<system_name>/<instance_name> /j2ee/admin/go
jueves, enero 13, 2011
Incluir UsernameToken en cabecera SOAP
Algunos servicios web requieren autenticación mediante Web Service Security en la que se pasen parámetros como usuario y contraseña a través de la cabecera SOAP del mensaje. En principio, esta opción NO está recogida en el adaptador SOAP de XI, pero existen dos alternativas que nos permitirán informar dichos parámetros:
- A través del adaptador AXIS (requiere instalación previa y configuración)
- Mediante un mapeo XSLT
Etiquetas:
SOAP,
UsernameToken,
Web Services,
XI
jueves, noviembre 25, 2010
Error SLD_NO_OWN_BS
Cuando al intentar realizar una comunicación, el servidor devuelve el error SLD_NO_OWN_BS se puede deber a que el usuario SLDDSUSER esté bloqueado. Esto también será causa de que se produzca un error de acceso al servicio SLD (tx: SLDCHECK):
Al desbloquear el usuario (tx: SU01), se podrá acceder a la interfaz de nuevo.
martes, noviembre 23, 2010
Establecer clave a usuario de tipo comunicación
Cuando se crea un usuario de tipo comunicación y se le asigna una clave, ésta caducará la primera vez que dicho usuario acceda al sistema. El problema está en que si el primer acceso se realiza mediante una interfaz, ésta no obtendrá respuesta (si es que es síncrona). Por ello, una manera de asignar la clave definitiva sería, tras crear el usuario con la clave inicial, acceder a algún servicio web que requiera de control de acceso, por ejemplo el SLD (http://servidor:puerto/sld), indicar como usuario al usuario de comunicación junto con su clave inicial y, a continuación, se nos indicará que la clave ha expirado, momento en el cual podremos introducir la clave definitiva.
Etiquetas:
COMUNICACIÓN,
PASSWORD,
USUARIO,
XI
Suscribirse a:
Entradas (Atom)
