PDA

Ver la Versión Completa : Modificar UserExit


cacuna
23/07/09, 17:35:25
SAP ECC 5.0
Grupo de Funciones: VKMP
Include: LVKMPFZ1

Que tal.
Estoy realizando una modificacion a la rutina USER_CREDIT_CHECK1 del User Exit ya mencionado.
Basicamente lo que deseo hacer es que cuando se realize la segunda verificacion dinamica de credito, la cual, es en el Picking de la Entrega, si el estatus de la Entrega (en la tabla VBUK) es A (No bloqueado) que cambie el Estatus a D.


***INCLUDE LVKMPFZ1 .
* Subroutines for user credit check 1
*---------------------------------------------------------------------*
* FORM USER_CREDIT_CHECK1 *
* this routine must be programmed, if user activates credit *
* check user 1 in T691f *
* please regard message numbers V1170, V1171 in Table T100 *
*---------------------------------------------------------------------*
* --> UCC1_UPDATE 'X' means during posting a document *
* ' ' means during processing items *
* --> UCC1_KKBER credit control area *
* --> UCC1_KNKLI credit customer *
* --> UCC1_FLG_ORDER 'X' means document is an order *
* --> UCC1_FLG_DELIVERY 'X' means document is a delivery note *
* <-- UCC1_RC returncode: 0 means OK, 4 means not OK *
*---------------------------------------------------------------------*
form user_credit_check1 using ucc1_update
ucc1_kkber
ucc1_knkli
ucc1_flg_order
ucc1_flg_delivery
changing
ucc1_rc.
* clear the returncode
* credit check: if not positiv, set returncode

clear ucc1_rc.
if ucc1_flg_delivery = 'X'.
if vbuk-cmgst = 'A'. " Aqui verifico el estatus de la entrega
vbuk-cmgst = 'D'. " Si es "A", se cambia a "D".
modify vbuk.
ucc1_rc = 0.
endif.
endif.

* MOVE CON_RC_NOK TO UCC1_RC.
endform.


El problema es que no me lleva a cabo la actualizacion del estatus en la tabla VBUK.
De hecho, al debuggear el valor de VBUK-CMGST siempre es VACIO.

Alguna sugerencia...?
Gracias,

cacuna.

patrus
24/07/09, 09:36:49
Hola

tienes que especificar a que documento comercial estas haciendo referencia en la vbuk si lo haces para una entrega especifica. Te recomiendo que hagas un update en vez de un modify para la actulizacion de la tabla. Despues del update pones commit work para ejecute el update. Espero haberte ayudado en tus dudas.

ballan
24/07/09, 14:05:10
No se como resolver tu caso en particular, lo que si se es que dentro de una user-exit NUNCA se debe poner un commit work porque puedes dejar las tablas inconsistentes