워크플로우 이벤트별 기능
특히 워크플로우 이벤트와 관련된 몇 가지 기능이 있습니다.
| 함수 | 설명 | 목적 | 사용 | 스레드 | 소스 |
|---|---|---|---|---|---|
| registerForEvent(이벤트 이름) | 문자열로 표시된 이벤트를 wf_executing.registered_events 필드에 쓰는 워크플로우 환경의 기능입니다. |
워크플로우 이벤트는 문자열일 뿐입니다. 이벤트에 등록된 활동이 실행되면 쉼표로 구분된 이벤트 세트가 워크플로우 실행 활동[wf_executing] 기록과 함께 저장됩니다. 워크플로우 컨텍스트에서 이벤트가 트리거되면 wf_executing 테이블은 wf_executing.registered_events 필드에서 이벤트를 나타내는 문자열을 포함하는 모든 실행 기록을 찾습니다 |
모든 워크플로우 활동 [wf_activity] 기록에 사용할 수 있는 전역 변수 워크플로우가 호출의 소스입니다. 예를 들어 스크립트 실행 활동 내에서 디자이너는 workflow.registerForEvent('myEventName'); |
현재 스레드, 현재 뮤텍스 | 전역 변수 워크플로우 |
| unRegisterForEvent(이벤트 이름) | 워크플로우 환경에서 wf_executing.registered_events 필드에 기록된 이벤트를 나타내는 문자열 값을 제거하는 기능입니다. |
워크플로우 이벤트는 wf_executing.registered_events 필드에 기록되는 문자열에 불과합니다. 이벤트에 대한 활동이 등록 취소되면 워크플로우 실행 활동 [wf_executing] 기록에 저장된 쉼표로 구분된 이벤트 집합이 검색되고 해당 문자열이 발견되면 제거됩니다. |
모든 워크플로우 활동 [wf_activity] 기록에 사용할 수 있는 전역 변수 워크플로우가 호출의 소스입니다. 예를 들어 스크립트 실행 활동 내에서 디자이너는 다음을 작성할 수 있습니다. workflow.unRegisterForEvent('myEventName'); |
현재 스레드, 현재 뮤텍스 | 전역 변수 워크플로우 |
| fireEvent(이벤트 이름) | 워크플로우 환경에서 wf_executing.registered_events 필드의 내용을 검사하여 전달된 eventName 과 해당 내용을 비교합니다. |
워크플로우 이벤트는 wf_executing.registered_events 필드에 기록되는 문자열에 불과합니다. 워크플로 활동에서 fireEvent(eventName) 를 호출하면 워크플로 엔진은 등록된 필드에 문자열이 포함된 모든 실행 레코드를 큐에 대기합니다. |
모든 워크플로우 활동 [wf_activity] 기록에 사용할 수 있는 전역 변수 워크플로우가 호출의 소스입니다. 예를 들어 스크립트 실행 활동 내에서 디자이너는 다음을 작성할 수 있습니다. workflow.fireEvent('myEventName'); |
현재 스레드, 현재 뮤텍스 | 전역 변수 워크플로우 |
| fireEvent (eventRecord, eventName) | 특정 워크플로우 실행 활동 [wf_executing] 기록으로 이벤트를 보내는 워크플로우 환경의 기능입니다. eventRecord는 wf_executing 유형의 GlideRecord입니다. |
이 이벤트 호출에는 이벤트 기록(워크플로우 실행 활동 [wf_executing] 테이블)에 표시된 활동에 onMyEvent 이벤트 핸들러가 필요합니다. 워크플로 활동에서 fireEvent(eventRecord, eventName) 를 호출하면 워크플로 엔진은 해당 이벤트와 함께 특정 실행 기록을 큐에 추가하고 on<eventName> 처리기가 관리할 활동 정의에 이벤트를 전달합니다. 이 이벤트는 자체 뮤텍스에서 대기하므로 이 이벤트가 처리되기 전에 현재 큐가 완료됩니다. | 워크플로우 스크립트 포함에는 이에 대한 호출이 포함되어 있습니다. 예를 들어 스크립트 실행 활동 내에서 디자이너는 다음과 같이 작성할 수 있습니다. var w = new Workflow(); w.fireEvent(executing, eventName); |
현재 스레드, 현재 뮤텍스 | 워크플로우 스크립트 포함 |
| fireEvent(eventRecordSysId, 이벤트 이름) | 특정 워크플로우 실행 활동 [wf_executing] 기록으로 이벤트를 보내는 워크플로우 환경의 기능입니다. eventRecordSysId는 wf_executing 유형의 GlideRecord sys_id입니다. |
이는 ID를 받고 워크플로우 실행 활동 [wf_executing] 레코드를 반환한다는 점을 제외하고는 위의 fireEvent 와 동일합니다. | 워크플로우 스크립트 포함에는 이에 대한 호출이 포함되어 있습니다. 예를 들어 스크립트 실행 활동 내에서 디자이너는 다음과 같이 작성할 수 있습니다. var w = new Workflow(); w.fireEvent(executing, eventName); |
현재 스레드, 현재 뮤텍스 | 워크플로우 스크립트 포함 |
| fireEvent(eventRecordSysId, eventName, optionalJSONObject) | 특정 워크플로우 실행 활동 [wf_executing] 기록으로 이벤트를 보내는 워크플로우 환경의 기능입니다. eventRecordSysId는 wf_executing 유형의 GlideRecord sys_id입니다. |
이것은 JSON 객체를 세 번째 매개변수로 받아들인다는 점을 제외하고는 위의 fireEvent 와 동일합니다. 이 객체는 JSON으로 표현할 수 있는 모든 데이터를 지정할 수 있습니다. 워크플로우 활동을 생성할 때 추가 기능을 지정할 수도 있습니다. | 워크플로우 스크립트 포함에는 이에 대한 호출이 포함되어 있습니다. 예를 들어 스크립트 실행 활동 내에서 디자이너는 다음과 같이 작성할 수 있습니다. var w = new Workflow(); w.fireEvent(executing, eventName, JSONObject); |
현재 스레드, 현재 뮤텍스 | 워크플로우 스크립트 포함 |
| broadcastEvent (contextId, eventName) | 상태에 관계 없이 지정된 컨텍스트에서 현재 실행 중인 모든 워크플로우 실행 활동[wf_executing] 기록에 이벤트를 보내는 워크플로우 환경의 기능입니다. | 이는 ID를 받고 워크플로우 실행 활동 [wf_executing] 레코드를 반환한다는 점을 제외하고는 위의 fireEvent 와 동일합니다. | 워크플로우 스크립트 포함에는 이에 대한 호출이 포함되어 있습니다. 예를 들어 스크립트 실행 활동 내에서 디자이너는 다음과 같이 작성할 수 있습니다. var w = new Workflow(); w.broadcastEvent(contextId, eventName); |
현재 스레드, 현재 뮤텍스 | 워크플로우 스크립트 포함 |
| broadcastEvent(이벤트 이름) | 상태에 관계 없이 현재 컨텍스트에서 현재 실행 중인 모든 워크플로우 실행 활동 [wf_executing] 기록에 이벤트를 보내는 워크플로우 환경의 기능입니다. | 위의 broadcastEvent 와 혼동해서는 안 됩니다. 이 이벤트는 현재 워크플로우 실행 활동 [wf_executing] 기록에만 사용할 수 있습니다. | 이것은 현재 컨텍스트의 전역 워크플로우 변수를 통해서만 사용할 수 있습니다. 다음은 활동 정의의 스크립트 내에서 사용하는 예제입니다. workflow.broadcastEvent(eventName) |
현재 스레드, 현재 뮤텍스 | 전역 변수 워크플로우 |