Workflow 가이드

개요

정의

직관적인 GUI를 통해 다수의 복잡한 비동기 통신을 쉽게 호출할 수 있는 기능입니다. 사용자는 각 비동기 호출의 결과에 대한 처리 로직만 간단히 구현하면 됩니다.

용어

Workflow: 여러 건의 Submission을 처리하는 순서를 정의한 것

WorkflowCollection: Workflow의 그룹

Step: 여러 건의 작업 처리 순서를 정의한 것

특징

비동기 통신 프로그래밍이 용이

+Promise workflow 사용이 용이

Submission의 비동기 처리가 용이

기능

정의된 submission 및 submissionCallback의 실행순서를 보장합니다. (실행 순서에 대한 제약은 없음.)

실행 순서의 유효성을 확인합니다.

생성 방법

  1. Submission 뷰를 클릭합니다.

  2. Workflow에 포함할 Submission들을 우클릭한 후 [Workflow 추가]를 선택합니다.

    (혹은 Component 뷰에서 WorkflowCollection 아이콘을 우클릭한 후 [Workflow 추가]를 선택합니다.)

Submission View의 Workflow 추가 메뉴 화면

  1. Workflow Manager 창에서 Workflow의 기본 정보를 설정하고 및 Service List를 생성합니다.

Workflow Manager 화면

Workflow 입력 항목

항목

설명

Workflow ID

workflow ID (자동 부여)

Process Msg

workflow 기동 시 표현될 메시지

resolveCallback

작업 완료 후 호출할 함수의 이름

rejectCallback

작업 처리 도중 에러 발생시 또는 workflowObj.reject() 함수가 호출된 다음 호출할 함수의 이름

Step List

Type

작업 종류 (기본값: submit)

function은 실행 전에 처리할 내용을 작성합니다.

id

type 선택에 따라 선택 및 입력 가능

Function

type이 ‘function’ 인 경우 입력 가능

Pre

type이 ‘submit’ 인 경우 선처리용 함수명을 입력합니다.

(Script 버튼을 클릭하면 해당 함수가 Script 탭에 자동 생성됩니다.)

Post

type이 ‘submitDone’ 인 경우 선처리용 함수명을 입력합니다.

(Script 버튼을 클릭하면 해당 함수가 Script 탭에 자동 생성됩니다.)

Serial

등록된 Step을 직렬화 시킵니다.

Parallel

등록된 Step을 병렬화 시킵니다.

우측 상단 아이콘을 이용하여 Step을 추가, 삭제, 수정, 이동할 수 있습니다.

  1. Script 탭을 클릭합니다.

  2. resolveCallbackrejectCallback 함수를 정의합니다.

관련 API

$p.workflow API

API

설명

getWorkflow(id)

workflow Result 객체를 반환

executeWorkflow(id)

model에 선언된 workflow id를 지정하여 WebSquare workflow를 실행

executeWorkflow(json)

workflow json을 인자로 전달하여 WebSquare workflow 실행

getRunningWorkflow()

실행중인 workflow 객체 반환id 가 인자로 넘어온 경우에는 실행중인 workflowID와 동일한 경우에만 반환

isRunningWorkflow(id)

workflow 가 실행 중인지 여부 true/false 반환id 가 인자로 넘어온 경우에는 실행중인 workflowID와 동일한 경우에만 true 반환

getRunningWorkflowID()

실행중인 workflow id 반환

rejectWorkflow(msg,id)

실행중인 workflow를 reject 시킴

executeSerial(array,processMsg,resolveCallback,rejectCallback)


: workflow 생성없이 array 의 submission 을 serial 하게 실행

executeParallell(array,processMsg,resolveCallback,rejectCallback)


: workflow 생성없이 array 의 submission 을 parallel 하게 실행

executeWhilst(condFn,maxCount, submissionId,processMsg,resolveCallback,rejectCallback)


: dataList의 자료를 add 하는 경우 사용, dataList add 기능 선확인 필요

reject()

workflow를 중단한다. reject()가 호출된 이후 workflow는 실행하지 않고 rejectCallback으로 이동

result

실행된 submissionId별 결과객체(e) 관리process 가 종료되는 시점에 삭제

executeWorkflow(id)

model에 선언된 workflow id를 지정하여 WebSquare workflow 실행

executeWorkflow(json)

workflow json을 인자로 전달하여 WebSquare workflow를 실행

executeSerial(array, resolveCallback, rejectCallback)

array의 submission을 serial 하게 실행

executeParallel(array, resolveCallback, rejectCallback)

array의 submission을 parallel하게 실행

각 API에 대한 좀 더 자세한 설명 및 사용법은 API 가이드를 참고하십시오.