View source | View content page | Page history | Printable version   

Projects:Attribute set instance review

Contents

Introduction

The usage of attribute set instances within Openbravo ERP will be reviewed in order to simplify its usage and avoid confusions.

Functional Specification

Scope

This project will review the whole cycle of usage of attribute set instances:

  1. Attribute set instance definition.
  2. Attribute set instance usage.
  3. Attribute set instance reporting.

User roles & profiles

Procurement manager: the person who controls the purchasing of goods (materials).

Warehousing manager: the person who controls the warehouses ins and outs as well as the valuation of their stock.

Production manager: the person who controls the manufacturing of products as well as the cost associated to their production.

Sales manager: the person who controls the sells of products.

Business process definition

Attribute set instance definition

  1. The production manager sets up the attributes and attribute values in Master Data Management || Product Setup || Attribute, create a new record:
    1. Name = Flavor
    2. Navigate to Attribute Value tab and create 3 records:
      1. Name = Strawberry
      2. Name = Chocolate
      3. Name = Vanilla
  2. Create a new Attribute:
    1. Name = Number of scoops
    2. Navigate to Attribute Value tab and create 3 records:
      1. Name = One
      2. Name = Two
      3. Name = Three
  3. Create a new Attribute:
    1. Name = Size
    2. Navigate to Attribute Value tab and create 3 records:
      1. Name = Small
      2. Name = Medium
      3. Name = Large
  4. In Master Data Management || Product Setup || Attribute Set, create a new record:
    1. Name = Size
    2. Navigate to Assigned Attribute tab and create a new record:
      1. Name = Size
  5. Create a new Attribute Set record:
    1. Name = Flavor
    2. Navigate to Assigned Attribute tab and create a new record:
      1. Name = Flavor
  6. Create a new Attribute Set record:
    1. Name = Flavor and scoops
    2. Navigate to Assigned Attribute tab and create 2 records:
      1. Name = Flavor
      2. Name = Scoops
  7. He creates 3 new product categories in Master Data Management || Product Setup || Product Category:
    1. Name = Ceramics
    2. Name = Ingredients
    3. Name = Packaging
    4. Name = Ice Creams
  8. He then sets up the raw materials and components in Master Data Management || Product:
    1. Name = Cup
    2. Product Category = Ceramics
    3. UOM = Unit
    4. Stocked = Y
    5. Production = Y
    6. Bill of Materials = N
    7. Purchase = Y
    8. Sales = N
    9. Attribute Set = Size
    10. Attribute Set Value = null
    11. In Price tab:
      1. Price List Version = Purchase 2006
      2. List Price = 1
      3. Standard Price = 0.7
      4. Price Limit = 0.5
  9. Creates a new component:
    1. Name = Box
    2. Product Category = Packaging
    3. UOM = Unit
    4. Stocked = Y
    5. Production = N
    6. Bill of Materials = N
    7. Purchase = Y
    8. Sales = N
    9. Attribute Set = Size
    10. Attribute Set Value = null
    11. In Price tab:
      1. Price List Version = Purchase 2006
      2. List Price = 0.5
      3. Standard Price = 0.4
      4. Price Limit = 0.3
  10. Creates a new raw material:
    1. Name = Milk
    2. Product Category = Ingredients
    3. UOM = Litre
    4. Stocked = Y
    5. Production = Y
    6. Bill of Materials = N
    7. Purchase = Y
    8. Sales = N
    9. In Price tab:
      1. Price List Version = Purchase 2006
      2. List Price = 1.5
      3. Standard Price = 1.2
      4. Price Limit = 1
  11. Creates a new raw material:
    1. Name = Vanilla
    2. Product Category = Ingredients
    3. UOM = Bag
    4. Stocked = Y
    5. Production = Y
    6. Bill of Materials = N
    7. Purchase = Y
    8. Sales = N
    9. In Price tab:
      1. Price List Version = Purchase 2006
      2. List Price = 5
      3. Standard Price = 4
      4. Price Limit = 4
  12. Then creates a final product:
    1. Name = Little Vanilla Ice Cream
    2. Product Category = Ice Creams
    3. UOM = Unit
    4. Stocked = Y
    5. Production = Y
    6. Bill of Materials = N
    7. Purchase = N
    8. Sales = Y
    9. Attribute Set = Flavor and scoops
    10. Attribute Set Value: Flavor = Vanilla; Scoops = One
    11. In Price tab:
      1. Price List Version = Sales 2006
      2. List Price = 1
      3. Standard Price = 1
      4. Price Limit = 1
  13. Create a new final product:
    1. Name = Pack of 3 Little Vanilla Ice Creams
    2. Product Category = Ice Creams
    3. UOM = Unit
    4. Stocked = Y
    5. Production = N
    6. Bill of Materials = Y
    7. Purchase = N
    8. Sales = Y
    9. Attribute Set = Flavor
    10. Attribute Set Value: Flavor = Vanilla
    11. In Bill of Materials tab:
      1. BOM Product = Box; BOM Quantity = 1 (Unit)
      2. BOM Product = Little Vanilla Ice Cream; BOM Quantity = 3 (Unit)
    12. Navigate back to the Product header and click on Verify BOM button.
    13. In Price tab:
      1. Price List Version = Sales 2006
      2. List Price = 8
      3. Standard Price = 7
      4. Price Limit = 6
  14. The production manager sets up a new activity for the production inside Production Management || Setup || Activity:
    1. Name = Manufacture
  15. He then creates a new process plan in Production Management || Transactions || Process Plan:
    1. Name = Little Vanilla Ice Cream
    2. Process Unit = Little Vanilla Ice Cream
    3. Conversion Rate = 1
    4. Inside Version tab:
      1. Starting Date = 01-01-2010
      2. Ending Date = 01-01-2011
      3. Inside Operation tab:
        1. Name = Manufacture Little Vanilla Ice Cream
        2. Activity = Manufacture
        3. Inside I/O Products:
          1. Product = Vanilla; Production Type = Product use (P-); Quantity = 0.2
          2. Product = Milk; Production Type = Product use (P-); Quantity = 1.2
          3. Product = Cup; Production Type = Product use (P-); Quantity = 1
          4. Product = Little Vanilla Ice Cream; Production Type = Product use (P+); Quantity = 1
  16. Navigates back to Product = Little Vanilla Ice Cream and assigns it Process Plan = Little Vanilla Ice Cream

