Last modified: 2022-10-28

Crear transacciones de OneSpan Sign mediante programación

OneSpan Sign para Salesforce le permite crear transacciones de OneSpan Sign mediante programación. Existen dos formas principales de hacerlo:

La siguiente sección proporciona información relevante para los dos procedimientos anteriores:

La URL que aparece en los códigos de ejemplo siguientes debe comenzar con la cadena de caracteres /apex/esl__package?. Esta es la URL requerida para acceder a la página de Visualforce de una transacción de OneSpan Sign.

Crear una transacción con un botón personalizado

Si crea un botón personalizado y lo agrega a un objeto de Salesforce, el botón agregado permite a los usuarios de Salesforce enviar documentos para firmar desde los registros de ese objeto.

Puede crear una transacción desde un botón personalizado de las siguientes maneras:

Crear una transacción a partir de un formulario

Para crear un paquete mediante programación a partir de un formulario:

  • Escriba y ejecute un código que cree un paquete a partir de un formulario.

Debe especificar los siguientes parámetros del formulario:

  • ParentId
  • Name
  • TemplateId

Al final de este procedimiento, debería ver toda la información del formulario reflejada en el paquete creado.

Ejemplo

Al ejecutar el siguiente fragmento de código, se crea un paquete de OneSpan Sign a partir de un formulario para una cuenta concreta:

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

Crear una transacción a partir de un ID de Salesforce o una dirección de correo electrónico

