¡Caminando hacia el éxito!

Aprende en Comunidad

Avalados por :

Problemas con la producción y tipo de base en consulta ABAP: Revisión de código OIGE, OIGN y OWOR

  • Creado 01/03/2024
  • Modificado 01/03/2024
  • 27 Vistas
0
Cargando...

Hola a todos. Estoy intentando crear una consulta que vincule estas 3 tablas que son OIGE, OIGN y OWOR, pero mi código parece estar incorrecto porque tengo problemas con la producción y también el tipo de base número parece no estar correcto. ¿Podría alguien por favor revisar mi código a continuación?

SELECT T0.[DocNum] 'Issue for Production', t6.docnum, t7.BaseType,t7.BaseRef 'Job', T0.DocDate, T1.[ItemCode], <br>t1.Dscription,t5.PlannedQty,T1.[Quantity] as 'Issued Qty',t7.Quantity as 'Complete/Return qty',<br>t1.UomCode,t1.unitMsr,t1.WhsCode,t3.ItmsGrpNam,t0.comments,t1.linenum<br>FROM OIGE T0  <br>INNER JOIN IGE1 T1 ON T0.[DocEntry] = T1.[DocEntry] <br>INNER JOIN OITM T2 ON T1.[ItemCode] = T2.[ItemCode] <br>INNER JOIN OITB T3 ON T2.[ItmsGrpCod] = T3.[ItmsGrpCod] <br>inner join OWOR t4 on t4.DocNum = t1.BaseRef<br>left join wor1 t5 on t4.DocEntry=t5.DocEntry and t1.ItemCode=t5.ItemCode<br>left join OIGN t6 on t6.DocEntry=t0.DocEntry <br>left join IGN1 t7 on t7.DocEntry=t6.DocEntry <br>WHERE t3.ItmsGrpNam='RM-HC-NONWOVEN' --and t4.DocNum='5000574' <br>--ISNULL(T3.[itmsgrpnam],'') like '%[%2]%'  <br>order by t0.DocNum, t1.ItemCode
Pedro Pascal
Se unió el 07/03/2018
Pinterest
Telegram
Linkedin
Whatsapp

3 Respuestas

0
Cargando...

Hola,

Prueba esta consulta,

SELECT T0.[DocNum] 'Issue for Production', t6.docnum, t7.BaseType,t7.BaseRef 'Job', T0.DocDate, T1.[ItemCode],

t1.Dscription,t5.PlannedQty,T1.[Quantity] as 'Issued Qty',t7.Quantity as 'Complete/Return qty',

t1.UomCode,t1.unitMsr,t1.WhsCode,t3.ItmsGrpNam,t0.comments,t1.linenum

FROM OIGE T0

INNER JOIN IGE1 T1 ON T0.[DocEntry] = T1.[DocEntry]

INNER JOIN OITM T2 ON T1.[ItemCode] = T2.[ItemCode]

INNER JOIN OITB T3 ON T2.[ItmsGrpCod] = T3.[ItmsGrpCod]

inner join OWOR t4 on t4.DocNum = t1.BaseRef and T1.[BaseType] = 202

left join wor1 t5 on t4.DocEntry=t5.DocEntry and t1.ItemCode=t5.ItemCode

left join OIGN t6 on t6.DocEntry=t0.DocEntry

left join IGN1 t7 on t7.DocEntry=t6.DocEntry

WHERE t3.ItmsGrpNam='RM-HC-NONWOVEN' --and t4.DocNum='5000574'

--ISNULL(T3.[itmsgrpnam],'') like '%[%2]%'

order by t0.DocNum, t1.ItemCode

Saludos,

Nagarajan

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

Hola,

Tus joins están incorrectos. Este sería el join correcto:

FROM OIGE T0INNER JOIN IGE1 T1 ON T0.[DocEntry] = T1.[DocEntry]...INNER JOIN WOR1 T4 ON T1.[BaseType] = '202' AND T1.[BaseEntry] = T4.[DocEntry] AND T1.[BaseLine] = T4.[LineNum]INNER JOIN OWOR T5 ON T4.[DocEntry] = T5.[DocEntry]LEFT JOIN IGN1 T6 ON T5.[ObjType] = T5.[BaseType] AND T5.[DocEntry] = T6.[BaseEntry]LEFT JOIN OIGN T7 ON T6.[DocEntry] = T7.[DocEntry]

