비즈니스 규칙 및 스크립트 포함
비즈니스 규칙은 인스턴스 기록에 대한 CRUD(생성, 읽기, 업데이트, 삭제) 작업 중에 실행할 수 있는 서버 측 작업입니다.
비즈니스 규칙을 사용하는 바람직한 프랙티스는 다음과 같습니다.
- 비즈니스 규칙을 작고 구체적으로 유지합니다.
- 기본 시스템 비즈니스 규칙을 수정하지 않습니다.
- 전역 비즈니스 규칙 대신 스크립트 포함을 사용합니다.
- 필요한 경우에만 스크립팅을 사용하십시오.
- 재사용 가능한 스크립트 논리를 스크립트 포함에 저장합니다.
- 쿼리를 사용하여 비즈니스 규칙 내에서 처리되는 기록을 제한합니다.
- 클라이언트 스크립트 실행 시 효율성을 높이기 위해 클라이언트 호출 가능 비즈니스 규칙을 사용하지 않습니다.
- 항상 비즈니스 규칙과 함께 조건을 사용하여 비즈니스 규칙이 실행되는 시기를 제어합니다. 조건이 있는 비즈니스 규칙을 실행하는 것도 디버깅에 도움이 될 수 있습니다. 비즈니스 규칙이 조건 없이 실행되는 경우는 거의 없습니다.
데이터베이스 작업 전이나 후에 실행되도록 비즈니스 규칙을 구성할 수 있습니다. 또한 비동기적으로 실행되도록 구성할 수 있으며 폼을 표시하거나 쿼리를 실행하기 전에도 실행할 수 있습니다.
| 값 | 실행 | 사용 시기 | 예제 |
|---|---|---|---|
| 이전 | 데이터베이스 작업 전에 동기적으로 | 저장 작업의 일부로 현재 객체의 값을 설정하거나 업데이트합니다. 필요하면 실행을 확인하고 중단합니다. | 개발자가 해당 기록의 다른 입력을 기반으로 현재 기록의 상태를 설정하려고 합니다. |
| 이후 | 데이터베이스 운영 후 동기적으로 | 데이터베이스 업데이트 후 이벤트 및 알림을 트리거하여 이전 객체에 액세스하거나 순서대로 무언가를 발생시킵니다. 업데이트 중인 기본 테이블 이외의 관련 기록을 업데이트하여 이전 객체에 액세스하거나 순서대로 어떤 작업을 수행하십시오. | 개발자가 현재 기록에서 하위 기록으로 값을 계단식으로 배열하려고 합니다. |
| 비동기 | 데이터베이스 작업이 완료된 후 별도의 프로세스로 비동기적으로 실행됩니다. | 규칙에 의해 트리거된 프로세스를 실행하는 데 시간이 걸릴 수 있습니다. 작업을 트리거한 사용자가 출력이 즉시 필요하지 않은 경우. 기록의 이전 값이나 특정 작업 시퀀스에 액세스할 필요가 없을 때 이벤트, 알림 또는 관련 기록 업데이트를 트리거합니다. | 개발자가 외부 프로세스를 트리거해야 하는데, 시간이 오래 걸리거나 많은 수의 기록을 업데이트해야 합니다. |
| 표시 | 해당 양식이 표시될 때마다 실행됨 | 서버 쪽 개체를 클라이언트 쪽 스크립트에서 사용할 수 있도록 하는 데 사용됩니다. | 개발자는 현재 레코드와 연결된 사용자에 대한 정보를 클라이언트 쪽 스크립트에서 사용할 g_scratchpad 개체에 쓰려고 합니다. |
주:
current.update()는 비즈니스 규칙에서 사용해서는 안 됩니다. current.update()를 사용하면 추가 데이터베이스 작업이 트리거되어 중복 알림, 재귀 루프 등이 발생할 수 있습니다.
스크립트 포함을 사용하여 서버 스크립트에서 사용할 JavaScript 함수와 클래스를 저장합니다. 각 스크립트 포함은 서버 측 스크립트에서 다시 사용할 수 있는 객체 클래스 또는 함수를 정의합니다.
스크립트 포함의 다른 곳에서 사용해야 할 수 있는 모든 코드를 저장합니다. 비즈니스 규칙, UI 작업, 워크플로우 스크립트, 스크립팅된 REST API 등에서 스크립트 포함을 호출합니다. UI 작업에서 비즈니스 규칙을 호출하거나 스크립트 REST API에서 UI 작업을 호출하는 대신, Script Includes에 코드를 넣고 양쪽 위치에서 Script Include를 호출하십시오.
Script Includes에 함수를 유지하면 다른 스크립트 영역에 함수를 배포하기 전에 기능을 테스트할 수 있으므로 전반적인 개발 및 테스트 시간을 줄일 수 있습니다.
자세한 내용은 비즈니스 규칙을 참조하십시오.