L’interface Divalto - Techform
Techform est un configurateur qui peut compléter la création de commande de Divalto ERP.
Historiquement, les deux produits devaient être installés en client lourd sur un poste, mais depuis la version ERP 10.9 un nouveau mode d'échange est en place pour permettre une communication par services web.
Le mode de communication a donc évolué avec les produits, mais les principes et flux de données sont restés inchangés, ainsi que les formats de fichiers XML échangés.
Principe des échanges
Il existe 2 flux ou manières d’utiliser le configurateur Techform avec Divalto ERP
Flux interactif : Mode interactif en saisie de pièce, pour configurer un nouvel article à vendre
Flux silencieux : Import de pièce, pour importer une configuration déjà conçue
Commun aux deux flux : l’authentification
Afin de dialoguer avec Techform, un premier échange de services web est requis pour gérer l’authentification.
Cet échange a pour but d’obtenir un jeton (token) de session, qui sera utilisé pour la suite des échanges dans l’un ou l’autre des flux.
Un paramétrage ERP est donc nécessaire pour réaliser cette étape indispensable
Flux interactif (configuration depuis la saisie de commande)
Dans ce mode de communication, un utilisateur est connecté à l’ERP en client léger.
Les échanges entre Divalto ERP et Techform sont donc synchrones en suivant un déroulement pré-établi
L’utilisateur saisit une pièce commerciale avec des articles nécessitant une configuration.
Appel du configurateur Techform après authentification
Le service Login renvoie le cookie de session, à utiliser dans les prochains échanges
Envoi des paramètres et appel du configurateur en mode Web (navigateur). La saisie de pièce est bloquée pendant ce temps
En fin de configuration, Techform invoque un service web Divalto et envoie les données de configuration validées par l’utilisateur (sous forme de fichier XML )
Le service Web Divalto récupère le contenu des fichiers et les enregistre dans leur format brut
Appel de l’intégration des données de configuration. Un ID (GUID) est fourni par Techform, et enregistré dans Divalto pour éventuel rappel de la configuration depuis la pièce.
Retour en saisie de pièces
Flux silencieux (import de configuration)
Ce mode est utilisé pour des commandes provenant d’une source externe à Divalto (ex : un site web) sur laquelle la configuration a déjà été complétée dans Techform.
A noter que dans ce mode, nous n’utiliserons pas la plateforme BtoE Techform dans la mesure où les pièces commerciales peuvent contenir des articles configurés et des articles négoces non visibles par Techform.
L’envoi des commandes vers Divalto sera donc à la charge de l’application tierce.
L’utilisateur saisit une pièce commerciale avec des articles configurables dans l’application tierce, il s’authentifie à Techform
Le service Login renvoie le cookie de session, à utiliser dans les prochains échanges
Envoi des paramètres et appel du configurateur web par l’application tierce
Configuration terminée, le middleware Techform renvoie les données de configuration
L’application tierce envoie la commande vers l’ERP
Intégration de la pièce dans l’ERP
L’intégration de pièce détecte des articles configurés sur la pièce en cours (présence d’un GUID), appel d’un service web Techform pour récupérer les configurations.
Envoi des configurations vers Divalto
Intégration des données Techform (fichiers XML)
Retour d’information intégration données Techform
Retour d’information création de pièce
Paramétrage ERP
BEL a finir la suite
Code chemin pour le service web
Il s’agit d’un code web service référencé dans la table de Paramétrage de services web (MURLSW).
La première URL indique l’URL du web service du configurateur.
La seconde indique l’URL à invoquer pour l’accès au configurateur après envoi des paramètres.
Fiche article
L’article est celui qui sera mis dans une commande afin de déclencher le configurateur.
Il porte donc, sur la fiche article, un code de web service d’accès au configurateur web Techform.
Note : l’ancien code chemin utilisé par le client lourd reste valide
Dossier
Sur le dossier production, le code du chemin d’entrée des fichiers est inchangé (Fichiers interfaces)
Un paramètre a été ajouté pour indiquer le code du service web du middleware Techform, ce WS gère toutes les opérations transversales, notamment l’authentification.
Appel configurateur
Le configurateur est appelé automatiquement à la validation d’une ligne de pièce sur un article configurable.
Dans le cas d’une configuration web, la saisie de pièce est mise en attente le temps de la configuration, l’utilisateur peut reprendre la main dès qu’il a terminé les actions dans Techform.
Protocole Divalto-Techform
Authentification
Si le WS du middleware est paramétré avec un login/mot de passe, le protocole démarre par l’authentification et l’obtention d’un cookie de session.
Méthode appelée : Login
Corps de la requête :
Création de la session
Cette méthode permet d’obtenir un nouvel identifiant (GUID) de configuration, à rappeler dans les échanges ultérieurs avec Techform, cet identifiant est stocké sur la ligne de pièce (MOUV.ConfigurateurGuid)
Méthode : CreateSession
Corps de la requête
Envoi des paramètres
L’envoi des paramètres est réalisé par groupe, chaque groupe pointant vers une URI différente.
Le protocole prévoit 2 groupes différents :
Un pour les paramètres standards de l’interface (dossier, établissement, tiers, etc.)
Un pour les paramètres spécifiques à chaque configurateur/métier client
Méthode appelée : SetDatasetSession
Paramètres standards
Liste des paramètres d’appel pour configurateur mono-ligne
En mode de création de ligne
Paramètres | Description | Exemple | Paramètre WS |
/F <Valeur> | Formulaire | "/F FORMTEST" | formulaire |
/C <Valeur> | Numéro de pièce configurateur | "/C 25" | piece |
/M A | Mode d’ajout | "/M A" | mode |
/IDCLI <Valeur> | Code du client | / IDCLI C000001 | tiers |
/A <Valeur> | Code de l’article | "/A PO" | Ref |
/DOS <Valeur> | N° de dossier de DIVALTO | "/DOS 1" | Dos |
/U <Valeur> | Nom d’utilisateur | "/U ROOT" | User |
En mode de modification de ligne
Paramètres | Description | Exemple | Paramètre WS |
/F <Valeur> | Formulaire | "/F FORMTEST" | formulaire |
/C <Valeur> | Numéro de pièce configurateur | "/C 25" | piece |
/M M | Mode modification | "/M A" | mode |
/IDCLI <Valeur> | Code du client | / IDCLI C000001 | tiers |
/A <Valeur> | Code de l’article | "/A PO" | Ref |
/DOS <Valeur> | N° de dossier de DIVALTO | "/DOS 1" | Dos |
/U <Valeur> | Nom d’utilisateur | "/U ROOT" | User |
Paramètres spécifiques
Ce deuxième groupe de paramètre est générique, il a été prévu pour englober 25 paramètres, 5 pour chaque SdType (5 entiers, 5 doubles, 5 dates, 5 booléens et 5 chaînes).
{
"CollectionUri":"SmartBusinessVb.Web;Sch_Configuration/Sch_ConfigurationCollection",
"DatasetId":"ea8d5520-2378-4eee-be2f-214724035736",
"Uri":"//DivaltoSpecifique",
"Model":{
"ItemName":"DivaltoSpecifique",
"Fields":[
{
"ItemName":"int1",
"sdType":"1",
"IntegerValue":" "
},
{
"ItemName":"int2",
"sdType":"1",
"IntegerValue":""
},
{
"ItemName":"int3",
"sdType":"1",
"IntegerValue":""
},
{
"ItemName":"int4",
"sdType":"1",
"IntegerValue":""
},
{
"ItemName":"int5",
"sdType":"1",
"IntegerValue":""
},
{
"ItemName":"db1",
"sdType":"2",
"DoubleValue":" "
},
{
"ItemName":"db2",
"sdType":"2",
"DoubleValue":""
},
{
"ItemName":"db3",
"sdType":"2",
"DoubleValue":""
},
{
"ItemName":"db4",
"sdType":"2",
"DoubleValue":""
},
{
"ItemName":"db5",
"sdType":"2",
"DoubleValue":""
},
{
"ItemName":"dt1",
"sdType":"3",
"DateTimeValue":""
},
{
"ItemName":"dt2",
"sdType":"3",
"DateTimeValue":""
},
{
"ItemName":"dt3",
"sdType":"3",
"DateTimeValue":""
},
{
"ItemName":"dt4",
"sdType":"3",
"DateTimeValue":""
},
{
"ItemName":"dt5",
"sdType":"3",
"DateTimeValue":""
},
{
"ItemName":"bl1",
"sdType":"4",
"boolValue":""
},
{
"ItemName":"bl2",
"sdType":"4",
"boolValue":""
},
{
"ItemName":"bl3",
"sdType":"4",
"boolValue":""
},
{
"ItemName":"bl4",
"sdType":"4",
"boolValue":""
},
{
"ItemName":"bl5",
"sdType":"4",
"boolValue":""
},
{
"ItemName":"st1",
"sdType":"5",
"StringValue":""
},
{
"ItemName":"st2",
"sdType":"5",
"StringValue":""
},
{
"ItemName":"st3",
"sdType":"5",
"StringValue":""
},
{
"ItemName":"st4",
"sdType":"5",
"StringValue":""
},
{
"ItemName":"st5",
"sdType":"5",
"StringValue":""
}
]
}
}
Surcharge et personnalisation
L’affectation des valeurs aux paramètres spécifiques est ouverte à la personnalisation, il suffit de surcharge la fonction gttmconf000.Initialiser_DatasetSession_Specifique et d’alimenter les valeurs des paramètres utilisés.
Correspondances des types de paramètres
SdType | Valeur | Description |
1 | IntValue | Entier |
2 | DoubleValue | Double |
3 | DateTimeValue | Date + heure |
4 | boolValue | Booléen |
5 | StringValue | Chaîne de caractères |
Ouverture configurateur
Après le protocole d’échange, le configurateur est ouvert dans le navigateur sur l’URL indiquée sur le service web, le numéro de configuration est passé en paramètre de l’URL.
https://tech-uat.lmcstore.com/LMC_TIROIR/?DatasetId=d4a718cb-745b-4f11-b473-efcb5c827917
Service web Divalto
Description
Un nouveau traitement est disponible dans le service web Divalto, qui permet à Techform d’envoyer les flux N et P.
La demande prend les paramètres suivants :
{
"action":"SYNCHRO_INFINITY_AGILEO",
"access_token":"{{token}}",
"param":"<dem><action dos=\"1\" nom=\"INTEGRER_CONFIG_PIECE\"><flux type=\"P\">{{fichier_p}}</flux><flux type=\"N\">{{fichier_n}}</flux></action></dem>"
}
Flux P
Le flux P (pièce) conserve le format de l’ancienne interface.
Flux N
Exemple
Un exemple de requête peut être importé dans Postman avec la collection jointe.