Buenas tardes señores, necesito realizar una consulta sobre lista de materiales en SAP B1, pero que sea recurrente y/o que tenga varios niveles, ya que en nuestra implementación, una lista de materiales, pertenece y/o es ingrediente de otra y así sucesivamente hasta 5 niveles mas o mas y para poder sacar el costo de una lista, necesito llevar todas la lista y sus componenentes a nivel de ingredientes para obtener el costo de cada uno…
Lista 1
Ingrediente 1
Ingrediente 2
Ingrediente 3
Ingrediente 4
Lista 4
Lista 4
Ingrediente 11
Ingrediente 12
Lista 5
Lista 5
Lista 99
Lista 77
Lista 25
Lista 77
Ingrediente 22
Ingrediente 23
Ingrediente 24
hola @Armando_Caste, este script es muy basico para obtener las listas de materiales pero te podrias ayudar.
SELECT T0.[Code], T2.[ItemName], T0.[PlAvgSize], T0.[ToWH], T1.[Code], T1.ChildNum,
ISNULL(( Select A.[ItemName] from oitm A Where A.ItemCode = T1.Code),0)[Descripcion],
T1.[Quantity], T1.[Warehouse], T1.[Price], T2.BuyUnitMsr
FROM OITT T0 INNER JOIN -- Encabezado de lista de materiales
ITT1 T1 ON T0.[Code] = T1.[Father] INNER JOIN -- Detalle de lista de materiales
OITM T2 ON T0.[Code] = T2.[ItemCode] -- Maestro de Articulos
Espero te sea de ayuda, siempre comenta como te va.
With BOM (Root,Parent,Child,Level,Quantity) As
(
Select P.Code ,convert(nvarchar(20),'') ,P.Code ,0 Level, convert(varchar(20),' ')
From OITT P
Union All
Select B.Root,c.Father,C.Code,Level+1,convert(varchar(20),C.Quantity)
From Itt1 C
Inner join BOM B on c.Father=B.Child
)
Select B.*
From BOM B
Order By B.Root,B.Level
Option (MAXRECURSION 99)
@Willy_Caldero gracias por tu aporte, eso si, al principio me arrojaba error, pero era por que después del unión all los campos c.father y level+1 tambien se deben convertir.
Consulta se puede poner un distinct?, por que me repite algunas columnas.
Produccion–Informes de Produccion–Informes Lista de Materiales
Seleccionas Articulos y das enter…despues le das expandir todo…exportar a excel y listo…asi salen las Listas de Materiales, Padres e hijos…y si un hijo tiene hijos tambien te lo muestra y asi sucesivamente.
@Elmer te sugiero abrir otro tema para ayudarte, de todas maneras, el query empieza desde la Clausula “WITH With BOM (Root,Parent,Child,Level,Quantity) As” que es donde se define la tabla temporal.