¿Cómo puedo unir 2 tablas con un campo UUID convertido?
En SAP EWM, el ID del material se almacena en las tablas /SAPAPO/
utilizando el elemento de datos /SAPAPO/MATID
, que es un CHAR 22. Por otro lado, las tablas /SCWM/
utilizan el elemento de datos /SCWM/DE_MATID
, que es un RAW 16. Todo el código estándar que he visto utiliza la clase CL_SYSTEM_UUID
y, por ejemplo, el método IF_SYSTEM_UUID_STATIC~CONVERT_UUID_C22
para asignar un ID de material C22 a un X16.
Esto me impide unir las tablas directamente sin seleccionar primero, convertir el ID del material y luego seleccionar.
¿Existe alguna manera de ejecutar una SELECT para unir dos tablas con diferentes tipos de ID?
El sistema ejecuta una base de datos HANA y ABAP 7.50.
Las dos tablas que quiero unir son: /SAPAPO/MATKEY
y /SCWM/PVPAKC
.
Me gustaría ejecutar una SELECT similar a esta:
SELECT FROM /scwm/pvpakc AS pack_spec
INNER JOIN /sapapo/matkey AS material ON material~matid = pack_spec~matid
FIELDS pack_spec~pvguid as ps_guid,
material~matnr as material_num
INTO TABLE @DATA(lt_pack_spec_material).
Por supuesto, la unión anterior no es posible ya que el MATID entre las tablas necesita ser convertido.
davy.ai
Dado que el ID del material se almacena usando diferentes elementos de datos en las tablas
/SAPAPO/
y/SCWM/
, no es posible unir directamente estas tablas basadas en el ID del material. Sin embargo, dado que el sistema funciona en una base de datos HANA, es posible aprovechar la potencia de HANA para unir estas tablas.Una opción es crear una vista HANA que una las dos tablas y realice la conversión necesaria del ID del material. Luego, la vista se puede utilizar en el código ABAP para realizar la unión.
Aquí hay un ejemplo de cómo crear una vista HANA que une
/SAPAPO/MATKEY
y/SCWM/PVPAKC
tablas de acuerdo al ID del material:En esta vista, estamos utilizando el método
CONVERT_UUID_X16_C22
de la claseCL_SYSTEM_UUID
para convertir el ID del material de X16 a C22 antes de unir las tablas.Una vez que se crea la vista, se puede usar en el código ABAP como cualquier otra tabla. Aquí hay un ejemplo de cómo usar la vista para unir las tablas:
Al utilizar una vista HANA, podemos unir las dos tablas aunque tengan diferentes formatos de ID de material, sin tener que realizar ninguna conversión manual en el código ABAP.