워크플로 스테이지 및 단계 구성Configure workflow stages and steps

워크플로를 디자인할 때 수행할 논리를 스테이지 및 단계에 포함할 수 있습니다.When you design workflows you have the option to contain the logic you want to perform in stages and steps.

스테이지Stages
스테이지는 워크플로 논리의 가독성을 높이고 워크플로 논리를 설명합니다.Stages make the workflow logic easier to read, and explain the workflow logic. 워크플로의 논리 또는 동작에 영향을 주지는 않습니다.However, stages do not affect the logic or behavior of workflows. 프로세스에 스테이지가 있으면 프로세스 내 모든 단계는 스테이지에 포함되어 있어야 합니다.If a process has stages, all the steps within the process must be contained with a stage.

단계Steps
단계는 워크플로 내에서 비즈니스 논리의 단위입니다.Steps are a unit of business logic within a workflow. 단계에는 조건, 작업, 다른 단계 등의 요소나 이러한 요소의 조합이 포함될 수 있습니다.Steps can include conditions, actions, other steps, or a combination of these elements.

워크플로 프로세스에서 수행할 수 있는 작업Actions that workflow processes can perform

워크플로 프로세스는 다음 표에 나열된 작업을 수행할 수 있습니다.Workflow processes can perform the actions listed in the following table.

작업Action 설명Description
레코드 만들기Create Record 선택한 엔터티에 대한 새 레코드를 만들고 선택한 값을 특성에 할당합니다.Creates a new record for an entity and assigns values you choose to attributes.
레코드 업데이트Update Record 워크플로가 실행되는 레코드, N:1 관계로 해당 레코드에 연결된 레코드 또는 이전 단계에서 만든 레코드를 업데이트할 수 있습니다.You can update the record that the workflow is running on, any of the records linked to that record in an N:1 relationships, or any records created by earlier steps.
레코드 할당Assign Record 워크플로가 실행되는 레코드, N:1 관계로 해당 레코드에 연결된 레코드 또는 이전 단계에서 만든 레코드를 할당할 수 있습니다.You can assign the record that the workflow is running on, any of the records linked to that record with an N:1 relationship, or any records created by earlier steps.
전자 메일 보내기Send Email 전자 메일을 보냅니다.Sends an email. 새 전자 메일 메시지를 만들도록 선택하거나, 워크플로가 실행되는 레코드의 엔터티, 엔터티와 N:1 관계를 가진 엔터티 또는 이전 단계에서 만든 레코드의 엔터티에 대해 구성된 전자 메일 템플릿을 사용하도록 선택할 수 있습니다.You can choose to create a new email message or use an email template configured for the entity of the record that the workflow is running on or any entities that have an N:1 relationship with the entity, or the entity for any records created by earlier steps.
하위 워크플로 시작Start Child Workflow 하위 워크플로로 구성된 워크플로 프로세스를 시작합니다.Starts a workflow process that has been configured as a child workflow.
상태 변경Change Status 프로세스가 실행되는 레코드, N:1 관계로 해당 레코드에 연결된 레코드 또는 이전 단계에서 만든 레코드의 상태를 변경할 수 있습니다.Changes the status of the record that the process is running on, any of the records linked to that record with an N:1 relationship, or any records created by earlier steps.
워크플로 중지Stop Workflow 현재 워크플로를 중지합니다.Stops the current workflow. 상태를 성공 또는 취소됨으로 설정하고 상태 메시지를 지정할 수 있습니다.You can set a status of either Succeeded or Cancelled and specify a status message.

실시간 워크플로가 이벤트에 대해 구성되는 경우 취소됨 상태로 워크플로를 중지하면 이벤트 작업이 완료되지 못하도록 합니다.When real-time workflows are configured for an event, stopping a workflow with a status of cancelled will prevent the event action from completing. 자세한 내용은 실시간 워크플로 사용을 참조하십시오.See Using real-time workflows for more information.
사용자 지정 단계Custom Step 개발자는 작업을 정의하는 사용자 지정 워크플로 단계를 만들 수 있습니다.Developers can create custom workflow steps that define actions. 기본적으로 사용할 수 있는 사용자 지정 단계는 없습니다.There are no custom steps available by default.