Ten en cuenta que cambié algunos identificadores de tablas, así que asegúrate de cambiarlos en tu select.

Saludos,

Matija

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

Hi Nur,
Según mi opinión, debes mantener la tabla de órdenes de producción como tabla base y vincular el problema de producción y la recepción de datos de producción a ella.

Por favor, prueba el siguiente script como ejemplo, y puedes hacer cambios según tus requerimientos. Este script no maneja la descomposición de órdenes de producción ya que su lógica es completamente diferente.

Saludos cordiales

Unnikrishnan

Declarar @FDate DateTime, @TDate DateTime

Seleccionar @FDate = Min(A.DocDate), @TDate = Max(A.DocDate) from OIGN A where A.DocDate >=[%0] and A.DocDate<=[%1]

Establecer @FDate =[%0]

Establecer @TDate = [%1]

--Seleccionar @FDate, @TDate

Seleccionar PrdnHd.DocNum [Número de Orden de Producción],PrdnHd.PostDate [Fecha de Publicación de la Orden de Producción], PrdnHd.CreateDate [Fecha de Creación de la Orden de Producción]

,Caso PrdnHd.Status when 'P' Then 'Planificado'

Cuando 'R' entonces 'Liberado'

Cuando 'L' entonces 'Cerrado' end as [Estado de la Orden de Producción]

,PrdnHd.ItemCode[Código de Producto Terminado]

,PrdnHd.PlannedQty [Cantidad Planificada de Producto Terminado]

,PdnIss.IssDate [Fecha de Publicación de Emisión de Materia Prima]

, PdnIss.IssQty [Cantidad de Emisión de Materia Prima], PdnIss.IssVal [Valor de Emisión de Materia Prima]

,PdnRec.RecDate [Fecha de Publicación de Recepción de Producto Terminado]

, PdnRec.RecQty [Cantidad de Recepción de Producto Terminado], PdnRec.RecVal+isnull(PdnClosure.AdjVal,0) [Valor de Recepción de Producto Terminado]

,isnull(PdnClosure.AdjVal,0)[Valor de Ajuste de Cierre]

, isnull(PdnRec.RecQty,0)-isnull(PdnIss.IssQty,0) [Cantidad de Variación]

, (isnull(PdnRec.RecVal,0)+isnull(PdnClosure.AdjVal,0))-(isnull(PdnIss.IssVal,0)) [Valor de Variación]

from

OWOR PrdnHd

Izquierda Unir ( Seleccionar A.AppObjAbs [Entrada de Producción]

,Max(A.DocDate) [IssDate]

,Sum(A.OutQty-A.InQty)[IssQty] , -Sum(A.TransValue)[IssVal]

from OINM A

Unirse a OITM B en A.ItemCode = B.ItemCode

donde ((A.TransType =60 y A.ApplObj=202) o (A.TransType =59 y A.ApplObj=202 y A.AppObjType='C'))

Agrupar Por A.AppObjAbs

)

PdnIss en PrdnHd.DocEntry = PdnIss.PdnEntry

Izquierda Unir ( Seleccionar A.AppObjAbs [Entrada de Producción]

,Max(A.DocDate) [RecDate]

,Sum(A.InQty-A.OutQty)[RecQty] , Sum(A.TransValue)[RecVal]

from OINM A

donde A.TransType =59 y A.ApplObj=202 y A.AppObjType='P'

Agrupar Por A.AppObjAbs

)

PdnRec en PrdnHd.DocEntry = PdnRec.PdnEntry

Izquierda Unir ( SELECCIONAR T0.CreatedBy[Entrada de Producción], Sum(T0.TransValue)[AdjVal]

DESDE OINM T0

DONDE T0.TransType = '202'

Agrupar Por T0.CreatedBy

Teniendo Sum(T0.TransValue)<>0

)

PdnClosure en PrdnHd.DocEntry = PdnClosure.PdnEntry

Donde PrdnHd.PostDate >= @FDate y PrdnHd.PostDate <= @TDate

y PrdnHd.U_pType no en ('L','C')

Ordenar Por PrdnHd.PostDate ,PrdnHd.DocEntry

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019

contacto@primeinstitute.com

(+51) 1641 9379
(+57) 1489 6964

© 2024 Copyright. Todos los derechos reservados.

Desarrollado por Prime Institute

¡Hola! Soy Diana, asesora académica de Prime Institute, indícame en que curso estas interesado, saludos!
Hola ¿Puedo ayudarte?