+ Start a Discussion
kkurahashikkurahashi 

レポートで環境変数的なものを用いるには?

いつもお世話になっております。

 

 #慣用句的な意味ではなく本当に

 

例えば、以下のような項目の売上レポートを出力するとします。

 

・営業担当者  前月までの累計 当月合計 注残

 

当月だけであればレポートの「期間条件」で注文日などでフィルタリングすれば

いいのですが、同じ行で「前月までの累計」と「注残」にも対応しなければなりません。

 

今日の日付に連動するレポートであれば、

 

  if (month(today()) > month(orderDate__C)

 

のような条件付きで数式項目を組み込めば済むのですが、任意の時点で任意の

月のレポートを出力する必要があります。

 

レポートの期間条件のところにプルダウンメニューなど出てくれれば最高ですが、

それは無理として… 数式項目から参照できる環境変数的なものを使う方法は

ありますでしょうか。

 

ご教示いただければ幸いに存じます。 

Best Answer chosen by Admin (Salesforce Developers) 
LovelyWankoLovelyWanko

レポートの条件をURLパラメータで生成する事ができる事を発見しました :smileytongue:

 

https://ap.salesforce.com/<レポートID>?pc0=<レポートの項目名>E&pn0=<条件>&pv0=<検索する値>

 

 

事前に商談のカスタムレポートを条件なしで作成しておきます。

 

例えば以下の条件

 

 レポートID(作成したレポートのID):00O10000001JzgN

 条件(文字列を含む):co

 検索する値:Salesforce

 

とすると以下のようなURLになります。

 

https://ap.salesforce.com/00O10000001JzgN?pc0=OPPORTUNITY_NAME&pn0=co&pv0=Salesforce

 

で商談名に「Salsforce」という文字列を含んだ商談の一覧がレポートで表示されました。

pc0,pn0,pv0 の「0」 の数字を  pc1,pn1,pv1 とするとさらに条件が追加できるようです。

 

条件の一覧は以下が有効と思われます。

 

eq=「次の文字列と一致する」
ne=「次の文字列と一致しない」
lt=「<」
gt=「>」
le=「<=」
ge=「>=」
co=「次の文字列を含む」
nc=「次の文字列を含まない」
sw=「次の文字列で始まる」
in=「次の値を含む」
ex=「次の値を含まない」

※レポートを作成するウィザード画面のHTMLに出力されている 

 

上記で記述したレポートの項目名は標準オブジェクトはオブジェクト名とは別でレポートを作成するウィザード画面のHTML内に出力されているものを指定らしいです。

 

ただ日付型はうまく動かないようです。。。:smileysad: おそらくテキストなどに変換したものに対してパラメータ検索するなどの

対応が必要と思われます。

 

 

 

 

All Answers

kkurahashikkurahashi

…「対象月」という数式項目を作り、数式として「3」など出力対象とする月を定数でセットする、

という方法を思いつきましたが、さすがにそれは最後の手としてとっておきたいと思います。 

LovelyWankoLovelyWanko

レポートの条件をURLパラメータで生成する事ができる事を発見しました :smileytongue:

 

https://ap.salesforce.com/<レポートID>?pc0=<レポートの項目名>E&pn0=<条件>&pv0=<検索する値>

 

 

事前に商談のカスタムレポートを条件なしで作成しておきます。

 

例えば以下の条件

 

 レポートID(作成したレポートのID):00O10000001JzgN

 条件(文字列を含む):co

 検索する値:Salesforce

 

とすると以下のようなURLになります。

 

https://ap.salesforce.com/00O10000001JzgN?pc0=OPPORTUNITY_NAME&pn0=co&pv0=Salesforce

 

で商談名に「Salsforce」という文字列を含んだ商談の一覧がレポートで表示されました。

pc0,pn0,pv0 の「0」 の数字を  pc1,pn1,pv1 とするとさらに条件が追加できるようです。

 

条件の一覧は以下が有効と思われます。

 

eq=「次の文字列と一致する」
ne=「次の文字列と一致しない」
lt=「<」
gt=「>」
le=「<=」
ge=「>=」
co=「次の文字列を含む」
nc=「次の文字列を含まない」
sw=「次の文字列で始まる」
in=「次の値を含む」
ex=「次の値を含まない」

※レポートを作成するウィザード画面のHTMLに出力されている 

 

上記で記述したレポートの項目名は標準オブジェクトはオブジェクト名とは別でレポートを作成するウィザード画面のHTML内に出力されているものを指定らしいです。

 

ただ日付型はうまく動かないようです。。。:smileysad: おそらくテキストなどに変換したものに対してパラメータ検索するなどの

対応が必要と思われます。

 

 

 

 

This was selected as the best answer
kkurahashikkurahashi

LovelyWankoさん、

 

これはこれは、美しい解決策をありがとうございます。

定数設定のためのレコードタイプなどを定義しなくても済みます。 

 

さっそく行き詰っていたレポート、無事実装できました。 

 

ありがとうございました。 

bihasabihasa

すみません、こちらで紹介されている解決策について質問させてください。

 

書かれている方法で条件付きレポートのURLを指定してみるのですが、

『このURLは、現在存在しません。』というメッセージが出て上手くいきません。

どなたか同じ症状の方はいらっしゃいますか?

 

また同症状が出て解決された方はいらっしゃいますか?

 

 

ikouikou

レポートIDやインスタンス名は正しく指定できているでしょうか?

 

サンプルで言うと

https://<インスタンス名>.salesforce.com/<レポートID>?pc0=OPPORTUNITY_NAME&pn0=co&pv0=Salesforce

の部分です。

 

もっと言うと上記のようなフルパスではなく、相対パスで書けばインスタンス名を気にする必要がなくなるので、そちらをお勧めします。

相対パスは下記のようにsalesforce.com以降から書きます。

/<レポートID>?pc0=OPPORTUNITY_NAME&pn0=co&pv0=Salesforce

bihasabihasa

ikouさん

ご返信ありがとうございます。
ただ、やはり上手くいきませんでした。
実現したいことは、カスタムオブジェクトにURLのカスタムリンクを作成し、カスタム
項目と一致するレコードで絞りこんだレポートを実行したいと思っています。
ikouさんの言われる通り、相対パスを使うと『このURLは、現在存在しません』という
メッセージが出ることはなくなりレポートが実行されるようになりました。ですが、pc0,
pv0,pn0で指定したことが無視され、絞込み条件なしのレポートが実行されてしまいます。
(ちなみに、実行されたレポートのURLバーには意図する通りのURLが入力されています。)
度々の質問で大変申し訳ないのですが、下記のサンプルで示めされている“<レポートの
項目名>”というのはどこかで確認できるものなのでしょうか?
勝手に項目のAPI参照名のことだと思い込んでいたのですが、それが間違っているのでは
ないかと思っています。

 

何卒よろしくお願いいたします。

ikouikou

<レポートの項目名>はAPI参照名ではなく、もっと内部的なIDのことですね。

サンプルでは標準項目の「商談名」なので分かりやすく「OPPORTUNITY_NAME」となっていますが、

カスタム項目であれば「00N8000000XXXXX」のようなSalesforceIDになります。

 

カスタム項目のSalesforceIDを確認するには、設定からカスタム項目の参照画面を表示するとURLに入っています。

 

例えば私の環境で商談のカスタム項目を見るとこんな感じです。

https://na6.salesforce.com/00N8000000XXXXX?setupid=OpportunityFields

 

つまりレポートへのURLとしては下記のような感じになります。

/<レポートID>?pc0=00N8000000XXXXX&pn0=co&pv0=Salesforce

bihasabihasa

早速のご回答ありがとうございました。

解決しました!!!

 

自分なりに色々思考錯誤しながらやってみましたが、中々うまく行かなくて本当に困っていました。

ありがとうございます。質問してよかったです。

 

これからももっともっと勉強したいと思います。

本当にありがとうございました。

springeverspringever

こんにちは。

レポートを組むときに、複数の検索条件

例えば:(1 OR 2) AND 3

     1.顧客名=A

             2.顧客名=B

             3.性別=女

というように指定したいのですか。

よろしくお願い致します。

ご教示いただければ幸いに存じます。

ikouikou

レポートの編集画面から「条件の追加」を行ってください。

その後「条件ロジック」の変更でANDやORを指定できます。