Al crear una transacción a partir de un ID Salesforce, debe especificar los siguientes parámetros:

  • Name
  • SignerN: puede ser un ID de Salesforce (consulte el Ejemplo 1 o una dirección de correo electrónico de un destinatario (consulte el Ejemplo 2). Si SignerN es una dirección de correo electrónico, se requieren también los siguientes parámetros:
    • SignerNFirstName
    • SignerNLastName
  • Documents
  • OneSpan Sign admite los siguientes tipos de documentos:

    • Formato de documento portátil de Adobe (*.pdf)
    • Microsoft Word (*.doc o *.docx)
    • Open Office (*.odt)
    • Texto (.txt)
    • Formato de texto enriquecido (.rtf)

    Además, el controlador de impresión OneSpan Sign admite cualquier documento que pueda imprimirse desde una aplicación basada en Windows. Por ejemplo: Microsoft Word, Microsoft Excel o Microsoft PowerPoint.

    Restricciones de tamaño de archivos

    • El tamaño máximo de un solo documento son 16 MB. Los documentos más pequeños ofrecen un mejor rendimiento: recomendamos menos de 5 MB por documento.
    • Si su organización utiliza los conectores Salesforce o Microsoft SharePoint, el tamaño máximo de los archivos es de 5 MB por documento.
    • Si su organización utiliza los conectores Salesforce, el número máximo de documentos que se pueden añadir a una transacción es de diez (10).
    • Si habilita la entrega de correo electrónico mientras configura un destinatario, no se admiten archivos adjuntos de más de 5 MB.

    Restricciones de nombres de archivos

    • Los nombres de los archivos de documento no deben contener ninguno de los siguientes caracteres separados por comas: *, /, \, :, <, >, |, ?, ".
    • El nombre de un documento no puede contener la cadena esigned.

    Restricciones generales de archivos

    • No cargue documentos protegidos con contraseña ni dañados. Se generará un error.
    • OneSpan le recomienda encarecidamente que analice un PDF en busca de errores de sintaxis (por ejemplo, con la herramienta de Adobe Prelight) y resuelva cualquier error antes de añadir el documento a la transacción.
    • Actualmente no se admiten archivos PDF con la marca NeedAppearances definida como true.

Al final de este procedimiento, debería ver la información proporcionada reflejada en el paquete creado.

Ejemplo 1

Al ejecutar el siguiente fragmento de código, se crea un paquete de OneSpan Sign a partir del ID de un contacto:

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

Ejemplo 2

Al ejecutar el siguiente fragmento de código, se crea un paquete de OneSpan Sign a partir de una dirección de correo electrónico. Concretamente, este fragmento crea un destinatario de tipo External Email con la dirección de correo electrónico [email protected].

/apex/esl__package?ParentId={!Account.Id}&Name={!Account.Name}%20Agreement&[email protected]&Signer1FirstName=john&Signer1LastName=doe&Documents=00P36000000wwrd

Crear una transacción a partir de una convención

Para crear una transacción a partir de una convención con la ayuda de un código personalizado:

  1. Crear una convención adecuada. Para obtener más información, consulte Automatización mediante convenciones de OneSpan Sign.
  2. Cree un botón Personalizado que ejecute el código necesario al hacer clic en el botón (consulte el ejemplo siguiente).
  3. Haga clic en el botón Personalizado. Al hacerlo, se creará una transacción con la información especificada en la convención.

Al ejecutar el siguiente fragmento de código, se crea una transacción de OneSpan Sign a partir de una convención, donde:

  • ConventionId es el ID de la convención que se utilizará.
  • Signer1Label es el ID de la etiqueta de destinatario que se aplicará al Firmante1.

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

Crear una transacción con una acción personalizada

Si crea una acción personalizada y la agrega a un objeto de Salesforce, la acción agregada permite a los usuarios de Lightning Experience enviar documentos para su firma fácilmente a través de OneSpan Sign.

La URL utilizada en el procedimiento de una acción personalizada es la misma que la de un botón personalizado, salvo que la URL de una acción personalizada debe estar almacenada en un campo personalizado creado en el objeto.

Para crear una transacción a través de una acción personalizada, siga los pasos que se indican a continuación:

Paso 1: Cree un campo que almacene la URL de la automatización.

En este paso, debe crear un campo en el objeto (Cuenta, Contacto, Oportunidad, etc) que almacene la URL de la automatización. La URL sigue las mismas reglas que para el botón personalizado y recibe los mismos parámetros.

Recomendamos usar campos de fórmula, para que pueda usar «campos de fusión».

<apex:page standardController="Account">

<ESL:PackageAutomation fieldName="Account_Automation_URL__c" />

</apex:page>

Paso 2: Cree una página de Visualforce para desencadenar la automatización.

En la página de Visualforce, el usuario administrador debe utilizar un componente suministrado por el conector para: (1) leer la URL de automatización almacenada en el campo creado anteriormente; (2) desencadenar la automatización.

Para crear la página de Visualforce:

  1. Haga clic en Configuración.
  2. En el panel izquierdo, haga clic en Desarrollar > Páginas de Visualforce. Aparece una lista de páginas de Visualforce.
  3. Haga clic en Nuevo.
  4. Escriba una Etiqueta, un Nombre y una Descripción adecuados para la nueva página.
  5. Seleccione la casilla Disponible para aplicaciones móviles de Salesforce y páginas de Lightning.
  6. En la pestaña Marcado de Visualforce, escriba el siguiente código:

Después de que el usuario administrador haya creado la página de Visualforce, debe especificar: (1) el nombre del objeto que utilizará esa página (por ejemplo, Cuenta, Contacto, Oportunidad, un objeto personalizado, etc.); (2) el nombre del campo donde está almacenada la URL.

Paso 3: Cree la acción en el componente y asocie la página de Visualforce a ella.

  1. Haga clic en Configuración.
  2. Si desea usar un objeto estándar, en el panel izquierdo, haga clic en Personalizar y seleccione el objeto.
  3. Si desea usar un objeto personalizado:
    1. En el panel izquierdo, haga clic en Crear > Objetos. Una nueva página muestra una lista de objetos personalizados.
    2. Busque el objeto personalizado correspondiente y haga clic en su nombre.
  4. En la sección Botones, Vínculos y Acciones, haga clic en Nueva acción. Se abre la página Nueva acción.
  5. En Tipo de acción, seleccione Visualforce personalizada.
  6. En Página de Visualforce, seleccione la página de Visualforce que creó anteriormente.
  7. Escriba una Etiqueta y un Nombre adecuados para la nueva acción personalizada.
  8. Haga clic en Guardar.

Paso 4: Agregue la acción al formato de página.

Una vez creada la acción, el usuario administrador debe agregarla al Formato de página para que sea accesible para otros usuarios. También se debe agregar a las acciones de Salesforce1 para que esté disponible en dispositivos móviles.

Para agregar la nueva acción personalizada al Formato de página de su objeto personalizado:

  1. Haga clic en Configuración.
  2. En el panel izquierdo, haga clic en Crear > Objetos. Una nueva página muestra una lista de objetos personalizados.
  3. Busque su objeto personalizado y haga clic en su nombre.
  4. En la sección Formatos de página, haga clic en Modificar. Aparece la página Formato de página.
  5. Haga clic en la opción Mobile y Lightning en el panel superior izquierdo.
  6. Si no ve ninguna acción en la sección Acciones de Mobile y Lightning Experience, haga clic en el ícono de llave inglesa que aparece al pasar el mouse por esa sección.
  7. Arrastre la nueva acción personalizada a la sección Acciones de Mobile y Lightning Experience.
  8. Haga clic en Guardar.

Al final de este procedimiento, debería ver toda la información de entrada reflejada en la transacción creada.

Parámetros para fragmentos de código URL

En la siguiente tabla se describen los parámetros que se pueden utilizar en los fragmentos de código URL para todos los procedimientos anteriores.

Una muestra estática tiene un valor fijo. El valor de una muestra dinámica se especifica mediante un campo fusionado.

Nombre del parámetro

Descripción

Muestra estática

Muestra dinámica

TemplateId

La ID del formulario de la transacción. Si no se proporciona, créelo ad hoc. Cualquier campo especificado en la URL anulará el valor del formulario. El formulario debe estar activo.

TemplateId=a0Ag0000007r4nS

TemplateId={!Account.Transaction_Template__c}

Name

El nombre de la transacción, con codificación URL.

Name=My %20Transaction

Name={!Contact.Name} %20Transaction

Descripción

La descripción de la transacción, con codificación URL.

Description=The %20Transaction %20Description

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

ExpiryDate

Fecha de vencimiento de la transacción (AAAAMMDD)

ExpiryDate=20151230

ExpiryDate={!Contact.ExpiryDate__c}

EmailMessage

Contenido del mensaje de correo electrónico

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

EmailMessage={!Account.CustomEmail__c}

Idioma

El idioma del paquete de transacciones. Las opciones disponibles se basan en las selecciones de idioma realizadas en la página de Personalización.

Language=en

Language={!Contant.CommunicationLanguage__c}

InPersonSigning

Marca que especifica si la firma en persona tiene el valor true o false

InPersonSigning=true

InPersonSigning={!Contact.InPersonSigning__c}

Documents

Lista de ID separados por comas. Esos ID pueden ser para archivos adjuntos de Salesforce, documentos de Salesforce o archivos de Salesforce. Crea un archivo adjunto, un documento o un archivo de transacción con su binario y con un nombre relacionado que corresponda al orden del elemento en la lista. Nota: Los archivos de Salesforce solo se admiten a partir de OneSpan Sign para Salesforce 4.10.

El sistema admite un máximo de 5 MB por documento (los documentos más pequeños ofrecen un mejor rendimiento; recomendamos menos de 5 MB por documento). El sistema admite un máximo de 10 documentos por transacción o formulario de transacción. Sin embargo, no hay límite para el tamaño total conjunto de los documentos de una transacción.

Documents=015g0000000Cm1f, 00Pg0000001eg9H

Documents={!Account.DocumentId__c}

Send

Marca que indica si la transacción se debe enviar una vez creado. Requiere una convención predeterminada o el parámetro conventionID, y una etiqueta de destinatario para al menos uno de los destinatarios.

Send=1 o Send=true

Send={!Account.AutomaticallySend__c}

ConventionId

El ID de convención que se utilizará para preparar y enviar la transacción. ConventionId es obligatorio si no se estableció ninguna convención predeterminada en la Configuración personalizada.

ConventionId=a0Rg00000033spu

ConventionId={!Account.Convention__c}

retUrl

La URL a la que se dirigirá a los usuarios una vez enviado la transacción. Debe tener Send=1 o Send=true y condificación URL.

retUrl= %2Fhome %2Fhome.jsp

retUrl= %2F{!Account.Id}

DescriptionObjectName

Especifica la descripción de una transacción, utilizando el nombre de un objeto personalizado. Debe ser un nombre de objeto como Cuenta o Transacción__c. Este parámetro requiere DescriptionObjectField y DescriptionObjectId.

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

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

DescriptionObjectField

Especifica la descripción de una transacción, utilizando un campo de un objeto personalizado. Debe ser un campo del objeto definido en DescriptionObjectName, como Name o Description__c. Este parámetro requiere DescriptionObjectName y DescriptionObjectId.

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

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

DescriptionObjectId

Especifica la descripción de una transacción, utilizando el ID de un objeto personalizado. Debe ser el ID de un objeto del tipo definido en DescriptionObjectName. Este parámetro requiere DescriptionObjectName y DescriptionObjectField.

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

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

EmailMessageObjectName

Especifica el mensaje de correo electrónico de una transacción, utilizando el nombre de un objeto personalizado. Debe ser un nombre de objeto como Cuenta o Transacción__c. Este parámetro requiere EmailMessageObjectField y EmailMessageObjectId.

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

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

EmailMessageObjectField

Especifica el mensaje de correo electrónico de una transacción, utilizando un campo de un objeto personalizado. Debe ser un campo del objeto definido en EmailMessageObjectName, como Name o Description__c. Este parámetro requiere EmailMessageObjectName y EmailMessageObjectId.

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

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

EmailMessageObjectId

Especifica el mensaje de correo electrónico de una transacción, utilizando el ID de un objeto personalizado. Debe ser el ID de un objeto del tipo definido en EmailMessageObjectName. Este parámetro requiere EmailMessageObjectName e EmailMessageObjectField.

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

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

SignerX

X es un número del 1 al infinito. El valor puede ser un ID de cliente potencial, un ID de contacto, un ID de usuario o una dirección de correo electrónico. Si se proporciona una dirección de correo electrónico, se requieren los parámetros SignerXFirstName y SignerXLastName.

Signer1=003g000000OLhpk or [email protected]& Signer1FirstName=John& Signer1LastName=Doe

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

SignerXFirstName

Especifica el nombre del destinatario en el índice X. Solo está disponible para destinatarios de correo electrónico externos.

[email protected]& Signer1FirstName=John& Signer1LastName=Doe

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

SignerXLastName

Especifica el apellido del destinatario en el índice X. Solo está disponible para destinatarios de correo electrónico externos.

[email protected]& Signer1FirstName=John& Signer1LastName=Doe

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

SignerXPhone

Especifica el número de teléfono del destinatario en el índice X. Solo está disponible para destinatarios de correo electrónico externos.

[email protected]& Signer1FirstName=John& Signer1LastName=Doe& Signer1Phone=8675309

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

SignerXLabel

Especifica la etiqueta del destinatario asociada al destinatario en el índice X. Debe ser el ID del objeto de etiqueta de destinatario de la convención relacionada (la convención predeterminada o la especificada en ConventionId).

Signer1=003g000000OLhpk& Signer1Label=a0Tg0000001uMIf

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

SignerXAllowDelegation

Marca que determina si permitirá que el destinatario original que identificó delegue en otra persona para que firme la transacción en su nombre. Los valores válidos son: 1 o 0, true o false.

Si el valor es 1 o true, se pedirá al destinatario que ingrese la dirección de correo electrónico y el nombre completo de la persona delegada, así como un mensaje opcional de correo electrónico que se enviará a dicha persona. Usted recibirá una notificación de este cambio de destinatario y una copia del mensaje de correo electrónico (si se envía).

Signer1=003g000000OLhpk&Signer1AllowDelegation=true Signer1={!Contact.Id}&Signer1AllowDelegation=1
SignerXAuthMethod

Marca que le permite crear una transacción automáticamente, utilizando uno de los siguientes métodos de autenticación:

  • Cuestionario
  • SMS
  • Correo electrónico

Si se selecciona el cuestionario como método de autenticación, se deben configurar los siguientes parámetros adicionales:

  • signerXQandAYQuestion: la pregunta de autenticación.

  • signerXQandAYTextAnswer: la respuesta correcta a la pregunta de autenticación.

  • signerXQandAYSFFieldAnswer: un método alternativo para definir la respuesta. En este caso, la respuesta proviene de un campo especificado dentro del tipo elegido. Por ejemplo, si usa Contacto como Tipo, puede seleccionar cualquier campo dentro del tipo Contacto, como el número de teléfono. El destinatario ingresa entonces su número de teléfono, el cual se contrasta mediante referencia cruzada con el campo de número de teléfono de su tipo Contacto.
    Tenga en cuenta que no puede utilizar este parámetro si el FirmanteX es del tipo Correo electrónico externo. Tenga en cuenta también que debe proporcionar o signerXQandAYSFFieldAnswer o signerXQandAYTextAnswer, pero no puede proporcionar ambos.

  • signerXQandAYMaskAnswer: determina si la respuesta escrita por el usuario se debe ocultar o no mientras se escribe. Los valores posibles son true y false. Este parámetro es opcional y presenta el valor false de forma predeterminada.

  • Tenga en cuenta que X es el número de destinatarios e Y es el número de preguntas (se admiten hasta 2 preguntas).

Signer1=003g000000OLhpk&Signer1AuthMethod=sms

Signer1=003g000000OLhpk&Signer1AuthMethod=qaRecipient

1=003g000000OLhpk&Signer1AuthMethod=email

Signer1={!Contact.Id}&Signer1AuthMethod={!Contact.AuthenticationMethod__c}
AutoPrepare Marca que determina si la función AutoPrepare se activará para una transacción si se especifica una convención. Los valores válidos son: 1 o 0, true o false. AutoPrepare=true AutoPrepare={!Account.AutoPrepareTransaction__c} Insert={!Account.InsertValueInTransaction__c}
Insert

Marca que determina si los datos de Salesforce se rellenarán automáticamente en un documento de OneSpan Sign cuando se esté preparando la transacción del documento. Los valores válidos son: 1 o 0, true o false.

Insert=true Insert={!Account.InsertValueInTransaction__c}
WriteBack Marca que determina si un campo de Salesforce se actualizará con los datos de un documento de OneSpan Sign cuando se complete la transacción de ese documento. Los valores válidos son: 1 o 0, true o false. WriteBack=true WriteBack={!Account.WriteValueInTransaction__c}
EnforceSigningOrder

Marca que determina si la condición para forzar el orden de firma tiene el valor true o false.

EnforceSigningOrder=true

EnforceSigningOrder={!Account.EnforceSigningOrder__c}

ParentId

ID del objeto principal. Se almacena en el campo de texto ParentId. Rellena automáticamente el tipo principal y el campo de búsqueda relacionado, si es posible.

ParentId=001g000000T9wTR

ParentId={!Account.Id}

enableReminders

Marca (true/false) que determina si la función de recordatorio automático está configurada para la transacción.

enableReminders=true

enableReminders={!Account.RemindersEnabled__c}

sendReminderDays

Número de días antes de que se envíe el primer recordatorio.

sendReminderDays=2

sendReminderDays={!Account.SendReminderDays__c}

repeatReminderDays

Intervalo de días entre recordatorios consecutivos.

repeatReminderDays=1

repeatReminderDays={!Account.RepeatReminders__c}

totalReminders

Número máximo de recordatorios que se enviarán.

totalReminders=10

totalReminders={!Account.TotalReminders__c}

ChatterEnable

Marca (true/false) que determina si Chatter estará activo en la transacción

ChatterEnable=true

ChatterEnable={!Account. ChatterEnable __c}

Was this information helpful?
X