Formulation de la recette (composition)

La formulation permet calculer les caractéristiques du produit en fonction de sa composition (recette). Les listes suivantes sont calculées automatiquement par la formulation :

  • Coûts
  • Nutriments ou Valeurs Nutritionnelles
  • Ingrédients
  • Étiquetage
  • Allergènes
  • Certaines caractéristiques Physico-chimiques
  • Les Allégations de type certification

La liste composition est composée de plusieurs colonnes :

  • Le composant (produit : matière première, semi-fini, ou même un produit fini)
  • La quantité mise en œuvre dans la recette
  • L'unité de mise en œuvre (kg, mg, g, L, mL, P, %);
  • Le poids
  • La Freinte (%)
  • Le Rendement (%)

4 informations sont nécessaires à la formulation :

  • La Composition du produit.
  • La Quantité nette après transformation : il s'agit de la quantité de produit obtenue après l'étape de transformation en prenant en compte les pertes liées au rendement.
  • L'Unité du produit (kg, L, P) : unité de vente du produit. C'est cette unité qui définie l'unité du prix (€/kg, €/L) et l'unité des nutriments (/100g ou /100mL).
  • La Densité des produits liquides : la densité permet de convertir un litre ou une pièce de produit en kg.

Ajout d'une matière première (MP)

Naviguer vers la composition du produit en cliquant sur la liste "Composition".

Pour travailler en mode plein écran, cliquer sur le logo entouré en rouge sur la capture d'écran ci-dessous:

Ajouter une MP existante

Ajouter une matière première existante à la recette en tapant les 3 premières lettres de son nom:

Créer une nouvelle MP

Il est également possible de créer une nouvelle MP en renseignant son nom et l'unité d'utilisation (par défaut le kg).

Importer des MP depuis les bases de données nutritionnelles

