intra-mart IM-Workflow トラブルシューティング 第21版 2023-04-01

4.1. 申請できない


4.1.1. アクション処理エラーにより申請に失敗する

対象バージョン

  • iWP / iAF の場合

    • IM-Workflow 7.2.0 ~ 最新バージョン
  • intra-mart Accel Platform の場合

    • 2012 Autumn(Alba) IM-Workflow 8.0.1 ~ 最新バージョン

現象

申請処理画面の申請ボタンを押下すると、『申請に失敗しました。』というエラーメッセージが表示されます。

条件

  • アクション処理のユーザプログラムを作成し、事象が発生した案件に紐づくコンテンツ定義に設定している

  • 事象の発生時刻に該当する例外ログに下記のようなスタックトレースが出力されている

    • スクリプト開発モデルのユーザプログラムの場合

      log.message=申請で失敗しました。
      
      jp.co.intra_mart.foundation.workflow.exception.WorkflowApiException: jp.co.intra_mart.system.workflow.engine.common.EngineException: jp.co.intra_mart.foundation.workflow.exception.WorkflowExternalException
         at jp.co.intra_mart.foundation.workflow.application.process.ApplyManager.apply(ApplyManager.java:600)
         at jp.co.intra_mart.system.workflow.javascript.application.process.ApplyManagerObject.jsFunction_apply(ApplyManagerObject.java:293)
      
      (省略)
      
      Caused by: jp.co.intra_mart.system.workflow.engine.common.EngineException: jp.co.intra_mart.foundation.workflow.exception.WorkflowExternalException
         at jp.co.intra_mart.system.workflow.engine.core.event.ExtensionEventExecutor.executeActionEvent(ExtensionEventExecutor.java:226)
         at jp.co.intra_mart.system.workflow.engine.action.AbstractActionEventBase.executeActionEvent(AbstractActionEventBase.java:854)
         at jp.co.intra_mart.system.workflow.engine.action.ActionEventApply.applyFormApplywait(ActionEventApply.java:228)
         at jp.co.intra_mart.system.workflow.engine.action.ActionEventApply.execute(ActionEventApply.java:154)
         at jp.co.intra_mart.system.workflow.engine.action.AbstractActionEventBase.fire(AbstractActionEventBase.java:191)
         at jp.co.intra_mart.system.workflow.internal.manager.action.ActionManager.apply(ActionManager.java:146)
         at jp.co.intra_mart.foundation.workflow.application.process.ApplyManager.apply(ApplyManager.java:588)
         ... 57 more
      Caused by: jp.co.intra_mart.foundation.workflow.exception.WorkflowExternalException
         at jp.co.intra_mart.system.workflow.plugin.process.action.ActionProcessJavaScriptExecutorEvent.execute(ActionProcessJavaScriptExecutorEvent.java:106)
         at jp.co.intra_mart.system.workflow.listener.context.WorkflowActionProcessEventListenerContext.execute(WorkflowActionProcessEventListenerContext.java:74)
         at jp.co.intra_mart.system.workflow.engine.core.event.ExtensionEventExecutor.executeActionEvent(ExtensionEventExecutor.java:220)
         ... 63 more
      
    • JavaEE開発モデルのユーザプログラムの場合

      log.message=申請で失敗しました。
      
      jp.co.intra_mart.foundation.workflow.exception.WorkflowApiException: jp.co.intra_mart.system.workflow.engine.common.EngineException: jp.co.intra_mart.foundation.workflow.exception.WorkflowPluginException: jp.co.intra_mart.foundation.workflow.exception.WorkflowExternalException
         at jp.co.intra_mart.foundation.workflow.application.process.ApplyManager.apply(ApplyManager.java:600)
         at jp.co.intra_mart.system.workflow.javascript.application.process.ApplyManagerObject.jsFunction_apply(ApplyManagerObject.java:293)
      
      (省略)
      
      Caused by: jp.co.intra_mart.system.workflow.engine.common.EngineException: jp.co.intra_mart.foundation.workflow.exception.WorkflowPluginException: jp.co.intra_mart.foundation.workflow.exception.WorkflowExternalException
         at jp.co.intra_mart.system.workflow.engine.core.event.ExtensionEventExecutor.executeActionEvent(ExtensionEventExecutor.java:226)
         at jp.co.intra_mart.system.workflow.engine.action.AbstractActionEventBase.executeActionEvent(AbstractActionEventBase.java:854)
         at jp.co.intra_mart.system.workflow.engine.action.ActionEventApply.applyFormApplywait(ActionEventApply.java:228)
         at jp.co.intra_mart.system.workflow.engine.action.ActionEventApply.execute(ActionEventApply.java:154)
         at jp.co.intra_mart.system.workflow.engine.action.AbstractActionEventBase.fire(AbstractActionEventBase.java:191)
         at jp.co.intra_mart.system.workflow.internal.manager.action.ActionManager.apply(ActionManager.java:146)
         at jp.co.intra_mart.foundation.workflow.application.process.ApplyManager.apply(ApplyManager.java:588)
         ... 57 more
      Caused by: jp.co.intra_mart.foundation.workflow.exception.WorkflowPluginException: jp.co.intra_mart.foundation.workflow.exception.WorkflowExternalException
         at jp.co.intra_mart.system.workflow.plugin.process.action.ActionProcessJavaExecutorEvent.execute(ActionProcessJavaExecutorEvent.java:113)
         at jp.co.intra_mart.system.workflow.listener.context.WorkflowActionProcessEventListenerContext.execute(WorkflowActionProcessEventListenerContext.java:74)
         at jp.co.intra_mart.system.workflow.engine.core.event.ExtensionEventExecutor.executeActionEvent(ExtensionEventExecutor.java:220)
         ... 63 more
      
      (アクション処理として実行されたユーザプログラムからのログが出力が続く)
      

