CEGID Tips
Restaurer une base de données sur SQL peut s’effectuer de deux façons :
L’intérêt de l’outil Admin SQL sur SSMS tient à la l’automatisation de certains processus apportée par CEGID : * Broker SQL * Niveau de compatibilité de la base * Création d’un utilisateur pour l’accès à la base depuis les applications CEGID (l’utilisateur qui restaure une base est généralement celui qui va avoir besoin de lancer des applications pour tester)
Puisque le serveur SQL sera généralement distinct des autres serveurs utilisés par CEGID, il faut prendre garde à ouvrir les bons ports dans le firewall. Par défaut SQL écoute sur le port 1433/tcp. Ce port est donc à autoriser.
Si plusieurs instances sont déclarées, alors il existe un mécanisme nommé sqlbrowser qui devra également être accessible depuis les autres serveurs du réseau sur le port 1434/tcp.
Sinon les instances nommées (autres que celle par défaut qui s’appelle MSSQLSERVER) peuvent également disposer d’un port TCP/IP figé (depuis le sgestionnaire de configuration SQL)
Dans cet exemple, l’instance nommée INSTANCE1 a été mise en écoute sur le port statique 20010. Ce port doit donc être ouvert sur le firewall pour permettre son accès.
Une fois la connexion réalisée par l’utilisateur de niveau SA de l’instance SQL requise (peut être sa ou n’importe lequel autre tant que l’utilisateur est déclaré sysadmin dans SQL)
Pour restaurer une base de données il faudra avoir déclaré au préalable un utilisateur qui sera ensuite injecté dans cette base pour que CEGID puisse travailler avec depuis ses smartclients. La généralité est d’appeler cet utlisateur sous le nom cegiduser mais ce n’est pas obligatoire. Ce qui est obligatoire est que ce soit un utilisateur SQL et pas Windows, et surtout que la stratégie de gestion des mots de passe de windows ne soit pas appliquée à cet utilisateur.
Par défaut l’utilisateur qui sera manipulé par les smartclients de CEGID n’aura besoin d’être qu’un simple utilisateur public.
L’utilisateur apparaît alors dans la liste des Connexions autorisées
Il est maintenant possible de restaurer une base en se connectant sur le serveur avec le compte sa ou un compte de niveau sysadmin.
Pour restaurer une base, se rendre dans l’onglet Restauration et remplir les éléments comme sur la capture d’écran.
(de bas en haut)
La base est créée et maintenance disponible pour usage dans CEGID.
L’onglet Outils permet de gérer les accès à cette base de données restaurée.
En cliquant sur le bouton Login SQL, nous pouvons régénérer l’utilisateur cegid pour les smartclients.
En cliquant sur Admin ERP nous pouvons recréer l’utilisateur directement dans la base de données permettant d’être autorisé à ouvrir cette base depuis un smartclient.
Lorsqu’une montée de version est requise dans l’environnement CEGID, hormis la mise à jour des différents services et applications, le point le plus important est le traitement des bases de données par un processus nommé Database Maintenance.
La structure de ce processus repose sur un dossier spécifique c:database maintenance 13.0 dans lequel se trouvent deux dossiers et un fichier :
[databasename]
Driver= ; pas d'importance ici, résidu de la v9
Server= ; nom du serveur SQL[\instance]
Database=databasename ; nom de la base de données et doit être identique au nom se trouvant entre crochets []
Options= ; concerne la notion d'Unicode qui est par défaut =0
Group= ; pas d'importance
User= ; chiffrement du nom de l'utilisateur dialoguant avec la base
Password= ; mot de passe chiffré de l'utilisateur
Toutes les bases de données déclarées dans le fichier CEGIDPGI.INI seront traitées et il est fortement conseillé de bien avoir préparé son fichier avant de lancer la mise à jour.
Ce fichier peut être créé à la main ou bien généré depuis le service de configuration du métier et en exportant la configuration des bases de données.
Si une base ne doit pas être traitée par la mise à jour, il suffit de mettre un ‘;’ devant les crochets de sa déclaration.
[base_traitee]
...
;[base_ignoree]
...
Certaines bases peuvent être liées à une base mère qui déclare des références identiques pour un ensemble de bases, comme par exemple des utilisateurs, des tarifs, …
Lors de la montée de version, il faut s’assurer d’avoir l’intégralité des bases définies dans ce chaînage sinon aucune base ne sera traitée.
Quatre tables permettent de traiter ces bases de référence :
Le Bilan de santé est l’opération 0 à effectuer pour le troubleshooting CEGID. Il existe pour les 3 métiers et se lance par une interface web différente pour chaque métier :
http://localhost/cegidfinance/Health
http://localhost/cegidMTS/Health
http://localhost/cegidBRH/Health
Si le test est lancé depuis une autre machine, remplacer localhost par le nom ou l’ip du serveur possédant le service IIS pour CEGID.
Dans la figure précédente, un avertissement s’affiche sous la forme d’un pictogramme triangle orange. Généralement, un avertissement n’est pas bloquant sauf ici, lors de la première installation pour laquelle aucune configuration n’a été réalisée.
Dans cette figure nous avons au moins 3 problèmes :
Connectivité aux bases de données physiques : il n’y a simplement aucune configuration de réalisée. Voir les différents services de configuration des métiers pour déclarer des bases de données. Il peut y avoir également un problème avec l’utilisateur déclaré pour fonctionner avec la base de données (par défaut cegiduser mais pas forcément). Enfin l’utilisateur ne dispose peut-être pas de l’autorisation d’accès à la base de données en question.
Notifications depuis les bases de données : même type d’erreur que la précédente car il n’y a pas de base de données déclarée.
Service de licence, aucune licence : vérifier que le service de licence est bien démarré (dans les tâches planifiées du serveur sur lequel ce service est installé) et que des licences sont renseignées.
Il semble n’y avoir aucune autre erreur mais, en regardant de plus près, on peut déceler un problème avec les Worker Process. Même si le checkmark vert est affiché devant la ligne Worker Process, il n’y a aucune base d’affichée.
Autre exemple d’alert : une véritable liste d’erreurs est affichée sur le bilan de santé (avec la croix rouge symbole d’erreur à régler avant de pouvoir travailler)
Dans la capture précédente, beaucoup d’erreurs à résoudre pour disposer enfin d’un bilan opérationnel.
Le Broker est une notion essentielle du fonctionnement des échanges entre IIS et SQL pour la gestion des files de messages. Il est obligatoire que le broker SQL soit actif.
/* Requête SQL à saisir en mode mono utilisateur ou sans personne de connecté car les processus en cours seront fermés automatiquement */
alter database [dbname]
set enable_broker with rollback immediate
Si les Worker Process sont en erreur sur le bilan de santé, il faut d’abord vérifier qu’ils sont bien démarrés, soit depuis l’interface de configuration du Worker Process, soit depuis la liste des services CEGID.
Dans la seconde option, les noms des services à démarrer sont :
Exemple pour Finance
Il faut également vérifier que les files d’attente existent, se trouvent sur le bon serveur et disposent des bonnes autorisations d’accès.
Si des problèmes persistent, il faut essayer d’exécuter manuellement les services de Worker Process pour obtenir potentiellement une erreur sur l’affichage de la console DOS. Chaque métier dispose de son environnement de Workers (sauf BRH qui n’en utilise pas)
# Pour Finance
PS> cd \Program Files (x86)\Cegid\CegidBusiness\CegidFinance\WorkerProcess
PS> MtsWorkerProcess -config:finance
# Pour MTS
PS> cd \Program Files (x86)\Cegid\CegidBusiness\CegidMTS\WorkerProcess
PS> MtsWorkerProcess -config:trade
# ou
PS> MtsWorkerProcess -config:manufacturing
SalesOrder en double dans le fichier config
On parle ici du fichier de configuration des Worker Process MTS présent dans le dossier **Files (x86)*
Editer le fichier MtsWorkerProcess.exe.win32.config, présent dans le métier MTS uniquement, à la recherche des lignes salesorder en double dans le fichier et supprimer les doublons.
Il existe un fichier FinanceWorkerProcess.exe.win32.config dans le dossier Finance mais il n’existe pas de ligne SalesOrder à ce niveau.
Lorsqu’une application CEGID doit être installée, et pour toutes les applications Windows qui vont s’inscrire dans Program Files ou Program Files (x86), l’utilisateur doit disposer du privilège administrateur.
L’installation de CEGID en a besoin uniquement lors de l’installation initiale de n’importe lequel des produits CEGID. A ce moment-là est installé un applicatif nommé CEGID Retail MSI Installer Service dont le rôle sera de réaliser l’élévation de privilège à la place de l’utilisateur, permettant donc d’installer CEGID même sur un poste où l’utilisateur dispose de privilèges invité.
Si l’erreur Impossible de déployer l’application survient il est probable que ce service ne soit pas présent ou bien que la tâche planifiée le concernant ne soit pas démarrée.
Il est parfois impossible de télécharger une application depuis le serveur IIS installé pour CEGID. C’était vrai avec d’anciennes versions, beaucoup moins maintenant.
C’était dû à une fonctionnalité non installée sur la partie .Net à savoir WCF (Windows Communication Foundations). Il faut juste s’assurer que ce service soit existant sur le serveur IIS et l’installer si ce n’est pas le cas.
La ligne de commande reste une manière simple de restaurer des bases de données dans SQL Server
Sqlcmd -E -S server\instance -Q"RESTORE DATABASE [dbname] FROM DISK = 'D:\BACKUP\backup.bak'"
L’option -E correspond à Trusted connection
L’option -S doit être suivie du nom du serveur et de son instance si c’est autrechose que l’instance par défaut MSSQLSERVER.
Par défaut, la base est restaurée avec les fichiers .mdf et .ldf dans le dossier d’origine.
schtasks /END /TN “Legacy Licensing Server” schtasks /END /TN “(Configuration Server)” schtasks /END /TN “(Reporting Service)” schtasks /END /TN “(Task Scheduler)” schtasks /END /TN “(Configuration Server)” schtasks /END /TN “(Reporting Service)” schtasks /END /TN “(Task Scheduler)” schtasks /END /TN “(Configuration Server)” schtasks /END /TN “(Reporting Service)” schtasks /END /TN “(Task Scheduler)” schtasks /END /TN “(Configuration Server)” schtasks /END /TN “(Configuration Server)”
net stop w3svc
net stop CegidProcessLauncher_Finance net stop CegidProcessLauncher_Trade net stop CegidProcessLauncher_Manufacturing
Voir le paragraphe précédent
Tâches planifiées
schtasks /RUN /TN “Legacy Licensing Server” schtasks /RUN /TN “(Configuration Server)” schtasks /RUN /TN “(Reporting Service)” schtasks /RUN /TN “(Task Scheduler)” schtasks /RUN /TN “(Configuration Server)” schtasks /RUN /TN “(Reporting Service)” schtasks /RUN /TN “(Task Scheduler)” schtasks /RUN /TN “(Configuration Server)” schtasks /RUN /TN “(Reporting Service)” schtasks /RUN /TN “(Task Scheduler)” schtasks /RUN /TN “(Configuration Server)” schtasks /RUN /TN “(Configuration Server)”
IIS
net start w3svc
Worker Process
net start CegidProcessLauncher_Finance net start CegidProcessLauncher_Trade net start CegidProcessLauncher_Manufacturing