Escenario de fabricación

En este tema se proporcionan detalles acerca de la información de fabricación de Adventure Works Cycles representada en la base de datos AdventureWorks de ejemplo, una lista de las tablas relacionadas con la fabricación y consultas de ejemplo que muestran relaciones comunes existentes entre las tablas.

Información general sobre fabricación

En la base de datos AdventureWorks de ejemplo, se proporcionan tablas que admiten las siguientes áreas típicas de fabricación:

  • Procesos de fabricación:

    • Lista de materiales: enumera los productos que se utilizan en otro producto o que otro producto contiene.

    • Pedidos de trabajo: pedidos de fabricación por centro de trabajo.

    • Ubicaciones: define las áreas principales de fabricación e inventario, como fabricación de cuadros, pintura, subconjunto, etc.

    • Instrucciones de fabricación y ensamblado de productos por centro de trabajo.

  • Inventario de productos: ubicación física de un producto en el almacén o el área de fabricación, y cantidad disponible en dicha área.

  • Documentación de ingeniería: especificaciones técnicas y documentación de mantenimiento para bicicletas o componentes de las bicicletas.

Tablas de fabricación

La tabla siguiente contiene una breve descripción de los datos que se almacenan en las tablas de fabricación.

Esquema.Tabla

Incluye este tipo de contenido

Comentario

Production.BillOfMaterials

Lista de todos los componentes que se utilizan para fabricar bicicletas y subconjuntos de bicicleta.

Existe una relación intrínseca recursiva en la estructura de la lista de materiales que indica la relación entre un producto padre y los componentes que forman el producto. Por ejemplo, si el producto padre es una bicicleta, el componente de primer nivel puede ser el ensamblado de la rueda. El ensamblado de la rueda tiene sus propios componentes, como los reflectores, la llanta, los radios, el neumático y la cámara de aire.

La columna ProductAssemblyID representa el producto padre, o principal, y la columna ComponentID representa las piezas hijo, o individuales, que se utilizan para formar el ensamblado padre.

La columna BOM_Level indica el nivel del ComponentID en relación con el ProductAssemblyID. En el ejemplo anterior, el ensamblado de la rueda tendría un nivel BOM_Levell de1, los componentes de la rueda tendrían un nivel BOM_Level de 2, etc.

Production.Document

Especificaciones de ingeniería y otros documentos técnicos.

La columna DocumentSummary utiliza el tipo de datos varchar(max). La columna Document utiliza el tipo de datos varbinary(max).

Production.Illustration

Ilustraciones de fabricación de las bicicletas.

Las ilustraciones se representan en las instrucciones de fabricación que se encuentran en la tabla ProductModel. En esta columna se utilizan datos de tipo xml.

Production.Location

Lista de áreas de inventario y fabricación de Adventure Works Cycles en las que los productos y las piezas se almacenan como inventario o como finalizados. Por ejemplo, la pintura se almacena en la ubicación Paint Storage del almacén y en el centro de trabajo de fabricación, Paint Shop, donde se pintan los cuadros de las bicicletas.

 

Production.Product

Información sobre cada producto vendido por Adventure Works Cycles o utilizado para fabricar bicicletas y componentes de bicicleta de Adventure Works Cycles.

La columna FinishedGoodsFlag indica si un producto se ha vendido. Los productos que no se venden son componentes de un producto que se vende. Por ejemplo, una bicicleta se vendería, pero la plancha de metal utilizada para crear el cuadro de la bicicleta, no.

Production.ProductInventory

Nivel de inventario de los productos por ubicación. Consulte Production.Location más arriba.

 

Production.ProductModel

Modelos del producto asociados a productos. Por ejemplo, Mountain-100 o LL Touring Frame.

La columna CatalogDescription contiene información adicional sobre el producto y utiliza datos de tipo xml. La columna Instructions contiene instrucciones sobre la fabricación del producto y utiliza datos de tipo xml.

