워크플로 인스턴스 관리 administering-workflow-instances

워크플로 콘솔은 워크플로 인스턴스가 예상대로 실행되도록 관리하기 위한 몇 가지 도구를 제공합니다.

다양한 콘솔을 사용하여 워크플로를 관리할 수 있습니다. 전역 탐색을 사용하여 도구 창을 연 다음 워크플로 ​를 선택합니다.

  • 모델: 워크플로 정의 관리
  • 인스턴스: 실행 중인 워크플로 인스턴스 조회 및 관리
  • 시작 관리자: 워크플로 실행 방법 관리
  • 보관: 정상적으로 완료된 워크플로 내역 조회
  • 실패: 오류와 함께 완료된 워크플로 내역 조회
  • 자동 할당: 템플릿에 자동 할당 워크플로 구성

워크플로 인스턴스 상태 모니터링 monitoring-the-status-of-workflow-instances

  1. 탐색을 사용하여 도구 ​를 선택한 다음 워크플로 ​를 선택합니다.

  2. 인스턴스 ​를 선택하여 현재 진행되는 실행 중인 워크플로 인스턴스 목록을 표시합니다.

  3. 오른쪽 상단 레일에 있는 워크플로 인스턴스에 실행 중인 워크플로, 상태세부 정보 ​가 표시됩니다.

  4. 실행 중인 워크플로 ​는 실행 중인 워크플로의 수와 상태를 보여 줍니다. 예를 들어 주어진 이미지에 실행 중인 워크플로 ​의 수와 AEM 인스턴스의 상태 ​가 표시됩니다.

    • 상태: 정상

      상태-정상

    • 상태: 비정상

      상태-비정상

  5. 워크플로 인스턴스의 상태 세부 정보 ​를 알아보려면 세부 정보 ​를 클릭하여 실행 중인 워크플로 인스턴스 ​의 수, 완료된 워크플로 인스턴스, 중단된 워크플로 인스턴스, 실패한 워크플로 인스턴스 등을 표시합니다. 예를 들어 다음은 상태 세부 정보

    • (상태 세부 정보: 정상

      상태-세부 정보-정상

    • 상태 세부 정보: 비정상)를 보여 주는 해당 이미지입니다.

      상태-세부 정보-비정상

    note note
    NOTE
    정상적인 워크플로 인스턴스를 유지 관리하려면 정기적인 워크플로 인스턴스 제거의 모범 사례 또는 워크플로 모범 사례를 따라야 합니다.

워크플로 인스턴스 검색 search-workflow-instances

  1. 탐색을 사용하여 도구 ​를 선택한 다음 워크플로 ​를 선택합니다.

  2. 인스턴스 ​를 선택하여 현재 진행 중인 워크플로 인스턴스 목록을 표시합니다. 상단 레일의 왼쪽 모퉁이에서 필터 ​를 선택합니다. 또는 Alt+1을 사용할 수 있습니다. 다음과 같은 대화 상자가 표시됩니다.

    wf-99-1

  3. 필터 대화 상자에서 워크플로 검색 기준을 선택합니다. 이러한 입력을 기반으로 다음을 검색할 수 있습니다.

    • 페이로드 경로: 특정 경로 선택
    • 워크플로 모델: 워크플로 모델 선택
    • 할당자: 워크플로 할당자 선택
    • 유형: 작업, 워크플로 항목 또는 워크플로 실패
    • 작업 상태: 활성, 완료됨 또는 종료됨
    • 사용자 위치: 소유자 및 할당자, 소유자만 해당, 할당자만 해당
    • 시작 일자: 지정된 날짜 이전 또는 이후의 시작일
    • 종료 일자: 지정된 날짜 이전 또는 이후의 종료일
    • 만기 일자: 지정된 날짜 이전 또는 이후의 만기일
    • 업데이트 일자: 지정된 날짜 이전 또는 이후의 업데이트일

워크플로 인스턴스 일시 중단, 재시작 및 종료 suspending-resuming-and-terminating-a-workflow-instance

  1. 탐색을 사용하여 도구 ​를 선택한 다음 워크플로 ​를 선택합니다.

  2. 인스턴스 ​를 선택하여 현재 진행 중인 워크플로 인스턴스 목록을 표시합니다.

    wf-96-1

  3. 특정 항목을 선택한 다음 종료, 일시 중단 또는 재시작 ​을 적절히 사용합니다. 확인 및/또는 세부 정보가 필요합니다.

    wf-97-1

    note note
    NOTE
    워크플로를 종료하거나 중단하려면 참가자 단계와 같이 사용자 개입을 기다리는 상태여야 합니다. 현재 실행 중인 작업(실행 중인 활성 스레드)을 중단하려고 하면 예상한 결과가 나오지 않을 수 있습니다.

