このドキュメントは Salesforce 開発者を対象としており、Salesforce パッケージを Adobe Sign と統合するために必要なオブジェクトおよびパラメーターについて説明します。

Apex サービス

契約テンプレートサービス

契約テンプレートサービスは、マネージドパッケージによってグローバル Apex サービスとして公開されます。そのため、マネージドパッケージ以外の Apex コードでも、既存の契約テンプレートに基づいて契約を読み込むことができます。クラスおよび公開されているすべてのメソッドは、このようなアクセスを可能にするためにグローバルとしてマークされています。

Apex サービスは、次の呼び出しクラスを通じて公開されます。echosign_dev1.AgreementTemplateService

注意:

 電子サインライブラリテンプレートを使用した契約テンプレートの読み込みは、現在はサポートされていません。文書テンプレートを Salesforce 文書ライブラリに移動してください。

 

メソッド

グローバル

static Id load()

デフォルトとマークされていない契約テンプレートを使用して、マスターオブジェクトタイプのない契約を読み込みます。

グローバル

static Id load(String templateId)

指定された契約テンプレート ID を使用して、マスターオブジェクトタイプのない契約を読み込みます。

 

グローバル

static Id load(String templateId, String masterId)

指定された契約テンプレート ID と指定されたマスターレコード ID を使用して、指定された契約テンプレートに設定されているマスターオブジェクトタイプとタイプが一致する契約を読み込みます。

グローバル

static Id load(String templateId, String masterId, Map<String,AgreementTemplateVariable> agreementTemplateVariables)

指定された契約テンプレート ID と指定されたマスターレコード ID を使用して、指定された契約テンプレートに設定されているマスターオブジェクトタイプとタイプが一致する契約を読み込みます。また、指定された実行時変数を名前と値のペアとして渡します。

 

 

実行時変数

echosign_dev1.AgreementTemplateVariable グローバルクラスには、次の 2 つのグローバルフィールドがあります。

  • name:変数名。契約テンプレート内で設定されている実行時変数の名前と一致する必要があります。
  • value:テンプレートの読み込み時に使用されるこの変数の値。値は、変数が使用される場所によって異なります。例えば、受信者の場合は、取引先責任者、リード、ユーザーのレコード ID または電子メールである必要があります。文書変数の場合は、添付ファイルのレコード ID である必要があります。

結果

すべてのメソッドは、新たに作成された契約レコードの ID を返すか、読み込み操作中に問題が発生した場合は詳細なエラーメッセージと共に例外をスローします。

API サービス

Adobe eSign API テンプレートサービスは、マネージドパッケージによってグローバル Apex サービスとして公開されます。そのため、マネージドパッケージ以外の Apex コードでも、ラッパーを通じて一連の Adobe eSign API を呼び出すことができます。ラッパーを使用すると、リクエストとレスポンスによるデータモデルをコンシューマーが作成する必要がないため、API 呼び出しが大幅に簡素化されます。また、Salesforce データから eSign データモデルへの変換をコンシューマーが処理する必要もありません。複雑な処理のほとんどは、コンシューマーにとっては抽象化されます。例えば、契約をコンシューマーに送信するには、契約レコード ID を渡すだけで済みます。ID のクエリ、すべての関連データの抽出、API への引き渡し、結果の解析は、サービスによって処理されます。

クラスおよび公開されているすべてのメソッドは、このようなアクセスを可能にするためにグローバルとしてマークされています。

  • v17 以前では、SOAP API が呼び出されます。
  • v18 以降では、REST API が呼び出されます。

Apex サービスは、次の呼び出しクラスを通じて公開されます。echosign_dev1.EchoSignApiService

メソッド

グローバル

static void cancelDocument(Id agreementId)

指定された契約 ID の契約をキャンセルします。

グローバル

static void delegateSigner(Id agreementId, String delegatedEmail)

指定された電子メールに署名を委任します。

グローバル

static void delegateSigner(Id agreementId, String delegatedEmail, String message)

指定された電子メールに、指定されたメッセージを使って署名を委任します。

グローバル

static echsign_dev1.EchoSignApiService.DocumentInfo getDocumentInfo(Id agreementId)

指定された契約 ID の詳細情報を取得します。

グローバル

static List getSigningUrls(Id agreementId)

指定された契約 ID のすべての署名 URL を取得します。

グローバル

static void removeDocument(Id agreementId)

指定された契約 ID の契約をキャンセルし、Salesforce の契約レコードを削除します(契約は、Adobe eSign アカウントからは削除されません)。

グローバル

static void replaceSigner(Id replacementRecipientId)

