# App Manager

L'App Manager est un utilitaire permettant de gérer la maintenance des différents applicatifs myfab installés ou à installer sur le serveur.

# Présentation de l'App Manager

#### 1. Préambule

L'App Manager permet de gérer l'installation et la mise à jour des applications myfab et Open-Prod. Initialement, toute cette gestion se faisait au travers de commandes spécifiques décrites par **myhelp**. De son côté, **[l'utilitaire myhelp](https://docs.myfab.fr/books/2-outils-myhelp-et-app-manager-pour-la-maintenance/chapter/scripts-myhelp "Scripts myhelp")** rassemble et met en forme des lignes de commandes utiles pour la maintenance de l'environnement Open-Prod sur le serveur.

<p class="callout info"> **Désormais, les commandes liées à l'installation ou la mise à jour d'Open-Prod, des modules myfab ou de Jasper sont packagées dans l'App Manager afin d'optimiser leur enchainement et ainsi réduire le temps nécessaire pour leur exécution.** </p>

Par exemple, pour une mise à jour d'Open-Prod et des modules myfab, c'est l'App Manager qui se charge de réaliser la mise à jour de la base de données (`<strong>sql-update</strong>`) une fois toutes les mises à jour terminées. Cela permet d'optimiser le temps nécessaire tout en fiabilisant le processus. En effet, au lieu de réaliser un remise à niveau de la structure de la base de données (via la commande **`sql-update`**) à la fin de la mise à jour d'Open-Prod et une seconde à la fin de celle des modules myfab, une seule structuration est réalisée à la fin de toutes les mises à jour.

#### 2. Accès à l'App Manager

L'App Manager est accessible depuis un terminal depuis le serveur hébergeant Open-Prod. Si vous ne savez pas vous connecter à votre serveur, vous pouvez suivre les [**instructions décrites ici**](https://docs.myfab.fr/books/1-mise-a-jour-open-prod-et-des-modules-myfab/page/connexion-a-lenvironnement-technique-linux "Connexion à l'environnement technique Linux").

<p class="callout danger">**Dans le cas où vous souhaitez effectuer une mise à jour sur un autre environnement serveur que celui d'Open-Prod, il faut exécuter l'App Manager depuis cet environnement. Par exemple, dans le cas où vous avez un environnement dédié au fonctionnement de Jasper et que vous souhaitez mettre à jour les rapports myfab, il faut réaliser cette mise à jour directement sur ce serveur.**</p>

Une fois connecté, ouvrir un terminal, et exécuter la commande **`app-manager`** pour lancer l'App Manager.

[![image-1663080601484.png](https://docs.myfab.fr/uploads/images/gallery/2022-09/scaled-1680-/image-1663080601484.png)](https://docs.myfab.fr/uploads/images/gallery/2022-09/image-1663080601484.png)

# Utilisation

#### 1. Principe de fonctionnement

L'utilisation est guidée au travers des commentaires affichés tout au long de l'exécution du script. Différents menus permettent de sélectionner les modules à installer / mettre à jour. Une fois la sélection faite, le mot de passe <span style="color: rgb(35,111,161);">**Open-Prod**</span> sera demandé. Le script se charge ensuite de lancer toutes les commandes nécessaires et affiche le déroulé du processus au fur et à mesure dans les terminaux. Vous pouvez suivre l'exécution de ceux-ci à l'écran. En effet, pour chaque application à installer / mettre à jour, l'App Manager ouvrira un terminal pour en gérer indépendamment l'exécution.

- <span style="background-color: rgb(191,237,210);">**En cas de succès**</span> de l'exécution, le terminal concerné sera fermé automatiquement et un message de confirmation sera affiché dans le terminal initial.
- <span style="background-color: rgb(248,202,198);">**En cas d'erreur**</span>, le terminal concerné restera ouvert pour que l'utilisateur en connaisse la raison.

[![image-1663251759922.png](https://docs.myfab.fr/uploads/images/gallery/2022-09/scaled-1680-/image-1663251759922.png)](https://docs.myfab.fr/uploads/images/gallery/2022-09/image-1663251759922.png)

En résumé, il faut lancer l'utilitaire en exécutant la commande `<strong>app-manager</strong>` depuis un terminal, et suivre les questions posées dans le terminal.

#### 2. Choix proposés

Au lancement de l'App Manager, plusieurs choix sont proposés à l'utilisateur. Pour chaque applicatif, il est indiqué entre parenthèses s'il est installé ou non. Voici une description de ce ceux-ci :

- <span style="text-decoration: underline; color: rgb(132,63,161);">**Scripts myhelp**</span> : remplace la commande command-update. Attention, cette option n'est disponible qu'après avoir réalisé la mise à jour permettant d'accéder aux fonctionnalités de l'App Manager.
- <span style="color: rgb(132,63,161);">**<span style="text-decoration: underline;">Open-Prod</span>**</span> : récupère les dernières sources d'<span style="color: rgb(35,111,161);">**Open-Prod**</span> sur le Git de l'éditeur Objectif Pi, puis, met à jour l'application Open-Prod.
- <span style="color: rgb(132,63,161);">**<span style="text-decoration: underline;">Modules myfab</span>**</span> : récupère les dernières sources de myfab sur le Git de l'éditeur myfab, puis, met à jour les modules myfab standards.
- <span style="text-decoration: underline; color: rgb(132,63,161);">**Modules spécifiques myfab**</span> : récupère les dernières sources de myfab specific sur le Git de l'éditeur myfab, puis, met à jour les modules myfab spécifiques.
- <span style="text-decoration: underline; color: rgb(132,63,161);">**Jasper** </span>: lance le processus d'installation complet de Jasper.
- <span style="text-decoration: underline;"><span style="color: rgb(132,63,161); text-decoration: underline;">**Rapports Jasper d'Objectif Pi**</span></span> : déploie le catalogue des rapports Jasper standards d'<span style="color: rgb(35,111,161);">**Open-Prod**</span>.
- <span style="text-decoration: underline; color: rgb(132,63,161);">**Rapports Jasper myfab**</span> : déploie le catalogue des rapports Jasper standards de myfab.

![image.png](https://docs.myfab.fr/uploads/images/gallery/2022-11/scaled-1680-/8bMimage.png)

#### 3. Synchronisation des bases de données

Après l'installation ou la mise à jour d'<span style="color: rgb(35,111,161);">**Open-Prod**</span> ou des modules myfab, une synchronisation (restructuration) de votre(vos) base(s) de données est nécessaire. App-Manager se charge automatiquement de réaliser cette mise à niveau en fin de processus. Il est **primordial** pendant cette étape de ne pas interrompre le script tant que celui-ci n'a pas rendu la main à l'utilisateur.

<p class="callout info"><span style="color: rgb(106,40,2); font-family: '-apple-system', BlinkMacSystemFont, 'Segoe UI', Oxygen, Ubuntu, Roboto, Cantarell, 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif; font-size: 14px; font-style: normal; font-weight: 400;">Si vous avez effectué une restauration ou une création de base de données sur votre environnement, seule la synchronisation de la base de données résultante, doit être effectuée en complément. La mise à jour des sources d'Open-Prod ou des modules myFAB n'est pas nécessaire pour ces deux cas.</span></p>

<p class="callout danger"><span style="color: rgb(0,0,0); font-family: '-apple-system', BlinkMacSystemFont, 'Segoe UI', Oxygen, Ubuntu, Roboto, Cantarell, 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif; font-size: 14px; font-style: normal; font-weight: 400;">Une synchronisation de base de données n'est pas sans risque pour l'intégrité des bases. C'est pourquoi il est nécessaire d'effectuer des sauvegardes avant traitement. De plus, il faut veiller à ce que le traitement se soit bien déroulé avant de considérer celui-ci terminé et réussi.</span></p>

<span style="color: rgb(0,0,0); font-family: '-apple-system', BlinkMacSystemFont, 'Segoe UI', Oxygen, Ubuntu, Roboto, Cantarell, 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif; font-size: 14px; font-style: normal; font-weight: 400;">Pour lancer manuellement la synchronisation des bases de données, vous avez le choix d'utiliser la commande `<strong>sql-update-parallel</strong>` ou la commande`<strong>sql-update-background</strong>` depuis un terminal.</span>

<p class="callout danger"><span style="color: rgb(0,0,0); font-family: '-apple-system', BlinkMacSystemFont, 'Segoe UI', Oxygen, Ubuntu, Roboto, Cantarell, 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif; font-size: 14px; font-style: normal; font-weight: 400;">Attention ne pas utiliser la commande `<strong>sql-update-background</strong>` sur un environnement de production.</span></p>

#####  A. Synchronisation de bases de données en simultané : <span style="color: rgb(0,0,0); font-family: '-apple-system', BlinkMacSystemFont, 'Segoe UI', Oxygen, Ubuntu, Roboto, Cantarell, 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif; font-size: 14px; font-style: normal; font-weight: 400;">**`sql-update-parallel`**</span>

<span style="color: rgb(0,0,0); font-family: '-apple-system', BlinkMacSystemFont, 'Segoe UI', Oxygen, Ubuntu, Roboto, Cantarell, 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif; font-size: 14px; font-style: normal; font-weight: 400;">La commande </span><span style="color: rgb(0,0,0); font-family: '-apple-system', BlinkMacSystemFont, 'Segoe UI', Oxygen, Ubuntu, Roboto, Cantarell, 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif; font-size: 14px; font-style: normal; font-weight: 400;">**`sql-update-parallel`** vous permet de synchroniser plusieurs bases de données en simultané avec un gain de temps conséquent. Par défaut, nous vous proposons de synchroniser vos bases par groupes de 2. </span><span style="color: rgb(0,0,0); font-family: '-apple-system', BlinkMacSystemFont, 'Segoe UI', Oxygen, Ubuntu, Roboto, Cantarell, 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif; font-size: 14px; font-style: normal; font-weight: 400;">Vous pouvez réaliser **jusqu'à 6 traitements simultanés**, avec une limite définie en fonction des capacités de votre environnement (CPU/RAM) pour ne pas entraver son fonctionnement. Vous ne pourrez donc pas entamer le processus si vous saisissez une valeur au delà de cette limite :</span>

![image.png](https://docs.myfab.fr/uploads/images/gallery/2026-08/scaled-1680-/5mfimage.png)

<p class="callout warning"><span style="color: rgb(0, 0, 0);">Contrairement à la commande</span> <span style="color: rgb(0,0,0); font-family: '-apple-system', BlinkMacSystemFont, 'Segoe UI', Oxygen, Ubuntu, Roboto, Cantarell, 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif; font-size: 14px; font-style: normal; font-weight: 400;">**`sql-update-background`**, la commande </span><span style="color: rgb(0,0,0); font-family: '-apple-system', BlinkMacSystemFont, 'Segoe UI', Oxygen, Ubuntu, Roboto, Cantarell, 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif; font-size: 14px; font-style: normal; font-weight: 400;">**`sql-update-parallel`** interrompt l'exécution de l'ERP pendant le processus. Veuillez à sauvegarder votre travail avant</span></p>

#####  B. Synchronisation d'une base de données en arrière-plan : <span style="color: rgb(0,0,0); font-family: '-apple-system', BlinkMacSystemFont, 'Segoe UI', Oxygen, Ubuntu, Roboto, Cantarell, 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif; font-size: 14px; font-style: normal; font-weight: 400;">**`sql-update-background`**</span>

<p class="callout danger"><span style="color: rgb(0,0,0); font-family: '-apple-system', BlinkMacSystemFont, 'Segoe UI', Oxygen, Ubuntu, Roboto, Cantarell, 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif; font-size: 14px; font-style: normal; font-weight: 400;">Attention ne pas utiliser cette commande pour mettre à jour un **environnement de production**. Cette commande est uniquement destinée à vos bacs à sables et environnements de test, car même en mode maintenance, on ne peut pas garantir que la base concernée n'est pas encore en cours d'utilisation. Ceci aurait des conséquences graves (corruption de données, accès impossible, etc.)</span></p>

<span style="color: rgb(0,0,0); font-family: '-apple-system', BlinkMacSystemFont, 'Segoe UI', Oxygen, Ubuntu, Roboto, Cantarell, 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif; font-size: 14px; font-style: normal; font-weight: 400;">La commande </span><span style="color: rgb(0,0,0); font-family: '-apple-system', BlinkMacSystemFont, 'Segoe UI', Oxygen, Ubuntu, Roboto, Cantarell, 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif; font-size: 14px; font-style: normal; font-weight: 400;">**`sql-update-background`** vous permet de synchroniser **1 base à la fois** en arrière-plan. A la différence d'un traitement en simultané, l'ERP continue de fonctionner pendant le processus de synchronisation, mais en v10 **le mode maintenance sera activé** sur votre base de données :</span>

![image.png](https://docs.myfab.fr/uploads/images/gallery/2026-08/scaled-1680-/UnCimage.png)

[![image.png](https://docs.myfab.fr/uploads/images/gallery/2026-08/scaled-1680-/lJrimage.png)](https://docs.myfab.fr/uploads/images/gallery/2026-08/lJrimage.png)


#####  C. Issue du traitement

<span style="color: rgb(0,0,0);">A l'issue de la synchronisation (peu importe la commande sql-update- utilisée) vous obtiendrez un récapitulatif global. Celui-ci vous affiche notamment la durée totale de traitement, les bases de données traitées et les erreurs rencontrées pendant la synchronisation :</span>

![image.png](https://docs.myfab.fr/uploads/images/gallery/2026-08/scaled-1680-/VJ0image.png)

<p class="callout danger"><span style="color: rgb(0,0,0);">Un erreur critique (CRITICAL) implique une interruption totale de l'ERP. En cas d'erreur veuillez vous rapprocher du support pour résoudre le problème.</span></p>

<span style="color: rgb(0,0,0);">De même, un fichier de log sera créé et conservé dans le répertoire `/var/log/openprod`. Le nommage du fichier suit la convention suivante : « UP-&lt;nom de base&gt;-&lt;horodatage&gt;.log ». </span><span style="color: rgb(0,0,0);">Celui-ci vous permettra d'analyser les évènements lors du traitement avec plus de détails. De plus, le récapitulatif listera les principales erreurs et vous permettra de prendre la décision adéquate en fonction du résultat.</span>