프로세스 설계에 대한 모범 사례
프로세스 빌더에서 프로세스를 설계하기 전에 모범 사례를 알고 있어야 합니다.
필수 Edition
| 지원 제품: Salesforce Classic(일부 조직에서 사용할 수 없음) 및 Lightning Experience 모두 |
| 지원 제품: Essentials, Professional, Enterprise, Performance, Unlimited, Developer Edition |
2025년 12월 31일 이후에는 기존 프로세스가 계속 실행되고 활성화, 비활성화, 편집할 수 있지만 Flow Builder를 사용하는 것이 좋습니다. 기존 프로세스를 마이그레이션하려면 스위치를 Flow Builder로 계획하고 Migrate to Flow 도구를 사용합니다. 새 자동화를 위해 Flow Builder에서 플로를 만듭니다.
테스트 환경에서 구축.
프로세스가 올바르게 작동하는지 확인하려면 먼저 활성화해야 합니다. 프로덕션 데이터에 영향을 미치지 않고 모든 문제를 식별할 수 있도록 sandbox 환경에서 프로세스를 구축하고 테스트하십시오.
각 개체의 경우 단일 자동화 도구 사용.
개체에 프로세스 1개, Apex 트리거 1개 및 워크플로 규칙 3개가 있는 경우 신뢰할 수 있는 수준에서 레코드 변경 결과를 예측할 수 없습니다.
개체당 하나의 레코드-변경 프로세스 보유.
레코드가 생성 또는 업데이트될 때마다 개체에 대한 모든 레코드-변경 프로세스가 평가됩니다. 개체당 하나의 레코드-변경 프로세스로 조직을 제한하는 것이 좋으며 그 이유는 다음과 같습니다.
- 개체에 대한 조직의 자동화 통합 보기 확보
개체에 대한 하나의 통합된 레코드-변경 프로세스를 사용하면 개체 레코드가 업데이트될 때마다 평가되는 모든 기준을 비롯하여 기준 충족 시 수행되는 작업을 확인할 수 있습니다.
- 제한 도달 방지
하나의 개체에 대한 프로세스를 단일 기본 프로세스로 통합할 경우 해당 프로세스의 작업도 통합됩니다. 작업 수가 줄어들면 조직에서 SOQL 쿼리 수 등 제한에 도달할 가능성이 줄어듭니다.
- 작업 순서 결정
개체의 레코드-변경 프로세스를 여러 개 만들면 Salesforce에서 해당 프로세스가 평가되는 순서를 보장할 수 없습니다. 단일 프로세스에서 모든 항목을 자동화할 때 명시적으로 순서를 설정합니다. 첫 번째 기준 노드가 먼저 평가되고 두 번째 기준 노드가 두 번째의 순서로 차례대로 평가됩니다.
다음은 하나의 기본 프로세스로 향하는 경로를 단순화할 수 있는 두 가지 기능입니다.
- ISNEW() - 일부 자동화가 생성된 레코드에만 적용되며 나머지는 생성 및 편집된 레코드에 적용됩니다. 모든 항목을 하나의 프로세스로 결합할 수 있는 방법은 무엇입니까? 평가되는 레코드가 최근에 생성되었는지 여부를 감지하는 수식 함수를
ISNEW()를 참조하세요.레코드가 생성 또는 편집되면 시작되는 프로세스에 만들기 전용 자동화를 추가하려면 관련 기존의 조건을 수식으로 전환한 다음 수식에 &&ISNEW()를 추가합니다.
- 호출 가능한 프로세스 - 프로세스가 플로를 호출할 수 있는 것처럼 프로세스는 다른 프로세스를 호출할 수 있습니다. 호출 가능한 프로세스는 다른 프로세스가 요청할 경우에만 시작되는 모듈 프로세스입니다.
예를 들어 "계정" 프로세스의 몇 가지 기준 노드는 각각 계정이 중요한지 여부를 포함해 일부 조건을 평가합니다. 해당 기준 노드를 공통으로 가지고 있는 중요한 조건 없이 "상위 계정" 호출 가능한 프로세스로 움직인 다음 계정이 중요할 경우 "계정" 프로세스를 구성하여 "상위 계정" 프로세스를 호출합니다.
가능할 경우 작업 결합.
프로세스에서 실행하는 작업이 많을수록 조직이 DML 행 수 또는 총 CPU 사용량 등 제한에 도달할 가능성이 높아집니다. 단일 작업으로 실행 가능한 작업을 여러 작업으로 만들지 마십시오.
예를 들어 프로세스가 계정 주소를 업데이트한다고 가정하겠습니다. 이 경우 다양한 작업을 만들어 모든 개별 필드를 업데이트하는 대신 모든 주소 필드를 업데이트할 단일 작업을 만드십시오.
재사용 가능한 작업 구축.
일부 프로세스 작업, 즉 이메일 경고, 빠른 작업, 프로세스, 플로 및 Apex는 항상 재사용할 수 있습니다. 그러나 다중 기준 그룹 또는 다중 프로세스에서 기타 작업 유형을 재사용하는 방법은 무엇일까요?
- 레코드 만들기 작업 또는 레코드 업데이트 작업을 재사용하려면 빠른 작업을 구축합니다. 빠른 작업은 프로세스, 플로 및 레코드 페이지에서 사용할 수 있습니다.
- 기타 프로세스 작업을 재사용하려면 호출 가능한 프로세스에 작업을 구성합니다. 관련 기준 그룹에서 프로세스 작업을 추가하여 호출 가능한 프로세스를 호출합니다. 호출 가능한 프로세스는 프로세스에서만 사용할 수 있습니다.
기존 변경 사항을 덮어쓰는 작업에 주의하십시오.
다중 작업 그룹이 같은 필드를 업데이트하지 않도록 방지하거나 해당 작업에 주의를 기울이십시오.
무한 루프가 생성되지 않도록 방지합니다.
예를 들어, 프로세스 1의 레코드 업데이트가 프로세스 2를 트리거하고, 프로세스 2의 레코드 만들기 작업이 프로세스 1을 트리거합니다. 루프를 수행하면 조직이 제한을 초과합니다.
즉각적 작업이 예정된 작업을 취소하지 않는지 확인합니다.
관련 기준이 더 이상 충족되지 않으면 일시 중단된 예정 작업이 취소됩니다. 차후 프로세스의 즉각적 작업이 의도치 않게 일시 중단된 예정 작업을 취소하지 않는지 확인합니다.
가능하면 많은 프로세스 조합으로 테스트하십시오.
Salesforce의 모든 사용자 정의와 마찬가지로 작업 내용을 테스트하는 것이 좋습니다. 프로덕션 조직에 프로세스를 배포하기 전에 생각할 수 있는 모든 가능성을 최대한 테스트해야 합니다.
Salesforce 데이터 변경 후 외부 데이터에 액세스하려면 예약된 작업을 사용합니다.
Salesforce에서 조직에 데이터를 만들거나 조직의 데이터를 업데이트 또는 삭제할 경우 같은 트랜잭션에서 외부 데이터에 액세스하면 오류가 발생합니다. 프로세스에서 별도의 트랜잭션을 사용하여 외부 시스템의 데이터에 액세스하는 것이 좋습니다. 해당 작업을 수행하려면 예약된 작업을 추가하여 이전 트랜잭션을 종료합니다. 레코드 변경 프로세스의 경우 필드 기반 일정을 사용하지 마십시오.
예를 들어 사용자 정의 플랫폼 이벤트인 주문 상태에서 플랫폼 이벤트 메시지가 수신되면 이벤트 프로세스가 시작됩니다. 주문 상태가 새 항목이면 프로세스에서 연락처를 만들고 작업 일정을 예약하여 외부 시스템의 주문 상태를 업데이트합니다. 예약된 작업에서 외부 시스템에 액세스하기 위해 별도의 트랜잭션을 만들지 않으므로 이벤트 프로세스가 실패하지 않습니다.