指定された署名者を置き換えます。

グローバル

static void replaceSigner(Id replacementRecipientId, String message)

指定された署名者を指定されたメッセージに置き換えます。

グローバル

static echsign_dev1.EchoSignApiService.SendD ocumentResult sendDocument(Id agreementId)

指定された契約 ID の契約を送信し、文書キーおよび URL と共に結果を返します。

グローバル

static void sendReminder(Id agreementId)

指定された契約 ID の現在の署名者にリマインダーを送信します。

 

内部クラス

グローバルクラス DocumentHistoryEvent

プロパティ(2)

アクセス

名前

グローバル

String eventType

グローバル

String participantEmail

 

コンストラクター(1)

アクセス

署名

グローバル

DocumentHistoryEvent()

 

グローバルクラス DocumentInfo

プロパティ(5)

アクセス

名前

グローバル

Map<string,list> historyByEmail

グローバル

Map participantsByEmail

グローバル

Map participantsByName

グローバル

String senderEmail

グローバル

String status

 

コンストラクター(1)

アクセス

署名

グローバル

DocumentInfo()

 

グローバルクラス ParticipantInfo

プロパティ(5)

アクセス

名前

グローバル

String company

グローバル

String email

グローバル

String name

グローバル

String status

グローバル

String title

 

コンストラクター(1)

アクセス

署名

グローバル

ParticipantInfo()

 

グローバルクラス SendDocumentResult

プロパティ(3)

アクセス

名前

グローバル

String documentKey

グローバル

Exception error

グローバル

String url

 

コンストラクター(1)

アクセス

署名

グローバル

SendDocumentResult()

 

グローバルクラス SigningUrl

プロパティ(3)

アクセス

名前

グローバル

String email

グローバル

String esignUrl

グローバル

String simpleEsignUrl

 

コンストラクター(1)

アクセス

署名

グローバル

 

Apex バッチサービス

eSign の主な契約アクションを一括レベルで公開して、一連の契約に対して操作を実行できるようにします。このクラスは、Salesforce Database.Batchable インターフェイスを実装します。処理できるレコードの数に制限はありません。レコードは 5 件ごとのセットに分割され、各セットが個別のトランザクションとして処理されるので、管理上の制限に従うことができます。

Apex バッチサービスは、次の呼び出しクラスを通じて公開されます。echosign_dev1.EchoSignActionBatch

パラメーター

バッチ操作を初期化するために、以下のパラメーターを指定する必要があります。

指定されたアクションの実行対象となる契約レコード ID の一覧。実行するアクション。これは、サポートされている以下の値のいずれかです。

  • Remind
  • Send
  • Cancel
  • Delete
  • Update

現在のユーザーのセッション ID。アクションタイプが update の場合にのみ必要です。

送信者のユーザーレコード。一括処理が完了したときに、電子メールでこのユーザーに通知するために使用されます。

使用例

User submitterUser = UserInfo.getUserId();

EchoSignActionBatch batch = new EchoSignActionBatch( agreementIds, 'Remind', UserInfo.getSessionId(), submitterUser); syncProcessId = Database.executeBatch(batch, 5);

 

契約テンプレート一括作成

SOQL クエリおよび契約テンプレートレコード ID を受け取ります。クエリの実行によってマスターオブジェクトレコードのセットが取得され、その後、指定された契約テンプレートに対して各レコードが処理されて、契約レコードが生成されます。このクラスは、Salesforce Database.Batchable インターフェイスを実装します。処理できるレコードの数に制限はありません。レコードは 5 件ごとのセットに分割され、各セットが個別のトランザクションとして処理されるので、管理上の制限に従うことができます。

SOQL クエリから返されるレコードタイプは、指定された契約テンプレートのマスターオブジェクトタイプと一致する必要があります。レコードごとに契約テンプレートサービスが呼び出されます。

Apex バッチサービスは、次の呼び出しクラスを通じて公開されます。

echosign_dev1.AgreementTemplateBatch

パラメーター

バッチ操作を初期化するために、以下のパラメーターを指定する必要があります。

実行する SOQL クエリには、選択したフィールドとしてレコード ID が含まれている必要があります。その他のフィールドはすべて省略可能です。

契約テンプレートレコード ID。マスターレコード ID と組み合わせて契約の読み込みに使用されます。

使用例

String agreementTemplateId = [SELECT Id from echosign_dev1__Agreement_Template__c where Name = 'Default Template']; String soqlQuery = 'SELECT Id from Contact where Account.IsActive = true';