레코드 값 설정Setting record values

레코드를 만들 때 해당 레코드의 값을 설정할 수 있습니다.When you create a record you can set values for the record. 설정할 수 있는 레코드를 업데이트할 때 값을 추가, 증가, 감소, 곱하기 또는 지웁니다.When you update a record you can set, append, increment, decrement, multiply, or clear values.

속성 설정을 선택하면 엔터티에 대한 기본 양식을 보여 주는 대화 상자가 열립니다.When you select Set Properties, a dialog opens showing you the default form for the entity.

대화 상자 맨 아래에서 양식에 없는 추가 필드 목록을 볼 수 있습니다.At the bottom of the dialog you can see a list of additional fields not present in the form.

모든 필드에 정적 값을 설정할 수 있으며 워크플로에서 설정됩니다.For any field, you can set a static value and that will be set by the workflow.

대화 상자의 오른쪽에 있는 양식 도우미는 현재 레코드의 컨텍스트에서 동적 값을 설정하거나 추가할 수 있는 기능을 제공합니다.On the right side of the dialog the Form Assistant gives you the ability to set or append dynamic values from the context of the current record. 여기에는 엔터티에 대해 N:1(다대일) 관계에서 액세스할 수 있는 관련 데이터의 값이 포함됩니다.This includes values from related records that can be accessed from the N:1 (many-to-one) relationships for the entity.

양식 도우미에서 사용할 수 있는 옵션은 양식에서 선택한 필드에 따라 다릅니다.The options available in the Form Assistant depend on the field you have selected in the form. 동적 값을 설정하면 동적 데이터가 포함된 위치를 표시하는 '동적 필드'라는 노란색 자리 표시자가 표시됩니다.When you set a dynamic value, you will see a yellow placeholder known as a ‘slug’ that shows where the dynamic data will be included. 값을 제거하려면 동적 필드를 선택하고 삭제하면 됩니다.If you want to remove the value, just select the slug and delete it. 텍스트 필드의 경우 정적 데이터와 동적 데이터의 조합을 사용할 수 있습니다.For text fields, you can use a combination of static and dynamic data.

동적 값을 사용하면 필드 또는 관련 엔터티에 설정하려는 값이 있는지 확실하지 않습니다.With dynamic values you don’t know for certain that a field or related entity has the value you want to set. 실제로 시도할 여러 필드를 설정하고 값을 설정한 후 녹색 화살표를 사용하여 순서대로 정렬할 수 있습니다.You can actually set a number of fields to try and set the value and sort them in order using the green arrows. 첫 번째 필드에 데이터가 없으면 두 번째 필드를 시도하고 계속 시도합니다.If the first field doesn’t have data, the second field will be tried and so on. 어떤 필드에도 데이터가 없을 경우 사용할 기본값을 지정할 수 있습니다.If none of the fields have data, you can specify a default value to be used.

워크플로 작업에 대한 조건 설정Setting conditions for workflow actions

적용되는 작업은 종종 조건에 따라 달라집니다.The actions that you will apply often depend on conditions. 워크플로 프로세스는 조건을 설정하는 여러 가지 방법을 제공하고 분기 논리를 만들어 원하는 결과를 가져옵니다.Workflow processes provide several ways to set conditions and create branching logic to get the results you want. 워크플로 프로세스가 실행되는 레코드, 해당 레코드에 N:1 관계로 연결된 레코드 또는 프로세스 자체 내의 값을 확인할 수 있습니다.You can check values of the record that the workflow process is running against, any of the records linked to that record with an N:1 relationship, or values within the process itself

조건 유형Condition Type 설명Description
확인 조건Check Condition "if-<condition> then" 논리 문입니다.A logical "if-<condition> then" statement.

