Services Web

Cette activité vous permet d'intégrer des services Web REST ou SOAP dans votre workflow. Les services Web peuvent être utilisés pour échanger automatiquement des données entre systèmes ou pour créer, mettre à jour ou supprimer des informations dans d'autres applications via un workflow.

Inversement, vous pouvez utiliser des données provenant d'autres programmes dans vos workflows. Par exemple, connectez votre système de comptabilité financière ou votre système de gestion de la relation client à DocuWare.

Pour utiliser les services Web avec le Gestionnaire de workflow, vous devez d'abord les enregistrer dans la configuration DocuWare sous Services Web.

Le Services Web dans Workflow Designer vous fournissent une structure assistée avec un type de workflow pour créer l'appel au service Web. Les étapes les plus importantes sont illustrées ici en utilisant l'exemple d'un service Web REST.

1. Général

La première étape consiste à sélectionner le service web REST et à définir le format d'échange des données (JSON ou XML). Vous avez le choix entre les services qui ont été configurés au préalable dans la configuration DocuWare sous Services Web. Les autres informations requises varient en fonction du type de service web sélectionné.

Si votre service Web propose un fichier de spécification OpenAPI (*.json, *.txt, *.yml ou *.yaml), vous avez la possibilité de l'importer. Une fois l'importation effectuée, tous les points de terminaison disponibles sont répertoriés dans la liste déroulante :

DocuWare Web Service Activity 1

2. Demande

Sélectionnez la méthode et créez la vue dans l'interface guidée, qui vous est ensuite présentée dans un aperçu en haut de page. Vous pouvez concevoir dynamiquement le chemin d'accès à l'URL, les paramètres de la requête et le contenu du corps du texte à l'aide de variables.

À la fin, testez la vue et vérifiez l'onglet « Réponse » pour voir si la vue a réussi. Vous devez indiquer une valeur de test pour chaque variable afin d'effectuer le test.

DocuWare Web Service

La validation du corps des requêtes HTTP se fait à l'aide d' Envoyer ou automatiquement lors de l'enregistrement de la configuration. Si le contenu n'est pas valide, la partie incorrecte est mise en évidence et un message s'affiche, mais la configuration peut toujours être enregistrée.

HTTP body

Dans l'onglet Corps HTTP, vous avez la possibilité d'attacher le document actuel à la requête HTTP vers un service web RESTful externe. Cela vous permet, par exemple, d'envoyer un document enregistré, tel qu'une facture, à un service externe de capture d'IA afin de capturer le document et d'affecter les informations capturées à des champs d'index ou à des variables globales.

Le document peut être exporté en tant que document original ou en tant que fichier PDF sans annotations. Si le document DocuWare contient plusieurs fichiers (coupés), tous les fichiers sont exportés et joints séparément. La requête HTTP contient alors plusieurs objets fichiers.

Validation du code HTTP

Trois options au choix pour le cryptage des requêtes HTTP :

  1. Encoder les caractères spéciaux (recommandé) : tous les caractères spéciaux sont encodés, par exemple « AT&T » devient « AT%26T » et « Rapid Transport » devient « Rapid%20Transport »

  2. Encoder les caractères spéciaux à l'exception des caractères URL réservés: ?#[]@!$&/*+,;='() À l'exception des caractères URL réservés, tous les caractères spéciaux sont encodés, par exemple « AT&T » reste, mais « Rapid Transport » devient « Rapid%20Transport »

  3. Ne pas encoder les caractères spéciaux: ni les caractères spéciaux ni les espaces ne sont codés.

L'encodage est appliqué à toutes les valeurs dont le transfert est spécifié dans le champ Routage et Requêtes mais pas aux valeurs des onglets En-tête HTTP et Corps HTTP .

Configuration des points de terminaison

Si vous utilisez un fichier de spécification OpenAPI ou le service Web REST standard "DocuWare Platform API", configurez le point final sélectionné à l'étape précédente. Pour simplifier la configuration, tous les paramètres nécessaires sont automatiquement prédéfinis sur la base du point final sélectionné.

Spécialement pour l'API DocuWare Platform, définissez dans les sections Route et Queries les valeurs manquantes, par exemple l'archive ou le document auquel il faut accéder.

Dans la section HTTP Body, vous indiquez les informations et propriétés nécessaires à l'exécution de l'opération sélectionnée, par exemple le GUID du timbre à placer.

