バッチ実行時goPrint()でSystem.NullPointerExceptioが発生する

ホーム 掲示板 ReportsConnect for Salesforce バッチ実行時goPrint()でSystem.NullPointerExceptioが発生する

このトピックは 2 発言者 で 22 件の返信 、  sweetie 8 年と 5 ヶ月 前 に最終更新されました。

23投稿中16~23 8件表示
  • 作成者
    投稿
  • #285

    sys-act.com
    参加者

    query editorでselect id,name from kpsr__Report__cと指定するとsObject type ‘kpsr__Report__c’ is not supported.と出力されるのですが、帳票オブジェクトのIDを取得するのはどうすればよろしでしょうか。

    #286

    sweetie
    参加者

    帳票オブジェクトの画面(印刷テストのボタンがある画面)を開いてその画面のURLを確認してください。

    URLの最後が

    ReportDev?id=a0W100000094XFl&sfdc.override=1

    こんな感じになっていると思いますが
    id=のあと &の手前の部分がIDです

    上記の例だと

    a0W100000094XFl

    がIDです

    #287

    sweetie
    参加者

    ちなみに、開発者コンソールで実行した際にそこで出力されるlogで

    15:23:23:202 SOQL_EXECUTE_BEGIN [278]|Aggregations:0|SELECT id, Name, kpsr__SOQL__c, kpsr__jrxmlname__c, kpsr__filename__c, kpsr__Null2Blank__c, kpsr__attcheToId__c, kpsr__batchUsername__c, kpsr__batchPassword__c, kpsr__nouiMode__c, kpsr__loginFix__c FROM Report__c WHERE (id = :tmpVar1 OR Name = :tmpVar2)

    ↑こんな感じでReport__c を読んでいるところがあると思いますがその次に

    15:23:23:212 SOQL_EXECUTE_END [278]|Rows:1

    となっていれば、読んだ帳票オブジェクトは1件しかないですが、
    Rowsのあとが2以上ならば複数のオブジェクトを読んでいる事になります

    #288

    sys-act.com
    参加者

    指示通りにテストを実行したところ、LoginFaultが発生しました。

    エビデンスとして、コード、ログ、画面キャプチャーを添付します。

    public class Maint {
    public static void goBtcPrint(){
    String soql = ‘SELECT Name FROM Bill_c lmit 1′;
    Bill__c b = [select id, name from bill__c limit 1];
    kpsr.ReportsConnectController rc = new kpsr.ReportsConnectController();
    rc.setReportId(‘a0CO000000C57Eh’);
    rc.setSoql(soql);
    system.debug(logginglevel.INFO, soql);
    rc.setAttcheToId(true);
    rc.setParentId(b.Id);
    rc.setFileName(b.Name);
    rc.goPrint();
    system.debug(logginglevel.INFO, rc.batchMessage);
    kpsr.BatchPrintResult res = (kpsr.BatchPrintResult) JSON.deserialize(rc.batchMessage,kpsr.BatchPrintResult.class);
    }
    }

    35.0 APEX_CODE,INFO;APEX_PROFILING,ERROR;CALLOUT,INFO;DB,ERROR;SYSTEM,FINEST;VALIDATION,ERROR;VISUALFORCE,ERROR;WORKFLOW,ERROR
    Execute Anonymous: Maint.goBtcPrint();
    15:29:18.155 (155016303)|EXECUTION_STARTED
    15:29:18.155 (155025688)|CODE_UNIT_STARTED|[EXTERNAL]|execute_anonymous_apex
    15:29:18.155 (155387399)|SYSTEM_MODE_ENTER|false
    15:29:18.161 (161498252)|ENTERING_MANAGED_PKG|kpsr
    15:29:18.903 (903353627)|ENTERING_MANAGED_PKG|kpsr
    15:29:18.903 (903408536)|ENTERING_MANAGED_PKG|kpsr
    15:29:18.903 (903567918)|SYSTEM_METHOD_ENTRY|[8]|System.debug(APEX_OBJECT, ANY)
    15:29:18.903 (903597328)|USER_DEBUG|[8]|INFO|SELECT Name FROM Bill_c lmit 1
    15:29:18.903 (903604845)|SYSTEM_METHOD_EXIT|[8]|System.debug(APEX_OBJECT, ANY)
    15:29:18.903 (903627542)|ENTERING_MANAGED_PKG|kpsr
    15:29:18.903 (903704704)|ENTERING_MANAGED_PKG|kpsr
    15:29:18.903 (903786665)|ENTERING_MANAGED_PKG|kpsr
    15:29:18.903 (903848264)|ENTERING_MANAGED_PKG|kpsr
    15:29:21.108 (3108581996)|SYSTEM_METHOD_ENTRY|[13]|kpsr.ReportsConnectController.__sfdc_batchMessage()
    15:29:21.108 (3108599729)|ENTERING_MANAGED_PKG|kpsr
    15:29:21.108 (3108627902)|SYSTEM_METHOD_EXIT|[13]|kpsr.ReportsConnectController.__sfdc_batchMessage()
    15:29:21.108 (3108648660)|SYSTEM_METHOD_ENTRY|[13]|System.debug(APEX_OBJECT, ANY)
    15:29:21.108 (3108665457)|USER_DEBUG|[13]|INFO|{“id”:null,”message”:”[LoginFault [ApiFault exceptionCode='INVALID_LOGIN'\n exceptionMessage='Invalid username, password, security token; or user locked out.'\n]\n]\n:null”,”tag”:”kps-reportsconnect”,”filename”:”201509-00000001.pdf”,”parentid”:”a0DO0000007jaKOMAY”,”success”:false}
    15:29:21.108 (3108672863)|SYSTEM_METHOD_EXIT|[13]|System.debug(APEX_OBJECT, ANY)
    15:29:21.108 (3108683321)|SYSTEM_METHOD_ENTRY|[14]|kpsr.ReportsConnectController.__sfdc_batchMessage()
    15:29:21.108 (3108689206)|ENTERING_MANAGED_PKG|kpsr
    15:29:21.108 (3108702324)|SYSTEM_METHOD_EXIT|[14]|kpsr.ReportsConnectController.__sfdc_batchMessage()
    15:29:21.109 (3109025911)|SYSTEM_METHOD_ENTRY|[14]|System.JSON.deserialize(String, System.Type)
    15:29:21.109 (3109438542)|SYSTEM_METHOD_EXIT|[14]|System.JSON.deserialize(String, System.Type)
    15:29:21.109 (3109460430)|SYSTEM_MODE_EXIT|false
    15:29:21.109 (3109511282)|CODE_UNIT_FINISHED|execute_anonymous_apex
    15:29:21.111 (3111750313)|EXECUTION_FINISHED

    Attachments:
    You must be logged in to view attached files.
    #290

    sys-act.com
    参加者

    ログにDBの情報取得を追加した再テストしました。

    35.0 APEX_CODE,INFO;APEX_PROFILING,ERROR;CALLOUT,INFO;DB,INFO;SYSTEM,FINEST;VALIDATION,ERROR;VISUALFORCE,ERROR;WORKFLOW,ERROR
    Execute Anonymous: Maint.goBtcPrint();
    15:56:48.094 (94768427)|EXECUTION_STARTED
    15:56:48.094 (94776395)|CODE_UNIT_STARTED|[EXTERNAL]|execute_anonymous_apex
    15:56:48.095 (95163090)|SYSTEM_MODE_ENTER|false
    15:56:48.096 (96845581)|SOQL_EXECUTE_BEGIN|[4]|Aggregations:0|SELECT id, name FROM bill__c LIMIT 1
    15:56:48.099 (99113179)|SOQL_EXECUTE_END|[4]|Rows:1
    15:56:48.103 (103540216)|ENTERING_MANAGED_PKG|kpsr
    15:56:48.832 (832547487)|SOQL_EXECUTE_BEGIN|[117]|Aggregations:0|SELECT Profile.PermissionsManageUsers FROM User WHERE id = :tmpVar1
    15:56:48.842 (842905542)|SOQL_EXECUTE_END|[117]|Rows:1
    15:56:48.843 (843312104)|ENTERING_MANAGED_PKG|kpsr
    15:56:48.843 (843395959)|ENTERING_MANAGED_PKG|kpsr
    15:56:48.843 (843581077)|SYSTEM_METHOD_ENTRY|[8]|System.debug(APEX_OBJECT, ANY)
    15:56:48.843 (843609754)|USER_DEBUG|[8]|INFO|SELECT Name FROM Bill_c lmit 1
    15:56:48.843 (843617511)|SYSTEM_METHOD_EXIT|[8]|System.debug(APEX_OBJECT, ANY)
    15:56:48.843 (843658259)|ENTERING_MANAGED_PKG|kpsr
    15:56:48.843 (843771837)|ENTERING_MANAGED_PKG|kpsr
    15:56:48.843 (843860933)|ENTERING_MANAGED_PKG|kpsr
    15:56:48.843 (843923195)|ENTERING_MANAGED_PKG|kpsr
    15:56:48.844 (844669305)|SOQL_EXECUTE_BEGIN|[278]|Aggregations:0|SELECT id, Name, kpsr__SOQL__c, kpsr__jrxmlname__c, kpsr__filename__c, kpsr__Null2Blank__c, kpsr__attcheToId__c, kpsr__batchUsername__c, kpsr__batchPassword__c, kpsr__nouiMode__c, kpsr__loginFix__c FROM Report__c WHERE (id = :tmpVar1 OR Name = :tmpVar2)
    15:56:48.852 (852877737)|SOQL_EXECUTE_END|[278]|Rows:1
    15:56:48.854 (854015332)|SOQL_EXECUTE_BEGIN|[317]|Aggregations:0|SELECT id, Name, kpsr__SOQL__c, kpsr__jrxmlname__c, kpsr__filename__c, kpsr__Null2Blank__c, kpsr__attcheToId__c, kpsr__serial__c, kpsr__batchUsername__c, kpsr__batchPassword__c, kpsr__nouiMode__c, kpsr__loginFix__c FROM Report__c WHERE Report__c = :tmpVar1 ORDER BY serial__c ASC NULLS FIRST
    15:56:48.859 (859917026)|SOQL_EXECUTE_END|[317]|Rows:0
    15:56:48.860 (860949132)|SOQL_EXECUTE_BEGIN|[451]|Aggregations:0|SELECT name, body, BodyLength FROM attachment WHERE parentId = :tmpVar1
    15:56:48.911 (911945424)|SOQL_EXECUTE_END|[451]|Rows:3
    15:56:48.919 (919792629)|SOQL_EXECUTE_BEGIN|[400]|Aggregations:0|SELECT id FROM Report__c WHERE adminrecord__c = TRUE
    15:56:48.923 (923140636)|SOQL_EXECUTE_END|[400]|Rows:0
    15:56:48.923 (923465526)|SOQL_EXECUTE_BEGIN|[401]|Aggregations:0|SELECT name, body, BodyLength FROM attachment WHERE parentId IN :tmpVar1
    15:56:48.925 (925291635)|SOQL_EXECUTE_END|[401]|Rows:0
    15:56:51.699 (3699612638)|SYSTEM_METHOD_ENTRY|[13]|kpsr.ReportsConnectController.__sfdc_batchMessage()
    15:56:51.699 (3699624435)|ENTERING_MANAGED_PKG|kpsr
    15:56:51.699 (3699667858)|SYSTEM_METHOD_EXIT|[13]|kpsr.ReportsConnectController.__sfdc_batchMessage()
    15:56:51.699 (3699686873)|SYSTEM_METHOD_ENTRY|[13]|System.debug(APEX_OBJECT, ANY)
    15:56:51.699 (3699699019)|USER_DEBUG|[13]|INFO|{“id”:null,”message”:”[LoginFault [ApiFault exceptionCode='INVALID_LOGIN'\n exceptionMessage='Invalid username, password, security token; or user locked out.'\n]\n]\n:null”,”tag”:”kps-reportsconnect”,”filename”:”201509-00000001.pdf”,”parentid”:”a0DO0000007jaKOMAY”,”success”:false}
    15:56:51.699 (3699706031)|SYSTEM_METHOD_EXIT|[13]|System.debug(APEX_OBJECT, ANY)
    15:56:51.699 (3699716578)|SYSTEM_METHOD_ENTRY|[14]|kpsr.ReportsConnectController.__sfdc_batchMessage()
    15:56:51.699 (3699723599)|ENTERING_MANAGED_PKG|kpsr
    15:56:51.699 (3699737674)|SYSTEM_METHOD_EXIT|[14]|kpsr.ReportsConnectController.__sfdc_batchMessage()
    15:56:51.701 (3701080109)|SYSTEM_METHOD_ENTRY|[14]|System.JSON.deserialize(String, System.Type)
    15:56:51.701 (3701459358)|SYSTEM_METHOD_EXIT|[14]|System.JSON.deserialize(String, System.Type)
    15:56:51.701 (3701480452)|SYSTEM_MODE_EXIT|false
    15:56:51.701 (3701532484)|CODE_UNIT_FINISHED|execute_anonymous_apex
    15:56:51.703 (3703254246)|EXECUTION_FINISHED

    #291

    sys-act.com
    参加者

    もう一つエビデンスとして画面のキャプチャーを添付します。
    定義している帳票は、「請求書」と「aaa」の2つです。

    Attachments:
    You must be logged in to view attached files.
    #293

    sweetie
    参加者

    正しい帳票オブジェクトを参照しているとしたら、考えられるのはアクセス権限の問題ですかね?
    印刷テストでうまくいくのは、呼び出しているクラスがすべて同一パッケージ内にあるものだから動くのかもしれない?

    先ほど、開発者コンソールのQuery Editorでkpsr__Report__cが読めないという話がありましたが、
    当方では以下のSOQLは正常にQuery Editorで答えが返ります

    select id,kpsr__batchPassword__c,kpsr__batchUsername__c from kpsr__Report__c

    これがエラーの出るユーザーで読めないとしたら、帳票オブジェクトのフィールドの値が読めない事が原因かもしれない。

    エラーが出るユーザーのプロファイルからカスタムオブジェクト権限で帳票オブジェクトがアクセス可能か、また、項目レベルセキュリティで帳票オブジェクトのフィールドがアクセス可能か?
    そのあたりの問題が考えられると思いますが。

    #294

    sweetie
    参加者

    追加ですが、
    試しに単純に
    select id,kpsr__batchPassword__c,kpsr__batchUsername__c from kpsr__Report__c
    を発行するコードを書いてみて、中身が読めているか確認してみたらどうでしょうか。

23投稿中16~23 8件表示

このトピックに返信するためにはログインしなければなりません。