cancel
Showing results for 
Search instead for 
Did you mean: 

Variable en sap

Former Member
0 Kudos

Hola buenas tardes, estoy probando una consulta en sap y necesito saber como hago para crear una variable y que esta pueda ser ingresada por el usuario, les explico lo que pasa es que necesito que cuando el usuario abra la consulta digite el numero de dias intente de la siguiente forma:

declare @tp nvarchar(3)

set @tp = [%0]

pero no consigo que funcione, este es el codigo que tengo:

declare @tp NVARCHAR(3)

Set @tp = 120 "si lo dejo con valor fijo funciona de maravilla"

SELECT DISTINCT T1.[SWW], T1.[ItemCode], T0.[Dscription], T2.[ItmsGrpNam], T3.[FirmName] as Linea, T1.[U_Subgrupo],

CASE WHEN

SUM(T0.[Quantity])/ ROUND((DATEDIFF(dd, (getdate()-90), getdate())/30.0),0) * @tp/30 - T1.[OnHand] >0

THEN  SUM(T0.[Quantity])/ ROUND((DATEDIFF(dd, (getdate()-90), getdate())/30.0),0) * @tp/30 - T1.[OnHand]

WHEN SUM(T0.[Quantity])/ ROUND((DATEDIFF(dd, (getdate()-90), getdate())/30.0),0) * @tp/30 - T1.[OnHand]  <0

THEN SUM((T0.[Quantity])/ ROUND((DATEDIFF(dd, (getdate()-90), getdate())/30.0),0) * @tp/30 - T1.[OnHand])*0 END as SUGERIDO,

SUM(T0.[Quantity])/ ROUND((DATEDIFF(dd, (getdate()-90), getdate())/30.0),0) * @tp/30 as PROYECCION ,

T1.[OnHand] AS EXISTENCIAS,

T1.[OnHand] / (SUM(T0.[Quantity])/ROUND((DATEDIFF(dd, (getdate()-90), getdate())/30.0),0)) as CAPACIDAD_INVENTARIO,

SUM(T0.[Quantity])/ ROUND((DATEDIFF(dd, (getdate()-90), getdate())/30.0),0) AS CONSUMO_TOTAL,

SUM(T0.[Quantity]) AS VENTA_ULTIMOS_3_MESES,

@tp/30 as TIEMPO_REPOSICION

FROM INV1 T0

INNER JOIN OITM T1 ON T0.ItemCode = T1.ItemCode

INNER JOIN OITB T2 ON T1.ItmsGrpCod = T2.ItmsGrpCod

INNER JOIN OMRC T3 ON T1.FirmCode = T3.FirmCode

WHERE T2.[ItmsGrpNam]=[%0]  and T0.[DocDate] >= (getdate()-90) and T0.[DocDate] <= getdate()

GROUP BY T1.[ItemCode], T2.[ItmsGrpNam], T1.[OnHand],T0.[Dscription],T1.[SWW],T3.[FirmName], T1.[U_Subgrupo]

ORDER BY T3.[FirmName], T1.[U_Subgrupo]

for browse

lo que quiero es que en vez de poner un valor fijo el usuario pueda poner el numero de dias que quiera, espero me entiendan y me colaboren ya que es algo que necesito con suma urgencia.

Mil gracias a todos por su ayuda

Accepted Solutions (0)

Answers (1)

Answers (1)

Former Member
0 Kudos

Que tal Lender,

Puedes realizarlo haciendo un Stored Procedure poniendo todo el query.

Y en SAP, en el Query Manager le agregas algo como esto:

-- =====================================================

/*SELECT FROM [dbo].[OCRD] T1] T1*/        

declare  @variable as nvarchar (30)         

/* WHERE */                                 

set @variable= /* T1.CardCode */ [%0]

EXEC [dbo].[Tu_SP_Aqui] @variable

-- =====================================================

Te pedirá ingresar el dato y ese dato se lo manda al SP.

Realizar pruebas y comentas.

// la información salio de los foros, ya me había tocado realizar algo similar a esto y lo encontré buscando en los foros.

Saludos y suerte.

atte:

Edd