L’extension Somum peut, depuis la version 7.2, extraire les informations d’une base de données. Pour configurer, l’option doit être activée dans la configuration de JMap Admin de Somum ainsi que le fichier somum_ext_config_sql.xml.
Activer l'extraction SQL pour un projet
Pour activer l’extraction SQL pour un projet, dans JMap Admin, sous la configuration de l’extension Somum,
Sélectionnez la couche à utiliser pour la sélection des propriétés dans la configuration du Projet
Cochez “Extraction SQL” et entrez le nom de l’attribut qui contient la valeur à utiliser pour extraire les informations de la base de données.
Configuration somum_ext_config_sql.xml
Un fichier jmap/extensions/somum/somum_ext_config_sql.xml devrait être créé automatiquement lors du démarrage du serveur JMap après l’installation de Somum 7.2. Si il est manquant ou si vous désirez générer un nouveau fichier de configuration pour cette configuration SQL, effacez ce fichier et ré-initialiser l’extension depuis JMap Admin. Un fichier comme celui-ci sera généré:
<?xml version="1.0" encoding="UTF-8"?>
<java version="1.8.0_362" class="java.beans.XMLDecoder">
<object class="jmap.extensions.somum.server.configuration.SomumExtensionSqlConfig">
<void property="attribApt">
<string></string>
</void>
<void property="attribCity">
<string></string>
</void>
<void property="attribCivA">
<string></string>
</void>
<void property="attribCivDe">
<string></string>
</void>
<void property="attribCodePostal">
<string></string>
</void>
<void property="attribCountry">
<string></string>
</void>
<void property="attribGen">
<string></string>
</void>
<void property="attribLien">
<string></string>
</void>
<void property="attribProvince">
<string></string>
</void>
<void property="attribRue">
<string></string>
</void>
<void property="databaseId">
<int>-999</int>
</void>
<void property="idField">
<string></string>
</void>
<void property="idFieldText">
<boolean>false</boolean>
</void>
<void property="sqlQuery">
<string></string>
</void>
</object>
</java>
Les propriétés en gris gras (‘attrib___’) représentent les colonnes de la requête SQL de la requête SQL configurée. Laisser vide si la valeur n’est pas utilisée.
databaseId: L’ID de la base de données configurées dans JMap Admin.
sqlQuery: La requête SQL qui va extraire les données
idField: Le nom de la colonne à utiliser pour identifier les éléments.
idFieldText: ‘true' si l’identifiant précédent est textuel (varchar, text, etc.), ‘false’ pour numérique.
Par exemple, si la requête SQL était “SELECT * FROM ROLE” et le numéro d’appartement se trouvait dans une colonne NO_APT, la configuration pour l’appartement serait:
<void property="attribApt">
<string>NO_APT</string>
</void>
Si la valeur d’attribut configuré à la première étape retournait le numéro de matricule et le nom de la colonne retourné par la requête SQL était une colonne VARCHAR avec comme nom ‘MAT’ :
<void property="databaseId">
<int>12</int>
</void>
<void property="idField">
<string>MAT</string>
</void>
<void property="idFieldText">
<boolean>true</boolean>
</void>
<void property="sqlQuery">
<string>SELECT * FROM ROLE</string>
</void>
Avec cette configuration, l’extraction se ferait en utilisant la requête configurée et une condition ‘IN’ sera automatiquement ajoutée en utilisant l'idField spécifié.
Ex: SQL SELECT * FROM ROLE WHERE MAT IN ('valeur1', ‘valeur2’, ...).
Les valeurs (‘valeur1', ‘valeur2’, …) proviendraient de l’attribut et la couche configurés dans la section Configuration de l'Extension Somum de JMap Admin de la première étape de ce document, ces valeurs seront envoyées par le client.