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.