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

Ideas クラス

ゾーンアイデアを表します。

名前空間

System

使用方法

アイデアは、アイデアとアイデアに対する投票およびコメントを投稿するユーザーのゾーンです。アイデアゾーンは、オンラインのわかりやすい方法で、革新的なアイデアを訴求、管理、および紹介できます。

最近のコメントセット (メソッドにより返されます。下記を参照) には、ユーザーが投稿したコメントや、別のユーザーが投稿したコメントに対するコメントなどのアイデアが含まれます。返されたアイデアは、別のユーザーが行った最後のコメント投稿時間に基づいてリストされ、最新のアイデアが先頭となります。

userID 引数は必須です。結果を絞り込んで、指定されたユーザーが投稿またはコメントしたアイデアのみを返します。

communityID 引数は、結果を絞り込んで、指定されたゾーン内のアイデアのみを返します。この引数が空の文字列である場合、指定されたユーザーの最近のコメントすべてが、ゾーンに関わらず返されます。

アイデアについての詳細は、Salesforce オンラインヘルプの「アイデアの使用」を参照してください。

次に、特定のゾーン内で、新しいアイデアと似た件名のアイデアを検索する例を示します。
1public class FindSimilarIdeasController {
2
3   public static void test() {
4      // Instantiate a new idea 
5      Idea idea = new Idea ();
6
7      // Specify a title for the new idea
8      idea.Title = 'Increase Vacation Time for Employees';
9
10      // Specify the communityID (INTERNAL_IDEAS) in which to find similar ideas. 
11      Community community = [ SELECT Id FROM Community WHERE Name = 'INTERNAL_IDEAS' ];
12
13      idea.CommunityId = community.Id;
14
15      ID[] results = Ideas.findSimilar(idea);
16   }
17}

次に、Visualforce ページと、特別な Apex クラスであるカスタムコントローラーの両方を使用する例を示します。Visualforce についての詳細は、『Visualforce 開発者ガイド』を参照してください。

この例では、未読の最近のコメントを返すコントローラーに Apex メソッドを作成します。この例は、getAllRecentReplies メソッドおよび getReadRecentReplies メソッドでも活用できます。この例が動作するには、ゾーンに投稿されているアイデアが必要となります。さらに、最低 1 人のゾーンメンバーが別のゾーンのメンバーのアイデアやコメントにコメントを投稿していなければなりません。

1// Create an Apex method to retrieve the recent replies marked as unread in all communities
2public class IdeasController {
3
4   public Idea[] getUnreadRecentReplies() {
5       Idea[] recentReplies;
6       if (recentReplies == null) {
7           Id[] recentRepliesIds = Ideas.getUnreadRecentReplies(UserInfo.getUserId(), '');
8           recentReplies = [SELECT Id, Title FROM Idea WHERE Id IN :recentRepliesIds];
9       }
10       return recentReplies;                                                                      
11  }
12
13}

次に、上記のカスタムコントローラーを使用して、未読の最近のコメントリストを作成する Visualforce ページのマークアップを示します。

1<apex:page controller="IdeasController" showHeader="false">
2    <apex:dataList value="{!unreadRecentReplies}" var="recentReplyIdea">
3           <a href="/apex/viewIdea?id={!recentReplyIdea.Id}">
4                 <apex:outputText value="{!recentReplyIdea.Title}" escape="true"/></a>
5     </apex:dataList>             
6</apex:page>

次に、アイデアのリストに Visualforce ページとカスタムコントローラーを使用する例を示します。次に、2 つ目の Visualforce ページとカスタムコントローラーを使用して特定のアイデアを表示し、既読に設定する方法を示します。この例が動作するには、ゾーンに投稿されているアイデアが必要となります。

1// Create a controller to use on a VisualForce page to list ideas
2public class IdeaListController {
3
4    public final Idea[] ideas {get; private set;}
5
6    public IdeaListController() {
7        Integer i = 0;
8        ideas = new Idea[10];
9        for (Idea tmp : Database.query
10('SELECT Id, Title FROM Idea WHERE Id != null AND parentIdeaId = null LIMIT 10')) {
11            i++;
12            ideas.add(tmp);
13        }
14    }
15}