Production.ScrapReason

Lista de motivos comunes sobre el porqué del rechazo de las bicicletas o piezas de bicicleta durante el proceso de fabricación. Por ejemplo, en el centro de trabajo Paint se utiliza el motivo 'Paint failed' para rechazar un cuadro de bicicleta en el que la pintura no se ha endurecido correctamente.

La tabla WorkOrderRouting realiza el seguimiento de la cantidad descartada y el motivo por el que se ha descartado el producto.

En función de la gravedad del problema, el producto debe repararse o sustituirse antes de poder pasar al siguiente entro de trabajo.

Production.WorkOrder

Define los productos y la cantidad que debe fabricarse para satisfacer las ventas actuales y las previstas.

 

Production.WorkOrderRouting

Detalles de cada pedido de trabajo. Incluye la secuencia de centros de trabajo por los que pasa el producto durante el proceso de fabricación o de ensamblado. Por ejemplo, los manillares de las bicicletas se fabrican en el centro de trabajo Frame Forming. Luego pasan al centro de trabajo Frame Welding para realizar operaciones adicionales y, posteriormente, pasan al centro de trabajo Subassembly, donde se montan al cuadro de la bicicleta.

 

Ejemplos

Puede utilizar las consultas siguientes para ver datos de fabricación y del producto, y para familiarizarse con las relaciones existentes entre las tablas de fabricación.

A. Mostrar una lista de materiales de varios niveles para un producto padre

En el ejemplo siguiente se muestran todos los componentes que se utilizan para crear un producto padre específico: ProductAssemblyID.

USE AdventureWorks;
GO
WITH Parts(AssemblyID, ComponentID, PerAssemblyQty, EndDate, ComponentLevel) AS
(
    SELECT b.ProductAssemblyID, b.ComponentID, b.PerAssemblyQty,
        b.EndDate, 0 AS ComponentLevel
    FROM Production.BillOfMaterials AS b
    WHERE b.ProductAssemblyID = 800
          AND b.EndDate IS NULL
    UNION ALL
    SELECT bom.ProductAssemblyID, bom.ComponentID, p.PerAssemblyQty,
        bom.EndDate, ComponentLevel + 1
    FROM Production.BillOfMaterials AS bom 
        INNER JOIN Parts AS p
        ON bom.ProductAssemblyID = p.ComponentID
        AND bom.EndDate IS NULL
)
SELECT AssemblyID, ComponentID, Name, PerAssemblyQty, EndDate,
        ComponentLevel 
FROM Parts AS p
    INNER JOIN Production.Product AS pr
    ON p.ComponentID = pr.ProductID
ORDER BY ComponentLevel, AssemblyID, ComponentID;
GO

B. Mostrar el inventario de productos

En el ejemplo siguiente se indica la cantidad que hay disponible para cada producto por ubicación en el inventario. Los productos pueden hallarse en varias ubicaciones.

USE AdventureWorks;
GO
SELECT P.Name AS Product, L.Name AS [Inventory Location],
    SUM(PI.Quantity)AS [Qty Available]
FROM Production.Product AS P
    JOIN Production.ProductInventory AS PI ON P.ProductID = PI.ProductID
    JOIN Production.Location AS L ON PI.LocationID = L.LocationID
GROUP BY P.Name, L.Name
ORDER BY P.Name ;
GO

C. Mostrar los pedidos de trabajo por producto

En el ejemplo siguiente se enumeran todos los pedidos de trabajo para los productos de las subcategorías Mountain Bike (1), Road Bike (2) y Touring Bike (3).

USE AdventureWorks;
GO
SELECT WorkOrderID, P.Name AS Product, OrderQty, DueDate
FROM Production.WorkOrder W 
    JOIN Production.Product P ON W.ProductID = P.ProductID
WHERE P.ProductSubcategoryID IN (1, 2, 3)
ORDER BY P.Name, DueDate ;
GO