tyoshikawa1106のブログ

- Force.com Developer Blog -

SFDC:レポートフォルダと紐付くレポートの取得

レポート用フォルダと紐付くレポートの情報を取得するときのSOQLについてです。


レポート用フォルダの情報はフォルダオブジェクトがもっています。
フォルダオブジェクトは次のオブジェクトと紐付くみたいです。

  • ドキュメント
  • メールテンプレート
  • レポート
  • ダッシュボード

どのオブジェクト用のフォルダかは種別項目が持っています。


フォルダの情報を取得するSOQLは次のようになります。

レポート用のフォルダ取得用SOQL

検索時の条件は「フォルダの一意の名前(DeveloperName)」と「種別(Type)」を指定しておけばいいと思います。
フォルダの一意の名前項目は重複した値を登録できないようになっているのでこれを条件にしておけば特定のレコードのみを取得できます。

f:id:tyoshikawa1106:20130611073359p:plain

また種別項目にレポート用のフォルダと指定する必要があります。フォルダの一意の名前はあくまでレポートオブジェクト内での一意の名前のため、別のオブジェクト(ドキュメントなど)に同じ値を持つフォルダが存在する可能性があります。これを間違って取得しないように種別を指定しておく必要があります。

これでレポート用のフォルダ情報を取得することができます。


レポートの情報を取得するSOQLは次のようになります。

レポートフォルダIDに紐付くレポート取得用SOQL

レポートオブジェクトはフォルダIDの情報を「OwnerId」の項目にもっています。
なので上記のようにOwnerIdに対してフォルダIDの値を条件として指定することで特定のフォルダ内に存在するレポートを取得することができます。


これでレポートフォルダと紐付くレポートの情報を取得することができます。