Integre o OneSpan Sign ao Salesforce com o APEX SDK

Michael Williams, 30 de Setembro de 2016

Todos sabemos que o Salesforce é um dos sistemas de CRM baseados em nuvem mais flexíveis e poderosos do mercado, e muitos de vocês provavelmente sabem que o OneSpan Sign tem um aplicativo de classe mundial disponível no mercado. AppExchange para assinar documentos de todos os tipos. Mas você sabia que o OneSpan Sign também oferece um APEX SDK? Lançado no início deste ano, e um produto que estaremos apresentando no Dreamforce na próxima semana é o APEX SDK da OneSpan Sign - um kit de ferramentas completo que permite que os desenvolvedores do Salesforce introduzam rápida e facilmente recursos de assinatura eletrônica nos aplicativos Salesforce e Force.com. Portanto, se suas necessidades ultrapassarem o simples fato de poder enviar documentos para assinatura do Salesforce para integrar aplicativos e fluxos de trabalho personalizados, ainda temos a solução. Faça o download do SDK do APEX [ID da promoção = "17409"]

Exemplo simples do SDK do APEX

Como todos os SDKs do OneSpan Sign, o APEX SDK é direto e fácil de começar. Eu pensei em seguir um exemplo simples de criação de uma transação do OneSpan Sign com documentos para mostrar o quão fácil é realmente. Neste exemplo, mostrarei a criação de um pacote com várias configurações diferentes, como uma mensagem de email, data de validade e a configuração da propriedade de conclusão automática de um pacote. Então, primeiro, declararemos nossa função:

