Création de transactions programmatiquement

Prev Next

OneSpan Sign pour Salesforce vous permet de créer des transactions OneSpan Sign de manière programmatique. Il existe deux principales façons d'y parvenir :

La section suivante fournit des informations pertinentes pour les deux procédures ci-dessus :

L'URL qui apparaît dans les exemples de code ci-dessous doit commencer par la chaîne /apex/esl__package?de caractères . C'est l'URL requise pour accéder à la page Visualforce d'une transaction OneSpan Sign.

Créer une transaction à partir d'un bouton personnalisé

Si vous créez un bouton personnalisé et l'ajoutez à un objet Salesforce, le bouton ajouté permet aux utilisateurs de Salesforce d'envoyer des documents à signer à partir des enregistrements de cet objet.

Vous pouvez créer une transaction à partir d'un bouton personnalisé de la manière suivante :

Créer une transaction à partir d'un modèle

Pour créer un package de manière programmatique à partir d'un modèle :

  • Écrivez puis exécutez du code qui créera un package à partir d'un modèle.

Vous devez spécifier les paramètres du modèle suivants :

  • ParentId

  • Name

  • TemplateId

À la fin de cette procédure, vous devriez voir toutes les informations du modèle reflétées dans le package créé.

Exemple

Lorsque le code snippet suivant est exécuté, il crée un paquet OneSpan Sign à partir d'un modèle pour un compte particulier :

/apex/esl__package?ParentId={!Account.Id}&Name={!Account.Name}%20Agreement&TemplateID=a0G360000018BdREAU

Créer une transaction à partir d'un identifiant Salesforce ou d'une adresse e-mail

Lors de la création d'une transaction à partir d'un identifiant Salesforce, vous devez spécifier les paramètres suivants :

  • Name

  • SignerN — Cela peut être soit un identifiant Salesforce (voir Exemple 1), soit une adresse e-mail pour le N-ième destinataire (voir Exemple 2). Si SignerN est une adresse e-mail, les paramètres suivants sont également requis :

    • SignerNFirstName

    • SignerNLastName

  • Documents

    OneSpan Sign prend en charge les types de documents suivants :

    • Le format de document portable d'Adobe (*.pdf) — Les PDF sur lesquels OneSpan Sign peut agir ont généralement au moins ces permissions activées : (1) Modification du document ; (2) Signature ; (3) Remplissage des champs de formulaire.

    • Microsoft Word (*.Doc ou *. docx)

    • Open Office (*.odt)

    • Texte (*.txt)

    • Format de texte enrichi (*.RTF)

    De plus, le pilote d'impression OneSpan Sign prend en charge tout document pouvant être imprimé depuis une application Windows (par exemple, Microsoft Word, Microsoft Excel, Microsoft PowerPoint).

    Contraintes de taille de fichier

    • La taille maximale d'un seul document est de 16 Mo. Les documents plus petits offrent de meilleures performances — nous recommandons moins de 5 Mo par document.

    • La taille totale maximale de tous les documents d'une transaction est de 39 Mo.

    • Si votre organisation utilise des connecteurs Salesforce ou Microsoft SharePoint, la taille maximale du fichier est de 5 Mo par document.

    • Si votre organisation utilise des connecteurs Salesforce, le nombre maximal de documents pouvant être ajoutés à une transaction est de dix (10).

    • Si vous activez la livraison d'e-mail tout en configurant un destinataire, les pièces jointes supérieures à 5 Mo ne sont pas prises en charge.

    Contraintes de noms de fichiers

    • Les noms de fichiers des documents ne doivent pas contenir les caractères suivants séparés par des virgules : *, /, \, :, <, >, |, ?, ".

    • Le nom d'un document ne peut pas contenir la chaîne signée.

    Contraintes générales des fichiers

    • Nous vous recommandons de ne pas utiliser de documents PDF qui utilisent XML Forms Architecture. Pour plus d'informations, voir Soutien XFA.

    • Ne téléchargez pas les documents protégés par mot de passe ou corrompus. Celles-ci génèrent une erreur.

    • OneSpan recommande vivement de scanner un PDF pour détecter des erreurs de syntaxe (par exemple, en utilisant l'outil Preflight d'Adobe) et de résoudre les erreurs avant d'ajouter le document à une transaction.

    • Les PDF avec le drapeau NeedAppearances réglé sur true ne sont pas actuellement pris en charge.