Attribute set instance usage

  1. The production manager requires some raw materials to start the production of ice creams so he creates a requisition in Procurement Management || Transactions || Requisition:
    1. Business Partner = null
    2. Price List = null
  2. Adding in Lines what he needs:
    1. He needs small cups:
      1. Need by date = 01-06-2010
      2. Product = Cup
      3. Attribute Set Value = Small
      4. Quantity = 100 (Units)
    2. He needs small boxes:
      1. Need by date = 01-06-2010
      2. Product = Box
      3. Attribute Set Value = Small
      4. Quantity = 150 (Units)
    3. He needs vanilla:
      1. Need by date = 01-06-2010
      2. Product = Vanilla
      3. Quantity = 30 (Bags)
    4. He needs milk:
      1. Need by date = 01-06-2010
      2. Product = Milk
      3. Quantity = 200 (Litres)
  3. The production manager goes back to the requisition header and Completes it.


  1. The purchasing manager accepts the purchase of cups and boxes navigating to Procurement Management || Transactions || Requisition To Order:
    1. Selects Cup and Box lines and click on Add button.
    2. Then clicks on Create button and in the pop-up window selects:
      1. Vendor = Mc Giver Supplies
  2. A purchase order is automatically created and completed with the attributes selected for cups and boxes.
  3. He then accepts the purchase of vanilla and milk selecting the former requisition in Procurement Management || Transactions || Manage Requisitions:
    1. Click on Create Purchase Order button.
    2. Business Partner = Neil Riley Productions
    3. Price List = Purchase
  4. A purchase order is automatically created and completed with the attributes selected for vanilla and milk.


  1. The warehousing manager receives the cups and boxes navigating to Procurement Management || Transactions || Goods Receipt:
    1. Creates a new goods receipt header for McGiver Supplies.
    2. Clicks on Create Lines From button, selects the former Purchase Order, selects a storage bin (warehouse position) and clicks on OK button.
  2. Lines of the order are copied into the goods receipt lines with their attribute set value.
  3. He completes this receipt of cups and boxes.
  4. Stock in the warehouse for cups and boxes is automatically updated. This can be checked at Warehouse Management || Analysis Tools || Stock Report using date 01-01-2010.
  5. The warehouse manager then creates a purchase invoice from the former goods receipt clicking on Generate Invoice from Receipt button.
  6. The reception of vanilla and milk is done using Procurement Management || Transactions || Pending Goods Receipts.
    1. Select products vanilla and milk, a reception date and a storage bin then click on Process button.
  7. A new goods receipt is created and completed for Neil Riley Productions with milk and vanilla lines.
  8. Stock in the warehouse for vanilla and milk is automatically updated. This can be checked at Warehouse Management || Analysis Tools || Stock Report using date 01-01-2011.


  1. The purchasing manager sees the created purchase invoice for McGiver Supplies.
  2. He checks its lines and Completes it.
  3. He then creates a Purchase Invoice header for Neil Riley Productions and clicks on Create Lines From button:
    1. He selects the former Goods Receipt then selects milk and vanilla lines and click on Ok button.
  4. He checks that the lines have been properly created, goes back to purchase invoice header and completes it.


  1. The production manager has now all the raw materials that he needs for manufacturing Small Vanilla Ice Creams in Production Management || Transactions || Work Requirement:
    1. He creates a new work requirement header:
      1. Proces Plan = Little Vanilla Ice Cream
      2. Quantity = 100
      3. Starting Date = 01-07-2010
    2. He then clicks on Process Work Requirement button and checks that Operation and Product tabs have been properly filled.
  2. The manufacturing tacking will happen in Production Management || Transactions:
    1. He creates a new work effort header with:
      1. Movement Date = 01-07-2010
      2. Starting Time = 10:00:00
      3. Ending Time = 17:00:00
      4. In Production Run tab:
        1. WR Phase = Manufacture
        2. Completed Quantity = 100
        3. He then clicks on Create Standards button.
    2. Going back to the work effort header he clicks on Validate Work Effort button.
  3. Stock in the warehouse for cups, milk, vanilla and little vanilla ice creams is automatically updated. This can be checked at Warehouse Management || Analysis Tools || Stock Report using date 01-01-2011.
  4. For producing packs of 3 little vanilla ice creams he then performs a BOM Production in Warehouse Management || Transactions || Bill of Materials Production || BOM Production.
    1. Name = Production of 20 Pack of 3 Little Vanilla Ice Creams
    2. Movement Date = 01-09-2010
      1. In the Production Plan he adds:
      2. Product = Pack 3 Little Vanilla Ice Cream
      3. Production Quantity = 20
    3. Navigates back to the header and clicks on Create/Post Production button.
    4. Inside Production Plan > I/O Products he checks that the following records has been created:
      1. Product: Pack 3 Little Vanilla Ice Cream; Attribute Set Value = Vanilla; Movement Quantity = 20
      2. Product: Box; Attribute Set Value = Small; Movement Quantity = -20
      3. Product: Little Vanilla Ice Cream; Attribute Set Value = Vanilla_One; Movement Quantity = -60
    5. Navigates back to the header and clicks again on Create/Post Production button.
  5. Stock in the warehouse for boxes, little vanilla ice creams and pack of 3 little vanilla ice creams is automatically updated. This can be checked at Warehouse Management || Analysis Tools || Stock Report using date 01-01-2011.


  1. The sales manager has now enough stock of produced products to start launching sales orders in Sales Management || Transactions || Sales Order:
    1. He creates a Standard Order for business partner Millman.
      1. Adding in Lines:
        1. Product = Little Vanilla Ice Cream
        2. Ordered Quantity = 12
      2. Going back to the sales order header he completes it.
    2. He then creates a Warehouse Order for business partner Sailor.
      1. Adding in Lines:
        1. Product = Pack of 3 Little Vanilla Ice Cream
        2. Ordered Quantity = 5
      2. Going back to the sales order header he completes it and a goods shipment is automatically created.


  1. The warehousing manager creates a new goods shipment header for Business Partner = Millman in Sales Management || Transactions || Goods Shipment.
    1. He clicks on Create Lines From button, selects the previous sales order, selects a storage bin (warehouse position), selects the 12 Little Vanilla Ice Cream and presses on OK button.
    2. He navigates to Lines and changes the Movement Quantity from 12 to 10.
    3. Going back to the goods shipment header he completes it.
  2. He will send the rest of the order using Sales Management || Transactions || Create Shipments from Orders:
    1. Selects the order for Millman anc clicks on Process button.
    2. A goods shipment is correctly created for 2 Little Vanilla Ice Cream with the correct attribute set value.
  3. He then checks the lines and attribute set value of the warehouse order that led to the automatic creation of a goods shipment for customer Sailor.

