Diffusion document PDF webservice REST

Bonjour,

Je souhaite connecter Scenari à un outil (GED) par API (REST).
L’objectif serait d’envoyer le document généré par Scenari au format PDF pour l’enregistrer dans un outil GED en appelant un webservice (POST).
J’ai trouvé un schéma sur la page « SCENARIchain-server » ou il est question de diffusion par web service.
Mais je n’ai pas trouvé plus de détail la documentation ou sur le forum.
J’ai trouvé plus d’informations sur la diffusion par protocole FTP, mais ce protocole sera plus difficile à gérer.
Est-ce que vous auriez des conseils/infos à ce sujet ?
Merci d’avance pour vos retours !

Max

À mon avis il n’y a pas de solution en standard. Poke @tha @sam

Bonjour,

Le plus simple est d’observer les requêtes http envoyées par la couche client.

Quand vous cliquez le bouton « Générer » d’une publication sur un item de type Support papier pour le modèle documentaire Opale, vous verrez par exemple dans les devTools du navigateur passer une requête de cette forme :

POST {urlServeur}/web/u/wspGen?cdaction=Generate&param={codeAtelier}&refUri={uriItem}&codeGenStack=auroraP&format=json

En réponse, vous avez un JSON qui vous donne l’état d’avancement de la génération. Il est probable qu’elle ne soit pas encore finie au 1er retour. Vous pouvez demander l’état d’une génération à intervalle régulier ainsi :

POST {urlServeur}/web/u/wspGen?cdaction=GetGenInfo&param={codeAtelier}&refUri={uriItem}&codeGenStack=auroraP&format=json

Une fois votre publication générée, vous pouvez

  • soit la télécharger (puis en faire ce vous voulez)

GET {urlServeur}/web/u/wspGen?cdaction=Download&param={codeAtelier}&refUri={uriItem}&codeGenStack=auroraP

  • soit la faire envoyer directement par le serveur vers un autre système comme une GED. Mais attention, pour des raisons de sécurité, en fonction de la configuration du serveur Scenari et de la destination (url cible de l’envoi), cette requête pourrait être rejetée.

POST {urlServeur}/web/u/wspGen?cdaction=SendGenTo&param={codeAtelier}&refUri={uriItem}&codeGenStack=auroraP&genProps={requestInJson}

où {requestInJson} est de la forme :

	 {
	    "method": "POST",
	    "url": "votre url de destination",
	    "headerProps" : {
	      "key": ["v1", "v2"]
	    }
	  }

(attention à bien penser à encoder correctement ce fragment JSON pour être conforme à un composant d’uri (via encodeUriCompenent() en JS par exemple).

Dernière remarque, pour que toutes ces requêtes fonctionnent, vous devez être authentifié. Le plus simple est la méthode d’authentification « basic », avec le header http : « Authorization: Basic {user} {password} » qui devrait fonctionner dans votre instance Scenari (sauf si vous êtes dans un contexte de déploiement de Scenari configuré avec d’autres stratégies de gestion l’authentification).

1 « J'aime »

Bonjour,
Je vous remercie pour vos conseils.
Si je comprends bien cette fonctionnalité n’est pas gérée directement avec le SCENARIchain-server packagé en standard mais nous pouvons parfaitement implémenter cette interface côté client via SCENARIbuilder en suivant les recommandations ci-dessus, c’est bien cela ?
Merci et bonne journée à vous.

Bonjour,

L’idée est plutôt d’utiliser un script externe, lancé en dehors de l’interface Scenari, intéragissant avec le serveur pour démarrer la génération puis l’envoyer à la GED.
L’envoi des générations en HTTP (par le mécanisme de genDeploy comme celui du FTP) n’est pas disponible dans SCENARIbuilder.

1 « J'aime »

Parfait, merci beaucoup pour votre aide.
Pour pouvoir automatiser l’interface, est-ce qu’il serait possible d’appeler une URL pour récupérer les documents qui ont été générés mais qui n’ont pas encore été téléchargés ?

Bonjour, il est également possible avec SCENARbuilder de créer un freeGenDeploy dans lequel on peut scripter en ANT.

Nous avons déjà créé un genDeploy pour envoyer des document dans une instance Content Controller. La logique de l’envoi était codé en ANT (en partant de l’ANT généré par SCENARIbuilder pour un sendServerGenDeploy) qui effectuait les interactions avec le serveur de GED en pilotant l’application tierce curl. Dans cet exemple le freeGenDeploy était utilisé dans un contexte contrôlé sur un serveur SCENARI ou curl était bien présent.