실시간 워크플로 스테이지 및 단계 구성

워크플로를 디자인할 때 스테이지와 단계에서 수행할 논리를 포함할 수 있는 옵션이 제공됩니다.

스테이지
스테이지는 실시간 워크플로 논리의 가독성을 높이고 실시간 워크플로 논리를 설명하는 데 사용됩니다. 워크플로의 논리 또는 동작에 영향을 주지는 않습니다. 프로세스에 스테이지가 있으면 프로세스 내 모든 단계는 스테이지에 포함되어 있어야 합니다.

단계
단계는 워크플로 내에서 비즈니스 논리의 단위입니다. 단계에는 조건, 작업, 다른 단계 등의 요소나 이러한 요소의 조합이 포함될 수 있습니다.

실시간 워크플로 프로세스에서 수행할 수 있는 작업

실시간 워크플로 프로세스는 다음 표에 나열된 작업을 수행할 수 있습니다.

동작 설명
행 만들기 테이블에 대한 새 행을 만들고 선택한 속성 값을 할당합니다.
행 업데이트 실시간 워크플로가 실행 중인 행, N:1 관계로 해당 행에 연결된 행 또는 이전 단계에서 만든 행을 업데이트할 수 있습니다.
행 할당 실시간 워크플로가 실행 중인 행, N:1 관계로 해당 행에 연결된 행 또는 이전 단계에서 만든 행을 할당할 수 있습니다.
이메일 보내기 이메일을 보냅니다. 새 전자 메일 메시지를 만들도록 선택하거나, 실시간 워크플로가 실행되는 행의 테이블, 테이블과 N:1 관계를 가진 테이블 또는 이전 단계에서 만든 행의 테이블에 대해 구성된 이메일 템플릿을 사용하도록 선택할 수 있습니다.
하위 워크플로 시작 하위 워크플로로 구성된 실시간 워크플로 프로세스를 시작합니다.
상태 변경 프로세스가 실행 중인 행, N:1 관계로 해당 행에 연결된 행 또는 이전 단계에서 만든 행의 상태를 변경할 수 있습니다.
워크플로 중지 현재 워크플로를 중지합니다. 상태를 성공 또는 취소됨으로 설정하고 상태 메시지를 지정할 수 있습니다.

실시간 워크플로가 이벤트에 대해 구성되는 경우 취소됨 상태로 실시간 워크플로를 중지하면 이벤트 작업이 완료되지 못하도록 합니다. 자세한 내용은 실시간 워크플로 사용을 참조하세요.
사용자 지정 단계 개발자는 작업을 정의하는 사용자 지정 실시간 워크플로 단계를 만들 수 있습니다. 기본적으로 사용할 수 있는 사용자 지정 단계가 없습니다.

행 값 설정

행을 만들 때 해당 행의 값을 설정할 수 있습니다. 행을 업데이트할 때 값을 설정, 추가, 증가, 감소, 곱하기 또는 지울 수 있습니다.

속성 설정을 선택하면 테이블의 기본 양식을 보여주는 대화 상자가 열립니다.

대화 상자 하단에서 양식에 없는 추가 열 목록을 볼 수 있습니다.

모든 열에 정적 값을 설정할 수 있으며 워크플로에서 설정됩니다.

대화 상자 오른쪽에 있는 양식 도우미는 현재 행의 맥락에서 동적 값을 설정하거나 추가할 수 있는 기능을 제공합니다. 여기에는 테이블에 대해 N:1(다대일) 관계에서 액세스할 수 있는 관련 행의 값이 포함됩니다.

양식 도우미에서 사용할 수 있는 옵션은 양식에서 선택한 열에 따라 다릅니다. 동적 값을 설정하면 동적 데이터가 포함된 위치를 표시하는 '동적 필드'라는 노란색 자리 표시자가 표시됩니다. 값을 제거하려면 동적 필드를 선택하고 삭제하면 됩니다. 텍스트 열의 경우 정적 데이터와 동적 데이터의 조합을 사용할 수 있습니다.

동적 값을 사용하면 열 또는 관련 테이블에 설정할 값이 있는지 확실히 알 수 없습니다. 실제로 값을 설정하기 위해 여러 열을 설정하고 녹색 화살표를 사용하여 순서대로 정렬할 수 있습니다. 첫 번째 열에 데이터가 없으면 두 번째 열 등을 시도합니다. 어떤 열에도 데이터가 없을 경우 사용할 기본값을 지정할 수 있습니다.

실시간 워크플로 작업에 대한 조건 설정

적용되는 작업은 종종 조건에 따라 달라집니다. 실시간 워크플로 프로세스는 조건을 설정하는 여러 가지 방법을 제공하고 분기 논리를 만들어 원하는 결과를 가져옵니다. 실시간 워크플로 프로세스가 실행 중인 행, N:1 관계로 해당 행과 연결된 행 또는 프로세스 자체 내의 값을 확인할 수 있습니다.

조건 유형 설명
확인 조건 "if <condition> then" 진술은 논리적입니다.