보관된 워크플로 보기 viewing-archived-workflows

  1. 탐색을 사용하여 도구 ​를 선택한 다음 워크플로 ​를 선택합니다.

  2. 보관 ​을 선택하여 정상적으로 완료된 워크플로 인스턴스 목록을 표시합니다.

    보관됨-인스턴스

    note note
    NOTE
    중단 상태는 다음과 같은 사용자 작업의 결과로 발생하므로 성공적인 종료로 간주됩니다.
    • 종료 작업 사용
    • 워크플로의 대상인 페이지가 (강제로) 삭제되면 워크플로가 종료됩니다.
  3. 특정 항목을 선택한 다음 내역 열기 ​를 선택하여 세부 정보를 표시합니다.

    wf-99

워크플로 인스턴스 실패 해결 fixing-workflow-instance-failures

워크플로가 실패하면 AEM은 실패 콘솔을 제공하므로 원래 원인을 처리하고 나면 이를 조사하고 적절한 조치를 취할 수 있습니다.

  • 실패 세부 사항
    창을 열어 다음을 표시합니다. 실패 메시지, 단계 및 ​ 실패 스택**.

  • 내역 열기 - 워크플로 내역의 세부 정보를 표시합니다.

  • 단계 다시 시도 - 스크립트 단계 구성 요소 인스턴스를 다시 실행합니다. 원래 오류의 원인을 해결한 다음 단계 다시 시도 명령을 사용합니다. 예를 들어 프로세스 단계에서 실행되는 스크립트에서 버그를 수정하고 단계를 다시 시도할 수 있습니다.

  • 종료 - 오류로 인해 워크플로에 해결할 수 없는 상황이 발생한 경우 워크플로를 종료합니다. 예를 들어 워크플로는 워크플로 인스턴스에 대해 더 이상 유효하지 않은 저장소의 정보와 같은 환경 조건에 의존할 수 있습니다.

  • 종료 및 다시 시도 - 종료 ​와 유사합니다. 단, 이 옵션은 원래 페이로드, 제목, 설명을 사용하여 새 워크플로 인스턴스를 시작합니다.

실패를 조사한 다음 그 직후에 워크플로를 다시 시작하거나 종료하려면 다음 단계를 사용하십시오.

  1. 탐색을 사용하여 도구 ​를 선택한 다음 워크플로 ​를 선택합니다.

  2. 실패 ​를 선택하여 정상적으로 완료되지 않은 워크플로 인스턴스 목록을 표시합니다.

  3. 특정 항목을 선택한 다음 적절한 작업을 선택합니다.

워크플로-실패

정기적인 워크플로 인스턴스 제거 regular-purging-of-workflow-instances

워크플로 인스턴스 수를 최소화하면 워크플로 엔진의 성능이 향상되므로 완료되었거나 실행 중인 워크플로 인스턴스를 저장소에서 정기적으로 제거할 수 있습니다.

수명 및 상태에 따라 워크플로 인스턴스를 제거하도록 Adobe Granite 워크플로 제거 구성 ​을 구성합니다. 또한 모든 모델 또는 특정 모델의 워크플로 인스턴스를 제거할 수 있습니다.

여러 서비스 구성을 생성하여 서로 다른 기준을 충족하는 워크플로 인스턴스를 제거할 수도 있습니다. 예를 들어 특정 워크플로 모델의 인스턴스가 예상 시간보다 오래 실행될 때 해당 인스턴스를 제거하는 구성을 생성할 수 있습니다. 저장소 크기를 최소화하기 위해 일부 날이 지난 후 완료된 모든 워크플로를 제거하는 다른 구성을 생성할 수도 있습니다.

서비스를 구성하려면 OSGi 구성 파일을 참고하여 OSGi 구성 파일을 구성할 수 있습니다. 다음 표에서는 두 가지 방법에 필요한 속성을 설명합니다.

NOTE
저장소에 구성을 추가하는 경우 서비스 PID는 다음과 같습니다.
com.adobe.granite.workflow.purge.Scheduler
이 서비스는 공장 서비스이므로 sling:OsgiConfig 노드의 이름에는 다음과 같은 식별자 접미사가 필요합니다.
com.adobe.granite.workflow.purge.Scheduler-myidentifier
속성 이름 (웹 콘솔)
OSGi 속성 이름
설명
작업 이름
scheduledpurge.name
예약된 제거의 설명적인 이름입니다.
워크플로 상태
scheduledpurge.workflowStatus

