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

ホーム フォーラム ReportsConnect for Salesforce 人気のトピック

  • このトピックには22件の返信、2人の参加者があり、最後にsweetieにより9年、 1ヶ月前に更新されました。
8件の投稿を表示中 - 16 - 23件目 (全23件中)
  • 投稿者
    投稿
  • #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
    を発行するコードを書いてみて、中身が読めているか確認してみたらどうでしょうか。

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