問題
- Liferay Portal 6.X から Liferay DXP 7.1+ にアップグレードした後、デフォルトの Single Approver ワークフローを使用したワークフローでアイテムを拒否することができなくなりました。
- アイテムはまだ承認できますが、拒否しようとすると、ログにこのエラーが表示されます。
ERROR [liferay/kaleo_graph_walker-2][KaleoActionExecutorImpl:69] com.liferay.portal.workflow.kaleo.runtime.action.executor.ActionExecutorException: com.liferay.portal.kernel.scripting.UnsupportedLanguageException: javascript
com.liferay.portal.workflow.kaleo.runtime.action.executor.ActionExecutorException: com.liferay.portal.kernel.scripting.UnsupportedLanguageException: javascript
環境
- Liferay Portal 6.2からアップグレードしたLiferay DXP 7.1+。
解像度
- Liferay Portal 6.2 の Default Single Approver ワークフローでは、Javascript を使用して Rejected ステータスを設定します(53 行目)。
<script-language>javascript</script-language>
Liferay DXPでは、Javascriptスクリプトモジュールは非推奨となっています。
- デフォルトの Single Approver ワークフローの言語は、Liferay DXP でサポートされている唯一のスクリプト言語である Groovy に更新する必要があります。
- ワークフローのすべての新規項目でこの問題を解決するには、Single Approver ワークフローのソースを、添付の XML に置き換えます。
- 既存のワークフローの項目を解決するには、データベース内の項目を更新してスクリプト言語をGroovyに変更し、ワークフロー内で再度項目を拒否する必要があります。
- 既存のアイテムの更新は、LiferayのスクリプトコンソールでGroovyスクリプトを使用して行うことができます。 ActionableDynamicQuery を呼び出して、該当する項目を検索し、更新する必要があります。 添付の .groovy ファイルをご覧ください。
追加情報
- Single Approver ワークフローは、管理者が自由に変更でき、アップグレード中に変更すると、 変更したユーザーに影響があるため、このスクリプトの更新はアップグレード処理で処理されません ( LPS-82595を参照)。
- あなたの環境が もともとLiferay Portal 6.1以下を実行していた場合、 2つの追加変更を考慮する必要があるかもしれません:
- ApproveアクションもGroovyに更新する必要があるかもしれません(これは、添付の.XMLを使用することで対応できます)。
- 6.1 のワークフローのロールは Community Content Reviewer と呼ばれていたため、添付の XML の Site Content Reviewer ロールは Community Content Reviewer に変更する必要があるかもしれません。