Pour télécharger l'exemple complet de code, consultez notre site Partage de code.
Les modèles et les mises en page répondent au même objectif d'automatisation du processus de signature électronique en réduisant le temps nécessaire à l'envoi de documents comprenant plusieurs blocs de signature et champs de données. Les modèles sont idéaux pour une utilisation au niveau de la transaction; vous pouvez prédéfinir vos signataires, vos documents, les emplacements de signature et les flux de travail de signature électronique afin de rationaliser le processus de signature électronique. Une mise en page, quant à elle, est un type de modèle qui vous permet de créer des emplacements prédéfinis pour vos blocs de signature et vos champs de données dans un document. Il agit comme un « marqueur » de l'emplacement des blocs de signature et des champs de données dans le document. Les mises en page sont utiles pour les utilisateurs qui envoient fréquemment des formulaires qui peuvent être légèrement différents selon le destinataire, mais dont les blocs de signature et les champs de données restent au même endroit dans tout le document. De plus, vous pouvez utiliser plusieurs mises en page par document, et les appliquer à des pages individuelles dans votre transaction.
Trouver vos mises en page dans l'interface utilisateur
Lorsque vous modifiez des documents, vous trouverez toutes vos mises en page enregistrées dans la barre d'outils, comme illustré ci-dessous. Notez que les mises en page ne peuvent être appliquées que lorsque les transactions sont au statut Ébauche.
Création d'une nouvelle mise en page
Dans cet exemple, l'extraction de documents est utilisée pour extraire les champs et les enregistrer sous forme de modèle. Pour obtenir plus d'informations, consultez Extraction de documents.
Après avoir créé votre transaction, utilisez le bouton OneSpan Sign LayoutService pour créer une mise en page à partir de votre transaction. Il est important de noter que Layout ID est nécessaire pour appliquer des mises en page aux documents. Le code suivant permet d'effectuer ce qui suit :
String layoutId = eslClient.getLayoutService().createLayout(myPackage); System.out.println(layoutId);
Récupération d'une mise en page
Le code suivant permet de récupérer une mise en page. La première étape consiste à récupérer les mises en page de la première page. Dans cet exemple, cinq mises en page sont récupérées, mais vous pouvez définir un nombre quelconque.
List<DocumentPackage> layouts = eslClient.getLayoutService().getLayouts(Direction.DESCENDING, new PageRequest(i, 5)); while (!layouts.isEmpty()) { //
Ensuite, vous allez créer votre objet itérateur. Cela vous permettra d'itérer dans votre liste de mises en page.
Iterator<DocumentPackage> index = layouts.iterator(); while (index.hasNext()) {
Ensuite, récupérez le nom et l'identifiant de votre mise en page.
DocumentPackage myLayout = index.next(); System.out.println(myLayout.getName() + " " + myLayout.getId()); i++; } //
Utilisez le code suivant pour récupérer les mises en page de chaque page de la transaction, en répétant l'opération pour chaque page :
layouts = eslClient.getLayoutService().getLayouts(Direction.DESCENDING, new PageRequest(i, 5)); }
Application des mises en page
Utilisez le OneSpan Sign LayoutService pour appliquer des mises en page, soit par Layout ID ou par nom.
eslClient.getLayoutService().applyLayout(packageId, "documentId", "layoutId"); eslClient.getLayoutService().applyLayoutByName(packageId, "documentId", "layoutName");
Suppression d'une mise en page
Pour supprimer une mise en page, utilisez le PackageService(). Le code suivant permet d'effectuer ce qui suit :
eslClient.getPackageService().deletePackage(new PackageId("layoutId"));
Résultats
Après avoir exécuté votre code, vous verrez une liste de toutes vos mises en page sous la barre d'outils. Une fois votre mise en page enregistrée, vous pouvez l'appliquer aux documents suivants.
Pour télécharger l'exemple complet de code, consultez notre site Partage de code.
Les modèles et les mises en page répondent au même objectif d'automatisation du processus de signature électronique en réduisant le temps nécessaire à l'envoi de documents comprenant plusieurs blocs de signature et champs de données. Les modèles sont idéaux pour une utilisation au niveau de la transaction; vous pouvez prédéfinir vos signataires, vos documents, les emplacements de signature et les flux de travail de signature électronique afin de rationaliser le processus de signature électronique. Une mise en page, quant à elle, est un type de modèle qui vous permet de créer des emplacements prédéfinis pour vos blocs de signature et vos champs de données dans un document. Il agit comme un « marqueur » de l'emplacement des blocs de signature et des champs de données dans le document. Les mises en page sont utiles pour les utilisateurs qui envoient fréquemment des formulaires qui peuvent être légèrement différents selon le destinataire, mais dont les blocs de signature et les champs de données restent au même endroit dans tout le document. De plus, vous pouvez utiliser plusieurs mises en page par document, et les appliquer à des pages individuelles dans votre transaction.
Trouver vos mises en page dans l'interface utilisateur
Lorsque vous modifiez des documents, vous trouverez toutes vos mises en page enregistrées dans la barre d'outils, comme illustré ci-dessous. Notez que les mises en page ne peuvent être appliquées que lorsque les transactions sont au statut Ébauche.
Création d'une nouvelle mise en page
Dans cet exemple, l'extraction de documents est utilisée pour extraire les champs et les enregistrer sous forme de modèle. Pour obtenir plus d'informations, consultez Extraction de documents.
Après avoir créé votre transaction, utilisez le bouton OneSpan Sign LayoutService pour créer une mise en page à partir de votre transaction. Il est important de noter que Layout ID est nécessaire pour appliquer des mises en page aux documents. Le code suivant permet d'effectuer ce qui suit :
string layoutId = eslClient.LayoutService.CreateLayout(packageFromLayout); Debug.WriteLine(layoutId);
Récupération d'une mise en page
Le code suivant permet de récupérer une mise en page. La première étape consiste à récupérer les mises en page de la première page. Dans cet exemple, cinq mises en page sont récupérées, mais vous pouvez définir un nombre quelconque.
List<DocumentPackage> layouts = eslClient.getLayoutService().getLayouts(Direction.DESCENDING, new PageRequest(i, 5)); while (!layouts.isEmpty()) { //
Ensuite, vous allez créer votre objet itérateur. Cela vous permettra d'itérer dans votre liste de mises en page.
Iterator<DocumentPackage> index = layouts.iterator(); while (index.hasNext()) {
Ensuite, récupérez le nom et l'identifiant de votre mise en page.
DocumentPackage myLayout = index.next(); System.out.println(myLayout.getName() + " " + myLayout.getId()); i++; } //
Utilisez le code suivant pour récupérer les mises en page de chaque page de la transaction, en répétant l'opération pour chaque page :
Application des mises en page
Utilisez le OneSpan Sign LayoutService pour appliquer des mises en page, soit par Layout ID ou par nom.
eslClient.getLayoutService().applyLayout(packageId, "documentId", "layoutId"); eslClient.getLayoutService().applyLayoutByName(packageId, "documentId", "layoutName");
Suppression d'une mise en page
Pour supprimer une mise en page, utilisez le PackageService(). Le code suivant permet d'effectuer ce qui suit :
eslClient.PackageService.DeletePackage(new PackageId("layoutId"));
Résultats
Après avoir exécuté votre code, vous verrez une liste de toutes vos mises en page sous la barre d'outils. Une fois votre mise en page enregistrée, vous pouvez l'appliquer aux documents suivants.
Pour télécharger l'exemple complet de code, consultez notre site Partage de code.
Les modèles et les mises en page répondent au même objectif d'automatisation du processus de signature électronique en réduisant le temps nécessaire à l'envoi de documents comprenant plusieurs blocs de signature et champs de données. Les modèles sont idéaux pour une utilisation au niveau de la transaction; vous pouvez prédéfinir vos signataires, vos documents, les emplacements de signature et les flux de travail de signature électronique afin de rationaliser le processus de signature électronique. Une mise en page, quant à elle, est un type de modèle qui vous permet de créer des emplacements prédéfinis pour vos blocs de signature et vos champs de données dans un document. Il agit comme un « marqueur » de l'emplacement des blocs de signature et des champs de données dans le document. Les mises en page sont utiles pour les utilisateurs qui envoient fréquemment des formulaires qui peuvent être légèrement différents selon le destinataire, mais dont les blocs de signature et les champs de données restent au même endroit dans tout le document. De plus, vous pouvez utiliser plusieurs mises en page par document, et les appliquer à des pages individuelles dans votre transaction.
Trouver vos mises en page dans l'interface utilisateur
Lorsque vous modifiez des documents, vous trouverez toutes vos mises en page enregistrées dans la barre d'outils, comme illustré ci-dessous. Notez que les mises en page ne peuvent être appliquées que lorsque les transactions sont au statut Ébauche.
Création d'une nouvelle mise en page
Dans cet exemple, l'extraction de documents est utilisée pour extraire les champs et les enregistrer sous forme de modèle. Pour obtenir plus d'informations, consultez Extraction de documents.
Utilisez le code suivant pour créer une mise en page à partir d'un document :
Requête HTTP
POST /api/layouts
En-têtes HTTP
Accept: application/json Content-Type: application/json Authorization: Basic api_key
Données utiles de la demande
{ "name":"Layout 02", "type":"LAYOUT", "id":"packageId", "visibility":"SENDER", "documents":[ { "id":"documentId" } ] }
Pour une description complète de chaque champ, voir le tableau des données utiles de la demande ci-dessous.
Données utiles de la réponse
{ "roles": [ { "id": "bjyxbrypiHw6", "data": null, "emailMessage": null, "attachmentRequirements": [], "locked": false, "reassign": false, "specialTypes": [], "type": "SENDER", "index": 0, "signers": [ { "group": null, "language": "en", "signature": { "handdrawn": "AQAAADJI+a4cnf0t3Dlf0GqWJceCA+4AAwADAN8BAAADAAAAggPuAOgAAAACfyxAUkAlQCdAOUA6QDtAHEAtQBtACkAJQBVAFBIyfkA0QBVABkAYQCpAHEAtQC9ALkAtQDxAO0A6QEhAN0AlQCQyTjZAgEBwQIBAoFDSUOFQ8lDiUNJQ0lCiQHBAUCIXGVBSUCVQN1BJUDpQXVA9UE5QLlAuUDpQOVAkm1BhQLZAd0B7QFpAXUBPQTBAHkAdQAtAB2AmYBRgQmCAcJVwmHC5Mh42QFBAkECAQKBAsEDAQNBQ8VDyUPJQ81DTULRQg1ByUEGeIgQ6QDhAJ0AmQCZAFItwbHBtMhdBUCafUGJQcVCSUJFQoUDAQKBAsECBQHNAdEBEQDRABkAFYCdgR2BXYHhgd2CIYIVgdmBDYEJAUUBwQIFAkECwQLBA0EDAQLBAoEBwQGASG0xAc0BnQEhASkArQBxADEAKQAlABkAFMkVKUENQUVBBUGFQYVCRUKJQsVDCUNJQsUDQQKBAkEBwQFJAREAlIllVUHFQUVByUKFQslDSUNJQ9VDlUPZQ1lDWUKVQZVBEUCQyCxivr2BjYGRgdGB1YHZgZmBWYEdgRkAFQClAREBjQJNAk0CzQKNAs0CjQJNAQo9gRWBjYJNgs2DCYNRg1GCkYKRgY2Bkrg==", "textual": null }, "id": "8ceWLxUo1Gg1", "delivery": { "provider": false, "email": true, "download": true }, "knowledgeBasedAuthentication": null, "auth": { "scheme": "NONE", "challenges": [] }, "data": null, "title": "Silanis", "external": null, "updated": "2017-11-14T20:31:34Z", "phone": "", "professionalIdentityFields": [], "userCustomFields": [], "company": "Silanis", "email": "[email protected]", "firstName": "Haris", "lastName": "Haidary", "name": "", "address": null, "created": "2017-11-14T20:31:34Z", "specialTypes": [] } ], "name": "Owner" }, { "id": "a3bfe56c-da0a-4ff0-bfef-efe55fd28a0c", "data": null, "emailMessage": { "content": "" }, "attachmentRequirements": [], "locked": false, "reassign": false, "specialTypes": [], "type": "SIGNER", "index": 0, "signers": [], "name": "Signer1" }, { "id": "564fd009-7673-4a5f-9314-5c5b3d5f3869", "data": null, "emailMessage": { "content": "" }, "attachmentRequirements": [], "locked": false, "reassign": false, "specialTypes": [], "type": "SIGNER", "index": 0, "signers": [], "name": "Signer2" } ], "status": "DRAFT", "description": "", "language": "en", "id": "rr8lE3YwF-LaCNxSjntn2udM8hc=", "data": { "origin": "api" }, "autocomplete": true, "documents": [ { "status": "", "description": "", "id": "dfe8ac46006b31f6", "signedHash": null, "extractionTypes": [], "signerVerificationToken": null, "data": { "ese_document_texttag_extract_needed": "false" }, "approvals": [ { "id": "akmT717La0YP", "role": "a3bfe56c-da0a-4ff0-bfef-efe55fd28a0c", "data": null, "signed": null, "accepted": null, "fields": [ { "binding": null, "validation": null, "id": "AooaSEwkp0oG", "page": 0, "data": null, "subtype": "FULLNAME", "height": 40, "extract": false, "width": 200, "extractAnchor": null, "left": 94, "top": 752, "type": "SIGNATURE", "value": "", "name": "AooaSEwkp0oG" } ], "name": "AooaSEwkp0oG" }, { "id": "anR9R3fLlQYE", "role": "564fd009-7673-4a5f-9314-5c5b3d5f3869", "data": null, "signed": null, "accepted": null, "fields": [ { "binding": null, "validation": null, "id": "AvqDbyKBeIoX", "page": 0, "data": null, "subtype": "FULLNAME", "height": 40, "extract": false, "width": 200, "extractAnchor": null, "left": 94, "top": 833, "type": "SIGNATURE", "value": "", "name": "AvqDbyKBeIoX" } ], "name": "AvqDbyKBeIoX" } ], "pages": [ { "id": "", "height": 1030, "width": 796, "left": 0, "top": 0, "version": 0, "index": 0 } ], "external": null, "extract": false, "fields": [], "index": 0, "name": "cleaning_contract", "size": 197171 } ], "sender": { "status": "ACTIVE", "language": "en", "signature": { "handdrawn": "AQAAADJI+a4cnf0t3Dlf0GqWJceCA+4AAwADAN8BAAADAAAAggPuAOgAAAACfyxAUkAlQCdAOUA6QDtAHEAtQBtACkAJQBVAFBIyfkA0QBVABkAYQCpAHEAtQC9ALkAtQDxAO0A6QEhAN0AlQCQyTjZAgEBwQIBAoFDSUOFQ8lDiUNJQ0lCiQHBAUCIXGVBSUCVQN1BJUDpQXVA9UE5QLlAuUDpQOVAkm1BhQLZAd0B7QFpAXUBPQTBAHkAdQAtAB2AmYBRgQmCAcJVwmHC5Mh42QFBAkECAQKBAsEDAQNBQ8VDyUPJQ81DTULRQg1ByUEGeIgQ6QDhAJ0AmQCZAFItwbHBtMhdBUCafUGJQcVCSUJFQoUDAQKBAsECBQHNAdEBEQDRABkAFYCdgR2BXYHhgd2CIYIVgdmBDYEJAUUBwQIFAkECwQLBA0EDAQLBAoEBwQGASG0xAc0BnQEhASkArQBxADEAKQAlABkAFMkVKUENQUVBBUGFQYVCRUKJQsVDCUNJQsUDQQKBAkEBwQFJAREAlIllVUHFQUVByUKFQslDSUNJQ9VDlUPZQ1lDWUKVQZVBEUCQyCxivr2BjYGRgdGB1YHZgZmBWYEdgRkAFQClAREBjQJNAk0CzQKNAs0CjQJNAQo9gRWBjYJNgs2DCYNRg1GCkYKRgY2Bkrg==", "textual": null }, "id": "ZQI8k6faVoM8", "data": { "serviceCredentials": "{}", "showIntro": false }, "account": null, "title": null, "external": null, "updated": "2016-05-05T19:30:13Z", "memberships": [], "phone": "+1 201-555-5555", "professionalIdentityFields": [], "userCustomFields": [ { "id": "policy_number_id", "data": null, "translations": [ { "description": "Car Insurance Policy Number.", "language": "en", "id": "", "data": null, "name": "Policy Number" } ], "value": "", "name": "" } ], "locked": null, "activated": null, "company": "eSignLive", "email": "[email protected]", "firstName": "Haris", "lastName": "Haidary", "type": "MANAGER", "name": "", "address": null, "created": "2016-05-05T19:30:13Z", "specialTypes": [], "hasDelegates": false }, "emailMessage": "", "limits": null, "notarized": false, "notaryRoleId": null, "settings": { "ceremony": { "layout": { "header": { "feedback": true, "titleBar": null, "breadcrumbs": true, "globalActions": { "confirm": true, "download": true, "hideEvidenceSummary": true, "saveAsLayout": true }, "globalNavigation": true, "sessionBar": true }, "footer": null, "brandingBar": { "logo": { "link": "", "src": "branding" } }, "iframe": false, "navigator": true }, "style": null, "enforceCaptureSignature": false, "events": { "complete": { "redirect": null, "dialog": true } }, "extractAcroFields": true, "extractTextTags": true, "inPerson": false, "declineButton": true, "declineReasons": [], "disableDeclineOther": false, "disableDownloadForUncompletedPackage": false, "disableFirstInPersonAffidavit": false, "disableInPersonAffidavit": false, "disableOptOutOther": false, "disableSecondInPersonAffidavit": false, "documentToolbarOptions": null, "handOver": null, "hideCaptureText": false, "hideLanguageDropdown": false, "hidePackageOwnerInPerson": false, "hideWatermark": false, "maxAuthFailsAllowed": 3, "optOutButton": true, "optOutReasons": [] } }, "signedDocumentDelivery": null, "trashed": false, "updated": "2017-11-14T20:31:34Z", "completed": null, "consent": null, "due": null, "visibility": "SENDER", "type": "LAYOUT", "messages": [], "name": "cleaning_contract", "created": "2017-11-14T20:31:34Z", "bulkSendable": true }
Il est important de noter que l'option Layout ID est nécessaire pour appliquer des mises en page aux documents.
Récupération d'une mise en page
Vous pouvez également récupérer toutes vos mises en page enregistrées. Le code suivant permet d'effectuer ce qui suit :
Requête HTTP
GET /api/layouts?from={fromPage}&to={toPage}
En-têtes HTTP
Accept: application/json Content-Type: application/json Authorization: Basic api_key
Données utiles de la réponse
{ "results": [ { "roles": [ { "id": "564fd009-7673-4a5f-9314-5c5b3d5f3869", "data": null, "emailMessage": { "content": "" }, "attachmentRequirements": [], "locked": false, "reassign": false, "specialTypes": [], "type": "SIGNER", "index": 0, "signers": [], "name": "Signer2" }, { "id": "a3bfe56c-da0a-4ff0-bfef-efe55fd28a0c", "data": null, "emailMessage": { "content": "" }, "attachmentRequirements": [], "locked": false, "reassign": false, "specialTypes": [], "type": "SIGNER", "index": 0, "signers": [], "name": "Signer1" }, { "id": "bjyxbrypiHw6", "data": null, "emailMessage": null, "attachmentRequirements": [], "locked": false, "reassign": false, "specialTypes": [], "type": "SENDER", "index": 0, "signers": [ { "group": null, "language": "en", "signature": { "handdrawn": "AQAAADJI+a4cnf0t3Dlf0GqWJceCA+4AAwADAN8BAAADAAAAggPuAOgAAAACfyxAUkAlQCdAOUA6QDtAHEAtQBtACkAJQBVAFBIyfkA0QBVABkAYQCpAHEAtQC9ALkAtQDxAO0A6QEhAN0AlQCQyTjZAgEBwQIBAoFDSUOFQ8lDiUNJQ0lCiQHBAUCIXGVBSUCVQN1BJUDpQXVA9UE5QLlAuUDpQOVAkm1BhQLZAd0B7QFpAXUBPQTBAHkAdQAtAB2AmYBRgQmCAcJVwmHC5Mh42QFBAkECAQKBAsEDAQNBQ8VDyUPJQ81DTULRQg1ByUEGeIgQ6QDhAJ0AmQCZAFItwbHBtMhdBUCafUGJQcVCSUJFQoUDAQKBAsECBQHNAdEBEQDRABkAFYCdgR2BXYHhgd2CIYIVgdmBDYEJAUUBwQIFAkECwQLBA0EDAQLBAoEBwQGASG0xAc0BnQEhASkArQBxADEAKQAlABkAFMkVKUENQUVBBUGFQYVCRUKJQsVDCUNJQsUDQQKBAkEBwQFJAREAlIllVUHFQUVByUKFQslDSUNJQ9VDlUPZQ1lDWUKVQZVBEUCQyCxivr2BjYGRgdGB1YHZgZmBWYEdgRkAFQClAREBjQJNAk0CzQKNAs0CjQJNAQo9gRWBjYJNgs2DCYNRg1GCkYKRgY2Bkrg==", "textual": null }, "id": "8ceWLxUo1Gg1", "delivery": { "provider": false, "email": true, "download": true }, "knowledgeBasedAuthentication": null, "auth": { "scheme": "NONE", "challenges": [] }, "data": null, "title": "Silanis", "external": null, "updated": "2017-11-14T20:31:34Z", "phone": "", "professionalIdentityFields": [], "userCustomFields": [], "company": "Silanis", "email": "[email protected]", "firstName": "Haris", "lastName": "Haidary", "name": "", "address": null, "created": "2017-11-14T20:31:34Z", "specialTypes": [] } ], "name": "Owner" } ], "status": "DRAFT", "description": "", "language": "en", "id": "rr8lE3YwF-LaCNxSjntn2udM8hc=", "data": { "origin": "api" }, "autocomplete": true, "documents": [ { "status": "", "description": "", "id": "dfe8ac46006b31f6", "signedHash": null, "extractionTypes": [], "signerVerificationToken": null, "data": {}, "approvals": [ { "id": "akmT717La0YP", "role": "a3bfe56c-da0a-4ff0-bfef-efe55fd28a0c", "data": null, "signed": null, "accepted": null, "fields": [ { "binding": null, "validation": null, "id": "AooaSEwkp0oG", "page": 0, "data": null, "subtype": "FULLNAME", "height": 39.99995853281021, "extract": false, "width": 199.99979266405106, "extractAnchor": null, "left": 94.00000655210017, "top": 752.0005724167823, "type": "SIGNATURE", "value": "", "name": "AooaSEwkp0oG" } ], "name": "" }, { "id": "anR9R3fLlQYE", "role": "564fd009-7673-4a5f-9314-5c5b3d5f3869", "data": null, "signed": null, "accepted": null, "fields": [ { "binding": null, "validation": null, "id": "AvqDbyKBeIoX", "page": 0, "data": null, "subtype": "FULLNAME", "height": 39.99995853281021, "extract": false, "width": 199.99979266405106, "extractAnchor": null, "left": 94.00000655210017, "top": 832.999669445753, "type": "SIGNATURE", "value": "", "name": "AvqDbyKBeIoX" } ], "name": "" } ], "pages": [ { "id": "dfe8ac46006b31f6_0_-1_1.png", "height": 1030, "width": 796, "left": 0, "top": 0, "version": 0, "index": 0 } ], "external": null, "extract": false, "fields": [], "index": 0, "name": "cleaning_contract", "size": 197171 } ], "sender": { "status": "ACTIVE", "language": "en", "signature": { "handdrawn": "AQAAADJI+a4cnf0t3Dlf0GqWJceCA+4AAwADAN8BAAADAAAAggPuAOgAAAACfyxAUkAlQCdAOUA6QDtAHEAtQBtACkAJQBVAFBIyfkA0QBVABkAYQCpAHEAtQC9ALkAtQDxAO0A6QEhAN0AlQCQyTjZAgEBwQIBAoFDSUOFQ8lDiUNJQ0lCiQHBAUCIXGVBSUCVQN1BJUDpQXVA9UE5QLlAuUDpQOVAkm1BhQLZAd0B7QFpAXUBPQTBAHkAdQAtAB2AmYBRgQmCAcJVwmHC5Mh42QFBAkECAQKBAsEDAQNBQ8VDyUPJQ81DTULRQg1ByUEGeIgQ6QDhAJ0AmQCZAFItwbHBtMhdBUCafUGJQcVCSUJFQoUDAQKBAsECBQHNAdEBEQDRABkAFYCdgR2BXYHhgd2CIYIVgdmBDYEJAUUBwQIFAkECwQLBA0EDAQLBAoEBwQGASG0xAc0BnQEhASkArQBxADEAKQAlABkAFMkVKUENQUVBBUGFQYVCRUKJQsVDCUNJQsUDQQKBAkEBwQFJAREAlIllVUHFQUVByUKFQslDSUNJQ9VDlUPZQ1lDWUKVQZVBEUCQyCxivr2BjYGRgdGB1YHZgZmBWYEdgRkAFQClAREBjQJNAk0CzQKNAs0CjQJNAQo9gRWBjYJNgs2DCYNRg1GCkYKRgY2Bkrg==", "textual": null }, "id": "ZQI8k6faVoM8", "data": { "serviceCredentials": "{}", "showIntro": false }, "account": { "id": "3vD0Dc9Fh7wQ", "data": null, "updated": "2016-05-05T19:30:13Z", "company": { "id": "jVWmyg4cyis8", "data": null, "address": { "address1": null, "address2": null, "city": null, "country": null, "zipcode": null, "state": null }, "name": "eSignLive" }, "licenses": [ { "status": "ACTIVE", "paidUntil": "2020-05-05T00:00:00Z", "plan": { "group": "", "description": "E-Sign Hundreds of Documents with Unlimited Signers", "id": "sandbox", "features": null, "price": { "amount": 0, "currency": { "id": "USD", "data": null, "name": "US Dollar" } }, "original": null, "cycle": "YEAR", "contract": "YEAR", "freeCycles": null, "quotas": [ { "cycle": null, "scope": "ACCOUNT", "limit": 100, "target": "SENDER" }, { "cycle": null, "scope": "SENDER", "limit": 500, "target": "DOCUMENT" }, { "cycle": null, "scope": "SENDER", "limit": 500, "target": "STORAGE" } ], "data": null, "name": "Sandbox" }, "transactions": [], "created": "2016-05-05T19:30:13Z" } ], "logoUrl": "", "providers": null, "customFields": [ { "required": false, "id": "policy_number_id", "data": null, "translations": [ { "description": "Car Insurance Policy Number.", "language": "en", "id": "", "data": null, "name": "Policy Number" } ], "value": "123-456-789-0", "name": "" } ], "created": "2016-05-05T19:30:13Z", "owner": "ZQI8k6faVoM8", "name": "Haris Haidary" }, "title": null, "external": null, "updated": "2016-05-05T19:30:13Z", "memberships": [], "phone": "+1 201-555-5555", "professionalIdentityFields": [], "userCustomFields": [ { "id": "policy_number_id", "data": null, "translations": [ { "description": "Car Insurance Policy Number.", "language": "en", "id": "", "data": null, "name": "Policy Number" } ], "value": "", "name": "" } ], "locked": null, "activated": null, "company": "eSignLive", "email": "[email protected]", "firstName": "Haris", "lastName": "Haidary", "type": "MANAGER", "name": "", "address": { "address1": "", "address2": "", "city": "", "country": "", "zipcode": "", "state": "" }, "created": "2016-05-05T19:30:13Z", "specialTypes": [], "hasDelegates": false }, "emailMessage": "", "limits": null, "notarized": false, "settings": { "ceremony": { "layout": { "header": { "feedback": true, "titleBar": null, "breadcrumbs": true, "globalActions": { "confirm": true, "download": true, "hideEvidenceSummary": true, "saveAsLayout": true }, "globalNavigation": true, "sessionBar": true }, "footer": null, "brandingBar": { "logo": { "link": "", "src": "branding" } }, "iframe": false, "navigator": true }, "style": null, "enforceCaptureSignature": false, "events": { "complete": { "redirect": null, "dialog": true } }, "extractAcroFields": true, "extractTextTags": true, "inPerson": false, "declineButton": true, "declineReasons": [], "disableDeclineOther": false, "disableDownloadForUncompletedPackage": false, "disableFirstInPersonAffidavit": false, "disableInPersonAffidavit": false, "disableOptOutOther": false, "disableSecondInPersonAffidavit": false, "documentToolbarOptions": null, "handOver": null, "hideCaptureText": false, "hideLanguageDropdown": false, "hidePackageOwnerInPerson": false, "hideWatermark": false, "maxAuthFailsAllowed": 3, "optOutButton": true, "optOutReasons": [] } }, "signedDocumentDelivery": null, "updated": "2017-11-14T20:31:34Z", "consent": null, "due": null, "visibility": "SENDER", "type": "LAYOUT", "messages": [], "name": "cleaning_contract", "created": "2017-11-14T20:31:34Z", "notaryRoleId": null, "bulkSendable": false } ], "count": 5 }
De la même manière, pour appliquer une mise en page, vous aurez besoin des éléments suivants packageId, documentId, et layoutId/layoutName pour faire votre demande :
Si vous utilisez LayoutID :
Requête HTTP
POST /api/packages/{packageId}/documents/{documentId}/layout?layoutId={layoutId}
En-têtes HTTP
Accept: application/json Content-Type: application/json Authorization: Basic api_key
Si vous utilisez le nom de la mise en page :
Requête HTTP
POST /api/packages/{packageId}/documents/{documentId}/layout?layoutName={layoutName}
En-têtes HTTP
Accept: application/json Content-Type: application/json Authorization: Basic api_key
Suppression d'une mise en page
Pour supprimer une mise en page, utilisez le code suivant :
Requête HTTP
DELETE /api/packages/{layoutId}
En-têtes HTTP
Accept: application/json Content-Type: application/json Authorization: Basic api_key
Résultats
Après avoir exécuté votre code, vous verrez une liste de toutes vos mises en page sous la barre d'outils. Une fois votre mise en page enregistrée, vous pouvez l'appliquer aux documents suivants.
Tableau des données utiles de la demande
Propriété | Type | Modifiable | Requis | Par défaut | Exemples de valeurs |
---|---|---|---|---|---|
type | chaîne de caractères | Oui | Non | PACKAGE | PAQUET / MODÈLE / MISE EN PAGE |
nom | chaîne de caractères | Oui | Oui | s.o. | Exemple de mise en page |
id | chaîne de caractères | Oui | Non | s.o. | rr8lE3YwF-LaCNxSjntn2udM8hc= |
visibilité | chaîne de caractères | Oui | Non | COMPTE | COMPTE / EXPÉDITEUR |
documents | |||||
id | chaîne de caractères | Oui | Non | s.o. | exemple-contrat |
Pour télécharger l'exemple complet de code, consultez notre site Partage de code.
Les modèles et les mises en page répondent au même objectif d'automatisation du processus de signature électronique en réduisant le temps nécessaire à l'envoi de documents comprenant plusieurs blocs de signature et champs de données. Les modèles sont idéaux pour une utilisation au niveau de la transaction; vous pouvez prédéfinir vos signataires, vos documents, les emplacements de signature et les flux de travail de signature électronique afin de rationaliser le processus de signature électronique. Une mise en page, quant à elle, est un type de modèle qui vous permet de créer des emplacements prédéfinis pour vos blocs de signature et vos champs de données dans un document. Il agit comme un « marqueur » de l'emplacement des blocs de signature et des champs de données dans le document. Les mises en page sont utiles pour les utilisateurs qui envoient fréquemment des formulaires qui peuvent être légèrement différents selon le destinataire, mais dont les blocs de signature et les champs de données restent au même endroit dans tout le document. De plus, vous pouvez utiliser plusieurs mises en page par document, et les appliquer à des pages individuelles dans votre transaction.
Trouver vos mises en page dans l'interface utilisateur
Lorsque vous modifiez des documents, vous trouverez toutes vos mises en page enregistrées dans la barre d'outils, comme illustré ci-dessous. Notez que les mises en page ne peuvent être appliquées que lorsque les transactions sont au statut Ébauche.
Création d'une nouvelle mise en page
Dans cet exemple, l'extraction de documents est utilisée pour extraire les champs et les enregistrer sous forme de modèle. Pour obtenir plus d'informations, consultez Extraction de documents.
Après avoir créé votre paquetage, utilisez la fonction encapsulée suivante pour créer votre mise en page à partir d'un paquetage existant.
public ESignLiveAPIObjects.package_x createLayout(string packageId, string documentId, string layoutName, TestLayout.Visibility visibility)
Il est important de noter que Layout ID est nécessaire pour appliquer des mises en page aux documents. Le code suivant permet d'effectuer ce qui suit :
ESignLiveAPIObjects.package_x createLayout = createLayout(pkgId,'Sample_Document_Extraction','Layout Created from Apex SDK', TestLayout.Visibility.ACCOUNT); String layoutId = createLayout.id;
Récupération d'une mise en page
Le code suivant permet de récupérer une mise en page.
//retrieve all layouts integer totalCount = getLayoutCount(); integer index = 0; System.debug('Total layout count: ' + totalCount); while(index < totalCount){ List<ESignLiveAPIObjects.package_x> layouts = getLayouts(index,index+49); for(ESignLiveAPIObjects.package_x layout: layouts){ System.debug('Layout name: ' + layout.name + ' with id: ' + layout.id); } index += 50; }
Comme pour la création de mises en page, utilisez les fonctions encapsulées suivantes pour appliquer une mise en page à votre document. Ce code passera dans votre layout ID, target package ID et la cible Document ID.
public void applyLayout(String packageId, String documentId, String layoutId)
Suppression d'une mise en page
Pour supprimer une mise en page, utilisez le code suivant :
//delete layout ESignLiveSDK sdk = new ESignLiveSDK(); sdk.deletePackage(layoutId);
Résultats
Après avoir exécuté votre code, vous verrez une liste de toutes vos mises en page sous la barre d'outils. Une fois votre mise en page enregistrée, vous pouvez l'appliquer aux documents suivants.