• Inicio
  • Novedades
  • Academia SAP
  • FAQ
  • Blog
  • Contacto
S4PCADEMY_Logo
  • Inicio
  • Novedades
  • Academia SAP
  • FAQ
  • Blog
  • Contacto
Twitter Linkedin Instagram

S4PCADEMY_Logo
  • Inicio
  • Novedades
  • Academia SAP
  • FAQ
  • Blog
  • Contacto
Twitter Linkedin Instagram
mapping  ·  SAP CPI  ·  Technical Articles

Asignación de mensajes SAP CPI Plano a estructura de árbol

By s4pcademy 


Asignación de mensajes SAP CPI de estructura plana a estructura de árbol que ha sido explicada brevemente por Eaksiri Sontisirikul en el Blog. Es un gran blog. Gracias Eaksiri.

Estaba tratando de expandir el complejo de bits de carga útil y se me ocurrieron algunos pasos de mapeo adicionales.

Así que decidí compartir esa información a continuación.

Solicitar carga útil.

<CompoundEmployee>
	<Person>
		<Manager_ID>1000</Manager_ID>
		<Manager_Name>Manager A</Manager_Name>
		<Employee_ID>8000</Employee_ID>
		<Employee_Name>Emp A</Employee_Name>
	</Person>
	<Person>
		<Manager_ID>1000</Manager_ID>
		<Manager_Name>Manager A</Manager_Name>
		<Employee_ID>8005</Employee_ID>
		<Employee_Name>Emp B</Employee_Name>
	</Person>
	<Person>
		<Manager_ID>2000</Manager_ID>
		<Manager_Name>Manager B</Manager_Name>
		<Employee_ID>9000</Employee_ID>
		<Employee_Name>Emp C</Employee_Name>
	</Person>
	<Person>
		<Manager_ID>2000</Manager_ID>
		<Manager_Name>Manager B</Manager_Name>
		<Employee_ID>9002</Employee_ID>
		<Employee_Name>Emp D</Employee_Name>
	</Person>
	<Person>
		<Manager_ID>1000</Manager_ID>
		<Manager_Name>Manager A</Manager_Name>
		<Employee_ID>9003</Employee_ID>
		<Employee_Name>Emp E</Employee_Name>
	</Person>
	<Person>
		<Manager_ID>3000</Manager_ID>
		<Manager_Name>Manager C</Manager_Name>
		<Employee_ID>9004</Employee_ID>
		<Employee_Name>Emp F</Employee_Name>
	</Person>
	<Person>
		<Manager_ID>2000</Manager_ID>
		<Manager_Name>Manager B</Manager_Name>
		<Employee_ID>9005</Employee_ID>
		<Employee_Name>Emp G</Employee_Name>
	</Person>
</CompoundEmployee>

Carga útil de respuesta

<CompoundEmployee>
	<Person>
		<Manager_ID>1000</Manager_ID>
		<Manager_Name>Manager A</Manager_Name>
		<Employee>
			<Employee_ID>8000</Employee_ID>
			<Employee_Name>Emp A</Employee_Name>
		</Employee>
		<Employee>
			<Employee_ID>8005</Employee_ID>
			<Employee_Name>Emp B</Employee_Name>
		</Employee>
		<Employee>
			<Employee_ID>9003</Employee_ID>
			<Employee_Name>Emp E</Employee_Name>
		</Employee>
	</Person>
	<Person>
		<Manager_ID>2000</Manager_ID>
		<Manager_Name>Manager B</Manager_Name>
		<Employee>
			<Employee_ID>9000</Employee_ID>
			<Employee_Name>Emp C</Employee_Name>
		</Employee>
		<Employee>
			<Employee_ID>9002</Employee_ID>
			<Employee_Name>Emp D</Employee_Name>
		</Employee>
		<Employee>
			<Employee_ID>9005</Employee_ID>
			<Employee_Name>Emp G</Employee_Name>
		</Employee>
	</Person>
	<Person>
		<Manager_ID>3000</Manager_ID>
		<Manager_Name>Manager C</Manager_Name>
		<Employee>
			<Employee_ID>9004</Employee_ID>
			<Employee_Name>Emp F</Employee_Name>
		</Employee>
	</Person>
</CompoundEmployee>

Simulación

Para obtener este resultado, tenemos que adaptar nuestro mapeo con las funciones ‘sort’, ‘sortByKey’ en el medio.

Employee_ID, Employee_Name también necesitan pasos de mapeo adicionales.

CompuestoEmpleado

CompuestoEmpleado

Persona

Manager_ID > removeContext 
           > Sort(case sensitive,asc) 
           > SplitByValue (value change) 
           > collapseContext 
           > Person

Persona1

Persona2

persona3

Gerente_ID

Manager_ID > Removecontext 
           > sort(case sencitive, asc) 
           > SplitByValue (value change) 
           > collapseContext 
           > splitByValue 
           > Manager_ID

Gerente_ID

Nombre del gerente

Manager_Name1