3. Attribution des données

Ici, affectez les valeurs de la variable de réponse ou des données d'index. Sélectionnez les valeurs requises dans le JSON ou le XML à partir d'une arborescence (voir ci-dessous).

De cette manière, vous pouvez extraire certaines informations de la réponse et les enregistrer pour une utilisation ultérieure dans votre workflow.
WFDes_Webservice_3

pictemplate_small

Si vous souhaitez traiter toutes les entrées retournées, remplacez manuellement l'index dans l'indexeur du tableau par un astérisque (*). Cela permet un traitement complet de toutes les entrées du tableau.

DocuWare Web Service Activity 5

Service Web standard API de la Plate-forme DocuWare

Accédez à vos armoires et aux documents qu'elles contiennent via le service web standard intégré DocuWare Platform API.

Le tableau ci-dessous répertorie les points de terminaison disponibles pour le service web standard DocuWare Platform API.

Certains points de terminaison peuvent effectuer plusieurs opérations. Par exemple, l'opération "documentAnnotations" permet d'apposer un tampon à n'importe quelle position ou à une position fixe dans le document, ou d'insérer une annotation textuelle.

La colonne Defaut indique quel corps HTTP est automatiquement pré-rempli. Si vous souhaitez effectuer une autre opération, copiez le code JSON de la colonne HTTP Body et collez-le dans votre activité de service web.

Pour transmettre l'ID/GUID d'un utilisateur, il suffit d'écrire le nom de l'utilisateur dans une variable globale de type "User" et de transmettre cette variable dans la requête HTTP. Le système fournit automatiquement le GUID correspondant :

Defaut

Opération

Description

Commande

Route

Texte du corps HTTP (exemple)

oui

countResult

Obtenez le total des documents dans une armoire ou un bac

DialogId (facultatif) : l'identifiant de la boîte de dialogue de recherche utilisée.

FieldName (facultatif) : le nom du champ dont les valeurs sont groupées et comptées..

GET

/DocuWare/Platform/FileCabinets/ {TrayId/FileCabinetId}/Query/CountExpression?dialogId={DialogId}&fieldName= {FieldName}

oui

dialogExpression

Recherche par dialogue

DialogId : ID de la boîte de dialogue de recherche

POST

/FileCabinets/ {TrayId/FileCabinetId} /Query/DialogExpression?dialogID= {DialogId}

{ "Condition":[ {"DBName":"COMPANY", "Value":["Peter's Engineering"]}, {"DBName":"CONTACT", "Value":["EMPTY()"]}, {"DBName":"DocuWareFulltext", "Value":["Solar Panels"]}], "Operation":"And"}

oui

documents

Créer une nouvelle base de données dans un bac ou une armoire

POST

/FileCabinets/{TrayId/FileCabinetId}/Documents

{ "Fields": [ { "FieldName": "COMPANY", "Item": "Peter's Engineering" }, { "FieldName": "CONTACT", "Item": "Peter Sanders" }, { "FieldName": "DOCUMENT_DATE", "Item": "2020-01-01" }, { "FieldName": "COST_CENTER", "Item": { "$type": "DocumentIndexFieldKeywords", "Keyword": [ "A", "B", "C" ] } } ] }

oui

document

Obtenir des informations sur un document

GET

/FileCabinets/{TrayId/FileCabinetId}/Documents/{DocId}

oui

documentDelete

Supprimer un document

DELETE

/FileCabinets/{TrayId/FileCabinetId}/Documents/{DocId}

oui

section

Supprimer une section d'un document

Si une section d'un document est supprimée, il sera automatiquement converti en entrée de base de données (entrée de base de données)

DELETE

/FileCabinets/{TrayId/FileCabinetId}/Sections/{SectionId}

oui

documentAnnotations

Ajouter un tampon ou une annotation

Ajouter un tampon à la meilleure position..

POST

/FileCabinets/{TrayId/FileCabinetId}/Documents/{DocId}/Annotation

{ "Annotations": [ { "PageNumber": 0, "SectionNumber": 0, "AnnotationsPlacement": { "Items": [ { "$type": "StampPlacement", "StampId": "73d54f34-1b80-4b43-81ec-f0d31176d990", "Layer": 1, "Field": [ { "Name": "<#1>", "TypedValue": { "Item": "*Test007*" }, "Value": "Jenkins" }, { "Name": "<#2>", "TypedValue": { "Item": "*Test007*" }, "Value": "Approved" } ], "Password": null } ] } } ] }

