Ideas クラス
名前空間
使用方法
アイデアは、アイデアとアイデアに対する投票およびコメントを投稿するユーザのコミュニティです。アイデアコミュニティは、オンラインのわかりやすい方法で、革新的なアイデアを訴求、管理、および紹介できます。
最近のコメントセット (メソッドにより返されます。下記を参照) には、ユーザが投稿したコメントや、別のユーザが投稿したコメントに対するコメントなどのアイデアが含まれます。返されたアイデアは、別のユーザが行った最後のコメント投稿時間に基づいてリストされ、最新のアイデアが先頭となります。
userID 引数は必須です。結果を絞り込んで、指定されたユーザが投稿またはコメントしたアイデアのみを返します。
communityID 引数は、結果を絞り込んで、指定されたゾーン内のアイデアのみを返します。この引数が空の文字列である場合、指定されたユーザの最近のコメントすべてが、ゾーンに関わらず返されます。
アイデアについての詳細は、Salesforce オンラインヘルプの「アイデアの使用」を参照してください。
例
1swfobject.registerObject("clippy.codeblock-0", "9");
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17public class FindSimilarIdeasController {
18
19 public static void test() {
20 // Instantiate a new idea
21 Idea idea = new Idea ();
22
23 // Specify a title for the new idea
24 idea.Title = 'Increase Vacation Time for Employees';
25
26 // Specify the communityID (INTERNAL_IDEAS) in which to find similar ideas.
27 Community community = [ SELECT Id FROM Community WHERE Name = 'INTERNAL_IDEAS' ];
28
29 idea.CommunityId = community.Id;
30
31 ID[] results = Ideas.findSimilar(idea);
32 }
33}
34次に、Visualforce ページと、特別な Apex クラスであるカスタムコントローラの両方を使用する例を示します。Visualforce についての詳細は、『Visualforce 開発者ガイド』を参照してください。
この例では、未読の最近のコメントを返すコントローラに Apex メソッドを作成します。この例は、getAllRecentReplies メソッドおよび getReadRecentReplies メソッドでも活用できます。この例が動作するには、ゾーンに投稿されているアイデアが必要となります。さらに、最低 1 人のゾーンメンバーが別のゾーンのメンバーのアイデアやコメントにコメントを投稿していなければなりません。
1swfobject.registerObject("clippy.codeblock-1", "9");
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17// Create an Apex method to retrieve the recent replies marked as unread in all communities
18public class IdeasController {
19
20 public Idea[] getUnreadRecentReplies() {
21 Idea[] recentReplies;
22 if (recentReplies == null) {
23 Id[] recentRepliesIds = Ideas.getUnreadRecentReplies(UserInfo.getUserId(), '');
24 recentReplies = [SELECT Id, Title FROM Idea WHERE Id IN :recentRepliesIds];
25 }
26 return recentReplies;
27 }
28
29}
30
31次に、上記のカスタムコントローラを使用して、未読の最近のコメントリストを作成する Visualforce ページのマークアップを示します。
1swfobject.registerObject("clippy.codeblock-2", "9");
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17<apex:page controller="IdeasController" showHeader="false">
18 <apex:dataList value="{!unreadRecentReplies}" var="recentReplyIdea">
19 <a href="/apex/viewIdea?id={!recentReplyIdea.Id}">
20 <apex:outputText value="{!recentReplyIdea.Title}" escape="true"/></a>
21 </apex:dataList>
22</apex:page>
23
24次に、データのリストに Visualforce ページとカスタムコントローラを使用する例を示します。次に、2 つ目の Visualforce ページとカスタムコントローラを使用して特定のアイデアを表示し、既読に設定する方法を示します。この例が動作するには、ゾーンに投稿されているアイデアが必要となります。
1swfobject.registerObject("clippy.codeblock-3", "9");
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17// Create a controller to use on a VisualForce page to list ideas
18public class IdeaListController {
19
20 public final Idea[] ideas {get; private set;}
21
22 public IdeaListController() {
23 Integer i = 0;
24 ideas = new Idea[10];
25 for (Idea tmp : Database.query
26('SELECT Id, Title FROM Idea WHERE Id != null AND parentIdeaId = null LIMIT 10')) {
27 i++;
28 ideas.add(tmp);
29 }
30 }
31}
32
33次に、上記のカスタムコントローラを使用しアイデアのリストを作成する Visualforce ページのマークアップを示します。
1swfobject.registerObject("clippy.codeblock-4", "9");
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17<apex:page controller="IdeaListController" tabStyle="Idea" showHeader="false">
18
19 <apex:dataList value="{!ideas}" var="idea" id="ideaList">
20 <a href="/apex/viewIdea?id={!idea.id}">
21<apex:outputText value="{!idea.title}" escape="true"/></a>
22 </apex:dataList>
23
24</apex:page>
25次に、Visualforce ページとカスタムコントローラの両方を使用する例をもう 1 つ示します。ここでは、上記のアイデアリストページで選択されたアイデアを表示します。この例では、markRead メソッドが選択したアイデアと関連するコメントを、現在ログイン中のユーザによる既読に設定します。markRead がコンストラクタに含まれているため、ユーザがこのコントロールを使用するページにアクセスすると、アイデアは直ちに既読に設定されます。この例が動作するには、ゾーンに投稿されているアイデアが必要となります。さらに、最低 1 人のゾーンメンバーが別のゾーンのメンバーのアイデアやコメントにコメントを投稿していなければなりません。
1swfobject.registerObject("clippy.codeblock-5", "9");
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17// Create an Apex method in the controller that marks all comments as read for the
18// selected idea
19public class ViewIdeaController {
20
21 private final String id = System.currentPage().getParameters().get('id');
22
23 public ViewIdeaController(ApexPages.StandardController controller) {
24 Ideas.markRead(id);
25 }
26
27}
28次に、上記のカスタムコントローラを使用してアイデアを既読として表示する Visualforce ページのマークアップを示します。
1swfobject.registerObject("clippy.codeblock-6", "9");
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17<apex:page standardController="Idea" extensions="ViewIdeaController" showHeader="false">
18
19 <h2><apex:outputText value="{!idea.title}" /></h2>
20 <apex:outputText value="{!idea.body}" />
21
22</apex:page>
23Ideas メソッド
Ideas のメソッドは次のとおりです。すべてのメソッドが静的です。
findSimilar(idea)
署名
public static ID[] findSimilar(Idea idea)
パラメータ
- idea
- 型: Idea
戻り値
型: ID[]
使用方法
各 findSimilar コールは、プロセスで使用できる SOSL ステートメントガバナの制限にカウントされます。
markRead(ideaID)
署名
public static Void markRead(String ideaID)
パラメータ
- ideaID
- 型: String
戻り値
型: Void