現在表示中:

AEM には、ワークフローモデルの作成に使用できるプロセスステップがいくつか用意されています。組み込みステップに含まれていないタスクについては、カスタムのプロセスステップを追加することができます(ワークフローモデルの作成を参照)。

プロセスの特徴

プロセスステップごとに特徴を説明します。

Java クラスか ECMA パスか

プロセスステップは、Java クラスまたは ECMAScript によって定義されます。

  • Java クラスのプロセスの場合は、完全修飾クラス名を指定します。 
  • ECMAScript プロセスの場合は、スクリプトへのパスを指定します。

ペイロード

ペイロードは、ワークフローインスタンスの処理対象となるエンティティです。ペイロードは、ワークフローインスタンスが開始されるコンテキストによって暗黙的に選択されます。

例えば、ワークフローが AEM ページ「P」に適用された場合は、ワークフローが進むたびに「P」がステップからステップに引き渡され、各ステップで必要に応じて「P」に対して何らかの処理がおこなわれます。

最も多いのは、ペイロードがリポジトリ内の JCR ノード(例えば AEM ページまたはアセット)である場合です。JCR ノードペイロードは、JCR パスまたは JCR 識別子(UUID)のどちらかの文字列として渡されます。場合によっては、ペイロードは JCR プロパティ(JCR パスとして渡されます)、URL、バイナリオブジェクトまたは Java 汎用オブジェクトであることもあります。ペイロードで動作する個別のプロセスステップは、通常は特定のタイプのペイロードを予測するか、またはペイロードのタイプに応じて異なる動作をします。以下のプロセスごとに、予測されるペイロードのタイプがある場合はそのタイプについて説明します。

引数

一部のワークフロープロセスは引数を受け取ります。引数は、ワークフローステップを設定するときに管理者が指定します。

引数は、ワークフローエディターのプロパティウィンドウの「プロセスの引数」プロパティに単一文字列として入力します。以下に説明する各プロセスの引数文字列の形式については、次の簡単な EBNF 文法で記述します。以下に例を挙げます。 次のように、引数の文字列は 1 つまたは複数のコンマ区切りのペアで構成されています。各ペアは、2 つのコロンで区切られた名前(文字列)と値で構成されます。

args := name '::' value [',' name '::' value]*

name := /* 文字列 */

value := /* 文字列 */

タイムアウト

このタイムアウト期間が経過すると、ワークフローステップは動作しなくなります。タイムアウトを適用するワークフロープロセスもありますが、タイムアウトを適用せず、無視するワークフロープロセスもあります。

権限

WorkflowProcess に渡されたセッションはワークフロープロセスサービスのサービスユーザーをベースとします。このユーザーは、リポジトリのルートで以下の権限を持ちます。

  • jcr:read
  • rep:write
  • jcr:versionManagement
  • jcr:lockManagement
  • crx:replicate

この権限セットが WorkflowProcess 実装に十分でない場合は、必要な権限を持つセッションを使用する必要があります。

これをおこなうには、必要な(ただし最小限の)権限のサブセットを持つよう作成されたサービスユーザーを使用する方法が推奨されます。

警告:

AEM 6.2 より前のバージョンからアップグレードする場合は、実装の更新が必要になる場合があります。 

以前のバージョンでは、管理者セッションが WorkflowProcess 実装に渡されたので、特定の ACL を定義しなくてもリポジトリへのフルアクセスが可能でした。

現在、権限は上述のように定義されています(権限を参照)。実装を更新するために推奨される方法も同様です。

また、コード変更が不可能な場合には、下位互換性を維持する目的で、短期的な解決策も使用できます。

  • Web コンソール(/system/console/configMgr)を使用して、Adobe Granite Workflow Configuration Service を探します。
  • Workflow Process Legacy Mode を有効にします。

これにより、管理者セッションを WorkflowProcess 実装に渡すという古い動作に戻り、再びリポジトリ全体に無制限にアクセスできるようになります。

ワークフロー制御プロセス

以下のプロセスはコンテンツ上でアクションを実行せず、ワークフロー自体の動作を制御する役割を果たします。

AbsoluteTimeAutoAdvancer(絶対時刻自動アドバンサー)

AbsoluteTimeAutoAdvancer(絶対時刻自動アドバンサー)プロセスは、AutoAdvancer とまったく同じように動作します。例外は、指定された長さの時間が経過した後ではなく、指定された日時にタイムアウトする点です。

  • Java クラスcom.adobe.granite.workflow.console.timeout.autoadvance.AbsoluteTimeAutoAdvancer
  • ペイロード:なし
  • 引数:なし
  • タイムアウト:設定された日時に達すると、プロセスはタイムアウトします。

AutoAdvancer(自動アドバンサー)

AutoAdvancer プロセスは、ワークフローを次のステップに自動的に進めます。次に生じる可能性のあるステップが複数ある場合(例えば OR 分岐がある場合)、このプロセスは、デフォルトのルートが指定されているときはそのルートに沿ってワークフローを進め、指定されていないときはワークフローを進めません

  • Java クラスcom.adobe.granite.workflow.console.timeout.autoadvance.AutoAdvancer
  • ペイロード:なし
  • 引数:なし
  • タイムアウト:設定された時間が経過すると、プロセスはタイムアウトします。