原因

製品の仕様です。
アクション処理として実行されたユーザプログラムにて処理結果がエラーとして返却されているため、申請処理が失敗します。

解決方法

アクション処理として実行されたユーザプログラムに問題がある可能性があります。
作成したユーザプログラムの内容を確認してください。
ユーザプログラムに不備がある場合は、ユーザプログラムの再デプロイを行ってください。

回避方法

ありません。

復旧方法

ありません。

4.1.2. 採番処理エラーにより、申請に失敗する

対象バージョン

  • iWP / iAF の場合

    • IM-Workflow 7.2.0 ~ 最新バージョン
  • intra-mart Accel Platform の場合

    • 2012 Autumn(Alba) IM-Workflow 8.0.1 ~ 最新バージョン

現象

申請処理画面の申請ボタンを押下すると、『申請に失敗しました』というエラーメッセージが表示されます。

条件

  • アクション処理内の案件番号の採番において、IM-WorkflowのAPI「WorkflowNumberingManager」を利用している
    かつ、「WorkflowNumberingManager」の実装は「ファイル採番」(デフォルトの設定)が有効となっている
  • 事象の発生時刻に該当する例外ログに下記のようなスタックトレースが出力されている

    Caused by: jp.co.intra_mart.foundation.workflow.exception.WorkflowPluginException
       at jp.co.intra_mart.system.workflow.plugin.numbering.SimpleNumberCounterEvent.getNumber(SimpleNumberCounterEvent.java:107)
       at jp.co.intra_mart.system.workflow.listener.context.WorkflowNumberingListenerContext.execute(WorkflowNumberingListenerContext.java:65)
       at jp.co.intra_mart.foundation.workflow.util.WorkflowNumberingManager.getNumber(WorkflowNumberingManager.java:102)
       ... 35 more
    

原因

採番処理がタイムアウトとなった可能性があります。

ファイル採番の場合、各申請処理ごとにカウンタファイルをロックするため、処理待ちが発生します。
タイムアウト設定ファイルで定義した秒数を超えた場合にタイムアウトが発生し、採番処理が失敗します。

解決方法

ありません。

