No Results
Search Tips:
- Please consider misspellings
- Try different search keywords
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 アノテーションを併用することはできません。
- 呼び出し可能な変数にすることができるのは、グローバル変数と公開変数のみです。
- 次に該当する場合は、呼び出し可能な変数にできません。
- interface、class、enum などの型
- static 変数、local 変数などの非メンバー変数
- プロパティ
- final 変数
- Protected または private
- 呼び出し可能な変数のデータ型は、次のいずれかである必要があります。
呼び出し可能アクションについての詳細は、『Force.com Actions Developer's Guide』を参照してください。