cancel
Showing results for 
Search instead for 
Did you mean: 

Procedimiento de Autorización por Grupo de Articulo

0 Kudos

Buen día que tal....

Espero alguien me pueda ayudar con lo siguiente: Necesito que se ejecute un Procedimiento de Autorización cuando se genere un nuevo pedido de cliente con las siguientes condiciones:

1.- Los artículos que conforman el pedido pertenezcan a un grupo de artículos "x"

2.- La ganancia bruta sea menor al 12%.

Genere la siguiente consulta, sin éxito:

DECLARE @CodArt VARCHAR (100)

DECLARE @GrpArt Int

SET @CodArt = $[RDR1.ItemCode]

SET @GrpArt = (SELECT T0.[ItmsGrpCod] FROM OITM T0 WHERE T0.[ItemCode] = @CodArt)

IF @GrpArt = '129' AND (($[ORDR.GrosProfit.number] / $[ORDR.DocTotal.number]) *100) < 12 SELECT 'True'

else SELECT 'False

Gracias

Accepted Solutions (0)

Answers (1)

Answers (1)

armandomuozsule
Active Participant
0 Kudos

Buen día Ángel, prueba de esta forma , espero que te sirva.

saludos

DECLARE @CodArt VARCHAR (100)

DECLARE @GrpArt Int

Declare @Calculo numeric(18,2)

SET @CodArt =(select Top 1 b.ItemCode from ORDR a inner join RDR1 b on a.docentry=b.DocEntry where a.DocNum=$[ORDR.Docnum]

SET @GrpArt = (SELECT T3.[ItmsGrpCod] FROM ORDR T1 inner join RDR1 T2 on t1.DocEntry=T2.DocEntry

                                                   inner join OITM T3 on T3.ItemCode=T2.ItemCode  WHERE T3.[ItemCode] = @CodArt)

SET @Calculo=(select (grosprofit/DocTotal)*100 from ORDR where DocNum=$[ORDR.Docnum] )

IF @GrpArt = '129' AND @Calculo < 12 SELECT 'True'

else SELECT 'False

0 Kudos

Que tal Armando

Realice una prueba con el query que me enviaste y el SAP me envía el siguiente error:

"Se ha producido un error interno"  y posterior al mensaje crea el "pedido de cliente" sin solicitar la autorización...

armandomuozsule
Active Participant
0 Kudos

Buen dia Angel le hice un par de ajustes al query que por las prisas se me habian pasado por alto, prueba esto y me comentas,saludos.

DECLARE @CodArt VARCHAR (100)

DECLARE @GrpArt Int

Declare @Calculo numeric(18,2)

SET @CodArt =(select Top 1 b.ItemCode from ORDR a inner join RDR1 b on a.docentry=b.DocEntry where a.DocNum=$[ORDR.Docnum])

SET @GrpArt = (SELECT top 1 T3.[ItmsGrpCod] FROM ORDR T1 inner join RDR1 T2 on t1.DocEntry=T2.DocEntry

                                                   inner join OITM T3 on T3.ItemCode=T2.ItemCode  WHERE T3.[ItemCode] = @CodArt)

SET @Calculo=(select (grosprofit/DocTotal)*100 from ORDR where DocNum=$[ORDR.Docnum] )

IF @GrpArt = '129' AND @Calculo < 12 SELECT 'True'

else SELECT 'False'