Formulation of the composition/recipe
The wording used to describe the composition of a product and calculate the product features:
- Ingredients list
- Ingredient Declaration
The composition includes:
- The level of product in the composition
- The components used
- The amount used in the recipe
- The implementation unit (kg, g, L, mL, P, m, m², Perc)
The type of statement:
> Include: the component ingredients are included in the ingredients of the formulated product
> Detail: the component ingredients is listed under the same component it
> Consolidate: to consolidate the group statement (paste, trim, for example)
> Omit: the component ingredients are not included in the ingredients of the formulated product
> Do not include: the component ingredients are included in the ingredients of the formulated product but are not displayed (for example, water, sulfite)
On the formulated product, there are 3 fields necessary for the formulation:
- Quantity after processing: it is the amount of product obtained after the conversion step taking into account the performance-related losses.
- Product Unit (kg, L, P) product sales unit. It is this unity that defined the unit price (€ / kg ; € / L) and nutrient unit (/ 100 or / 100mL).
- Product density: the density to convert a liter or a piece of product in kg.
Filters and Tier 2 items
The section lists of data filters enable to filter lists and display level elements greater than 1. Show Tier 2 items allows you to see the composition of a semifinished present in your composition.
Import raw materials from nutritional databases
beCPG provides CIQUAL and USDA nutritional databases. The import of raw materials is available from the composition of a product:
- Click on the import button
- Type the firt letters of the raw material that you want to import
- The system then suggests a raw material
- Select the raw material you want to import
- Click on OK to import the raw material(you can select multiple raw materials before importing)
- A message tells you that the products have been successfully imported
- You can add the raw material to the composition of your product
In agribusiness, the yield corresponds to the ratio between the final product net quantity and the initial product net quantity. In fact, the latter undergoes losses during different transformation processes. Water losses during the cooking process are often the most consequent. Consequently, in beCPG, the yield enables the distinction between an uncooked product (100% of its water content) and a cooked product (100 - x water lost during the cooking). When the yield is taken into account, nutritional values are impacted. In fact, when the water content decreases, for example, its dry matter content increases.
The yield is calculated thanks to the formula : 100 - [(Initial quantity – Final quantity) / (Initial quantity) x 100]
In beCPG, we name «quantity used» the initial product quantity and «Net quantity» the final product quantity. beCPG takes the yield into account according to four ways :
- Whether by entering the yield for each raw material in the product composition :
- or by entering the net quantity of the final product in the «Net quantity» field (in the product properties).
It is possible to see the «Yield» and «Net quantity» fields with formulated characteristics.
beCPG doesn't take in account the yield when components are entered in percentages in the recipe of your product. The yield corresponds to the division of the net quantity by the quantity used in the recipe. That result cannot be computed when quantities are entered in percentages.
This is where manual yield comes in action. Enter the composition of your finished product and add a net weight in the properties of your finished good. Once this is done, go back to the composition list of your finished product. In the tab dedicated to dynamic characteristics you will see that you have the option to manually enter your yield. The system will compute the quantity used in the recipe from the yield and the net quantity. To enter manually a yield, click on edit in front of the manual yield formula. Then enter a number corresponding to your yield.
The loss in beCPG corresponds to the loss of a product quantity during transportation or production. That loss may be dure to spoilage or damage.
e.g. For cheeses, the loss of matter can be due to lipolysis or proteolysis. for apples, it can correspond to losses of quantity due to peeling.
In the case of losses, only the quantity disminushes as more product is needed to obtain the desired quantity. Therefore, when a loss percentage is entered, costs are impacted but not nutritional values. The loss is calculated with the following formula: 100 - [ ( Net quantity before loss - Net quantity after loss)/(Net quantity before loss) x 100].
In beCPG, the loss is added directly in composition for each raw material. e.g. a 10% flour loss on a production line requires to enter 10 in loss %. Costs for this entity will then be up by 10%.
Costs before loss:
Modification of the loss for flour:
Costs after loss:
Features made simple
This allows to add features or formulas, for example:
- HPD <78% (% Water x 100) / (100 -% lipids)
Once the product composition is set, the system calculates the characteristics of the product from the characteristics of the components when you click on the "Make" button.
Features made in columns
These characteristics also make it possible to add columns in the composition or packages (to copy, copy / paste into the notepad editor):
- Raw material cost (€ / kg):
dataListItemEntity.costList.size ()! = 0? New java.text.DecimalFormat ("0.00 ##") size (dataListItemEntity.costList  .value dataListItem.qty * / (* entity.qty entity.density)). ""
- Raw material cost (€ / kg):
dataListItemEntity.costList.size ()! = 0? New java.text.DecimalFormat ("0.00 ##") size (dataListItemEntity.costList  .value * dataListItem.qty). ""
Each Quantity (kg)
New java.text.DecimalFormat ("0.00 ##"). Format (* dataListItem.qty entity.compoListView.dynamicCharactList.? [title == 'Nb Ech']  .value)
Cost packaging (€ / kg)
dataListItemEntity.costList.size ()! = 0? New java.text.DecimalFormat ("0.00 ##") size (dataListItemEntity.costList  .value * (dataListItem.packagingListUnit.toString () == "PP" 1 / dataListItem.qty.? dataListItem.qty) / (entity.qty entity.density *)): ""
- Cost packaging (€ / UVC)
dataListItemEntity.costList.size ()! = 0? New java.text.DecimalFormat ("0.00 ##") size (dataListItemEntity.costList  .value * (dataListItem.packagingListUnit.toString () == "PP" 1 / dataListItem.qty: dataListItem.qty)). ""
There are 2 types of dynamic characteristics:
- 1 characteristic value
- Type characteristics Column (to add columns in the composition)
For now, there is no editor to add a column-type characteristic. To do that, you must write the formula directly. Several variables are available:
- Entity: Air formulated product
- DataListItemEntity: access to the component and its donnnées lists (eg dataListItemEntity.costList provides access to component costs
- DataListItem: access to the element of the composite list (Composition, Packaging)
In this mode the sum (RANGE FORM) and avg (RANGE FORM) are available:
sum (children (DataListItem) "entity.costList  .value + dataListItem.qty") or sum (entity.compoListView.compoList.? [Parent == # root.dataListItem] "entity.costList  .value + dataListItem.qty")
More information about the language spel: http://docs.spring.io/spring/docs/3.2.x/spring-framework-reference/html/expressions.html
Format of results
By default, the system displays 4 significant figures. It is possible to specify the format of results as illustrated below:
- New java.text.DecimalFormat ("0.00 ##"). Size (1.22222222) display 1.2222
- New java.text.DecimalFormat ("0.00 ##"). Size (1.2200) will show 1.22
- New java.text.DecimalFormat ("0.0000"). Size (1.2200) 1.2200 display
For more information about the possible formats, consult this page: http://docs.oracle.com/javase/tutorial/i18n/format/decimalFormat.html