• Inicio
  • Novedades
  • Academia SAP
  • FAQ
  • Blog
  • Contacto
S4PCADEMY_Logo
Twitter Linkedin Instagram
S4PCADEMY_Logo
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.




árbolAsignaciónCPIestructuramensajesPlanoSAP

Artículos relacionados


compliance management  ·  export control  ·  GRCTuesdays  ·  Product Information
Por qué debería implementar controles regulatorios de reexportación de EE. UU. en SAP Global Trade Services, edición para SAP HANA
Quovadis  ·  quovadis-k8s  ·  Technical Articles
Potencia de serverless con SAP BTP, Kyma runtime. Anulación de la imagen base.
Technical Articles
Servicios de datos de SAP: error de falla del SDK de sesión al instalar SAP Information Steward
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.