Il est possible de créer une matière première à partir d'une base nutritionnelle. beCPG met à disposition les bases de données nutritionnelles CIQUAL et USDA. L'import des matières premières est disponible depuis la composition d'un produit :

  • Cliquer sur l'icône en forme de flêche puis "Importer une MP";
  • Choisisser une des bases de données proposées
  • Taper ensuite les premières lettres du nom de la MP que vous souhaitez importer;
  • Le système suggère des MP;
  • Sélectionner la MP que vous souhaitez importer;
  • Cliquer sur OK pour importer la MP (vous pouvez sélectionner plusieurs MP avant d'importer);
  • Un message vous dit que la MP a été importée avec succès.

Renseigner les quantités

Une fois les MP ajoutées vous pouvez renseigner leurs quantités.

  • Editer la ligne en cliquant sur l'action Modifier

  • Double cliquer sur la cellule d'une ligne et l'éditer. Pour changer de cellule, utiliser le clavier ou la souris.

  • Renseigner les données des MP nouvellement créées pour la formulation (le coût, les ingrédients, les allergènes, etc...)

Remarque : pour travailler sur la matière première en gardant la fenêtre du produit fini affichée, ouvrir un nouvel onglet. Pour cela, faire "Clic droit" > "Ouvrir dans un nouvel onglet".

Création d'un semi-fini

  • Naviguer sur la composition de la soupe en cliquant la liste "Composition". Cliquer sur "Créer un produit..." et sélectionner "Semi-fini...".

  • Renseigner son nom "Crouton de pain" et sa quantité nette (100kg). La quantité nette du semi-fini correspond à la quantité du batch après transformation. Une fois le semi-fini créé, il apparaît dans la composition. Renseigner la quantité mise en œuvre dans la recette (30g).

  • Cliquer sur le semi-fini pour naviguer sur sa recette. Passer en mode plein écran. Ajouter les composants (Farine, eau, sel,...).

  • Cliquer sur "Formuler". Sur cette recette, le rendement est de 62,7% car on a mis en œuvre 159,5kg de matière pour 100kg de produit après transformation.

  • Quitter le mode plein écran (en cliquant sur l'icône plein écran).
  • Naviguer sur le produit "Soupe aux courgettes" en passant par les cas d'emploi.

  • Cliquer sur "Formuler" pour que le produit "Soupe aux courgettes" prenne en compte les caractéristiques du Semi-fini "Croutons de pain".

Rendements

Le rendement représente la perte en eau subie au cours des différents procédés de transformation. Il correspond au rapport entre la quantité de produit final et de produit initial.

Rendement = Quantité finale/Quantité initial x 100

Lorsque le rendement est pris en compte, les valeurs nutritionnelles du produit s’en trouvent impactées par l'augmentation de la matière sèche.

Dans le logiciel beCPG, on appelle la quantité de produit initiale, « Quantité mise en œuvre » et la quantité de produit finale, « Quantité nette » . Il existe 2 façons d'appliquer un rendement :

  1. La quantité utilisée dans la composition est supérieure à la quantité nette du produit (propriété). Un rendement est calculé et appliqué automatiquement.
  2. L'ajout d'un rendement sur la ligne de la composition va recalculer le poids pour atteindre la quantité nette affichée. Ex : pour avoir 210 g avec un rendement à 80 % il faut mettre en œuvre 266,3 g

Il est possible de voir apparaitre les champs « Quantité nette » et « Rendement » dans les caractéristiques dynamiques.

Impacter le rendement à l'ingredient eau

Les produits subissant une cuisson voient leur quantité d'eau diminuer par évaporation. Les quantités des autres ingrédients sont augmentées proportionnellement à la concentration. BeCPG, propose un paramétrage supplémentaire afin d'impacter le rendement à l'ingrédient "eau". La colonne "Qté ap. rdmt (%)" de l'onglet ingrédient, affichera les quantités en prenant en compte l'évaporation de l'eau dans le produit.

Il est aussi possible d'étiqueter les quantités après cuisson. Cliquez ici pour plus d'informations.

Pour cela, installez au préalable l'aspect "eau" sur l'ingrédient "eau" et la(les) MP eau(x): N'hésitez pas à nous contacter si vous avez besoin d'assistance sur cette opération.

  1. Prérequis : soyez Administrateur du système.
  2. Récupérez le nœud de l'ingrédient eau et de la(les) MP eau(x). (Uniquement celle(s) composée(s) à 100% d'eau)
  3. Dans la console Admin : Appliquez le script suivant :
var node=search.findNode('noeud du produit : workspace://....');
node.addAspect('bcpg:waterAspect');

Note : Si vous réalisez des étiquetages en utilisant les quantités après rendement, pensez à renseigner la dénomination légale de la matière première eau.

Rendement manuel

Dans le cas où les quantités des composants de votre recette sont entrées en pourcentage, beCPG ne prend pas en compte le rendement. Il n'est en effet pas possible d'effectuer le rapport entre les quantités rentrantes et sortantes pour déterminer le rendement. Dans ce type de cas, vous devez entrer votre rendement manuellement. La première étape consiste à rentrer vos composants en pourcentage dans la liste composition de votre produit fini. Vous devez également entrer un poids net dans les propriétés de votre produit fini.

Retourner ensuite dans la liste composition de votre produit fini et dans la section caractéristiques dynamiques de la liste composition. La formule "Rendement manuel" vous permet de renseigner manuellement votre rendement. Le logiciel calcule ensuite le poids d'entrée à partir de la quantité nette et du rendement.

Rendement après remise en oeuvre

Sur la liste des ingrédients, vous avez la possibilité d'afficher le pourcentage des ingrédients après remise en oeuvre.

Pour cela, ajoutez la règle "secondaryYield" en veillant bien à indiquer "Début" dans le champ "Ordre d'exécution":

La colonne "Qté ap. REO (%)" présente sur la liste des ingrédients va ensuite se calculer automatiquement en fonction de la valeur indiquée dans "SecondaryYield".

Si vous souhaitez ensuite réaliser l'étiquetage en fonction des quantités après remise en oeuvre : [cliquez ici] (/utilization/labeling.md)

Freinte

En droit international de la vente, la freinte correspond à une diminution de la valeur d’une marchandise liée à une avarie de transport ou à une perte [https://fr.wikipedia.org/wiki/Freinte]. En d’autres termes, il s’agit d’une perte de matière au cours du transport ou sur le lieu de production. Par exemple, pour le fromage, il peut s’agir d’une perte de matière durant la lipolyse, protéolyse. Concernant les pommes, il peut s’agir des pertes dues à l’épluchage. Lorsque la freinte est prise en compte, il y a un impact sur les coûts mais pas sur les valeurs nutritionnelles du produit. En effet, puisqu’il y a des pertes, la quantité nette diminue donc il faut produire plus pour avoir la quantité souhaitée par le client.

Freinte =  [(Quantité consommée  / Quantité nette après pertes) * 100] - 100

Dans le logiciel beCPG, on la renseigne pour chaque matière première au niveau de la composition du produit. Par exemple, si on a 10% de pertes de farine sur le tapis roulant, on marque 10% au niveau de la freinte ce qui augmentera les coûts de 10%.

Quantité consommée = Quantité nette après pertes * (1 + Freinte / 100)
Coût avec freinte = Coût unitaire * Quantité nette après pertes * (1 + Freinte / 100)

Coûts avant freinte :

Modification de la freinte pour la farine :

Coûts après ajout de la freinte :

Caractéristiques dynamiques

Caractéristiques dynamiques simples

Les caractéristiques dynamiques sont personnalisables. Ces caractéristiques spécifiques à votre activité seront calculés avec la formulation.

exemple :

  • Profit;
  • Rendement;
  • HPD < 78% (% eau x 100 )/(100 - % lipides).

Une fois que la composition du produit est définie, le système calcule les caractéristiques dynamique du produit lorsque l'on clique sur le bouton « Formuler ».

Pour ajouter une caractéristique formulée :

  • Cliquer sur "Ajouter" (dans l'encart "Caractéristiques formulées" de la liste "Composition");
  • Renseigner le nom du calcul;
  • Renseigner le titre (Nom en multilingue qui peut être traduit dans l'application)
  • Renseigner l'expression en sélectionnant la liste, la caractéristique et le champ que l'on souhaite (ex: nutriments > Sel > Valeur). La formule apparaît alors dans l'éditeur de formules.

Lors de la création d'une caractéristique formulée, plusieurs options se proposent à vous pour la synchronisation :

  • Modèle : le calcul est présent sur le modèle mais n’apparaît pas. Le calcul est masqué, pour eviter la surcharge de la fenêtre,
  • Manuel : le calcul est spécifique à un produit,
  • Synchronisé : si vous modifiez le calcul, celui ci se synchronise automatiquement sur tous les produits.

Caractéristiques dynamiques en colonne (colonnes dynamiques)

Ces caractéristiques dynamiques sont disponibles sous un format colonne dans la composition ou les emballages. Ces colonnes sont masquées, par défaut. En selectionnant, une colonne, elle apparait. 10 colonnes dynamiques sont disponibles.

Pour ajouter une caractéristique formulée en colonne, il faut :

  • Cliquer sur "Ajouter";
  • Renseigner le nom de la caractéristique formulée en colonne;
  • Renseigner le titre (Nom en multilingue qui peut être traduit dans l'application)
  • Renseigner la colonne;
  • Renseigner l'expression en sélectionnant la liste, la caractéristique et le champ que l'on souhaite (ex: nutriments > Sel > Valeur). La formule apparaît alors dans l'éditeur de formules.

  • S'il s'agit d'une caractéristique de la MP, il faut ajouter "dataListItemEntity." devant l'expression.

  • S'il s'agit d'une caractéristique du produit formulé, il faut ajouter "entity." devant l'expression.

Voici quelques exemples de caractéristiques (pour les copier, il faut copier/coller dans l'éditeur bloc note):

  • Coût Matière première (€/kg) :
    dataListItemEntity.costList.size() != 0 ? dataListItemEntity.costList[0].value * dataListItem.qty / (entity.qty * entity.density)) : ""
    
  • Coût Matière première (€/kg) :

    dataListItemEntity.costList.size() != 0 ? dataListItemEntity.costList[0].value * dataListItem.qty : ""
    
  • Quantité Echantillon (kg)

    dataListItem.qty * entity.compoListView.dynamicCharactList.?[title == 'Nb Ech'][0].value
    
  • Coût Emballage (€/kg)

    dataListItemEntity.costList.size() != 0 ? dataListItemEntity.costList[0].value * (dataListItem.packagingListUnit.toString() == "PP" ? 1/dataListItem.qty : dataListItem.qty) / (entity.qty * entity.density) : ""
    
  • Coût Emballage (€/UVC)

    dataListItemEntity.costList.size() != 0 ? dataListItemEntity.costList[0].value * (dataListItem.packagingListUnit.toString() == "PP" ? 1/dataListItem.qty : dataListItem.qty) : ""
    

    A ce jour, il n'existe pas d'éditeur pour ajouter une caractéristique de type colonne. Il faut donc écrire directement la formule. Plusieurs variables sont accessibles :

  • entity : accès au produit formulé;

  • dataListItemEntity : accès au composant et à ses listes de données (ex: dataListItemEntity.costList permet d'accéder aux coûts du composant);
  • dataListItem : accès à l'élément de la liste composite (Composition, Emballage).

Dans ce mode les fonctions sum(RANGE,FORMULE) et avg(RANGE,FORMULE) sont disponible :

    sum(children(dataListItem),"entity.costList[0].value + dataListItem.qty" )
    ou sum(entity.compoListView.compoList.?[parent == #root.dataListItem],"entity.costList[0].value + dataListItem.qty" )

Plus d'info sur le language SPEL

Format des résultats

Par défaut, le système affiche 4 décimales significatives. Il est possible de préciser le format des résultats:

  • new java.text.DecimalFormat("0.00##").format(1.22222222) ou @beCPG.formatNumber(1.22222222, "0.00##") affichera 1,2222
  • new java.text.DecimalFormat("0.00##").format(1.2200) ou @beCPG.formatNumber(1.2200, "0.00##")affichera 1,22
  • new java.text.DecimalFormat("0.0000").format(1.2200) ou @beCPG.formatNumber(1.2200, "0.00\00") affichera 1,2200

Autres formats possibles

results matching ""

    No results matching ""