Documentation SDK
Documentation SDK
Documentation SDK
Documentation Sage.
Toute utilisation, à quelque titre que ce soit, non autorisée dans le cadre de la convention de licence, est strictement
interdite sous peine de sanctions pénales (Loi du 3 Juillet 1985, Art. 46).
Evolution
La documentation correspond à la version référencée. Entre deux versions, des mises à jour du logiciel peuvent être
opérées sans modification de la documentation. Toutefois, un additif peut être joint à la documentation existante pour
présenter les modifications et améliorations apportées à ces mises à jour.
Les noms de produits ou de sociétés, toute image, logo ou représentation visuelle mentionnés dans ce document ne
sont utilisés que dans un but d’identification et peuvent constituer des marques déposées par leurs propriétaires
respectifs.
SAGE SAS - Société par Actions Simplifiée au capital social de 500.000 euros
Siège social : le Colisée II, 10 rue Fructidor 75834 Paris Cedex 17
R.C.S. Paris 313 966 129 - Code APE 5829C.
La société Sage est locataire gérante des sociétés Sage FDC et Ciel.
Tél. : 0810 30 30 30
Coût d’un appel local depuis un poste fixe
© 2013 Sage 2
Table des Matières
1. Présentation générale____________________________________________ 6
1.1. Généralités .......................................................................... 6
1.1.1. Principe ......................................................................................... 6
1.1.2. Lexique ......................................................................................... 6
1.1.3. Convention ..................................................................................... 7
1.1. Types de programme ................................................................ 8
1.1.4. Scénario d’atelier ............................................................................. 8
1.1.5. Périodique ...................................................................................... 9
© 2013 Sage 3
3.5.4. RemoveFromCollection ...................................................................... 50
3.6. Général : Gestion des erreurs ..................................................... 52
3.6.1. TryCatch ....................................................................................... 52
3.6.2. Throw .......................................................................................... 53
3.6.3. Rethrow ........................................................................................ 54
3.7. Atelier : Affichages ................................................................ 55
3.7.1. Texte ........................................................................................... 55
3.8. Atelier : Saisies génériques ........................................................ 57
3.8.1. Chaine.......................................................................................... 59
3.8.2. Code ............................................................................................ 61
3.8.3. Date ............................................................................................ 64
3.8.4. Enumérés ...................................................................................... 66
3.8.5. Grille ........................................................................................... 69
3.8.6. Numérique..................................................................................... 71
3.8.7. Oui/Non ........................................................................................ 73
3.9. Atelier : Saisies pré-paramétrées ................................................. 75
3.9.1. Aléa ............................................................................................ 76
3.9.2. Article.......................................................................................... 76
3.9.3. Client........................................................................................... 77
3.9.4. Dépôt........................................................................................... 77
3.9.5. Emplacement.................................................................................. 78
3.9.6. Fournisseur .................................................................................... 79
3.9.7. Machine ........................................................................................ 79
3.9.8. OF............................................................................................... 80
3.9.9. OF/OP .......................................................................................... 80
3.9.10. Outillage....................................................................................... 81
3.9.11. Personnel ...................................................................................... 81
3.9.12. Rebut ........................................................................................... 82
3.10. Atelier : Utilitaires................................................................. 83
3.10.1. Contrôle saisie ................................................................................ 83
3.10.2. Erreur saisie................................................................................... 84
3.10.3. Message ........................................................................................ 85
3.11. Base de données : Métiers ......................................................... 86
3.11.1. Création OF ................................................................................... 86
3.11.2. Archivage encours machine ................................................................. 89
3.11.3. Archivage encours personnel ............................................................... 90
3.11.4. Commentaire opération ..................................................................... 91
3.11.5. Création archive .............................................................................. 92
3.11.6. Création encours ............................................................................. 95
3.11.7. Mise à jour des quantités ................................................................... 97
3.11.8. Statut OF .....................................................................................100
3.11.9. Statut OP .....................................................................................101
3.11.10.Suppression encours machine ..............................................................102
3.11.11.Suppression encours personnel ............................................................103
3.11.12.Synchro encours machine...................................................................104
3.11.13.Synchro encours personnel .................................................................105
© 2013 Sage 4
3.11.14.Création dossier qualité ....................................................................106
3.11.15.Ajout mouvement stock ....................................................................108
3.11.16.Consommation automatique ...............................................................111
3.11.17.Création virement dépôt ...................................................................114
3.11.18.Recherche zone tampon ....................................................................116
3.11.19.Recherche information article.............................................................117
3.12. Base de données : Requêtes ..................................................... 118
3.12.1. Lecture........................................................................................118
3.12.2. Ecriture .......................................................................................121
3.13. Utilitaires : Divers ............................................................... 124
3.13.1. Décodage EAN 128 ...........................................................................124
3.13.2. Envoi mail ....................................................................................128
3.13.3. Imprimer édition ............................................................................129
3.13.4. Imprimer étiquette .........................................................................130
3.14. Utilitaires : Fichiers.............................................................. 131
3.14.1. Ecriture .......................................................................................131
3.14.2. Lecture........................................................................................132
© 2013 Sage 5
Documentation Atelier de développement
1. Présentation générale
1.1. Généralités
L’atelier de développement ou SDK (Software Development Kit) est un module qui permet de créer ses
propres programmes intégrés à l’application Sage100 Gestion de Production. Il est avant tout dédié à la
construction de scénario d’acquisition en atelier car c’est un domaine suffisamment proche du terrain pour
nécessité des paramétrages avancés du module standard. Cependant, bénéficiant des fonctionnalités
intégrées du Framework, il peut aussi être utilisé pour des programmes en dehors du périmètre de l’atelier
(exporter des données vers un autre logiciel, valider un processus qualité, créer des ordres de fabrication,
etc.).
1.1.1. Principe
Le principe de fonctionnement de ces applications consiste en un enchainement de taches permettant
d’effectuer des actions. L’enchainement des actions est construit graphiquement sous la forme d’un
diagramme.
1.1.2. Lexique
On retrouve ici l’ensemble des termes spécifiques à l’atelier de développement qui sont utilisés dans
l’interface graphique et dans la suite de la documentation.
• Workflow/Flux : C’est un programme représentant une suite de taches ou d’opérations (activités)
permettant de décrire un processus. Chaque processus (un scénario par exemple) peut ensuite être
exécuté dans son environnement de production (à partir du module atelier par exemple).
• Activité : Les activités sont l’ensemble des tâches/opérations constituant un workflow. Elles
peuvent-être de différentes natures (une zone d’affichage, une zone de saisie ou une décision).
© 2013 Sage 6
Documentation Atelier de développement
1.1.3. Convention
Lors de paramétrage sur l’application Sage100 Gestion de production, certaines règles doivent-être
respectées pour garantir le bon fonctionnement des paramétrages lors des montées de versions :
• Il est interdit de modifier un trigger, une fonction, une procédure ou une vue standard. Il est
demandé de créer une nouvelle instance d’une vue ou d’un trigger (pour le trigger, désactiver la
version standard).
• Il est interdit de rajouter manuellement des champs dans les tables standards. Il existe un
utilitaire permettant de rajouter dynamiquement des champs dans la plupart des tables de la base
de données.
• Les nouvelles tables « spécifiques » doivent être préfixées par « TS_ » pour éviter les conflits
potentiels avec de futures tables.
• Les vues, procédure, fonctions, trigger doivent être préfixés par « SPE_ » pour éviter les conflits de
nommage futurs.
© 2013 Sage 7
Documentation Atelier de développement
Exemple 1 :
On retrouve le préfixe « WF_ » dans le code du scénario et le nom du workflow à exécuter dans la zone
« Workflow ».
© 2013 Sage 8
Documentation Atelier de développement
Les workflows de type « atelier » peuvent également être exécutés en dehors du contexte du module
atelier et ne nécessite donc pas de licence d’acquisition. Cette possibilité permet de classer dans un autre
menu des programmes sans rapport directs avec le module atelier ; comme la création d’un ordre de
fabrication avec des paramètres spécifiques. L’accès au programme se fera alors par le menu
« complément » de Sage100 Gestion de Production.
Exemple 2 :
Il est possible d’exécuter un workflow en fin de scénario standard dans la rubrique « workflow sortie ». Le
contexte d’exécution du scénario est alors fourni au workflow sous la forme d’un argument.
1.1.5. Périodique
Les workflows de type « périodique » ne disposent pas d’interface graphique et sont dédiés à s’exécuter en
tâche de fond sur le serveur, au même titre que les autres périodiques (importation des données
techniques, remontée des mouvements de stock, création des commandes d’achats du CBN, etc.).
Par opposition au type « Atelier » où il est possible de chainer les activités comme on le souhaite, ici, les
activités s’enchainent les unes après les autres sans possibilité de retour en arrière. Il s’agit ici d’un mode
séquence où chaque activité est exécutée séquentiellement.
© 2013 Sage 9
Documentation Atelier de développement
Programme à exécuter
PER_WORKFLOW.EXE
Arguments
Code du workflow
Le code de la configuration doit-être identique au code du workflow. Il doit contenir une option
« CODE_SOCIETE » pour permettre de renseigner « W.CODE_SOCIETE » dans le programme du workflow.
© 2013 Sage 10
Documentation Atelier de développement
L’ensemble des informations sur les workflows sont stockés dans la base de données
(table : T_WORKFLOW). Il n’y a donc que la base de données à sauvegarder pour
enregistrer l’ensemble des workflow mis à disposition du client.
L’utilisation d’un workflow sur un poste client ne nécessite aucun déploiement puisque
l’ensemble des workflows sont localisés sur le serveur SQL.
© 2013 Sage 11
Documentation Atelier de développement
Il est possible de créer autant de workflow que nécessaire. Il est d’ailleurs préconisé de créer plusieurs
programmes simples qu’un seul programme complexe, aussi bien pour le confort de l’utilisateur final que
pour la maintenabilité de l’application.
Code workflow
Identifiant alphanumérique sur 50 caractères
Type
Type de workflow
• Atelier : pour un usage dans le module atelier ou en tant que complément
• Périodique : pour un usage en tant que service
© 2013 Sage 12
Documentation Atelier de développement
1.1. Editeur
La construction de l’organigramme du workflow se fait dans l’onglet éditeur. Il suffit de déposer les
composants de la boite à outils dans le schéma, de remplir les propriétés et de définir les enchainements.
(2) Editeur
Concepteur graphique du workflow
(3) Variables
Déclaration des variables, type de données et portée.
(5) Espion
Fenêtre d’espion permettant de consulter le contenu des variables pendant l’exécution.
L’icône permet de masquer les fenêtres afin de donner plus de place à l’éditeur. Lorsque que l’icône est
en position horizontale , il suffit de passer le curseur sur le titre de la fenêtre pour la faire apparaître
entièrement.
© 2013 Sage 13
Documentation Atelier de développement
2.1.3.1. Général
Dans ce groupe, on trouve les activités dédiées au développement de l’organigramme. On y retrouve
notamment des possibilités de manipulation des données (assigner des valeurs à une variable, création de
collection), de création de boucles (for each, while) ou de prise de décisions (If, Switch).
2.1.3.2. Atelier
Dans ce groupe, on trouve les activités permettant d’afficher et récupérer des informations. Il s’agit
essentiellement de fenêtre de saisies d’informations.
Les activités de type « affichage » ne sont pas disponibles dans les workflows de type
« périodique ».
2.1.3.4. Utilitaires
Dans ce groupe, on trouve des activités diverses comme l’envoi d’un mail ou le décodage d’un EAN 128.
© 2013 Sage 14
Documentation Atelier de développement
2.1.4. Editeur
L’éditeur est situé dans la partie centrale de l’environnement de développement et permet de construire
l’organigramme du workflow. On ajoute un élément de la boite à outils dans l’éditeur par « glisser-
déposer ».
Lorsqu’il s’agit d’une activité de type « saisie », il est nécessaire de donner un nom à la variable qui va
contenir le résultat de la saisie.
Si une icône rouge apparaît, cela signifie qu’il y a une erreur de compilation.
Ici, l’erreur vient du fait qu’il n’y pas de liaison entre le point de départ « Start » et la 1ere activité
« Machine ». Pour corriger l’erreur, il suffit de tracer la liaison entre les 2 activités à l’aide de la souris, en
partant de la boite de départ vers la boite de destination.
Il suffit ensuite de double cliquer dans l’activité pour entrer dans l’assistant de configuration. Chaque
propriété d’une activité est également disponible dans la fenêtre de propriété (sans entrer dans l’assistant
de configuration).
© 2013 Sage 15
Documentation Atelier de développement
© 2013 Sage 16
Documentation Atelier de développement
2.1.5. Variables
L’onglet « Variables » permet la création de variable. Les variables permettent de stocker des données
pendant l’exécution du workflow.
Nom
Nom de la variable. Ce nom permet d’accéder à la variable dans les activités du workflow.
Type de variable
Type des données stockées dans la variable
Portée
Indique à quel niveau la variable est accessible. Cela permet de restreindre l’accès à une variable
uniquement dans une activité par exemple.
Par défaut
Valeur par défaut de la variable
2.1.6. Propriétés
La fenêtre « Propriété » reprend l’ensemble des propriétés paramétrable dans l’assistant de configuration.
© 2013 Sage 17
Documentation Atelier de développement
2.1.7. Arguments
Lorsqu’une fin de scénario atelier chaine sur un workflow, il fournit sont contexte d’exécution dans
l’argument « ContexteScenario » de type « SqlRecordCollection » et le code du scénario d’origine dans
« CodeScenario » de type « String ».
© 2013 Sage 18
Documentation Atelier de développement
© 2013 Sage 19
Documentation Atelier de développement
© 2013 Sage 20
Documentation Atelier de développement
© 2013 Sage 21
Documentation Atelier de développement
© 2013 Sage 22
Documentation Atelier de développement
© 2013 Sage 23
Documentation Atelier de développement
© 2013 Sage 24
Documentation Atelier de développement
© 2013 Sage 25
Documentation Atelier de développement
© 2013 Sage 26
Documentation Atelier de développement
© 2013 Sage 27
Documentation Atelier de développement
© 2013 Sage 28
Documentation Atelier de développement
© 2013 Sage 29
Documentation Atelier de développement
© 2013 Sage 30
Documentation Atelier de développement
© 2013 Sage 31
Documentation Atelier de développement
2.1.8. Espion
Pour debugger le workflow, vous avez à votre disposition une fenêtre d’espion qui permet de consulter le
contenu des variables en cours d’exécution.
L’exécution du programme ne peut être interrompue que dans l’environnement de développement à l’aide
d’un point d’arrêt. Attention, un point d’arrêt sur une activité de type affichage ne se fait pas avant
l’exécution de la fenêtre mais après son affichage. Il n’est donc plus possible de consulter le contenu des
variables de type structure à l’aide de la loupe (variables contenant le résultat d’une requête, une
collection par exemple).
Pour les variables de type structure, il suffit de cliquer sur la loupe pour afficher le contenu de la variable.
© 2013 Sage 32
Documentation Atelier de développement
3. Boîte à outil
3.1.1. Do While
L’activité DoWhile exécute l’activité contenue dans sa propriété Body au moins une fois, jusqu’à ce qu’une
condition spécifiée ait la valeur false. Si vous devez exécuter zéro ou plusieurs fois l’activité contenue dans
le corps d’une boucle, utilisez plutôt l’activité While. Cette boucle peut être utilisée pour remplacer la
boucle de type « For... Next » qui n’existe pas dans le workflow.
Body
Activité à exécuter tant que la condition reste à True. Pour ajouter l’activité Body, déplacez une activité
de la boite à outils vers la zone Body dans le concepteur d’activité DoWhile avec l’indication « Déposer
l’activité ici ».
Condition
C’est la condition à évaluer après chaque itération de la boucle. Pour définir la propriété Condition, tapez
une expression Visual Basic dans la zone Condition ou dans la fenêtre des propriétés.
© 2013 Sage 33
Documentation Atelier de développement
Values
Collection d’éléments à itérer. Pour définir la propriété Value, tapez une expression Visual Basic dans la
zone Valeurs dans la fenêtre « Propriétés ». Ici, on balaye chaque enregistrement de la variable
« ListeMachine ». Cette variable est issue d’une requête. Le type est donc [SqlRecordCollection]. Il est
nécessaire de préciser le type de la variable dans la fenêtre « Propriétés ».
TypeArgument
Type des éléments de la collection Values. Par défaut, TypeArgument a la valeur Int32.
© 2013 Sage 34
Documentation Atelier de développement
3.1.3. If
L’activité If évalue une condition et exécute une activité en fonction des résultats de cette évaluation. Une
activité If peut être imbriquée dans une activité Sequence par exemple. Si vous utilisez une activité
FlowChart, il est conseillé d’utiliser plutôt une activité FlowDecision.
Condition
Condition qui détermine l’activité enfant à exécuter. Pour définir la propriété Condition, tapez une
expression Visual Basic dans la zone Condition sur le concepteur d’activités If ou dans la fenêtre
« Propriétés ».
Then
Activité à exécuter si la propriété Condition à la valeur True. Pour ajouter une activité qui est exécutée
dans la branche Then, déplacez une activité de la « boite à outils ». Dans notre exemple, la variable
[SensMvt] contient bien la valeur « E ».
Else
Activité à exécuter si la propriété Condition à la valeur False. Pour ajouter une activité qui est exécutée
dans la branche Else, déplacez une activité de la « boite à outils ». Dans notre exemple, la variable
[SensMvt] est différente de la valeur « E ».
© 2013 Sage 35
Documentation Atelier de développement
3.1.4. Sequence
L’activité Sequence contient une collection ordonnée d’activités enfants qu’elle exécute dans l’ordre.
Cette activité peut être utilisée pour stocker un ensemble de requête de mise à jour en fin de programme
par exemple.
Pour ajouter une activité Sequence, faites glisser une activité de la boite à outils dans le concepteur
d’activités Sequence. Pour ajouter une activité enfant à cette activité Sequence, faites glisser de la boite à
outils une autre activité et déposez là sur le triangle dans la zone avec le texte d’indication « Déposer
l’activité ici ».
Dans cet exemple, la séquence exécute la 1èr e activité « Création du pointage ». A la fin de l’exécution de
cette activité, on exécutera sans condition l’activité suivante « Mise à jour opération ».
© 2013 Sage 36
Documentation Atelier de développement
3.1.5. Switch
L’activité Switch <T> évalue une expression spécifiée et exécute l’activité à partir d’une collection
d’activités dont la clé associée correspond à la valeur obtenue de l’évaluation.
L’activité Switch<T> contient une propriété Expression et un dictionnaire de propriétés Cases. Chaque cas
dans le dictionnaire est composé d’une paire qui contient un paramètre Key et une activité qui lui sert
paramètre Value. L’activité Switch<T> évalue la propriété Expression et la compare à chacune des clés. Si
une concordance est trouvée, l’activité correspondante est exécutée. Une seule correspondance est
possible, car les clés du dictionnaire doivent être uniques par rapport au type d’égalité défini par le
comparateur d’égalité du dictionnaire. Si aucune correspondance n’est trouvée, l’activité Default est
exécutée.
Une fois l’activité déposée dans l’éditeur, il faut sélectionner les types pour permettre de spécifier le type
T générique. La valeur par défaut est Int32. Une fois que le type générique a été sélectionné, l’activité
apparait dans l’éditeur et il n’est plus possible de modifier le type.
Expression
Spécifie l’expression à comparer aux clés dans la collection de cas pour déterminer le cas à exécuter.
Default
Spécifie l’activité exécutée si aucune concordance n’est trouvée.
Cases
Spécifie les cas à évaluer. Pour ajouter un cas, cliquer sur le bouton « Ajouter un nouveau cas » en bas du
concepteur. Le bouton se transforme en zone de texte (ou en zone de liste déroulante si le type générique
est String ou Enum). Après l’ajout d’une clé dans la zone Valeur associée au cas, la zone de cas se
développe et une activité peut être déposée à partir de la boite à outils.
© 2013 Sage 37
Documentation Atelier de développement
3.1.6. While
L’activité While exécute l’activité contenue dans sa propriété Body lorsque la propriété Condition
spécifiée à la valeur True. L’activité contenue peut ne jamais s’exécuter si la condition est False dès la 1èr e
évaluation. Si vous voulez que l’activité contenue soit exécutée au moins une fois, utilisez l’activité
DoWhile à la place.
Body
Contient l’activité à exécuter tant que la propriété Condition à la valeur True.
Condition
Contient l’expression Visual Basic évaluée pour déterminer si l’activité dans la propriété Body sera
exécutée.
© 2013 Sage 38
Documentation Atelier de développement
3.2.1. FlowChart
L'activité Flowchart permet de créer des flux de travail qui définissent et gérent des contrôles de flux
complexes. C’est le flux automatiquement utilisé lors de la création d’un workflow de type « atelier ».
Flowchart spécifie une propriété startNode unique exécutée lorsque le flux de travail démarre et utilise
un réseau de propriété Nodes liées pour créer des boucles arbitraires ou détourner le flux d’exécution
ailleurs dans le flux de travail à un moment donné.
Le Flowchart peut être utilisé pour exécuter un workflow à l’intérieur d’un autre. Par exemple, l’opérateur
peut se voir proposer 2 scénarios différents en fonction d’une réponse.
Après avoir fait glisser différents concepteurs d'activités sur la zone de dessin de Concepteur de workflow,
les objets « Activité » qu'ils représentent peuvent être liés pour spécifier l'ordre d'exécution. Pour créer un
lien entre une activité source et une activité de destination, pointez la souris sur le concepteur de l'activité
source pour faire apparaître des poignées carrées sur chacun de ses côtés. Cliquez sur l'une des poignées
carrées et faites-la glisser, en maintenant le bouton de la souris enfoncé, vers l'une des poignées qui
s'affiche de manière similaire autour de l'activité de destination lorsque vous pointez dessus avec la souris.
Relâchez le bouton de la souris, un lien est créé entre ces deux activités, représenté par une flèche du
concepteur source au concepteur de destination.
© 2013 Sage 39
Documentation Atelier de développement
3.2.2. FlowSwitch
L’activité FlowSwitch<T> est une activité conditionnelle qui fournit la création de branches pour le flux de
contrôle selon un critère de correspondance lorsque plus de deux branches sont requises. Si la recherche de
branches requiert uniquement deux chemins d’accès, utilisez FlowDecision à la place.
L'activité FlowSwitch<T> contient une propriété Expression qui retourne une valeur de type T (spécifiée
par le paramètre générique) lorsqu'elle est évaluée. L'activité contient également un jeu de propriétés
Cases, qui spécifie un mappage unique, à partir des résultats possibles de cette évaluation, à un jeu
d'objets FlowNode. L'objet FlowNode exécuté est celui dont l'objet de type T correspond à la valeur de la
propriété Expression évaluée. Un cas Default peut être fourni (éventuellement) pour le cas dans lequel
aucune correspondance n'est obtenue.
Utilisez la fenêtre Sélectionner les types qui s'affiche pour spécifier le type (associé dans le code à
FlowSwitch(Of T) par son paramètre générique) obtenu de l'évaluation de la propriété Expression. Cette
procédure crée une activité FlowSwitch(Of T) étiquetée Switch dans l'activité Flowchart. Vous pouvez taper
la propriété Expression dans la zone Expression de la fenêtre Propriétés en cliquant à l'endroit où le texte
d'indication « Entrer une expression VB » apparaît.
Expression
Spécifie l’expression qui est évaluée pour déterminer le chemin d’exécution.
Cases
Spécifie la valeur qui détermine le choix d’une branche.
IsDefautCase
Spécifie le cas où l’évaluation ne correspond à aucune valeur Cases (cas par défaut).
© 2013 Sage 40
Documentation Atelier de développement
3.2.3. FlowDecision
Le nœud FlowDecision est un nœud conditionnel qui fournit une branche pour le flux de contrôle dans
l’une des deux alternatives suivant qu’une condition spécifiée est satisfaite ou non. Si le nœud requiert
plusieurs branches, utilisez FlowSwitch à la place.
Utilisez FlowDecision lorsque le flux peut faire l’objet d’une création de branche dans deux chemins
d’accès. Un nœud FlowDecision a une Condition et deux résultats True ou False. La condition est évaluée
et cette évaluation détermine l’activité suivante à traiter dans le Flowchart.
Condition
Entrer une expression Visual Basic qui détermine le chemin emprunté par le contrôle de flux.
TrueLabel
Texte qui apparaît sur le chemin d’accès True.
FalseLabel
Texte qui apparaît sur le chemin d’accès False.
© 2013 Sage 41
Documentation Atelier de développement
3.3.1. TerminateWorkflow
L’activité TerminateWorkflow termine l’exécution d’un workflow.
Exception
Exception à lever lorsque le workflow est terminé.
Reason
Raison qui explique pourquoi le workflow a été terminé.
© 2013 Sage 42
Documentation Atelier de développement
3.4.1. Assign
L’activité Assign affecte une valeur à une variable ou à un argument.
To
Variable ou argument auquel la propriété Value est affectée. Il doit s’agir d’un identificateur Visual Basic
valide.
Value
Valeur qui est affectée à la variable. Pour définir la propriété Value, tapez une expression Visual Basic dans
la zone Valeur.
© 2013 Sage 43
Documentation Atelier de développement
3.4.2. Delay
L’activité Delay retarde l’exécution d’un workflow pour une durée spécifiée.
Duration
Durée pendant laquelle le workflow est retardé. Tapez une valeur Timespan littérale au format 00:00:00 ou
une expression Visual Basic pour spécifier la durée.
© 2013 Sage 44
Documentation Atelier de développement
3.5.1. AddToCollection
L’activité AddToCollection permet d’ajouter un élément à une collection. L’argument de l’activité est par
défaut dans le type Int32. Vous pouvez, à partir de la fenêtre « Propriété », modifier ce type.
Collection
Collection à laquelle l’élément doit être ajouté. Cette collection est de type ICollection<TypeArgument>.
Item
Elément à ajouter à Collection<T>. Cet élément est de type T, qui est de type TypeArgument. Pour
spécifier l’élément, tapez une expression Visual Basic.
TypeArgument
Type T des éléments contenus dans la collection ICollection<T>. Par défaut, ce type a la valeur Int32. Pour
modifier ce type, modifiez la valeur de TypeArgument dans la liste déroulante de la fenêtre des propriétés.
© 2013 Sage 45
Documentation Atelier de développement
Exemple d’utilisation :
© 2013 Sage 46
Documentation Atelier de développement
3.5.2. ClearCollection
L’activité ClearCollection permet d’effacer tous les éléments d’une collection spécifiée.
Collection
*Spécifie la collection dont les éléments doivent être effacés. Cette collection est du type
ICollection<TypeArgument>. Pour spécifier la collection, tapez une expression Visual Basic dans la fenêtre
des propriétés.
TypeArgument
Spécifie le type T des éléments contenus dans l’objet ICollection<T>. Par défaut, ce type a la valeur Int32.
Pour modifier ce type, modifiez la valeur de TypeArgument dans la liste déroulante de la fenêtre des
propriétés.
© 2013 Sage 47
Documentation Atelier de développement
3.5.3. ExistsInCollection
L’activité ExistsInCollection permet de déterminer si un élément spécifié existe dans une collection
donnée.
Collection
Spécifie la collection dans laquelle l’élément doit être recherché. Cette collection est du type
ICollection<TypeArgument>. Pour spécifier la collection, tapez une expression Visual Basic dans la fenêtre
des propriétés.
© 2013 Sage 48
Documentation Atelier de développement
Item
Elément à rechercher dans Collection<T>. Cet élément est de type T, qui est de type TypeArgument. Pour
spécifier l’élément, tapez une expression Visual Basic.
Result
Valeur qui indique si l’élément spécifié existe dans la collection. Pour spécifier une variable à lier au
résultat, tapez une variable Visual Basic dans la fenêtre de propriété. La variable est de type Boolean.
TypeArgument
Spécifie le type T des éléments contenus dans l’objet ICollection<T>. Par défaut, ce type a la valeur Int32.
Pour modifier ce type, modifiez la valeur de TypeArgument dans la liste déroulante de la fenêtre des
propriétés.
© 2013 Sage 49
Documentation Atelier de développement
3.5.4. RemoveFromCollection
L’activité RemoveFromCollection supprime un élément spécifié dans une collection donnée.
Collection
Spécifie la collection dans laquelle l’élément doit être supprimé. Cette collection est du type
ICollection<TypeArgument>. Pour spécifier la collection, tapez une expression Visual Basic dans la fenêtre
des propriétés.
Item
Elément à supprimer de Collection<T>. Cet élément est de type T, qui est de type TypeArgument. Pour
spécifier l’élément, tapez une expression Visual Basic.
© 2013 Sage 50
Documentation Atelier de développement
Result
Valeur qui indique si l’élément spécifié a été supprimé dans la collection. Pour spécifier une variable à lier
au résultat, tapez une variable Visual Basic dans la fenêtre de propriété. La variable est de type Boolean.
TypeArgument
Spécifie le type T des éléments contenu dans l’objet ICollection<T>. Par défaut, ce type a la valeur Int32.
Pour modifier ce type, modifiez la valeur de TypeArgument dans la liste déroulante de la fenêtre des
propriétés.
© 2013 Sage 51
Documentation Atelier de développement
3.6.1. TryCatch
L'activité TryCatch contient une activité Try, une collection de Catch<TException> et une activité
Finally. Un objet Catch(Of TException) de type TException contient une propriété ExceptionType et une
propriété Action. Ensemble, ils permettent d'implémenter un mécanisme classique de gestion des erreurs
basé sur les exceptions. Une activité TryCatch essaie d'exécuter son activité Try. Si l'activité Try lève une
exception, l'activité TryCatch utilise sa collection Catch<TException> pour établir une correspondance
avec l'exception. S'il existe une correspondance, la propriété Action du Catch<TException> correspondant
est alors exécutée, en servant de logique de gestion des erreurs pour l'exception. Si les activités de la
section Try s'achèvent correctement ou les activités de Catches s'achèvent correctement, l'activité
TryCatch exécute son activité Finally.
Cliquez sur le bouton Développer dans le coin supérieur droit du concepteur TryCatch pour afficher les
zones Try, Catches et Finally dans la vue développée.
Pour ajouter un catch, cliquez sur le bouton Ajouter un nouveau catch dans le concepteur TryCatch. Le
bouton se transforme en zone de liste déroulante Type. Sélectionnez un type d'exception et appuyez sur
ENTRÉE pour ajouter le catch. Après l'ajout d'un élément Catch, la zone de catch se développe et une
activité peut y être déposée pour définir la logique d'exécution du catch.
Notez la présence d'une zone de texte à droite de la zone de catch développée. Vous pouvez nommer la
variable d'exception à l'aide de cette zone de texte. La variable d'exception peut être utilisée uniquement
pour les activités situées dans le même Catch.
Try
Première activité exécutée lorsque TryCatch s’exécute.
Catches
Collection d'éléments Catch à vérifier lorsque l'activité Try lève une exception. Vous devez au moins ajouter
une activité dans Catches ou une activité dans le bloc Finally.
Finally
Activité à exécuter lorsque l'exécution de Try et de toutes les activités nécessaires de la collection Catches
est terminée. Vous devez au moins ajouter une activité dans Catches ou une activité dans le bloc Finally.
© 2013 Sage 52
Documentation Atelier de développement
3.6.2. Throw
L’activité Throw lève une exception.
Exception
Exception à lever. Cette exception doit dériver de Exception. Pour spécifier l’exception, tapez une
expression Visual Basic dans la fenêtre des propriétés.
© 2013 Sage 53
Documentation Atelier de développement
3.6.3. Rethrow
L'activité Rethrow lève une exception précédemment levée. Cette activité ne peut être utilisée que dans
un gestionnaire Catch dans l'activité TryCatch.
© 2013 Sage 54
Documentation Atelier de développement
3.7.1. Texte
Cette activité permet d’ouvrir une fenêtre de type « MessageBox » pour afficher du texte dont le contenu
est paramétrable (titre, icone, lignes de textes et propriétés de la police de caractères).
Titre de la fenêtre
Texte qui sera affiché dans le titre de la fenêtre.
Icone
Image qui sera affichée dans la partie gauche de la fenêtre.
Lignes de texte
Il est possible d’afficher plusieurs lignes de texte (bouton « Ajouter une ligne »). Chaque ligne peut avoir
un style différent (couleur du texte, taille de la police, Gras et souligné.
© 2013 Sage 55
Documentation Atelier de développement
© 2013 Sage 56
Documentation Atelier de développement
Propriétés
L’ensemble des paramétrages d’une activité est disponible dans l’assistant de configuration (double clic sur
l’activité) mais également dans la fenêtre de propriété. Certaines propriétés ne sont disponibles que par la
fenêtre de propriétés comme les dimensions de la fenêtre.
© 2013 Sage 57
Documentation Atelier de développement
S’il n’a pas été saisi, il est possible de créer manuellement la variable dans l’onglet « variables » et ajouter
une variable (en précisant le type) puis de l’affecter à l’activité via la fenêtre de propriétés rubrique
« Résultat ».
© 2013 Sage 58
Documentation Atelier de développement
3.8.1. Chaine
Cette activité permet de saisir une chaine de caractères sans contrôle dans la base de données. Elle est plus
spécialement dédiée à une saisie d’un code qui ne comporte pas de tables pour contrôler sa validité ou pour
saisir un commentaire.
Titre de la fenêtre
Titre de la fenêtre de saisie.
Invite de saisie
Texte affiché dans la zone de saisie.
Complément
Texte complémentaire figurant au-dessus de la zone de saisie. Ce texte est destiné à donner une
explication plus précise sur la saisie attendue.
Longueur max
Permet de limiter la longueur de la saisie. Si la longueur contient 0 ou est vide, il n’y a pas de limitation.
Pour pourra inscrire le nombre 20 pour limiter la saisie à 20 caractères au plus.
Saisie obligatoire
Lorsque la saisie est obligatoire, l’utilisateur ne peut pas valider sa saisie avec une chaine vide.
© 2013 Sage 59
Documentation Atelier de développement
Multi ligne
Permet d’étendre la zone de saisie sur plusieurs lignes. Cette propriété est utile pour la saisie d’un
commentaire. Le retour à la ligne s’effectue avec la touche [Entrée].
© 2013 Sage 60
Documentation Atelier de développement
3.8.2. Code
Cette activité permet d’afficher une fenêtre permettant de saisir un code avec contrôle de la saisie à l’aide
d’une requête. La fenêtre peut afficher une liste pour faciliter la recherche du code.
La valeur de retour est une variable de type [SqlRecord] (1 ligne d’une table avec une colonne pour chaque
champ).
Titre de la fenêtre
Texte qui sera affiché dans le titre de la fenêtre.
Invite de la saisie
Texte qui sera affiché à gauche de la zone de saisie.
Complément
Texte complémentaire figurant au-dessus de la zone de saisie. Ce texte est destiné à donner une
explication plus précise sur la saisie attendue.
© 2013 Sage 61
Documentation Atelier de développement
Requête
Requête assistée ou avancée qui servira de base pour l’affichage de la liste. Les entêtes de colonnes ne sont
affichés que pour les listes d’au moins 3 colonnes. Dans ce cas, vous pouvez utiliser des alias pour donner un
titre « en clair » (SELECT CODE_ZONE AS CODE, LIBELLE_ZONE AS DESCRIPTION FROM T_MACHINE_ZONE …
par exemple).
Masque de saisie
Permet de formater la valeur de zone de saisie lorsqu’on clique sur une ligne de la liste. Par défaut, c’est la
1èr e colonne du SELECT qui alimente la zone de saisie.
Requête
Spécifier la requête « COUNT(*) » qui contrôlera dans la base de données l’existence du code saisie.
« VALEUR_SAISIE » correspond à la valeur qui a été saisi dans la fenêtre.
La requête peut être testée, il faut alors donner des valeurs d’essais pour les paramètres.
© 2013 Sage 62
Documentation Atelier de développement
Requête
Spécifier la requête qui alimentera la variable de retour. Il est possible de sélectionner tous les champs
(« * ») ou seulement les champs utiles.
Le résultat, sous la forme d’un SqlRecord, pourra être exploité de la façon suivante dans une fenêtre
d’affichage par exemple.
© 2013 Sage 63
Documentation Atelier de développement
3.8.3. Date
Cette activité permet de saisir une valeur de type date avec la possibilité de fixer une période de
validation.
Titre de la fenêtre
Texte qui sera affiché dans le titre de la fenêtre.
Invite de la saisie
Texte qui sera affiché à gauche de la zone de saisie.
Complément
Texte complémentaire figurant au-dessus de la zone de saisie. Ce texte est destiné à donner une
explication plus précise sur la saisie attendue.
Minimum
La borne minimale sera calculée en ajoutant la valeur à la date du jour. Pour autorisé une valeur dans le
passé, il faut saisir une valeur négative).
© 2013 Sage 64
Documentation Atelier de développement
Maximum
La borne maximale sera calculée en ajoutant la valeur à la date du jour (Attention à préciser une valeur
supérieur à la borne minimum sinon aucune valeur ne pourra être saisie).
Bornes
Permet de limiter la valeur saisie dans un intervalle minimum-maximum par rapport à deux dates. Les
bornes peuvent être des valeurs fixées en dur ou tout formules VB.NET (ex : w.SqlNow.AddMonths(6) prend
la date système et rajoute 6 mois). Si l’une des valeurs est omise, la borne « minimale » ou « maximale » ne
sera pas appliquer
Saisie obligatoire
Permet de forcer la saisie d’une date (une date vide ne sera pas autorisée).
Si la date du jour est le 7 janvier 2013, la période autorisée va du 2 janvier compris au 6 février compris.
© 2013 Sage 65
Documentation Atelier de développement
3.8.4. Enumérés
Cette activité permet de saisir une valeur texte dans une liste de choix. La liste est présentée pour être
saisissable avec les touches de fonctions, il est donc préférable d’utiliser cette activité pour les listes avec
au maximum 12 choix.
© 2013 Sage 66
Documentation Atelier de développement
Titre de la fenêtre
Texte qui sera affiché dans le titre de la fenêtre.
Type d’énumération
Liste personnalisée.
Titre de la fenêtre
Texte qui sera affiché dans le titre de la fenêtre.
Type d’énumération
Liste fixe.
© 2013 Sage 67
Documentation Atelier de développement
© 2013 Sage 68
Documentation Atelier de développement
3.8.5. Grille
Cette activité permet d’afficher une fenêtre contenant une grille alimentée par une requête pour laquelle
on aura défini une ou plusieurs colonnes modifiables.
Titre de la fenêtre
Texte qui sera affiché dans le titre de la fenêtre.
Requête
Requête assistée ou avancée qui alimentera le contenu de la grille. Attention, les points « . » ne sont pas
autorisés dans les alias de colonne.
Colonnes éditables
Liste des colonnes (position ordinal dans le SELECT en commençant à 0 pour la 1èr e colonne). Il faudra saisir
"2, 3" pour éditer le 3eme et le 4eme champ du SELECT.
© 2013 Sage 69
Documentation Atelier de développement
© 2013 Sage 70
Documentation Atelier de développement
3.8.6. Numérique
Cette activité permet de saisir une valeur de type numérique (entier ou décimale).
© 2013 Sage 71
Documentation Atelier de développement
Titre de la fenêtre
Texte qui sera affiché dans le titre de la fenêtre.
Invite de la saisie
Texte qui sera affiché à gauche de la zone de saisie.
Complément
Texte complémentaire figurant au-dessus de la zone de saisie. Ce texte est destiné à donner une
explication plus précise sur la saisie attendue
Bornes
Tolérance de saisie. La 1ere valeur représente la valeur minimale, la 2nde représente la valeur maximale.
Les valeurs des bornes sont comprises dans l’intervalle de tolérances.
© 2013 Sage 72
Documentation Atelier de développement
3.8.7. Oui/Non
Cette activité permet de poser une question dont la réponse est obligatoirement « OUI » ou « NON ». Le
contenu de la fenêtre est paramétrable (titre, icone, lignes de textes et propriétés de la police de
caractères).
Titre de la fenêtre
Texte qui sera affiché dans le titre de la fenêtre.
Icone
Image qui sera affichée dans la partie gauche de la fenêtre.
Lignes de texte
Il est possible d’afficher plusieurs lignes de texte (bouton « Ajouter une ligne »). Chaque ligne peut avoir
un style différent (couleur du texte, taille de la police, Gras et souligné.
© 2013 Sage 73
Documentation Atelier de développement
© 2013 Sage 74
Documentation Atelier de développement
La variable est de type [SqlRecord] dont son usage utilise la syntaxe suivante :
Syntaxe : NomDeLaVariable(Nom du Champ)
Exemple : ResSaisie("CODE_MACHINE")
© 2013 Sage 75
Documentation Atelier de développement
3.9.1. Aléa
Cette activité permet de saisir un code aléa. Récupération d’un enregistrement de T_ALEA à partir de
CODE_ALEA saisi.
3.9.2. Article
Cette activité permet de saisir une référence article. Récupération d’un enregistrement de T_ARTICLE à
partir de REF_ARTICLE saisi.
© 2013 Sage 76
Documentation Atelier de développement
3.9.3. Client
Cette activité permet de saisir un code client. Récupération d’un enregistrement de T_CLIENT à partir de
CODE_CLIENT saisi.
3.9.4. Dépôt
Cette activité permet de saisir un code dépôt. Récupération d’un enregistrement de T_DEPOT à partir de
CODE_DEPOT saisi.
© 2013 Sage 77
Documentation Atelier de développement
3.9.5. Emplacement
Cette activité permet de saisir un code emplacement. Récupération d’un enregistrement de
T_DEPOT_EMPLACEMENT à partir d’EMPLACEMENT/ID_EMPLACEMENT saisi. Au moment de déposer l’activité
sur l’éditeur, il faut choisir entre 2 types de saisie :
• Avec index : SAISIE par ID_EMPLACEMENT qui est une valeur unique quel que soit le dépôt.
• Sans index : Saisie par EMPLACEMENT et filtrer pour un dépôt (potentiellement, un code
emplacement peut-être commun à plusieurs dépôts).
© 2013 Sage 78
Documentation Atelier de développement
3.9.6. Fournisseur
Cette activité permet de saisir un code fournisseur. Récupération d’un enregistrement de T_FOURNISSEUR
à partir de CODE_FOURNISSEUR saisi.
3.9.7. Machine
Cette activité permet de saisir un code machine. Récupération d’un enregistrement de T_MACHINE à partir
de CODE_MACHINE saisi.
© 2013 Sage 79
Documentation Atelier de développement
3.9.8. OF
Cette activité permet de saisir un N° d’OF. Récupération d’un enregistrement de T_ORDREFAB à partir de
CODE_OF saisi.
3.9.9. OF/OP
Cette activité permet de saisir un code à barres OF/OP (CODE_OF*1000 + CODE_OP). Récupération d’un
enregistrement de T_ORDREFAB + T_OPERATION à partir de CODE_OF + CODE_OP saisi. On ne peut pas
saisir un ordre de fabrication/opération dont le statut de l’OF est « FINI » ou le statut de l’opération est
« FINI ».
© 2013 Sage 80
Documentation Atelier de développement
3.9.10. Outillage
Cette activité permet de saisir un code outillage. Récupération d’un enregistrement de T_OUTILLAGE à
partir de CODE_OUTILLAGE saisi.
3.9.11. Personnel
Cette activité permet de saisir un code personnel. Récupération d’un enregistrement de T_PERSONNEL à
partir de CODE_PERSONNEL saisi.
© 2013 Sage 81
Documentation Atelier de développement
3.9.12. Rebut
Cette activité permet de saisir un code rebut. Récupération d’un enregistrement de T_REBUT à partir de
CODE_REBUT saisi.
© 2013 Sage 82
Documentation Atelier de développement
Dans le groupe « Atelier, Utilitaires », on retrouve une activité de contrôle de la. Cette activité permet, à
la fin de la saisie, de faire un contrôle de cohérence de la saisie et de revenir à la fenêtre de saisie si le
contrôle n’est pas valide en conservant les valeurs déjà saisies (pour une saisie grille par exemple).
On reviendra alors systématiquement sur la fenêtre de saisie avec le message d’erreur tant qu’une quantité
reste inférieure ou égale à 0.
© 2013 Sage 83
Documentation Atelier de développement
Message
Message pour décrire l’erreur qui sera ensuite affiché sous la forme d’un MessageBox
© 2013 Sage 84
Documentation Atelier de développement
3.10.3. Message
Cette activité permet d’afficher un message dans la zone de notification de l’atelier.
Message
Message qui doit-être affiché dans le module atelier.
© 2013 Sage 85
Documentation Atelier de développement
3.11.1. Création OF
Cette activité permet de créer un ordre de fabrication avec les mêmes règles de fonctionnement (définies
dans les paramètres généraux) que la fenêtre des OF de l’application.
3.11.1.1. Résultat
Résultat de la création
valeur de type [Boolean] (True/False) indiquant si la création de l’OF à réussie
Code OF crée
valeur de type [int32] contenant le N° de l’OF généré. 0 si la création est en échec.
© 2013 Sage 86
Documentation Atelier de développement
N° d’OF (obligatoire)
N° de l’ordre de fabrication.
- 0 (zéro) : Le logiciel détermine automatiquement le N° d’OF. Le N° sera alors le plus grand
numéro existant + 1. Le N° d’OF utilisé sera retourné dans la valeur de retour « Code OF
crée ».
- Valeur spécifiée : C’est ce N° qui sera utilisé au lieu d’une numérotation automatique.
Attention, si le N° existe déjà, la création de l’OF se terminera en échec.
© 2013 Sage 87
Documentation Atelier de développement
Paramètres
Permet de rajouter une liste de champs de T_ORDREFAB qui seront alimenté au moment de la création de
l’entête d’ordre de fabrication.
© 2013 Sage 88
Documentation Atelier de développement
N° d’OF (optionnel)
N° d’OF (permet de limiter l’archivage à l’OF spécifié)
N° d’opération (optionnel)
N° d’opération (couplée au N° d’OF, permet de limiter l’archivage)
3.11.2.2. Fonctionnement
L’activité fait un INSERT INTO SELECT de T_EVT_MACHINE_EC vers T_EVT_MACHINE. Il doit forcément y
avoir un encours sinon aucun pointage d’archive ne sera créé.
• Si l’OF et l’opération sont différents de 0, une clause WHERE sur CODE_OF et CODE_OP est rajoutée.
• Si le code personnel est renseigné, une clause WHERE sur CODE_PERS est ajoutée.
© 2013 Sage 89
Documentation Atelier de développement
N° d’OF (optionnel)
N° d’OF (permet de limiter l’archivage à l’OF spécifié)
N° d’opération (optionnel)
N° d’opération (couplée au N° d’OF, permet de limiter l’archivage)
3.11.3.2. Fonctionnement
L’activité fait un INSERT INTO SELECT de T_EVT_PERSONNEL_EC vers T_EVT_PERSONNEL. Il doit forcément y
avoir un encours sinon aucun pointage d’archive ne sera créé.
• Si l’OF et l’opération sont différents de 0, une clause WHERE sur CODE_OF et CODE_OP est rajoutée.
• Si le code machine est renseigné, une clause WHERE sur CODE_MACHINE est ajoutée.
© 2013 Sage 90
Documentation Atelier de développement
N° d’OF (obligatoire)
N° d’ordre de fabrication.
N° d’opération (obligatoire)
N° d’opération de l’ordre de fabrication.
Commentaire (obligatoire)
Texte libre sans limitation de longueur.
3.11.4.2. Fonctionnement
L’activité fait un UPDATE dans le champ COMMENTAIRE de la table T_OPERATION pour le l’OF et l’opération
passé en argument. Si un commentaire est déjà présent sur l’opération, celui-ci sera ajouté et ne
remplacera pas le commentaire précédent.
© 2013 Sage 91
Documentation Atelier de développement
N° d’OF (optionnel)
N° d’ordre de fabrication
© 2013 Sage 92
Documentation Atelier de développement
N° d’opération (optionnel)
N° d’opération de l’ordre de fabrication.
3.11.5.2. Fonctionnement
L’activité fait un INSERT dans la table T_EVT_MACHINE et/ou T_EVT_PERSONNEL selon les options choisies.
• Option « Création archive machine » activée : un pointage sera créé dans T_EVT_MACHINE
uniquement si le code machine est renseigné. Si le code personnel n’est pas renseigné, il sera
remplacé par un « - » (tiret).
• Option « Création archive personnel » activée : un pointage sera créé dans T_EVT_PERSONNEL
uniquement si le code personnel est renseigné. Si le code machine n’est pas renseigné, il sera
remplacé par un « - » (tiret).
© 2013 Sage 93
Documentation Atelier de développement
• Consolidation des quantités dans l’opération de l’OF : La consolidation sera faite uniquement si un
pointage d’archive machine est créé, que l’OF et l’opération sont renseignés et que des quantités
(bonnes, rebuts ou retouches) ont été spécifiées. La consolidation n’est pas effectuée pour une
archive personnel seulement car plusieurs pointages personnel (multiple opérateur) peuvent être
ajoutés pour un seul pointage machine. Nous aurions alors des quantités en trop au niveau de
l’opération.
• Code machine / Code personnel : Bien que ce code soit facultatif, si aucun des deux n’est
renseigné, aucun pointage d’archive ne sera créé.
© 2013 Sage 94
Documentation Atelier de développement
N° d’OF (optionnel)
N° d’ordre de fabrication
N° d’opération (optionnel)
N° d’opération de l’ordre de fabrication.
© 2013 Sage 95
Documentation Atelier de développement
- PROD : Production
- RET : Retouche
- ARRET : Arrêt (Activité réservée à la machine, pour un personnel, on utilisera HPROD). Il
existe les arrêts de production où l’OF/OP est renseigné et les arrêts hors production sans
OF/OP et donc non imputable à une fabrication (dans ce cas, il est souhaitable de préciser un
motif aléa).
- HPROD : Hors Production (Activité réservée au personnel, pour la machine, on utilisera
ARRET). En règle générale, lorsque qu’une machine passe en arrêt, on ne change pas l’activité
de l’opérateur. L’activité hors production permet de déclarer des temps non imputable à un
ordre de fabrication comme le nettoyage du poste (dans ce cas, il est souhaitable de préciser
un motif d’aléa).
- MAINT : Maintenance Préventive, curative, opérateur et travaux neufs.
3.11.6.2. Fonctionnement
L’activité fait un INSERT dans la table T_EVT_MACHINE_EC et/ou T_EVT_PERSONNEL_EC selon les options
choisies. Les tables d’encours disposent du champ REF_ARTICLE qui sera automatiquement renseigné si le
code de l’OF est fourni.
• Option « Création encours machine » activée : un pointage sera créé dans T_EVT_MACHINE_EC
uniquement si le code machine est renseigné. Si le code personnel n’est pas renseigné, il sera
remplacé par un « - » (tiret).
• Option « Création encours personnel » activée : un pointage sera créé dans T_EVT_PERSONNEL_EC
uniquement si le code personnel est renseigné. Si le code machine n’est pas renseigné, il sera
remplacé par un « - » (tiret).
• Mise à jour de l’opération : l’opération de l’OF sera mise à jour si le code OF et code OP sont
renseignés, que l’activité est REGL, PROD ou RET et qu’un code machine est renseigné.
- Etat de l’opération : synchronisé avec l’activité demandée.
- Code Machine : synchronisé avec la machine fournie.
- Machine fixe : Indicateur passé à « Oui ».
- Début réelle : mise à jour avec la date de début si l’opération n’était pas commencée.
• Mise à jour de l’ordre de fabrication : l’ordre de fabrication sera mis à jour si le code OF est
renseigné.
- Etat de l’OF : Lancée.
- Début réel : mise à jour avec la date de début si l’Of n’était pas commencé.
• Code machine / Code personnel : Bien que ce code soit facultatif, si aucun des deux n’est
renseigné, aucun pointage d’encours ne sera créé.
© 2013 Sage 96
Documentation Atelier de développement
N° d’OF (obligatoire)
N° d’ordre de fabrication
N° d’opération (obligatoire)
N° d’opération de l’ordre de fabrication.
© 2013 Sage 97
Documentation Atelier de développement
© 2013 Sage 98
Documentation Atelier de développement
3.11.7.2. Fonctionnement
L’activité fait un UPDATE dans la table T_EVT_MACHINE_EC et/ou T_EVT_PERSONNEL_EC selon les options
choisies.
• Option « Mise à jour de l’encours machine » activée : La mise à jour sera effectuée dans
T_EVT_MACHINE_EC.
• Option « Mise à jour de l’encours personnel » activée : La mise à jour sera effectuée dans
T_EVT_PERSONNEL.
• Option « Mise à jour de l’opération » activée : Les quantités seront consolidées au niveau de
l’opération.
• Option « Limiter la mise à jour de l’encours au code personnel spécifié » activée : La mise à jour
dans la table d’encours machine est limitée au code personnel renseigné. Cela est nécessaire pour
les machines en « poste manuel » qui peuvent avoir plusieurs encours du même OF par plusieurs
personnes comme les opérations d’emballages par exemple.
© 2013 Sage 99
Documentation Atelier de développement
3.11.8. Statut OF
Cette activité permet de faire avancer le statut de l’ordre de fabrication.
N° d’OF (obligatoire)
N° d’ordre de fabrication
3.11.8.2. Fonctionnement
L’activité fait un UPDATE dans la table T_ORDREFAB. Si le code statut est différent de « FINI » et de
« ARCHIVE », La date de début est renseignée si l’Of n’était pas commencé sinon c’est la date de fin.
3.11.9. Statut OP
Cette activité permet de faire avancer le statut d’une opération d’un ordre de fabrication.
N° d’OF (obligatoire)
N° d’ordre de fabrication
N° d’opération (obligatoire)
N° d’opération de l’ordre de fabrication
3.11.9.2. Fonctionnement
L’activité fait un UPDATE dans la table T_OPERATION. Si le code statut est différent de « FINI » et de
« ARCHIVE », La date de début réel est renseignée si l’opération n’était pas commencé sinon c’est la date
de fin.
N° d’OF (optionnel)
N° d’ordre de fabrication. Seuls les encours de cet ordre de fabrication seront supprimés.
N° d’opération (optionnel)
N° d’opération de l’ordre de fabrication. Seuls les encours de cette opération seront supprimés.
3.11.10.2. Fonctionnement
L’activité fait un DELETE dans la table T_EVT_MACHINE_EC pour la machine précisée. Si d’autres
paramètres sont renseignés, ils vendront compléter la clause « WHERE » pour restreindre l’étendue de la
suppression.
N° d’OF (optionnel)
N° d’ordre de fabrication. Seuls les encours de cet ordre de fabrication seront supprimés.
N° d’opération (optionnel)
N° d’opération de l’ordre de fabrication. Seuls les encours de cette opération seront supprimés.
3.11.11.2. Fonctionnement
L’activité fait un DELETE dans la table T_EVT_PERSONNEL_EC pour le personnel précisé. Si d’autres
paramètres sont renseignés, ils vendront compléter la clause « WHERE » pour restreindre l’étendue de la
suppression.
3.11.12.2. Fonctionnement
L’activité fait un UPDATE dans la table T_EVT_MACHINE_EC pour le personnel précisé.
• Option « Synchronisation des dates des encours » activée : Permet d’appliquer la même
date/heure à tous les encours de la machine. Les champs mis à jour sont DH_DEBUT, DATE_REF,
NO_SEMAINE, NO_MOIS.
• Option « Mise à zéro des quantités des encours » activée : permet de remettre à zéro les champs
quantités à tous les encours de la machine. Les champs mis à jour sont QTE_COMPTE, QTE_BONNE,
QTE_REBUT, CODE_REBUT, QTE_AUTRE.
• Option « suppression du code aléa des encours » activée : Permet de supprimer un code aléa à
tous les encours de la machine. Le champ mis à jour est CODE_ALEA.
3.11.13.2. Fonctionnement
L’activité fait un UPDATE dans la table T_EVT_PERSONNEL_EC pour le personnel précisé.
• Option « Synchronisation des dates des encours » activée : Permet d’appliquer la même
date/heure à tous les encours du personnel. Les champs mis à jour sont DH_DEBUT, DATE_REF,
NO_SEMAINE, NO_MOIS.
• Option « Mise à zéro des quantités des encours » activée : permet de remettre à zéro les champs
quantités à tous les encours du personnel. Les champs mis à jour sont QTE_COMPTE, QTE_BONNE,
QTE_REBUT, CODE_REBUT, QTE_AUTRE.
• Option « suppression du code aléa des encours » activée : Permet de supprimer un code aléa à
tous les encours du personnel. Le champ mis à jour est CODE_ALEA.
3.11.14.1. Résultat
N° d’OF (optionnel)
N° de l’ordre de fabrication.
N° d’opération (optionnel)
N° d’opération de l’ordre de fabrication
N° de lot (optionnel)
N° de lot si l’article de l’OF est suivi en Lot/Série.
3.11.14.3. Fonctionnement
L’activité fait un INSERT dans la table K_DOSSIER.
• Si le N° d’OF est renseigné, la référence article, le N° de commande et le code client seront
récupérés automatiquement de l’ordre de fabrication.
• Si le N° de lot est omis, le programme ira rechercher le 1er N° de lot utilisé dans l’ordre de
fabrication (table T_ORDREFAB_LOT).
Emplacement (optionnel)
Code de l’emplacement si l’article est géré en emplacement.
N° d’OF (optionnel)
N° de l’ordre de fabrication.
N° d’opération (optionnel)
N° d’opération de l’ordre de fabrication
N° de lot (optionnel)
N° de lot si l’article est suivi en Lot/Série.
N° de BL (optionnel)
N° de bon de livraison.
Remarque (optionnel)
Texte libre (sans limitation de longueur).
Date de péremption
Si cette date est renseignée, elle sera prioritaire sur le calcul automatique de la date de péremption (Date
de fabrication + Délai de péremption).
3.11.15.2. Fonctionnement
L’activité fait un INSERT dans la table T_MVT_STOCK.
• Option « Mettre à jour le lot PF de l’OF » activée : Permet de mettre à jour la table
T_ORDREFAB_LOT (uniquement sur les entrées de PF/PSF sur OF dont l’article est suivi en lot). Selon
la présence du lot dans la table, le programme fait un INSERT pour une entrée initiale et un UPDATE
pour les entrées suivantes.
• Option « Mettre à jour la nomenclature de l’OF » activée : Permet de mettre à jour la table
T_ORDREFAB_NOMENC (et T_ORDREFAB_NOMENC_LOT si l’article est géré en lot). Actif uniquement
pour les sorties associées à un ordre de fabrication. Selon la présence de l’article et/ou du lot dans
la nomenclature, le programme effectue un INSERT ou un UPDATE.
- Option « Rechercher le prix » activée : si l’argument « Prix unitaire = 0 », le programme
recherche le prix dans le stock (au CMUP ou au Lot/Série selon le mode de gestion pour les sorties,
au cout standard ou PMP pour les entrées).
-
• Il n’est pas possible de faire une entrée et une sortie dans le même
mouvement. Il ne faut donc pas renseigner la quantité en entrée ET la quantité
en sortie.
• Si la quantité est négative, le mouvement change de sens (exemple : une sortie
de -15 devient une entrée de 15).
• Si le N° d’OF est renseigné, le programme recherchera automatiquement le
code affaire dans l’entête de l’ordre de fabrication.
• Si l’article est géré en N° de série, la quantité (en entrée ou en sortie) doit
obligatoirement être positionnée à 1.
Emplacement (optionnel)
Code de l’emplacement si l’article est géré en emplacement. Si l’emplacement n’est pas renseigné,
l’activité ne recherchera pas automatiquement l’emplacement tampon. Il est nécessaire de passer par
l’activité « Recherche zone tampon » pour alimenter ces informations dans l’activité de consommation
automatique.
N° d’OF (optionnel)
N° de l’ordre de fabrication.
N° d’opération (optionnel)
N° d’opération de l’ordre de fabrication
N° de BL (optionnel)
N° de bon de livraison.
Remarque (optionnel)
• Texte libre (sans limitation de longueur).
• Méthode de consommation : Choix de la méthode de consommation
- FIFO : Fist In First Out. La sélection des lots/série se fera par la date d’entrée de la plus
vieille à la plus récente (DATE_ENTREE ASC, DATE_PEREMPTION ASC, NO_LOT ASC).
- FEFO : First Expired First Out. La sélection des lots/série se fera par la date de péremption de
la plus vieille à la plus récente (DATE_PEREMPTION ASC, DATE_ENTREE ASC, NO_LOT ASC).
- LIFO : Last In First Out. La sélection des lots/série se fera par la date d’entrée de la plus
récente à la plus vieille (DATE_ENTREE DESC, DATE_PEREMPTION DESC, NO_LOT DESC)
- LEFO : Last Expired First Out. La sélection des lots/série se fera par la date de péremption de
la plus récente à la plus vieille (DATE_PEREMPTION DESC, DATE_ENTREE DESC, NO_LOT DESC).
3.11.16.2. Résultat
3.11.16.3. Fonctionnement
L’activité fait un ou plusieurs INSERT dans la table T_MVT_STOCK.
• Option « Mettre à jour la nomenclature de l’OF » activée : Permet de mettre à jour la table
T_ORDREFAB_NOMENC (et T_ORDREFAB_NOMENC_LOT si l’article est géré en lot). Actif uniquement
pour les sorties associées à un ordre de fabrication. Selon la présence de l’article et/ou du lot dans
la nomenclature, le programme effectue un INSERT ou un UPDATE.
• Option « Rechercher le prix » activée : si l’argument « Prix unitaire = 0 », le programme recherche
le prix dans le stock (au CMUP ou au Lot/Série selon le mode de gestion).
• Interdire les lots en statut bloqué : Permet de ne pas effectuer de sortie automatique sur les lots
dont le statut est de type « Blocage en fabrication ».
• Simulation de sortie : Permet d’exécuter l’activité sans effectuer les mouvements de stock.
L’activité alimente les variables de retour. Cela permet notamment de tester que le stock est
disponibles avant d’effectuer une consommation automatique. On aurait dans ce cas l’activité
présente 2 fois dans le workflow, une fois pour contrôler que la sortie est possible et une seconde
pour effectuer la sortie à proprement parler si le contrôle précédent est valide.
• Autoriser une consommation partielle : Permet, même si le stock n’est pas suffisant de consommer
tout ce qui est disponible. La variable de retour contiendra alors la valeur réellement consommée.
Quantité (obligatoire)
Quantité à transférer.
N° de lot (optionnel)
N° de lot si l’article est suivi en Lot/Série.
3.11.17.2. Fonctionnement
L’activité génère deux mouvements de stock dans la table K_T_MVT_STOCK. Le 1er mouvement fait la sortie
du dépôt/emplacement d’origine et le 2nd fait l’entrée dans le dépôt/emplacement de destination. En
utilisation avec la gestion commerciale 100, seulement un seul des 2 mouvements sera transféré.
Pour effectuer un changement d’emplacement sans changement de dépôts, il faut renseigner le dépôt
d’origine et de destination avec le même code dépôt.
3.11.18.1. Résultat
Résultat recherche
Variable [Boolean] (true/false) qui indique si la recherche de la zone tampon s’est terminée avec succès.
Emplacement tampon
Variable (String] contenant le code de l’emplacement de la zone tampon.
Sens (obligatoire)
Sens du mouvement de stock qui va suivre. Cette zone est indispensable lorsqu’il des exceptions de zone
tampon sont paramétrées au niveau de l’article ou de la famille d’article.
3.11.19.1. Résultat
Résultat recherche
Variable [Boolean] (true/false) qui indique si la recherche de l’article s’est terminée avec succès.
Infos Article
Variable [SqlRecordCollection] contenant la liste des informations. Si la recherche s’est terminée avec
succès, la variable contient obligatoire un enregistrement. Chaque information est contenue dans un champ
de la première ligne de la variable (ex : maVariable(0)(« DES_ARTICLE »)) :
- DES_ARTICLE : Désignation de l’article.
- CODE_FAMILLE : Code famille de l’article.
- GESTION_STOCK : Tenu en stock (O/N).
- QTE_STOCK_TOTAL : Quantité en stock tout dépôts confondus.
- QTE_STOCK_DEPOT : Quantité en stock dans le dépôt principal.
- CODE_GESTION_LS : Type de gestion en stock (AUCUN/LOT/SERIE).
- TYPE_ARTICLE : Type d’article (PF/PSF/MP/PDET).
- CODE_STATUT_LOT : Code statut de lot par défaut.
- CODE_DEPOT_PRINCIPAL : Dépôt principal de l’article (si présent) ou de l’entreprise.
- CODE_FOURNISSEUR : Code fournisseur principal s’il existe.
- CONSO_LOT_CONFIG : Type de consommation des lots (AUTO/SEMI/MANU/AUCUN).
- SORTIE_MANUELLE : Consommation manuelle.
- LIBELLE_UNITE : Libellé de l’unité de stock.
• Requête assistée : Evite de connaître la syntaxe SQL mais est limitée à une sélection dans une seule
tables.
• Requête avancée : Permet de taper sa propre requête SQL.
3.12.1. Lecture
Cette activité permet d’effectuer une requête de sélection dans n’importe quelle table de la gestion de
production.
La variable de retour est de type [SqlRecordCollection]. Il s’agit d’un jeu d’enregistrement défini par une
liste d’un ou plusieurs enregistrements. Chaque ligne (enregistrement) contient une colonne par champ
figurant dans la requête de sélection. Les lignes sont numérotées à partir de 0.
Exemple
ResLecture(0)("CODE_MACHINE") pour lire la colonne [CODE_MACHINE] de la 1ère ligne.
Table
iste déroulante permettant de sélectionner une des tables de la base de données (Attention, une table
spécifique ne respectant les règles de nommage risque de ne pas apparaître dans la liste).
Distinct
Permet d’appliquer le prédicat DISTINCT dans la requête pour exclure les lignes identiques.
Champ
Liste des champs de la requête de sélection. Les colonnes sont sélectionnées à partir d’une liste déroulante
(Les lignes avec une icône sont des champs de la clé primaire).
Alias
Permet de donner un nom « en clair » à un champ de la base utiliser comme nom de colonne pour un
affichage par exemple.
Sortie
Lorsque cette case à cocher est validée, la colonne sera comprise dans le SELECT. En règle générale, la
colonne n’est pas dans le SELECT lorsqu’elle sert uniquement pour un filtre (ex : CODE_SOCIETE et
REF_ARTICLE dans la figure ci-dessus).
Type de tri
Permet d’indiquer si la colonne est triée (tri croissant ou décroissant).
Ordre de tri
Permet de spécifier l’ordre de colonnes de tri lorsque le jeu de résultat est trié sur plusieurs colonnes.
Opérateur
Permet d’indiquer quel opérateur de comparaison est utilisé pour le filtre (=, >, >=, <, <= et <>).
Filtre
Permet d’appliquer une clause WHERE sur la requête de sélection. Il est possible de saisir toutes formes
d’expression (variables ou valeurs). Les valeurs de type « chaine de caractères » doivent juste être
encadrées par des guillemets. Il ne faut pas mettre les apostrophes (délimiteur de chaine dans la syntaxe
SQL car ils sont rajoutés automatiquement.
Dans ce cas de requête, il est possible de taper directement le code de la requête. Il suffit ensuite de
remplacer les éléments variables par des instructions du type « @NomDuParametre » pour qu’ils soient
automatiquement détectés.
3.12.2. Ecriture
Cette activité permet d’effectuer une requête d’écriture dans la base de données (INSERT, UPDATE et
DELETE) dans n’importe quelle table de la gestion de production. Il existe 2 possibilités dans l’assistant :
La colonne définir permet d’indiquer quelles sont les colonnes qui seront mises à jour.
INSERT : Ajout d’un enregistrement à partir de valeurs (« INSERT INTO (…) VALUES(…) »)
Dans ce cas de requête, il est possible de taper directement le code de la requête. Il suffit ensuite de
remplacer les éléments variables par des instructions du type « @NomDuParametre » pour qu’ils soient
automatiquement détectés. Le type par défaut est String, il faut modifier ce type si cela est nécessaire
avec l’un des types présent dans la liste déroulante.
3.13.1.1. Résultat
Résultat du décodage
Variable de type [Boolean] (true/false) qui indique si le décodage a réussi.
Valeur du décodage
Variable de type [Dictionary <String,String>] contenant autant d’élément que de codes trouvés dans la
chaine. Dans l’exemple ci-dessus, le dictionnaire contiendrait 3 lignes dont les clés seraient (11, 15, et 10)
et les valeurs seraient respectivement (060428, 071027 et 060004111).
Préfixe (obligatoire)
Il s’agit du préfixe du code à barres (par défaut FNC1).
Séparateur (obligatoire)
Il s’agit de la valeur ASCII du caractère utilisé comme séparateur pour les zones variables incomplètes (par
défaut la valeur ASCII 29 pour le caractère GS1).
3.13.1.3. Fonctionnement
Le standard GS1-128 est défini par un catalogue d’identifiants de données (AI ou Application Identifier).
Chaque identifiant de donnée répond à un format de donnée défini.
Description
Identifiant Définition Format
00 N° séquentiel de colis n2+n18
01 GTIN de l’UL n2+n14
02 GTIN de l’UL contenue n2+n14
10 N° de lot de fabrication n2+an..20
11 Date de fabrication n2+n6
13 Date d’emballage n2+n6
15 DLUO n2+n6
17 DLC n2+n6
20 Variante produit n2+n6
21 N° de série (non structuré) n2+an..20
31nn à 36nn Mesures n4+n6
37 Quantité n2+n..8
400 N° de commande de l’acheteur n3+an..30
403 Code de routage n3+an..30
410 Lieu de livraison (livré à) n3+n13
411 Lieu de facturation (facturer à) n3+n13
413 Lieu final de destination n3+n13
90 Utilisation interne en accord bilatéral n2+an..30
91-99 Applications internes n2+an..30
Détail du décodage
Détail de l’affichage
Résultat à l’exécution
Expéditeur (optionnel)
Adresse mail de l’expéditeur. Si l’argument est omis, c’est le compte système qui sera utilisé.
Destinataire (obligatoire)
Adresse mail du destinataire.
Objet (obligatoire)
Objet du mail limité à 50 caractères.
Message (obligatoire)
Corps du mail.
3.13.2.2. Fonctionnement
L’activité ajoute un enregistrement dans la table T_MAIL. C’est ensuite le service périodique qui s’occupe
de l’envoi. Attention, les paramètres d’envoi du mail sont liés aux paramètres généraux de la société
(champ CODE_SOCIETE de T_MAIL).
Imprimante (optionnel)
Si ce paramètre est renseigné, l’édition sera envoyée sur l’imprimante spécifiée.
Nombre d’exemplaires
Si ce paramètre n’est pas renseigné, le nombre d’exemplaires imprimé sera 1.
3.13.3.2. Fonctionnement
L’activité imprime directement un document Crystal Report sur l’imprimante spécifiée (ou l’imprimante par
défaut) sans aperçu avant impression.
Imprimante (obligatoire)
Nombre d’exemplaires défini à 1 par défaut.
3.13.4.2. Fonctionnement
L’activité écrit un enregistrement dans la table T_ETIQUETTE qui servira à alimenter les zones variables de
l’étiquette.
3.14.1. Ecriture
Cette activité permettant d’écrire un fichier texte à partir d’une variable de type « SQLRecordCollection »
3.14.1.1. Résultat
Résultat de l’écriture:
Variable de type [Boolean] (true/false) qui indique si l’écriture s’est déroulée correctement.
Enregistrements (obligatoire)
Nom de la variable contenant les enregistrements.
Séparateur (optionnel)
Caractère de séparateur de colonnes. Si le séparateur est omis, c’est la caractère TAB qui est utilisé.
3.14.1.3. Fonctionnement
L’activité crée un fichier à l’emplacement spécifié.
• Option « Ecraser fichier précédent » : Cette option permet d’écraser le contenu du fichier si
l’option est activée, sinon, les données seront ajoutées à la fin fichier.
• Option « Ecrire les entêtes » activée : La 1ere ligne du fichier contient le nom des colonnes.
3.14.2. Lecture
Cette activité permettant de lire un fichier texte à partir d’un fichier texte et enregistre son contenu dans
une variable de type « List <String> ».
3.14.2.1. Résultat
Résultat de la lecture
Variable de type [Boolean] (true/false) qui indique si la lecture s’est déroulée correctement.
Lignes du fichier
Contenu du fichier sous la forme d’un tableau de chaine.
Séparateur (optionnel)
Caractère de séparateur de colonnes. Si le séparateur est omis, c’est la caractère TAB qui est utilisé.
3.14.2.3. Fonctionnement
L’activité lit un fichier à l’emplacement spécifié.
• Option « Supprimer les entêtes» activée : La 1ere ligne du fichier (contenant le nom des colonnes)
est ignorée.
• Supprimer le fichier après lecture : Indique si le fichier est physiquement supprimé du disque après
lecture.