워크플로가 실행되는 레코드, N:1 관계로 해당 레코드에 연결된 레코드 또는 이전 단계에서 만든 레코드의 현재 값을 확인할 수 있습니다.You can check the current values for the record that the workflow is running on, any of the records linked to that record in an N:1 relationships, or any records created by earlier steps. 이러한 값에 따라 조건이 true일 때 추가 단계를 정의할 수 있습니다.Based on these values you can define additional steps when the condition is true.

"if-<condition> then" 문에서 Equals, Does Not Equal, Contains Data, Does Not Contain Data, UnderNot Under 연산자를 사용할 수 있습니다.In the "if-<condition> then" statement, you can use the following operators: Equals, Does Not Equal, Contains Data, Does Not Contain Data, Under and Not Under. 참고: UnderNot Under은 계층적 연산자입니다.Note: The Under and Not Under are hierarchical operators. 이러한 연산자는 정의된 계층적 관계가 있는 엔터티에만 사용할 수 있습니다.They can only be used on the entities that have a hierarchical relationship defined. 정의된 계층적 관계가 없는 엔터티에서 이러한 연산자를 사용하려고 하면 다음과 같은 오류 메시지가 나타납니다. "’정의된 계층적 관계가 없는 엔터티에 계층적 연산자를 사용하고 있습니다.If you’re trying to use these operators on the entities that don’t have the hierarchical relationship defined, you’ll see the error message: “You’re using a hierarchical operator on an entity that doesn’t have a hierarchical relationship defined. 엔터티를 계층 구조로 설정하거나(관계를 계층 구조로 표시) 다른 연산자를 사용합니다.” 계층 구조 관계에 대한 자세한 내용은 계층 구조 관련 데이터 정의 및 쿼리를 참조하세요.Either make the entity hierarchical (by marking a relationship as hierarchical) or use a different operator.”For more information about hierarchical relationships, see Define and query hierarchically related data. 표 다음에 나오는 스크린샷은 이하이상 계층적 연산자를 사용하는 워크플로 프로세스의 정의를 보여 주는 예입니다.A screenshot that follows the table is an example of the definition of the workflow process that uses the Under and Not Under hierarchical operators.
조건부 분기Conditional Branch "else-if-then" 논리 문, 편집기는 “Otherwise, if <condition> then:” 텍스트를 사용합니다.A logical "else-if-then" statement, the editor uses the text “Otherwise, if <condition> then:”

이전에 정의한 확인 조건을 선택하고 확인 조건이 false를 반환하면 추가 단계를 정의하는 조건부 분기를 추가할 수 있습니다.Select a check condition you have previously defined and you can add a conditional branch to define additional steps when the check condition returns false.
기본 작업Default Action 논리적 "else" 문입니다.A logical "else" statement. 편집기는 "Otherwise:"텍스트를 사용합니다.the editor uses the text “Otherwise:”

이전에 정의한 확인 조건, 조건부 분기, 대기 조건 또는 병렬 대기 분기를 선택하고 기본 작업을 사용하여 조건 또는 분기 요소에 정의된 조건과 일치하지 않는 모든 서비스 케이스의 단계를 정의할 수 있습니다.Select a check condition, conditional branch, wait condition, or parallel wait branch that you have previously defined and you can use a default action to define steps for all cases that do not match the criteria defined in condition or branch elements.
대기 조건Wait Condition 해당 조건에 정의된 기준에 부합할 때까지 백그라운드 워크플로를 일시 중지할 수 있도록 합니다.Enables a background workflow to pause itself until the criteria defined by the condition have been met. 대기 조건의 기준이 충족되면 워크플로가 자동으로 다시 시작됩니다.The workflow starts again automatically when the criteria in the wait condition have been met.

