cancel
Showing results for 
Search instead for 
Did you mean: 

Duplicados en Ordenes de Venta

Former Member
0 Kudos

Buenas noches

Quiero ver si alguien sabe como puedo saber si un artículo está duplicado en otro renglón de una orden de venta antes de cerrarla. EL escenario es que yo solamente surto de una bodega pero la gente de ventas al capturar puede duplicar un artículo sin darse cuenta y el stock puede fallar pues SAP lo evalúa hasta que se hace la entrega.

¿Alguna sugerencia?

Gracias

Accepted Solutions (1)

Accepted Solutions (1)

former_member188440
Active Contributor

Podrias meter una validacion por TransactionNotification que se encarge de contar articulos duplicados y si te devuelve algun valor entonces mande un error



if (@Object_type in ('17') and @transaction_type in('A')) OR (@Object_type in ('17')
	and @transaction_type in('U'))
begin
declare @duplicado as  nvarchar(8)
set @duplicado = (select max(T0.itemcode) FROM RDR1 T0 INNER JOIN ORDR T1 ON T0.DocEntry = T1.DocEntry
	WHERE  T0.DocEntry = @list_of_cols_val_tab_del)
	IF len( @duplicado)<>  0
	begin
	SET @error = 1
    SET @error_message = ('ERROR existe uno o mas items repetidos en su orden de venta ' +  @duplicado )

end 
end

De esta forma cuando mande el error te mandara tambien el itemcode que encontro duplicado hasta que no encuentre mas.

Espero te sirva

Former Member
0 Kudos

Excelente tu ayuda. Solamente quiero ver si me puedes dar una ayuda de Transaction notification. ¿Como implementas esta query?

Gracias

Former Member
0 Kudos

Muy interesante y util tu solucion tenia una consulta:

Una vez que grabo ese store procedure y lo pruebo en SAP abro una orden e intento ingresar un articulo repetido saldria un mensaje en pantalla que indicaria la duplicidad?

Mi consulta es la siguiente este mismo Store Procedure podria generarse por ejemplo para una factura, boleta, nota, etc.

Solo se podria realizar este store a un solo documento o se puede realizar a varios como por ejemplo una factura y boleta

Muchas gracias

Saludos

Luis

Former Member

Lo modifiqué porqué me marcaba error incluso si no había duplicados. Esta es la nueva consulta y ya la probé y funciona bine.

if (@Object_type in ('17') and @transaction_type in('A')) OR (@Object_type in ('17')

and @transaction_type in('U'))

begin

declare @duplicado as nvarchar(8)

set @duplicado = (SELECT COUNT(T0.ItemCOde) FROM RDR1 T0 INNER JOIN ORDR T1 ON T0.DocEntry = T1.DocEntry

WHERE T0.DocEntry = @list_of_cols_val_tab_del GROUP BY (T0.ItemCode) HAVING ( COUNT(T0.ItemCode) > 1 ))

IF len( @duplicado)> 0

begin

SET @error = 1

SET @error_message = ('ERROR existe uno o mas items repetidos en orden de venta ')

end

end

Me ayudaste mucho gracias

Answers (1)

Answers (1)

Former Member
0 Kudos

¿Me puedes ayudar a instalar la query?

former_member188440
Active Contributor
0 Kudos

Claro, mira primero todo esto pruebalo en un ambiente de pruebas

Desde el SQL Management Studio, abre tu base y en Programacion, Procedimientos Almacenados, debes ubicar uno de nombre SBO_SP_TransactionNotification

Dale clic derecho y seleccionas MODIFICAR

Esto abrira tu codigo en forma de ALTER PROCEDURE SBO_SP_TransactionNotification

Busca una linea en el codigo que dice

ADD YOUR CODE HERE

Debajo de esta es donde debes colocar el codigo que te puse arriba.

Una vez hecho esto Presiona F5 o clic en el boton Ejecutar y entonces te actualizara el procedimiento.

Ejectuta tus pruebas desde SBO

Cuentanos como te va!

Former Member
0 Kudos

Muchas gracias, lo pruebo y reporto los resultados

Saludos

Former Member
0 Kudos

Funciona Excelente!!! Muchas gracias por tu ayuda.