이벤트 생성

  • 릴리스 버전: Xanadu
  • 업데이트 날짜 2024년 08월 01일
  • 읽기4분
  • 적합한 기존 이벤트를 찾지 못하면 직접 생성할 수 있습니다.

    시작하기 전에

    필요한 역할: admin

    이 태스크 정보

    gs입니다. EventQueue 함수는 백엔드와 직접 작동하므로 gs에 의해 호출되는 비즈니스 규칙입니다. EventQueue()는 호출되지 않습니다.

    프로시저

    1. 다음으로 이동 모두 > 시스템 정책 > 이벤트 > 레지스트리을 선택한 다음 새로 만들기를 선택합니다.
    2. 양식의 필드에 내용을 입력합니다.
      표 1. 이벤트 등록 양식 작성
      필드 설명
      이벤트 이름 새 이벤트의 이름입니다.
      테이블 이 이벤트에 대한 데이터베이스 테이블입니다.
      주:
      이벤트와 같은 범위에 있는 테이블 및 데이터베이스 뷰만 목록에 나타납니다.
      트리거될 때 이벤트가 배치되는 큐의 이름입니다.

      소문자만 사용하고, 공백을 사용하지 않으며, 밑줄(_)을 제외한 특수 문자를 사용하지 않습니다. 예: my_queue. Using custom queues to process events 문서를 참조하십시오.

      우선순위 메시지가 처리되는 순서입니다. 값이 낮을수록 우선 순위가 높습니다.
      주:
      com.glide.sysevent.priority.enabled 시스템 속성은 기본적으로 활성화되어 있습니다. 이 기능을 사용하지 않도록 설정하면 이벤트 처리가 우선 순위에 따라 수행되지 않습니다.
      호출자 접근 제한된 호출자 접근 설정.
      • 호출자 제한: 리소스에 대한 호출은 수동으로 승인해야 합니다.
      • 호출자 추적: 리소스에 대한 호출이 자동으로 승인됩니다.
      실행한 사람 이벤트를 실행하는 비즈니스 규칙의 이름입니다. 이 필드는 참조용으로만 사용되며 프로세스에서 사용되지 않습니다. 일정을 다시 찾을 수 있는 충분한 정보가 있는지 확인합니다.
      설명 이벤트의 목적에 대한 짧은 설명입니다.
    3. 비즈니스 규칙 관련 링크를 클릭합니다.
    4. 기본 시스템 테이블에 대한 이벤트를 생성하는 경우 테이블에 대한 기존 이벤트 비즈니스 규칙을 선택합니다.
      예를 들어 비즈니스 규칙을 선택하여 sc request events 사용자 지정 요청 이벤트를 생성합니다.
    5. 기존 이벤트 비즈니스 규칙을 업데이트하는 경우 스크립트에 새 조건을 추가합니다.
      다음 샘플 스크립트는 request.commented 사용자의 Sys ID가 parm1이고 사용자의 사용자 이름이 parm2인 이벤트를 추가합니다.
      if (current.operation() != 'insert' && current.comments.changes()) {
      gs.eventQueue('request.commented', current, gs.getUserID(), gs.getUserName());
      }
    6. 사용자 지정 테이블에 대한 이벤트를 생성하는 경우 데이터베이스 작업 후 실행되는 새 비즈니스 규칙을 생성합니다.
      예를 들어, 이 비즈니스 규칙은 마케팅 이벤트라는 사용자 지정 애플리케이션에 대한 여러 이벤트를 정의합니다.
      표 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);
    7. 이벤트를 등록합니다.

    다음에 수행할 작업

    이벤트를 처리할 스크립트 작업 또는 알림을 만듭니다.