ProcessAssembler(プロセスアセンブラー)

ProcessAssembler プロセスは、単一のワークフローステップ内で複数のサブプロセスを順番に実行します。ProcessAssembler を使用するには、ワークフロー内にこのタイプのステップを 1 つ作成し、実行するサブプロセスの名前と引数を示す引数を設定します。

  • Java クラスcom.day.cq.workflow.impl.process.ProcessAssembler
  • ペイロード:DAM アセット、AEM ページ、ペイロードなしのいずれか(サブプロセスの要件によって異なります)。
  • 引数
    • args := arg [',' arg]
      arg := processname ['::' processargs]
      processname := /* 完全修飾された Java クラスまたは
                          ECMAScript への絶対リポジトリパス */
      processargs := processarg [';' processarg]*
      processarg := '[' nobracketprocessarg ']' | nobracketprocessarg
      nobracketprocessarg := listitem [':' listitem]*
      listitem := /* 文字列 */
  • タイムアウト:適用されます。

次に例を示します。

  • アセットからメタデータを抽出します。
  • 指定した 3 つのサイズで 3 つのサムネールを作成します。
  • アセットがもともと GIF でも PNG でもなく JPEG が作成されていない場合は、アセットから JPEG 画像を作成します。
  • アセットの最終変更日を設定します。
com.day.cq.dam.core.process.ExtractMetadataProcess,
    com.day.cq.dam.core.process.CreateThumbnailProcess::[140:100];[48:48];[319:319:false],
    com.day.cq.dam.core.process.CreateWebEnabledImageProcess::dimension:1280:1280;mimetype:image/jpeg,
    com.day.cq.dam.core.process.AssetSetLastModifiedProcess

基本プロセス

以下のプロセスは単純なタスクを実行するか、例として機能します。

警告:

/libs パス内の設定は一切変更しないでください。

/libs のコンテンツは、インスタンスを次回アップグレードするとき(場合によってはホットフィックスまたは機能パックを適用したとき)に上書きされるからです。

delete

指定されたパスにある項目が削除されます。

  • ECMAScript パス/libs/workflow/scripts/delete.ecma
  • ペイロード:JCR パス
  • 引数:なし
  • タイムアウト:無視されます。

noop

これはヌルプロセスです。処理は実行しませんが、デバッグメッセージをログに記録します。

  • ECMAScript パス/libs/workflow/scripts/noop.ecma
  • ペイロード:なし
  • 引数:なし
  • タイムアウト:無視されます。

rule-false

これは、check() メソッドで false を返す null プロセスです。

  • ECMAScript パス/libs/workflow/scripts/rule-false.ecma
  • ペイロード:なし
  • 引数:なし
  • タイムアウト:無視されます。

sample

これは、ECMAScript プロセスのサンプルです。

  • ECMAScript パス/libs/workflow/scripts/sample.ecma
  • ペイロード:なし
  • 引数:なし
  • タイムアウト:無視されます。

urlcaller

これは、指定の URL を呼び出す単純なワークフロープロセスです。URL は通常、単純なタスクを実行する JSP(またはその他のサーブレット相当のもの)への参照になります。このプロセスは開発およびデモンストレーションのときにのみ使用し、実稼動環境では使用しないようにする必要があります。引数では URL、ログインおよびパスワードを指定します。

  • ECMAScript パス/libs/workflow/scripts/urlcaller.ecma
  • ペイロード:なし
  • 引数
    • args := url [',' login ',' password]
    • url := /* 呼び出される URL */
    • login := /* URL にアクセスするログイン */
    • password := /* URL にアクセスするパスワード */
    • 例:http://localhost:4502/my.jsp, mylogin, mypassword
  • タイムアウト:無視されます。

LockProcess

ワークフローのペイロードをロックします。 

  • Java クラス:com.day.cq.workflow.impl.process.LockProcess
  • ペイロード:JCR_PATH と JCR_UUID
  • 引数:なし
  • タイムアウト:無視されます。

次の状況下では、このステップは無効です。

  • ペイロードが既にロックされている。
  • ペイロードノードに jcr:content 子ノードが含まれていない。

UnlockProcess

ワークフローのペイロードをロック解除します。 

  • Java クラス:com.day.cq.workflow.impl.process.UnlockProcess
  • ペイロード:JCR_PATH と JCR_UUID
  • 引数:なし
  • タイムアウト:無視されます。

次の状況下では、このステップは無効です。

  • ペイロードが既にロック解除されている。
  • ペイロードノードに jcr:content 子ノードが含まれていない。

バージョン管理プロセス

以下のプロセスは、バージョン関連のタスクを実行します。

CreateVersionProcess

ワークフローペイロード(AEM ページまたは DAM アセット)の新しいバージョンを作成します。

  • Java クラスcom.day.cq.wcm.workflow.process.CreateVersionProcess
  • ペイロード: ページまたは DAM アセットを参照する JCR パスまたは UUID。
  • 引数:なし
  • タイムアウト:適用されます。

本作品は Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License によってライセンス許可を受けています。  Twitter™ および Facebook の投稿には、Creative Commons の規約内容は適用されません。

法律上の注意   |   プライバシーポリシー