Attribute set instance reporting

  1. Warehouse Management || Analysis Tools || Stock Report displays the stock available of each product, providing separate lines for each attribute and grouped by product category.
  2. Warehouse Management || Analysis Tools || Warehouse Control Report displays the movements of products with their attribute grouped by movement date.
  3. Warehouse Management || Analysis Tools || Product Movements Report displays the movements of products with their attribute grouped by movement type.
  4. Warehouse Management || Analysis Tools || Production Report displays the produced products with their attribute.

User stories

Attribute set instance definition

John, the production manager of an ice cream company, sets up the production information of his products:

  1. Defines the product categories.
  2. Defines the product attributes and attribute sets.
  3. Defines the raw materials and components.
  4. Defines the end products.
  5. Defines the production flows.

When defining products and setting their attributes, he would like to choose whether:

  1. The attribute set of a product, if any, is required to be defined in all the transactions.
  2. The attribute set value defined for a product, if any, is defaulted for each transaction.

When defining production flows, for products which attribute set instance value is defaulted, he expects this value to be set automatically.

Attribute set instance usage

John, the production manager, requires some raw materials and components for launching the production:

  1. He fills some material requisitions, specifying their attribute set values if required.
  2. He does not care about the the vendors and price lists.

Sarah, the purchasing manager, accepts the raw materials and components required by John:

  1. She chooses the best vendor for these raw materials and components.
  2. She does not care about attribute set values, assuming that these have been properly set up by John.
  3. If she creates some new sales orders from scratch and add lines with products which attribute set instance value is defaulted, she expects this value to be set automatically in the order line.
  4. She wants the purchase reports to take into account attribute set values.

Jenna, the warehousing manager, is in charge of supervising what enters or leaves the warehouse. In the purchasing flow, she:

  1. Receives the purchase orders as they are, placing the materials into the corresponding warehouse.
  2. If she creates a goods receipt from scratch and add lines with products which attribute set instance value is defaulted, she expects this value to be set in automatically the goods receipt line.
  3. She wants the warehouse reports to take into account attribute set values.

Once he has all the raw materials and components, John, the production manager, launches several production flows:

  1. He just selects the final products that he wants to obtain.
  2. He does not have to care about attribute set values if:
    1. These have been correctly set up in the production flows setup
    2. or the products involved have their attribute set value defined as default.
  3. He wants the production reports to take into account attribute set values.

