4.12. 処理対象者が0人になる¶
関連する現象
4.12.1. プラグイン関連の処理で NullPointerException が発生する¶
対象バージョン¶
iWP / iAF の場合
- IM-Workflow 7.2.0 ~ 最新バージョン
intra-mart Accel Platform の場合
- 2012 Autumn(Alba) IM-Workflow 8.0.1 ~ 2013 Winter(Felicia) IM-Workflow 8.0.6
条件¶
以下の基盤の対象バージョンを使用している
iWP / iAF の場合
- iWP / iAF 7.2.0 ~ iWP / iAF 7.2.6
intra-mart Accel Platform の場合
- 2012 Autumn(Alba) 8.0.1 ~ 2013 Winter(Felicia) 8.0.6
事象の発生時刻に該当する例外ログに下記のようなスタックトレースが出力されている
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.common.aid.jdk.javax.xml.XmlNode.lookup(XmlNode.java:727) at jp.co.intra_mart.common.aid.jdk.javax.xml.XmlNode.lookup(XmlNode.java:670) at jp.co.intra_mart.common.aid.jdk.javax.xml.XmlNode.getString(XmlNode.java:517) at jp.co.intra_mart.common.aid.jdk.javax.xml.XmlNode.getString(XmlNode.java:504) at jp.co.intra_mart.system.plugin.PluginDescriptorImp.getGroups(PluginDescriptorImp.java:101) at jp.co.intra_mart.foundation.plugin.PluginManager.getPluginDescriptors(PluginManager.java:582) at jp.co.intra_mart.system.workflow.engine.plugin.WorkflowPluginObjectCacher.getPluginDescriptorFromCache(WorkflowPluginObjectCacher.java:261) at jp.co.intra_mart.system.workflow.engine.plugin.WorkflowPluginObjectCacher.getObjectAryFromPluginManager(WorkflowPluginObjectCacher.java:206) at jp.co.intra_mart.system.workflow.engine.plugin.WorkflowPluginObjectCacher.getExecuteObject(WorkflowPluginObjectCacher.java:134) at jp.co.intra_mart.system.workflow.listener.context.WorkflowAuthorityEventListenerContext.execute(WorkflowAuthorityEventListenerContext.java:66) at jp.co.intra_mart.system.workflow.util.WorkflowPluginUtil.getUserDataModelList(WorkflowPluginUtil.java:443) at jp.co.intra_mart.system.workflow.engine.core.tool.AuthorityPluginDataAnalyzer.expandUsers(AuthorityPluginDataAnalyzer.java:204) at jp.co.intra_mart.system.workflow.engine.core.tool.AuthorityPluginDataAnalyzer.getExecutableUser(AuthorityPluginDataAnalyzer.java:142) at jp.co.intra_mart.system.workflow.engine.core.tool.AuthorityPluginDataAnalyzer.getExecutableUser(AuthorityPluginDataAnalyzer.java:82) at jp.co.intra_mart.system.workflow.engine.thread.task.ProcessUserExpandRegisterTask.addExecuterUserInfo(ProcessUserExpandRegisterTask.java:176) at jp.co.intra_mart.system.workflow.engine.thread.task.ProcessUserExpandRegisterTask.execute(ProcessUserExpandRegisterTask.java:131) at jp.co.intra_mart.system.workflow.engine.thread.WorkflowThreadRunner.run(WorkflowThreadRunner.java:97)または下記のようなスタックトレースが出力されている
[ERROR] j.c.i.s.w.e.WorkflowExceptionDispatcher - [] [Engine - Thread]スレッドタスク実行で例外が発生しました。 jp.co.intra_mart.foundation.workflow.exception.WorkflowException: org.w3c.dom.DOMException: INVALID_CHARACTER_ERR: 無効または不正なXML文字が指定されています。 at jp.co.intra_mart.system.workflow.engine.thread.WorkflowThreadExceptionHandlerImpl.execute(WorkflowThreadExceptionHandlerImpl.java:25) ‾[im_workflow-8.0.4-main.jar:na] at jp.co.intra_mart.system.workflow.engine.thread.WorkflowThreadRunner.run(WorkflowThreadRunner.java:133) ‾[im_workflow-8.0.4-main.jar:na] at java.lang.Thread.run(Thread.java:724) ‾[na:1.7.0_25] Caused by: org.w3c.dom.DOMException: INVALID_CHARACTER_ERR: 無効または不正なXML文字が指定されています。 at com.sun.org.apache.xerces.internal.dom.CoreDocumentImpl.createElement(CoreDocumentImpl.java:622) ‾[na:1.7.0_25] at com.sun.org.apache.xerces.internal.dom.CoreDocumentImpl.importNode(CoreDocumentImpl.java:1543) ‾[na:1.7.0_25] at com.sun.org.apache.xerces.internal.dom.CoreDocumentImpl.importNode(CoreDocumentImpl.java:1746) ‾[na:1.7.0_25] at com.sun.org.apache.xerces.internal.dom.CoreDocumentImpl.importNode(CoreDocumentImpl.java:1746) ‾[na:1.7.0_25] at com.sun.org.apache.xerces.internal.dom.CoreDocumentImpl.importNode(CoreDocumentImpl.java:1502) ‾[na:1.7.0_25] at jp.co.intra_mart.system.plugin.PluginDescriptorImp.getNode(PluginDescriptorImp.java:235) ‾[im_plugin-8.0.4-main.jar:na] at jp.co.intra_mart.foundation.plugin.PluginManager.copy(PluginManager.java:709) ‾[im_plugin-8.0.4-main.jar:na] at jp.co.intra_mart.foundation.plugin.PluginManager.getDescriptor(PluginManager.java:687) ‾[im_plugin-8.0.4-main.jar:na] at jp.co.intra_mart.foundation.plugin.PluginManager.getPluginDescriptors(PluginManager.java:398) ‾[im_plugin-8.0.4-main.jar:na] at jp.co.intra_mart.system.workflow.engine.plugin.WorkflowPluginObjectCacher.getPluginDescriptorFromCache(WorkflowPluginObjectCacher.java:264) ‾[im_workflow-8.0.4-main.jar:na] at jp.co.intra_mart.system.workflow.engine.plugin.WorkflowPluginObjectCacher.getObjectAryFromPluginManager(WorkflowPluginObjectCacher.java:210) ‾[im_workflow-8.0.4-main.jar:na] at jp.co.intra_mart.system.workflow.engine.plugin.WorkflowPluginObjectCacher.getExecuteObject(WorkflowPluginObjectCacher.java:136) ‾[im_workflow-8.0.4-main.jar:na] at jp.co.intra_mart.system.workflow.engine.core.listener.SearchListenerContext.getUserInfo(SearchListenerContext.java:260) ‾[im_workflow-8.0.4-main.jar:na] at jp.co.intra_mart.system.workflow.util.WorkflowPluginUtil.getUserInfo(WorkflowPluginUtil.java:1180) ‾[im_workflow-8.0.4-main.jar:na] at jp.co.intra_mart.system.workflow.engine.thread.task.TemplateImBoxSendTask.getSingleUserInfo(TemplateImBoxSendTask.java:1519) ‾[im_workflow-8.0.4-main.jar:na] at jp.co.intra_mart.system.workflow.engine.thread.task.TemplateImBoxSendTask.createReplaceMap(TemplateImBoxSendTask.java:352) ‾[im_workflow-8.0.4-main.jar:na] at jp.co.intra_mart.system.workflow.engine.thread.task.TemplateImBoxSendTask.execute(TemplateImBoxSendTask.java:269) ‾[im_workflow-8.0.4-main.jar:na] at jp.co.intra_mart.system.workflow.engine.thread.WorkflowThreadRunner.run(WorkflowThreadRunner.java:103) ‾[im_workflow-8.0.4-main.jar:na] ... 1 common frames omitted
4.12.2. 多言語情報取得エラーのため案件の処理対象者が0人となり、未処理一覧に案件が表示されない¶
対象バージョン¶
iWP / iAF の場合
- IM-Workflow 7.2.0 ~ 最新バージョン
intra-mart Accel Platform の場合
- 2012 Autumn(Alba) IM-Workflow 8.0.1 ~ 最新バージョン
条件¶
処理対象者として展開されるユーザの所属組織の中に、システムロケール分の国際化情報が登録されていない組織が存在する
申請や承認などの処理の実行時刻付近に該当する例外ログに、下記のようなスタックトレースが出力されている
jp.co.intra_mart.foundation.workflow.exception.WorkflowException: java.lang.NullPointerException at jp.co.intra_mart.system.workflow.engine.thread.WorkflowAsynchronousTask.dispatchException(WorkflowAsynchronousTask.java:159) at jp.co.intra_mart.system.workflow.engine.thread.WorkflowAsynchronousTask.run(WorkflowAsynchronousTask.java:100) at jp.co.intra_mart.system.asynchronous.TaskWrapperImpl.run(TaskWrapperImpl.java:168) at jp.co.intra_mart.system.asynchronous.impl.executor.work.ExecutableWrapper.run(ExecutableWrapper.java:89) at com.caucho.jca.ra.WorkThread.run(WorkThread.java:87) at com.caucho.env.thread2.ResinThread2.runTasks(ResinThread2.java:173) at com.caucho.env.thread2.ResinThread2.run(ResinThread2.java:118) Caused by: java.lang.NullPointerException at jp.co.intra_mart.system.workflow.engine.database.model.ActvExecutableUserDataModel.addAuthUserOrganization(ActvExecutableUserDataModel.java:108) at jp.co.intra_mart.system.workflow.engine.core.tool.AuthorityPluginDataAnalyzer.mergeInfo(AuthorityPluginDataAnalyzer.java:686) at jp.co.intra_mart.system.workflow.engine.core.tool.AuthorityPluginDataAnalyzer.addUniqueExecutableUser(AuthorityPluginDataAnalyzer.java:93) at jp.co.intra_mart.system.workflow.engine.core.tool.AuthorityPluginDataAnalyzer.expandUsers(AuthorityPluginDataAnalyzer.java:590) at jp.co.intra_mart.system.workflow.engine.core.tool.AuthorityPluginDataAnalyzer.getExecutableUserSearchDate(AuthorityPluginDataAnalyzer.java:350) at jp.co.intra_mart.system.workflow.engine.core.tool.AuthorityPluginDataAnalyzer.getExecutableUserSearchDate(AuthorityPluginDataAnalyzer.java:280) at jp.co.intra_mart.system.workflow.engine.core.tool.AuthorityPluginDataAnalyzer.getExecutableUser(AuthorityPluginDataAnalyzer.java:184) at jp.co.intra_mart.system.workflow.engine.thread.task.ProcessUserExpandRegisterTask.addExecuterUserInfo(ProcessUserExpandRegisterTask.java:260) at jp.co.intra_mart.system.workflow.engine.thread.task.ProcessUserExpandRegisterTask.execute(ProcessUserExpandRegisterTask.java:151) at jp.co.intra_mart.system.workflow.engine.thread.WorkflowAsynchronousTask.run(WorkflowAsynchronousTask.java:93) ... 5 more
原因¶
製品の仕様です。
組織の名称が全ロケール分登録されていないことが原因です。IM-Workflow では、システムロケール毎にマスタデータが必要です。コラム
補足として、当事象の発生手順例を示します。
- 次の条件を満たす組織を作成する(組織1と呼ぶ)
- 申請基準日で有効で、日本語ロケールのみ名称設定された組織
- 次のロールを作成する
- ロール1
- ロール2
- 次のユーザを作成する(ユーザAと呼ぶ)
- 名称は全ロケール設定
- ロール1、ロール2を付与
- 組織1に所属
- 次のルートを作成する(ルート1と呼ぶ)
- S-申請-承認-E
- 申請ノードの処理対象者をロール1、ロール2とする
- 承認ノードの処理対象者をロール1、ロール2とする
- ルート1を使ったフローを作成する(フロー1と呼ぶ)
- ユーザAでログインし、フロー1で申請を行う
- 【事象発生】承認ノードの到達処理で例外が発生する
解決方法¶
ありません。
回避方法¶
組織の名称を全ロケール分設定してください。プラグインキャッシュが有効な場合、組織名称の設定後に、 iWP / iAF / intra-mart Accel Platform の再起動を行うか、「処理対象者標準プラグイン結果キャッシュ削除」バッチ・ジョブを実行し、プラグインキャッシュを削除してください。コラム
「処理対象者標準プラグイン結果キャッシュ削除」バッチ・ジョブは、以下のパッチ・アップデートで追加された機能です。
iWP / iAF の場合
- IM-Workflow 7.2.8
intra-mart Accel Platform の場合
- 2013 Summer(Damask) IM-Workflow 8.0.4
4.12.3. 承認者の未処理一覧に案件が表示されない、処理対象者に承認者のユーザが表示されない¶
対象バージョン¶
iWP / iAF の場合
- IM-Workflow 7.2.0 ~ IM-Workflow 7.2.8
intra-mart Accel Platform の場合
- 2012 Autumn(Alba) IM-Workflow 8.0.1 ~ 2013 Spring(Climbing) IM-Workflow 8.0.3
現象¶
- [未処理]、または[処理済(未完了案件)]の一覧 - [フロー] で表示される「フロー参照」で処理中の行の処理者のリンクをクリックしたときに、処理対象者に設定したユーザが表示されません。
- 上記の現象に該当するユーザの未処理一覧に対象の案件が表示されず、処理を行うことができません。
条件¶
以下の条件をすべて満たす場合に発生します。
- 案件操作や申請・処理時に処理対象者を設定する際、申請基準日と異なる基準日でユーザや組織などを検索した場合
- 上記により、申請基準日時点で無効なユーザや組織などを処理対象者に設定した場合
原因¶
製品の不具合です。
処理対象者の名称の取得やノード到達時のユーザ展開処理は「申請基準日」に基づいて行います。そのため、本来は案件に対する処理対象者の検索時は、ユーザや組織などの検索基準日として「申請基準日」を利用すべきです。しかし、対象バージョンとして記載のバージョンでは、ユーザや組織などの検索基準日に「システム日付」が初期表示されてしまいます。そのため、申請基準日で無効な処理対象者が検索・設定されやすい状況となっていました。以下の要件で対応を行っています。
iWP / iAF の場合
- 要件 [18213] 利用者の処理対象検索画面の検索基準日初期値が不正です。
- 要件 [20443] 案件の処理対象者・参照者、振替先として、申請基準日時点で無効な対象を設定することができてしまいます。
intra-mart Accel Platform の場合
- 要件 [19499] 利用者の処理対象検索画面の検索基準日初期値が不正です。
- 要件 [20455] 案件の処理対象者・参照者、振替先として、申請基準日時点で無効な対象を設定することができてしまいます。
解決方法¶
以下のパッチまたはアップデートを適用することで解決します。
iWP / iAF の場合
要件 [18213] 利用者の処理対象検索画面の検索基準日初期値が不正です。
- IM-Workflow 7.2.8
要件 [20443] 案件の処理対象者・参照者、振替先として、申請基準日時点で無効な対象を設定することができてしまいます。
- IM-Workflow 7.2.9
intra-mart Accel Platform の場合
- 2013 Summer(Damask) IM-Workflow 8.0.4