이벤트 생성
적합한 기존 이벤트를 찾지 못하면 직접 생성할 수 있습니다.
시작하기 전에
이 태스크 정보
프로시저
- 다음으로 이동 모두 > 시스템 정책 > 이벤트 > 레지스트리을 선택한 다음 새로 만들기를 선택합니다.
-
양식의 필드에 내용을 입력합니다.
표 1. 이벤트 등록 양식 작성 필드 설명 이벤트 이름 새 이벤트의 이름입니다. 테이블 이 이벤트에 대한 데이터베이스 테이블입니다. 주:이벤트와 같은 범위에 있는 테이블 및 데이터베이스 뷰만 목록에 나타납니다.큐 트리거될 때 이벤트가 배치되는 큐의 이름입니다. 소문자만 사용하고, 공백을 사용하지 않으며, 밑줄(_)을 제외한 특수 문자를 사용하지 않습니다. 예: my_queue. Using custom queues to process events 문서를 참조하십시오.
우선순위 메시지가 처리되는 순서입니다. 값이 낮을수록 우선 순위가 높습니다. 주:com.glide.sysevent.priority.enabled 시스템 속성은 기본적으로 활성화되어 있습니다. 이 기능을 사용하지 않도록 설정하면 이벤트 처리가 우선 순위에 따라 수행되지 않습니다.호출자 접근 제한된 호출자 접근 설정. - 호출자 제한: 리소스에 대한 호출은 수동으로 승인해야 합니다.
- 호출자 추적: 리소스에 대한 호출이 자동으로 승인됩니다.
실행한 사람 이벤트를 실행하는 비즈니스 규칙의 이름입니다. 이 필드는 참조용으로만 사용되며 프로세스에서 사용되지 않습니다. 일정을 다시 찾을 수 있는 충분한 정보가 있는지 확인합니다. 설명 이벤트의 목적에 대한 짧은 설명입니다. - 비즈니스 규칙 관련 링크를 클릭합니다.
-
기본 시스템 테이블에 대한 이벤트를 생성하는 경우 테이블에 대한 기존 이벤트 비즈니스 규칙을 선택합니다.
예를 들어 비즈니스 규칙을 선택하여 sc request events 사용자 지정 요청 이벤트를 생성합니다.
-
기존 이벤트 비즈니스 규칙을 업데이트하는 경우 스크립트에 새 조건을 추가합니다.
다음 샘플 스크립트는 request.commented 사용자의 Sys ID가 parm1이고 사용자의 사용자 이름이 parm2인 이벤트를 추가합니다.
if (current.operation() != 'insert' && current.comments.changes()) { gs.eventQueue('request.commented', current, gs.getUserID(), gs.getUserName()); } -
사용자 지정 테이블에 대한 이벤트를 생성하는 경우 데이터베이스 작업 후 실행되는 새 비즈니스 규칙을 생성합니다.
예를 들어, 이 비즈니스 규칙은 마케팅 이벤트라는 사용자 지정 애플리케이션에 대한 여러 이벤트를 정의합니다.
표 2. 샘플 이벤트 비즈니스 규칙 필드 값 이름 참석자 이벤트 테이블 참석자 [x_snc_marketing_ev_attendee] 애플리케이션 마케팅 이벤트 고급 선택됨 시기 이후 삽입 선택됨 업데이트 선택됨 삭제 선택됨 스크립트 다음과 같은 사용자 지정 스크립트를 추가합니다.- 현재 기록에서 하나 이상의 조건을 확인합니다.
- gs.eventQueue() 메서드를 호출하고 이벤트 이름을 지정합니다.
코드 샘플을 참조하세요.
주:필터 조건, 역할 조건 또는 조건 값을 추가하는 경우 예상대로 비즈니스 규칙이 실행되는지 확인합니다.(function executeRule(current, previous /*null when async*/) { //This function will be automatically called when this rule is processed. //Add event when attendee inserted if(current.operation() == 'insert' && current.marketing_event.changes()) { gs.eventQueue('x_snc_marketing_ev.attendee.added', current, current.marketing_event, current.email); } //Add event when marketing event changes if(current.operation() == 'update' && current.marketing_event.changes()) { gs.eventQueue('x_snc_marketing_ev.attendee.deleted', previous, previous.marketing_event, previous.email); gs.eventQueue('x_snc_marketing_ev.attendee.added', current, current.marketing_event, current.email); } //Add event when attendee deleted if(current.operation() == 'delete') { gs.eventQueue('x_snc_marketing_ev.attendee.deleted', current, current.marketing_event, current.email); } })(current, previous); - 이벤트를 등록합니다.