Mary, the sales manager, sets up some sales orders for the customers:

  1. She selects products but does not have to care about attribute set values if they have been given a default value.
  2. If this attribute set value is not defaulted for the product chosen and the customer has not specified it (for instance, the customer asked for shirts but does not care their color), it will be warehousing manager's job to decide the corresponding attribute value.

In the sales flow, Jenna, the warehousing manager:

  1. Receives the sales orders as they are, taking the products from the corresponding warehouse.
  2. If she creates a goods shipment from scratch and add lines with products which attribute set instance value is defaulted, she expects this value to be set in automatically the goods shipment line.
  3. She wants the warehouse reports to take into account attribute set values.

Functional Requirements Based on Business Processes

Attribute set instance definition

Num Requirement Importance Status
1.1 Drop-down field called Attribute Set Value will be moved under Attribute Set field (see Product window mockup). Must have Complete
1.2 Attribute Set Value field has to display only when Attribute Set field has some value. Must have Complete


Num Requirement Importance Status
1.3 A new non-mandatory drop-down field called Use Attribute Set Value As is required in the Product window, just in the right side of Attribute Set Value field (see Product window mockup). Must have Complete
1.4 Use Attribute Set Value As field has to display only when Attribute Set Value field has some value. Must have Complete
1.5 Use Attribute Set Value As drop-down field has 3 values:
  1. Default: This means that the attribute set value defined will be defaulted in each of the transactions. In other words, the user will not have to care about setting it each time when creating transactions such as goods receipts and shipments. In any case, the user will be allowed to change the attribute set value for this product. For instance, you would like to default the value of the attribute set Size of your product Shirt to Medium (because is the most commonly used). This way, each time that you select Shirt product its attribute set value will be set to Medium (unless you select it from stock, in which case the attribute set value is set to the value in which the product is stored). User will be allowed then to change this attribute set value to Small or Large.
  2. Overwrite Specification: This means that the attribute set value will specify completely the product. Nevertheless, the attribute set value can be changed for this product. For instance, product Alcohol Free Beer is given the attribute set Alcoholic Proof and the attribute set value 0% in the Product window. This definition specifies completely the product: the Alcohol Free Beer is supposed to have a 0% alcoholic proof. But, in the production process, some deviations can happen and this alcoholic proof can go to 0,01%. Using Overwrite Specification option the production manager will be allowed to register this deviation in the Production process for Alcohol Free Beer product.
  3. Specification: This means that the attribute set value will specify completely the product. The attribute set value will always have this value and no other value will be allowed for it. For instance, product Large Blue Jeans is given the attribute set Size & Color with values Large and Blue. This defines the product and will not change. Transactions are done and completed with this product, without obliging to re-set the attribute set value. User can then query all products having Large size or Blue color without having to query the transactions but only the product definition.
Must have Complete
1.6 Use Attribute Set Value As drop-down field is not mandatory but if some value is given to the Attribute Set Value field, it will be required to give a value to Use Attribute Set Value As field. Must have Complete


Num Requirement Importance Status
1.7 A new check-box field named Require At Least One Value will be created in the Attribute Set window, in the right side of Active check-box field (see Attribute Set window mockup). Must have Complete
1.8 Default value for check-box field Require At Least One Value will be Y (ticked). Must have Complete

Attribute set instance usage

Num Requirement Importance Status
2.1 Transactions with an attribute set value field have to show this field based on the Attribute Set drop-down field value:

This means that:

  1. If Attribute Set drop-down field value IS NOT NULL, the attribute set value field is displayed.
  2. If Attribute Set drop-down field value IS NULL, the attribute set value field is NOT displayed.

Transactions that are affected are:

  1. Master Data Management > Product > Product > Transactions
  2. Warehouse Management > Transactions > Physical Inventory > Header > Lines
  3. Warehouse Management > Transactions > Goods Movements > Header > Lines
  4. Warehouse Management > Transactions > Bill of Materials Production > BOM Production > Production Plan > I/O Products
  5. Warehouse Management > Transactions > Goods Transaction
  6. Warehouse Management > Setup > Warehouse and Storage Bins > Warehouse > Storage Bin > Bin Contents
  7. Warehouse Management > Setup > Warehouse and Storage Bins > Warehouse > Storage Bin > Product Transactions
  8. Production Management > Transactions > Internal Consumption > Header > Lines
  9. Production Management > Transactions > Work Effort > Work Effort > Production Run > Product
  10. Production Management > Transactions > Work Effort > Work Effort > Global Use
  11. Production Management > Transactions > Periodic Quality Control Data > Test
  12. Warehouse Management > Transactions > Incoming Shipment > Shipment in > Shipment in line
  13. Procurement Management > Transactions > Requisition > Header > Lines
  14. Procurement Management > Transactions > Manage Requisitions > Header > Lines
  15. Procurement Management > Transactions > Goods Receipt > Header > Lines
  16. Procurement Management > Transactions > Purchase Order > Header > Lines
  17. Sales Management > Transactions > Goods Shipment > Header > Lines
  18. Sales Management > Transactions > Sales Order > Header > Lines
  19. Sales Management > Transactions > Sales Invoice > Header > Lines
  20. Financial Management > Assets > Assets