실시간 워크플로는 대기 조건을 사용할 수 없습니다.Real-time workflows cannot use wait conditions.
병렬 대기 분기Parallel Wait Branch 초기 조건이 맞을 경우에만 수행되는 일련의 해당 추가 단계로 백그라운드 워크플로에 대한 대체 대기 조건을 정의합니다.Defines an alternative wait condition for a background workflow with a corresponding set of additional steps that are performed only when the initial criterion is met. 병렬 대기 분기를 사용하여 워크플로 논리에 시간 제한을 만들 수 있습니다.You can use parallel wait branches to create time limits in your workflow logic. 이렇게 하면 대기 조건에 정의된 기준에 부합할 때까지 워크플로가 무한히 대기하는 문제가 발생하지 않습니다.They help prevent the workflow from waiting indefinitely until the criteria defined in a wait condition have been met.
사용자 지정 단계Custom Step 개발자는 조건을 정의하는 사용자 지정 워크플로 단계를 만들 수 있습니다.Developers can create custom workflow steps that define conditions. 기본적으로 사용할 수 있는 사용자 지정 단계는 없습니다.There are no custom steps available by default.

다음 스크린샷에는 이하이상 계층적 연산자를 사용하는 워크플로 프로세스 정의에 대한 예가 들어 있습니다.The following screenshot contains an example of the workflow process definition with the Under and Not Under hierarchical operators. 이 예에서 두 그룹의 거래처에 다른 할인을 적용합니다.In our example, we apply two different discounts to two groups of accounts. 단계 추가에서 확인 조건을 선택하여 이하 또는 이상 연산자가 포함된 if-then 조건을 지정합니다.In Add Step, we selected the Check Condition to specify the if-then condition containing the Under or Not Under operators. 첫 번째 if-then 조건은 Alpine Ski House 거래처 이하인 모든 거래처에 적용됩니다.The first if-then condition applies to all accounts that are Under the Alpine Ski House account. 이러한 거래처는 구매한 상품 및 서비스에 대해 10% 할인 받습니다.These accounts receive a 10% discount on purchased good and services. 두 번째 if-then 조건은 Alpine Ski House 거래처 이상인 모든 거래처에 적용되며 5% 할인 받습니다.The second if-then condition applies to all accounts that are Not Under the Alpine Ski House account and they receive a 5% discount. 그런 후 레코드 업데이트를 선택하여 조건에 따라 수행되는 작업을 정의했습니다.Then, we selected Update Record to define the action to be performed based on the condition.

Under/Not Under 연산자를 사용하여 워크플로 프로세스Workflow process with Under/Not Under operators

실시간 워크플로 사용Using real-time workflows

실시간 워크플로를 구성할 수 있지만 주의해서 사용해야 합니다.You can configure real-time workflows but you should use them with care. 시스템에서 백그라운드 워크플로를 서버의 리소스로 사용할 수 있으므로 일반적으로 백그라운드 워크플로가 권장됩니다.Background workflows are generally recommended because they allow the system to apply them as resources on the server are available. 이렇게 하면 서버에서 수행해야 하는 작업을 원활하게 수행하고 시스템을 사용하는 모든 사용자에게 최상의 성능을 유지할 수 있습니다.This helps smooth out the work the server has to do and help maintain the best performance for everyone using the system. 단점은 백그라운드 워크플로에서 정의한 작업은 즉시 처리되지 않는 다는 것입니다.The drawback is that actions defined by background workflows are not immediate. 언제 적용될지 예측할 수 없지만 일반적으로 몇 분 정도 걸립니다.You can’t predict when they will be applied, but generally it will take a few minutes. 대부분의 비즈니스 프로세스 자동화의 경우 시스템을 사용하는 사용자가 프로세스가 실행되는지 끊임 없이 인식하지 않아도 되므로 괜찮습니다.For most automation of business processes this is fine because people using the system don’t need to be consciously aware that the process is running.

