
Durante los últimos 5 años se publicaron muchos blogs muy interesantes sobre el mapeo de valor de CPI. Me di cuenta de que el proceso automático no era posible porque a la API le falta una manera fácil de crear un mapeo de valor.
En el último blog, SAP Cloud Integration: mantenimiento de artefactos de Value Mapping a través de la API de OData
el autor sugiere este paso preliminar manual:
“Cree un objeto de máquina virtual y mantenga las agencias de origen y de destino, así como los identificadores que necesita su escenario. Tenga en cuenta que es necesario mantener la primera entrada predeterminada manualmente, ya que no es posible guardar un objeto sin al menos una entrada de asignación de valor. Implemente su máquina virtual inicial en su inquilino”.
Mi primer blog sugiere una solución a este paso, para crear Mapeo de valor usando API.
Documentación existente
Primer método: «upsert» sugiere la capacidad de insertar o actualizar:
UpsertValMaps
POST /UpsertValMaps permite agregar valores a un Value Mapping existente,
pero intentar insertar un valor en un
"Could not find source agency:SourceAgency, source identifier:123, target agency:TargetAgency and target identifier:456"
2do método:
Asignación de valoresTiempo de diseñoArtefactos
POST /ValueMappingDesigntimeArtifacts
cargar un mapeo de valor
Parámetros disponibles
Centrémonos en el parámetro ArtifactContent
“ArtifactContent”: “contenido zip del flujo de integración en formato codificado en base64”
Supongamos que se trata de una representación comprimida de una asignación de valor exportada.
Así que intentemos:
Y crea el Mapeo de Valor => ¡Hurra!
Ahora profundicemos en el archivo zip, revela la siguiente estructura
Estructura de carpetas del archivo zip
Buscando en el archivo value_mapping.xml:
contenido del archivo value_mapping.xml
Jugando con este contenido zip, podemos suponer que es posible:
-eliminar el mapeo de valores (a través de la interfaz CPI)
-alterar archivo zip para cambiar algunos valores en value_mapping.xml
-codificar error zip en base 64
-recrear el mapeo de valores a través de una llamada a la API.
Hemos entendido que el
Ahora intentemos diseñar un flujo que nos permita crear un mapeo de valor:
Seguro: CPI tiene la caja de herramientas para manejar contenido zip y base64.
Punto de partida: me parece más fácil comenzar desde un archivo comprimido existente y modificar el contenido del archivo value_mapping.xml.
Comencemos con un archivo zip de asignación de valor existente y descargado.
Solo para estar seguros, vaciemos el archivo value_mapping.xml, dentro del archivo zip.
Luego, codifiquemos este zip como cadena base-64 usando el bloc de notas ++.
=> ¡esta cadena base64 será útil pronto!
Iflow sugerido
Esta es una propuesta de pasos para construir el iflow:
Paso 1: cuerpo de configuración del modificador de contenido con mi cadena base64
Paso 2: decodificación base64 (obtención de un archivo zip)
Paso 3: zip splitter: iteración en archivos comprimidos, uno por uno
nombre del archivo de prueba del enrutador = mapeo_valor.xml
${header.zipFileName} = ‘value_mapping.xml’
Paso 4: configure el cuerpo con la carga útil correspondiente a la representación xml de ValueMapping
que se pudo encontrar antes:
Paso 5: Reúna en modo zip => vuelve a crear el archivo zip
Paso 6: codificación base64 => el resultado es una cadena base64 que representa el mapeo de valores y que se puede pasar al método API
Por ahora, usando esta cadena base64 con una llamada API de Postman:
POST /ValueMappingDesigntimeArtifacts
como «Contenido de artefacto»
…obras…
Mapeo de valor creado
Sugerí un flujo de CPI para crear esta cadena base64.
Sin embargo, no podemos crear un mapeo de valores sin un primer conjunto de valores. Por lo tanto, puede ser difícil separar la creación de mapas de valor de su conjunto de datos.
Espero que este blog te haya resultado útil, no dudes en comentar o hacer preguntas, haré todo lo posible para responderte rápidamente.
Mapeo de valor dinámico en SAP CPI | Blogs de SAP (2018)
https://int4.com/sap-cpi-value-mapping-mantenimiento (2020)
SAP Cloud Integration: mantenimiento de artefactos de Value Mapping a través de la API de OData (2023)
Calle Eloy Gonzalo, 27
Madrid, Madrid.
Código Postal 28010
Paseo de la Reforma 26
Colonia Juárez, Cuauhtémoc
Ciudad de México 06600
Real Cariari
Autopista General Cañas,
San José, SJ 40104
Av. Jorge Basadre 349
San Isidro
Lima, LIM 15073