Must have Complete
2.2 Transactions with an attribute set value field have to show this field based on the Use Attribute Set Value As drop-down field value:

This means that:

  1. If Use Attribute Set Value As drop-down field value IS NOT Specification, the attribute set value field is displayed (if requirement 2.1 is complied).
  2. If Use Attribute Set Value As drop-down field value = Specification, the attribute set value field is NOT displayed (even if requirement 2.1 is complied), unless there is already a value selected.

This behavior has to be back-ended by triggers in order to ensure that no attribute set value is inserted when Use Attribute Set Value As drop-down field value is Specification.

Transactions that are affected are:

  1. Master Data Management > Product > Product > Transactions
  2. Warehouse Management > Transactions > Physical Inventory > Header > Lines
  3. Warehouse Management > Transactions > Goods Movements > Header > Lines
  4. Warehouse Management > Transactions > Bill of Materials Production > BOM Production > Production Plan > I/O Products
  5. Warehouse Management > Transactions > Goods Transaction
  6. Warehouse Management > Setup > Warehouse and Storage Bins > Warehouse > Storage Bin > Bin Contents
  7. Warehouse Management > Setup > Warehouse and Storage Bins > Warehouse > Storage Bin > Product Transactions
  8. Production Management > Transactions > Internal Consumption > Header > Lines
  9. Production Management > Transactions > Work Effort > Work Effort > Production Run > Product
  10. Production Management > Transactions > Work Effort > Work Effort > Global Use
  11. Production Management > Transactions > Periodic Quality Control Data > Test
  12. Warehouse Management > Transactions > Incoming Shipment > Shipment in > Shipment in line
  13. Procurement Management > Transactions > Requisition > Header > Lines
  14. Procurement Management > Transactions > Manage Requisitions > Header > Lines
  15. Procurement Management > Transactions > Goods Receipt > Header > Lines
  16. Procurement Management > Transactions > Purchase Order > Header > Lines
  17. Sales Management > Transactions > Goods Shipment > Header > Lines
  18. Sales Management > Transactions > Sales Order > Header > Lines
  19. Sales Management > Transactions > Sales Invoice > Header > Lines
  20. Financial Management > Assets > Assets
Must have Complete
2.3 Attribute Set Value selector (pop-up window for choosing the attribute set value for products with attribute set) displays an error no allowing to choose an attribute set value when Use Attribute Set Value As field value is Specification. Must have Complete
2.4 Transactions which require an attribute set value to be completed have to base this check in:
  1. the Use Attribute Set Value As drop-down field value
  2. and the Require At Least One Value check-box field.

This means that:

  1. If Use Attribute Set Value As drop-down field value = Specification, the check of the attribute set value before completing the product transaction is NOT done (is skipped).
  2. If Use Attribute Set Value As drop-down field value IS NOT Specification:
    1. If Require At Least One Value check-box field is Yes (ticked), the check of the attribute set value before completing the product transaction is done, throwing an error message in case that there is no attribute set value set (already implemented): "In line XX the product has no attribute set".
    2. If Require At Least One Value check-box field is No (un-ticked), the check of the attribute set value before completing the product transaction is NOT done (is skipped).

Transactions that are affected are:

  1. Clicking on Process Inventory Count button in Warehouse Management > Transactions > Physical Inventory
  2. Clicking on Process Movements button in Warehouse Management > Transactions > Goods Movements
  3. Clicking for the second time on Create/Post Production button in Warehouse Management > Transactions > Bill of Materials Production (see How-to BOM Production)
  4. Clicking on Process Internal Consumption button in Production Management > Transactions > Internal Consumption
  5. Clicking on Validate Work Effort button in Production Management > Transactions > Work Effort (see Production Management)
  6. Clicking on Complete button in Warehouse Management > Transactions > Incoming Shipment
  7. Clicking on Complete button in Procurement Management > Transactions > Goods Receipt
  8. Clicking on Complete button in Sales Management > Transactions > Goods Shipment
Must have Complete


Num Requirement Importance Status
2.5 Transactions which have an attribute set value field have to base their default value in the Use Attribute Set Value As drop-down field value.

This means that:

  1. If Use Attribute Set Value As drop-down field value = Default, after selecting a product:
    1. Through Product selector (where attribute set value is NOT displayed), the default attribute set value has to be set.
    2. Through Product Complete (where attribute set value is displayed if the product is in stock), the default attribute set value has to be set ONLY when option (check-box) With Stock is not ticked. When With Stock option is ticked, the attribute set value display in the Product Complete selector (hence the attribute set value that will be set) is the one taken from the stock information. This means that, if we select a product in the Product Complete selector which attribute set value is Large and its default attribute set value is Medium, the attribute set value Large has to be set. This situation just described should not happen frequently but could in some cases.
    3. In any case, this attribute set value can then be changed by the user.

