|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
User Exit Traspaso de cabecera de factura hacia el texto de cabecera de doc contable
Hola a todos,
Estoy nueva en esto de ABAP Tengo un requerimiento que cuando se cree una factura a través de la transacción VF01 o VF04 y se active el user exit se deberá traspasar el texto de cabecera hacia el documento contable. Estoy realizandolo a través del EXIT_SAPLV60B_001, programa SAPLV60B. En el código estoy utilizando la función READ_TEXT, en el name le asigne el número de documento comercial, sin embargo, no entiendo cómo especificarle que la información que lea la debe guardar en el Texto Cabecera Documento: BKPF-BKTXT. Por favor, si alguien ha hecho algo parecido que me pueda iluminar, mil gracias! |
#2
|
||||
|
||||
Hola ... tendrias que crear una exit de sustitucion y traer el texto de la factura usando el READ_TEXT ... las sustituciones la deberias de generar a nivel de cabecera dentro de la OBBH
__________________
David Carballido Córdova |
#3
|
|||
|
|||
En el User exit EXIT_SAPLV60B_001 la estructura XACCHD (que se encuentra en el exporting) tiene el campo BKTXT, ese corresponde con el de la BKPF.
Saludos |
#4
|
|||
|
|||
Uhm, ok, gracias! por lo que he leido y entendido, la logica de mi include en el user exit es la siguiente:
TABLES: VBDKR, ACCHD. DATA: znombre LIKE THEAD-TDNAME, zheader LIKE THEAD, zlines LIKE tline OCCURS 0 WITH HEADER LINE. * Asignando el numero de documento comercial znombre = VBDKR-VBELN. call function 'READ_TEXT' exporting id = '0001' language = 'S' name = znombre object = 'VBBK' importing header = zheader tables lines = zlines exceptions id = 1 language = 2 name = 3 not_found = 4 object = 5 reference_check = 6 wrong_access_to_archive = 7 others = 8. *Deberia asignarle al campo texto de cabecera de documento contable, lo que lei ACCHD-BKTXT = zlines-tdline. Lo que veo es que no se esta copiando :s Disculpen las burradas |
#5
|
|||
|
|||
No tienes que declarar TABLES: VBDKR,
ACCHD. En la estructura VBRK de la funcion estan los datos de cabecera de la factura y en XACCHD-BKTXT es a la que le vas a hacer la asignacion (esos son Parametros de entrada y salida de la funcion). Tambien Tienes que Leer la tabla interna zlines, para que los valores se situen en la cabecera y se te copian a la variable XACCHD-BKTXT Mas o menos asi DATA: znombre LIKE THEAD-TDNAME, zheader LIKE THEAD, zlines LIKE tline OCCURS 0 WITH HEADER LINE. * Asignando el numero de documento comercial znombre = VBRK-VBELN. call function 'READ_TEXT' exporting id = '0001' language = 'S' name = znombre object = 'VBBK' importing header = zheader tables lines = zlines exceptions id = 1 language = 2 name = 3 not_found = 4 object = 5 reference_check = 6 wrong_access_to_archive = 7 others = 8. *Deberia asignarle al campo texto de cabecera de documento contable, READ TABLE zlines index 1. "Con esto solo obtendrias la 1ra posicion del texto "Si tiene varias haz un loop XACCHD-BKTXT = zlines-tdline. |
#6
|
|||
|
|||
Graciaaaas, Mike! Ya lo corregi y esta listo!
|
#7
|
|||
|
|||
Yo otra vez
Pense que estaba listo pero no... Al hacer un debugging las variables guardan los valores que deberian: de entrada, el numero de factura y de salida, el texto de cabecera (esto cuando creo la factura). Pero al visualizar la factura e irme al campo de documento contable, el texto de cabecera se encuentra vacio. He estado dandole vueltas todo el dia pero de verdad no veo que puede ser... Al final,mi codigo quedo asi: DATA: zfactura LIKE THEAD-TDNAME, zheader LIKE THEAD, zlines LIKE tline OCCURS 0 WITH HEADER LINE, wa_lines LIKE zlines. * Asignando el numero de factura zfactura = VBRK-VBELN. * Funcion para leer el texto de cabecera call function 'READ_TEXT' exporting id = '0001' language = 'S' name = zfactura object = 'VBBK' importing header = zheader tables lines = zlines exceptions id = 1 language = 2 name = 3 not_found = 4 object = 5 reference_check = 6 wrong_access_to_archive = 7 others = 8. * Asignando el campo de texto de cabecera de la factura al campo de texto de cabecera del documento contable loop at zlines INTO wa_lines. CONCATENATE xacchd-bktxt wa_lines-tdline INTO xacchd-bktxt separated by space. endloop. Por favor, quien me pueda iluminar! Gracias de antemano!!!! |
#8
|
|||
|
|||
Hola! Ya lo solucioné! Habia que Verificar la implementación de los métodos change_initial y change_after_check en la BADI AC_DOCUMENT y agregar esta línea:
MOVE-CORRESPONDING im_document-header to ex_document-header. Si aún no funciona, Chequear las clases que comprende, sus métodos y las posibles BADIS que los contengan. Saludos! |
Herramientas | Buscar en Tema |
Desplegado | |
|
|