Los datos maestros de inventario de SAP Business One son una recopilación de todo lo que compra, vende y fabrica. A diferencia de la definición estándar de materias primas y productos terminados, el inventario de SAP B1 es una maraña de activos, gastos, recursos y flujos de ingresos, lo que puede resultar muy confuso.
Los datos de inventario se encuentran en la tabla OITM de SAP Business One. Hay un puñado de columnas que controlan la identidad y la actividad. Para quienes escriben consultas SQL o Crystal Reports, estas resultan valiosas para seleccionar solo los artículos que les interesan.  Si bien cubrí parte de esto en [Informes y personalización de SAP Business One] y [Producción y logística de SAP], usemos estas columnas para crear informes de inventario.
Hacia la parte inferior del formulario de datos maestros de inventario se encuentran los campos de validez, representados en la tabla como validFor , validFrom , validTo , frozenFor , frozenFrom y frozenTo .
validFor es el más importante de estos. Cualquier consulta con WHERE OITM.validFor = 'Y' filtrará todos los elementos inactivos de la consulta. El filtrado por 'N' mostrará solo los elementos inactivos.
Las demás columnas son para períodos de inactividad cronometrados, como los productos de temporada. En el maestro de artículos, puede configurar un artículo para un período de actividad o inactividad. Los artículos inactivos no estarán disponibles para la venta ni para su uso en la producción. Como los documentos de marketing y las órdenes de producción copian el artículo de OITM en filas, configurar un artículo como inactivo no afecta a los documentos anteriores.
Los tres campos booleanos PrchseItem , SellItem e InvntItem identifican los artículos de su inventario. Los llamo campos de identidad y, en el maestro de artículos, los datos se pueden encontrar en la parte superior derecha.
Los campos de identidad le brindan mucha flexibilidad para filtrar el artículo que necesita. SAP no proporciona una buena definición, por lo que habrá variaciones en la forma en que los sitios SAP B1 específicos los utilizan. Las siguientes definiciones son útiles para categorizar artículos vinculándolos al plan de cuentas.
SellItem:
Son partidas por cobrar. Son partidas que la empresa cobra a sus socios comerciales. Algunos ejemplos son los productos terminados, como pizzas, horas de servicio y gastos de envío.
Artículo de compra :
Son artículos de cuentas por pagar o artículos por los que la empresa paga a otra empresa. Algunos ejemplos son las materias primas, la mano de obra y los gastos de envío de FedEx.
Artículo de inventario :
La definición aproximada sería activos físicos. Puede organizar todos los activos físicos haciendo que InvntItem sea verdadero. Sin embargo, eso cuenta las grapas y los sujetapapeles, los hornos de pizza, la harina y la salsa de tomate como inventario. Sin embargo, estos activos suelen tener tres cuentas relacionadas: Costos de los bienes vendidos (COGS), SG&A y Gastos de capital. Establezco esta columna en Y para COGS solamente. Los artículos de inventario son aquellos artículos físicos vendidos a un cliente o una parte de algo fabricado y vendido, como harina, salsa de tomate y pizzas. Luego puedo ver rápidamente una materia prima en las listas de materiales o un producto terminado vendido directamente a un cliente, sin contar lo que la organización consume pero no vende, como sujetapapeles.
Este esquema ofrece las mejores definiciones, pero existen excepciones y debates al respecto. Los gastos de capital son un buen ejemplo. Hay un argumento a favor de considerarlos adquiridos, pero otro argumento es que separar los artículos comprados que se deprecian de los que no se deprecian proporciona una mejor información. De manera similar, incluir el equipo como inventario parece problemático. Si bien se deprecia, no cambia la cantidad como los artículos de costo de los bienes vendidos o de ventas, generales y administrativos.
Otro problema es el de las piezas de repuesto para ese equipo. ¿Deben estar en el inventario? Considere la frecuencia de compra. Si compro algo regularmente para mantener la producción, como una junta, lo marcaré como un artículo de inventario. De esa manera, aparece en mis informes de compras y recomendaciones como una materia prima. Estas son mis definiciones, y todos tienen variaciones de ellas. Con el tiempo, han funcionado bastante bien, creando ocho categorías de artículos, como se enumeran en este gráfico.
Un uso de este gráfico es transformarlo en una expresión CASE,
SELECT
T0.ItemCode,
T0.ItemName,
CASE
WHEN
T0.PrchseItem = 'Y'
AND T0.Sellitem = 'Y'
AND T0.InvntItem = 'Y'
THEN 'Purchased Finished Good'
WHEN
T0.PrchseItem = 'N'
AND T0.Sellitem = 'Y'
AND T0.InvntItem = 'Y'
THEN 'Finished Good from BoM'
WHEN
T0.PrchseItem = 'Y'
AND T0.Sellitem = 'N'
AND T0.InvntItem = 'Y'
THEN 'Raw Material'
WHEN
T0.PrchseItem = 'N'
AND T0.Sellitem = 'N'
AND T0.InvntItem = 'Y'
THEN 'Subassembly'
WHEN
T0.PrchseItem = 'Y'
AND T0.Sellitem = 'Y'
AND T0.InvntItem = 'N'
THEN 'Passed-On Fees Labor And Tasks'
WHEN
T0.PrchseItem = 'N'
AND T0.Sellitem = 'Y'
AND T0.InvntItem = 'N'
THEN 'Fees Labor And Tasks'
WHEN
T0.PrchseItem = 'Y'
AND T0.Sellitem = 'N'
AND T0.InvntItem = 'N'
THEN 'Supplies'
WHEN
T0.PrchseItem = 'N'
AND T0.Sellitem = 'N'
AND T0.InvntItem = 'N'
THEN 'CapEx, Misc'
END AS "Item Type"
FROM OITM T0
Lamentablemente, esto es un poco aburrido en OEC, que no sigue estas reglas, excepto cuando ingresé datos nuevos.
Por supuesto, no es necesario utilizar los tres para determinar su identidad. Tres casos comunes son:
Productos terminados ( artículo de venta e artículo de inventario = Y)
Materiales para lista de materiales ( VellItem = N & InvtItem = Y)
Tarifas y servicios adquiridos ( Comprar artículo = Y & N)
Por ejemplo, si desea una lista de materiales disponibles para una lista de materiales, tanto subconjuntos como materias primas, podría escribir esto:
SELECT
T0.ItemCode,
T0.ItemName,
T0.OnHand,
T0.IsCommited,
(T0.OnHand - T0.IsCommited) AS "Immediately Available",
T0.OnOrder,
(T0.OnHand - T0.IsCommited) + OnOrder AS "Available"
FROM
OITM T0
WHERE
T0.SellItem = 'N'
AND InvntItem = 'Y'
AND validFor = 'Y' --Active parts only
Recibo un informe como este:
Aquí hay una advertencia. Si conoce el conjunto de datos OEC, como vimos en SAP Business One: Producción y Logística, notará lo que falta: las piezas de impresora LeMon. Montamos una impresora, pero también vendemos las piezas al por menor, por lo que no aparecen aquí. Cuando también tiene piezas de reventa o los usuarios han sido descuidados al enumerar las materias primas para la venta, no aparecerán en este informe. Cambiar T0.SellItem = 'Y' ofrece una mejor imagen del inventario de computadoras OEM.
Si quisiera piezas en las listas de materiales, cambiaría este informe para incluir las materias primas y los subconjuntos que se encuentran en las listas de materiales. Con la técnica que mostré en la última edición de BizOneness, obtengo una lista de artículos en las listas de materiales y luego filtro esa lista.
Dado que filtro la cláusula 'WITH' solo para los artículos dentro de las listas de materiales, no necesito SellItem . Filtro la mano de obra con InvntItem = 'Y' en mi consulta principal, dejando solo las materias primas y los subconjuntos. La consulta final se ve así:
// List of all Items in BoMs WITH BoMCode as ( SELECT t0.Code as BomItem FROM ITT1 t0 Group By t0.Code ) SELECT T0.ItemCode, T0.ItemName, T0.OnHand, T0.IsCommited, (T0.OnHand - T0.IsCommited) AS "Immediately Available", T0.OnOrder, (T0.OnHand - T0.IsCommited) + OnOrder AS "Available" FROM BomCode t1 Inner Join OITM T0 ON t0.ItemCode = t1.BomItem WHERE InvntItem = 'Y' AND validFor = 'Y' --Active parts only
Productor:
Cada empresa es diferente y, al crear un estándar de lo que se identifica como un artículo comprado, vendido o de inventario, se organiza una tabla OITM desordenada. Cree una definición formal en su organización que se ajuste a su empresa y a sus prácticas comerciales. Esto hace que la elaboración de informes sea mucho más sencilla. Conocer la definición de consultores externos de la organización de su cliente le ahorrará horas de trabajo.
Como has visto, estos campos tienen mucho poder para filtrar tus consultas y organizar tu inventario. Sin embargo, hay uno del que aún no he hablado: los grupos de artículos. Esto entra en muchos detalles, por lo que en esas columnas, analizaremos el poder que tienen los grupos de artículos, pero primero, por qué es vital hacerlo bien durante las migraciones.