제거할 워크플로 인스턴스의 상태입니다. 다음은 유효한 값입니다.

  • 완료됨: 완료된 워크플로 인스턴스가 제거됩니다.
  • 실행 중: 실행 중인 워크플로 인스턴스가 제거됩니다.
제거 모델
scheduledpurge.modelIds

제거할 워크플로 모델의 ID입니다. 이 ID는 모델 노드로의 경로입니다(예:
/conf/global/settings/workflow/models/dam/update_asset/jcr:content/model
). 값을 지정하지 않으면 모든 워크플로 모델의 인스턴스가 제거됩니다.

여러 모델을 지정하려면 웹 콘솔에서 “+” 버튼을 클릭하십시오.

워크플로 수명
scheduledpurge.daysold
제거할 워크플로 인스턴스의 수명(일)입니다.

받은 편지함의 최대 크기 설정 setting-the-maximum-size-of-the-inbox

Adobe Granite 워크플로 서비스 ​를 구성하여 받은 편지함의 최대 크기를 설정할 수 있습니다. 저장소에 OSGi 구성 추가를 참조하십시오. 다음 표는 구성할 속성을 설명합니다.

NOTE
저장소에 구성을 추가하는 경우 서비스 PID는 다음과 같습니다.
com.adobe.granite.workflow.core.WorkflowSessionFactory.
속성 이름 (웹 콘솔)
OSGi 속성 이름
최대 받은 편지함 쿼리 크기
granite.workflow.inboxQuerySize

고객 소유 데이터 스토어에 워크플로 변수 사용 using-workflow-variables-customer-datastore

워크플로에서 처리된 데이터는 Adobe 제공 스토리지(JCR)에 저장됩니다. 이 데이터는 기본적으로 중요할 수 있습니다. 모든 사용자 정의 메타데이터/데이터를 Adobe 제공 스토리지가 아닌 자체 관리 스토리지에 저장할 수 있습니다. 이 섹션에서는 이러한 변수를 외부 스토리지로 설정하는 방법에 대해 설명합니다.

메타데이터의 외부 스토리지를 사용하도록 모델 설정 set-model-for-external-storage

워크플로 모델 수준에서는 모델(및 런타임 인스턴스)에 메타데이터의 외부 스토리지가 있음을 나타내는 플래그가 제공됩니다. 워크플로 변수는 외부 스토리지로 표시된 모델의 워크플로 인스턴스에 대해 JCR에서 유지되지 않습니다.

userMetadataPersistenceEnabled 속성은 워크플로 모델의 jcr:content 노드 ​에 저장됩니다. 이 플래그는 워크플로 메타데이터에서 cq:userMetaDataCustomPersistenceEnabled ​로 유지됩니다.

아래 일러스트레이션에서는 워크플로에 플래그를 설정하는 방법을 보여 줍니다.

workflow-externalize-config

외부 스토리지의 메타데이터를 위한 API apis-for-metadata-external-storage

변수를 외부에 저장하려면 워크플로에서 제공하는 API를 구현해야 합니다.

UserMetaDataPersistenceContext

다음 샘플은 API 사용 방법을 보여 줍니다.

@ProviderType
public interface UserMetaDataPersistenceContext {

    /**
     * Gets the workflow for persistence
     * @return workflow
     */
    Workflow getWorkflow();

    /**
     * Gets the workflow id for persistence
     * @return workflowId
     */
    String getWorkflowId();

    /**
     * Gets the user metadata persistence id
     * @return userDataId
     */
    String getUserDataId();
}

UserMetaDataPersistenceProvider

/**
 * This provider can be implemented to store the user defined workflow-data metadata in a custom storage location
 */
@ConsumerType
public interface UserMetaDataPersistenceProvider {

   /**
    * Retrieves the metadata using a unique identifier
    * @param userMetaDataPersistenceContext
    * @param metaDataMap of user defined workflow data metaData
    * @throws WorkflowException
    */
   void get(UserMetaDataPersistenceContext userMetaDataPersistenceContext, MetaDataMap metaDataMap) throws WorkflowException;

   /**
    * Stores the given metadata to the custom storage location
    * @param userMetaDataPersistenceContext
    * @param metaDataMap metadata map
    * @return the unique identifier that can be used to retrieve metadata. If null is returned, then workflowId is used.
    * @throws WorkflowException
    */
   String put(UserMetaDataPersistenceContext userMetaDataPersistenceContext, MetaDataMap metaDataMap) throws WorkflowException;

}
recommendation-more-help
fbcff2a9-b6fe-4574-b04a-21e75df764ab