回避方法

  • iWP / iAF の場合

    以下のいずれかの対応を行ってください。

    • タイムアウト設定ファイルの秒数を増やす

      下記のファイルで定義されているタイムアウト秒数を変更してください。

      [%Storage Service%]/workflow/data/[%ログイングループID%]/master/numbering/lockTimeOut
      
    • 採番方法を変更する

      以下のパッチが適用されている場合、「WorkflowNumberingManager」の実装をDBシーケンス版に変更していただくことで解決します。

      • IM-Workflow 7.2.10

        対応要件 [21603] 案件番号採番処理のDBシーケンス版を提供します。

      注意

      パッチを適用していただいた場合でも、デフォルトではファイル採番が利用されるため、プラグインの設定を変更し、案件番号採番処理のDBシーケンス版を有効にしていただく必要がございます。
      設定方法の詳細につきましてはパッチのreadme.txtを参照してください。
      データベース Microsoft SQL Server 2008 R2 のみDBシーケンス機能に対応していないため、DBシーケンス版の「WorkflowNumberingManager」を利用することはできません。
  • intra-mart Accel Platform の場合

    以下のいずれかの対応を行ってください。

    • タイムアウト設定ファイルの秒数を増やす

      下記のファイルで定義されているタイムアウト秒数を変更してください。

      [%PUBLIC_STORAGE_PATH%]/im_workflow/data/[%テナントID%]/master/numbering/lockTimeOut
      
    • 採番方法を変更する

      以下のアップデート以降である場合、「WorkflowNumberingManager」の実装をDBシーケンス版に変更していただくことで解決します。

      • 2013 Winter(Felicia) IM-Workflow 8.0.6

        対応要件 [21602] 案件番号採番処理のDBシーケンス版を提供します。

      注意

      デフォルトではファイル採番が利用されるため、プラグインの設定を変更し、案件番号採番処理のDBシーケンス版を有効にしていただく必要がございます。
      設定方法の詳細につきましては 「 IM-Workflow 用設定ファイル (シーケンスオブジェクト採番機能を利用する場合) 」 を参照してください。
      データベース Microsoft SQL Server 2008 R2 のみDBシーケンス機能に対応していないため、DBシーケンス版の「WorkflowNumberingManager」を利用することはできません。

復旧方法

ありません。

4.1.3. 採番プラグイン情報取得エラーにより、申請に失敗する

対象バージョン

  • 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.1
      • iWP / iAF 7.2.2
      • iWP / iAF 7.2.3
      • iWP / iAF 7.2.4
      • iWP / iAF 7.2.5
      • iWP / iAF 7.2.6
    • intra-mart Accel Platform の場合

      • intra-mart Accel Platform 2012 Autumn(Alba) 8.0.1
      • intra-mart Accel Platform 2012 Winter(Bourbon) 8.0.2
      • intra-mart Accel Platform 2013 Spring(Climbing) 8.0.3
      • intra-mart Accel Platform 2013 Summer(Damask) 8.0.4
      • intra-mart Accel Platform 2013 Autumn(Eden) 8.0.5
      • intra-mart Accel Platform 2013 Winter(Felicia) 8.0.6
  • アクション処理内の案件番号の採番において、IM-WorkflowのAPI「WorkflowNumberingManager」を利用している
    かつ、「WorkflowNumberingManager」の実装は「ファイル採番」(デフォルトの設定)が有効となっている
  • 事象の発生時刻に該当する例外ログに下記のようなスタックトレースが出力されている

    スクリプト開発モデル のユーザプログラムの場合

    Caused by: jp.co.intra_mart.foundation.workflow.exception.WorkflowExternalException
       at jp.co.intra_mart.system.workflow.plugin.process.action.ActionProcessJavaScriptExecutorEvent.execute(ActionProcessJavaScriptExecutorEvent.java:106)
       at jp.co.intra_mart.system.workflow.listener.context.WorkflowActionProcessEventListenerContext.execute(WorkflowActionProcessEventListenerContext.java:74)
       at jp.co.intra_mart.system.workflow.engine.core.event.ExtensionEventExecutor.executeActionEvent(ExtensionEventExecutor.java:220)
       ... 63 more
    

    JavaEE開発モデル のユーザプログラムの場合

    Caused by: jp.co.intra_mart.system.workflow.engine.common.EngineException: jp.co.intra_mart.foundation.workflow.exception.WorkflowPluginException:
       at jp.co.intra_mart.system.workflow.engine.core.event.ExtensionEventExecutor.executeActionEvent(ExtensionEventExecutor.java:221)
       at jp.co.intra_mart.system.workflow.engine.action.AbstractActionEventBase.executeActionEvent(AbstractActionEventBase.java:773)
       at jp.co.intra_mart.system.workflow.engine.action.ActionEventApply.applyFormApplywait(ActionEventApply.java:260)
       at jp.co.intra_mart.system.workflow.engine.action.ActionEventApply.execute(ActionEventApply.java:163)
       at jp.co.intra_mart.system.workflow.engine.action.AbstractActionEventBase.fire(AbstractActionEventBase.java:193)
       at jp.co.intra_mart.system.workflow.internal.manager.action.ActionManager.apply(ActionManager.java:147)
       at jp.co.intra_mart.foundation.workflow.application.process.ApplyManager.apply(ApplyManager.java:427)
       ... 65 more
    Caused by: jp.co.intra_mart.foundation.workflow.exception.WorkflowPluginException:
       at jp.co.intra_mart.system.workflow.plugin.process.action.ActionProcessJavaExecutorEvent.execute(ActionProcessJavaExecutorEvent.java:116)
       at jp.co.intra_mart.system.workflow.listener.context.WorkflowActionProcessEventListenerContext.execute(WorkflowActionProcessEventListenerContext.java:78)
       at jp.co.intra_mart.system.workflow.engine.core.event.ExtensionEventExecutor.executeActionEvent(ExtensionEventExecutor.java:215)
       ... 71 more
    

