4.25. フロー・履歴画面で、処理履歴の一部が表示されない¶
関連する現象
4.25.1. フロー・履歴画面で、処理履歴の一部が表示されない¶
現象¶
IM-Workflow の処理(申請、承認等)を Internet Explorer 10、Internet Explorer 11 で行った場合、処理したユーザのデータが異常な形で保存されます。
正常な形のデータ(progress.xml)
<user> <auth cd="user0001"> <companyCode>company01</companyCode> <organizationSetCode>companyset01<organizationSetCode/> <organizationCode>dept01</organizationCode> </auth> <executer cd="user0001"/> <operator cd="user0001"/> </user>異常な形のデータ(progress.xml)
<user> <auth cd="user0001"> <companyCode>company01^companyset01^dept01</companyCode> <organizationSetCode/> <organizationCode/> </auth> <executer cd="user0001"/> <operator cd="user0001"/> </user>そのため、以下のような状態となる場合があります。
- 案件を正常に進めることができなくなる
- フロー・履歴画面で、フロー図が表示されない
- フロー・履歴画面で、処理履歴の一部が表示されない
条件¶
iWP / iAF に、Internet Explorer 9 互換モードで動作させる Servlet Filter を設定していない
処理した案件が処理済(未完了案件/完了案件)に表示されない
フロー、履歴画面が正しく表示されない
処理時にログが出力される
jp.co.intra_mart.foundation.workflow.exception.WorkflowException: java.lang.NullPointerException at jp.co.intra_mart.system.workflow.engine.thread.WorkflowThreadExceptionHandlerImpl.execute(WorkflowThreadExceptionHandlerImpl.java:25) at jp.co.intra_mart.system.workflow.engine.thread.WorkflowThreadRunner.run(WorkflowThreadRunner.java:126) Caused by: java.lang.NullPointerException at jp.co.intra_mart.system.workflow.engine.thread.task.TemplateMailSendTask.createProcessMailReplaceMap(TemplateMailSendTask.java:557) at jp.co.intra_mart.system.workflow.engine.thread.task.TemplateMailSendTask.createReplaceMap(TemplateMailSendTask.java:369) at jp.co.intra_mart.system.workflow.engine.thread.task.TemplateMailSendTask.execute(TemplateMailSendTask.java:221) at jp.co.intra_mart.system.workflow.engine.thread.WorkflowThreadRunner.run(WorkflowThreadRunner.java:97)案件の終了処理でエラーが発生し、終了ノードで止まる
jp.co.intra_mart.foundation.workflow.exception.WorkflowException: jp.co.intra_mart.system.workflow.engine.common.EngineException: java.lang.NullPointerException at jp.co.intra_mart.system.workflow.engine.thread.WorkflowThreadExceptionHandlerImpl.execute(WorkflowThreadExceptionHandlerImpl.java:25) at jp.co.intra_mart.system.workflow.engine.thread.WorkflowThreadRunner.run(WorkflowThreadRunner.java:126) Caused by: jp.co.intra_mart.system.workflow.engine.common.EngineException: java.lang.NullPointerException at jp.co.intra_mart.system.workflow.engine.thread.task.MatterEndTask.execute(MatterEndTask.java:229) at jp.co.intra_mart.system.workflow.engine.thread.WorkflowThreadRunner.run(WorkflowThreadRunner.java:97) Caused by: java.lang.NullPointerException at jp.co.intra_mart.system.workflow.engine.thread.task.TemplateMailSendTask.createResultMailReplaceMap(TemplateMailSendTask.java:863) at jp.co.intra_mart.system.workflow.engine.thread.task.TemplateMailSendTask.createReplaceMap(TemplateMailSendTask.java:389) at jp.co.intra_mart.system.workflow.internal.manager.mail.TemplateMailSendManager.getMailReplaceMapData(TemplateMailSendManager.java:361) at jp.co.intra_mart.system.workflow.engine.core.event.ExtensionEventExecutor.executeMatterEndExtension(ExtensionEventExecutor.java:593) at jp.co.intra_mart.system.workflow.engine.thread.task.MatterEndTask.execute(MatterEndTask.java:186) ... 1 more
原因¶
製品の仕様です。
iWP / iAF に、Internet Explorer 9 互換モードで動作させる Servlet Filter を設定していない状態での Internet Explorer 10、Internet Explorer 11 の利用はサポート対象外です。コラム
Internet Explorer 10 以降の Internet Explorer は、これまでの Internet Explorer とは違い、HTML5とCSS3への対応を他のモダンブラウザと同様に積極的にサポートするようになっているため、これまでの Internet Explorer で動作していた HTML や CSS が動作しなくなっている部分が多数あります。これらの動作変更の影響により、上記事象が発生しております。
解決方法¶
iWP / iAF の場合
Internet Explorer 10、Internet Explorer 11 を Internet Explorer 9 互換モードで動作させる Servlet Filter を公開しております。IM-Workflow 7.2 を Internet Explorer 10、Internet Explorer 11 をご利用の場合は、Servlet Filter を設定してください。Servlet Filter の設定方法は以下の2通りがあります。
現在お使いのWebPlatform/AppFramework Ver7.2 に Servlet Filter を設定する方法
intra-mart Developer Blog 「WebPlatform/AppFramework Ver7.2でIE10を利用可能にするServlet Filterを公開します。」 を参照してください。
iWP / iAF 7.2.6 以降を適用する
iWP / iAF 7.2.6 以降に同梱の readme.txt を参照し、Servlet Filter を設定してください。
注意
Servlet Filter を設定する前に Internet Explorer 10、Internet Explorer 11 によって処理を行った案件が既に存在する場合、Servlet Filter を設定しただけでは対象案件のデータは正常な状態とはなりません。対象の案件に対して「復旧方法」で記載の対応を行ってください。intra-mart Accel Platform の場合
- 対象外
復旧方法¶
異常な形で保存された案件の確認方法
本件の現象によって異常な形で保存された案件を確認するためには、以下の方法に従ってトランザクションファイル格納ディレクトリを検索します。
以下の条件を指定してトランザクションファイル格納ディレクトリの検索を実行します。
検索対象のディレクトリ
iWP / iAF の場合
storage/workflow/data/%ログイングループID%/transaction
intra-mart Accel Platform の場合
%PUBLIC_STORAGE_PATH%/im_workflow/data/%テナントID%/transaction
対象の案件の期間が特定できている場合には、下記の「対象案件の処理手順」を参考にトランザクションファイルの格納ディレクトリ配下の年月・日・時間を指定すると、検索に要する時間を短縮化できます。検索対象のファイル
トランザクションファイル progress.xml
検索文字列
- “<companyCode>^”
- “<companyCode>%会社コード%^”
コラム
Aのパターンは、所属なしのユーザが申請や承認を行った場合に登録される情報を対象としています。所属なしユーザによるワークフローの利用がない場合には、Bのパターンの検索のみで構いません。対象となる案件が確認できたら、以下の「対象案件の処理手順」に基づいて対応します。
対象案件の処理手順
対象案件に対し、サポートブラウザで再申請を行い、案件を再度処理する必要があります。
- 案件操作を行い、申請ノードに戻します。
- サポートブラウザで再申請を行います。
- 以降、サポートブラウザで順次処理を行います。