Sommaire
1. Introduction
Le configurateur apporte une solution aux sites qui ne peuvent pas définir de standard, par exemple dans le cas où la fabrication du produit est définie dans la commande par ses caractéristiques dimensionnelles, ses options et/ou variantes etc..
L’opérateur, en saisissant les valeurs des paramètres en réponse aux questions posées, va générer automatiquement un devis ou une liste de fabrication de lancement spécifique au produit. Les lignes de gammes et nomenclatures sont renseignées automatiquement en fonctions des valeurs saisies.
Cette génération automatique est particulièrement bien adaptée aux problèmes des options, des variantes du produit, des caractéristiques dimensionnelles, des coloris, et également pour effectuer des remplacements de composants selon des critères prédéfinis.
La création des listes de fabrication paramétrables s'effectue dans la même application que les listes de fabrication standard. Un paramètre (‘Liste de Fab configurée O/N’) permet de définir si la liste de fabrication est paramétrable.
Une liste de fabrication paramétrable peut être multi-niveaux. L’élaboration d’une liste de fabrication configurée consiste à définir les paramètres dans l'en-tête et les règles de calculs dans le corps de la liste de fabrication.
30 paramètres numériques et 30 autres alphanumériques peuvent être renseignés dans l’en-tête.
La saisie des valeurs des paramètres s'effectue lors d'une passation de commande ou en devis ou en lancement.
Exemple : Saisie des valeurs de paramètres lors de la génération du lancement en saisie de commande ou de devis dans le cas de la fabrication des ressorts (Métier Ressortiers) :
2. Création d’une liste de fabrication configurée
2.1. Exemple simple : Fabrication d’un bureau
Ci-dessous un exemple de liste de fabrication standard d’une fabrication d’un bureau
Il faut déterminer de façon claire les phases de variantes, les phases d’option et/ou les phases permettant de déterminer des quantités ou des durées de travail.
Pour rendre cette liste de fabrication configurable, l’objectif est de répondre aux questions suivantes dans le configurateur :
Quelle essence de bois si la matière est le bois ? => une des variantes permettant d’identifier le code composant du plateau,
Quelle est l’épaisseur du plateau ? => une des variantes permettant d’identifier le code composant du plateau,
Quelle est la matière du bureau ? => une des variantes permettant d’identifier le code composant du plateau,
Quelle est la longueur du bureau ? Donnée utile pour déterminer la quantité du besoin du plateau et le nombre de pieds (calcul de la surface nécessaire en unité de stock),
Quelle est la profondeur du bureau ? Dimension utile pour déterminer la quantité du besoin du plateau (calcul de la surface nécessaire en unité de stock),
Faut-il un bloc tiroir ? => OPTION supprimable Oui ou Non, permettant aussi de mettre à jour les temps unitaires de la phase de montage et de supprimer la phase de consommation des vis de fixation du bloc.
Quel type de piètement ? => Variante permettant d’identifier le code de composant PIEDS,
Quel est le modèle du bureau ? => Permet d’identifier un modèle précis qui renseigne automatiquement la valeur de tous les paramètres.
Quelle est la couleur ?...
La réponse à ces différentes questions lors de la création d’une commande, d’un devis ou d’un lancement direct va générer la liste de fabrication de lancement ou de devis compatible avec les saisies effectuées dans le masque associé au configurateur.
Les matières ou les sous-ensembles inutiles (optionnels) ne seront pas dans la liste de fabrication de devis ou de lancement..
Des composants seront remplacés par d’autres, par exemple, le plateau en métal remplacé par un plateau en bois avec une essence précise.
Les quantités et/ou les temps seront calculées en fonction des choix effectués, par exemple les valeurs des paramètres de dimensions, profondeur, longueur… influeront sur les quantités de besoins des matières…
2.2. Paramétrage de l’en-tête de la liste de fabrication
Pour créer une liste de fabrication configurée, le paramètre « Liste de fab configurée » doit être positionné à ‘O’ui.
ATTENTION : Il n’est pas possible de repasser ce paramètre à ‘N’on lorsqu’il a été renseigné à ‘O’ui.
L’utilisateur peut ensuite renseigner les différents paramètres de la liste de fabrication configurée, la liste des paramètres est codifiées « _ » suivi du code liste de fabrication.
Dans notre exemple « _BU ».
Pour cela, sélectionner le traitement « Paramétrage de l’article configuré ».
Le masque de création des paramètres apparaît.
Paramètres alphanumériques / Numériques : Les colonnes « Libellé » permettent de renseigner les libellés des différents paramètres. Le libellé des paramètres ne doit pas comporter d’espaces ni de caractères spécifiques, hormis le symbole ‘tiret bas’ ( _ ). Les colonnes « Valeur » permettent de renseigner les valeurs par défaut des paramètres saisis. Le paramétrage consiste à renseigner les libellés et éventuellement les valeurs par défaut des paramètres alphanumériques et numériques. 30 paramètres alphanumériques et 30 paramètres numériques. Le masque ne présente que les 15 premiers paramètres, 15 alphanumériques et 15 numériques, il est possible d’ajouter les autres paramètres via l’éditeur de masque. Dans l’exemple, 3 paramètres numériques et 6 paramètres alphanumériques. Cette liste alimente la table PARACALC.
Règle de contrôle : Code et libellé de la règle de calcul utilisée pour le contrôle de la saisie. Il n’est pas obligatoire de définir de règle de contrôle. La règle est une règle de calcul, elle est appelée, lors de l’exécution, à la validation des paramètres par l’utilisateur (bouton OK). Elle permet de vérifier, par exemple, que l’utilisateur a bien renseigné des valeurs autorisées.
Attention : Ne pas renseigner la règle de contrôle tant que la règle de calcul n’est pas au point, car l’action sur le bouton OK du configurateur ne pourra pas valider l’étape de saisie, le configurateur restera ouvert en mode modale sans fermeture possible.
La règle de calcul de contrôle doit retourner une valeur vraie ou fausse, c’est-à-dire 1 ou 0.
Si la valeur de retour est vraie, l’application continue, en revanche, si la valeur est fausse, l’utilisateur doit renseigner à nouveau les paramètres jusqu'à ce qu’ils soient corrects.
La règle de calcul de contrôle doit donc, en général, être construite sous la forme :
Si <contrôle de validité des paramètres>
Alors return 1
Sinon return 0
L’instruction « return » (en minuscules) permet à la règle de calcul de retourner une valeur à l’application.
Si la valeur retournée est 1, la saisie est validée et le traitement de configuration pourra continuer.
Le bouton ‘Import’ permet d’importer une règle de calcul utilisée pour le contrôle ou de consulter la règle de contrôle.
Remarque : Les contrôles de saisie peuvent aussi être paramétrés dans le masque du configurateur, sans passer par une règne de contrôle ou en complément.
Masque : Nom du masque à utiliser lors de l’exécution du configurateur. Cela permet de définir un masque de paramètres personnalisé par liste de fabrication configurée. Un masque personnalisé permet, par exemple, d’intégrer des listages de recherche sur les paramètres, évitant ainsi des saisies à l’utilisateur. Des contrôles de cohérence de valeurs peuvent également être directement intégrés dans le masque en paramétrage. Si la zone n’est pas alimentée, c’est le masque standard LFP_M02 qui est utilisé.
Il existe un masque nommé BUR_PAR dans le répertoire des masques standards, c’est un masque simple utilisable comme exemple pour le bureau de notre exemple..
Dans le masque des paramètres de la liste de fabrication, le masque est associé.
Selon votre métier, vous pouvez créer le masque de toute pièce, en vous appuyant sur le masque exemple que vous pouvez éditer.
Les champs de saisie des valeurs de paramètres pointent sur les données de la table PARACALC.
Les Libellés sont les zones LibParaAlpha1 à LibParaAlpha30 pour les zones alphanumériques.
Les Valeurs sont les zones ValParaAlpha1 à ValParaAlpha30 pour les zones alphanumériques.
Les Libellés sont les zones LibParaNum1 à LibParaNum30 pour les zones numériques.
Les Valeurs sont les zones ValParaNum1 à ValParaNum30 pour les zones numériques.
L’édition du masque dans l’éditeur de masque, permet de voir comment il a été construit.
Dans l’exemple ci-dessous, une réalisation pour le métier de Ressortiers.
Tableau des performances appelé par un bouton.
2.3. Paramétrage du corps de la liste de fabrication
Le paramétrage du corps consiste à définir, les lignes de phase de la liste de fabrication configurée sur lesquelles le configurateur doit avoir une action.
Soit pour alimenter des valeurs calculées par la règle de calcul associée à la ligne de la phase (quantité, temps…).
Et/ou soit pour remplacer un code rubrique par un autre (Variante).
Soit pour supprimer une phase de fabrication non retenue (Option)
Chaque ligne de phase concernée doit être associée à la règle de calcul qui doit la mettre à jour ou là supprimer suivant la valeur de certains paramètres saisis dans le configurateur.
En création / modification, le bouton ‘ ’ de ‘Règle de calcul’ permet d’importer la règle de calcul à utiliser sur la ligne.
Il faut donc définir les règles de calcul proprement dites. Ces règles de calcul s’appliquent lors de la génération de la liste de fabrication de lancement ou de devis.
3. Les règles de calcul
Les règles de calcul permettent de créer des formules de calcul, qui pour certaines, sont exécutées si elles existent en complément des traitements standards grâce à des points d’entrées disponibles dans certaines applications de l’ERP. Les fonctions de paramétrage de l’ERP sont utilisables.
A savoir :
Certaines fonctions de paramétrage sont dédiées au contexte de la saisie manuelle. Par exemple, la fonction de paramétrage « SMC() » (SilModifierChamp()) est une fonction utilisable dans le cadre du déclenchement d’un évènement en saisie manuelle pour alimenter la valeur d’un champ. Dans une règle de calcul utilisable dans des points d’entrées de l’ERP, on utilisera « Champ= Valeur » car la règle alimente les zones dans le contexte du code informatique et non pas de la saisie via une IHM.
Les fonctions de paramétrage sont détaillées dans la documentation relative à l’éditeur de masque. Lire 10. Fonctions évoluées de paramétrage de l'ERP SILOG - U2 - ERP Silog
Les règles de calcul sont chargées lors du démarrage de l’ERP Silog. Si vous souhaitez tester une nouvelle règle ou une modification, il faut faire le test sur une nouvelle session de l’ERP Silog, ou alors fermer et relancer l’ERP Silog.
Les règles de calcul peuvent être appelées :
à partir des masques de l’ERP, paramétrage (fonctions : SilExecuterRegle) ;
dans les listes de fabrication configurées (voir paragraphe précédent);
dans la cotation des fournisseurs (Voir « M5A2_Calcul des cotations fournisseurs ».
Pour exécuter du code personnalisé dans des points d’entrée de certaines applications de l’ERP (Réservé aux consultants).
Depuis la version 2023.2 , une seule application est accessible depuis le menu. Il s’agit d’une nouvelle application « Règle de calcul ». Les anciennes applications « Règles de calcul » et « Editeur de règles de calcul » ne sont plus, ni maintenues ni documentées. Il n’est plus possible de les utiliser.
Pour lancer l’application, sélectionner « Règle de calcul » dans le menu de l’ERP
3.1. Application ‘Règles de calcul’
3.1.1. Le masque des clés et l’onglet « Général »
Code : Code de la règle de calcul
Cartouche ‘Description’ : 5 lignes de libellé de la règle de calcul.
Cartouche ‘Paramètres’ : Le cartouche « Paramètres » permet de définir l’utilisation des paramètres dans les règles de calcul. Le transfert de paramètre dans une règle de calcul (Appel) ne peut s’effectuer qu’à partir d’une liste de fabrication configurée. Il n’est pas possible de transmettre des paramètres à une règle de calcul lorsqu’elle est appelée à partir d’un masque de l’ERP Silog.
Appel : Permet de définir les paramètres transmis à l’appel de la règle de calcul. Pour transmettre les paramètres d’une liste de fabrication configurée à une règle de calcul, saisir « [p= ?] ». Il n’est pas nécessaire d’indiquer le nom des paramètres.
Local : Permet de définir un paramètre en local à la règle de calcul. L’utilisateur peut définir en local un paramètre sous la forme [p=PARAM].
Ce paramètre peut ensuite être utilisé dans la règle de calcul.
Exemple :
Si <condition> Alors [p.PARAM]=f00710(03) ! affectation de l’en-cours maximum du client à [p.PARAM] Sinon [p.PARAM]=f00710(12) ! affectation de l’en-cours actuel du client à [p.PARAM]
Si cette règle de calcul appelle une seconde règle de calcul (fonctions SERI, SERA, SERN), le paramètre [p.PARAM] peut être transmis à celle-ci. Sur la seconde règle de calcul, le paramètre [p.PARAM] doit donc être déclaré en appel.
Cartouches ‘Condition (Si) / Alors / Sinon’ : Ils permettent de renseigner l’algorithme de la règle de calcul en cours.
Si <condition> Alors <instructions> Sinon <instructions>
Il ne faut pas saisir dans les différentes zones, les instructions de paramétrage [SI],[FINSI],[ALORS], [FINALORS], [SINON], [FINSINON].
A savoir :
Lorsque l'on utilise les fonctions de paramétrage d’exécution d’une règle de calcul « SERA » ou « SERN », il faut terminer la règle de calcul par l'instruction « return » (en minuscules) suivi de la valeur à retourner.
Exemples : « return 1 » ou « return vu$(1) ».
Lors de l'appel de plusieurs règles de calcul 'en cascade', l'empilement de règles de calcul successives est limité à 25 niveaux.
3.1.2. Les autres fonctionnalités
3.1.2.1. L’onglet “Champs des tables” du masque des clés
L’onglet « Champs des tables » du masque des clés permet de lister les champs de la table sélectionnée dans la zone « Table ».
Il est possible de copier le code v5 ou le nom du champ désiré via le menu contextuel du listage et le coller à l’endroit désiré de la règle de calcul.
A savoir :
La règle est plus compréhensible avec les noms des champs des tables plutôt que les codes v5. Cependant, si la règle de calcul ne fonctionne pas avec les noms des champs, il faut essayer avec les codes v5 avant de chercher une autre cause possible car certaines tables comme par exemple PARACALC ne permettent pas l’interprétation des noms des champs dans une règle de calcul.
3.1.2.2. L’onglet “Paramètres” du masque des clés
L’onglet « Paramétre » permet d’accéder à la liste des paramètres alpha-numériques et numériques des diférentes listes de fabrication configurées. Il suffit de sélectionner le code liste de paramètre de la liste de fabrication configurée.
La liste des paramètres (table PARACALC) d’une liste de fabrication configurée est codifiée « _ » suivi du code liste de fabrication configurée.
Dans l’exemple ci-dessous, le code de la liste de paramètres configurés « _BU » correspond à la liste de fabrication configurée « BU ».
La saisie des valeurs des paramètres est validée par une règle de calcul « CTRL_BUREAU », c’est ce que l’on voit dans la liste déroulante « Liste configurée » lorsqu’une règle de calcul valide la saisie des paramètres (Saisie validée par la règle :…).
Deux onglets distincts permettent d’accéder à la liste des paramètres alphanumériques et numériques.
Rappel :
Il s’agit des paramètres créés dans la liste de fabrication configurée « BU », de notre exemple.
Comme pour les champs, il est possible de copier le nom des paramètres désiré via le menu contextuel du listage et le coller à l’endroit désiré de la règle de calcul.
3.1.2.3. L’onglet “Valide” du masque des clés
L’onglet « Valide » permet de visualiser, quelles sont les listes de paramètres configurés que la règle de calcul en cours permet de valider en saisie.
Exemple :
Par exemple, la règle de calcul en cours « CTRL_BUREAU » valide la saisie des valeurs de la liste des paramètres « _BU » (Liste de fabrication configurée « BU »).
C’est la règle optionnelle que l’on peut saisir dans la liste de fabrication configurée.
Rappel :
La règle de contrôle est appelée, lors de l’exécution, à la validation des paramètres saisis par l’utilisateur. Elle permet de vérifier, par exemple, que l’utilisateur a bien renseigné des valeurs autorisées.
La règle de calcul doit retourner une valeur vraie ou fausse, c’est-à-dire 1 ou 0. Si la valeur de retour est vraie, l’application continue ; en revanche, si la valeur est fausse, l’utilisateur doit renseigner à nouveau les paramètres jusqu'à ce qu’ils soient corrects.
Les règles de contrôle doivent donc, en général, être construite sous la forme :
Si <contrôle de validité des paramètres>
Alors return 1
Sinon return 0
Une seule instruction « return » par zone de saisie doit être saisie.
L’instruction ‘return’ (en minuscules) permet à la règle de calcul de retourner une valeur à l’application.
En cas d’échec de validation, le masque du configurateur sera rechargé, les saisies sont perdues.
Nous voyons ici, que l’affection de la règle de calcul de contrôle peut aussi s’effectuer dans l’application « Règles de calcul » via le menu contextuel.
L’item « Associer Liste de fabrication configurée » permet l’association d’une ou plusieurs liste(s) de paramètres à la règle de calcul en cours de consultation.
Sélectionner la liste des paramètres concernés, puis saisir une description.
Le menu contextuel permet aussi de supprimer le lien entre une règle et une liste de paramètre sélectionnée.
Un message demande la confirmation.
3.1.3. Quelques exemples d’utilisation des règles dans le configurateur avec des composants en options
Prenons l’exemple de la règle « B_TIROIR ».
Dans le masque des clés, il est possible de consulter la liste des paramètres numériques et alphanumériques des listes de fabrication configurées,
Le paramètre d’appel « [p= ?] » indique l’utilisation des paramètres de la liste de fabrication configurée, information obligatoire dans le cas des listes de fabrication configurée.
Exemple 1 : Gérer une Option « BLOC_TIROIR »
On voit dans l’exemple, la réponse à la question « Faut-il un bloc tiroir ? ». Par défaut la réponse est « N » (Non).
Si [p.BLOC_TIROIR]="N" ! La condition indique que si la valeur du paramètre BLOC_TIROIR est « N » (Non). Alors i45102$="XXX" ! La zone i45102$ correspond au code de la phase de LDFC (corps de la liste de fabrication). ! La valeur « XXX » indique, que la phase qui porte cette règle de calcul doit être supprimée si la condition est vérifiée.
Dans la liste de fabrication configurée du bureau, la règle de calcul de suppression de la phase est associée à la phase de fabrication du BLOC TIROIR en option.
Exemple 2 : Suppression des composants devenus inutiles si l’option BLOC_TIROIR n’est pas retenue
Si [p.BLOC_TIROIR]="O" !La condition indique que si la valeur du paramètre BLOC_TIROIR est « O » (Oui). Alors f45110(19)=8 !La zone f45110(19) corresponds à la zone « QteOuTempsNecess » prend la valeur 8. Dans l’exemple il faut 8 vis pour fixer le bloc si le bloc tiroir est sélectionné dans le configurateur. Sinon i45102$="XXX" !Comme précédement, la zone i45102$ correspond au code de la phase. !La valeur « XXX » indique, que la phase qui porte cette règle de calcul doit être supprimée. Les vis de fixation du bloc sont inutiles.
Dans la liste de fabrication configurée du bureau, la règle “B_VIS” de calcul de suppression de la phase est associée au besoin des vis.
Validation des saisies : Création des lancements.
Cas 1 : Lors de la génération d’un lancement, si on sélectionne le bloc tiroir dans le configurateur :
Le lancement contiendra la phase de fabrication du BLOC_TIROIR et les vis de fixation du Bloc.
Cas 2 : Si on ne sélectionne pas le BLOC_TIROIR
Le lancement ne contiendra pas la phase de fabrication du BLOC_TIROIR. Il ne contiendra pas non plus la phase de consommation des vis de fixation du bloc.
3.1.4. Quelques exemples d’utilisation des règles dans le configurateur avec des mastères en variante
Le plateau est soit en acier soit en bois dans différentes essences possibles et épaisseurs.
La quantité dépend des caractéristiques dimensionnelles saisies dans le configurateur.
Pour la phase contenant le composant PLATEAU de notre exemple. La règle de calcul B_PLATEAU est associée.
Si [p.MATIERE]=".BO" !Si la valeur de du paramètre est p.MATIERE est « _BO », pour BOIS. Alors i45104$="PLA"+[p.ESSENCE]+STR$([p.EPAISSEUR_PLATEAU]) f45110(19)=[p.LONGUEUR(CM)]*[p.PROFONDEUR(CM)]/10000 !Alors le code rubrique est une concaténation des valeurs « PLA » + p.ESSENCE + p.EPAISSEUR_PLATEAU !Et la valeur de la quantité nécessaire est la surface du plateau en unité de stock. Sinon i45104$="PLATEAU" f45110(19)=[p.LONGUEUR(CM)]*[p.PROFONDEUR(CM)]/10000 !Sinon, le code rubrique est « PLATEAU » !Et la valeur de la quantité nécessaire est la surface du plateau en unité de stock.
3.1.5. Incidence des choix variantes et options sur les temps de production
La présence du BLOC-TIROIR induit une durée de montage plus importante.
Pour la phase contenant le poste 00800 Montage. La règle de calcul B_MONTAGE est associée.
Si [p.BLOC_TIROIR]="N" !Si le BLOC_TIROIR n’est pas retenu. Alors f45110(19)=1 !Alors le temps de montage est 1 h. Sinon f45110(19)=1.5 !Sinon le temps de montage est 1.5 h.