原因

製品の不具合です。

プラグイン機構の一部にスレッドセーフでない箇所があり、多重リクエストによって複数のスレッドから同時にアクセスされた場合、プラグイン情報の取得に失敗する場合があります。

以下の要件で対応を行っています。

  • iWP / iAF の場合

    • 要件 [19872] PluginManagerから取得したPluginDescriptorの各メソッドのスレッドセーフ対応
  • intra-mart Accel Platform の場合

    • 要件 [25079] PluginDescriptorのスレッドセーフ対応

解決方法

以下のパッチまたはアップデートを適用することで解決します。

  • iWP / iAF の場合

    • iWP / iAF 7.2.7
  • intra-mart Accel Platform の場合

    • intra-mart Accel Platform 2014 Spring(Granada) 8.0.7

回避方法

あくまで暫定対処ですが、 iWP / iAF または intra-mart Accel Platform を再起動することにより現象が回避できる場合があります。

復旧方法

ありません。

4.1.4. プラグイン関連の処理で 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
    

原因

製品の不具合です。

IM-Workflowにおいて申請できるかどうかの判断や次の承認者を展開する仕組みでPluginManagerを使用しています。
PluginManagerがスレッドセーフでない実装となるため本事象が発生します。
PluginManagerは iWP / iAF 、 intra-mart Accel Platform の機能です。

以下の要件で対応を行っています。

  • iWP / iAF の場合

    • 要件 #9163 PluginManagerから取得したPluginDescriptorの各メソッドのスレッドセーフ対応
    • 要件 #9125 プラグインマネージャ初期化処理がスレッドセーフでない
    • 要件 #8912 PluginManagerのスレッドセーフ対応
  • intra-mart Accel Platform の場合

    • 要件 #3172 PluginManagerから取得したPluginDescriptorの各メソッドのスレッドセーフ対応
    • 要件 #3350 プラグインマネージャ初期化処理が同期化されていません
    • 要件 #4359 PluginDescriptorのスレッドセーフ対応

解決方法

以下のパッチまたはアップデートを適用することで解決します。

  • iWP / iAF の場合

    • iWP / iAF 7.2.7
  • intra-mart Accel Platform の場合

    • intra-mart Accel Platform 2014 Spring(Granada) 8.0.7

回避方法

ありません。

復旧方法

ありません。

4.1.5. 申請や承認の際に「一時領域のディレクトリが見つかりません」というエラーが発生する

対象バージョン

  • iWP / iAF の場合

    • IM-Workflow 7.2.0 ~ 最新バージョン
  • intra-mart Accel Platform の場合

    • 2012 Autumn(Alba) IM-Workflow 8.0.1 ~ 2016 Spring(Maxima) IM-Workflow 8.0.13

現象

申請や承認の際に、画面上に『申請に失敗しました。』『処理に失敗しました。』というエラーメッセージが表示されます。