실시간 워크플로가 실행되는 행, N:1 관계로 해당 행에 연결된 행 또는 이전 단계에서 만든 행의 현재 값을 확인할 수 있습니다. 이러한 값에 따라 조건이 참일 때 추가 단계를 정의할 수 있습니다.

"if <condition> then" 진술에서 다음 연산자를 사용할 수 있습니다: 같음, 같지 않음, 데이터 포함, 데이터 포함하지 않음, 이하이상.

참고: UnderNot Under은 계층적 연산자입니다. 이러한 연산자는 정의된 계층적 관계가 있는 테이블에만 사용할 수 있습니다. 정의된 계층적 관계가 없는 테이블에서 이러한 연산자를 사용하려고 하면 다음과 같은 오류 메시지가 나타납니다. "정의된 계층적 관계가 없는 테이블에 계층적 연산자를 사용하고 있습니다. 테이블 계층(관계를 계층적으로 표시)을 만들거나 다른 연산자를 사용합니다."

계층적 관계에 대한 자세한 내용은 계층적으로 관련된 데이터 정의 및 쿼리를 참고하세요. 테이블 다음에 나오는 스크린샷은 이하이상 계층적 연산자를 사용하는 실시간 워크플로 프로세스의 정의를 보여주는 예입니다.
조건부 분기 "else-if-then" 논리 문, 편집기는 “Otherwise, if <condition> then:” 텍스트를 사용합니다.

이전에 정의한 확인 조건을 선택하고 확인 조건이 false를 반환하면 추가 단계를 정의하는 조건부 분기를 추가할 수 있습니다.
기본 작업 "else" 진술은 논리적입니다. 편집기는 "Otherwise:"라는 텍스트를 사용합니다.

이전에 정의한 확인 조건, 조건부 분기, 대기 조건 또는 병렬 대기 분기를 선택하고 기본 작업을 사용하여 조건 또는 분기 요소에 정의된 조건과 일치하지 않는 모든 서비스 케이스의 단계를 정의할 수 있습니다.
대기 조건 실시간 워크플로는 대기 조건을 사용할 수 없습니다. 그러나 대기 조건은 백그라운드 워크플로와 함께 사용할 수 있습니다. 추가 정보: 백그라운드 워크플로 작업에 대한 조건 설정
병렬 대기 분기 초기 조건이 맞을 경우에만 수행되는 일련의 해당 추가 단계로 실시간 워크플로에 대한 대체 대기 조건을 정의합니다. 병렬 대기 분기를 사용하여 실시간 워크플로 논리에 시간 제한을 만들 수 있습니다. 이렇게 하면 대기 조건에 정의된 기준에 부합할 때까지 실시간 워크플로가 무한히 대기하는 문제가 발생하지 않습니다.
사용자 지정 단계 개발자는 조건을 정의하는 사용자 지정 실시간 워크플로 단계를 만들 수 있습니다. 기본적으로 사용할 수 있는 사용자 지정 단계는 없습니다.

다음 스크린샷에는 이하이상 계층적 연산자를 사용하는 워크플로 프로세스 정의에 대한 예가 들어 있습니다. 이 예에서 두 그룹의 거래처에 다른 할인을 적용합니다. 단계 추가에서 확인 조건을 선택하여 이하 또는 이상 연산자가 포함된 if-then 조건을 지정합니다. 첫 번째 if-then 조건은 Alpine Ski House 거래처 이하인 모든 거래처에 적용됩니다. 이러한 거래처는 구매한 상품 및 서비스에 대해 10% 할인 받습니다. 두 번째 if-then 조건은 Alpine Ski House 거래처 이상인 모든 거래처에 적용되며 5% 할인 받습니다. 그런 후 행 업데이트를 선택하여 조건에 따라 수행되는 작업을 정의했습니다.

Under/Not Under 연산자를 사용하여 워크플로 프로세스.

상태 변경 전후 실시간 워크플로 시작

실시간 워크플로에 자동 프로세스에 대한 옵션을 구성할 경우 상태 변경 이벤트의 시작 시기 옵션을 사용하면 상태 변경 시기로 이후 또는 이전을 선택할 수 있습니다. 기본 옵션은 이후입니다.

이전을 선택하면 상태 변경 데이터가 저장되기 전에 실시간 워크플로의 논리가 적용됩니다. 작업 이후 다른 논리가 적용되기 전에 값을 변경할 수 있고 이후 논리가 수행되지 않도록 합니다. 예를 들어 다른 시스템에서 작업을 시작할 수 있는 플러그 인 또는 사용자 지정 실시간 워크플로 동작에 추가 논리가 있을 수 있습니다. 이후 프로세스를 중지하면 외부 시스템에 영향을 받는 경우를 방지할 수 있습니다. 이 이벤트 전에 실시간 워크플로를 적용하면 작업이 취소될 때 데이터가 저장된 다른 실시간 워크플로 또는 플러그 인 작업을 "롤백"하지 않아도 됩니다.

