Formulation de la recette (composition)

========================================================

La formulation permet de 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 (%)

Liste Composition

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".

Liste Composition

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

Mode plein écran

Ajouter une MP existante

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

Ajouter une matière première existante

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).

Créer une nouvelle matière première

Création de la matière première

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 :

  • Cliquez sur l'icône en forme de flêche puis "Importer une MP";
  • Choisissez une des bases de données proposées;
  • Tapez ensuite les premières lettres du nom de la MP que vous souhaitez importer;
  • Le système suggère des MP;
  • Sélectionnez la MP que vous souhaitez importer;
  • Cliquez 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.

Import d'une matière première

Import d'une matière première, via une table nutritionnelle

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 Modifier la compositon

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

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

Naviguer dans la matière première

Renseigner les données des matière première

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 sur la liste "Composition". Cliquer sur "Créer un produit..." et sélectionner "Semi-fini...".

Création d'un 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,...).

Naviguer dans la composition du semi-fini

  • 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.

Caractéristique dynamique de la composition

  • 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.

Naviguer dans la composition

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

Copier les enfants

La fonction "Copier les enfants" permet de remplacer un composant de type semi-fini ou produit fini dans une composition par les composants qui le constituent. Le niveau est ainsi supprimé de la compostion et ses composants sont ajoutés directement au premier niveau de la composition. Les quantités sont automatiquement recalculées en fonction de la quantité initiale du semi-fini.

Par exemple : Le semi-fini SF1 (1 kg) est composé de :

  • 5 kg de MP1
  • 2 kg de MP2
  • 3 kg de MP3

Si la composition utilise 1 kg de SF1 dans le PF1, la fonction ajoute directement dans le PF1 :

  • 500 g de MP1
  • 200 g de MP2
  • 300 g de MP3

Copier les enfants

Si le produit contient une version, seule la version principale est prise en compte

Copier les enfants avec Variante

Note : Pour regrouper les composants en doublon, accédez à la composition, sélectionnez tous les composants, puis cliquez sur « Regrouper ».

Regrouper

Copie d'un composant d'une recette

La fonction « Copier le produit » permet de cloner un article directement depuis la liste « composition ». Elle est particulièrement utile pour expérimenter une nouvelle formulation, qu’il s’agisse d’un produit semi-fini ou d’une matière première, sans impacter le produit original. De plus, l’entité est automatiquement remplacée dans la composition par la copie.

Pour effectuer une copie, ouvrez la composition d’un produit, cliquez sur « … » à côté du composant concerné, puis sélectionnez « Copier le produit ».

Copier un produit dans la composition

Vous pouvez ensuite modifier cette copie en accédant à son détail via la navigation. Un raccourci situé en haut à gauche vous permet de revenir facilement à la composition principale.

Simuler un composant de la recette

La fonction « Simuler le produit » permet de créer une branche d'un article directement depuis la liste « composition ». Elle est particulièrement utile pour expérimenter une nouvelle formulation, qu’il s’agisse d’un produit semi-fini ou d’une matière première, sans affecter les produits finis existants qui en dépendent. De plus, l’entité est automatiquement remplacée dans la composition par la nouvelle branche.

Pour effectuer une simulation, ouvrez la composition d’un produit, cliquez sur « … » à côté du composant concerné, puis sélectionnez « Simuler le produit ».

Simuler un produit dans la composition

Vous pouvez ensuite effectuer les modifications nécessaires en naviguant dans cette nouvelle branche. Un raccourci situé en haut à gauche vous permet de revenir facilement à la composition principale.

Dupliquer la ligne d'un composant

L’outil « Dupliquer la ligne » permet de créer une copie exacte d'une ligne dans la composition. Si un composant est jugé interessant, il est possible de l'ajouter une seconde fois dans la composition sans avoir à le rechercher en cliquant sur « Ajouter un élément ».

Pour dupliquer une ligne, accédez à la composition d’un produit, puis cliquez sur « … » au niveau du composant concerné et sélectionnez « Dupliquer la ligne ».

Dupliquer un produit dans la composition

Une nouvelle ligne de ce composant est alors automatiquement ajoutées dans la composition.

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. Rendement quantité
  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 Rendement saisie

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.

Impacter le rendement à l'ingredient eau

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 manuel

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":

Rendement après remise en oeuvre

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".

Ingrédient,Rendement après remise en oeuvre

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 :

Coût avant freinte

Modification de la freinte pour la farine :

Modification de la freinte

Coûts après ajout de la freinte :

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ées avec la formulation.

exemple :

  • Profit;
  • Rendement;
  • HPD < 78% (% eau x 100 )/(100 - % lipides).
  • Détail du Nutriscore :
    var context = T(fr.becpg.repo.product.formulation.score.NutriScoreContext).parse(nutrientDetails);
    #context.toHtmlDisplayValue();
    
  • Afficher le Nutriscore :
    "@html<span class='viewmode-value nutrient-class'><span class='selected nutrient-class-"+nutrientClass.toLowerCase()+"' >"+nutrientClass+"</span></span>"
    
    Une fois que la composition du produit est définie, le système calcul les caractéristiques dynamique du produit lorsque l'on clique sur le bouton « Formuler ».

Caractéristiques dynamiques simples

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 Formule

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.

Afficher les caractéristiques dynamiques en colonne

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.

caractéristiques dynamiques en colonne

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 : ""

Avec prise en compte de la densité.

    dataListItemEntity.costList.size() != 0 ? dataListItemEntity.costList[0].value * dataListItem.qty / (entity.qty * entity.density)) : ""
  • Indicateur de l’impact des coûts des matières premières (via une barre de progrès)
    '<progress value="'+100*(dataListItemEntity.cost['workspace://SpacesStore/2ea642fd-792d-494b-b295-37577cd4d60e']?.value?:0) * (dataListItem.compoListUnit.toString().equals("P") and dataListItemEntity.unit.toString().equals("P") ? dataListItem.qtySubFormula : (dataListItemEntity.isLiquid() ? dataListItem.volume : dataListItem.qty)) * (1 + (dataListItem.lossPerc?:0) / 100)/entity.cost['workspace://SpacesStore/2ea642fd-792d-494b-b295-37577cd4d60e']?.valuePerProduct+'" max="100" style="width:80px;"></progress>'
  • 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

Pour les champs numériques de type double :

  • T(java.lang.Math).round(12.2) affichera 12 et T(java.lang.Math).round(12.22*10)/10 affichera 12.2

Autres formats possibles

results matching ""

    No results matching ""