Windows that are affected are:

  1. Master Data Management > Product > Product > Transactions
  2. Warehouse Management > Transactions > Physical Inventory > Header > Lines
  3. Warehouse Management > Transactions > Goods Movements > Header > Lines
  4. Warehouse Management > Transactions > Bill of Materials Production > BOM Production > Production Plan > I/O Products
  5. Warehouse Management > Transactions > Goods Transaction
  6. Warehouse Management > Setup > Warehouse and Storage Bins > Warehouse > Storage Bin > Bin Contents
  7. Warehouse Management > Setup > Warehouse and Storage Bins > Warehouse > Storage Bin > Product Transactions
  8. Production Management > Transactions > Internal Consumption > Header > Lines
  9. Production Management > Transactions > Work Effort > Work Effort > Production Run > Product
  10. Production Management > Transactions > Work Effort > Work Effort > Global Use
  11. Production Management > Transactions > Periodic Quality Control Data > Test
  12. Warehouse Management > Transactions > Incoming Shipment > Shipment in > Shipment in line
  13. Procurement Management > Transactions > Requisition > Header > Lines
  14. Procurement Management > Transactions > Manage Requisitions > Header > Lines
  15. Procurement Management > Transactions > Goods Receipt > Header > Lines
  16. Procurement Management > Transactions > Purchase Order > Header > Lines
  17. Sales Management > Transactions > Goods Shipment > Header > Lines
  18. Sales Management > Transactions > Sales Order > Header > Lines
  19. Sales Management > Transactions > Sales Invoice > Header > Lines
  20. Financial Management > Assets > Assets
Must have Complete

User Interface Mockups

Product window

Isdefaultedisrequired.png


Attribute Set window

Attrset.png

Open discussion items

Closed discussion items

Issues detected

Related to attribute sets

  1. Create Lines From Goods Receipt: does not select the Attribute Set Values set in the Order/Invoice selected.
  2. BOM Production: if a BOM materials (used) has two attribute sets, they are not correctly put when clicking on Create/Post Production button for the first time.
  3. Removing an attribute set value is not usable:
    1. If there is some value in an attribute set value field, you open the attribute set value selector, blank the value and click on OK.
    2. Even if the value is not visible, it remains there.
    3. For removing it completely you have to re-open the you open the attribute set value selector and click on Cancel.
  4. In Product tab, you have to first save the Attribute Set in order to be able to select an Attribute Set Value.
  5. Create Standards: When clicking on Create Standards in Work Effort > Production Run, I/O Products defined in the Work Requirement selected (that come from the Process Plan) are copied/calculated. Neither in Work Requirement nor in Process Plan attribute set values are selected for the products. But Create Standards process require attribute set values to be inserted in Work Effort > Production Run > Product tab. This causes that attribute set value selected is somehow random.
    1. It would be nice that if some attribute set value is defined in the product header it is taken.
    2. A better solution would be adding an attribute set value in both process plan and work requirement windows.
  6. In Warehouse control report:
    1. Serial No. description is cut.

Other issues

  1. Pending Goods Receipts does not take into account storage bin selected in order to chose the goods receipt header warehouse
  2. In Warehouse control report:
    1. Links movement type links to 404 page error.
  3. Purchase order report breaks if we give a Starting Date.
  4. Requisition header: Currency drop-down field should be set only if Price List is selected, otherwise not.
  5. BOM Production window:
    1. When clicking first time Create/Post Production button, the Records Created check-box is ticked and is editable: this field should always be read-only.
    2. Clicking twice in Create/Post Production button, this button should disappear since clicking it for the third time gives an error.
  6. Work Requirement: when pressing once Process Work Requirement button, Processed check-box is ticked and this button should disappear.
  7. Work Effort > Production Run: when Create Standards 0once, Processed check-box is ticked and button should disappear.
  8. Work effort: Validate Work Effort button should disappear once Processed check-box is ticked.
  9. Callout selecting quantity from warehouse in goods receipts/shipments: SL_InOutLine_Product: String fromOrder = SLInoutLineProductData.fromOrder() ? The XSQL is strange.
  10. https://code.openbravo.com/erp/devel/pi/rev/076cc6b74befa977a3d56b2364a7bbf416febb3d Odd error message code.

Technical Documentation

Attribute set instance definition

Functional requirements 1.1 and 1.2


Functional requirements 1.3, 1.4, 1.5 and 1.6


Functional requirements 1.7 and 1.8

Attribute set instance usage

Functional requirements 2.1 and 2.2: Finding windows, tabs and tables affected is done via:

SELECT w.name AS WINDOW, t.name AS TAB, TA.TABLENAME AS TABLENAME
FROM ad_field f, ad_tab t, ad_window w, AD_TABLE TA
WHERE UPPER(f.name) = 'ATTRIBUTE SET VALUE'
AND t.ad_tab_id = f.ad_tab_id
AND TA.AD_TABLE_ID = T.AD_TABLE_ID
AND w.ad_window_id = t.ad_window_id
AND f.isdisplayed = 'Y'
AND W.ISACTIVE= 'Y'
AND T.ISACTIVE='Y'
ORDER BY  TA.TABLENAME, W.NAME, T.NAME