비즈니스 프로세스에서 프로세스 결과가 바로 필요하거나 작업을 취소할 수 있는 기능이 필요한 경우에는 실시간 워크플로를 사용하십시오.Use real-time workflows when a business process requires someone to immediately see the results of the process or if you want the ability to cancel an operation. 처음 저장되는 레코드의 특정 기본값을 설정하거나 일부 레코드를 삭제하지 않아야 할 경우를 예로 들 수 있습니다.For example, you may want to set certain default values for a record the first time it’s saved, or you want to make sure that some records are not deleted.

실시간 및 백그라운드 워크플로 변환Converting between real-time and background workflows

도구 모음에서 백그라운드 워크플로로 변환을 선택하여 실시간 워크플로를 백그라운드 워크플로로 변경할 수 있습니다.You can change a real-time workflow into a background workflow by choosing Convert to a background workflow on the toolbar.

도구 모음에서 실시간 워크플로로 변환을 선택하여 백그라운드 워크플로를 실시간 워크플로로 변경할 수 있습니다.You can change a background workflow into a real-time workflow by choosing Convert to a real-time workflow on the toolbar. 백그라운드 워크플로에서 대기 조건을 사용하면 백그라운드 워크플로가 무효화되고 대기 조건을 제거할 때까지 활성화할 수 없습니다.If the background workflow uses a wait conditions it will become invalid and you won’t be able to activate it until you remove the wait condition.

상태 변경 전후 실시간 워크플로 시작Initiating real-time workflows before or after status changes

실시간 워크플로에 자동 프로세스에 대한 옵션을 구성할 경우 상태 변경 이벤트의 시작 시기 옵션을 사용하면 상태 변경 시기로 이후 또는 이전을 선택할 수 있습니다.When you configure Options for Automatic Processes for real-time workflows, the Start When options for the status changes event let you select After or Before for when status changes. 기본 옵션은 이후입니다.The default option is After.

이전을 선택하면 상태 변경 데이터가 저장되기 전에 워크플로의 논리가 적용됩니다.When you select Before you are saying that you want the logic in the workflow to be applied before data changing the status is saved. 작업 이후 다른 논리가 적용되기 전에 값을 변경할 수 있고 이후 논리가 수행되지 않도록 합니다.This provides you with the ability to check the values before other logic has been applied after the operation and prevent further logic from being performed. 예를 들어 다른 시스템에서 작업을 시작할 수 있는 플러그 인 또는 사용자 지정 워크플로 동작에 추가 논리가 있을 수 있습니다.For example, you may have additional logic in a plug-in or custom workflow action which could initiate actions on another system. 이후 프로세스를 중지하면 외부 시스템에 영향을 받는 경우를 방지할 수 있습니다.By stopping further processing you can avoid cases where external systems are affected. 이 이벤트 전에 실시간 워크플로를 적용하면 작업이 취소될 때 데이터가 저장된 다른 워크플로 또는 플러그 인 작업을 "롤백"하지 않아도 됩니다.Applying real-time workflows before this event also means that other workflow or plug-in actions that may have saved data don’t need to be “rolled back” when the operation is canceled.

실시간 워크플로에 워크플로 중지 동작 사용Using the Stop Workflow action with real-time workflows

워크플로에서 워크플로 중지 작업을 적용하면 성공 또는 취소됨 중 하나가 될 수 있는 상태 조건을 지정하는 옵션이 있습니다.When you apply a Stop Workflow action in a workflow you have the option to specify a status condition that can be either Succeeded or Canceled. 상태를 취소됨으로 설정하면 작업을 막습니다.When you set the status to canceled, you prevent the operation. 정지 동작 상태 메시지의 텍스트가 포함된 머리글이 비즈니스 프로세스 오류인 오류 메시지가 표시됩니다.An error message containing the text from the stop action status message will be displayed to the user with the heading Business Process Error.

다음 단계Next steps

프로세스를 통해 사용자 지정 비즈니스 논리 만들기 Create custom business logic with processes
워크플로 프로세스 개요 Workflow processes overview
워크플로 프로세스 모니터링 및 관리 Monitor and manage workflow processes
워크플로 프로세스에 대한 유용한 정보Best practices for workflow processes