Lista de Materiales_Costeo

Buenas tardes a la comunidad Sap, Tengo una duda y quisiera saber si es posible lograrlo, el tema es este estoy en el modulo de produccion en una Lista de Materiales de un Producto Semi-Elaborado llamase Tapa o Cuerpo Basurero yo quiero saber a través de un Query Cuanto me cuesta Fabricar una TAPA Basurero sabiendo que la tapa tiene sus componentes de materia prima , esto lo pude hacer , creando una lista de Precio que se llama Lista de costo de MP y le cargue los precios , de esta forma pude ver cuánto me costaba para hacer ese producto semi-elaborado , Pero el detalle es que cuando intento ver el Producto Terminado que está en la lista de materiales , y está compuesto de semi-elaborado no se como traerme ese Precio de ese producto semi-elaborado en este caso es la tapa y el cuerpo que ambos tienen su resetas??? Así puedo tener una comparación del costo de fabricación con esto que quiero obtener , existe una persona que me pueda ayudar con esto

No entiendo bien tu consulta, quieres un query que vos le indique el producto final y que te calcule el costo en base a una lista de precio especifica de la materia prima??
Si es así, ya empezaste realizando el query?
Si lo que quieres es que el costo te aparezca en el campo “Costo estandar de prodcuccion”, esto valor lo saca del maestro del Item Cabecera, pestaña “Datos de produccion” campo “Costo estandar de produccion”, este es un valor manual, pero se puede hacer que SAP lo actualice automáticamente,tomando los costo de cada materia prima desde Producción/Gestión de costos estandar de producción/ Actualización del costo estándar de producción.
Y luego ejecutar la opcion “Implosion de costos estandar de produccion”.

2 Me gusta

Hola como complemento a lo que indica @Willy_Caldero, lo mejor a mi parecer es que generes la Query no en base a lista de precio sino al costo estándar de producción, como se ve en la imagen que tienes esos valores en cero, primero que todo, genera la actualización de costos estándar de producción, esto hará que el sistema obtenga de todos los códigos el precio promedio (si trabajas así SAP) y lo copiara en el campo costo estándar de producción, luego generas la implosion como indica @Willy_Caldero para que te actualice las listas como semi elaborado.

Saludos buen día.

1 me gusta

Hola @Willy_Caldero gusto en saludarte, Te explico un ejemplo : un Producto terminado es nuestra empresa es el Basurero , Para Armar ese Basurero se necesita varios Productos Semi-elaborado en este caso son el cuerpo, tapa y la placa , pero recordemos que antes de terminar ese producto pasó por un semi elaborado tanto el cuerpo y la tapa. que para crearlo está basado en unas series de componentes , Cuando yo busco el producto semielaborado Cuerpo o Tapa en la lista de materiales hay un campo que se llama total que se va a llenar en función a la lista de precio que llene que se llama Lista de Costo MP ,en ese campo me dice que para yo crear ese ese producto semi elaborado vale 45 el cuerpo con todo esto(POLIETILENO ALTA DENSIDAD - HDPE
MASTERBATCH NEGRO 590
ETIQUETA GENERICA GRANDE 124 x 85 MM
PLACA NORMAL 997x1117
MANO DE OBRA Basurero 51 Lts Con Tapa V2 Gris
MAQUINARIABasurero 51 Lts Con Tapa V2 Gris
) y cuando busco en la lista de materiales la tapa me vale 35 con todo esto(MASTERBATCH NEGRO 590
POLIETILENO RECICLADO HDPE
MANO DE OBRA Basurero 51 Lts Con Tapa V2 Gris
MAQUINARIA Tapa Cuerpo Basurero 51 Lts Con Tapa V2 Gris
) , entonces yo quiero que cuando yo busque la lista de materiales del basurero me diga que el cuerpo vale 45 que se traiga ese valor del semi-elaborado , la tapa 35 también se traiga ese valor y la placa 20 , el producto terminado costo 100 será posible esto ?? que recomendación me puedes dar??? Y como Puedo Armar un Query?

Buen día.
¿ya probaste que dentro del producto padre te traiga para cada hijo la lista de precios que mencionas por componente?.

yo creo que por aquí va el tema no creo que tengas mucho que mover, mas bien es ver en que lista de precios te da el costo correcto.

Saludos.

@jose_saul_san no he podido hacerlo , sabes algun metodo??

@Willy_Caldero No se como traerme el valor de ambos precios del semielaborado , aqui pensando , existe una forma de traerme el valor a través de un query ??

cada lista de materiales trae su detalle por linea
image
aqui es donde le indicas lo de la lista de precios y abajo a la derecha te da el precio del producto
image
en teoría así debe de funcionar,