documentAnnotations

Ajouter un tampon à un endroit fixe


POST

/FileCabinets/{TrayId/FileCabinetId}/Documents/{DocId}/Annotation

{ "Annotations": [ { "PageNumber": 0, "SectionNumber": 0, "AnnotationsPlacement": { "Items": [ { "$type": "StampPlacement", "Location": { "X": "100", "Y": "100" }, "StampId": "6ab67774-074d-4d93-99c5-5bc46262b84c", "Layer": 1, "Field": [ { "Name": "<#1>", "TypedValue": { "Item": "September" }, "Value": "Sep." } ], "Password": null } ] } } ] }

documentAnnotations

Ajouter une annotation texte

POST

/FileCabinets/{TrayId/FileCabinetId}}/Documents/{DocId}/Annotation

{ "Annotations": [ { "PageNumber": 0, "SectionNumber": 0, "AnnotationsPlacement": { "Items": [ { "$type": "Annotation", "Layer": [ { "Id": "1", "Items": [ { "$type": "TextEntry", "Font": { "FontName": "Lucida Console", "Bold": true, "Italic": true, "Underlined": false, "StrikeThrough": false, "FontSize": 200, "Spacing": 0 }, "Value": "Test annotation", "Location": { "Left": 100, "Top": 100, "Width": 1500, "Height": 500 }, "Color": "Black", "Rotation": 0, "Transparent": false, "StrokeWidth": 50 } ] } ] } ] } } ] }

oui

transfer

Transférer un document

Déplacer ou copier un document d'une archive ou d'une boîte aux lettres source vers l'archive ou la boîte aux lettres spécifiée.

Le type de contenu doit être défini sur :

application/vnd.docuware.platform.documentstransferinfo+json

POST

/FileCabinets/ {TrayId/FileCabinetId} /Task/Transfer

{ "SourceFileCabinetId": "ae156510-ffa8-48b1-a3ec-baec3180669c", "Documents": [ { "Id": 123456, "Fields": null } ], "KeepSource": true, "FillIntellix": false,"UseDefaultDialog": true}

oui

sectionData

Remplacer le fichier d'un document

Remplacer le fichier d'un document par le document dans le flux de travail.

Ajouter un nouveau fichier

Ajouter le document actuel à un autre document dans une armoire ou un bac à documents.

Le document peut être annexé dans son format original ou au format PDF sans annotations ni timbres.

Si la cible est une entrée de la base de données, elle sera automatiquement convertie en document.

POST

/FileCabinets/{TrayId/FileCabinetId}/Sections?DocId={DocId}

oui

sections

Remplacer le fichier d'un document

Remplacer le fichier d'un document par le document dans le flux de travail.

Ajouter un nouveau fichier

Ajouter le document actuel à un autre document dans une armoire ou un bac à documents.

Le document peut être annexé dans son format original ou au format PDF sans annotations ni timbres.

Si la cible est une entrée de la base de données, elle sera automatiquement convertie en document.

POST

/FileCabinets/{TrayId/FileCabinetId}/Operations/ProcessDocumentAction?docId={DocId}

oui

processDocumentAction

Fusionner les couches

Fusionner les couches d'annotation avec le document. Cela créera un nouveau PDF et remplacera l'ancien.

PUT

/FileCabinets/{TrayId/FileCabinetId}/Operations/ProcessDocumentAction?docId={DocId}

{"DocumentAction":"MergeAnnotations","DocumentActionParameters":{"$type":"MergeAnnotationsParameters","SectionNumber":0}}

processDocumentAction

Ajouter un document

Ajouter un document à un autre dans une armoire ou un bac

Si la cible est une entrée de base de données, elle sera automatiquement convertie en document.

PUT

/FileCabinets/{TrayId/FileCabinetId}/ Operations/ProcessDocumentAction?docId={DocId}

{ "DocumentAction": "Append", "DocumentActionParameters": { "$type": "AppendActionParameters", "RemoveSourceDocuments": false, "DocumentsInFront": [ ], "DocumentsAtBack": [ { "SourceCabinetId": "ae156510-ffa8-48b1-a3ec-baec3180669c", "Documents": [ 123456 ] } ] } }

