この文章は Salesforce 機械翻訳システムを使用して翻訳されました。詳細はこちらをご参照ください。
英語に切り替える

InvocableVariable アノテーション

カスタムクラスで呼び出し可能なメソッドによって使用される変数を識別するには InvocableVariable アノテーションを使用します。

InvocableVariable アノテーションは、InvocableMethod メソッドの呼び出し可能なアクションの入力または出力パラメータとして使用されるクラス変数を識別します。呼び出し可能なメソッドへの入力または出力として使用する独自のカスタムクラスを作成する場合、個別のクラスメンバー変数を付加すると、メソッドで使用できるようになります。

次のサンプルコードは、呼び出し可能な変数を取る呼び出し可能なメソッドを示します。

1global class ConvertLeadAction {
2  @InvocableMethod(label='Convert Leads')
3  global static List<ConvertLeadActionResult> convertLeads(List<ConvertLeadActionRequest> requests) {
4    List<ConvertLeadActionResult> results = new List<ConvertLeadActionResult>();
5    for (ConvertLeadActionRequest request : requests) {
6      results.add(convertLead(request));
7    }
8    return results;
9  }
10
11  public static ConvertLeadActionResult convertLead(ConvertLeadActionRequest request) {
12    Database.LeadConvert lc = new Database.LeadConvert();
13    lc.setLeadId(request.leadId);
14    lc.setConvertedStatus(request.convertedStatus);
15
16    if (request.accountId != null) {
17        lc.setAccountId(request.accountId);
18    }
19
20    if (request.contactId != null) {
21      lc.setContactId(request.contactId);
22    }
23
24    if (request.overWriteLeadSource != null && request.overWriteLeadSource) {
25      lc.setOverwriteLeadSource(request.overWriteLeadSource);
26    }
27
28    if (request.createOpportunity != null && !request.createOpportunity) {
29      lc.setDoNotCreateOpportunity(!request.createOpportunity);
30    }
31
32    if (request.opportunityName != null) {
33      lc.setOpportunityName(request.opportunityName);
34    }
35
36    if (request.ownerId != null) {
37      lc.setOwnerId(request.ownerId);
38    }
39
40    if (request.sendEmailToOwner != null && request.sendEmailToOwner) {
41      lc.setSendNotificationEmail(request.sendEmailToOwner);
42    }
43
44    Database.LeadConvertResult lcr = Database.convertLead(lc, true);
45    if (lcr.isSuccess()) {
46      ConvertLeadActionResult result = new ConvertLeadActionResult();
47      result.accountId = lcr.getAccountId();
48      result.contactId = lcr.getContactId();
49      result.opportunityId = lcr.getOpportunityId();
50      return result;
51    } else {
52      throw new ConvertLeadActionException(lcr.getErrors()[0].getMessage());
53    }
54  }
55
56  global class ConvertLeadActionRequest {
57    @InvocableVariable(required=true)
58    public ID leadId;
59
60    @InvocableVariable(required=true)
61    public String convertedStatus;
62
63    @InvocableVariable
64    public ID accountId;
65
66    @InvocableVariable
67    public ID contactId;
68
69    @InvocableVariable
70    public Boolean overWriteLeadSource;
71
72    @InvocableVariable
73    public Boolean createOpportunity;
74
75    @InvocableVariable
76    public String opportunityName;
77
78    @InvocableVariable
79    public ID ownerId;
80
81    @InvocableVariable
82    public Boolean sendEmailToOwner;
83  }
84
85  global class ConvertLeadActionResult {
86    @InvocableVariable
87    public ID accountId;
88
89    @InvocableVariable
90    public ID contactId;
91
92    @InvocableVariable
93    public ID opportunityId;
94  }
95
96  class ConvertLeadActionException extends Exception {}
97}

InvocableVariable 修飾子

次の例に示すように、呼び出し可能な変数アノテーションには使用可能な 3 つの修飾子があります。

@InvocableVariable(label='yourLabel' description='yourDescription' required=(true | false))

どの修飾子も省略可能です。
label
変数の表示ラベル。デフォルトは変数名です。
description
変数の説明。デフォルトは Null です。
required
変数が必須かどうか。指定されていない場合のデフォルトは false です。出力変数ではこの値が無視されます。

InvocableVariable に関する考慮事項

  • 他のアノテーションと InvocableVariable アノテーションを併用することはできません。
  • 呼び出し可能な変数にすることができるのは、グローバル変数と公開変数のみです。
  • 次に該当する場合は、呼び出し可能な変数にできません。
    • interfaceclassenum などの型
    • static 変数、local 変数などの非メンバー変数
    • プロパティ
    • final 変数
    • Protected または private
  • 呼び出し可能な変数のデータ型は、次のいずれかである必要があります。
    • プリミティブデータ型、またはプリミティブデータ型のリスト – 汎用 Object 型はサポートされていません。
    • sObject 型、または sObject 型のリスト – 汎用 sObject 型はサポートされていません。

呼び出し可能アクションについての詳細は、『Force.com Actions Developer's Guide』を参照してください。