Manager_Name > removeContext 
             > sort (case sensitive, asc) 
             > splitByValue (Value change) 
             > collapseContext 
             > splitByValue (Each value ) 
             > formatByExample(input) 
             > Manager_Name

Manager_ID > removeContext 
           > sort (case sensitive, asc) 
           > splitByValue (Value change) 
           > collapseContext 
           > splitByValue (Each value ) 
           > formatByExample(pattern) 
           > Manager_Name

Manager_Name2

Empleado

Employee_ID > formatByExample (input)
            > Employee

Manager_ID > removeContext 
           > sort (case sensitive, asc) 
           > splitByValue (Value change) 
           > formatByExample (pattern) 
           > Employee

Empleado1

ID de empleado

Manager_ID > removeContext 
           > sortByKey(key) 
           > splitByValue(Each value) 
           > Employee_ID

Emoloyee_ID > removecontext 
            > sortByKey(value)
            > Employee_ID

ID de empleado

Nombre de empleado

Mismo mapeo que arriba con Employee_NameNombre de empleado

Feliz lectura.



Source link


árbolAsignaciónCPIestructuramensajesPlanoSAP

Artículos relacionados


Product Information
SAP Marketing Cloud: mejores prácticas de monitoreo de rebotes de correo electrónico
#BTPDevOps  ·  appdevelopment  ·  ApplicationLifecycleManagement  ·  cloud  ·  innovation  ·  Product Information
SAP BTP Innobytes – febrero de 2023
Business Trends  ·  intelligent enterprise  ·  Suite Qualities
Realización de la empresa inteligente | Blogs de SAP

Deja tu comentario Cancelar la respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

*

*

Implementación de una nueva gestión de salida en SAP S/4HANA Cloud (edición privada) y sistema local
Previo
Migración de SD Revenue Recognition a SAP RAR
Siguiente

Madrid

Calle Eloy Gonzalo, 27
Madrid, Madrid.
Código Postal 28010

México

Paseo de la Reforma 26
Colonia Juárez,  Cuauhtémoc
Ciudad de México 06600

Costa Rica

Real Cariari
Autopista General Cañas, 
San José, SJ 40104

Perú

Av. Jorge Basadre 349
San Isidro
Lima, LIM 15073

Twitter Linkedin Instagram
Copyright 2022 | All Right Reserved.
Cookies Para que este sitio funcione adecuadamente, a veces instalamos en los dispositivos de los usuarios pequeños ficheros de datos, conocidos como cookies. La mayoría de los grandes sitios web también lo hacen.
Aceptar
Cambiar ajustes
Configuración de Cookie Box
Configuración de Cookie Box

Ajustes de privacidad

Decida qué cookies quiere permitir. Puede cambiar estos ajustes en cualquier momento. Sin embargo, esto puede hacer que algunas funciones dejen de estar disponibles. Para obtener información sobre eliminar las cookies, por favor consulte la función de ayuda de su navegador. Aprenda más sobre las cookies que usamos.

Con el deslizador, puede habilitar o deshabilitar los diferentes tipos de cookies:

  • Bloquear todas
  • Essentials
  • Funcionalidad
  • Análisis
  • Publicidad

Este sitio web hará:

Este sitio web no:

  • Esencial: recuerde su configuración de permiso de cookie
  • Esencial: Permitir cookies de sesión
  • Esencial: Reúna la información que ingresa en un formulario de contacto, boletín informativo y otros formularios en todas las páginas
  • Esencial: haga un seguimiento de lo que ingresa en un carrito de compras
  • Esencial: autentica que has iniciado sesión en tu cuenta de usuario
  • Esencial: recuerda la versión de idioma que seleccionaste
  • Functionality: Remember social media settings
  • Functionality: Remember selected region and country
  • Analytics: Keep track of your visited pages and interaction taken
  • Analytics: Keep track about your location and region based on your IP number
  • Analytics: Keep track of the time spent on each page
  • Analytics: Increase the data quality of the statistics functions
  • Advertising: Tailor information and advertising to your interests based on e.g. the content you have visited before. (Currently we do not use targeting or targeting cookies.
  • Advertising: Gather personally identifiable information such as name and location
  • Recuerde sus detalles de inicio de sesión
  • Esencial: recuerde su configuración de permiso de cookie
  • Esencial: Permitir cookies de sesión
  • Esencial: Reúna la información que ingresa en un formulario de contacto, boletín informativo y otros formularios en todas las páginas
  • Esencial: haga un seguimiento de lo que ingresa en un carrito de compras
  • Esencial: autentica que has iniciado sesión en tu cuenta de usuario
  • Esencial: recuerda la versión de idioma que seleccionaste
  • Functionality: Remember social media settings
  • Functionality: Remember selected region and country
  • Analytics: Keep track of your visited pages and interaction taken
  • Analytics: Keep track about your location and region based on your IP number
  • Analytics: Keep track of the time spent on each page
  • Analytics: Increase the data quality of the statistics functions
  • Advertising: Tailor information and advertising to your interests based on e.g. the content you have visited before. (Currently we do not use targeting or targeting cookies.
  • Advertising: Gather personally identifiable information such as name and location
Guardar y cerrar