cancel
Showing results for 
Search instead for 
Did you mean: 

Inventario a una fecha determinada.

former_member325322
Participant
0 Kudos

Hola a todos

Quisiera saber si es posible rescatar directamente de alguna tabla de SAP el inventario a una fecha determinada, esto debido a que estoy trabajando en una query que requiere dicha información.

Saludos

Patricio

Accepted Solutions (1)

Accepted Solutions (1)

Former Member
0 Kudos

hola Patricio,

No creo que exista una tabla donde sea posible "restacar" directamente el saldo del inventario a una fcha determinada, tal como lo muestra Tere con su informe tenemos creado un reporte utilizando los campos INQTY y OUTQTY  haciendo los respectivos calculos y utilizando las tablas OINM, OITW, OHWS.

En SAP el informe de inventarios AUDITORIA DE STOCK te permite generar esta informacion.

Saludos,

JAMS

former_member325322
Participant
0 Kudos

Hola JAM

Muchas gracias por tu ayuda.

Envié a Teresa unas preguntas que te adjunto, a ver si tambien me puedes ayudar en ellas.

Desde ya, muchas gracias

Saludos

former_member325322
Participant
0 Kudos

** Hola Teresa

Muchas gracias por tu ayuda.

Tengo algunas dudas respecto al query que me enviaste, espero me puedas ayudar.

Entiendo que este query muestra las entradas y salidas de un producto por almacen y que una operatoria sobre estos datos me permitirá obtener el inventario a una fecha.

El Where dice que el campo transtype debe ser = 58,¿que significa este número?, ¿donde puedo ver el listado de trastype?, es extraño, pero cuando pido al query que valide esta igualdad no me muestra datos de salida.

¿Porque el query me pide un número de documento en el where?, si lo que necesito es saber el inventario a una fecha determinada.

Desde ya agradezco tu ayuda.

Saludos **

Former Member
0 Kudos

Hola Patricio,

EL transtype = 58 el numero interno que identifica le registro en el diario.

Te envio el query que utilizamos para que lo pruebes,  solicita codigo de bodega y fecha.

SELECT T0.[ItemCode]'CODIGO SAP',  T2.[ItemName]'DESCRIPCION', T2.SWW'REF.FABRICA', T3.FIRMNAME'MARCA',

(SELECT (SUM(Y.InQty)-SUM(Y.OutQty))

FROM OINM Y WHERE Y.ItemCode = T2.ItemCode AND Y.Warehouse = T1.WhsCode AND Y.DocDate BETWEEN '01/01/2001' AND '[%1]') 'STOCK', T1.[WhsCode]'BODEGA', T1.WHSNAME'NOMBRE BODEGA', (SELECT (SUM(Y.TransValue))

FROM OINM Y WHERE Y.ItemCode = T2.ItemCode AND Y.Warehouse = T1.WhsCode AND Y.DocDate BETWEEN '01/01/2001' AND '[%1]')'Valor Acumulado'

FROM OITW T0

INNER JOIN OWHS T1 ON T0.WhsCode = T1.WhsCode

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

INNER JOIN OMRC T3 ON T2.FIRMCODE=T3.FIRMCODE

WHERE (SELECT (SUM(Y.InQty)-SUM(Y.OutQty)) FROM OINM Y WHERE Y.ItemCode = T2.ItemCode AND Y.Warehouse = T1.WhsCode AND Y.DocDate BETWEEN '01/01/2001' AND '[%1]' and (t0.whscode =[%2] OR t0.whscode =[%3] OR t0.whscode =[%4] OR t0.whscode =[%5] OR t0.whscode =[%6] OR t0.whscode =[%7] OR t0.whscode =[%8] OR t0.whscode =[%9] OR t0.whscode =[%10] OR t0.whscode =[%11] OR t0.whscode =[%12] OR t0.whscode =[%13])) != '0'

ORDER BY T0.[WhsCode], T0.[ItemCode]

former_member188440
Active Contributor
0 Kudos

Patricio

EL numero 58 en el transtype es para señalar conteos de inventario, puedes desplegar una lista de los objetos del sistema usando la ayuda de sdk y colocando en el indice lo siguiente "Boo" aparecera Business Object Enumeration, ahi vienen casi todos los object types que se usan en SAP y sus tablas

Answers (2)

Answers (2)

