DocuSign eSignature para Salesforce - Botão de depuração para SourceID

Questão

Erro de botão personalizado do DocuSign eSignature para Salesforce: "O valor de SourceID para este botão personalizado do DocuSign é inválido".

Causa

A variável SourceID é fundamental para a funcionalidade de envio e write-back do DocuSign eSignature para Salesforce. Ele armazena a identidade do Salesforce do objeto do qual o envelope está sendo enviado. Existem muitas razões para este erro ocorrer. Na maioria das vezes, esse erro ocorre devido às restrições de permissão do Salesforce impostas a um comando específico que está sendo usado e que estaria fora do escopo do Suporte ao Cliente. O objetivo deste artigo é fornecer um método eficiente de identificar quais comandos são funcionais no ambiente do Salesforce.
 
O código abaixo é uma expansão da estrutura básica de botões personalizados do JavaScript usada em nossa documentação. Inclui comentários que explicam sua finalidade e vários comandos para teste. O uso deste código fica a critério do administrador do Salesforce, entendendo sua finalidade como uma ferramenta de diagnóstico simples.
 
Nota: Os esforços de desenvolvimento e a expansão adicional do código permanecem fora do escopo do Suporte ao Cliente DocuSign.

Diagnóstico do Código do Botão Personalizado DocuSign eSignature for Salesforce

// ********* ESTE É UM TESTE DE ACESSO AO SOURCE ID NO AMBIENTE *********
// Abaixo estão quatro métodos para chamar o ID do registro do local
// de um botão personalizado. Alguns podem falhar dependendo da configuração do ambiente.
// Também tenha em mente que em alguns casos as identidades terão que ser
// modificadas com base no tipo de objeto ao qual o botão está associado.

// Exemplo: Opportunity.Id para oportunidades, Account.Id para contas,
// Case.Id para casos, etc. Você pode usar o método double forwardslash acima
// para comentar qualquer método que possa estar causando um erro uma vez
// eles foram identificados.

// Clicar no botão deve aparecer como um alerta para o início de
// cada teste, execute o comando e retorne um erro ou o valor
// esperado. Após os quatro testes estarem completos, seja qual for o conjunto de atributos
// na seção inferior será criado um rascunho de envio do Visualforce.
//*************************************************************************

var SourceID1 = '';
var SourceID2 = '';
var SourceID3 = '';
var SourceID4 = '';

alert('test one begins');
SourceID1 = window.sfdcPage.entityId;
alert('This is the value of window.sfdcPage.entityId: '+SourceID1);

alert('test two begins');
SourceID2 = window.sfdcPage.getEntityId();
alert('This is the value of window.sfdcPage.getEntityId(): '+SourceID2);

alert('test three begins');
SourceID3 = '{!Opportunity.Id}';
alert('This is the value of !Opportunity.Id: '+SourceID3);

alert('test four begins');
SourceID4 = DSGetPageIDFromHref(); 
alert('This is the value of DSGetPageIDFromHref(): '+SourceID4); 

//********* ESTE É O CÓDIGO REAL DO BOTÃO ***********************//

//********* Recomenda-se não modificar a declaração de variável *********//
{!REQUIRESCRIPT("/apex/dsfs__DocuSign_JavaScript")}
var sourceId = window.sfdcPage.getEntityId();
var RC='';var RSL='';var RSRO='';var RROS='';var CCRM='';var CCTM='';var CCNM='';var CRCL=''; var CRL='';var OCO='';var DST='';var LA='';var CEM='';var CES='';var STB='';var SSB='';var SES='';var SEM='';var SRS='';var SCS ='';var RES='';
//****************************************************************// 

// variáveis de estrutura coladas acima
// qualquer modificação escolhida postada para definir variáveis
// uma URL é construída abaixo para realmente executar o comando no Salesforce

// ********* Recomenda-se não modificar o texto explicativo da página ********* //
window.location.href = "/apex/dsfs__DocuSign_CreateEnvelope?DSEID=0&SourceID="+sourceId+"&RC="+RC+"&RSL="+RSL+"&RSRO="+RSRO+"&RROS="+RROS+"&CCRM="+CCRM+"&CCTM="+CCTM+"&CRCL="+CRCL+"&CRL="+CRL+"&OCO="+OCO+"&DST="+DST+"&CCNM="+CCNM+"&LA="+LA+"&CEM="+CEM+"&CES="+CES+"&SRS="+SRS+"&STB="+STB+"&SSB="+SSB+"&SES="+SES+"&SEM="+SEM+"&SRS="+SRS+"&SCS="+SCS+"&RES="+RES;
//********************************************************//