Entiendo esa para @jose_saul_san Yo cree una lista que se llama lista de costo MP le cargue valores , pero si nos damos cuenta el cuerpo y la tapa no tienen valor , pero si me voy a la lista de de materiales del cuerpo en esa misma linea el total de sus componentes para hacer ese cuerpo me sale en 45 y la tapa 30 , como hago para que esos valores se lo traiga donde me sale vacio

una solución seria que actualices los precios de tus productos semielaborados en la lista de precio que utilizas.
Pero que quede claro que lo que estas haciendo es simplemente ver los valores estimados, que para eso siempre es mejor tomar los costos reales.
Respecto al query no seria tan complicado, tendrias que buscar los precios en la ITM1, ubicando tu lista de precio, y lo unes con los items componentes, claro que deberias usar un query recursivo para poder ahondar en los subcomponentes de la lista, claro que si en el peor de los casos solo usas 2 niveles, simplemente puedes hacer 2 querys y unirlos, uno con los componentes de la lista de materiales (tablas OITT y TT1) y otro con la lista de los subcomponentes.
Te paso un ejemplo de un query recursivo que llega hasta el nivel 99 (una exageración, jeje):

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)
1 me gusta

@Willy_Caldero Este query que me enviaste que funcion hace ?? No me corre o solo es un ejemplo para tener una idea

Si es un ejemplo solamente, lo que le esta faltando es el convert en el select de abajo:

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,convert(nvarchar(20),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)

Te sacas un listado de todas las listas de materiales, con sus componentes en forma de nodos, donde indical los campos:
Root: Item lista de materiales
Parent: Codigo superior
Child: Codigo del componente
Level: nivel del arbol de componetes
Quantity: la cantidad del componente

de aquí te quedaría hacer el join con la ITM1 para cruzar con la lista de precios.

@Willy_Caldero tengo una dudas podrias decirme porque me da error en sql server y disculpame la molestia

cuando haces recursividad, la consulta que hace Join con el BOM o conjunto, tiene que venir de las mismas tablas que el primer select.

si lo ves medio complicado y solo tienes 2 niveles, es decir componentes que tiene una lista de precio pero estos componentes ya no se desglosan, puedes hacer 2 query’s, uno para los componentes que no se desglosan, y unirlo con otro de los componentes que si se desglosan:

Select T3.ItemCode, T3.Price from OITT T0 inner join ITT1 T1 on T0.Code = T1.Father
                                    inner join OITM T2 on T2.ItemCode = T1.Code 
                                                                       and T2.TreeType = 'N' 
                                    inner join ITM1 T3 on T3.ItemCode = T2.ItemCode 
                                                                       and PriceList=@codPriceList      
where T0.Code = @CodigoLista
UNION ALL 
Select T4.ItemCode, T4.Price from OITT T0 inner join ITT1 T1 on T0.Code = T1.Father
                                    inner join OITM T2 on T2.ItemCode = T1.Code 
                                                                       and T2.TreeType != 'N' 
                                    inner join ITT1 T3 on T2.ItemCode = T3.Father
                                    inner join ITM1 T4 on T4.ItemCode = T3.Code 
                                                                       and PriceList=@codPriceList
where T0.Code = @CodigoLista

@Willy_Caldero La sumatoria es precio_cantidad ese el precio aproximado para hacer el cuerpo , todavia no encuentro la forma de traerme este valor en elproducto terminado que es el cuerpo , tapa y placa

pone tu Query formateado para poder revisarlo.

@Willy_Caldero

SELECT T0.[Code], 
T1.[ItemName],
   T2.[Code], 
   T3.[ItemName], 
   T2.[Quantity], 
  T2.[Price],
  T2.[Quantity]*  T2.[Price],
   T2.[Warehouse] 

FROM OITT T0 INNER JOIN OITM T1 ON T0.Code = T1.ItemCode INNER JOIN ITT1 T2 ON T0.Code = T2.Father INNER JOIN OITM T3 ON T2.Code = T3.ItemCode WHERE T0.[Code]='TTCC01101100'

@Willy_Caldero intento entender tu query pero si el parámetro

Select T3.ItemCode, T3.Price from OITT T0 inner join ITT1 T1 on T0.Code = T1.Father
                                    inner join OITM T2 on T2.ItemCode = T1.Code 
                                                                       and T2.TreeType = 'N' 
                                    inner join ITM1 T3 on T3.ItemCode = T2.ItemCode 
                                                                       and PriceList='503,000'   y me da error prelist es ambiguo

@Jorge_Hernand como esperas que te devuelva los datos el query??
pasa un ejemplo en formato tabular.
Inicialmente entendí que solo necesitabas un valor, es decir que el total de la sumatoria del precio de los componentes de una lista de materiales.