Scénario Fabrication

Cette rubrique fournit des détails sur les informations de fabrication de la société Adventure Works Cycles représentées dans l'exemple de base de données AdventureWorks, une liste de tables liées à la fabrication et des exemples de requêtes qui illustrent les relations classiques entre les tables.

Présentation de la fabrication

Dans l'exemple de base de données AdventureWorks, les tables prennent en compte les zones de fabrication standard suivantes :

  • Processus de fabrication :

    • Nomenclature : répertorie les produits utilisés ou contenus dans un autre produit.

    • Bons de travaux : bons de fabrication par poste de charge.

    • Emplacements : définit les principales zones de fabrication et de stock, telles que moulage des cadres, peinture, sous-assemblage, etc.

    • Instructions de fabrication et d'assemblage de produit par poste de charge.

  • Stock de produit : emplacement physique d'un produit dans la zone d'entrepôt ou de fabrication, et quantité disponible dans cette zone.

  • Documentation technique : spécifications techniques et documentation de maintenance relatives aux bicyclettes ou à leurs composants.

Tables de fabrication

Le tableau suivant contient une brève description des données qui sont stockées dans les tables de fabrication.

Schéma.Table

Contient ce type de contenu

Commentaire

Production.BillOfMaterials

Liste de tous les composants utilisés pour fabriquer les bicyclettes et leurs sous-assemblages.

Il existe une relation récursive intrinsèque dans la structure de la nomenclature qui indique la relation entre un produit parent et les composants qui le forment. Par exemple, si le produit parent est la bicyclette, le composant de premier niveau peut être une roue. La roue possède ses propres composants : réflecteurs, jantes, rayons, pneus et chambres à air.

La colonne ProductAssemblyID représente le produit parent, ou principal, et la colonne ComponentID représente les pièces enfants, ou individuelles, utilisées pour créer l'unité parente.

La colonne BOM_Level indique le niveau de la colonne ComponentID par rapport à la colonne ProductAssemblyID. Ainsi, dans l'exemple précédent, la roue aurait un BOM_Level de 1, les composants de la roue auraient un BOM_Level de 2, et ainsi de suite.

Production.Document

Spécifications et autres documentations techniques

La colonne DocumentSummary utilise le type de données varchar(max). La colonne Document utilise le type de données varbinary(max).

Production.Illustration

Illustrations de la fabrication des bicyclettes

Les illustrations sont représentées dans les instructions de fabrication qui figurent dans la table ProductModel. Cette colonne utilise le type de données xml.

Production.Location

Liste de zones de stock et de fabrication de Adventure Works Cycles dans laquelle les produits et les pièces sont stockés en tant qu'inventaire ou intégrés. Par exemple, la peinture est stockée à la fois dans l'emplacement Paint Storage (Stockage Peinture) de l'entrepôt et dans l'atelier de peinture du poste de charge de fabrication dans lequel les cadres des bicyclettes sont peints.

 

Production.Product

Informations concernant chaque produit vendu par la société Adventure Works Cycles ou utilisé pour fabriquer des bicyclettes et des composants de bicyclettes Adventure Works Cycles.

La colonne FinishedGoodsFlag indique les produits vendus. Les produits non vendus sont des composants d'un produit vendu. Par exemple, si une bicyclette est vendue, en revanche le film métallique utilisé pour la fabrication du cadre de la bicyclette ne l'est pas.

Production.ProductInventory

Niveau de stock des produits en fonction de leur emplacement. Reportez-vous plus haut à la section Production.Location.

 

Production.ProductModel

Modèles de produit associés aux produits. Par exemple, Cadre VTT-100 ou LL Tourisme.

La colonne CatalogDescription fournit des informations de produits supplémentaires en utilisant le type de données xml. La colonne Instructions fournit des instructions pour la fabrication des produits en utilisant le type de données xml.

Production.ScrapReason

Liste des motifs courants de rejet des bicyclettes ou pièces de bicyclettes au cours du processus de fabrication. Par exemple, le motif de rejet « Erreur peinture » est utilisé dans le poste de charge de peinture pour refuser un cadre de bicyclette sur lequel la peinture ne s'est pas correctement appliquée.

La table WorkOrderRouting effectue un suivi de la quantité de rebuts et du motif du rejet par produit.

En fonction de la gravité du problème, le produit doit être réparé ou remplacé avant de pouvoir être envoyé au poste de charge suivant.

Production.WorkOrder

Définit les produits et quantités à fabriquer en fonction des ventes en cours et prévisionnelles.

 

Production.WorkOrderRouting

Détails de chaque bon de commande. Ces informations incluent la série de postes de charge traversée par le produit dans le processus de fabrication ou d'assemblage. Par exemple, les guidons des bicyclettes sont fabriqués dans le poste de charge de moulage des cadres. Ils sont ensuite envoyés au poste de charge de soudure des cadres pour y recevoir un traitement supplémentaire, puis ils passent au poste de charge de sous-assemblage où ils sont ajoutés aux cadres des bicyclettes.

 

Exemples

Vous pouvez utiliser les requêtes suivantes pour consulter les données de fabrication et de produit et vous familiariser avec les relations de tables de fabrication.

A. Consultation d'une liste de nomenclatures à plusieurs niveaux pour un produit parent

L'exemple suivant affiche tous les composants qui sont utilisés pour créer un produit parent spécifique : 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. Consultation du stock de produit

Dans l'exemple suivant, la quantité disponible pour chaque produit est répertoriée par son emplacement dans la liste du stock. Les produits peuvent être situés dans plusieurs emplacements.

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. Consultation des bons de travaux par produit

Dans l'exemple suivant, tous les bons de travaux sont répertoriés pour les produits dans les sous-catégories Mountain Bike (Vélo tout terrain) (1), Road Bike (Vélo de route) (2) et Touring Bike (Vélo de randonnée) (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