--- title: "Gestion des modèles existants" slug: "managing-existing-templates" updated: 2025-02-27T09:57:56Z published: 2025-02-27T09:57:56Z canonical: "docs.onespan.com/managing-existing-templates" --- > ## Documentation Index > Fetch the complete documentation index at: https://docs.onespan.com/llms.txt > Use this file to discover all available pages before exploring further. # Gestion des modèles existants [SDK Java](/v1/docs/fr/managing-existing-templates#sdk-java) [.NET SDK](/v1/docs/fr/managing-existing-templates#net-sdk) [API REST](/v1/docs/fr/managing-existing-templates#api-rest) [APEX SDK](/v1/docs/fr/managing-existing-templates#apex-sdk) ## SDK Java Pour télécharger l'exemple complet de code, consultez notre site [Partage de code](https://community.onespan.com/documentation/onespan-sign/codeshare/template-management-java-sdk/). 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. ### Récupération d'un modèle La récupération des modèles se fait à l'aide de la fonction OneSpan Sign PackageService(). Les modèles sont renvoyés sous forme d'un objet Page. Le code suivant permet de récupérer un modèle : ```java int i = 1; ArrayList templateIds = new ArrayList(); Page templates = eslClient.getPackageService().getTemplates(new PageRequest(i ,50)); for (DocumentPackage template : templates) { System.out.println(String.format("Template name: %s with id %s", template.getName(), template.getId())); templateIds.add(template.getId().toString()); } ``` ### Mise à jour d'un modèle Pour mettre à jour un modèle, créez d'abord un nouvel objet PackageId en utilisant l'Template ID. Ensuite, récupérez votre modèle en utilisant cet objet PackageId et modifiez vos paramètres si nécessaire. Une fois que vous avez terminé, utilisez le TemplateService() pour mettre à jour votre modèle. Le code suivant permet d'effectuer ce qui suit : ```java PackageId templateId = new PackageId(templateIds.get(0)); DocumentPackage templateToUpdate = eslClient.getPackage(templateId); templateToUpdate.setName("This template has been updated"); eslClient.getTemplateService().updateTemplate(templateToUpdate); ``` ### Suppression d'un modèle Pour supprimer un modèle, utilisez le PackageService(). Le code suivant permet d'effectuer ce qui suit : ```plaintext eslClient.getPackageService().deletePackage(templateId); ``` ## .NET SDK Pour télécharger l'exemple complet de code, consultez notre site [Partage de code](https://community.onespan.com/documentation/onespan-sign/codeshare/template-management-net-sdk/). 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. #### Le code La récupération des modèles se fait à l'aide de la fonction OneSpan Sign PackageService(). Les modèles sont renvoyés sous forme d'un objet Page. Le code suivant permet de récupérer un modèle : ```csharp int i = 1; ArrayList templateIds = new ArrayList(); Page templates = eslClient.PackageService.GetTemplates(new PageRequest(i, 50)); foreach (DocumentPackage template in templates) {      Debug.WriteLine(string.Format("Template name: {0} with id {1}", template.Name, template.Id));      templateIds.Add(template.Id.ToString()); } ``` ### Mise à jour d'un modèle Pour mettre à jour un modèle, créez d'abord un nouvel objet PackageId en utilisant l'Template ID. Ensuite, récupérez votre modèle en utilisant cet objet PackageId et modifiez vos paramètres si nécessaire. Une fois que vous avez terminé, utilisez le TemplateService() pour mettre à jour votre modèle. Le code suivant permet d'effectuer ce qui suit : ```csharp PackageId templateId = new PackageId(templateIds[0].ToString()); DocumentPackage templateToUpdate = eslClient.GetPackage(templateId); templateToUpdate.Name = "This template has been updated"; eslClient.TemplateService.Update(templateToUpdate); ``` ### Suppression d'un modèle Pour supprimer un modèle, utilisez le PackageService(). Le code suivant permet d'effectuer ce qui suit : ```csharp eslClient.PackageService.DeletePackage(templateId); ``` ## API REST Pour télécharger l'exemple complet de code, consultez notre site [Partage de code](https://community.onespan.com/documentation/onespan-sign/codeshare/template-management-rest-api/). 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. ### Récupération d'un modèle Le code suivant permet de récupérer un modèle : #### Requête HTTP ```http GET /api/packages?type=TEMPLATE&from=0&to=100 ``` #### En-têtes HTTP ```http Accept: application/json Content-Type: application/json Authorization: Basic api_key ``` #### Données utiles de la réponse ```http {    "results": [        {            "roles": [                {                    "id": "a32f8b14-2771-4000-9ab6-19b8e9aae4bc",                    "emailMessage": null,                    "attachmentRequirements": [],                    "locked": false,                    "reassign": false,                    "specialTypes": [],                    "data": null,                    "index": 2,                    "type": "SIGNER",                    "signers": [],                    "name": "Placeholder2"                },                {                    "id": "fad2c2d5-d75c-4bac-8707-3d9a555b8a07",                    "emailMessage": null,                    "attachmentRequirements": [],                    "locked": false,                    "reassign": false,                    "specialTypes": [],                    "data": null,                    "index": 1,                    "type": "SIGNER",                    "signers": [],                    "name": "Placeholder1"                },                {                    "id": "YV68HNuhshUS",                    "emailMessage": null,                    "attachmentRequirements": [],                    "locked": false,                    "reassign": false,                    "specialTypes": [],                    "data": null,                    "index": 0,                    "type": "SENDER",                    "signers": [                        {                            "group": null,                            "language": "en",                            "signature": {                                "handdrawn": "AQAAADJI+a4cnf0t3Dlf0GqWJceCA+4AAwADAN8BAAADAAAAggPuAOgAAAACfyxAUkAlQCdAOUA6QDtAHEAtQBtACkAJQBVAFBIyfkA0QBVABkAYQCpAHEAtQC9ALkAtQDxAO0A6QEhAN0AlQCQyTjZAgEBwQIBAoFDSUOFQ8lDiUNJQ0lCiQHBAUCIXGVBSUCVQN1BJUDpQXVA9UE5QLlAuUDpQOVAkm1BhQLZAd0B7QFpAXUBPQTBAHkAdQAtAB2AmYBRgQmCAcJVwmHC5Mh42QFBAkECAQKBAsEDAQNBQ8VDyUPJQ81DTULRQg1ByUEGeIgQ6QDhAJ0AmQCZAFItwbHBtMhdBUCafUGJQcVCSUJFQoUDAQKBAsECBQHNAdEBEQDRABkAFYCdgR2BXYHhgd2CIYIVgdmBDYEJAUUBwQIFAkECwQLBA0EDAQLBAoEBwQGASG0xAc0BnQEhASkArQBxADEAKQAlABkAFMkVKUENQUVBBUGFQYVCRUKJQsVDCUNJQsUDQQKBAkEBwQFJAREAlIllVUHFQUVByUKFQslDSUNJQ9VDlUPZQ1lDWUKVQZVBEUCQyCxivr2BjYGRgdGB1YHZgZmBWYEdgRkAFQClAREBjQJNAk0CzQKNAs0CjQJNAQo9gRWBjYJNgs2DCYNRg1GCkYKRgY2Bkrg==",                                "textual": null                            },                            "id": "ZQI8k6faVoM8",                            "address": null,                            "created": "2017-11-01T14:54:52Z",                            "title": null,                            "external": null,                            "updated": "2017-11-01T14:54:52Z",                            "phone": "",                            "userCustomFields": [],                            "company": "eSignLive",                            "email": "haris.haidary@gmail.com",                            "firstName": "Haris",                            "lastName": "Haidary",                            "professionalIdentityFields": [],                            "data": null,                            "auth": {                                "scheme": "NONE",                                "challenges": []                            },                            "knowledgeBasedAuthentication": null,                            "delivery": {                                "email": true,                                "download": true,                                "provider": false                            },                            "name": "",                            "specialTypes": []                        }                    ],                    "name": "Owner"                }            ],            "status": "DRAFT",            "description": "",            "language": "en",            "id": "9VFZTf0vgi2rGEGHTozxZAXlm28=",      "created": "2017-11-01T14:54:52Z",            "autocomplete": true,            "sender": {                "status": "ACTIVE",                "language": "en",                "signature": {                    "handdrawn": "AQAAADJI+a4cnf0t3Dlf0GqWJceCA+4AAwADAN8BAAADAAAAggPuAOgAAAACfyxAUkAlQCdAOUA6QDtAHEAtQBtACkAJQBVAFBIyfkA0QBVABkAYQCpAHEAtQC9ALkAtQDxAO0A6QEhAN0AlQCQyTjZAgEBwQIBAoFDSUOFQ8lDiUNJQ0lCiQHBAUCIXGVBSUCVQN1BJUDpQXVA9UE5QLlAuUDpQOVAkm1BhQLZAd0B7QFpAXUBPQTBAHkAdQAtAB2AmYBRgQmCAcJVwmHC5Mh42QFBAkECAQKBAsEDAQNBQ8VDyUPJQ81DTULRQg1ByUEGeIgQ6QDhAJ0AmQCZAFItwbHBtMhdBUCafUGJQcVCSUJFQoUDAQKBAsECBQHNAdEBEQDRABkAFYCdgR2BXYHhgd2CIYIVgdmBDYEJAUUBwQIFAkECwQLBA0EDAQLBAoEBwQGASG0xAc0BnQEhASkArQBxADEAKQAlABkAFMkVKUENQUVBBUGFQYVCRUKJQsVDCUNJQsUDQQKBAkEBwQFJAREAlIllVUHFQUVByUKFQslDSUNJQ9VDlUPZQ1lDWUKVQZVBEUCQyCxivr2BjYGRgdGB1YHZgZmBWYEdgRkAFQClAREBjQJNAk0CzQKNAs0CjQJNAQo9gRWBjYJNgs2DCYNRg1GCkYKRgY2Bkrg==",                    "textual": null                },                "id": "ZQI8k6faVoM8",                "address": {                    "zipcode": "",                    "address1": "",                    "address2": "",                    "city": "",                    "country": "",                    "state": ""                },                "created": "2016-05-05T19:30:13Z",                "title": null,                "external": null,                "updated": "2016-05-05T19:30:13Z",                "memberships": [],                "phone": "+1 201-555-5555",                "userCustomFields": [                    {                        "id": "policy_number_id",                        "translations": [                            {                                "description": "Car Insurance Policy Number.",                                "language": "en",                                "id": "",                                "data": null,                                "name": "Policy Number"                            }                        ],                        "data": null,                        "value": "",                        "name": ""                    }                ],                "locked": null,                "activated": null,                "company": "eSignLive",                "email": "haris.haidary@gmail.com",                "firstName": "Haris",                "lastName": "Haidary",                "professionalIdentityFields": [],                "account": {                    "owner": "ZQI8k6faVoM8",                    "id": "3vD0Dc9Fh7wQ",                    "created": "2016-05-05T19:30:13Z",                    "providers": null,                    "updated": "2016-05-05T19:30:13Z",                    "company": {                        "id": "jVWmyg4cyis8",                        "address": {                            "zipcode": null,                            "address1": null,                            "address2": null,                            "city": null,                            "country": null,                            "state": null                        },                        "data": null,                        "name": "eSignLive"                    },                    "customFields": [                        {                            "required": false,                            "id": "policy_number_id",                            "translations": [                                {                                    "description": "Car Insurance Policy Number.",                                    "language": "en",                                    "id": "",                                    "data": null,                                    "name": "Policy Number"                                }                            ],                            "data": null,                            "value": "123-456-789-0",                            "name": ""                        }                    ],                    "licenses": [                        {                            "status": "ACTIVE",                            "created": "2016-05-05T19:30:13Z",                            "paidUntil": "2020-05-05T00:00:00Z",                            "transactions": [],                            "plan": {                                "group": "",                                "description": "E-Sign Hundreds of Documents with Unlimited Signers",                                "id": "sandbox",                                "features": null,                                "cycle": "YEAR",                                "contract": "YEAR",                                "freeCycles": null,                                "quotas": [                                    {                                        "scope": "ACCOUNT",                                        "cycle": null,                                        "limit": 100,                                        "target": "SENDER"                                    },                                    {                                        "scope": "SENDER",                                        "cycle": null,                                        "limit": 500,                                        "target": "DOCUMENT"                                    },                                    {                                        "scope": "SENDER",                                        "cycle": null,                                        "limit": 500,                                        "target": "STORAGE"                                    }                                ],                                "original": null,                                "data": null,                                "price": {                                    "amount": 0,                                    "currency": {                                        "id": "USD",                                        "data": null,                                        "name": "US Dollar"                                    }                                },                                "name": "Sandbox"                            }                        }                    ],                    "logoUrl": "",                    "data": null,                    "name": "Haris Haidary"                },                "data": {                    "serviceCredentials": "{}",                    "showIntro": false                },                "type": "MANAGER",                "name": "",                "specialTypes": [],                "hasDelegates": false            },            "documents": [                {                    "status": "",                    "description": "",                    "id": "b1bcf8fb96e7663fcf8d79b3d36ab03a409ffb5ac183ced6",                    "approvals": [                        {                            "role": "a32f8b14-2771-4000-9ab6-19b8e9aae4bc",                            "id": "f3L60CQtJ4w4",                            "signed": null,                            "accepted": null,                            "data": null,                            "fields": [                                {                                    "binding": null,                                    "validation": null,                                    "id": "FT055fW0IMEM",                                    "page": 0,                                    "subtype": "FULLNAME",                                    "height": 52.0252180917263,                                    "extract": false,                                    "width": 234.98929138064383,                                    "extractAnchor": null,                                    "left": 241.80519113063812,                                    "top": 605.0225778079033,                                    "data": null,                                    "type": "SIGNATURE",                                    "value": "",                                    "name": ""                                }                            ],                            "name": ""                        },                        {                            "role": "fad2c2d5-d75c-4bac-8707-3d9a555b8a07",                            "id": "mEZ3ZWiNBYkE",                            "signed": null,                            "accepted": null,                            "data": null,                            "fields": [                                {                                    "binding": null,                                    "validation": null,                                    "id": "MGG8WGRTIEoJ",                                    "page": 0,                                    "subtype": "FULLNAME",                                    "height": 51.99999809265137,                                    "extract": false,                                    "width": 234.9996913802624,                                    "extractAnchor": null,                                    "left": 221.99969185709955,                                    "top": 514.000481146574,                                    "data": null,                                    "type": "SIGNATURE",                                    "value": "",                                    "name": ""                                }                            ],                            "name": ""                        }                    ],                    "pages": [                        {                            "id": "53659ae7eb53699b0e6027311a5b9db435984e896e1306cf_0_-1_1.png",                            "height": 1030,                            "left": 0,                            "width": 796,                            "top": 0,                            "index": 0,                            "version": 0                        }                    ],                    "external": null,                    "extract": false,                    "data": {},                    "signedHash": null,                    "extractionTypes": [],                    "signerVerificationToken": null,                    "fields": [],                    "index": 0,                    "name": "sample_contract",                    "size": 97332                }            ],            "consent": null,            "due": null,            "emailMessage": "",            "limits": null,            "notarized": false,            "settings": {                "ceremony": {                    "layout": {                        "header": {                            "feedback": true,                            "breadcrumbs": true,                            "globalActions": {                                "confirm": true,                                "download": true,                                "hideEvidenceSummary": true,                                "saveAsLayout": true                            },                            "globalNavigation": true,                            "titleBar": null,                            "sessionBar": true                        },                        "brandingBar": {                            "logo": {                                "link": "",                                "src": "branding"                            }                        },                        "iframe": false,                        "footer": null,                        "navigator": true                    },                    "inPerson": false,                    "declineButton": true,                    "declineReasons": [],                    "disableDeclineOther": false,                    "disableDownloadForUncompletedPackage": false,                    "disableFirstInPersonAffidavit": false,                    "disableInPersonAffidavit": false,                    "disableOptOutOther": false,                    "disableSecondInPersonAffidavit": false,                    "documentToolbarOptions": null,                    "events": {                        "complete": {                            "dialog": true,                            "redirect": null                        }                    },                    "handOver": null,                    "hideCaptureText": false,                    "hideLanguageDropdown": false,                    "hidePackageOwnerInPerson": false,                    "hideWatermark": false,                    "maxAuthFailsAllowed": 3,                    "optOutButton": true,                    "optOutReasons": [],                    "extractAcroFields": false,                    "extractTextTags": false,                    "style": null,                    "enforceCaptureSignature": false                }            },            "signedDocumentDelivery": null,            "updated": "2017-11-01T14:55:35Z",            "visibility": "SENDER",            "data": {                "senderVisible": false            },            "messages": [],            "type": "TEMPLATE",            "name": "Signing Order Sender",            "notaryRoleId": null,            "bulkSendable": true        }    ],    "count": 11 } ``` ### Mise à jour d'un modèle Pour mettre à jour un modèle, vous devez d'abord récupérer votre Template ID. Ensuite, vous construisez vos données utiles JSON avec les paramètres que vous souhaitez modifier. #### Requête HTTP ```http PUT /api/packages/{templateId} ``` #### En-têtes HTTP ```http Accept: application/json Content-Type: application/json Authorization: Basic api_key ``` #### Données utiles de la demande ```json {   "name": "Updating template name" } ``` Pour une description complète de chaque champ, voir le tableau des données utiles de la demande ci-dessous. ### Suppression d'un modèle Enfin, pour supprimer un modèle, faites une demande SUPPRIMER, comme suit : #### Requête HTTP ```http DELETE /api/packages/{templateId} ``` #### En-têtes HTTP ```http Accept: application/json Content-Type: application/json Authorization: Basic api_key ``` #### Tableau des données utiles de la demande | Propriété | Type | Modifiable | Requis | Par défaut | Exemples de valeurs | | --- | --- | --- | --- | --- | --- | | statut | chaîne de caractères | Oui | Non | ÉBAUCHE | ÉBAUCHE / ENVOYÉ / COMPLÉTÉ / ARCHIVÉ / DÉCLINÉ / REFUSÉ / EXPIRÉ | | ComplétionAuto | booléen | Oui | Non | vrai | vrai / faux | | 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 d'attributs de document | | supprimé | booléen | Oui | Non | faux | vrai / faux | | visibilité | chaîne de caractères | Oui | Non | COMPTE | COMPTE / EXPÉDITEUR | | documents | | | | | | | nom | chaîne de caractères | Oui | Non | s.o. | exemple de document | | approbations | | | | | | | champs | | | | | | | sous-type | chaîne de caractères | Oui | Non | s.o. | NOM COMPLET / INITIALES / CAPTURE / CAPTURE_MOBILE / ÉTIQUETTE / CHAMP DE TEXTE / ZONE DE TEXTE / CASE / DATE / RADIO / LISTE | | type | chaîne de caractères | Oui | Non | s.o. | SIGNATURE / ENTRÉE | | extrait | booléen | Oui | Non | faux | vrai / faux | | hauteur | entier | Oui | Non | 50 | 50 / 100 / 150 ... | | gauche | entier | Oui | Non | 0 | 50 / 100 / 150 ... | | page | entier | Oui | Non | 0 | 0 / 1 / 2 ... | | haut | entier | Oui | Non | 0 | 50 / 100 / 150 ... | | largeur | entier | Oui | Non | 200 | 50 / 100 / 150 ... | | | | | | | | | rôle | chaîne de caractères | Oui | Non | s.o. | Client1 | | données | | | | | | | Département | chaîne de caractères | Oui | Non | s.o. | 1806 | | Employé | chaîne de caractères | Oui | Non | s.o. | 135526 | | rôles | | | | | | | id | chaîne de caractères | Oui | Non | s.o. | Client1 | | nom | chaîne de caractères | Oui | Non | s.o. | Client1 | | type | chaîne de caractères | Oui | Non | SIGNER | SIGNATAIRE / EXPÉDITEUR | | signataires | | | | | | | courriel | chaîne de caractères | Oui | Oui | s.o. | courriel.préparateur@exemple.com | | Prénom | chaîne de caractères | Oui | Oui | s.o. | John | | Nom de famille | chaîne de caractères | Oui | Oui | s.o. | Smith | | téléphone | chaîne de caractères | Oui | Non | s.o. | 514-555-8888 | | id | chaîne de caractères | Oui | Non | s.o. | Client1 | | entreprise | chaîne de caractères | Oui | Non | s.o. | Acme Inc. | | titre | chaîne de caractères | Oui | Non | s.o. | Directeur général | ## APEX SDK Pour télécharger l'exemple complet de code, consultez notre site [Partage de code](https://community.onespan.com/documentation/onespan-sign/codeshare/template-management-apex-sdk/). 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. ### Récupération d'un modèle Le code suivant permet de récupérer un modèle : ```plaintext     //Retrieving templates     integer totalCount = getTemplateCount();     integer index = 1;     List templates = new List();         System.debug('Total template count: ' + totalCount);     while(index < totalCount){     templates.addAll(getTemplates(index,index+49));     index += 50;     }     for(ESignLiveAPIObjects.package_x template: templates){     System.debug('Template name: ' + template.name + ' with id: ' + template.id);     } ``` Dans le code ci-dessus, il y a deux fonctions encapsulées : - public integer getTemplateCount(): Cela renvoie la quantité totale de modèles. - public List getTemplates(integer from_x, integer to): Ceci renvoie une liste d'objets modèles en fonction de l'index de et à. L'index commence à 1 et renvoie un maximum de 100 résultats. ### Mise à jour d'un modèle Pour mettre à jour un modèle, vous devez d'abord récupérer votre modèle à l'aide de l'Template ID. Ensuite, modifiez vos paramètres selon vos besoins. Une fois que vous avez terminé, utilisez le bouton updatePackage () pour mettre à jour votre modèle. Le code suivant permet d'effectuer ce qui suit : ```plaintext ESignLiveSDK sdk = new ESignLiveSDK(); ESignLiveAPIObjects.package_x template = sdk.getPackage('E-_tmDsICwCkM2vqFuzVxF7NVQQ='); template.name = 'This template has been updated - ' + Datetime.now().format(); sdk.helper.updatePackage(template,'E-_tmDsICwCkM2vqFuzVxF7NVQQ='); ``` ### Suppression d'un modèle Pour supprimer un modèle, utilisez la fonction deletePackage(). Le code suivant permet d'effectuer ce qui suit : ```plaintext sdk.helper.deletePackage('E-_tmDsICwCkM2vqFuzVxF7NVQQ='); ```