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
- Crear una transacción a partir de un ID de Salesforce o una dirección de correo electrónico
- Crear una transacción a partir de una convención
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). SiSignerN
es una dirección de correo electrónico, se requieren también los siguientes parámetros:SignerNFirstName
SignerNLastName
Documents
- Formato de documento portátil de Adobe (*.pdf): los PDF sobre los que puede actuar OneSpan Sign suelen tener activados al menos estos permisos: (1) Cambiar el documento; (2) Firmar; (3) Rellenar los campos del formulario.
- Microsoft Word (*.doc o *.docx)
- Open Office (*.odt)
- Texto (*.txt)
- Formato de texto enriquecido (*.rtf)
- 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.
- 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.
- Le recomendamos que no utilice documentos PDF que utilicen la arquitectura de formularios XML. Para obtener más información, consulte Soporte XFA.
- 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.
OneSpan Sign soporta los siguientes tipos de documentos:
Además, el controlador de impresión de OneSpan Sign es compatible con cualquier documento que se pueda imprimir desde una aplicación basada en Windows (por ejemplo,,Microsoft Word,Microsoft Excel,Microsoft PowerPoint).
Restricciones de tamaño de archivos
Restricciones de nombres de archivos
Restricciones generales de archivos
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:
- Crear una convención adecuada. Para obtener más información, consulte Automatización mediante convenciones de OneSpan Sign.
- Cree un botón Personalizado que ejecute el código necesario al hacer clic en el botón (consulte el ejemplo siguiente).
- 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.
- Paso 2: Cree una página de Visualforce para desencadenar la automatización.
- Paso 3: Cree la acción en el componente y asocie la página de Visualforce a ella.
- Paso 4: Agregue la acción al formato de página.
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:
- Haga clic en Configuración.
- En el panel izquierdo, haga clic en Desarrollar > Páginas de Visualforce. Aparece una lista de páginas de Visualforce.
- Haga clic en Nuevo.
- Escriba una Etiqueta, un Nombre y una Descripción adecuados para la nueva página.
- Seleccione la casilla Disponible para aplicaciones móviles de Salesforce y páginas de Lightning.
- 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.
- Haga clic en Configuración.
- Si desea usar un objeto estándar, en el panel izquierdo, haga clic en Personalizar y seleccione el objeto.
- Si desea usar un objeto personalizado:
- En el panel izquierdo, haga clic en Crear > Objetos. Una nueva página muestra una lista de objetos personalizados.
- Busque el objeto personalizado correspondiente y haga clic en su nombre.
- En la sección Botones, Vínculos y Acciones, haga clic en Nueva acción. Se abre la página Nueva acción.
- En Tipo de acción, seleccione Visualforce personalizada.
- En Página de Visualforce, seleccione la página de Visualforce que creó anteriormente.
- Escriba una Etiqueta y un Nombre adecuados para la nueva acción personalizada.
- 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:
- Haga clic en Configuración.
- En el panel izquierdo, haga clic en Crear > Objetos. Una nueva página muestra una lista de objetos personalizados.
- Busque su objeto personalizado y haga clic en su nombre.
- En la sección Formatos de página, haga clic en Modificar. Aparece la página Formato de página.
- Haga clic en la opción Mobile y Lightning en el panel superior izquierdo.
- 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.
- Arrastre la nueva acción personalizada a la sección Acciones de Mobile y Lightning Experience.
- 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. |
|
|
Name |
El nombre de la transacción, con codificación URL. |
|
|
Descripción |
La descripción de la transacción, con codificación URL. |
|
|
ExpiryDate |
Fecha de vencimiento de la transacción (AAAAMMDD) |
|
|
EmailMessage |
Los valores introducidos en EmailMessage se pasarán a las plantillas predeterminadas existentes del marcador de posición «$PACKAGE_MESSAGE;», como la plantilla «email.activate» y la plantilla «email.notify». Para obtener más información, consulte OneSpan Sign Developers: Formularios de correo electrónico. |
|
|
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. |
|
|
InPersonSigning |
Marca que especifica si la firma en persona tiene el valor true o false |
|
|
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 for 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. |
|
|
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. |
|
|
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. |
|
|
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. |
|
|
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. |
|
|
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. |
|
|
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. |
|
|
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. |
|
|
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. |
|
|
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. |
|
|
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. |
|
|
SignerXFirstName |
Especifica el nombre del destinatario en el índice X. Solo está disponible para destinatarios de correo electrónico externos. |
|
|
SignerXLastName |
Especifica el apellido del destinatario en el índice X. Solo está disponible para destinatarios de correo electrónico externos. |
|
|
SignerXPhone |
Especifica el número de teléfono del destinatario en el índice X. Solo está disponible para destinatarios de correo electrónico externos. |
|
|
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). |
|
|
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:
Si se selecciona el cuestionario como método de autenticación, se deben configurar los siguientes parámetros adicionales:
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={!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. |
|
|
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. |
|
|
enableReminders |
Marca (true/false) que determina si la función de recordatorio automático está configurada para la transacción. |
|
|
sendReminderDays |
Número de días antes de que se envíe el primer recordatorio. |
|
|
repeatReminderDays |
Intervalo de días entre recordatorios consecutivos. |
|
|
totalReminders |
Número máximo de recordatorios que se enviarán. |
|
|
ChatterEnable |
Marca (true/false) que determina si Chatter estará activo en la transacción |
|
|