Bloquear edicion de campos en Facturas Cerradas

Estimados, hice una restriccion en en TransacionNotification del SAP que evita actualizar una Factura de Venta que esta con el estado de CERRADO:

– Bloquear modificaciones en Factura de Proveedores
If @object_type = ‘13’ and @transaction_type in (‘U’)

Begin
  
    IF (select T0.DocStatus from OPCH T0 where docEntry = @list_of_cols_val_tab_del)='c'
              
        begin
              set @error = '1'
              set @error_message = 'INCA: No se puede modificar una Factura ya cerrada'
        end
  END

– Fin
Sin embargo se me solicita que solamente se bloquee la edicion de los siguientes campos (en una factura CERRADA)

Para que las pestanas de LOGISTICA, FINANZAS puedan ser editadas aunque la factura este cerrada. Que debo anadir a mi codigo?
Gracias.
Mireya

1 me gusta

Hola @mireyaSIS en este caso si te puedo ayudar más.

A ver. tengo varias cosas aquí que no me quedan claras. Empecemos por:

  1. Cuando hablas de una factura “Cerrada” a que te refieres?.. ¿Porqué mi pregunta? sencillo, cuando una factura esta cerrada o cancelada TODOS los campos se bloquean automáticamente y no pueden ser modificados. (o ese es mi entendido) la única forma que el documento se pueda modificar es que se reverse el documento que lo cerro, en este caso al ser una factura de deudores, este se cierra cuando se recibe el pago y se registra en el sistema, luego ya no se puede modificar, al menos que reverses el pago y la factura vuelve a quedar abierta.

  2. En el TransacionNotification (TN) esta bien el query que hiciste para no permitis ningún cambio a un documento cerrado, aunque como te digo, con los bloqueos del punto 1 esto no debería de pasar si el documento realmente está cerrado ya con su pago realizado.

  3. Por el TN, NO SE PUEDE BLOQUEAR CAMPOS de la pantalla. El TN es sencillamente una corrida que se realiza de verificación antes de realizar la carga de datos en SAP. Es decir, en el normalmente se hacen códigos para validar que se cumpla con cierta información, con campos que son necesarios o deben tener ciertas características (como que un correo tenga el simbolo de @ o termine en .com por ejemplo). Y al verificar que alguna característica no se cumple, entonces procede a regresar la transacción y no ser guardada en la BD. Pero aquí no puedes modificar ningún campo ni parte del UI de la pantalla.

  4. Lo que puedes hacer es modificar el UI de la pantalla y Dehabilitar la modificación de esos campos, pero eso te lo bloquearía para TODAS las operaciones, no solamente para cuando sea un documento “Cancelado” (que aún necesito la respuesta del punto 1 para entender porque se supone que está desbloqueado en un documento cerrado o cancelado). Por lo que no lo recomiendo a menos que les coloques busquedas formateadas o algo así y sin embargo solo significa que pueden cambiarlo igual si cambian las condiciones de la búsqueda formateada. (Esto incluye el "bloqueo de las pestañas de Logistica y Finanzas que no pueden ser bloqueadas por el TN)

Estimado Ares1700:

  1. Una factura con el estado de Cerrado (por el pago realizado) sin embargo a pesar de ese estado se puede modificar los campos de Numero de Referencia y los Comentarios.
  2. Con el codigo verifico si el estado esta en Cerrado no deja actualizar sin embargo hay campos que si debo modificar (como por ejemplo el contenido de la pestana Finanzas) y hay campos que no debo modificar ( como por ejemplo en la cabecera el campo Numero de Referencia.
  3. se me ocurre comparer el valor anterior con el Nuevo valor y al ser diferentes no dejar cambiar este valor (tengo la idea no el codigo de como hacerlo)
1 me gusta

Prueba buscando el registro en la tabla ADOC.

Esto te servirá bastante:

ht_ps://archive.sap.com/discussions/thread/1951958

Suerte compañera.

Este tema se cerró automáticamente 7 días después del último post. No se permiten nuevas respuestas.