Attribute Set Value fields will be added a display logic based on 2 auxiliary inputs.

  1. First auxiliary input name is ATTRIBUTESET with code:
    @SQL=SELECT M_ATTRIBUTESET_ID FROM M_PRODUCT WHERE M_PRODUCT_ID=@M_Product_ID@
  2. Second auxiliary input name is ATTRSETVALUETYPE with code:
    @SQL=SELECT ATTRSETVALUETYPE FROM M_PRODUCT WHERE M_PRODUCT_ID=@M_Product_ID@

Then M_Product_ID column of the corresponding table is Stored in Session

Then the field Attribute Set Value takes the Display Logic:

(@ATTRIBUTESET@!''&@ATTRSETVALUETYPE@!'F')|(@M_AttributeSetInstance_ID@!''&@M_AttributeSetInstance_ID@!'0')

Corresponding callouts triggered when changing the product value are also added:

    String strAttrSet, strAttrSetValueType;
    strAttrSet = strAttrSetValueType = "";
    final Product product = OBDal.getInstance().get(Product.class, strMProductID);
    if (product != null) {
      AttributeSet attributeset = product.getAttributeSet();
      if (attributeset != null)
        strAttrSet = product.getAttributeSet().toString();
      strAttrSetValueType = product.getUseAttributeSetValueAs();
    }
    resultado.append("new Array(\"inpattributeset\", \"" + FormatUtilities.replaceJS(strAttrSet)
        + "\"),\n");
    resultado.append("new Array(\"inpattrsetvaluetype\", \""
        + FormatUtilities.replaceJS(strAttrSetValueType) + "\"),\n");

Triggers are modified like:

v_AttrSetValueType M_Product.AttrSetValueType%TYPE;
...
IF (INSERTING OR UPDATING) THEN
 --Does not allow to change the attribute set value
 -- for products which attribute set value type is Fixed
 IF (:NEW.M_PRODUCT_ID IS NOT NULL AND COALESCE(:new.M_AttributeSetInstance_ID,'0')!='0') THEN
  SELECT ATTRSETVALUETYPE
  INTO v_AttrSetValueType
  FROM M_PRODUCT
  WHERE M_PRODUCT_ID=:NEW.M_PRODUCT_ID;
  IF (v_AttrSetValueType='F') THEN
   RAISE_APPLICATION_ERROR(-20000, '@AttrSetValueFixed@');
  END IF;
 END IF;
END IF;


Functional requirement 2.3: Modify the Attribute Set Value selector in order not permit selecting a value when the Use Attribute Set Value As field is Specification.


Functional requirement 2.4: When making the attribute set value check, evaluate the value of AttrSetValueType column of the M_Product table in the following procedures (processes) and triggers:

AND (P.ATTRSETVALUETYPE IS NULL OR P.ATTRSETVALUETYPE <> 'F')
AND (SELECT ISONEATTRSETVALREQUIRED FROM M_ATTRIBUTESET WHERE M_ATTRIBUTESET_ID = P.M_ATTRIBUTESET_ID) = 'Y'
  1. M_INVENTORY_POST procedure
  2. M_MOVEMENT_POST procedure
  3. M_PRODUCTION_RUN procedure
  4. M_INTERNAL_CONSUMPTION_POST procedure
  5. MA_WORKEFFORT_VALIDATE procedure
  6. M_INOUT_POST procedure
  7. M_TRANSACTION_TRG trigger


Functional requirement 2.5:

  1. In transactions where Product selector is used, modify the callout triggered when selecting a product to take the default value, if any.
  2. In transactions where Product Complete selector is used, this component will be modified in order to show default value (if any) when With Stock option is not ticked.

Development Status

Attribute set instance definition

Type of file Path Change made Comments Status
Database files
  1. src-db/database/sourcedata/AD_COLUMN.xml
  2. src-db/database/sourcedata/AD_FIELD.xml
  • Modified Attribute Set Value position and display logic.
Resolves Functional Requirements 1.1 and 1.2 Complete


Type of file Path Change made Comments Status
Database files
  1. src-db/database/model/tables/M_PRODUCT.xml
  2. src-db/database/sourcedata/AD_COLUMN.xml
  3. src-db/database/sourcedata/AD_ELEMENT.xml
  4. src-db/database/sourcedata/AD_FIELD.xml
  5. src-db/database/sourcedata/AD_MESSAGE.xml
  6. src-db/database/sourcedata/AD_REFERENCE.xml
  7. src-db/database/sourcedata/AD_REF_LIST.xml
  • Added ATTRSETVALUETYPE to M_PRODUCT table.
  • Add a new drop-down field named Attribute Set Value Type in Product tab.
Resolves Functional Requirements 1.3, 1.4 and 1.5 Complete
Database files
  1. src-db/database/model/tables/M_PRODUCT.xml
  2. src-db/database/sourcedata/AD_MESSAGE.xml
Added check-constraint and onCreateDefault to Use Attribute Set Value As field. Resolves Functional Requirement 1.6 Complete


Type of file Path Change made Comments Status
Database files
  1. src-db/database/model/tables/M_ATTRIBUTESET.xml
  2. src-db/database/sourcedata/AD_COLUMN.xml
  3. src-db/database/sourcedata/AD_ELEMENT.xml
  4. src-db/database/sourcedata/AD_FIELD.xml
  • Added ISONEATTRSETVALREQUIRED to M_ATTRIBUTESET table.
  • Add a new check-box field named Require At Least One Value in Attribute Set tab.
