Vue d'ensemble
CheckUpdateAPB est un outil de surveillance et de mise a jour automatique pour les donnees tarifaires APB.
L'interface web permet de lancer manuellement les operations, de suivre leur progression en temps reel
via le journal, et de surveiller l'etat du systeme.
Une seule operation peut s'executer a la fois. Si une operation est en cours, les autres boutons
sont bloques jusqu'a sa fin.
Connexion
Mot de passe
L'acces a l'interface est protege par une authentification. A l'ouverture, un ecran de connexion
s'affiche avec le logo iPharma. Saisissez votre nom d'utilisateur et votre mot de passe, puis
cliquez sur Connexion.
Passkey (WebAuthn)
Si une passkey a ete enregistree sur votre appareil, un bouton
Se connecter avec Passkey apparait sous le formulaire.
La connexion par passkey utilise l'empreinte digitale, la reconnaissance faciale ou le code PIN
de votre appareil — aucun mot de passe n'est transmis.
Enregistrer une passkey
Une fois connecte, le bouton + Passkey dans la barre d'en-tete permet d'enregistrer
une nouvelle passkey pour l'appareil en cours. Plusieurs passkeys peuvent etre enregistrees
(ex. ordinateur + telephone).
Deconnexion
Le bouton Deconnexion ferme la session et revient a l'ecran de connexion.
L'administrateur peut egalement ejecter tous les utilisateurs depuis l'application de bureau.
Boutons d'operation
GTIN (APB)
Manuel
Auto
Recupere les codes-barres GTIN depuis l'API de l'APB et genere un fichier de mise a jour tarifaire.
- Authentification OAuth2 aupres de l'API APB
- Telechargement et extraction du fichier GTINinfo.xml depuis un ZIP
- Extraction des paires CNK / GTIN
- Comparaison avec la derniere publication traitee — si deja traitee, arret immediat (rien a faire)
- Comparaison avec le dernier fichier TAR19 existant sur le NAS : seules les nouvelles paires sont retenues
- Generation d'un fichier TAR19xxx.txt complet copie sur le NAS (reference pour la prochaine comparaison)
- Generation d'un fichier TAR19xxx.txt differentiel (nouvelles paires uniquement) copie dans C:\Tarif\1-APB
- Envoi d'un email de notification (total / nouvelles paires, chemins des fichiers)
Si de nouveaux GTIN ont ete copies dans 1-APB :
- Mode manuel : un dialog propose 3 choix —
Pipeline complet (build.bat + Delta + Mount + Deploiement),
Build APB seulement (uniquement 1-APB/build.bat),
ou Non (ne rien lancer).
- Mode automatique : si le systeme est libre, 1-APB/build.bat
est lance automatiquement. Si le systeme est occupe, un message « Build APB differe »
est logue sans bloquer.
Si aucune nouvelle paire n'est detectee, aucun build n'est propose ni lance.
Planification automatique : une fois par jour a heure fixe (configurable),
jours de la semaine configurables.
Produits PS
Manuel
Auto
Lance la mise a jour de la table Produits PharmaSoft.
- Telecharge 3 archives depuis le SFTP :
TARcpl.zip,
TARPLUScpl.zip,
FIPSL_CPL.zip
- Enregistre les archives dans C:\Tarif\3bis-iRobot
- Copie les archives dans le dernier dossier Zannee sur le NAS
- Execute go.bat (extraction 7-Zip + iRobotMajBuilder + upload SSH)
- Envoie un email de succes ou d'echec (urgent vers hotline en cas d'echec)
Planification automatique : le dernier jour de chaque mois a 18h00.
CERP LPA
Manuel
Auto
Lance la mise a jour CERP LPA complete.
- Execute le traitement CERP (batch de copie)
- Enchaine automatiquement les etapes tarif 4, 5 et 6 (delta, deploiement, verification)
- Envoie un email de succes ou d'echec a la fin
Planification automatique : tous les lundis entre 07:00 et 07:59.
Avant d'executer les etapes 4, 5 et 6, l'application verifie la coherence des fichiers
mybuild.number dans les trois repertoires de travail.
En cas d'incoherence, le processus est bloque et les erreurs [SYNC]
sont affichees dans le journal — corrigez manuellement avant de relancer.
Tarif (reprise)
Manuel
Permet de reprendre la mise a jour tarifaire a partir d'une etape specifique,
utile apres un echec ou pour relancer une partie du processus.
Etapes disponibles
- Etape 0 — Dezippage et copie vers 1-APB : extrait les ZIPs tarif et copie les fichiers dans C:\Tarif\1-APB. Si un MAGUpd.zip est detecte, supprime aussi les anciens fichiers MAG* du dossier C:\Tarif\1-MAG puis y dezippe le MAGUpd.zip.
- Etape 1 — Execution 1-APB/build.bat : execute le traitement APB initial puis marque automatiquement les ZIPs TAR/TARPLUS comme traites. Si un MAGUpd.zip est detecte, lance ensuite exec_maj_mag.bat avec le premier fichier MAG* en argument (equivalent du glisser-deposer Windows) puis marque le MAGUpd.zip comme traite.
- Etape 2 — Execution 2bis-Delta : calcule les differences via 2bis-Delta/build.bat ; incremente le compteur dans ce repertoire
- Etape 2ter — Execution 2ter-Mount/build.bat : monte les fichiers mis a jour ; incremente le compteur dans ce repertoire
- Etape 3 — Execution 3bis-Deploiement+check : deploie vers les pharmacies via 3bis-Deploiement/execute.bat puis verifie automatiquement la production ; envoie un email de confirmation
Verification de coherence avant chaque etape (mybuild.number)
Avant les etapes 2, 2ter et 3, l'application compare les fichiers mybuild.number
des trois repertoires (C:\Tarif\2bis-Delta, 2ter-Mount,
3bis-Deploiement) et les dossiers Archive
pour s'assurer que la reprise se fait dans l'etat attendu :
| Reprise a |
2bis-Delta |
2ter-Mount |
3bis-Deploiement |
Condition Archive |
| Etape 2 |
N | N | N |
Archive Delta et Deploy max = N−1 |
| Etape 2ter |
N+1 | N | N |
Archive Delta max = N ; Archive Deploy max = N−1 |
| Etape 3 |
N+1 | N+1 | N |
Archive Delta max = N ; Archive Deploy max = N−1 |
En cas d'incoherence, l'etape est bloquee et les messages [SYNC]
dans le journal indiquent precisement la valeur attendue et la valeur trouvee.
Corrigez les fichiers mybuild.number manuellement dans les
repertoires C:\Tarif concernes avant de relancer.
Lancer MAJ Tarif
Manuel
Lance la chaîne complète de mise à jour tarifaire, depuis le téléchargement des fichiers ZIP jusqu’à la vérification en production.
- Scan NAS préalable : détecte les fichiers .zip présents dans les dossiers
Zannee YYYY/YYYYMM(N) non encore traités.
Si aucun ZIP éligible n’est trouvé, le processus est bloqué et un message d’erreur est affiché.
- Etape 0 — Dézippage et copie vers 1-APB : extrait les ZIPs et copie les fichiers dans C:\Tarif\1-APB. Si un MAGUpd.zip est présent, nettoie en plus C:\Tarif\1-MAG (suppression des anciens MAG*) puis y dézippe le MAGUpd.zip.
- Etape 1 — build.bat (1-APB) : exécute le traitement APB initial puis marque automatiquement les ZIPs TAR/TARPLUS comme traités. Si un MAGUpd.zip est présent, lance ensuite exec_maj_mag.bat avec le premier fichier MAG* en argument (équivalent du glisser-déposer) puis marque le MAGUpd.zip comme traité.
- Etape 2 — Delta (2bis-Delta) : calcule les différences et incrémente le compteur
- Etape 2ter — Montage (2ter-Mount) : monte les fichiers mis à jour
- Etape 3 — Déploiement+check (3bis-Deploiement) : déploie vers les pharmacies et vérifie automatiquement la production
Sauvegarde de la base de données
La sauvegarde BDD avant l’étape 2 (Delta) est effectuée automatiquement — pas de confirmation demandée.
Avant l’étape 2, la cohérence des fichiers mybuild.number est vérifiée automatiquement.
En cas d’incoherence, le processus est bloqué — voir la section
Contrôle de synchronicité ci-dessous.
Produits webservice
Manuel
Gère les demandes de création de nouveaux CNK (codes CNK) en attente dans la table TAR_WEBSERVICE de la base de données pharmasoft.fdb.
- Liste des demandes : affiche tous les produits en attente de création, avec leur CNK, APB, libellé, catégorie, prix et date de création
- Créer le CNK : vous permet de créer un nouveau CNK en insérant les données correspondantes dans les tables TAR10 et TAR15, puis en retirant la demande de TAR_WEBSERVICE. Cette opération effectue une transaction complète (commit ou rollback) et ne s’exécute que si les conditions de validation sont remplies
- Supprimer : retire simplement la demande de la table TAR_WEBSERVICE sans archiver le CNK
Conditions de création
La création d’un CNK n’est possible que si :
- Le CNK n’existe pas déjà dans un produit actif (TAR_STATUS = ’1’) dans TAR_BARCODE
- Le TAR_ID n’est pas déjà présent dans TAR10
- Le TAR_ID n’est pas déjà présent dans TAR15
Les libellés et bénaming sont nettoyés avant insertion (apostrophes échappées, truncature à 50 caractères, conversion majuscules sans accents).
Cette fonctionnalité reproduit le comportement du module CreatorForm de Nouveautes.jar.
Planification automatique : verification toutes les 60 min (configurable), du lundi au samedi, entre 9h00 et 19h00 par defaut. Une notification push est envoyee aux utilisateurs abonnes lors de chaque nouvelle demande detectee. Les bornes (intervalle, jours, plage horaire, activation) sont reglables dans l'onglet Configuration de l'application Swing.
Notifications push
Optionnel
Recevez des notifications iOS/macOS/Android lors des evenements importants de l'application, même lorsque le navigateur est fermé.
Activer sur iPhone / iPad
- Ouvrez le site dans Safari (iOS 16.4 ou superieur)
- Touchez l'icone de partage puis « Sur l'ecran d'accueil »
- Lancez l'application depuis l'icone de l'ecran d'accueil
- Connectez-vous, cliquez sur la carte Notifications
- Cliquez sur Activer les notifications et acceptez la demande iOS
- Choisissez les types d'evenements souhaites (toggles)
- Cliquez sur Envoyer un test pour verifier
Activer sur ordinateur
Le même bouton fonctionne sur Chrome / Edge / Firefox / Safari macOS sans installation. Sur Mac, l'application peut aussi etre installee comme PWA via le bouton de la barre d'adresse.
Evenements disponibles
- Demarrage / fin (succes ou echec) d'une operation
- Erreurs critiques journalisees
- MAJ GTIN reussie
- Nouveau fichier TAR_MAG detecte
- Nouvelle demande TAR_WEBSERVICE detectee automatiquement
- Action manuelle TAR_WEBSERVICE (creation / suppression)
Les abonnements sont stockes côté serveur dans push_subscriptions.json. Chaque appareil gère ses propres preferences. Pour desactiver, ouvrez la carte Notifications et cliquez sur Desactiver, ou supprimez l'autorisation dans les reglages du navigateur.
Contrôle de synchronicité des mybuild.number
Avant d'executer les etapes 4, 5 et 6 de la chaine tarifaire (que ce soit via
Lancer MAJ Tarif, Tarif (reprise) ou CERP LPA), l'application verifie
automatiquement que les trois repertoires de travail sont dans l'etat coherent attendu.
Cette verification compare deux types d'informations :
- Le fichier mybuild.number present dans chacun des trois
repertoires : C:\Tarif\2bis-Delta,
C:\Tarif\2ter-Mount,
C:\Tarif\3bis-Deploiement
- Le numero de dossier maximum dans les sous-repertoires Archive
de 2bis-Delta et 3bis-Deploiement
Si l'etat observe ne correspond pas a l'etat attendu pour l'etape demandee, le processus
est bloque immediatement. Les messages [SYNC]
dans le journal indiquent exactement quelle valeur est attendue et laquelle a ete trouvee.
Que faire en cas d'erreur [SYNC] ?
Identifiez le repertoire dont la valeur est incorrecte et corrigez manuellement le contenu
du fichier mybuild.number correspondant dans
C:\Tarif\. Relancez ensuite l'etape souhaitee via
Tarif (reprise).
Elements de l'interface
Barre d'en-tete
- Point d'etat : un point colore unique indique a la fois la connexion et l'activite :
- ● Vert — connecte, au repos
- ● Orange (pulsant) — operation en cours (survolez pour voir le nom)
- ● Rouge — connexion WebSocket perdue (reconnexion automatique toutes les 5 secondes)
- Bouton Arreter : visible uniquement pendant les operations CERP ou Tarif. Envoie une demande d'annulation
- Bouton + Passkey : enregistre une nouvelle passkey pour l'appareil en cours
- Bouton ? (Aide) : ouvre cette page
- Bouton Deconnexion : ferme la session et revient a l'ecran de connexion
Journal temps reel
Affiche toutes les operations en cours avec horodatage, diffuse en temps reel via WebSocket.
- Les lignes en rouge indiquent une erreur
- Les lignes en orange signalent une alerte (nouveau fichier, demande de creation)
- Les lignes en vert confirment un controle normal (aucun nouveau fichier)
- Le bouton Effacer vide l'affichage du journal (les logs restent dans le dossier logs/)
Notifications email
- Nouveaux fichiers SFTP : email a sebastien@ipharma.lu
- Demandes de creation de produits : email a sebastien@ipharma.lu
- Nouveaux GTIN : email a sebastien@ipharma.lu
- MAJ Produits PS — Succes : email a sebastien@ipharma.lu
- MAJ Produits PS — Echec : email urgent a hotline@ipharma.lu
- MAJ Tarif — Deploiement confirme en production : email « maj tarif numero N passee et liberee » a sebastien@ipharma.lu
- MAJ Tarif — Echec verification production : email « erreur maj tarif n° N » apres 60 min sans confirmation a sebastien@ipharma.lu
- MAJ Tarif — Echec processus : email urgent « [URGENT] MAJ Tarif — ECHEC etape X » a hotline@ipharma.lu
- MAJ CERP LPA — Succes : email a sebastien@ipharma.lu
- MAJ CERP LPA — Echec : email a sebastien@ipharma.lu