PDA

Ver la Versión Completa : Actualizacion de campos Z desde BAPI


osoublette
05/12/08, 11:11:37
Hola a todos.
Tengo un problema. Les comentos el ecenario....
Resulta que tengo una ampliacion en la tabla EKKO (cabecera de pedidos) y ya he añadido los campos z y los puedo actualizar atra ves de un screen exit.

Existe una interfaz que modificará los pedidos de compra, para lo que quiero utilizar la bapi BAPI_PO_CHANGE. El problema esta en que no se como actulizar los campos Z de esta tabla a través de la bapi, ya que en las estructuras de la bapi no encuentro ampliaciones.

Alguien sabe como puedo actualizar los campos Z desde la bapi???

ballan
05/12/08, 12:24:05
Tienes que utilizar la EXTENSIONIN y te recomiendo que todos los campos que añadas sean de tipo char, si añades campos de tipo P (importes, etc) te va a dar muchisimas complicaciones porque tendras que implementar otra BADI

Supongo que habras añadido los campos Z en la estructura CI_EKKODB y CI_EKKODBX, por poner un ejemplo imaginemos que la CI_EKKODB tiene esta estructura

ZZCAMPO1 Char longitud 5
ZZCAMPO2 Char longitud 4

y queremos cambiar el valor del campo ZZCAMPO2 y poner el valor PEPE

data: lt_extensionin type table of bapiparex.

data: ls_extensionin type bapiparex.

ls_extensionin-structure = 'BAPI_TE_MEPOHEADER'
ls_extension-valuepart1 = 'PEDIDO PEPE'.

Aqui tienes que poner los 10 digitos del numero de pedido, dejar 5 espacios en blanco porque el campo ZZCAMPO1 no lo quieres modificar y luego poner el valor del campo ZZCAMPO2

append ls_extensionin to lt_extensionin
clear ls_Extensionin

ls_extensionin-structure = 'BAPI_TE_MEPOHEADERX'
ls_extension-valuepart1 = 'PEDIDO X'.

Aqui tienes que poner los 10 digitos del numero de pedido, y dejar 1 espacio en blanco del flag del campo ZZCAMPO1 que no lo queremos cambiar

append ls_extensionin to lt_extensionin
clear ls_Extensionin


Luego cuando llames a la BAPI_PO_CHANGE tienes que pasarle la tabla extensionin