AgreementTemplateBatch batch = new AgreementTemplateBatch(soqlQuery, agreementTemplateId); syncProcessId = Database.executeBatch(batch, 5);

 

契約テンプレートサービスバッチ

マスターオブジェクトレコード ID の一覧とマスターオブジェクトタイプを受け取ります。その後、クエリが実行され、指定された契約テンプレートに対してそれぞれが処理されて、契約レコードが生成されます。このクラスは、Salesforce Database.Batchable インターフェイスを実装します。処理できるレコードの数に制限はありません。レコードは 5 件ごとのセットに分割され、各セットが個別のトランザクションとして処理されるので、管理上の制限に従うことができます。

指定されたマスターオブジェクトタイプは、指定された契約テンプレートのマスターオブジェクトタイプと一致する必要があります。レコードごとに契約テンプレートサービスが呼び出されます。

Apex バッチサービスは、次の呼び出しクラスを通じて公開されます。

echosign_dev1.AgreementTemplateServiceBatch

パラメーター

バッチ操作を初期化するために、以下のパラメーターを指定する必要があります。

  • マスターレコード ID の一覧。
  • マスターレコードのクエリに使用するマスターオブジェクト名。
  • 契約テンプレートレコード ID。マスターレコードと組み合わせて契約の読み込みに使用されます。

使用例

String agreementTemplateId = [SELECT Id from echosign_dev1__Agreement_Template__c where Name = 'Default Template'];

AgreementTemplateBatch batch = new AgreementTemplateServiceBatch(new List<Id>{'01p50000000HoMB'}, 'Contact', agreementTemplateId); syncProcessId = Database.executeBatch(batch, 5);

REST サービス

契約テンプレートサービス

契約テンプレートサービスは、マネージドパッケージによって Salesforce REST Web サービスとして公開されます。そのため、Salesforce 組織外の外部システムでも、既存の契約テンプレートに基づいて契約を読み込むことができます。Salesforce 内からカスタム REST Apex サービスに対してアクセスおよび呼び出しをおこなう方法について詳しくは、Apex REST を使用した REST API の作成を参照してください。呼び出しの際は、認証と承認のために有効なセッション ID を指定する必要があります。

Web サービスは、次の URL で公開されます。

https://<インスタンス名>.salesforce.com/services/apexrest/echosign_dev1/template/load/<テンプレート ID>?masterId=<マスター ID>&varName1=var Value1&varName2=varValue2

注意:

インスタンス名は、使用する組織インスタンスによって異なります。

 

テンプレート ID

URL の最後の部分は、現在の Salesforce 組織で契約の読み込みに使用される契約テンプレートレコードの ID です。URL のこの部分は省略可能です。省略すると、デフォルトとマークされている契約テンプレートが読み込まれます。テンプレート ID を省略し、デフォルトの契約テンプレート ID が存在しない場合は、エラーが返されます。

テンプレート ID には、15 文字または 18 文字の形式を使用できます。

マスター ID

masterId パラメーターには、特定の契約テンプレートから契約を読み込むために使用するマスターレコードを指定します。このパラメーターは省略可能ですが、契約テンプレートでマスターオブジェクトタイプを指定し、テンプレート内でそのマスターオブジェクトを参照している場合は、指定する必要があります。

テンプレート ID には、15 文字または 18 文字の形式を使用できます。

実行時変数

実行時変数として任意の追加パラメーターを名前と値のペアで指定すると、契約テンプレートで指定されている実行時変数への入力に使用されます。

 

結果

REST Web サービスから、以下のフィールドを含む LoadResult オブジェクトが返されます。

  • agreementId:契約の読み込み操作が成功した場合、新しく作成された契約レコードの ID が含まれます。
  • error:契約の読み込み中にエラーが発生した場合は、詳細なエラーメッセージが含まれます。

 

バックグラウンドサービス

バックグラウンドサービス機能を使用すると、パッケージのコンシューマーは「バックグラウンドアクション」(echosign_dev1 Background_Actions c)フィールドを対応する値に更新することによって、契約オブジェクトに対して様々なアクションを呼び出すことができます。フィールドが空白値または何らかの値から以下の値のいずれかに変更されると、eSign マネージドパッケージの一部であるトリガーからアクションが実行されます。

  • Remind
  • Send
  • Cancel
  • Delete
  • Update

すべてのアクションは非同期機能モードで実行されるため、ステータスは契約の「エラー」フィールドに格納されます。

 

ダウンロード

本作品は Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License によってライセンス許可を受けています。  Twitter™ および Facebook の投稿には、Creative Commons の規約内容は適用されません。

法律上の注意   |   プライバシーポリシー