DOCUMENTATION TECHNIQUE DU PROJET Batik_WS_Lic_Mob 12/08/2026 Partie 1 › Projet Partie 1 Projet | 12/08/2026 | Batik_WS_Lic_Mob | 2 | | ---------- | ---------------- | --- | Partie 1 › Projet Projet Informations générales Batik_WS_Lic_Mob Web Serice de Licences Répertoire D:\Projets Windev\Batik\WebServices\Batik_WS_Lic_Mob Analyse associée D:\Projets Windev\Batik\WebServices\Batik_WS_Lic_Mob\Licence.ana\Licence.wda Projet Liste des éléments du projet Nom Libellé LIB_COMMUNE LIB_SOAP_CLIENT LIB_SOAP_MOB LIB_Structures Statistiques Nombre de collections de procédures : 4 Projet Code Initialisation de Batik_WS_Lic_Mob gcnxBaseLicence est une Connexion gcnxBaseLicence..Provider =hAccèsHFClientServeur gcnxBaseLicence..Utilisateur ="Admin" gcnxBaseLicence..MotDePasse ="ea0c6460faac5d87db47b4ca0147a34a" gcnxBaseLicence..Serveur = "127.0.0.1:4942"//4943 gcnxBaseLicence..BaseDeDonnées= "LICENCE_CLIENT"//BASE_LICENCES gcnxBaseLicence..Serveur = "127.0.0.1:4910" 12/08/2026 Batik_WS_Lic_Mob 3 Partie 1 › Projet › Code gcnxBaseLicence..BaseDeDonnées= "LICENCE_CLIENT" gcnxBaseLicence..Serveur = "127.0.0.1:4926" gcnxBaseLicence..BaseDeDonnées= "LICENCE_CLIENT" gcnxBaseLicence..Serveur = "127.0.0.1:4943" gcnxBaseLicence..BaseDeDonnées= "BASE_LICENCES" CONSTANT | cREP_OK | ="E0000" | | | | ------------------------- | ----------------------------------------- | --- | --- | | cERR_DATA_VIDE | ="E1001" | | | | cERR_FORMAT_JSON ="E1002" | | | | | cERR_CLI_INCONNU ="E2001" | | | | | cERR_CLI_LIC ="E2002" | | | | | cERR_CLI_CONFIG | ="E2003" //Configuration incomplète | | | | cERR_CLI_BADAPI | ="E2004" //La clé API n'est pas correcte | | | | cERR_LIC_INCONNUE | ="E3001" | | | cERR_LIC_INACTIVE="E3002" | cERR_LIC_EXPIREE ="E3003" | | | | | ------------------------- | -------- | --- | --- | | cERR_LIC_ATTRIBUEE | ="E3004" | | | | cERR_LIC_AUCUNE | ="E3005" | | | cERR_CMD_INCONNUE="E4001" | cERR_HF_BLOCAGE | ="E5001" | | | | --------------- | -------- | --- | --- | | cERR_EXCEPTION | ="E9000" | | | //Commandes utilisées par les mobiles | cMOB_LIC_INSCRIPTION | ="W.LM.INS" | | | | -------------------- | ----------- | --- | --- | //Commandes utilisée par le back-office client cCLI_LIC_ATTRIBUTION ="CLI.LM.ATT" //Déclaration de l'attribution d'une licence mobile | cCLI_LIC_ACTIVATION | ="CLI.LM.ACT" | //Activation | | | -------------------- | -------------- | ------------ | --- | cCLI_LIC_DESACTIVATION ="CLI.LM.OFF" //Désactivation d'une licence sans la libérer | cCLI_LIC_LIBERE | ="CLI.LM.RAZ" | | | | --------------- | -------------- | --- | --- | //Libération d'une licence.(Pour la réaffecter plus tard) | cCLI_LIC_LISTE | ="CLI.LM.LISTE" | | | | -------------- | ---------------- | --- | --- | //Récupération de la liste des licences attribuées (Pour un contrôle de cohérence) | gcVersionNom | ="Omika_WS_LICENCES_MOBILE" | | | | ------------ | --------------------------- | --- | --- | FIN Initialisation lors d'une connexion à une session prélancée de Batik_WS_Lic_Mob //InitialiseFichierTrace("Trace_" + DateSys() +".txt") HChangeConnexion("*",gcnxBaseLicence) HPasse("*","FE3FAC084AEDB73B8006BB60D5E2A9C3") //E8D1613B82CD4A23055BA5501A807DC0 FE3FAC084AEDB73B8006BB60D5E2A9C3 HPasse("*","FE3FAC084AEDB73B8006BB60D5E2A9C3") //E8D1613B82CD4A23055BA5501A807DC0 FE3FAC084AEDB73B8006BB60D5E2A9C3 HPasse("*","E8D1613B82CD4A23055BA5501A807DC0") //E8D1613B82CD4A23055BA5501A807DC0 FE3FAC084AEDB73B8006BB60D5E2A9C3 HPasse("*","4E4D1E5FB1CD92D29631B1568F230E6B") //E8D1613B82CD4A23055BA5501A807DC0 FE3FAC084AEDB73B8006BB60D5E2A9C3 HOuvreConnexion(gcnxBaseLicence) | 12/08/2026 | | Batik_WS_Lic_Mob | 4 | | ---------- | --- | ---------------- | --- | Partie 1 › Projet › Erreurs, warnings et informations Projet Erreurs, warnings et informations ennoloC engiL Détail de l'erreur Localisation L'élément 'SRVHF_Adresse' est un élément zombie, il ne devrait plus être utilisé. LIB_SOAP_MOB.Inscription Procédure locale 108 39 Projet Statistiques sur le code ¹ .tiart/.giL ¹ .mmoc % ¹ sengiL | LIB_COMMUNE | | 83 | 8 7 | | ---------------- | --- | --- | ----- | | LIB_SOAP_CLIENT | | 264 | 5 37 | | LIB_SOAP_MOB | | 180 | 6 60 | | LIB_Structures | | 78 | 6 78 | | Batik_WS_Lic_Mob | | 78 | 21 39 | | | | 638 | 8 26 | ¹ Lignes : Nombre total de lignes de code. % comm. : Pourcentage de commentaires dans le code. Lig./trait. : Nombre de lignes de code par traitement. | 12/08/2026 | Batik_WS_Lic_Mob | | 5 | | ---------- | ---------------- | --- | --- | Partie 2 › Analyse Partie 2 Analyse | 12/08/2026 | Batik_WS_Lic_Mob | 6 | | ---------- | ---------------- | --- | Partie 2 › Analyse Analyse Graphe | 12/08/2026 | Batik_WS_Lic_Mob | 7 | | ---------- | ---------------- | --- | Partie 2 › Analyse › D:\Projets Windev\Batik\WebServices\Batik_WS_Lic_Mob\Licence.ana\Licence.wda › Graphe Analyse Informations générales Licence.wda Répertoire D:\Projets Windev\Batik\WebServices\Batik_WS_Lic_Mob\Licence.ana\ | Répertoire des fichiers de données | | Répertoire de l'application | | | | | | ---------------------------------- | --- | --------------------------- | --- | --- | --- | --- | N°génération Nb. fichiers Nb. rubriques Nb. liaisons Nb. connexions Nb. groupes | 46 | 10 | 137 | 8 | 0 | 0 | | | ---------- | --- | ---------------- | --- | --- | --- | --- | | 12/08/2026 | | Batik_WS_Lic_Mob | | | | 8 | Partie 2 › Analyse › D:\Projets Windev\Batik\WebServices\Batik_WS_Lic_Mob\Licence.ana\Licence.wda › Dictionnaire des rubriques Analyse Dictionnaire des rubriques nolbuoD élC euqinU élC | | Rubrique | | Type | | Utilisée par... | | | --- | -------- | --- | ---- | --- | --------------- | --- | elliaT | aa | | | | | | | | --------------------- | --- | --------------------------- | --- | --- | ------------ | --- | | ARVHF_Pass | | | | | | | | CL_Actif | | Booléen | | | ClientBase | | | CL_CleApiInstal | | | | | | | | CL_CleAPIInstall | | UUID (128 bits) | | | ClientBase | | | CL_CleLicenceDesk | | | | | | | | CL_CleLicenceDesktop | | | | | | | | CL_CleLicenceMob | | | | | | | | CL_CleLicenceServeur | | | | | | | | CL_ClePrivee | | Mémo texte | | | ClientBase | | | CL_ClePublique | | Mémo texte | | | ClientBase | | | CL_Code | | Chaîne | | 100 | ClientBase | | | CL_IDClientAdm | | Entier sur 8 octets | | | ClientBase | | | CL_IDLicenceDesktop | | Entier sur 8 octets | | | ClientBase | | | CL_IDLicenceServeur | | Entier sur 8 octets | | | ClientBase | | | CL_IDServeur | | | | | | | | CL_IDServeurHF | | Entier sur 8 octets | | | ClientBase | | | CL_IDWebServiceMobile | | Entier sur 8 octets | | | ClientBase | | | CL_LicenceDesk | | | | | | | | CL_LicenceMob | | | | | | | | CL_NbLicenceDesk | | Chaîne | | 5 | ClientBase | | | CL_NbLicenceMob | | Chaîne | | 5 | ClientBase | | | CL_Nom | | Chaîne | | 100 | ClientBase | | | CL_NomBase | | Chaîne | | 50 | ClientBase | | | CL_PKID | | Identifiant automatique (8 | | | ClientBase | | | CL_PortServeur | | | | | | | | CL_ServeurClient | | | | | | | | CL_WebServiceMobile | | | | | | | | CLA | | | | | | | | CLA_Actif | | Booléen | | | ClientADM | | | CLA_Adresse | | Chaîne | | 200 | ClientADM | | | CLA_Code | | Chaîne | | 50 | ClientADM | | | CLA_CP | | Chaîne | | 10 | ClientADM | | | CLA_Mails | | Chaîne | | 200 | ClientADM | | | CLA_Nom | | Chaîne | | 50 | ClientADM | | | CLA_Note | | Chaîne binaire | | 50 | ClientADM | | | CLA_PKID | | Identifiant automatique (8 | | | ClientADM | | | CLA_Ville | | Chaîne | | 50 | ClientADM | | | CLAD_PKID | | | | | | | Date et Heure | DateCrea | | | | | ClientBase | | | ---------- | --- | -------------- | ---------------- | --- | ------------ | --- | | | | Date et Heure | | | Serveur | | | | | Date et Heure | | | ServeurHFSQL | | | 12/08/2026 | | | Batik_WS_Lic_Mob | | | 9 | Partie 2 › Analyse › D:\Projets Windev\Batik\WebServices\Batik_WS_Lic_Mob\Licence.ana\Licence.wda › Dictionnaire des rubriques nolbuoD élC euqinU élC | | Rubrique | | Type | | Utilisée par... | | | --- | -------- | --- | ---- | --- | --------------- | --- | elliaT Date et Heure Licence Date et Heure LoginHFSQL | | | Date et Heure | | | ClientADM | | | --------- | --- | -------------- | --- | --- | ----------- | --- | | | | Date et Heure | | | Utilisateur | | | DateModif | | Date et Heure | | | ClientBase | | Date et Heure Serveur | | | Date et Heure | | | ServeurHFSQL | | | --- | --- | -------------- | --- | --- | ------------ | --- | | | | Date et Heure | | | Licence | | | | | Date et Heure | | | LoginHFSQL | | Date et Heure ClientADM | | | Date et Heure | | | Utilisateur | | | ------------------- | --- | --------------------------- | ---------------- | --- | ------------ | --- | | IDClient | | | | | | | | IDClientADM | | | | | | | | IDLicence | | | | | | | | IDLicenceHisto | | | | | | | | IDLoginHFSQL | | | | | | | | IDParametre | | | | | | | | IDServeur | | | | | | | | IDServeurWebService | | | | | | | | IDUtilisateur | | | | | | | | LH_Auteur | | Chaîne | | 50 | LicenceHisto | | | LH_CodeClient | | Chaîne | | 50 | LicenceHisto | | | LH_Date | | Date et Heure | | | LicenceHisto | | | LH_GUIDLicence | | Chaîne | | 50 | LicenceHisto | | | LH_IDLicence | | Chaîne | | 50 | LicenceHisto | | | LH_IdMobile | | Chaîne | | 50 | LicenceHisto | | | LH_IDUser | | Chaîne | | 50 | LicenceHisto | | | LH_Note | | Mémo texte | | | LicenceHisto | | | LH_Operation | | Chaîne | | 50 | LicenceHisto | | | LH_PKID | | Identifiant automatique (8 | | | LicenceHisto | | | LHFSQL_IDClient | | Entier sur 8 octets | | | LoginHFSQL | | | LHFSQL_IDServeurHF | | | | | | | | LHFSQL_Login | | Chaîne | | 50 | LoginHFSQL | | | LHFSQL_MDP | | Chaîne | | 50 | LoginHFSQL | | | LHFSQL_PKID | | Identifiant automatique (8 | | | LoginHFSQL | | | LI_Active | | Booléen | | | Licence | | | LI_Attrib | | | | | | | | LI_Attribue | | | | | | | | LI_CleAPI | | Mémo texte | | | Licence | | | LI_DateAttribution | | Date (aaaammjj) | | | Licence | | | LI_DateExpiration | | Date (aaaammjj) | | | Licence | | | LI_IDClient | | Entier sur 8 octets | | | Licence | | | LI_IDCollaborateur | | Entier sur 8 octets | | | Licence | | | LI_IDMobile | | Chaîne | | 50 | Licence | | | LI_IDUser | | Entier sur 8 octets | | | Licence | | | LI_InfoSupMob | | Mémo texte | | | Licence | | | LI_Libre | | | | | | | | LI_Numero | | Chaîne | | 50 | Licence | | | 12/08/2026 | | | Batik_WS_Lic_Mob | | | 10 | Partie 2 › Analyse › D:\Projets Windev\Batik\WebServices\Batik_WS_Lic_Mob\Licence.ana\Licence.wda › Dictionnaire des rubriques nolbuoD élC euqinU élC | | Rubrique | | Type | | Utilisée par... | | | --- | -------- | --- | ---- | --- | --------------- | --- | elliaT Identifiant automatique (8 | LI_PKID | | | | | Licence | | | ------------------- | --- | --------------------------- | ---------------- | --- | ------------ | --- | | LI_Type | | Entier sur 8 octets | | | Licence | | | LI_UserNom | | Chaîne | | 50 | Licence | | | LI_UserPrenom | | Chaîne | | 50 | Licence | | | LI_VersionMajeur | | Chaîne | | 20 | Licence | | | PA_Code | | Chaîne | | 3 | Parametre | | | PA_Libelle | | Chaîne | | 50 | Parametre | | | PA_Ordre | | Entier sur 4 octets | | | Parametre | | | PA_PKID | | Identifiant automatique (8 | | | Parametre | | | PA_Systeme | | Booléen | | | Parametre | | | PA_Valeur | | Chaîne | | 4 | Parametre | | | SR | | | | | | | | SR_PKID | | | | | | | | SRHF_Admin | | | | | | | | SRV_Actif | | Booléen | | | Serveur | | | SRV_Adresse | | Chaîne | | 50 | Serveur | | | SRV_Certificat | | Chaîne | | 50 | Serveur | | | SRV_IDSRVPS | | | | | | | | SRV_Login | | Chaîne | | 50 | Serveur | | | SRV_Nom | | Chaîne | | 50 | Serveur | | | SRV_OSVersion | | Entier sur 8 octets | | | Serveur | | | SRV_Pass | | Chaîne | | 50 | Serveur | | | SRV_PKID | | Identifiant automatique (8 | | | Serveur | | | SRV_PKID1 | | | | | | | | SRV_Port | | | | | | | | SRV_Type | | Entier sur 8 octets | | | Serveur | | | SRVHF_Actif | | Booléen | | | ServeurHFSQL | | | SRVHF_Admin | | Chaîne | | 100 | ServeurHFSQL | | | SRVHF_Adresse | | Chaîne | | 50 | ServeurHFSQL | | | SRVHF_ADRReplic | | Chaîne | | 50 | ServeurHFSQL | | | SRVHF_CleAPIInstall | | | | | | | | SRVHF_IDClient | | | | | | | | SRVHF_IDSRVPS | | Entier sur 8 octets | | | ServeurHFSQL | | | SRVHF_Login | | | | | | | | SRVHF_MDPReplic | | Chaîne | | 50 | ServeurHFSQL | | | SRVHF_Nom | | Chaîne | | 50 | ServeurHFSQL | | | SRVHF_Pass | | Chaîne | | 100 | ServeurHFSQL | | | SRVHF_PKID | | Identifiant automatique (8 | | | ServeurHFSQL | | | SRVHF_Port | | Entier sur 4 octets | | | ServeurHFSQL | | | SRVHF_Portreplic | | Chaîne | | 50 | ServeurHFSQL | | | SRVHF_Type | | Entier sur 8 octets | | | ServeurHFSQL | | | SRVHF_Version | | Chaîne | | 50 | ServeurHFSQL | | | UserCrea | | Entier sur 8 octets | | | ClientBase | | | | | Entier sur 8 octets | | | Serveur | | | | | Entier sur 8 octets | | | ServeurHFSQL | | | | | Entier sur 8 octets | | | Licence | | | | | Entier sur 8 octets | | | LoginHFSQL | | | | | Entier sur 8 octets | | | ClientADM | | | 12/08/2026 | | | Batik_WS_Lic_Mob | | | 11 | Partie 2 › Analyse › D:\Projets Windev\Batik\WebServices\Batik_WS_Lic_Mob\Licence.ana\Licence.wda › Dictionnaire des rubriques nolbuoD élC euqinU élC | | Rubrique | | Type | | Utilisée par... | | | --- | -------- | --- | ---- | --- | --------------- | --- | elliaT | | | Entier sur 8 octets | | | Utilisateur | | | ------------- | --- | -------------------- | --- | --- | ------------ | --- | | UserModif | | Entier sur 8 octets | | | ClientBase | | | | | Entier sur 8 octets | | | Serveur | | | | | Entier sur 8 octets | | | ServeurHFSQL | | | | | Entier sur 8 octets | | | Licence | | | | | Entier sur 8 octets | | | LoginHFSQL | | | | | Entier sur 8 octets | | | ClientADM | | | | | Entier sur 8 octets | | | Utilisateur | | | UT_Actif | | Booléen | | | Utilisateur | | | UT_Login | | Chaîne | | 250 | Utilisateur | | | UT_MDP | | Chaîne | | 50 | Utilisateur | | | UT_MDPaSaisir | | Booléen | | | Utilisateur | | | UT_Nom | | Chaîne | | 250 | Utilisateur | | | UT_Photo | | Image (mémo binaire) | | | Utilisateur | | Identifiant automatique (8 | UT_PKID | | | | | Utilisateur | | | -------------- | --- | --------------------------- | --- | --- | ----------------- | --- | | UT_Prenom | | Chaîne | | 250 | Utilisateur | | | UT_Superviseur | | Booléen | | | Utilisateur | | | UT_Telephone | | Chaîne | | 50 | Utilisateur | | | WS_AdresseAWP | | Mémo texte | | | ServeurWebService | | | WS_IDServeur | | Entier sur 8 octets | | | ServeurWebService | | | WS_Libelle | | Chaîne | | 50 | ServeurWebService | | | WS_PKID | | Identifiant automatique (8 | | | ServeurWebService | | | WS_ServeurID | | | | | | | Analyse Liaisons Contrainte_Client_Licence Source Relié | Fichier | ClientBase | | | Licence | | | | ------------ | -------------------------------- | --- | --- | -------------- | --- | --- | | Rubrique | CL_PKID () | | | LI_IDClient () | | | | Cardinalités | 0,n | | | 1,1 | | | Modification Modification uniquement si pas d'enregistrement relié Suppression Suppression uniquement si pas d'enregistrement relié Contrainte_ClientADM_ClientBase | 12/08/2026 | | | Batik_WS_Lic_Mob | | | 12 | | ---------- | --- | --- | ---------------- | --- | --- | --- | Partie 2 › Analyse › D:\Projets Windev\Batik\WebServices\Batik_WS_Lic_Mob\Licence.ana\Licence.wda › Liaisons Source Relié | Fichier | ClientADM | | ClientBase | | | ------------ | ----------------------------------------------------- | --- | ----------------- | --- | | Rubrique | CLA_PKID () | | CL_IDClientAdm () | | | Cardinalités | 0,n | | 0,1 | | | Modification | Modification uniquement si pas d'enregistrement relié | | | | | Suppression | Suppression uniquement si pas d'enregistrement relié | | | | Contrainte_ClientBase_LoginHFSQL Source Relié | Fichier | ClientBase | | LoginHFSQL | | | ------------ | ----------------------------------------------------- | --- | ------------------ | --- | | Rubrique | CL_PKID () | | LHFSQL_IDClient () | | | Cardinalités | 0,n | | 0,1 | | | Modification | Modification uniquement si pas d'enregistrement relié | | | | | Suppression | Suppression uniquement si pas d'enregistrement relié | | | | Contrainte_Licence_LicenceHisto Source Relié | Fichier | Licence | | LicenceHisto | | | ------- | ------- | --- | ------------ | --- | Rubrique LI_Numero () LH_GUIDLicence () | Cardinalités | 0,n | | 1,1 | | | ------------ | ----------------------------------------------------- | --- | --- | --- | | Modification | Modification uniquement si pas d'enregistrement relié | | | | | Suppression | Suppression uniquement si pas d'enregistrement relié | | | | Contrainte_Serveur_ServeurHFSQL Source Relié | Fichier | Serveur | | ServeurHFSQL | | | ------------ | ----------------------------------------------------- | --- | ---------------- | --- | | Rubrique | SRV_PKID () | | SRVHF_IDSRVPS () | | | Cardinalités | 0,n | | 0,1 | | | Modification | Modification uniquement si pas d'enregistrement relié | | | | | Suppression | Suppression uniquement si pas d'enregistrement relié | | | | Contrainte_Serveur_ServeurWebSer vice | 12/08/2026 | | Batik_WS_Lic_Mob | | 13 | | ---------- | --- | ---------------- | --- | --- | Partie 2 › Analyse › D:\Projets Windev\Batik\WebServices\Batik_WS_Lic_Mob\Licence.ana\Licence.wda › Liaisons | | | Source | | | Relié | | | ------------ | ----------------------------------------------------- | ------ | --- | ----------------- | ----- | --- | | Fichier | Serveur | | | ServeurWebService | | | | Rubrique | SRV_PKID () | | | WS_IDServeur () | | | | Cardinalités | 0,n | | | 1,1 | | | | Modification | Modification uniquement si pas d'enregistrement relié | | | | | | | Suppression | Suppression uniquement si pas d'enregistrement relié | | | | | | Contrainte_ServeurHFSQL_ClientBas e | | | Source | | | Relié | | | ------- | ------------ | ------ | --- | ---------- | ----- | --- | | Fichier | ServeurHFSQL | | | ClientBase | | | Rubrique SRVHF_PKID () CL_IDServeurHF () | Cardinalités | 0,n | | | 0,1 | | | | ------------ | ----------------------------------------------------- | --- | --- | --- | --- | --- | | Modification | Modification uniquement si pas d'enregistrement relié | | | | | | | Suppression | Suppression uniquement si pas d'enregistrement relié | | | | | | Contrainte_ServeurWebService_Clie ntBase | | | Source | | | Relié | | | ------- | ----------------- | ------ | --- | ---------- | ----- | --- | | Fichier | ServeurWebService | | | ClientBase | | | Rubrique WS_PKID () CL_IDWebServiceMobile () | Cardinalités | 0,n | | | 1,1 | | | | ------------ | ----------------------------------------------------- | --- | --- | --- | --- | --- | | Modification | Modification uniquement si pas d'enregistrement relié | | | | | | | Suppression | Suppression uniquement si pas d'enregistrement relié | | | | | | Analyse Fichiers et rubriques somém .sserpmoC seénnod .tpyrC ¹ * rcE/tceL .lnJ | | | noitarénég°N | | | omém .tpyrC | | | --- | ----------- | ------------- | ----------------------- | ------------ | ------------ | --- | | | noitaivérbA | .gerne elliaT | | | xedni .tpyrC | | | | | | ¹ * secapsE noitacilpéR | ¹ * étirucéS | | | ¹ * rcE .lnJ | | | .otua .dI | oG2 ed + | | | | | --- | --- | --------- | -------- | --- | --- | --- | epyT | ClientADM | | 7 669 | | | | HFSQL | | --------- | --- | ------ | --- | --- | --- | ------ | Classic | 12/08/2026 | | | Batik_WS_Lic_Mob | | | 14 | | ---------- | --- | --- | ---------------- | --- | --- | --- | Partie 2 › Analyse › D:\Projets Windev\Batik\WebServices\Batik_WS_Lic_Mob\Licence.ana\Licence.wda › Fichiers et rubriques › Analyse somém .sserpmoC ¹ * rcE/tceL .lnJ seénnod .tpyrC noitarénég°N omém .tpyrC | | noitaivérbA | .gerne elliaT | noitacilpéR | xedni .tpyrC | | | --- | ----------- | ------------- | ----------- | ------------ | --- | | | | | ¹ * secapsE | ¹ * étirucéS | | ¹ * rcE .lnJ | | | .otua .dI | oG2 ed + | | | | --- | --- | --------- | -------- | --- | --- | epyT | ClientBase | | 20 389 | | | HFSQL | | ---------- | --- | ------- | --- | --- | ------ | Classic | Licence | | 13 343 | | | HFSQL | | ------- | --- | ------- | --- | --- | ------ | Classic | LicenceHisto | | 3 289 | | | HFSQL | | ------------ | --- | ------ | --- | --- | ------ | Classic | LoginHFSQL | | 6 160 | | | HFSQL | | ---------- | --- | ------ | --- | --- | ------ | Classic | Parametre | | 6 82 | | | HFSQL | | --------- | --- | ----- | --- | --- | ------ | Classic | Serveur | | 8 322 | | | HFSQL | | ------- | --- | ------ | --- | --- | ------ | Classic | ServeurHFSQL | | 15 580 | | | HFSQL | | ------------ | --- | ------- | --- | --- | ------ | Classic | ServeurWebService | | 3 84 | | | HFSQL | | ----------------- | --- | ----- | --- | --- | ------ | Classic | Utilisateur | | 2 916 | | | HFSQL | | ----------- | --- | ------ | --- | --- | ------ | Classic ¹ Espaces * : Complétion des chaînes par des espaces Jnl. Ecr * : Journalisation des écritures Jnl. Lect/Ecr * : Journalisation des lectures et écritures Sécurité * : Mode sécurité renforcée ClientADM Fichiers et rubriques Informations générales | ClientADM | | ClientADM | | | | | -------------- | --- | ------------- | --- | --- | --- | | Nom sur disque | | ClientADM.fic | | | | Rubriques du fichier ClientADM nolbuoD élC | | | | | euqinU élC | tuaféd .laV | | --- | --- | --- | --- | ---------- | ----------- | Libellé Type elliaT sneS CLA_PKID Identifiant de Client aDMIN Identifiant automatique (8 octets) | CLA_Nom | Nom du client | | Chaîne | 50 | | | ---------- | -------------------- | --- | ---------------- | --- | --- | | CLA_Code | Code Admin du client | | Chaîne | 50 | | | 12/08/2026 | | | Batik_WS_Lic_Mob | | 15 | Partie 2 › ... › Fichiers et rubriques › ClientADM › Fichiers et rubriques nolbuoD élC | | | | euqinU élC | tuaféd .laV | | --- | --- | --- | ---------- | ----------- | Libellé Type elliaT sneS | CLA_Mails | Liste emails client | Chaîne | 200 | | | --------- | -------------------- | -------------- | --- | --- | | CLA_Actif | Client Actif Oui/Non | Booléen | | 1 | | CLA_Note | Note client | Chaîne binaire | 50 | | | DateCrea | DateCrea | Date et Heure | | | (aaaammjjhhmmssccc) | DateModif | DateModif | Date et Heure | | | | --------- | --------- | -------------- | --- | --- | (aaaammjjhhmmssccc) | UserCrea | UserCrea | Entier sur 8 octets | | 0 | | ----------- | --------- | ------------------- | --- | --- | | UserModif | UserModif | Entier sur 8 octets | | 0 | | CLA_Adresse | Adresse | Chaîne | 200 | | | CLA_CP | CP | Chaîne | 10 | | | CLA_Ville | Ville | Chaîne | 50 | | | 12/08/2026 | | Batik_WS_Lic_Mob | | 16 | Partie 2 › ... › Fichiers et rubriques › ClientBase › Fichiers et rubriques ClientBase Fichiers et rubriques Informations générales ClientBase Client Base Nom sur disque ClientBase.fic Rubriques du fichier ClientBase nolbuoD élC | | | | euqinU élC | tuaféd .laV | | --- | --- | --- | ---------- | ----------- | Libellé Type | | | | elliaT | sneS | | ------- | --------------------- | ------------------------ | ------ | ---- | | CL_PKID | Identifiant de Client | Identifiant automatique | | | (8 octets) | CL_IDServeurHF | ServeurHFSQL du client | Entier sur 8 octets | | 0 | | -------------- | ---------------------- | ------------------- | --- | --- | CL_IDLicenceServeur Identifiant de licence Serveur Entier sur 8 octets 0 CL_IDLicenceDesktop Identifiant de Licence Desktop Entier sur 8 octets 0 | CL_Nom | Nom du client | Chaîne | 100 | | | ---------------- | --------------------------- | --------------- | --- | --- | | CL_Code | Code Client | Chaîne | 100 | | | CL_NomBase | Nom de la base Client | Chaîne | 50 | | | CL_Actif | Client Actif | Booléen | | 1 | | CL_NbLicenceDesk | Nb licences Desktop | Chaîne | 5 | | | CL_NbLicenceMob | Nb licences Mobile | Chaîne | 5 | | | CL_CleAPIInstall | Clé API pour l'installation | UUID (128 bits) | | | | CL_ClePrivee | Clé Privée | Mémo texte | | | | CL_ClePublique | Clé Publique | Mémo texte | | | | DateCrea | DateCrea | Date et Heure | | | (aaaammjjhhmmssccc) | DateModif | DateModif | Date et Heure | | | | --------- | --------- | -------------- | --- | --- | (aaaammjjhhmmssccc) | UserCrea | UserCrea | Entier sur 8 octets | | 0 | | -------------- | -------------- | ------------------- | --- | --- | | UserModif | UserModif | Entier sur 8 octets | | 0 | | CL_IDClientAdm | CL_IDClientAdm | Entier sur 8 octets | | | CL_IDWebServiceMobil | | CL_WebServiceMobile | Entier sur 8 octets | | 0 | | ---------- | ------------------- | ------------------- | --- | --- | | 12/08/2026 | | Batik_WS_Lic_Mob | | 17 | Partie 2 › ... › Fichiers et rubriques › Licence › Fichiers et rubriques Licence Fichiers et rubriques Informations générales Licence Licence Nom sur disque Licence.fic Rubriques du fichier Licence nolbuoD élC | | | | euqinU élC | tuaféd .laV | | --- | --- | --- | ---------- | ----------- | Libellé Type | | | | elliaT | sneS | | ------- | ---------------------- | ------------------------ | ------ | ---- | | LI_PKID | Identifiant de Licence | Identifiant automatique | | | (8 octets) | LI_IDClient | Identifiant client | Entier sur 8 octets | | 0 | | ----------- | ------------------ | ------------------- | --- | --- | LI_IDCollaborateur Identifiant collaborateur Entier sur 8 octets 0 | LI_IDUser | Identifiant Utilisateur | Entier sur 8 octets | | 0 | | ----------- | ---------------------------------- | ------------------- | --- | --- | | LI_Numero | LI_Numero | Chaîne | 50 | | | LI_IDMobile | ID du Mobile | Chaîne | 50 | | | LI_Type | Type de licence | Entier sur 8 octets | | 0 | | LI_UserNom | Nom de l'utilisateur de la licence | Chaîne | 50 | | LI_UserPrenom Prénom de l'utilisateur de la licence Chaîne 50 | LI_DateAttribution | Date Attribution Licence | Date (aaaammjj) | | | | ------------------ | ----------------------------------- | --------------- | --- | --- | | LI_DateExpiration | Date Expiration Licence | Date (aaaammjj) | | | | LI_VersionMajeur | Version du logiciel | Chaîne | 20 | | | LI_InfoSupMob | Informations complémentaire sur le | Mémo texte | | | | LI_CleAPI | Clé API pour notification | Mémo texte | | | | LI_Active | Active Oui/Non | Booléen | | 1 | | DateCrea | DateCrea | Date et Heure | | | (aaaammjjhhmmssccc) | DateModif | DateModif | Date et Heure | | | | --------- | --------- | -------------- | --- | --- | (aaaammjjhhmmssccc) | UserCrea | UserCrea | Entier sur 8 octets | | 0 | | ---------- | --------- | ------------------- | --- | --- | | UserModif | UserModif | Entier sur 8 octets | | 0 | | 12/08/2026 | | Batik_WS_Lic_Mob | | 18 | Partie 2 › ... › Fichiers et rubriques › LicenceHisto › Fichiers et rubriques LicenceHisto Fichiers et rubriques Informations générales LicenceHisto LicenceHisto Nom sur disque LicenceHisto.fic Rubriques du fichier LicenceHisto nolbuoD élC | | | | euqinU élC | tuaféd .laV | | --- | --- | --- | ---------- | ----------- | Libellé Type | | | | elliaT | sneS | | ------- | --------------------------- | ------------------------ | ------ | ---- | | LH_PKID | Identifiant de LicenceHisto | Identifiant automatique | | | (8 octets) | LH_GUIDLicence | GUID Licence | Chaîne | 50 | 0 | | -------------- | ------------ | -------------- | --- | --- | | LH_Date | Date | Date et Heure | | | (aaaammjjhhmmssccc) | LH_Operation | Operation | Chaîne | 50 | | | ------------- | ----------- | ---------------- | --- | --- | | LH_Auteur | Auteur | Chaîne | 50 | 0 | | LH_Note | Note | Mémo texte | | | | LH_CodeClient | Code Client | Chaîne | 50 | | | LH_IdMobile | Id Mobile | Chaîne | 50 | | | 12/08/2026 | | Batik_WS_Lic_Mob | | 19 | Partie 2 › ... › Fichiers et rubriques › LoginHFSQL › Fichiers et rubriques LoginHFSQL Fichiers et rubriques Informations générales LoginHFSQL Login HFSQL Nom sur disque LoginHFSQL.fic Rubriques du fichier LoginHFSQL nolbuoD élC | | | | euqinU élC | tuaféd .laV | | --- | --- | --- | ---------- | ----------- | Libellé Type | | | | elliaT | sneS | | --- | --- | --- | ------ | ---- | LHFSQL_PKID Identifiant de LoginHFSQL Identifiant automatique (8 octets) | LHFSQL_Login | Login HFSQL | Chaîne | 50 | | | ------------ | ------------------ | -------------- | --- | --- | | LHFSQL_MDP | Mot de passe HFSQL | Chaîne | 50 | | | DateCrea | DateCrea | Date et Heure | | | (aaaammjjhhmmssccc) | DateModif | DateModif | Date et Heure | | | | --------- | --------- | -------------- | --- | --- | (aaaammjjhhmmssccc) | UserCrea | UserCrea | Entier sur 8 octets | | 0 | | --------------- | --------------- | ------------------- | --- | --- | | UserModif | UserModif | Entier sur 8 octets | | 0 | | LHFSQL_IDClient | LHFSQL_IDClient | Entier sur 8 octets | | | | 12/08/2026 | | Batik_WS_Lic_Mob | | 20 | Partie 2 › ... › Fichiers et rubriques › Parametre › Fichiers et rubriques Parametre Fichiers et rubriques Informations générales Parametre Parametre Nom sur disque Parametre.fic Rubriques du fichier Parametre nolbuoD élC | | | | euqinU élC | tuaféd .laV | | --- | --- | --- | ---------- | ----------- | Libellé Type | | | | elliaT | sneS | | ------- | ------------------------ | ------------------------ | ------ | ---- | | PA_PKID | Identifiant de Parametre | Identifiant automatique | | | (8 octets) | PA_Code | PA_Code | Chaîne | 3 | | | ---------- | --------------- | ------------------- | --- | --- | | PA_Libelle | PA_Libelle | Chaîne | 50 | | | PA_Valeur | PA_Valeur | Chaîne | 4 | | | PA_Ordre | PA_Ordre | Entier sur 4 octets | | 0 | | PA_Systeme | Système Oui/non | Booléen | | 0 | | 12/08/2026 | | Batik_WS_Lic_Mob | | 21 | Partie 2 › ... › Fichiers et rubriques › Serveur › Fichiers et rubriques Serveur Fichiers et rubriques Informations générales Serveur Serveur Nom sur disque Serveur.fic Rubriques du fichier Serveur nolbuoD élC | | | | euqinU élC | tuaféd .laV | | --- | --- | --- | ---------- | ----------- | Libellé Type | | | | elliaT | sneS | | -------- | ---------------------- | ------------------------ | ------ | ---- | | SRV_PKID | Identifiant de Serveur | Identifiant automatique | | | (8 octets) | SRV_Nom | Nom du serveur | Chaîne | 50 | | | -------------- | --------------------- | ------------------- | --- | --- | | SRV_Adresse | Adresse du serveur | Chaîne | 50 | | | SRV_Type | Type de serveur | Entier sur 8 octets | | 0 | | SRV_OSVersion | OS version du serveur | Entier sur 8 octets | | 0 | | SRV_Login | Login du serveur | Chaîne | 50 | | | SRV_Pass | MDP du serveur | Chaîne | 50 | | | SRV_Certificat | Certificat du serveur | Chaîne | 50 | | | SRV_Actif | Actif Oui/Non | Booléen | | 1 | | DateModif | DateModif | Date et Heure | | | (aaaammjjhhmmssccc) | DateCrea | DateCrea | Date et Heure | | | | -------- | -------- | -------------- | --- | --- | (aaaammjjhhmmssccc) | UserModif | UserModif | Entier sur 8 octets | | 0 | | ---------- | --------- | ------------------- | --- | --- | | UserCrea | UserCrea | Entier sur 8 octets | | 0 | | 12/08/2026 | | Batik_WS_Lic_Mob | | 22 | Partie 2 › ... › Fichiers et rubriques › ServeurHFSQL › Fichiers et rubriques ServeurHFSQL Fichiers et rubriques Informations générales ServeurHFSQL ServeurHFSQL Nom sur disque ServeurHFSQL.fic Rubriques du fichier ServeurHFSQL nolbuoD élC | | | | euqinU élC | tuaféd .laV | | --- | --- | --- | ---------- | ----------- | Libellé Type | | | | elliaT | sneS | | ---------- | ---------------------- | ------------------------ | ------ | ---- | | SRVHF_PKID | Identifiant de Serveur | Identifiant automatique | | | (8 octets) | SRVHF_IDSRVPS | Identifiant serveur VPS | Entier sur 8 octets | | 0 | | ---------------- | ----------------------------- | ------------------- | --- | --- | | SRVHF_Nom | Nom du Serveur HF | Chaîne | 50 | | | SRVHF_Adresse | SRVHF_Adresse | Chaîne | 50 | | | SRVHF_Port | Port du serveur | Entier sur 4 octets | | 0 | | SRVHF_Actif | Actif Oui/Non | Booléen | | 1 | | SRVHF_Type | Type de serveur | Entier sur 8 octets | | 0 | | SRVHF_Version | Version du serveur HFSQL | Chaîne | 50 | | | SRVHF_ADRReplic | Adresse IP Client Replication | Chaîne | 50 | | | SRVHF_Portreplic | Port Client Replication | Chaîne | 50 | | | SRVHF_MDPReplic | MDP pour la réplication | Chaîne | 50 | | | DateCrea | DateCrea | Date et Heure | | | (aaaammjjhhmmssccc) | DateModif | DateModif | Date et Heure | | | | --------- | --------- | -------------- | --- | --- | (aaaammjjhhmmssccc) | UserCrea | UserCrea | Entier sur 8 octets | | 0 | | ----------- | --------- | ------------------- | --- | --- | | UserModif | UserModif | Entier sur 8 octets | | 0 | | SRVHF_Admin | Admin | Chaîne | 100 | | | SRVHF_Pass | Pass | Chaîne | 100 | | | 12/08/2026 | | Batik_WS_Lic_Mob | | 23 | Partie 2 › ... › Fichiers et rubriques › ServeurWebService › Fichiers et rubriques ServeurWebService Fichiers et rubriques Informations générales ServeurWebService ServeurWebService Nom sur disque ServeurWebService.fic Rubriques du fichier ServeurWebService nolbuoD élC | | | | euqinU élC | tuaféd .laV | | --- | --- | --- | ---------- | ----------- | Libellé Type | | | | elliaT | sneS | | --- | --- | --- | ------ | ---- | WS_PKID Identifiant de ServeurWebService Identifiant automatique (8 octets) | WS_IDServeur | WS_ServeurID | Entier sur 8 octets | | 0 | | ------------- | ------------ | ------------------- | --- | --- | | WS_AdresseAWP | Adresse AWP | Mémo texte | | | | WS_Libelle | Libellé | Chaîne | 50 | | | 12/08/2026 | | Batik_WS_Lic_Mob | | 24 | Partie 2 › ... › Fichiers et rubriques › Utilisateur › Fichiers et rubriques Utilisateur Fichiers et rubriques Informations générales Utilisateur Utilisateur Nom sur disque Utilisateur.fic Rubriques du fichier Utilisateur nolbuoD élC | | | | euqinU élC | tuaféd .laV | | --- | --- | --- | ---------- | ----------- | Libellé Type | | | | elliaT | sneS | | ------- | -------------------------- | ------------------------ | ------ | ---- | | UT_PKID | Identifiant de Utilisateur | Identifiant automatique | | | (8 octets) | UT_Login | UT_Login | Chaîne | 250 | | | -------------- | -------------- | -------------------- | --- | --- | | UT_Nom | UT_Nom | Chaîne | 250 | | | UT_Prenom | UT_Prenom | Chaîne | 250 | | | UT_MDP | UT_MDP | Chaîne | 50 | | | UT_Superviseur | UT_Superviseur | Booléen | | 0 | | UT_MDPaSaisir | UT_MDPaSaisir | Booléen | | 0 | | UT_Photo | UT_Photo | Image (mémo binaire) | | | | UT_Telephone | UT_Telephone | Chaîne | 50 | | | UT_Actif | UT_Actif | Booléen | | 1 | | DateCrea | DateCrea | Date et Heure | | | (aaaammjjhhmmssccc) | DateModif | DateModif | Date et Heure | | | | --------- | --------- | -------------- | --- | --- | (aaaammjjhhmmssccc) | UserCrea | UserCrea | Entier sur 8 octets | | 0 | | ---------- | --------- | ------------------- | --- | --- | | UserModif | UserModif | Entier sur 8 octets | | 0 | | 12/08/2026 | | Batik_WS_Lic_Mob | | 25 | Partie 3 › Collection de procédures Partie 3 Collection de procédures | 12/08/2026 | Batik_WS_Lic_Mob | 26 | | ---------- | ---------------- | --- | Partie 3 › Collection de procédures LIB_Structures Code Déclaration de LIB_Structures ST_MOB_DMD_INSCRIPTION est une Structure nIdUser est un entier sur 8 octets saIdMobile est une chaîne ANSI saCodeClient est une chaîne ANSI saOS_Type est une chaîne ANSI saOS_Version est une chaîne ANSI saNumLicence est une chaîne ANSI saVersionExe est une chaîne ANSI saOS_Info est une chaîne ANSI saNotifKey est une chaîne ANSI FIN //Exemple : {"saIdMobile":"1233","saIdClient":"BOUVARD.01","saOS_Type":"ANDROID","saOS_Version":"5.02","saNumLi cence":"f71919f4f9974d70967014fbbefabf9d","saVersionExe":"1.0.255.0"} ST_MOB_REP_INSCRIPTION est une Structure saNomSociete est une chaîne ANSI saServeurIP est une chaîne ANSI saServeurPort est une chaîne ANSI saWSadresse est une chaîne ANSI saNom est une chaîne ANSI saPrenom est une chaîne ANSI nIdUser est un entier sur 8 octets nIdClb est un entier sur 8 octets FIN //Bo Client Demande Licence Mobile ST_CLI_DMD_LM est une Structure saCodeClient est une chaîne ANSI saNom est une chaîne ANSI saPrenom est une chaîne ANSI nIdUser est un entier sur 8 octets nIdClb est un entier sur 8 octets FIN //Bo Client Réponse à demande Licence Mobile ST_CLI_REP_DMD_LM est une Structure saNumLicence est une chaîne ANSI saDateAttrib est une chaîne ANSI saDateExpir est une chaîne ANSI FIN //Bo Client Action sur Licence Mobile ST_CLI_ACTION_LM est une Structure saCodeClient est une chaîne ANSI saNumLicence est une chaîne ANSI FIN 12/08/2026 Batik_WS_Lic_Mob 27 Partie 3 › Collection de procédures › LIB_Structures › Code //Bo Client Demande Liste licences mobile ST_CLI_DMD_LISTE_LM est une Structure saCodeClient est une chaîne ANSI FIN ST_WS_VERIF_LM est une Structure saCodeClient est une chaîne ANSI saLicence est une chaîne ANSI saIdMobile est une chaîne ANSI FIN 12/08/2026 Batik_WS_Lic_Mob 28 Partie 3 › Collection de procédures › LIB_SOAP_MOB › Code LIB_SOAP_MOB Code Déclaration de LIB_SOAP_MOB ST_CMD_MOB est une Structure saCMD est une chaîne ANSI saJSON est une chaîne ANSI FIN ST_REP_MOB est une Structure saEtatReponse est une chaîne ANSI saRepJSON est une chaîne ANSI FIN Procédure globale Inscription PROCÉDURE PRIVÉ Inscription(saData est une chaîne ANSI) QUAND EXCEPTION DANS stRep est une ST_REP_MOB TraceINFO("MOB_Inscription :" + saData) SI saData<>"" ALORS stIns est une ST_MOB_DMD_INSCRIPTION Désérialise(stIns,saData,psdJSON) SI ErreurDétectée() ALORS stRep.saEtatReponse=cERR_FORMAT_JSON TraceDEBUG(stRep.saEtatReponse) RENVOYER stRep FIN saCodeClient est une chaîne ANSI = stIns.saCodeClient SI PAS HLitRecherchePremier(ClientBase,CL_Code,stIns.saCodeClient) ALORS //Client Inconnu stRep.saEtatReponse=cERR_CLI_INCONNU TraceDEBUG(stRep.saEtatReponse) RENVOYER stRep FIN SI ClientBase.CL_IDServeurHF=Null ALORS stRep.saEtatReponse=cERR_CLI_CONFIG TraceDEBUG(stRep.saEtatReponse) RENVOYER stRep FIN SI PAS HLitRecherchePremier(ServeurHFSQL,SRVHF_PKID,ClientBase.CL_IDServeurHF) ALORS stRep.saEtatReponse=cERR_CLI_CONFIG TraceDEBUG(stRep.saEtatReponse) RENVOYER stRep FIN SI PAS ServeurHFSQL.SRVHF_Actif ALORS stRep.saEtatReponse=cERR_CLI_CONFIG TraceDEBUG(stRep.saEtatReponse) RENVOYER stRep FIN SI ClientBase.CL_IDWebServiceMobile=Null ALORS stRep.saEtatReponse=cERR_CLI_CONFIG 12/08/2026 Batik_WS_Lic_Mob 29 Partie 3 › Collection de procédures › LIB_SOAP_MOB › Code TraceDEBUG(stRep.saEtatReponse) RENVOYER stRep FIN SI PAS HLitRecherchePremier(ServeurWebService,WS_PKID,ClientBase.CL_IDWebServiceMobile) ALORS stRep.saEtatReponse=cERR_CLI_CONFIG TraceDEBUG(stRep.saEtatReponse) RENVOYER stRep FIN //Vérification de l'existence de la Licence dont le numéro est présenté //Elle doit correspondre au client et être active SI PAS HLitRecherchePremier(Licence,LI_Numero,stIns.saNumLicence) ALORS stRep.saEtatReponse=cERR_LIC_INCONNUE TraceDEBUG(stRep.saEtatReponse) RENVOYER stRep FIN SI Licence.LI_IDClient<>ClientBase.CL_PKID ALORS stRep.saEtatReponse=cERR_CLI_LIC //Le client ne correspond pas TraceDEBUG(stRep.saEtatReponse) RENVOYER stRep FIN SI PAS Licence.LI_Active ALORS stRep.saEtatReponse=cERR_LIC_INACTIVE //La licence est désactivée TraceDEBUG(stRep.saEtatReponse) RENVOYER stRep FIN SI Licence.LI_DateExpiration<>"" _ET_ Licence.LI_DateExpiration"" _ET_ Licence.LI_IDMobile <>stIns.saIdMobile ALORS stRep.saEtatReponse=cERR_LIC_ATTRIBUEE //La licence est déjà attribuée à un autre mobile TraceDEBUG(stRep.saEtatReponse) RENVOYER stRep FIN SI stIns.nIdUser<>0 _ET_ Licence.LI_IDUser<>stIns.nIdUser ALORS stRep.saEtatReponse=cERR_LIC_ATTRIBUEE //La licence est déjà attribuée à un autre mobile ou a été libérée TraceDEBUG(stRep.saEtatReponse) RENVOYER stRep FIN SI Licence.LI_IDMobile <> stIns.saIdMobile ALORS //Inscription Licence.LI_IDMobile = stIns.saIdMobile Licence.DateModif = DateHeureSys() Licence.UserModif = 1 HModifie(Licence) FIN stRep.saEtatReponse =cREP_OK stRepIns est un ST_MOB_REP_INSCRIPTION stRepIns.saNomSociete=ClientBase.CL_Nom stRepIns.saNom =Licence.LI_UserNom stRepIns.saPrenom =Licence.LI_UserPrenom stRepIns.nIdUser =Licence.LI_IDUser stRepIns.nIdClb =Licence.LI_IDCollaborateur stRepIns.saServeurIP =ServeurHFSQL.SRVHF_Adresse 12/08/2026 Batik_WS_Lic_Mob 30 Partie 3 › Collection de procédures › LIB_SOAP_MOB › Code stRepIns.saServeurPort =ServeurHFSQL.SRVHF_Port stRepIns.saWSadresse =ServeurWebService.WS_AdresseAWP Sérialise(stRepIns,stRep.saRepJSON,psdJSON) HRAZ(LicenceHisto) LicenceHisto.LH_Date=DateHeureSys() LicenceHisto.LH_Auteur ="WS.MOB" //WebService Mobile LicenceHisto.LH_Operation ="MOB.INSCRIPTION" LicenceHisto.LH_GUIDLicence =Licence.LI_Numero LicenceHisto.LH_CodeClient =ClientBase.CL_Code LicenceHisto.LH_IdMobile =Licence.LI_IDMobile LicenceHisto.LH_Note =stRep.saRepJSON HAjoute(LicenceHisto) TraceINFO(stRep.saRepJSON) RENVOYER stRep SINON stRep.saEtatReponse=cERR_DATA_VIDE TraceDEBUG(stRep.saEtatReponse) RENVOYER stRep FIN FAIRE TraceERREUR(ExceptionInfo(errComplet)) stRep.saEtatReponse=cERR_EXCEPTION TraceERREUR(stRep.saEtatReponse) RENVOYER stRep FIN Procédure globale MOB_CMD PROCÉDURE MOB_CMD(stCMD est un ST_CMD_MOB) TraceDébut(trFichier, ComplèteRep(fRepDonnées()) + "Trace_" + stCMD.saCMD + "_" + DateSys() + ".txt") stRep est un ST_REP_MOB TraceINFO("MOB_CMD") TraceINFO(stCMD.saCMD) TraceINFO(stCMD.saJSON) QUAND EXCEPTION DANS SELON stCMD.saCMD CAS cMOB_LIC_INSCRIPTION //Inscription d'un mobile stRep=Inscription(stCMD.saJSON) AUTRE CAS stRep.saEtatReponse = cERR_CMD_INCONNUE FIN TraceINFO("Réponse : " + stRep.saEtatReponse) RENVOYER stRep FAIRE TraceERREUR(ExceptionInfo(errComplet)) stRep.saEtatReponse = cERR_EXCEPTION TraceERREUR("Réponse : " + stRep.saEtatReponse) RENVOYER stRep FIN 12/08/2026 Batik_WS_Lic_Mob 31 Partie 3 › Collection de procédures › LIB_COMMUNE › Code LIB_COMMUNE Code Déclaration de LIB_COMMUNE CONSTANT gsCleCryptage ="" cTrace_Info =0 cTrace_Debug =1 cTrace_Erreur =2 FIN gnNiveauTraceMini est un entier = cTrace_Info gsaCumulTrace est une chaîne ANSI gbTraceBufferReception est un booléen gnNbJoursLog est un entier Procédure globale InfoWS PROCÉDURE PRIVÉ InfoWS() saREP est une chaîne ANSI saREP="-----------------------------------------------" saREP+=RC+"Executable :" + ExeInfo(exeNom) + " version :" + ExeInfo(exeVersion) saREP+=RC+"Date serveur :" + DateVersChaîne(DateHeureSys(),"JJ/MM/AAAA HH:mm:SS") saREP+=RC+"Analyse :" + Remplace(HInfoAnalyse(),RC," N° :") saREP+=RC+"Rep Données :" + fRepDonnées() saREP+=RC+"Rep Web :" + fRepWeb() saREP+=RC+"Ini :" + NomDuFichierIni() saREP+=RC+"IP Client :" + WebserviceAdresseIPClient(Vrai) saREP+=RC+"-----------------------------------------------" RENVOYER saREP Procédure globale LitConfigurationINI PROCÉDURE PRIVÉ LitConfigurationINI() saFicIni est une chaîne = NomDuFichierIni() SI PAS fFichierExiste(saFicIni) ALORS INIEcrit("DEBUG","NIVEAU","0",saFicIni) FIN // Lit la valeur du niveau de trace par défaut gnNiveauTraceMini = Val( INILit("DEBUG", "NIVEAU", "0",saFicIni) ) gbTraceBufferReception = Val(INILit("DEBUG","TRACE BUFFER","0",saFicIni))=1 gnNbJoursLog = Val( INILit("LOG", "NB JOURS", "10",saFicIni) ) Procédure globale NomDuFichierIni PROCÉDURE PRIVÉ NomDuFichierIni() RENVOYER ComplèteRep(fRepDonnées()) + "Config\" + gcVersionNom +".ini" Procédure globale ParametreSQLCorrect 12/08/2026 Batik_WS_Lic_Mob 32 Partie 3 › Collection de procédures › LIB_COMMUNE › Code PROCÉDURE PRIVÉ ParametreSQLCorrect(LOCAL saParam chaîne ANSI) //Vérifie si la chaine ne contient pas d'instruction SQL injectées //Test à minima SI saParam="" ALORS RENVOYER Vrai FIN tabChaine est un tableau de chaînes = ["SELECT","INSERT","UPDATE","DELETE","WHERE","INNER"] SI Contient(saParam,tabChaine,SansCasse) ALORS RENVOYER Faux RENVOYER Vrai Procédure globale Tesla PROCÉDURE Tesla() //T'es là TraceDébut(trFichier, ComplèteRep(fRepDonnées()) + "Trace_Test_" + DateSys() + ".txt") TraceDEBUG("Demande TESLA") HLitPremier(ClientBase) TraceDEBUG("Client Code :" + ClientBase.CL_Code) RENVOYER "OUI" Procédure globale TraceCUMUL PROCÉDURE PRIVÉ TraceCUMUL(s) //Stock un message de trace pour l'écrire quand la trace sera ouverte saTxt est une chaîne ANSI = DateVersChaîne(DateHeureSys(),"JJ/MM/AA HH:mm:SS")+ TAB + cTrace_Info + TAB + Remplace(s,TAB,"") gsaCumulTrace += [RC] + saTxt Procédure globale TraceDEBUG PROCÉDURE RESTREINT TraceDEBUG(s) saTxt est une chaîne ANSI = DateVersChaîne(DateHeureSys(),"JJ/MM/AA HH:mm:SS")+ TAB + cTrace_Debug + TAB + Remplace(s,TAB,"") SI gnNiveauTraceMini <= cTrace_Debug ALORS SI gsaCumulTrace<>"" ALORS Trace(gsaCumulTrace) gsaCumulTrace="" FIN Trace(saTxt) SINON gsaCumulTrace += RC + saTxt FIN Procédure globale TraceERREUR PROCÉDURE RESTREINT TraceERREUR(s) //EN cas d'erreur, on trace le contenu du Cumul de trace de tout niveau SI gsaCumulTrace<>"" ALORS Trace(gsaCumulTrace) gsaCumulTrace="" FIN Trace(DateVersChaîne(DateHeureSys(),"JJ/MM/AA HH:mm:SS")+ TAB + cTrace_Erreur + TAB + Remplace(s, TAB,"")) Procédure globale TraceINFO PROCÉDURE RESTREINT TraceINFO(s) saTxt est une chaîne ANSI = DateVersChaîne(DateHeureSys(),"JJ/MM/AA HH:mm:SS")+ TAB + cTrace_Info + 12/08/2026 Batik_WS_Lic_Mob 33 Partie 3 › Collection de procédures › LIB_COMMUNE › Code TAB + Remplace(s,TAB,"") SI gnNiveauTraceMini <= cTrace_Info ALORS Trace(saTxt) SINON gsaCumulTrace += RC + saTxt FIN Procédure globale TraceTOUT //Trace quelque soit le niveau de trace courant PROCÉDURE PRIVÉ TraceTOUT(s) Trace(DateVersChaîne(DateHeureSys(),"JJ/MM/AA HH:mm:SS")+ TAB + cTrace_Info + TAB + Remplace(s,TAB, "")) 12/08/2026 Batik_WS_Lic_Mob 34 Partie 3 › Collection de procédures › LIB_SOAP_CLIENT › Code LIB_SOAP_CLIENT Code Déclaration de LIB_SOAP_CLIENT ST_CMD_CLIENT est une Structure saCMD est une chaîne ANSI saCodeClient est une chaîne ANSI saCleAPI est une chaîne ANSI saJSON est une chaîne ANSI FIN ST_REP_CLIENT est une Structure saEtatReponse est une chaîne ANSI saRepJSON est une chaîne ANSI FIN Procédure globale BOCLI_CMD PROCÉDURE BOCLI_CMD(stCMD est un ST_CMD_CLIENT) stRep est un ST_REP_CLIENT TraceINFO(stCMD.saCMD + " " + stCMD.saCodeClient) TraceINFO(stCMD.saJSON) QUAND EXCEPTION DANS SELON stCMD.saCMD CAS cCLI_LIC_ATTRIBUTION //Attribut une licence à un utilisateur stRep=LicenceLibreAttribution(stCMD.saJSON) CAS cCLI_LIC_ACTIVATION //Activation/ désactivation d'une licence stRep=LicenceActivation(stCMD.saJSON,Vrai) CAS cCLI_LIC_DESACTIVATION stRep=LicenceActivation(stCMD.saJSON,Faux) CAS cCLI_LIC_LIBERE //Libère une licence mobile stRep=LicenceLibere(stCMD.saJSON) CAS cCLI_LIC_LISTE stRep=LicenceListe(stCMD.saJSON) AUTRE CAS stRep.saEtatReponse = cERR_CMD_INCONNUE FIN TraceINFO("Reponse :" + stRep.saEtatReponse ) TraceINFO(stRep.saRepJSON) RENVOYER stRep FAIRE TraceERREUR(ExceptionInfo(errComplet)) stRep.saEtatReponse = cERR_EXCEPTION RENVOYER stRep FIN Procédure globale LicenceActivation 12/08/2026 Batik_WS_Lic_Mob 35 Partie 3 › Collection de procédures › LIB_SOAP_CLIENT › Code PROCÉDURE PRIVÉ LicenceActivation(LOCAL saJSON est une chaîne ANSI,bEtat est un booléen) TraceDEBUG("LicenceActivation : " + saJSON) stRep est une ST_REP_CLIENT stDMD est un ST_CLI_ACTION_LM QUAND EXCEPTION DANS Désérialise(stDMD,saJSON,psdJSON) SI PAS HLitRecherchePremier(ClientBase, CL_Code, stDMD.saCodeClient) ALORS stRep.saEtatReponse=cERR_CLI_INCONNU SINON SI PAS HLitRecherchePremier(Licence,LI_Numero,stDMD.saNumLicence) ALORS stRep.saEtatReponse=cERR_LIC_INCONNUE SINON SI Licence.LI_IDClient<>ClientBase.CL_PKID stRep.saEtatReponse=cERR_CLI_LIC SINON Licence.LI_Active = bEtat Licence.DateModif=DateHeureSys() Licence.UserModif=1 HModifie(Licence) HRAZ(LicenceHisto) LicenceHisto.LH_Date =DateHeureSys() LicenceHisto.LH_Auteur ="WS.CLI" //WebService Client LicenceHisto.LH_Operation ="CLI.LICMOB.ACTIVE" LicenceHisto.LH_GUIDLicence =Licence.LI_Numero LicenceHisto.LH_CodeClient =ClientBase.CL_Code LicenceHisto.LH_IdMobile =Licence.LI_IDMobile LicenceHisto.LH_Note ="" HAjoute(LicenceHisto) stRep.saEtatReponse=cREP_OK FIN TraceDEBUG("Réponse :" + stRep.saEtatReponse) FAIRE stRep.saEtatReponse=cERR_EXCEPTION TraceERREUR("ActiveLicence(" + saJSON +"," + bEtat +")"+RC + ExceptionInfo(errComplet)) FIN RENVOYER stRep Procédure globale LicenceLibere PROCÉDURE PRIVÉE LicenceLibere(LOCAL saJSON est une chaîne ANSI) stRep est une ST_REP_CLIENT stDMD est un ST_CLI_ACTION_LM QUAND EXCEPTION DANS Désérialise(stDMD,saJSON,psdJSON) 12/08/2026 Batik_WS_Lic_Mob 36 Partie 3 › Collection de procédures › LIB_SOAP_CLIENT › Code SI PAS HLitRecherchePremier(ClientBase, CL_Code, stDMD.saCodeClient) ALORS stRep.saEtatReponse=cERR_CLI_INCONNU SINON SI PAS HLitRecherchePremier(Licence,LI_Numero,stDMD.saNumLicence) ALORS stRep.saEtatReponse=cERR_LIC_INCONNUE SINON SI Licence.LI_IDClient<>ClientBase.CL_PKID stRep.saEtatReponse=cERR_CLI_LIC SINON sa est une chaîne ANSI eLI est un Enregistrement de Licence eLI=Licence Sérialise(eLI,sa,psdJSON) HRAZ(LicenceHisto) LicenceHisto.LH_Date =DateHeureSys() LicenceHisto.LH_Auteur ="WS.CLI" //WebService Client LicenceHisto.LH_Operation ="CLI.LICMOB.LIBERE" LicenceHisto.LH_GUIDLicence =Licence.LI_Numero LicenceHisto.LH_CodeClient =ClientBase.CL_Code LicenceHisto.LH_IdMobile ="" LicenceHisto.LH_Note =sa HAjoute(LicenceHisto) //Libération de la licence Licence.LI_Active = Vrai Licence.LI_IDCollaborateur =0 Licence.LI_IDUser =0 Licence.LI_InfoSupMob ="" Licence.LI_UserNom ="" Licence.LI_UserPrenom ="" Licence.LI_IDMobile ="" Licence.LI_VersionMajeur ="" Licence.DateModif =DateHeureSys() Licence.UserModif =1 HModifie(Licence) stRep.saEtatReponse=cREP_OK FIN FAIRE stRep.saEtatReponse=cERR_EXCEPTION TraceERREUR("LicenceLibere(" + saJSON +")"+RC + ExceptionInfo(errComplet)) FIN RENVOYER stRep Procédure globale LicenceLibreAttribution PROCÉDURE PRIVÉ LicenceLibreAttribution(LOCAL saJSON est une chaîne ANSI) stRep est un ST_REP_CLIENT stDMD est un ST_CLI_DMD_LM stLIC est un ST_CLI_REP_DMD_LM bLicOk est un booléen QUAND EXCEPTION DANS Désérialise(stDMD,saJSON,psdJSON) SI PAS HLitRecherchePremier(ClientBase, CL_Code, stDMD.saCodeClient) ALORS stRep.saEtatReponse=cERR_CLI_INCONNU SINON 12/08/2026 Batik_WS_Lic_Mob 37 Partie 3 › Collection de procédures › LIB_SOAP_CLIENT › Code //Recherche d'une licence déjà attribuée à cet utilisateur rqLU est une Requête SQL = [ SELECT * FROM Licence where Licence.LI_IDClient={pIdClient} AND Licence.LI_IDUser={pIdUser} AND Licence.LI_Type= 5 ] rqLU.pIdClient = ClientBase.CL_PKID rqLU.pIdUser =stDMD.nIdUser HExécuteRequête(rqLU) SI HLitPremier(rqLU) ALORS stLIC.saNumLicence = rqLU.LI_Numero //Le numéro de licence mobile est renvoyé stLIC.saDateAttrib = rqLU.LI_DateAttribution stLIC.saDateExpir = rqLU.LI_DateExpiration bLicOk=Vrai FIN //Recherche d'une licence libre SI PAS bLicOk ALORS POUR TOUT Licence AVEC LI_IDClient=ClientBase.CL_PKID SI Licence.LI_IDMobile="" _ET_ Licence.LI_Type=5 _ET_ Licence.LI_Active=1 _ET_ Licence .LI_IDUser=0 ALORS Licence.LI_IDUser = stDMD.nIdUser //La licence n'est plus libre car LI_IdUser <>0 Licence.LI_IDCollaborateur = stDMD.nIdClb Licence.LI_UserNom = stDMD.saNom Licence.LI_UserPrenom = stDMD.saPrenom HModifie(Licence) stLIC.saNumLicence = Licence.LI_Numero //Le numéro de licence mobile est renvoyé stLIC.saDateAttrib = Licence.LI_DateAttribution stLIC.saDateExpir = Licence.LI_DateExpiration bLicOk=Vrai SORTIR FIN FIN FIN SI bLicOk ALORS stRep.saEtatReponse=cREP_OK Sérialise(stLIC,stRep.saRepJSON,psdJSON) HRAZ(LicenceHisto) LicenceHisto.LH_Date =DateHeureSys() LicenceHisto.LH_Auteur ="WS.CLI" //WebService Client LicenceHisto.LH_Operation ="CLI.LICMOB.ATTRIB" LicenceHisto.LH_GUIDLicence =Licence.LI_Numero LicenceHisto.LH_CodeClient =ClientBase.CL_Code LicenceHisto.LH_IdMobile ="" LicenceHisto.LH_Note =stRep.saRepJSON HAjoute(LicenceHisto) SINON stRep.saEtatReponse=cERR_LIC_AUCUNE FIN FIN FAIRE stRep.saEtatReponse=cERR_FORMAT_JSON 12/08/2026 Batik_WS_Lic_Mob 38 Partie 3 › Collection de procédures › LIB_SOAP_CLIENT › Code FIN RENVOYER stRep Procédure globale LicenceListe PROCÉDURE PRIVÉE LicenceListe(LOCAL saJSON est une chaîne ANSI) stRep est un ST_REP_CLIENT RENVOYER stRep Procédure globale LicenceVerifie PROCÉDURE LicenceVerifie(LOCAL saJSON est une chaîne ANSI) TraceDEBUG("LicenceVerifie :" +saJSON) QUAND EXCEPTION DANS stDMD est un ST_WS_VERIF_LM stRep est un ST_REP_CLIENT Désérialise(stDMD,saJSON,psdJSON) SI ErreurDétectée ALORS stRep.saEtatReponse=cERR_FORMAT_JSON SINON saCodeClient est une chaîne ANSI = stDMD.saCodeClient saLicence est une chaîne ANSI = stDMD.saLicence saIdMobile est une chaîne ANSI = stDMD.saIdMobile SI HLitRecherchePremier(ClientBase,CL_Code,saCodeClient) ALORS SI PAS HLitRecherchePremier(Licence,LI_Numero,saLicence) ALORS stRep.saEtatReponse=cERR_LIC_INCONNUE SINON SI ClientBase.CL_PKID<>Licence.LI_IDClient ALORS stRep.saEtatReponse=cERR_CLI_LIC SINON SI Licence.LI_IDMobile<>saIdMobile ALORS stRep.saEtatReponse=cERR_LIC_ATTRIBUEE SINON SI Licence.LI_Active=Faux ALORS stRep.saEtatReponse=cERR_LIC_INACTIVE SINON SI PAS Licence.LI_DateExpiration..Null _ET_ Licence.LI_DateExpiration< DateHeureSys() ALORS stRep.saEtatReponse=cERR_LIC_EXPIREE SINON stRep.saEtatReponse=cREP_OK FIN FIN SINON stRep.saEtatReponse=cERR_CLI_INCONNU FIN FIN TraceDEBUG("Réponse :" + stRep.saEtatReponse) RENVOYER stRep 12/08/2026 Batik_WS_Lic_Mob 39 Partie 3 › Collection de procédures › LIB_SOAP_CLIENT › Code FAIRE TraceERREUR("ERREUR dans LicenceVerifie" + RC + ExceptionInfo(errComplet)) stRep.saEtatReponse= cERR_EXCEPTION RENVOYER stRep FIN 12/08/2026 Batik_WS_Lic_Mob 40 Partie 4 › Table des matières Partie 4 Table des matières | 12/08/2026 | Batik_WS_Lic_Mob | 41 | | ---------- | ---------------- | --- | Partie 4 › Table des matières Projet Batik_WS_Lic_Mob Partie 1 Projet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 Informations générales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 Liste des éléments du projet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 Erreurs, warnings et informations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 Statistiques sur le code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 Partie 2 Analyse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 Graphe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 Informations générales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 Dictionnaire des rubriques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 Liaisons . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 Fichiers et rubriques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 ClientADM 15 ClientBase 17 Licence 18 LicenceHisto 19 LoginHFSQL 20 Parametre 21 Serveur 22 ServeurHFSQL 23 ServeurWebService 24 Utilisateur 25 Partie 3 Collection de procédures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 LIB_Structures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 Code 27 LIB_SOAP_MOB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 Code 29 LIB_COMMUNE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 Code 32 LIB_SOAP_CLIENT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 Code 35 12/08/2026 Batik_WS_Lic_Mob 42