viernes, 6 de mayo de 2011

Bloqueo de costos sap b1

Utilizando transaction notification podremos bloquear costos de artículo. El sistema no te permite una autorización que haga esto posible. Se puede agregar un query en el sp transaction notification dentro de la base de datos.

Yo agregue el siguiente query que al momento de agregar el artículo o actualizar no me permitiera generar una orden de venta para no generar cola en facturación.


IF @object_type = '17' and @transaction_type IN ('A','U')
BEGIN

Declare @codigoitem nvarchar(20)
if exists (SELECT T1.[ItemCode]
FROM ORDR T0
INNER JOIN RDR1 T1 ON T0.DocEntry = T1.DocEntry
INNER JOIN OITM T2 ON T1.ITEMCODE=T2.ITEMCODE
WHERE (T1.[price] <= T2.[avgprice])and (T0.docentry = @list_of_cols_val_tab_del)
BEGIN
SELECT @error = 1, @error_message = 'orden de venta con precio bajo de costo '
END

donde :

@object_type = documento donde se requiere el bloqueo.
@transaction_type=tipo de transaccion a add u update.
@list_of_cols_val_tab_del =línea verificada.
@error=error
@error_menssage=mensaje de error.

se pueden declarar variables dentro del transaction para mover información.

en mi query cualquier artículo que este dentro de la tabla RDR1(líneas de la orden de venta) será consultada para ver si su precio es mayor al costo del artículo dentro de la tabla OITM(avgprice) .

Espero que les pueda servir para darse una idea de lo que ustedes necesitan.

4 comentarios:

  1. Gracias!!!

    a mi me sirvió ENE..
    un abrazo

    ResponderEliminar
  2. Hola como estan? requiero de hacer el bloqueo de la creación de una factura si no existe su entrega, si tienen algún manual transaction notification, o algunas pistas de como crear este bloqueo, saludos

    ResponderEliminar
    Respuestas
    1. la transaction notification sería más o menos algo así, aquí lo que le indicas al sistema es que no te permita crear un documento, si no viene o tiene un documento base, espero te funcione

      If @object_type = '18' and @transaction_type = 'A'
      Begin
      If Exists(Select ItemCode From PCH1 T0 Where T0.BaseEntry Is Null And
      T0.DocEntry = @list_of_cols_val_tab_del)
      Begin
      Set @error = -5003
      Set @error_message = N'La factura solo puede ser creada si viene de un documento base'
      End
      End

      Eliminar
  3. Este comentario ha sido eliminado por el autor.

    ResponderEliminar