...
Généralités sur les services Diva
Les services Diva sont utilisés pour exécuter les traitements en tâche de fond ou selon une planification définie à l'avance
Le service DhsServices.exe est installé par défaut avec le Runtime Divalto
Il convient de lui attribuer un compte de service afin de permettre aux services qui en dépendent d'accéder aux ressources (SQL, fichiers joints)
Le compte de ce service peut partager un profil de licence Divalto avec un autre utilisateur mais doit disposer de sa propre licence IUOP
L'identité du compte de service doit disposer des paramètres (via propagation ou manuellement) nécessaires (Environnements, paramètres de messagerie, ..)
Il est également possible de réaliser une impersonation indépendamment pour chaque service
Le service est unique sur un même serveur mais peut exploiter plusieurs services Diva et gère les différents environnements
Il existe plusieurs types de services Diva :
Les scrutateurs (Production, WMS, Mobile, Datahub, ..) qui vont réagir à la présence d'un élément à un certain emplacement (Fichiers ou base de données)
Les BPM (Module Processus) qui vont exécuter des enchainements de tâches de manière planifiée
Les services web
Principe de fonctionnement
...
Les services Diva
Présentation des services
Définition
Un service Diva est un programme (écrit en Diva) qui s'exécute automatiquement lors du démarrage de l'ordinateur.
Les services Diva sont exécutés même si aucune session n'est ouverte sur le poste de travail.
Le comportement d'un service Diva est donc similaire à celui d'un service Windows.
Méthode
Pour créer des services Diva vous devez simplement :
...
Les services Diva sont lancés par le service « Divalto Services Diva ». Ce dernier est un service lancé par le système d'exploitation qui lit le fichier paramètre dhsServices.txt et qui lance les services Diva.
Interaction avec le bureau
En règle générale, un service est un programme qui tourne en tâche de fond sans interaction avec le bureau, c'est à dire qu'il n'effectue ni affichage, ni aucun dialogue avec l'utilisateur. Nous verrons qu'un service Diva peut tout de même ouvrir une fenêtre à partir du moment où une session utilisateur est ouverte sur le poste de travail.
Remarque : L'utilitaire Xtask.dhop permet de lancer un service Diva manuellement.
...
Le fait de redémarrer le service Windows 'DhsServices' va relancer l'ensemble des services Diva (sauf ceux qui étaient désactivés)
En cas de problème avec un service :
Vérifier le livre de bord et le journal système
Exécuter le programme en mode interactif
Fichier paramètre dhsServices.txt
Localisation du fichier
Le fichier paramètre dhsServices.txt doit se trouver dans le répertoire d'installation d'Harmony (/Divalto/Sys). S'il n'existe pas, vous pouvez le créer avec un éditeur de textes.
Le choix « Services Diva » du menu Harmony.dhop permet d'éditer ce fichier.
Format du fichier
Chaque service diva est décrit sur une et une seule ligne du fichier.
Les différents paramètres de la ligne respectent la syntaxe HMP, à savoir :
...
Cette ligne est intégralement transmise au programme Diva qui est lancé. Elle pourra donc comporter des paramètres personnels.
Commentaires
Si le premier caractère significatif d'une ligne est le point-virgule, la ligne est considérée comme étant du commentaire.
Paramètres standard
<nom> | Nom du service diva. Ce nom doit être unique. |
|
|
<programme> | Nom du programme Diva à lancer. |
|
|
<mode> | Si la valeur de ce paramètre est manuel le service n'est pas lancé automatiquement au démarrage de l'ordinateur. Par contre, il peut être lancé manuellement depuis Xtask.dhop. |
|
|
<tache> | Numéro de tâche (ou fourchette de numéros) à utiliser. Il est possible de lancer les services avec les numéros de tâche supérieur à 16. |
|
|
<windowShow> | Mode d'affichage de la fenêtre. |
|
|
| SW_HIDE | La fenêtre est cachée (valeur par défaut) |
|
| SW_SHOWNORMAL | La fenêtre est affichée. |
|
| SW_SHOWMINIMIZED | La fenêtre est minimisée. |
|
| SW_SHOWMAXIMIZED | La fenêtre est maximisée. |
|
<utilisateur> | Code utilisateur avec lequel le service Diva s'exécutera. Par défaut l'utilisateur $Service est utilisé. |
|
|
<domaine> | Nom de domaine. Uniquement en cas d'impersonnation. |
|
|
<impersonnation>OUI | Si OUI, le programme est lancé sous le compte Windows précisé dans les paramètres <utilisateur> et <domaine>. Le mot de passe de ce compte doit être le même sous Windows et pour Harmony. |
|
|
<env> | Nom de l'environnement d'exécution du service. Exemple : <env>ERP210 Attention : La mise en œuvre des environnements est facultative mais si elle est activée, elle concerne obligatoirement tous les services Diva d'un même fichier paramètres. |
|
|
Paramètres spécifiques
Vous pouvez ajouter d'autres paramètres à la ligne de commande. Votre programme peut récupérer l'intégralité de la ligne et ensuite extraire les paramètres par les fonctions HmpRead et HmpSeek.
Voir Programmation d'un service Diva
Exemple de fichier dhsServices.txt
; ceci est du commentaire
<nom>xbal<programme>xbal.dhop<tache>17-999<utilisateur>DEMO
<nom>monservice<programme>monprog.dhop<tache>17-999<utilisateur>MOI<fichieratraiter>fic.dhfi
La première ligne correspond au lancement du service Xbal d'Interlogiciel..
La seconde ligne lance un service Diva spécifique. Remarquez le paramètre <fichieratraiter> qui n'est pas un paramètre standard des services. Ce paramètre pourra être lu dans le programme Diva.
Voir également :
Programmation d'un service Diva
Rubrique "Harmony Markup Parameters HMP" de la documentation Xwin - Programmation.
Paramétrage du service "Divalto Services Diva"
Si vous désirez que l'un de vos services Diva puisse effectuer des affichages, vous devez paramétrer le service « Divalto Services Diva » pour autoriser l'interaction du service avec le bureau.
Dans le gestionnaire de services, sélectionnez la ligne « Divalto Services Diva », puis appelez les propriétés et cochez la case : Autoriser le service à interagir avec le bureau.
Si vous voulez que vos services s'exécutent avec un compte utilisateur Windows autre que le compte système, spécifiez le compte et le mot de passe depuis les gestionnaire des services. Pour le service Xbal, il est indispensable que le service soit lancé depuis un compte Windows standard, afin que le profil de messagerie soit défini.
Dans le cas où un compte spécifique est utilisé, le service ne pourra pas interagir avec le bureau.
Remarques
Lorsque le service « Divalto Services Diva » est autorisé a interagir avec le bureau, votre service Diva peut effectuer des affichages, voir même des entrées clavier. Pour que la fenêtre soit visible il faut impérativement que le paramètre <windowShow> ne soit pas positionné à SW_HIDE.
Les fenêtres apparaissent uniquement lorsqu'une session est ouverte sur l'ordinateur. S'il n'y a pas de session ouverte, le programme se déroule normalement et les affichages seront effectués lors de l'ouverture de la session.
Si un service Diva tente de faire une entrée clavier (saisie de masque par exemple) alors que la fenêtre est cachée (SW_HIDE) ou que l'interaction avec le bureau n'est pas possible, le programme est arrêté. Un message est écrit dans le journal des événements et dans le journal Ferror.log.
En cas d'erreur de lancement d'un service consultez le journal des événements de Windows et le fichier journal d'Harmony.
Programmation d'un service Diva
Un service Diva est un programme Diva ordinaire.
Il ne doit pas effectuer de saisie (sauf éventuellement en phase de mise au point).
Par contre, il peut afficher des messages (par l'instruction Display) pour indiquer les travaux qu'il est en train d'effectuer.
Récupération des paramètres
L'intégralité de la ligne paramètre du fichier dhsServices.txt est transmise au programme par la variable d'environnement HARMONYSERVICEPARAMETRES.
Pour la lire vous devez utiliser la fonction GetEnv.
Exemple :
1 param 512
param = GetEnv("HARMONYSERVICEPARAMETRES")
Vous pouvez ensuite extraire les différents paramètres par les instructions HmpSeek et HmpRead.
ProgramCall
Un service Diva peut exécuter des instructions ProgramCall. Les programmes sont lancés avec le même mode d'affichage (caché, visible etc…) que le programme courant. Les programmes lancés peuvent également accéder à la variable d'environnement HARMONYSERVICEPARAMETRES.
Voir également :
Rubrique "Harmony Markup Parameters HMP" de la documentation Xwin - Programmation.
Rubrique "GetEnv" de la documentation Xwin - Programmation.
Rubrique "ProgramCall" de la documentation Xwin - Programmation.
ServiceMode
La fonction Diva ServiceMode permet à un programme de savoir s'il a été lancé comme un service ou comme une tâche ordinaire.
La fonction ServiceMode renvoie une des valeurs suivantes :
0 | Le programme n'est pas un service Diva. |
1 | Le programme est un service Diva autorisé à interagir avec le bureau (c'est à dire effectuer des affichages et des saisies). |
2 | Le programme est un service Diva qui n'est pas autorisé à interagir avec le bureau. |