À la fin de cette procédure, vous devriez voir les informations fournies reflétées dans le package créé.

Exemple 1

Lorsque le extrait de code suivant est exécuté, il crée un package OneSpan Sign à partir de l' ID d'un contact :

/Apex/esl__package ? ParentId={ !Account.Id}&Name={ !Account.Name} %20Agreement&Signer1=00336000003gBYX&Documents=00P360000000wwrd

Exemple 2

Lorsque le code snippet suivant est exécuté, il crée un package OneSpan Sign à partir d'une adresse e-mail. En particulier, ce extrait crée un destinataire de type External Email avec l'adresse john.doe@test.comemail .

/Apex/esl__package ? ParentId={ !Account.Id}&Name={ !Account.Name}%20Agreement&Signer1=john.doe@test.com&Signer1FirstName=john&Signer1LastName=doe&Documents=00P36000000wwrd

Créer une transaction à partir d'une convention

Pour créer une transaction depuis une Convention à l'aide d'un code personnalisé :

  1. Créez une convention appropriée. Pour plus d'informations, consultez Automation via OneSpan Sign Conventions.

  2. Créez un bouton personnalisé qui exécutera le code nécessaire lorsque le bouton est cliqué (voir l'exemple ci-dessous).

  3. Cliquez sur le bouton Personnalisé . Cela devrait permettre de créer une transaction avec les informations spécifiées dans la Convention.

Lorsque le code snippet suivant est exécuté, il crée une transaction OneSpan Sign à partir d'une convention, où :

  • Voici ConventionId l'ID de la Convention à utiliser.

  • Signer1Label est l'identifiant de l'étiquette destinataire à appliquer à Signer1

/Apex/esl__package ? ParentId={ !Account.Id}&Name={ !Account.Name} %20Agreement&Documents=00P36000000wwrd&ConventionId=a0836000000nfRo&Signer1=003360000003gBYX&Signer1Label=a0K360000001j8VW

Création d'une transaction à partir d'une action personnalisée

Si vous créez une action personnalisée et l'ajoutez à un objet Salesforce, l'action supplémentaire permet aux utilisateurs de Lightning Experience d'envoyer facilement des documents à signer via OneSpan Sign.

L'URL utilisée dans la procédure pour une Action personnalisée est la même que celle d'un bouton personnalisé, sauf que l'URL d'une Action personnalisée doit être stockée dans un champ personnalisé créé sur l'objet.

Pour créer une transaction via une action personnalisée, suivez les étapes ci-dessous :

Étape 1 : Créez un champ qui stockera l'URL d'automatisation.

À cette étape, vous devez créer un champ dans l'objet (Compte, Contact, Opportunité, etc.) qui stockera l'URL d'Automatisation. Cette URL suit les mêmes règles que pour le bouton personnalisé, et elle reçoit les mêmes paramètres.

Nous recommandons d'utiliser des champs de formules, afin de pouvoir utiliser les « champs de fusion ».

<apex :page standardController="Account">

<ESL :PackageAutomationFieldName="Account_Automation_URL__c » />

</apex :page >

Étape 2 : Créez une page Visualforce pour déclencher l'automatisation.

Sur la page Visualforce, l'utilisateur administrateur doit utiliser un composant fourni par le connecteur pour : (1) lire l'URL d'automatisation stockée dans le champ créé ci-dessus ; (2) déclencher l'automatisation.

Pour créer la page Visualforce :

  1. Cliquez sur Configurer.

  2. Dans le panneau de gauche, cliquez sur Développer > pages Visualforce. Une liste des pages Visualforce apparaît.

  3. Cliquez sur Nouveau.

  4. Tapez une étiquette, un nom et une description appropriés pour la nouvelle page.

  5. Sélectionnez la case Disponible pour les applications mobiles Salesforce et les pages Éclairage .

  6. Dans l'onglet Balisage Visualforce , tapez le code suivant :

Après que l'utilisateur administrateur a créé la page Visualforce, il doit spécifier : (1) le nom de l'objet qui utilisera cette page (par exemple, Compte, Contact, Opportunité, un objet personnalisé, etc.) ; (2) le nom du champ où l'URL est stockée.

Étape 3 : Créez l'action dans le composant, et associez la page Visualforce à celle-ci.

  1. Cliquez sur Configurer.

  2. Si vous souhaitez utiliser un objet standard, dans le panneau de gauche cliquez sur Personnaliser, et sélectionnez l'objet.

  3. Si vous souhaitez utiliser un objet personnalisé :

    1. Dans le panneau de gauche, cliquez sur Créer > objets. Une nouvelle page affiche une liste d'objets personnalisés.

    2. Trouvez l'objet personnalisé concerné et cliquez sur son nom.

  4. Dans la section Boutons, Liens et Actions , cliquez sur Nouvelle action. Une nouvelle page d'Action s'ouvre.

  5. Dans Type d'action, sélectionnez Visualforce personnalisé.

  6. Sous la page Visualforce, sélectionnez la page Visualforce que vous avez créée plus tôt.

  7. Tapez une étiquette et un nom appropriés pour la nouvelle action personnalisée.

  8. Cliquez sur Enregistrer.

Étape 4 : Ajoutez l'action à la mise en page de la page.

Une fois l'action créée, l'utilisateur administrateur doit l'ajouter à la mise en page pour la rendre accessible aux autres utilisateurs. Il doit également être ajouté aux actions Salesforce1 pour être disponible sur les appareils mobiles.

Pour ajouter la nouvelle Action personnalisée à la mise en page de votre objet personnalisé :

  1. Cliquez sur Configurer.

  2. Dans le panneau de gauche, cliquez sur Créer > objets. Une nouvelle page affiche une liste d'objets personnalisés.

  3. Trouvez votre objet personnalisé et cliquez sur son nom.

  4. Dans la section Mises en page , cliquez sur Modifier. La page de mise en page apparaît.

  5. Cliquez sur l'option Mobile et Lightning en haut à gauche.

  6. Si vous ne voyez aucune action dans la section Actions Mobile et Lightning Experience , cliquez sur l'icône de clé à molette qui apparaît lorsque vous déplacez votre souris sur cette section.

  7. Glissez la nouvelle Action personnalisée dans la section Actions Mobile et Lightning Experience .

  8. Cliquez sur Enregistrer.

À la fin de cette procédure, vous devriez voir toutes les informations d'entrée reflétées dans la transaction créée.

Paramètres pour les extraits de code URL

Le tableau suivant décrit les paramètres pouvant être utilisés dans des extraits de code URL pour toutes les procédures ci-dessus.

Un échantillon statique a une valeur fixe. La valeur d'un échantillon dynamique est spécifiée par un champ fusionné.

Nom du paramètre

Description

Échantillon statique

Échantillon dynamique

TemplateId

L'ID modèle de la transaction. Si ce n'est pas fourni, créez-le à la improviste. Tout champ spécifié dans l'URL supprimera la valeur du modèle. Le modèle doit être actif.

TemplateId=a0Ag0000007r4nS

TemplateId={!Account.Transaction_Template__c}

Nom

Le nom de la transaction, encodé par URL.

Name=My %20Transaction

Name={!Contact.Name} %20Transaction

Description

La description de la transaction, encodée par URL.

Description=The %20Transaction %20Description

Description={!Contact.FirstName} %20{!Contact.LastName}-The %20Transaction %20Description

Date d'expiration

La date d'expiration de la transaction (YYYMMDD)

ExpiryDate=20151230

ExpiryDate={!Contact.ExpiryDate__c}

MessageEmailMessage

Les valeurs saisies dans EmailMessage seront transmises aux modèles par défaut existants « $PACKAGE_MESSAGE » ; comme les modèles « email.activate » et « email.notify ». Pour plus d'informations, voir OneSpan Sign Developers : Modèles d'email.

EmailMessage=Content %20of %20the %20email %20to %20send

EmailMessage={!Account.CustomEmail__c}

Langue

Le langage du paquet de transaction. Les options disponibles sont basées sur les choix de langue effectués sur la page de personnalisation.

Language=en

Language={!Contant.CommunicationLanguage__c}

EnPersonSigning

Un signalement qui précise si la signature en personne est vraie ou fausse

InPersonSigning=true

InPersonSigning={!Contact.InPersonSigning__c}

Documents

Liste des identifiants séparés par virgules. Ces identifiants peuvent être pour des pièces jointes Salesforce, des documents Salesforce ou des fichiers Salesforce. Créez une pièce jointe, un document ou un fichier de transaction avec son binaire, et avec un nom associé correspondant à l'ordre de l'élément dans la liste. Note : Les fichiers Salesforce sont devenus pris en charge uniquement dans OneSpan Sign Embedded Integration pour Salesforce 4.10.

Le système prend en charge un maximum de 5 Mo par document (des documents plus petits offrent de meilleures performances — nous recommandons moins de 5 Mo par document). Le système prend en charge un maximum de 10 documents par transaction ou modèle de transaction. Cependant, il n'y a pas de limite à la taille totale des documents dans une transaction.

Documents=015g0000000Cm1f, 00Pg0000001eg9H

Documents={!Account.DocumentId__c}

Envoyer

Un drapeau indiquant si la transaction doit être envoyée après sa création. Nécessite une Convention par défaut ou le paramètre conventionID , ainsi qu'une étiquette destinataire pour au moins un des destinataires.

Send=1 ou Send=true

Send={!Account.AutomaticallySend__c}

ConventionId

L'identifiant de la Convention qui sera utilisé pour préparer et envoyer la transaction. ConventionId est obligatoire si aucune Convention par défaut n'a été définie dans les Paramètres personnalisés.

ConventionId=a0Rg00000033spu

ConventionId={!Account.Convention__c}

retUrl

L'URL vers laquelle les utilisateurs seront dirigés une fois la transaction envoyée. Il doit avoir Send=1 ou Send=true, et il doit être encodé par URL.

retUrl= %2Fhome %2Fhome.jsp

retUrl= %2F{!Account.Id}

DescriptionObjectName

Spécifie la description d'une transaction, en utilisant le nom d'un objet personnalisé. Il doit s'agir d'un nom d'objet comme Compte ou Transaction__c. Ce paramètre nécessite DescriptionObjectField et DescriptionObjectId.

DescriptionObjectName=Account& DescriptionObjectField=Name& DescriptionObjectId=001g000000T9wTR

DescriptionObjectName=Account& DescriptionObjectField=Name& DescriptionObjectId={!Account.Id}

DescriptionChampObjectDescriptif

Spécifie la description d'une transaction, en utilisant un champ provenant d'un objet personnalisé. Doit être un champ dans l'objet défini dans DescriptionObjectName, comme Nom ou Description__c. Ce paramètre nécessite DescriptionObjectName et DescriptionObjectId.

DescriptionObjectName=Account& DescriptionObjectField=Name& DescriptionObjectId=001g000000T9wTR

DescriptionObjectName=Account& DescriptionObjectField=Name& DescriptionObjectId={!Account.Id}

DescriptionObjectId

Spécifie la description d'une transaction, en utilisant l'ID d'un objet personnalisé. Doit être l'ID d'un objet du type défini dans DescriptionObjectName. Ce paramètre nécessite DescriptionObjectName et DescriptionObjectField.

DescriptionObjectName=Account& DescriptionObjectField=Name& DescriptionObjectId=001g000000T9wTR

DescriptionObjectName=Account& DescriptionObjectField=Name& DescriptionObjectId={!Account.Id}

MessageMessageObjectName

Spécifie le message email d'une transaction, en utilisant le nom d'un objet personnalisé. Ça doit être un nom d'objet comme Compte ou Transaction__c. Ce paramètre nécessite EmailMessageObjectField et EmailMessageObjectId.

EmailMessageObjectName=Account& EmailMessageObjectField=Name& EmailMessageObjectId=001g000000T9wTR

EmailMessageObjectName=Account& EmailMessageObjectField=Name& EmailMessageObjectId={!Account.Id}

MessageObjectChamp EmailMessage

Spécifie le message email d'une transaction, en utilisant un champ provenant d'un objet personnalisé. Doit être un champ dans l'objet défini dans EmailMessageObjectName, comme Nom ou Description__c. Ce paramètre nécessite EmailMessageObjectName et EmailMessageObjectId.

EmailMessageObjectName=Account& EmailMessageObjectField=Name& EmailMessageObjectId=001g000000T9wTR

EmailMessageObjectName=Account& EmailMessageObjectField=Name& EmailMessageObjectId={!Account.Id}

MessageObjectId EmailMessage

Spécifie le message email d'une transaction, en utilisant l'ID d'un objet personnalisé. Doit être l'ID d'un objet du type défini dans EmailMessageObjectName. Ce paramètre nécessite EmailMessageObjectName et EmailMessageObjectField.

EmailMessageObjectName=Account& EmailMessageObjectField=Name& EmailMessageObjectId=001g000000T9wTR

EmailMessageObjectName=Account& EmailMessageObjectField=Name& EmailMessageObjectId={!Account.Id}

SignerX

X est un nombre de 1 à l'infini. La valeur peut être un identifiant de prospect, un identifiant de contact, un identifiant utilisateur ou une adresse e-mail. Si une adresse e-mail est fournie, les paramètres SignerXFirstName et SignerXLastName sont requis.

Signer1=003g000000OLhpk or Signer1=support@onespan.com& Signer1FirstName=John& Signer1LastName=Doe

Signer1={!Account.Main_Contact__c} or Signer1={!Contact.Email}& Signer1FirstName={!Contact.FirstName}& Signer1LastName={!Contact.LastName}

SignerXFirst

Spécifie le prénom du destinataire à l'index X. Il n'est disponible que pour les destinataires externes par email.

Signer1=support@onespan.com& Signer1FirstName=John& Signer1LastName=Doe

Signer1={!Contact.Email}& Signer1FirstName={!Contact.FirstName}& Signer1LastName={!Contact.LastName}

SignerXLastName

Spécifie le nom de famille du destinataire à l'index X. Il n'est disponible que pour les destinataires externes par email.

Signer1=support@onespan.com& Signer1FirstName=John& Signer1LastName=Doe

Signer1={!Contact.Email}& Signer1FirstName={!Contact.FirstName}& Signer1LastName={!Contact.LastName}

SignerXPhone

Précise le numéro de téléphone du destinataire à l'index X. Il n'est disponible que pour les destinataires externes par email.

Signer1=support@onespan.com& Signer1FirstName=John& Signer1LastName=Doe& Signer1Phone=8675309

Signer1={!Contact.Email}& Signer1FirstName={!Contact.FirstName}& Signer1LastName={!Contact.LastName}& Signer1Phone={!Contact.Mobile}

SignerXLabel

Spécifie l'étiquette destinataire associée au destinataire à l'index X. Doit être l'identifiant de l'objet étiquette destinataire dans la Convention correspondante (la Convention par défaut ou celle spécifiée dans ConventionId).

Signer1=003g000000OLhpk& Signer1Label=a0Tg0000001uMIf

Signer1={!Contact.Id}& Signer1Label={!Contact.RecipientLabel__c}

SignerXAllowDelegation

Un drapeau qui détermine si vous autoriserez le destinataire original que vous avez identifié à déléguer quelqu'un d'autre pour signer la transaction en son nom. Les valeurs valides sont : 1 ou 0, vrai ou faux.

Si la valeur est 1 ou vraie, le destinataire devra saisir l'adresse e-mail et le nom complet du délégué, ainsi qu'un message e-mail optionnel à envoyer au délégué. Vous serez informé de ce changement de destinataire, et vous serez mis en copie dans le message e-mail (si envoyé est envoyé).

Signer1=003g000000OLhpk&Signer1AllowDelegation=true

Signer1={!Contact.Id}&Signer1AllowDelegation=1

SignerXAuthMethod

Drapeau qui vous permet de créer une transaction automatiquement, en utilisant l'une des méthodes d'authentification suivantes :

  • Questions et réponses

  • SMS

  • Messagerie électronique

Si la méthode de questions-réponses est sélectionnée comme méthode d'authentification, alors les paramètres supplémentaires suivants doivent être configurés :

  • signerXQandAYQuestion – la question d'authentification

  • signerXQandAYTextAnswer – la bonne réponse à la question d'authentification.

  • signerXQandAYSFFieldAnswer – une méthode alternative pour définir la réponse. Dans ce cas, la réponse provient d'un champ spécifié au sein du type choisi. Par exemple, si vous utilisez Contact comme type, vous pouvez sélectionner n'importe quel champ dans le type de contact, comme le numéro de téléphone. Le destinataire saisit alors son numéro de téléphone, qui est recoupé avec le champ numéro de téléphone dans son type de contact.
    Notez que vous ne pouvez pas utiliser ce paramètre si SignerX est de type Email externe. Notez également que vous devez fournir soit signerXQandAYSFFieldAnswer soit signerXQandAYTextAnswer, mais vous ne pouvez pas fournir les deux.

  • signerXQandAYMaskAnswer – détermine si la réponse saisie par l'utilisateur doit être masquée pendant la saisie. Les valeurs possibles sont vraies et fausses. Ce paramètre est optionnel et par défaut est faux.

  • Notez que X correspond au nombre de destinataires et Y au nombre de questions (jusqu'à 2 questions sont prises en charge).

Signer1=003g000000OLhpk&Signer1AuthMethod=sms

Signer1=003g000000OLhpk&Signer1AuthMethod=qaRecipient

1=003g000000OLhpk&Signer1AuthMethod=email

Signer1={!Contact.Id}&Signer1AuthMethod={!Contact.AuthenticationMethod__c}

AutoPrepare

Drapeau qui détermine si la fonctionnalité AutoPrepare sera activée pour une transaction si une Convention est spécifiée. Les valeurs valides sont : 1 ou 0, vrai ou faux.

AutoPrepare=true

AutoPrepare={!Account.AutoPrepareTransaction__c} Insert={!Account.InsertValueInTransaction__c}

Insertion

Drapeau qui détermine si les données de Salesforce seront automatiquement remplies dans un document OneSpan Sign lors de la préparation de la transaction du document. Les valeurs valides sont : 1 ou 0, vrai ou faux.

Insert=true

Insert={!Account.InsertValueInTransaction__c}

WriteBack

Drapeau qui détermine si un champ Salesforce sera mis à jour avec les données d'un document OneSpan Sign lorsque la transaction de ce document sera terminée. Les valeurs valides sont : 1 ou 0, vrai ou faux.

WriteBack=true

WriteBack={!Account.WriteValueInTransaction__c}

Ordrede de signature d'application

Drapeau qui détermine si la condition d' application de l'ordre de signature est vraie ou fausse.

EnforceSigningOrder=true

EnforceSigningOrder={!Account.EnforceSigningOrder__c}

ParentId

ID de l'objet parent. À stocker dans le champ de texte ParentId . Il remplit automatiquement le type parent et le champ de recherche associé si possible.

ParentId=001g000000T9wTR

ParentId={!Account.Id}

enableRappels

Drapeau (vrai / faux) qui détermine si la fonction de rappel automatique est activée pour la transaction.

enableReminders=true

enableReminders={!Account.RemindersEnabled__c}

envoyerRappelJours

Nombre de jours avant l'envoi du premier rappel.

sendReminderDays=2

sendReminderDays={!Account.SendReminderDays__c}

répéterJoursRappels

Intervalle de jours entre les rappels successifs.

repeatReminderDays=1

repeatReminderDays={!Account.RepeatReminders__c}

totalRappels

Nombre maximal de rappels à envoyer.

totalReminders=10

totalReminders={!Account.TotalReminders__c}

ChatterEnable

Un drapeau (vrai / faux) qui détermine si Chatter sera actif sur la transaction.

ChatterEnable=true

ChatterEnable={!Account. ChatterEnable __c}