DocuSign eSignature for Salesforce - SourceIDのデバッグボタン

この問題は、DocuSign eSignature for Salesforceのバージョン6.9.4またはそれ以前のバージョンに適用されます。バージョン7.0以降ではJavaScriptを使用できません。

問題

DocuSign eSignature for Salesforceのカスタムボタンでエラー「このDocuSignカスタムボタンのSourceID値が無効です」が発生する。

原因

DocuSign eSignature for Salesforceでデータの書き戻し機能を使用するには、SourceID変数が重要になります。この変数には、エンベロープの送信元オブジェクトのSalesforce識別子が格納されます。この問題では、いつくかの原因が考えられます。多くの場合、特定コマンドの実行に適用されるSalesforce権限の制限によるもので、これはカスタマーサポートでは対応できません。ここでは、Salesforce環境で実行可能なコマンドを識別する方法について説明します。

下のコードは、DocuSignの製品ガイドで提供している基本的なJavaScriptカスタムボタンフレームワークを拡張したものです。説明およびテスト用のコマンドについては、コメントを参照してください。このコードは、実行内容を理解しているSalesforce管理者がシンプルな診断ツールとして自己責任において使用することを目的としています。

注: このコードの開発および拡張は、DocuSignカスタマーサポートの対応範囲外になります。

DocuSign eSignature for Salesforceカスタムボタンの診断コード

//********* THIS IS A TEST OF SOURCE ID ACCESS IN THE ENVIRONMENT *********
// Below are four methods for calling the record ID of the location
// of a custom button. Some may fail depending on the environment configuration.
// Also keep in mind that in some cases identities will have to be
// modified based on the type of Object the button is associated with.

// Example: Opportunity.Id for Opportunities, Account.Id for Accounts,
// Case.Id for Cases, etc. You can use the double forwardslash method above
// to comment out any method that may be causing you an error once
// they have been identified.

// Clicking the button should pop up with an alert for the start of
// each test, run the command, and return either an error or the resulting
// value. After the four tests are complete, whatever attributes set
// in the bottom section will create a Visualforce sending draft.
//*************************************************************************

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); 

//********* THIS IS THE ACTUAL BUTTON CODE ***********************//

//********* Recommend Not Modifying Variable Declaration *********//
{!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='';
//****************************************************************// 

// framework variables pasted above
// any modification chosen posted between to define variables
// a URL is built below to actually execute the command in Salesforce 

//********* Recommend Not Modifying Page Callout *********//
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;
//********************************************************//