Objet
Ce document décrit le fonctionnement de la nouvelle interface entre Divalto Infinity et le configurateur Techform.
La nouvelle interface sera développée dans la version X.8 de l’ERP Infinity et sera adaptée au projet client LMC (Divalto X.5).
Etat des lieux
La version actuelle de l’interface permet le dialogue entre 2 versions Divalto et Techform installées en client lourd, le dialogue est fait par échange de fichiers XML à travers un répertoire dédié.
Divalto et Techform fonctionnant dorénavant massivement en client léger, ce type de dialogue n’est plus possible, il s’agit de le remplacer par un échange via web services.
Seule la partie transport est modifiée, le contenu du flux de données reste inchangé (même format XML).
Proposition de mise en œuvre
Schéma
Dans cette nouvelle interface, le client Divalto s’authentifie auprès du WS Techform afin d’obtenir un token, utilisé dans la suite des échanges.
Le client peut ensuite invoquer les différentes méthodes métiers du WS Techform.
Flux détaillé
Mode interactif
Dans ce mode de communication, un utilisateur est connecté à l’ERP en client léger, il est donc nécessaire d’être synchrone dans les échanges.
L’utilisateur saisit une pièce commerciale avec des articles nécessitant une configuration.
Appel du configurateur, service de login, le web service sera paramétré dans la table Divalto ad hoc (MURLSW)
Le service Login renvoie le cookie de session, à utiliser dans les prochains échanges
Envoi des paramètres et appel du configurateur Web
En fin de configuration, Techform invoque un WS Divalto et envoie les données de configuration (fichier N et P) au format XML. Le WS récupère le contenu des fichiers et l’enregistre dans des fichiers.
Appel de l’intégration des données de configuration. En complément de l’interface actuelle, enregistrement de l’ID (GUID) de configuration pour éventuel rappel de la configuration depuis la pièce.
Retour en saisie de pièces
Q : comment indiquer à la saisie de pièces que la configuration est terminée et intégrée ?
Mode silencieux
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
Configuration terminée, le middleware Techform renvoie les données de configuration
L’application tierce envoie la commande vers l’ERP (WS, datahub, autre ?)
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 WS Techform pour récupérer les configurations.
Envoi des configurations vers Divalto
Intégration des données Techform (fichiers N et P)
Retour d’information intégration données Techform
Retour d’information création de pièce
Paramétrage
Fiche article
Ajout sur la fiche article d’un code web service d’accès au configurateur web Techform.
Rq : l’ancien code chemin utilisé par le client lourd reste valide
Il s’agit d’un code web service référencé dans la table 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.
Dossier
Sur le dossier production, le code du chemin d’entrée des fichiers est inchangé.
Un paramètre a été ajouté pour indiquer le code du WS 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.