Partilhar via


Cenário de fabricação

Este tópico fornece detalhes sobre informações de fabricação do Adventure Works Cycles representadas no banco de dados de exemplo do AdventureWorks, uma lista de tabelas relativas à fabricação e consultas de exemplo que demonstram relações comuns de tabelas.

Visão geral da fabricação

No banco de dados de exemplo do AdventureWorks são fornecidas tabelas que dão suporte às seguintes áreas típicas de fabricação:

  • Processos de fabricação:

    • Lista de materiais: lista os produtos usados ou presentes em outro produto.

    • Ordens de trabalho: ordens de fabricação por centro de trabalho.

    • Locais: define as principais áreas de fabricação e estoque, como formação de quadro, pintura, subassembly e assim por diante.

    • Instruções de fabricação e assembly de produto por centro de trabalho.

  • Inventário de produto: local físico de um produto no depósito ou área de fabricação e a quantidade disponível naquela área.

  • Documentação de engenharia: especificações técnicas e documentação de manutenção para bicicletas ou componentes de bicicleta.

Tabelas de fabricação

A tabela a seguir contém uma breve descrição dos dados armazenados nas tabelas de fabricação.

Schema.Table

Contém este tipo de conteúdo

Comentário

Production.BillOfMaterials

Uma lista de todos os componentes usados para fabricar bicicletas e subassemblies de bicicletas.

Há uma relação recorrente intrínseca na estrutura da lista de materiais que indica a relação entre um produto pai e os componentes que compõem aquele produto. Por exemplo, se o produto pai for uma bicicleta, o componente de primeiro nível poderá ser um assembly de roda. O assembly de roda tem seus próprios componentes, ou seja, refletores, rebordos, raios, pneus e tubos de pneu.

A coluna ProductAssemblyID representa o produto pai ou principal e ComponentID representa peças filho ou individuais usadas para construir o assembly pai.

A coluna BOM_Level indica o nível do ComponentID relativo ao ProductAssemblyID. No exemplo anterior, o assembly de roda teria um BOM_Level de 1, os componentes do assembly de roda teriam um BOM_Level de 2 e assim por diante.

Production.Document

Especificações de engenharia e outra documentação técnica.

A coluna DocumentSummary usa o tipo de dados varchar(max). A coluna Document usa o tipo de dados varbinary(max).

Production.Illustration

Ilustrações da fabricação de bicicletas.

As ilustrações são feitas nas instruções de fabricação contidas na tabela ProductModel. Essa coluna usa o tipo de dados xml.

Production.Location

Uma lista de áreas de inventário e fabricação dentro do Adventure Works Cycles em que as peças e os produtos são armazenados como inventário, ou montados. Por exemplo, a pintura é armazenada tanto no local de Armazenamento de Pintura do depósito como no centro de trabalho da fabricação, Oficina de Pintura, onde os quadros de bicicleta são pintados.

 

Production.Product

Informações sobre cada produto vendido por Adventure Works Cycles ou usado para fabricar bicicletas Adventure Works Cycles e componentes de bicicleta.

A coluna FinishedGoodsFlag indica se o produto está vendido. Produtos não vendidos são componentes de um produto vendido. Por exemplo, uma bicicleta seria vendida, mas a folha de metal usada para criar o quadro da bicicleta não seria.

Production.ProductInventory

Nível de inventário dos produtos por suas localizações. Consulte o Production.Location mencionado anteriormente.

 

Production.ProductModel

Modelos de produto associados a produtos. Por exemplo, quadros da Mountain-100 ou LL Touring.

A coluna CatalogDescription contém informações adicionais sobre o produto usando o tipo de dados xml. A coluna Instruções contém instruções sobre fabricação do produto usando o tipo de dados xml.

Production.ScrapReason

Uma lista de motivos comuns de rejeição de bicicletas ou de peças de bicicleta durante o processo de fabricação. Por exemplo, o motivo para sucateamento 'Falha na pintura' é usado no centro de trabalho de Pintura para rejeitar um quadro de bicicleta cuja pintura não secou corretamente.

A tabela WorkOrderRouting localiza a quantidade sucateada e o motivo do sucateamento por produto.

Dependendo da gravidade do problema, o produto precisa ser consertado ou substituído antes de poder ser transferido para o próximo centro de trabalho.

Production.WorkOrder

Define a quantidade e os produtos a serem fabricados para atender a vendas atuais e previstas.

 

Production.WorkOrderRouting

Detalhes para cada ordem de trabalho. Inclui a seqüência de centros de trabalho pelos quais o produto passa no processo de fabricação ou de assembly. Por exemplo, guidões de bicicleta são fabricados no centro de trabalho de Formação de Quadros. Eles são movidos para o centro de trabalho de Soldagem de Quadros para operação adicional e, em seguida, para o centro de trabalho de Subassembly, onde são adicionados ao quadro da bicicleta.

 

Exemplos

Você pode usar as consultas a seguir para exibir dados de fabricação e de produto e se familiarizar com as relações da tabela de fabricação.

A. Exibindo uma lista de materiais de vários níveis para um produto pai

O exemplo a seguir exibe todos os componentes usados para criar um produto pai 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. Exibindo o inventário de produtos

No exemplo a seguir, a quantidade disponível de cada produto é listada por seu local no inventário. Os produtos podem permanecer em vários locais.

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. Exibindo ordens de trabalho por produto

No exemplo a seguir, todas as ordens de trabalho são listadas para os produtos nas subcategorias Mountain Bike (1), Road Bike (2) e 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