Apexトリガで、レコード変更を契機に該当レコードに帳票を保存したい

ホーム フォーラム ReportsConnect for Salesforce Apexトリガで、レコード変更を契機に該当レコードに帳票を保存したい

  • このトピックには2件の返信、2人の参加者があり、最後にmiramiにより5年、 3ヶ月前に更新されました。
3件の投稿を表示中 - 1 - 3件目 (全3件中)
  • 投稿者
    投稿
  • #584
    mirami
    参加者

    Apexトリガの作成は完了しており、希望条件で発火するようになっています。
    ApexトリガからReportsConnectControllerを動かすメソッドを呼び出し、タイトルにある通りの動きを実現させたいと思っていますが、うまくいきません。ご助言いただけますと幸いです。
    ※そもそもAPEXトリガから希望の動作をさせることは不可能なのでしょうか??

    ソース

    public class Print_receipt {
    @future(callout=true)
        public static void Print_receipt( string ID ) {
            kpsr.ReportsConnectController rc;
            rc = new kpsr.ReportsConnectController();
            rc.setReportId('テスト');
            rc.getParms().put('condition','where id = \'' + ID + '\'');
            rc.setFilename('XXXXXXX');
            rc.setReturnUrl('/servlet/servlet.FileDownload');
            rc.goPrint();
            system.debug('◆' + rc.goUrl);
        }
    }

    なお、帳票オブジェクトの「テスト」には以下の設定が入っています。
    SELECT 【必要カラム達】 FROM 【テーブル】 :condition
    idパラメーターのオブジェクトに添付 オン

    デバッグ用のrc.goUrlで取得できたURLにアクセスすると、
    印刷が始まり、希望のPDFをDLすることはできました。
    ただ、求める動きとしては、ID指定したレコードに添付ファイルをつけることです。
    以下のURLを参考に作ったのですが、うまくいかず・・・。
    http://kptech.cocolog-nifty.com/blog/2013/01/reports-connect.html

    #585
    fujita
    参加者

    miramiさん、こんにちは。

    Apexトリガから希望の動作をするには「ユーザ固定化オプション」が必要になります。
    ※「ユーザ固定化オプション」は有料オプション(月額5千円)になります。
    https://www.reportsconnect.com/kotei.html
    オプションにお申込いただきますと、下記の方法で実現可能です。

    「ログインユーザーを固定化する」「UIを使用しない」にチェックをつけ、
    「固定化ユーザ名」と「固定化ユーザーパスワード」を入力ください。
    この際、ユーザーパスワードにはパスワードの末尾にセキュリティトークンを追加したものを入力ください。
    (セキュリティトークンの取得方法は以下のSalesforceのHELPをご参照ください)
    https://help.salesforce.com/articleView?id=user_security_token.htm&type=5

    また、Print_receipt()メソッド内のrc.goPrint()の行の前に、rc.setParentId(ID); という一文を追加してください。
    こちらは、添付ファイルの親オブジェクトのIDを指定するメソッドになります。

    #586
    mirami
    参加者

    fujita様

    ご回答ありがとうございます!
    内容理解いたしました。

    固定化オプションの申し込みを検討することといたします!

    当トピックはクローズとします。

3件の投稿を表示中 - 1 - 3件目 (全3件中)
  • このトピックに返信するにはログインが必要です。