次に、上記のカスタムコントローラーを使用しアイデアのリストを作成する Visualforce ページのマークアップを示します。

1<apex:page controller="IdeaListController" tabStyle="Idea" showHeader="false">
2
3        <apex:dataList value="{!ideas}" var="idea" id="ideaList">
4            <a href="/apex/viewIdea?id={!idea.id}">
5<apex:outputText value="{!idea.title}" escape="true"/></a>                       
6        </apex:dataList>
7
8</apex:page>

次に、Visualforce ページとカスタムコントローラーの両方を使用する例をもう 1 つ示します。ここでは、上記のアイデアリストページで選択されたアイデアを表示します。この例では、markRead メソッドが、選択したアイデアと関連するコメントを現在ログイン中のユーザーによる既読に設定します。markRead がコンストラクターに含まれているため、ユーザーがこのコントロールを使用するページにアクセスすると、アイデアは直ちに既読に設定されます。この例が動作するには、ゾーンに投稿されているアイデアが必要となります。さらに、最低 1 人のゾーンメンバーが別のゾーンのメンバーのアイデアやコメントにコメントを投稿していなければなりません。

1// Create an Apex method in the controller that marks all comments as read for the 
2// selected idea
3public class ViewIdeaController {
4
5   private final String id = System.currentPage().getParameters().get('id');
6
7   public ViewIdeaController(ApexPages.StandardController controller) {
8                Ideas.markRead(id);
9   }
10
11}

次に、上記のカスタムコントローラーを使用してアイデアを既読として表示する Visualforce ページのマークアップを示します。

1<apex:page standardController="Idea" extensions="ViewIdeaController" showHeader="false">
2   
3     <h2><apex:outputText value="{!idea.title}" /></h2>
4     <apex:outputText value="{!idea.body}" />
5
6</apex:page>

Ideas のメソッド

Ideas のメソッドは次のとおりです。すべてのメソッドが静的です。

findSimilar(idea)

指定されたアイデアの件名に基づき、類似アイデアのリストを返します。

署名

public static ID[] findSimilar(Idea idea)

パラメーター

idea
型: Idea

戻り値

型: ID[]

使用方法

findSimilar コールは、SOSL クエリの制限に含まれます。「実行ガバナと制限」を参照してください。

getAllRecentReplies(userID, communityID)

指定されたユーザーまたはゾーンで最近コメントが投稿されたアイデアを返します。既読および未読のすべてのコメントが含まれます。

署名

public static ID[] getAllRecentReplies(String userID, String communityID)

パラメーター

userID
型: String
communityID
型: String

戻り値

型: ID[]

使用方法

getAllRecentReplies コールは、SOQL クエリの制限に含まれます。「実行ガバナと制限」を参照してください。

getReadRecentReplies(userID, communityID)

既読とマークされた、最近コメントが投稿されたアイデアを返します。

署名

public static ID[] getReadRecentReplies(String userID, String communityID)

パラメーター

userID
型: String
communityID
型: String

戻り値

型: ID[]

使用方法

getReadRecentReplies コールは、SOQL クエリの制限に含まれます。「実行ガバナと制限」を参照してください。

getUnreadRecentReplies(userID, communityID)

未読とマークされた、最近コメントが投稿されたアイデアを返します。

署名

public static ID[] getUnreadRecentReplies(String userID, String communityID)

パラメーター

userID
型: String
communityID
型: String

戻り値

型: ID[]

使用方法

getUnreadRecentReplies コールは、SOQL クエリの制限に含まれます。「実行ガバナと制限」を参照してください。

markRead(ideaID)

現在ログインしているユーザーのすべてのコメントを既読に設定します。

署名

public static Void markRead(String ideaID)

パラメーター

ideaID
型: String

戻り値

型: Void