**Legacy** DocuSign eSignature for Salesforce - Lightning Experienceおよびモバイル用のURLボタン - セットアップと制限事項

はじめに

セキュリティ上の理由により、Salesforce Lightning ExperienceではJavaScriptを使用したボタンを作成できなくなりました。このため、DocuSignの標準的なカスタムボタンでもJavaScriptを使用できなくなっています。DocuSign for Salesforce 7.0以降には、カスタムボタンビルダーが用意されています。ただし、いくつかの制限事項があります。

セットアップ

このトピックの手順に基づいて新しいURLボタンの作成を開始できますが、レイアウトへの追加手順および以下の操作が異なります。

User-added image

*[内容のソース](Content Source)は[URL]である必要があります。[動作](Behavior)では任意のオプションを選択できますが、モバイルを使用する場合は[現在のウィンドウにサイドバーおよびヘッダーなしで表示](Display in existing window without sidebar or header)を選択します。

サンプルコード

サンプル1:
{!URLFOR('/apex/dsfs__DocuSign_CreateEnvelope', null, [
SourceID = Opportunity.Id,
CCRM = 'Decision Maker~Signer 1',
CCTM = 'Decision Maker~Signer',
DST = 'a2e2cd02-f11e-4c8c-a830-c9f2b6564a9e',
LA = '0',
LF = '0',
OCO = 'Tag'
]
)}

DocuSign for Salesforce 7.0以降では、URLFOR形式を使用する必要があります。このコードでは、すべてのパラメーターを角かっこ([ ])で囲まれた配列またはコンマ区切りのリストで指定しています。使用できるDocuSignパラメーターは、JavaScriptで使用していたものと同じです。ただし、以下の制限事項に注意してください。
  • 選択リスト項目など、特定の差し込み項目を配列で指定することはできません。この問題を避けるには、次のサンプルコードを参照してください。
  • 中かっこ({ })で囲まれたURLFOR関数内の差し込み項目はObject.Fieldで指定し、{!Object.Field}ではありません(上記サンプルの「SourceID = Opportunity.Id」など)。


サンプル2:
{!URLFOR('/apex/dsfs__DocuSign_CreateEnvelope', null, [ SourceID = Opportunity.Id ] )}
&DSEID=0&LA=0&LF=0&OCO=&CEM=Please+sign+for+{!Opportunity.Name}&DST={!Opportunity.Template_GUIDS__c}&CCRM=Decision+Maker~Signer+1

このコードでは、配列外かつURLFOR関数外(中かっこ外)でパラメーターを指定し、クエリーパラメーターとして追加しています。これらのクエリーパラメーターはURLの末尾に追加され、DFS APEXクラスで値が渡されます。
  • このサンプルコードでは、テンプレートIDの選択リストを配列外で指定しています。これを配列内で指定すると、エラー(Field Opportunity.Template_GUIDS__c is a picklist field. Picklist fields are only supported in certain functions)が発生します。
  • Salesforce項目を中かっこで囲んでいることに注意してください(「{{!Opportunity.Template_GUIDS__c}}」など)。
  • ここでは、すべてのパラメーターを「&」で区切って指定しています。URLFOR関数外では一重引用符(')を使用しません。
  • ベストプラクティスとして、URLFOR関数外では、パラメーター値にスペースの代わりにプラス記号(+)を挿入します。ただし、多くのWebブラウザーではこの置換が自動的に行われます。


サンプル3: 同席での署名をホストする – 今すぐ署名:
{!URLFOR('/apex/dsfs__DocuSign_CreateEnvelope', null, [
SourceID = Opportunity.Id,
DSEID = '0',
CRL = 'Email~' + User.Email + ';FirstName~' + User.FirstName + ';LastName~' + User.LastName + ';SignInPersonName~Signer Name;SignNow~1;RoutingOrder~1;Role~Client1,Email~' + User.Email + ';FirstName~' + User.FirstName +';LastName~' + User.LastName + ';SignInPersonName~Signer Two;SignNow~1;RoutingOrder~2;Role~Client2',
OCO = 'Send',
CCTM = 'Client1~Host in person - sign now;Client2~Host in person - sign now', 
CCRM = 'Client1~Client1;Client2~Client2',
LF = 1
]
)}

このコードを使用した場合、Webブラウザーやモバイルアプリ上でそのボタンをクリックするだけで同席署名セッションを開始できます。
  • CRLとCCTMに注意してください。ここでは、現在のSalesforceユーザーの名前およびメールアドレスを使用してすぐに同席署名セッションを開始できるように、User.Emailなどの項目を指定しています。CCTMでは、Salesforceロールを「同席での署名をホストする – 今すぐ署名」(Host in person - sign now)に正確にマッピングする必要があります。
  • このボタンは、バージョン7.0以降を使用する場合のSalesforceモバイルアプリで動作します。ただし、Salesforceモバイルアプリでの制限により、Visualforceページとフィールドの追加画面をバイパスする必要があります。このため、「OCO = 'Send'」が指定されています。モバイルでのVisualforceページは機能が限定され、カスタムの設定やパラメーターが無視されます。また、フィールドの追加画面もモバイルに最適化されていないため、ワンクリックでの送信が推奨されます。このため、受信者を自動的に追加したりフィールドの自動配置機能を使用したりするか、テンプレートに設定しておく必要があります。ほかの設定は、ボタンのコード内で定義します。
  • 同席署名ホストのメールアドレスは、SalesforceアカウントとDocuSignアカウントで同じである必要があります。メールアドレスが異なると「sign now」が機能せず、メールのリンクをクリックして署名セッションを開始しなければならなくなります。
  • バージョン7.0.1以降では、同席署名の連続セッションを許可するオプションを設定できます([DocuSign管理]>[設定]>[今すぐ署名の連続セッションを許可する])。これを許可すると、SalesforceモバイルアプリまたはWebブラウザーで複数の同席署名者がSalesforce内で署名できるようになります。

Lightning Experienceおよびモバイル用にボタンをレイアウトに追加する

Lightning Experienceでは、Salesforce Classicとは異なるレイアウトセクションにボタンが追加されます。下図では、Salesforce ClassicとLightning Experienceでのレイアウトの編集手順とボタンの追加手順を示しています。

Salesforce Classic:
ボタンの追加先のオブジェクトで任意のレコードを開き、[レイアウトを編集する]をクリックします。
User-added image

Salesforce Lightning:
User-added image

 


Salesforce ClassicおよびLightning Experienceレイアウトにボタンを追加する

任意のレコードを開き、ページ右上の歯車アイコンをクリックし、[オブジェクトを編集]>[ページレイアウト]>[<追加先のレイアウト名>]の順に選択します。これにより、上図のSalesforce Classicと同じページが開きます。


User-added image
  1. [モバイルおよびLightningのアクション]をクリックします。
  2. 新しいURLボタンを見つけます。
  3. ページをスクロールして[SalesforceモバイルおよびLightning Experienceのアクション]セクションを表示します。
  4. ページ上部の一覧から[SalesforceモバイルおよびLightning Experienceのアクション]セクションにボタンをドラッグ&ドロップします。
  5. [保存]をクリックしてSalesforceレコードに戻ります。

既知の制限事項

  • if-else文やforループなどのJavaScriptロジックを使用したり変数を宣言したりすることはできません。これらは、レコードの数式項目、またはカスタムコンポーネントやトリガーを使用してボタンコード以外で実装する必要があります。

詳細情報