oui

createUser

Créer un nouvel utilisateur

Le type de contenu doit être défini sur :

application/vnd.docuware.platform.createorganizationuser+json

POST

/Organization/UserInfo

{ "EMail": "firstname.lastname@domain.com", "Name": "MyUserName", "DBName": "MYUSERNA", "Password": "eLK%4s*Z", "NetworkID": "Domain\\MyUserName" }

oui

modifyUser

Modifier les propriétés de l'utilisateur

PATCH

/Organization/UserInfo

oui

users

Obtenir tous les utilisateurs de l'organisation

GET

/Organization/Users

oui

usersByGroup

Obtenir tous les utilisateurs d'un groupe

GroupID (requis) : l'identifiant du groupe

GET

/Organization/GroupUsers?groupId={GroupId}

oui

usersByRole

Get all users of a role

RoleID (requis): L'identifiant du groupe. IncludeGroupUsers (facultatif): Boolean - default: 'false'

IncludeGroupUsers (facultatif): Boolean - default: 'false'

GET

/Organization/UserRoles?UserId={UserId}&Active={true|false}&Name={RoleName}&Type={Standard|Default|Administrator}

oui

userById

Obtenir les informations d'un utilisateur

Obtenir les propriétés d'un utilisateur spécifique, comme son état actif ou absent.

UserID (requis) : l'identifiant de l'utilisateur

GET

/Organization/UserByID?userId={UserId}

oui

userRoles

Obtenir tous les rôles d'un utilisateur

UserID (requis) : l'identifiant de l'utilisateur.

GET

/Organization/UserRoles?UserId={UserId}

oui

userRoles

Ajouter un utilisateur au rôle

UserID (required): The identifier of the user.

PUT

/Organization/UserRoles?UserId={UserId}

{ "Ids": [ "2d89fc45-a3c4-49c6-971b-ebc696a67d78" ], "OperationType": "Add" }

userRoles

Supprimer l'utilisateur du rôle

UserID (requis) : l'identifiant de l'utilisateur

PUT

/Organization/UserRoles?UserId={UserId}

{ "Ids": [ "2d89fc45-a3c4-49c6-971b-ebc696a67d78" ], "OperationType": "Remove" }

oui

userGroups

Obtenir tous les groupes d'un utilisateur

UserID (requis) : l'identifiant de l'utilisateur

GET

/Organization/UserGroups?UserId={UserId}

oui

userGroups

Ajouter un utilisateur à un groupe

UserID (requis) : l'identifiant de l'utilisateur

PUT

/Organization/UserGroups?UserId={UserId}

{ "Ids": [ "2d89fc45-a3c4-49c6-971b-ebc696a67d78" ], "OperationType": "Add" }

userGroups

Supprimer l'utilisateur d'un groupe

UserID (requis) : l'identifiant de l'utilisateur

PUT

/Organization/UserGroups?UserId={UserId}

{ "Ids": [ "2d89fc45-a3c4-49c6-971b-ebc696a67d78" ], "OperationType": "Remove" }

oui

roles

Obtenir tous les rôles de l'organisation

GET

/Organization/Roles

oui

role

Obtenir les informations sur un rôle

comme son état actif

RoleID (requis) : l'identifiant du rôle

GET

/Organization/Role?roleId={RoleId}

oui

groups

Obtenir tous les groups de l'organisation

GET

/Organization/Groups

oui

group

Obtenir des informations sur un groupe

Obtenir les informations sur un groupe, comme son état actif

GroupID (requis) : l'identifiant du groupe..

GET

/Organization/Group?groupId={GroupId}

Voici un cas d'utilisation pour le point final "documentAnnotations" :

Après le traitement d'une facture dans le logiciel de comptabilité, vous souhaitez apposer automatiquement le cachet « Payé » sur la facture dans DocuWare. Pour ce faire, créez une tâche Autoindex qui modifie l'entrée d'index de la facture en « payé ».

La modification de l'entrée de l'index de la facture déclenche un workflow, dont l'activité de service Web appose automatiquement le cachet « Payé » sur la facture.

Notez que l'estampille "Payé" doit être configurée et attribuée à l'utilisateur spécifié pour le workflow afin d'exécuter des activités automatiques.

La configuration du point final "documentAnnotations" se présente comme suit :

Web service platform table example

Web service platform table example 2Web service platform table example 3