L’objectif du présent module est de permettre l’accès aux données de ProScope par des logiciels extérieurs grâce à une API REST/JSON.
Pour qu’un accès extérieur soit possible, il suffit que le serveur http soit démarré sur ProScope Serveur. Pour que cela soit stocké dans les préférences, cela s’effectue dans le sous-menu Propriétés utilisateur pour fichier de données de l’article Propriétés de la base du menu Fichier :
Dans ce cas le serveur Web sera démarré lors du prochain redémarrage de ProScope Server.
Note : pour démarrer le serveur Web de manière
immédiate sans quitter ProScope Server, vous pouvez aller dans l’icône Serveur http de la console
d’administration et cliquer sur le bouton .
Une fois le serveur http démarré sur ProScope Server, il faut habiliter des utilisateurs à se connecter depuis un logiciel extérieur en paramétrant :
Avant toute interrogation de la base, il est nécessaire de se connecter et d’obtenir un token ayant une durée de validité de 10 minutes. Cette durée est prorogée de 10 minutes complémentaires à chaque requête réussie.
La requête de connexion passe par l’API WebSyncGetToken.
Exemple d’appel (sur la même machine que le serveur et sur le port 8080) :
localhost:8080/WebSyncGetToken?Login=aaa&PW=bbb
{"result":"notOK","error":"bad info"}
{"result":"OK","token":"DE137395FD2F4E73AA6A0FA8E3461A9C"}
C’est ce token qu’il faudra ensuite utiliser pour vos futures requêtes.
Le module d’interrogation de ProScope se compose pour l’instant de quatre requêtes HTTP Get et quatre requêtes HTTP Post :
Leur utilisation s’effectue de la manière suivante :
Exemple d’appel (sur la même machine que le serveur et sur le port 8080) :
http://localhost:8080/WebSyncGetTablesList?token=DE137395FD2F4E73AA6A0FA8E3461A9C
Donnera en données brutes :
{"tableList":[{"name":"Vide","ID":1},{"name":"Parametres","ID":2},{"name":"Produit","ID":3},{"name":"Client_Fournisseur","ID":4},{"name":"Interlocuteur","ID":5},{"name":"Personnel","ID":6},{"name":"Salle","ID":7},{"name":"Materiel","ID":8},{"name":"Demande_De_Preparation","ID":9},{"name":"Affaire","ID":10},{"name":"Devis","ID":11},{"name":"Ligne_Devis","ID":12},{"name":"Etat_Affaire_Semaine","ID":13},{"name":"Feuille_Travail","ID":14},{"name":"Ligne_Travail","ID":15},{"name":"Produit_Principaux_Salle","ID":16},…
Ou en données formatées :
Exemple d’appel (sur la même machine que le serveur et sur le port 8080) :
http://localhost:8080/WebSyncGetTableFieldsList?token= DE137395FD2F4E73AA6A0FA8E3461A9C &tableID=6
Donnera en données brutes :
{"fieldList":[{"name":"Abrege","ID":1,"type":"Alpha"},{"name":"Code","ID":2,"type":""},{"name":"Nom","ID":3,"type":"Alpha"},{"name":"Prenom","ID":4,"type":"Alpha"},{"name":"Service","ID":5,"type":"Alpha"},{"name":"Commentaire","ID":6,"type":"texte"},{"name":"Telecopie","ID":7,"type":"Alpha"},{"name":"Fonction1","ID":8,"type":"Alpha"},{"name":"Fonction2","ID":9,"type":"Alpha"},{"name":"Fonction3","ID":10,"type":"Alpha"},{"name":"Adresse1","ID":11,"type":"Alpha"},{"name":"Adresse2","ID":12,"type":"Alpha"},{"name":"Code_Postal","ID":13,"type":"Alpha"},{"name":"Ville","ID":14,"type":"Alpha"},{"name":"Pays","ID":15,"type":"Alpha"},{"name":"Numero_Securite_Sociale","ID":16,"type":"Alpha"},{"name":"Date_Naissance","ID":17,"type":"Date"},{"name":"Lieu_Naissance","ID":18,"type":"Alpha"},{"name":"Nationalite","ID":19,"type":"Alpha"},{"name":"Situation_Familiale","ID":20,"type":"Alpha"},…
Ou en données formatées :
Exemple d’appel (sur la même machine que le serveur et sur le port 8080) :
http://localhost:8080/WebSyncGetTableRecordsList?token=DD4658D39C7C41989853719C5A5FC162&tableID=6
Donnera en données brutes :
{"recordsUUID":[1,3,7,10,19,21,33,37,39,43,47,56,57,60,61,69,72,73,74,75,78,81,82,83,87,90,93,94,97,100,102,103,105,109,116,133,134,147,150,184,204,206,228,232,240,261,263,267,268,285,290,304,311,317,320,331,332,336,353,354,358,372,373,383,392,394,396,397,398],"result":"OK","error":"","length":69,"duration":10}
Ou en données formatées :
Exemple d’appel (sur la même machine que le serveur et sur le port 8080) :
Donnera en données brutes :
{"record":{"Abrege":"MA","Code":72,"Nom":"AITING","Prenom":"Marc","Service":"","Commentaire":"","Telecopie":"","Fonction1":"Responsable d'exploitation","Fonction2":"Monteur(se)","Fonction3":"Assistant(e) Monteur","Adresse1":"14 rue des bigornos","Adresse2":"","Code_Postal":"22700","Ville":"Perros-Direct","Pays":"France","Numero_Securite_Sociale":"163107858904297","Date_Naissance":"1963-10-14T23:00:00.000Z","Lieu_Naissance":"Tenons-Les-Bien","Nationalite":"Française","Situation_Familiale":"Variable","Nombre_Enfant_Charge":5,…
Ou en données formatées :
Exemple d’appel (sur la même machine que le serveur et sur le port 8080) :
http://localhost:8080/WebSyncTableIsWritable?token=227E2349BDF81148ADACE04B4169C751&tableID=2
Donnera en données brutes :
En cas de refus on obtiendra
Cette requête permet de savoir si on a le droit de supprimer un enregistrement.
Exemple d’appel (sur la même machine que le serveur et sur le port 8080) :
Donnera en données brutes :
Cette requête permet d’effectuer des recherches et de récupérer les champs demandés.
Exemple d’appel (sur la même machine que le serveur et sur le port 8080) :
http://localhost:8080/WebSyncSearch?token=227E2349BDF81148ADACE04B4169C751
Le body de la requête devra être structuré de la manière suivante :
Cette requête permet de créer un ou plusieurs enregistrements.
Exemple d’appel (sur la même machine que le serveur et sur le port 8080) :
http://localhost:8080/WebSyncNewRecord?token=227E2349BDF81148ADACE04B4169C751
Le body de la requête devra être structuré en json de la manière suivante :
Remarques :
Donnera en données brutes :
Cette requête permet de créer un ou plusieurs enregistrements.
Exemple d’appel (sur la même machine que le serveur et sur le port 8080) :
http://localhost:8080/WebSyncUpdateRecord?token=227E2349BDF81148ADACE04B4169C751
Le body de la requête devra être structuré en json de la manière suivante :
Remarques :
Exemple d’appel (sur la même machine que le serveur et sur le port 8080) :
http://localhost:8080/WebSyncDeleteRecord?token=227E2349BDF81148ADACE04B4169C751
Le body de la requête devra être structuré de la manière suivante :
Cette requête permet de lire un ou plusieurs enregistrements en passant sa/leurs clefs primaires.
Exemple d’appel (sur la même machine que le serveur et sur le port 8080) :
http://localhost:8080/WebSyncGetRecordsListPK?token=227E2349BDF81148ADACE04B4169C751
Le body de la requête devra être structuré de la manière suivante :