条件

  • 別PCや、同一ブラウザの複数タブにて、同一ユーザコードで複数ログインを行い、 IM-Workflow の処理画面を表示している

  • 事象の発生時刻に該当する例外ログに下記のようなスタックトレースが出力されている

    log.message=一時領域のディレクトリが見つかりません。
    
    jp.co.intra_mart.foundation.workflow.exception.WorkflowApiException
       at jp.co.intra_mart.system.workflow.internal.manager.attachfile.AttachFileManager.checkDirectory(AttachFileManager.java:350)
       at jp.co.intra_mart.system.workflow.internal.manager.attachfile.AttachFileManager.addFileToTemp(AttachFileManager.java:144)
       at jp.co.intra_mart.foundation.workflow.util.WorkflowAttachFileManager.addFileToTemp(WorkflowAttachFileManager.java:116)
       at jp.co.intra_mart.system.workflow.javascript.util.WorkflowAttachFileManagerObject.jsFunction_addFileToTemp(WorkflowAttachFileManagerObject.java:211)
    
       (省略)
    

原因

製品の仕様です。

添付ファイルの一時アップロード先ディレクトリは、ユーザ単位で一意です。
別PCや、同一ブラウザの複数タブにて、同一ユーザコードで複数ログインを行い、 IM-Workflow の処理画面を表示すると、添付ファイルの一時アップロード先ディレクトリの初期化が不正に実行されるため、当事象が発生します。
上記の操作は、リリースノートの制限事項に、サポート対象外であることが明記されています。

以下の要件で対応を行っています。

  • iWP / iAF の場合

    • 対象外
  • intra-mart Accel Platform の場合

    • 要件 #1192 添付ファイルの一時領域ディレクトリをSessionScopeStorageに変更します。

解決方法

以下のパッチまたはアップデートを適用することで解決します。
  • iWP / iAF の場合

    • 対象外
  • intra-mart Accel Platform の場合

    • 2016 Summer(Nirvana) IM-Workflow 8.0.14

回避方法

サポート対象外となるため、上記の操作を行わないでください。

復旧方法

一覧画面から対象の操作を再度やり直してください。

4.1.6. 言語ロケールを追加した後、追加したロケールで申請一覧にフローが表示されない

対象バージョン

  • iWP / iAF の場合

    • IM-Workflow 7.2.0 ~ 最新バージョン
  • intra-mart Accel Platform の場合

    • 2012 Autumn(Alba) IM-Workflow 8.0.1 ~ 最新バージョン

現象

一度、単一ロケール(日本語のみ)で環境構築を行った後に、ロケールを追加すると、
追加したロケールをユーザロケールとするユーザの申請一覧にフローが表示されません。

条件

ロケールを追加した環境におけるフローとユーザについて、下記の条件に合致する場合に発生します。

  • フロー

    • 単一ロケールでの環境構築時にフローを作成している
  • ユーザ

    • 追加したロケールをユーザロケールとして設定されている
    • 単一ロケール時に作成したフローの申請処理権限者として設定されている

原因

製品の仕様です。

IM-Workflow では、システムロケール毎にマスタデータの設定が必要です。

解決方法

新規言語追加を行った場合は、以下の各種マスタ情報に関して、追加した言語に対応する国際化情報を設定する必要があります。

  • iWP / iAF の場合

    • アクセスセキュリティ
    • IM-共通マスタ
    • IM-Workflowマスタ(フロー定義、コンテンツ定義、ルート定義など)
  • intra-mart Accel Platform の場合

    言語追加ガイド 」を参照し、必要な作業を行ってください。

注意

IM-Workflowマスタの国際化情報については下記の注意点があります。

フロー定義、コンテンツ定義、ルート定義といったバージョンを保有するマスタは、各基本情報の更新と共に、 各バージョンの基本情報 も更新する必要があります。

具体的には、各マスタ定義の編集画面での更新の実行のほかに、対象マスタの各バージョンの編集画面における「基本情報」でも更新を行う必要があります。

例として、フロー定義の場合のオペレーションを説明します。

  1. メニュー「ワークフロー管理者 - マスタ定義 - フロー定義」をクリック (「フロー定義」一覧画面に遷移)
  2. 編集対象フローのフロー編集アイコンをクリック (「フロー定義 - 編集」画面に遷移)
  3. 「フロー定義 - 編集」画面:基本情報タブで、必要情報を入力し、「更新」ボタンをクリック
    • マスタ定義の基本情報の更新が完了
  4. 「フロー定義 - 編集」画面のバージョンタブをクリック
  5. 編集対象バージョンのバージョン編集アイコンをクリック (「フロー定義 - バージョン - 編集」画面に遷移)
  6. 「フロー定義 - バージョン - 編集」画面:基本情報タブで、必要情報を入力し、「更新」ボタンをクリック
    • 対象マスタが持つすべてのバージョンに対し、同様の作業を実施することで、マスタ定義バージョンの基本情報の更新が完了