동작 시작 시기 부가 설명
행이 생성됨 이후 이후만 지원됩니다. 행에는 내부 MainOperation 단계가 끝날 때까지 고유 식별자가 없으므로 행이 생성되기 전에 발생할 수 없습니다.
행 상태 변경 이전
이후
상태 변경 전후에 실시간 워크플로 논리를 적용하는 기능을 제공하는 업데이트 작업에 해당합니다. 이전은 사전 작업 스테이지에 해당합니다. 이후는 사후 작업 스테이지에 해당합니다.
행이 할당됨 이전
이후
상태 변경 전후에 실시간 워크플로 논리를 적용하는 기능을 제공하는 업데이트 작업에 해당합니다. 이전은 사전 작업 스테이지에 해당합니다. 이후는 사후 작업 스테이지에 해당합니다.
행 열 변경 이전
이후
상태 변경 전후에 실시간 워크플로 논리를 적용하는 기능을 제공하는 업데이트 작업에 해당합니다. 이전은 사전 작업 스테이지에 해당합니다. 이후는 사후 작업 스테이지에 해당합니다.
행 삭제됨 이전 이전만 지원됩니다. 행 삭제는 PreOperation 단계에 해당합니다. MainOperation이 발생한 후 행이 삭제되고 더 이상 발생할 수있는 상태 변경이 없습니다.

사전 작업, 기본 작업 및 사후 작업 단계에 대한 자세한 내용은 이벤트 실행 파이프라인을 참조하세요.

실시간 워크플로 사용

실시간 워크플로를 구성할 수 있지만 주의해서 사용해야 합니다. 백그라운드 워크플로를 일반적으로 권장하는데, 이는 서버의 리소스를 사용할 수 있을 때 시스템에 이를 적용하도록 허용하기 때문입니다. 이는 서버가 수행해야 하는 작업을 원활하게 하고 시스템을 사용하는 모든 사용자들이 최상의 성능을 유지하도록 돕습니다. 단점은 백그라운드 워크플로에서 정의한 작업은 즉시 처리되지 않는 다는 것입니다. 언제 적용될지 예측할 수 없지만 일반적으로 몇 분 정도 걸립니다. 대부분의 비즈니스 프로세스 자동화의 경우, 시스템을 사용하는 사용자는 프로세스가 실행 중이라는 것을 의식적으로 인식할 필요가 없기 때문에 괜찮습니다.

비즈니스 프로세스에서 프로세스 결과가 바로 필요하거나 작업을 취소할 수 있는 기능이 필요한 경우에는 실시간 워크플로를 사용하십시오. 예를 들어, 행을 처음 저장할 때 특정 기본값을 설정하거나 일부 행이 삭제되지 않도록 할 수 있습니다.

실시간 및 백그라운드 워크플로 변환

도구 모음에서 백그라운드 워크플로로 변환을 선택하여 실시간 워크플로를 백그라운드 워크플로로 변경할 수 있습니다.

도구 모음에서 실시간 워크플로로 변환을 선택하여 백그라운드 워크플로를 실시간 워크플로로 변경할 수 있습니다. 백그라운드 워크플로에서 대기 조건을 사용하면 백그라운드 워크플로가 무효화되고 대기 조건을 제거할 때까지 활성화할 수 없습니다.

상태 변경 전후 실시간 워크플로 시작

실시간 워크플로에 자동 프로세스에 대한 옵션을 구성할 경우 상태 변경 이벤트의 시작 시기 옵션을 사용하면 상태 변경 시기로 이후 또는 이전을 선택할 수 있습니다. 기본 옵션은 이후입니다.

이전을 선택하면 상태 변경 데이터가 저장되기 전에 실시간 워크플로의 논리가 적용됩니다. 이를 통해 작업 후 다른 논리가 적용되기 전에 값을 확인하여 추가적인 논리가 수행되지 않도록 할 수 있습니다. 예를 들어 플러그 인 또는 사용자 지정 워크플로 작업에 다른 시스템에서 작업을 시작하는 추가 논리가 있을 수 있습니다. 이후 프로세스를 중지하면 외부 시스템에 영향을 받는 경우를 방지할 수 있습니다. 이 이벤트 전에 실시간 워크플로를 적용하면 작업이 취소될 때 데이터가 저장된 다른 실시간 워크플로 또는 플러그 인 작업을 "롤백"할 필요가 없다는 것을 의미합니다.

실시간 워크플로에 워크플로 중지 동작 사용

실시간 워크플로에서 워크플로 중지 작업을 적용하면 성공 또는 취소됨 중 하나로 상태 조건을 지정하는 옵션이 있습니다. 상태를 취소됨으로 설정하면 작업을 막습니다. 정지 동작 상태 메시지의 텍스트가 포함된 머리글이 비즈니스 프로세스 오류인 오류 메시지가 표시됩니다.

다음 단계

실시간 워크플로 프로세스 모니터링 및 관리
실시간 워크플로 프로세스 모범 사례

참고

귀사의 설명서 언어 기본 설정에 대해 말씀해 주시겠습니까? 간단한 설문 조사에 응해주세요. (이 설문 조사는 영어로 되어 있습니다.)

이 설문 조사는 약 7분 정도 걸립니다. 개인 데이터는 수집되지 않습니다(개인정보처리방침).