Resolves Functional Requirements 1.7 and 1.8 Complete

Attribute set instance usage

Type of file Path Change made Comments Status
Database files, callouts and triggers
  1. src-db/database/sourcedata/AD_AUXILIARINPUT.xml
  2. src-db/database/sourcedata/AD_CALLOUT.xml
  3. src-db/database/sourcedata/AD_MODEL_OBJECT.xml
  4. src-db/database/sourcedata/AD_MODEL_OBJECT_MAPPING.xml
  5. src-db/database/sourcedata/AD_COLUMN.xml
  6. src-db/database/sourcedata/AD_FIELD.xml
  7. src/org/openbravo/erpCommon/ad_callouts/SL_Asset_Product.java
  8. src/org/openbravo/erpCommon/ad_callouts/SL_GlobalUse_Product.java
  9. src/org/openbravo/erpCommon/ad_callouts/SL_InOutLine_Product.java
  10. src/org/openbravo/erpCommon/ad_callouts/SL_Internal_Consumption_Product.java
  11. src/org/openbravo/erpCommon/ad_callouts/SL_Inventory_Product.java
  12. src/org/openbravo/erpCommon/ad_callouts/SL_Invoice_Product.java
  13. src/org/openbravo/erpCommon/ad_callouts/SL_Movement_Product.java
  14. src/org/openbravo/erpCommon/ad_callouts/SL_Order_Product.java
  15. src/org/openbravo/erpCommon/ad_callouts/SL_PC_Case_Product.java
  16. src/org/openbravo/erpCommon/ad_callouts/SL_Production_Product.java
  17. src/org/openbravo/erpCommon/ad_callouts/SL_RequisitionLine_Product.java
  18. src-db/database/sourcedata/AD_MESSAGE.xml
  19. src-db/database/model/triggers/A_ASSET_TRG.xml
  20. src-db/database/model/triggers/C_INVOICELINE_TRG.xml
  21. src-db/database/model/triggers/C_ORDERLINE_TRG2.xml
  22. src-db/database/model/triggers/MA_GLOBALUSE_TRG.xml
  23. src-db/database/model/triggers/MA_PC_CASE_TRG.xml
  24. src-db/database/model/triggers/M_INOUTLINE_TRG.xml
  25. src-db/database/model/triggers/M_INTERNAL_CONSUMPTIONLINE_TRG.xml
  26. src-db/database/model/triggers/M_INVENTORYLINE_TRG.xml
  27. src-db/database/model/triggers/M_MOVEMENTLINE_TRG.xml
  28. src-db/database/model/triggers/M_PRODUCTIONLINE_TRG.xml
  29. src-db/database/model/triggers/M_REQUISITIONLINE_TRG2.xml
  30. src-db/database/model/triggers/M_STORAGE_DETAIL_TRG.xml
  31. src-db/database/model/triggers/M_TRANSACTION_TRG.xml
  • Modified triggers and display logics in order to take into account attribute set value characteristic (Default, Specification, Overwrite Specification).
Resolves Functional Requirements 2.1 and 2.2 Complete
Selector and database message files.
  1. src/org/openbravo/erpCommon/info/AttributeSetInstance.java
  2. src-db/database/sourcedata/AD_MESSAGE.xml
  • Modified Attribute Set Value selector.
Resolves Functional Requirement 2.3 Complete
Database files
  1. src-db/database/model/functions/MA_WORKEFFORT_VALIDATE.xml
  2. src-db/database/model/functions/M_INOUT_POST.xml
  3. src-db/database/model/functions/M_INTERNAL_CONSUMPTION_POST.xml
  4. src-db/database/model/functions/M_INVENTORY_POST.xml
  5. src-db/database/model/functions/M_MOVEMENT_POST.xml
  6. src-db/database/model/functions/M_PRODUCTION_RUN.xml
  7. src-db/database/model/triggers/M_TRANSACTION_TRG.xml
  • Modified procedures and triggers in order to evaluate IsOneAttrSetValRequired column of M_Attributeset table and AttrSetValueType column of the M_Product table.
Resolves Functional Requirement 2.4 Complete


Type of file Path Change made Comments Status
Selector and callout files
  1. src/org/openbravo/erpCommon/info/ProductComplete_data.xsql
  2. src/org/openbravo/erpCommon/businessUtility/PAttributeSet_data.xsql
  3. src/org/openbravo/erpCommon/ad_callouts/SL_Order_Product.java
  4. src/org/openbravo/erpCommon/ad_callouts/SL_Invoice_Product.java
  5. src/org/openbravo/erpCommon/ad_callouts/SL_Asset_Product.java
  • Modified selectors and callouts in order to take into account attribute set value type = Default.
Resolves Functional Requirement 2.5 Complete

Test cases

Attribute set instance definition

Attribute set instance usage

Retrieved from "http://wiki.openbravo.com/wiki/Projects:Attribute_set_instance_review"

This page has been accessed 11,390 times. This page was last modified on 8 June 2012, at 05:26. Content is available under Creative Commons Attribution-ShareAlike 2.5 Spain License.