回避方法

ありません。

復旧方法

ありません。

4.1.7. 初期ソート条件に案件プロパティを指定すると、案件に対する処理が実行できない

対象バージョン

  • iWP / iAF の場合

    • 対象外
  • intra-mart Accel Platform の場合

    • 2013 Summer(Damask) IM-Workflow 8.0.4

現象

以下の一覧を表示し、案件に対する処理用アイコンをクリックしたとき、ユーザコンテンツ画面の表示は行われるがサーバで例外が発生し、案件の処理が実行できません。
  • 一時保存一覧(「申請」アイコンの押下時)
  • 未処理一覧(「処理」アイコンの押下時)
  • 未処理 - 連続処理一覧(「連続処理開始」アイコンの押下時)
  • 確認一覧(「確認」アイコンの押下時)
  • 確認 - 連続確認一覧(「連続確認開始」アイコンの押下時)

条件

  • 対象の一覧画面に対する一覧表示パターン定義にて、案件プロパティを第1初期ソート条件として設定している

  • 事象の発生時刻に該当する例外ログに下記のようなスタックトレースが出力されている

    (省略)
    log.message=引数が不正です。
    
    jp.co.intra_mart.foundation.workflow.exception.WorkflowApiException: Unexpected character (u) at position 160.
       at jp.co.intra_mart.system.workflow.taglib.WorkflowOpenPage.getStartTagData(WorkflowOpenPage.java:555)
       at jp.co.intra_mart.system.workflow.taglib.imarttag.ImartTag4WorkflowOpenPage.doTag(ImartTag4WorkflowOpenPage.java:74)
       at jp.co.intra_mart.system.javascript.imapi.ImartTagTypeManager.invoke(ImartTagTypeManager.java:200)
       at jp.co.intra_mart.system.javascript.imapi.ImartObject.callFunction(ImartObject.java:70)
       at jp.co.intra_mart.system.javascript.imapi.ImartObject.callFunction(ImartObject.java:55)
       at jp.co.intra_mart.system.jssp.script.view.ImartTag.execute(ImartTag.java:157)
       at jp.co.intra_mart.system.jssp.script.view.Composition.execute(Composition.java:237)
    
    (省略)
    
    Caused by: Unexpected character (u) at position 160.
       at org.json.simple.parser.Yylex.yylex(Unknown Source)
       at org.json.simple.parser.JSONParser.nextToken(Unknown Source)
       at org.json.simple.parser.JSONParser.parse(Unknown Source)
       at org.json.simple.parser.JSONParser.parse(Unknown Source)
       at org.json.simple.parser.JSONParser.parse(Unknown Source)
       at org.json.simple.JSONValue.parseWithException(Unknown Source)
       at jp.co.intra_mart.system.workflow.taglib.WorkflowOpenPage.getStartTagData(WorkflowOpenPage.java:553)
       ... 70 more
    

原因

製品の不具合です。
画面一覧ヘッダ情報を生成する処理にて、案件プロパティのカラムIDとカラム名に対する、プレフィックス付加処理の実装が漏れているためです。
以下の要件で対応を行っています。
  • iWP / iAF の場合

    • 対象外
  • intra-mart Accel Platform の場合

    • 要件 [20477] 案件プロパティのキーに数字を登録すると、一覧表示できません。

解決方法

以下のパッチまたはアップデートを適用することで解決します。
  • iWP / iAF の場合

    • 対象外
  • intra-mart Accel Platform の場合

    • 2013 Autumn(Eden) IM-Workflow 8.0.5

回避方法

一覧表示パターン定義にて、第1初期ソート条件には案件プロパティ以外の項目を指定してください。

復旧方法

ありません。

4.1.8. 特定のユーザが申請一覧を表示しようとすると、エラーが発生します

対象バージョン

  • iWP / iAF の場合

    • IM-Workflow 7.2.0 ~ 最新バージョン
  • intra-mart Accel Platform の場合

    • 2012 Autumn(Alba) IM-Workflow 8.0.1 ~ 最新バージョン

