Die Oberfläche ist lokalisiert; Skill-Beschreibungen und -Dokumente werden per KI automatisch in Ihre Sprache übersetzt. Code, Befehle, Pfade und Fachbegriffe bleiben im Original, maßgeblich ist das Dokument des Autors.
Skills entdecken
Bereitstellung und Betrieb · SKILL.md

workflow-launchers

workflow-launchers

Configure and deploy Workflow Launchers that automatically start workflows in response to JCR content changes on AEM as a Cloud Service

Independent GitHub snapshot · Automated classification · Original documentation governs

Aadobe / skillsApache-2.0

Skill-Dokumentation

GitHub

name: workflow-launchers description: Configure and deploy Workflow Launchers that automatically start workflows in response to JCR content changes on AEM as a Cloud Service license: Apache-2.0

Workflow Launchers Skill — AEM as a Cloud Service

Purpose

This skill teaches you how to configure and deploy Workflow Launchers that automatically start workflows in response to JCR content changes on AEM as a Cloud Service.

When to Use This Skill

  • A workflow must start automatically when an asset is uploaded to DAM
  • A review workflow should trigger whenever an author modifies content under a specific path
  • You need to replicate or replace an OOTB launcher behavior without editing /libs
  • You want to enable, disable, or restrict a launcher to specific run modes

Core Concept: What Is a Workflow Launcher?

A Workflow Launcher (cq:WorkflowLauncher) is a JCR node that registers a JCR event listener. When a node event occurs at a path matching the launcher's glob pattern, node type, and conditions, the Granite Workflow Engine enqueues a workflow start.

The listener is managed by WorkflowLauncherListener (an OSGi service). It reads all active launcher configurations at startup and re-evaluates them when configurations change.

Architecture at a Glance

JCR Event (NODE_ADDED / NODE_MODIFIED / NODE_REMOVED)
    ↓
WorkflowLauncherListener (OSGi EventListener)
    ↓ matches: glob, nodetype, event type, conditions
Workflow Engine: enqueue WorkflowData
    ↓
Workflow Instance created at /var/workflow/instances/

Launcher Configuration Properties

PropertyTypeDescription
eventTypeLong1 = NODE_ADDED, 2 = NODE_MODIFIED, 4 = NODE_REMOVED, 8 = PROPERTY_ADDED, 16 = PROPERTY_CHANGED, 32 = PROPERTY_REMOVED
globStringGlob pattern matched against the event node path (e.g., /content/dam(/.*)?)
nodetypeStringJCR node type the event node must be (e.g., dam:AssetContent)
conditionsString[]Additional JCR property conditions on the event node
workflowStringRuntime path of the workflow model /var/workflow/models/<id>
enabledBooleanWhether the launcher is active
descriptionStringHuman-readable description
excludeListString[]Workflow model IDs to exclude
runModesString[]Restrict to specific run modes (e.g., author)

Deploying a Custom Launcher on Cloud Service

On Cloud Service, /libs is immutable. Store launcher configurations at:

/conf/global/settings/workflow/launcher/config/<launcher-name>

Maven project location:

ui.content/src/main/content/jcr_root/conf/global/settings/workflow/launcher/config/
    my-custom-launcher/
        .content.xml

Filter in filter.xml:

<filter root="/conf/global/settings/workflow/launcher/config/my-custom-launcher"/>

Node structure (.content.xml):

<?xml version="1.0" encoding="UTF-8"?>
<jcr:root
    xmlns:jcr="http://www.jcp.org/jcr/1.0"
    xmlns:cq="http://www.day.com/jcr/cq/1.0"
    jcr:primaryType="cq:WorkflowLauncher"
    eventType="{Long}1"
    glob="/content/dam(/.*)?/jcr:content/renditions/original"
    nodetype="nt:file"
    workflow="/var/workflow/models/dam/update_asset"
    enabled="{Boolean}true"
    description="Start DAM update workflow on new original rendition upload"
    runModes="[author]"/>

Overlaying an OOTB Launcher

To disable or modify an OOTB launcher (e.g., dam_update_asset_create):

  1. Copy the node from /libs/settings/workflow/launcher/config/dam_update_asset_create to /conf/global/settings/workflow/launcher/config/dam_update_asset_create
  2. Modify the property (e.g., set enabled="{Boolean}false" to disable it)
  3. Deploy as a content package via Cloud Manager

Common OOTB Launchers (Cloud Service)

LauncherTriggerWorkflow
dam_update_asset_createNODE_ADDED on dam:AssetContent under /content/damDAM Update Asset
dam_update_asset_modifyNODE_MODIFIED on asset propertiesDAM Update Asset
dam_xmp_writebackNODE_MODIFIED on renditionDAM Writeback
update_page_version_*Node events on cq:Page jcr:contentPage Version Create

Event Type Combinations

To listen for both ADD and MODIFY, combine event types:

eventType="{Long}3"  <!-- 1 (ADD) + 2 (MODIFY) = 3 -->

Where-Clause Conditions

The conditions array lets you add JCR property conditions on the triggering node:

conditions="[property=cq:type,value=publicationevent,type=STRING]"

Condition format: property=<name>,value=<value>,type=<JCR_TYPE> (type is optional, defaults to STRING).

Disabling a Launcher for a Run Mode

Use runModes to restrict:

runModes="[author]"   <!-- only fires on Author -->
runModes="[publish]"  <!-- only fires on Publish -->

Omit runModes to fire on all run modes.

Debugging Launchers

  • Tools → Workflow → Launchers UI — lists all active launchers, you can enable/disable interactively
  • Check /conf/global/settings/workflow/launcher/config/ in CRXDE Lite for your deployed configs
  • Check OSGi console → WorkflowLauncherListener service properties
  • After deployment, verify via: curl -u admin:admin http://localhost:4502/etc/workflow/launcher.json

References in This Skill

ReferenceWhat It Covers
references/workflow-launchers/launcher-config-reference.mdFull property spec and XML templates
references/workflow-launchers/condition-patterns.mdCommon condition patterns, glob syntax, event type codes
references/workflow-foundation/architecture-overview.mdGranite Workflow Engine overview
references/workflow-foundation/cloud-service-guardrails.mdCloud Service constraints for config paths
references/workflow-foundation/jcr-paths-reference.mdWhere launchers live in the JCR
Gespeicherte Skills