former_member188471
Active Contributor
0 Kudos

PRUEBA CON ESTO Y ME COMENTAS

SELECT T0.DocDate AS 'Fecha de contabilización',
T0.ItemCode AS 'Número de artículo',
t1.itemname AS 'Descripcion',T2.ItmsGrpnam as 'Grupo',
T0.Warehouse AS 'Código de almacén',
case when T0.InQty=0 or T0.InQty is null then T0.OutQty*-1 else T0.InQty end AS 'Cantidad TRX',
T0.CalcPrice AS 'Costo',
case when ((case when T0.InQty=0 or T0.InQty is null then T0.OutQty*-1 else T0.InQty end) * T0.CalcPrice)= 0 then ((case when T0.InQty=0 or T0.InQty is null then T0.OutQty*-1 else T0.InQty end) * T0.CalcPrice) else T0.transvalue END AS 'Monto', T3.segment_0 AS 'Cuenta Stock', T3.AcctName AS 'Nombre Cuenta' INTO #TEMP
FROM dbo.OINM T0 INNER JOIN dbo.OITM T1 ON T0.ItemCode = T1.ItemCode
INNER JOIN dbo.OITB T2 ON T1.ItmsGrpCod = T2.ItmsGrpCod
INNER JOIN dbo.OACT T3 ON T2.BalInvntAc = T3.AcctCode
WHERE T0.DocDate<='20111231' and T0.Warehouse=01

SELECT [Número de artículo], Descripcion, Grupo,[código de almacén], SUM([Cantidad TRX]) AS Cantidad, SUM(Monto) AS Valor,CAST ( CASE WHEN SUM(Monto)=0 OR SUM([Cantidad TRX])=0 tHEN 0 else SUM(Monto)/SUM([Cantidad TRX]) END AS NVARCHAR)AS 'Costo Prom', [Cuenta Stock], [Nombre Cuenta]
FROM #TEMP
GROUP BY [Número de artículo], Descripcion, [código de almacén], [Cuenta Stock], [Nombre Cuenta],grupo

******esto correlo para cuando necesites correr de nuevo el query de arriba*******
--BORRAR TABLA TEMPORAL
USE TEMPDB
IF EXISTS(select OBJECT_ID('tempdb..#Datos'))
BEGIN
--select 'Si Existe'
DROP TABLE #Temp
END
ELSE
BEGIN
select 'No Existe'
END

Former Member
0 Kudos

Hola,

Yo tengo esta consulta para extraer la informción:

SELECT T0.CreatedBy [Doc.Inventario], T0.ITEMCODE, T0.DSCRIPTION, T2.ItmsGrpNam [Grupo artculo], T0.WareHouse [Alm.], T0.DOCDATE, T0.CARDCODE, T0.INQTY 'Cantidad entrante', T0.OUTQTY 'Cantidad saliente', T0.Price, T0.transvalue 'Importe Transacción' 

FROM OINM T0 INNER JOIN OITM T1 ON T0.ItemCode = T1.ItemCode INNER JOIN OITB T2 ON T1.ItmsGrpCod = T2.ItmsGrpCod

WHERE T0.TRANSTYPE = 58 AND T0.DOCDATE = 'FECHA' AND T0.WareHouse = 'COD ALMACËN' AND CAST(T0.CreatedBy AS VARCHAR) = 'Nº DOCUMENTO'

Para obtener los docuemntos generado en la base de datos utilizo la siguiente:

SELECT CAST (T0.[TransId] AS VARCHAR), T0.[RefDate] FROM OJDT T0 WHERE T0.[TransType]  = '58'

Espero que te ayude,

Un saludo,

Tere

former_member325322
Participant
0 Kudos

Hola Teresa

Muchas gracias por tu ayuda.

Tengo algunas dudas respecto al query que me enviaste, espero me puedas ayudar.

Entiendo que este query muestra las entradas y salidas de un producto por almacen y que una operatoria sobre estos datos me permitirá obtener el inventario a una fecha.

El Where dice que el campo transtype debe ser = 58,¿que significa este número?, ¿donde puedo ver el listado de trastype?, es extraño, pero cuando pido al query que valide esta igualdad no me muestra datos de salida.

¿Porque el query me pide un número de documento en el where?, si lo que necesito es saber el inventario a una fecha determinada.

Desde ya agradezco tu ayuda.

Saludos