現象

  • 特定のユーザが申請一覧を表示しようとすると、エラーが発生し、一覧画面を表示できません。
  • 同じ環境において、事象が発生するユーザと発生しないユーザが混在します。

条件

以下の条件に合致する場合に発生します。

  • 利用しているデータベースが SQL Server(バージョン問わず)である。

  • 申請基準日時点で有効なフローの申請ノードに、「組織+ロール」や「パブリックグループ+ロール」、「組織とその上位組織全て+ロール」といったような、組織/パブリックグループとロールを組み合わせた処理対象者プラグインを設定している。
  • エラーが発生する申請者の所属組織やロールが多い。

  • 事象の発生時刻に該当する例外ログに下記のようなスタックトレースが出力されている。

    (省略)
    log.message=ユーザが本人権限で申請/処理開始可能なフローの件数を取得で失敗しました。
    
    jp.co.intra_mart.foundation.workflow.exception.WorkflowApiException: jp.co.intra_mart.system.workflow.engine.database.WorkflowDAOException: com.microsoft.sqlserver.jdbc.SQLServerException: 着信要求のパラメーターが多すぎます。サーバーがサポートするパラメーターは最大 2100 個です。パラメーターの数を減らしてから、要求を再送信してください。
        at jp.co.intra_mart.foundation.workflow.application.general.ApplyFlowList.getApplyFlowListCount(ApplyFlowList.java:147)
        at jp.co.intra_mart.system.workflow.javascript.application.general.ApplyFlowListObject.jsFunction_getApplyFlowListCount(ApplyFlowListObject.java:248)
        at sun.reflect.GeneratedMethodAccessor659.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:497)
        at jp.co.intra_mart.system.javascript.MemberBox.invoke(MemberBox.java:126)
        at jp.co.intra_mart.system.javascript.FunctionObject.call(FunctionObject.java:442)
        at jp.co.intra_mart.system.javascript.optimizer.OptRuntime.callN(OptRuntime.java:52)
    
    (省略)
    
    Caused by: com.microsoft.sqlserver.jdbc.SQLServerException: 着信要求のパラメーターが多すぎます。サーバーがサポートするパラメーターは最大 2100 個です。パラメーターの数を減らしてから、要求を再送信してください。
        at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:216)
        at com.microsoft.sqlserver.jdbc.SQLServerStatement.getNextResult(SQLServerStatement.java:1515)
        at com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.doExecutePreparedStatement(SQLServerPreparedStatement.java:404)
        at com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement$PrepStmtExecCmd.doExecute(SQLServerPreparedStatement.java:350)
        at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:5696)
        at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:1715)
        at com.microsoft.sqlserver.jdbc.SQLServerStatement.executeCommand(SQLServerStatement.java:180)
        at com.microsoft.sqlserver.jdbc.SQLServerStatement.executeStatement(SQLServerStatement.java:155)
        at com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.executeQuery(SQLServerPreparedStatement.java:285)
        at com.caucho.sql.UserPreparedStatement.executeQuery(UserPreparedStatement.java:108)
        at com.caucho.sql.UserPreparedStatement.executeQuery(UserPreparedStatement.java:108)
        at jp.co.intra_mart.system.database.PreparedStatementWrapper.executeQuery(PreparedStatementWrapper.java:274)
        at jp.co.intra_mart.system.workflow.api.database.AbstractListDaoBase.executeCount(AbstractListDaoBase.java:325)
        ... 60 more
    

原因

申請一覧を表示する際には、申請者の所属組織やロールに基づいて、フローの申請ノードの処理対象者と合致する情報を作成し、SQL パラメータとして設定します。
申請者の所属組織やロール等に比例して SQL パラメータ数が増加することにより、SQL Server のパラメータ上限値(2,100)を超過し、エラーが発生します。

コラム

SQL Server のパラメータの詳細については、以下のページを参照してください。

解決方法

ありません。

回避方法

所属する組織やパブリックグループが多い場合は、不要な所属情報を削除するなどして、所属数が少なくなるよう見直してください。
また、付与されているロールが多い場合は、複数の権限を1つのロールに集約するなどして、付与数が少なくなるよう見直してください。
なお、本事象の原因であるパラメータ数はサブロールもカウント対象です。そのため、サブロールによる権限の集約では事象を回避することができません。

復旧方法

ありません。