public static void createPackageWithDocumentsExample (String packageName, preenchimento automático booleano, String packageDescription, DateTime packageDue, String emailMessage)
{

Em seguida, precisamos criar nosso objeto OneSpan Sign SDK.

ESignLiveSDK sdk = novo ESignLiveSDK ();

Em seguida, você configura o pacote de exemplo e os dados do documento

ESignLiveAPIObjects.Package_x pkg = new ESignLiveAPIObjects.Package_x ();
Map  blobMap = new Map  ();

Blob b1 = Arquivo1_Blob_Contents;
Blob b2 = Arquivo2_Blob_Contents;

blobMap.put ('testDocumentOne', b1);
blobMap.put ('testDocumentTwo', b2);

Aqui, estou definindo as propriedades do pacote com base nos valores passados para a função.

pkg.name = packageName;
pkg.autocomplete = preenchimento automático;
pkg.description = packageDescription;

Esta seção do código cria uma nova âncora de texto para definir para onde irá um bloco de assinatura, em relação ao texto "testDocumentOne" no documento.

ESignLiveAPIObjects.ExtractAnchor e a = new ESignLiveAPIObjects.ExtractAnchor ();
ea.text = 'testDocumentOne';
ea.index = 0;
ea.width = 150;
ea.height = 40;
ea.anchorPoint = ESignLiveAPIObjects.AnchorPoint.TOPRIGHT;
ea.characterIndex = 12;
ea.leftOffset = -20;
ea.topOffset = -60;

Aqui, o campo do bloco de assinatura é realmente criado e a âncora de extração que criamos acima é usada para colocar o bloco de assinatura.

ESignLiveAPIObjects.Field f1 = new ESignLiveAPIObjects.Field ();
f1.type = 'ASSINATURA';
f1.page = 0;
f1.extract = false; 
f1.left = 0;
f1.subtype = 'NOME COMPLETO';
f1.top = 0;
f1.extractAnchor = ea;

Este próximo bloco mostra a criação de outra âncora criada para a colocação de um campo de data - observe a ligação de aprovação.signada no campo.

ESignLiveAPIObjects.ExtractAnchor ea1 = new ESignLiveAPIObjects.ExtractAnchor ();
ea1.text = 'testDocumentOne';
ea1.index = 0;
ea1.width = 150;
ea1.height = 40;
ea1.anchorPoint = ESignLiveAPIObjects.AnchorPoint.BOTTOMRIGHT;
ea1.characterIndex = 12;
ea1.leftOffset = -40;
ea1.topOffset = 0;

ESignLiveAPIObjects.Field f2 = new ESignLiveAPIObjects.Field ();
f2.type = 'ENTRADA';
f2.page = 0;
f2.extract = false; 
f2.left = 0;
f2.subtype = 'LABEL';
	f2.binding = '{aprovação.sign}';
f2.top = 0;
f2.extractAnchor = ea1;

Em seguida, no exemplo, a autorização é configurada. É aqui que você adiciona a autenticação de pinos do SMS ou as perguntas e respostas, se precisar de uma transação mais segura.

List  desafios = new List  ();
        
ESignLiveAPIObjects.Delivery delivery = new ESignLiveAPIObjects.Delivery ();
delivery.email = true;
delivery.provider = true;

ESignLiveAPIObjects.Auth auth = new ESignLiveAPIObjects.Auth ();
auth.challenges = desafios;
auth.scheme = ESignLiveAPIObjects.AuthScheme.NONE;

O código abaixo cria um assinante e usa os objetos de autorização e entrega criados acima, depois adiciona o assinante a uma lista a ser usada abaixo na criação da função do pacote.

ESignLiveAPIObjects.Signer signer = new ESignLiveAPIObjects.Signer ();
signer.auth = auth;
signer.delivery = entrega;
signer.firstName = 'firstName';
signer.lastName = 'lastName';
signer.email = 'fnln @test .com ';
signer.name = 'firstNamelastName';

Listadores de List  = new List  ();
signers.add (signatário);

Como mencionado acima, o objeto de função agora é criado e a lista de assinantes criada acima é usada para definir os assinantes dentro da função. Você também pode definir itens como nome e ID da função.

ESignLiveAPIObjects.Role role = new ESignLiveAPIObjects.Role ();
role.signers = assinantes;
role.reassign = true;
role.name = 'firstNamelastName';
role.id = 'firstNamelastName';
role.type = 'SIGNER';

Aqui, o objeto de aprovação é criado, usando a função que acabamos de criar e os campos criados acima (assinatura e data).

ESignLiveAPIObjects.Approval aprovação1 = new ESignLiveAPIObjects.Approval ();
aprovaçã01.role = 'firstNamelastName';
aprovação1.fields = nova Lista  {f1, f2};

O que seria um pacote de documentos sem documentos, certo? Portanto, a próxima coisa a fazer é criar um objeto de documento para cada um dos blobs que planejamos carregar no pacote. Você verá que o objeto de aprovação criado no último pedaço é usado aqui para definir as aprovações e os campos do documento.

ESignLiveAPIObjects.Document doc1 = new ESignLiveAPIObjects.Document ();
doc1.name = 'testDocumentOne';
doc1.approvals = new List  {aprovação1};

ESignLiveAPIObjects.Document doc2 = new ESignLiveAPIObjects.Document ();
doc2.name = 'testDocumentTwo';

Se você já usou o eSignLive antes, sabe que a criação de um pacote se resume a dois itens, no final: os documentos e as funções / assinantes. Este próximo pedaço de código mostra como adicioná-los ao objeto de pacote antes de criar o pacote.

pkg.documents = new List  {doc1, doc2};
pkg.roles = new List  {role};

Agora que o seu pacote está configurado, você só precisa chamar a função createPackage e passar o objeto do pacote e o blobMap que foram criados acima.

Resposta da sequência = sdk.createPackage (pkg, blobMap);

Por fim, imprima a confirmação de que o pacote foi criado no console e feche a função.

System.debug ('=> PackageId:' + resposta);
}

É isso. Se você seguiu até esse ponto, deveria ter criado com êxito um pacote de documentos com binários de documentos, usando o APEX SDK. Se você tiver alguma dúvida sobre o APEX SDK, consulte o documentação ou faça uma pergunta no comunidade de desenvolvedores .

Dirigido a Dreamforce?

Assegure-se de que você solte pelo estande 401 ou 2112 para conversar com Doug Exner, um de nossos engenheiros de aplicativos que demonstrará nossa poderosa integração de assinatura eletrônica com o Salesforce. Não perca nossa sessão " Defendendo assinaturas eletrônicas no Salesforce e Force.com "Quinta-feira, 6 de outubro, das 11h às 11h20 no Partner Theatre 1 em Moscone South Obrigado pela leitura! Se você tiver alguma dúvida, sinta-se à vontade para postar na seção de comentários.

  Participe da comunidade de desenvolvedores do OneSpan Sign - Michael Williams Twitter | Facebook | LinkedIn