1 de septiembre de 2010

Implosión de la lista de materiales


Introducción

Las empresas que se dedican a la fabricación de productos se pueden encontrar con la necesidad de saber en qué listas de materiales (LM) se encuentra un determinado artículo. SAP B1 permite consultar las LM's de cualquier producto, pero no ofrece una opción estándar para poder realizar el proceso inverso, conocido como implosión del escandallo.

Solución

Mediante una sencilla consulta de usuario, podemos disponer de un informe que nos permite identificar en qué artículos padre se encuentran unos artículos determinados.

SELECT T1.Itemcode as Componente, T0.Father as 'Padre LM', T2.ItemName, T0.Quantity FROM ITT1 T0 JOIN OITM T1 ON T1.ItemCode=T0.Code AND (T1.ItemCode>='[%1]' OR '[%1]'='') AND (T1.ItemCode<='[%2]' OR '[%2]' ='') JOIN OITM T2 ON T2.ItemCode=T0.Father

Esta query tiene 2 parámetros que nos permiten indicar el rango de artículos hijo que queremos implosionar. En el caso que queramos consultar un único artículo, pondremos el mismo valor en ambos parámetros.

Consideraciones

Esta consulta es muy útil, pero tiene sus limitaciones, puesto que sólo nos permite buscar en el nivel superior de la LM. Es decir, si nosotros tenemos una estructura como la que se indica a continuación, al implosionar el Artículo hijo 1 obtendríamos el Artículo intermedio 2, pero no llegaríamos a detectar que también forma parte del Artículo padre en segundo orden.

  • Artículo padre
    • Artículo intermedio 1
    • Artículo intermedio 2
      • Artículo hijo 1
      • Artículo hijo 2

Para poder llegar a más niveles, sería necesario utilizar las herramientas de desarrollo que ofrece SAP B1 y programar la funcionalidad mediante un add-on. Si queréis más información al respecto, en SEMIC tenemos una herramienta de implosión avanzada con funcionalidad multinivel.

2 comentarios:

  1. Muy interesante, de hecho quiero ver si éste código es aplicable a un detalle que tengo.
    Tenemos una consulta formateada para revisar que las ejecutivas de ventas no vendan abajo del costo de reposición, todo funciona muy bien pero el detalle es que tenemos articulos que forman parte de otros, queremos que aparezcan en la orden de venta pero que el precio sea en cero, por la primera regla de no vender abajo del costo ya causa conflicto.
    Se creó una lista de materiales y ya nos muestra el articulo parte del otro (va en ceros porque el precio del padre ya lo incluye) y por la regla que existe no se puede, se me ocurrió hacer una consulta de que si existe el articulo en la tabla de lista de materiales pero tengo error en la sintaxis o cómo aplicarlo, alguna sugerencia???

    ResponderEliminar
  2. Una opción sencilla, si hemos entendido bien el problema, sería utilizar las propiedades del artículo para marcar aquellos artículos que no quieres que sean validados por tu consulta. De ese modo, con un simple "WHERE QryGroup1='N'" tu query ya no validará los artículos que se muestran a precio 0.
    Esperamos que te sea de ayuda.
    Saludos.

    ResponderEliminar