#1
|
|||
|
|||
FOR ALL ENTRIES con distintos campos
Resulta que tengo una tabla interna T_LBF01 con un campo LIFNR (que es un CHAR de 10), y otra tabla interna T_CDHDR con un campo OBJECTID (que es un CHAR de 90)
La tabla T_LBF01 ya esta cargada con datos y la uso en un FOR ALL ENTRIES para cargar la tabla T_CDHDR (la cargo con la tabla standard CDHDR) en el cual el campo OBJECTID tiene que ser igual a T_LBF01-LIFNR (que es un CHAR de 90). Quedaria asi: SELECT OBJECTCLAS OBJECTID CHANGENR FROM CDHDR INTO TABLE T_CDHDR FOR ALL ENTRIES IN T_LFB1_AUX WHERE OBJECTCLAS = 'KRED' AND OBJECTID = T_LFB1-LIFNR AND. Pero como saben OBJECTID(CHAR de 90) Y T_LFB1-LIFNR(CHAR de 10) tienen que ser del mismo tipo y tamaño. En la especificacion me piden que complete T_LFB1-LIFNR con ceros a la izquerda. Soy novato, alguien tiene idea de como podria resolver este problema de manera relativamente performante? |
#2
|
|||
|
|||
A ese campo de 10 metelo en una variable que crees del mismo tipo de la de 90.
Y para completar el resto del campo con ceros, tenés que hacer un unpack de esa variable y listo. Espero haberte ayudado. Saludos! |
#3
|
|||
|
|||
Bueno..yo le cambiaría el tipo al campo lifnr de la tabla interna..eso si la tienes definida campo a campo...si lo que haces es declarar la tabla interna como una estructura ya existente...le pondría un campo extra..digamos LIFNUM..y le movería el valor del campo correspondiente ahi...
de ahi puedes hacer la comparacion entre tu campo objid y el lifnum DATA: BEGIN OF t_interna OCCURS 0. INCLUDE STRUCTURE z_tablaz. DATA: lifnum(3) TYPE c, END OF t_interna. Ojala te ayude.. Saludos Promethevs |
#4
|
|||
|
|||
Muchas gracias, me sirven las 2.
|
Herramientas | Buscar en Tema |
Desplegado | |
|
|