.. _workflow:

.. role:: raw-html(raw)
    :format: html

Workflow
=========================

- Workflow란 특정 순서에 따라 발생하는 반복적인 프로세스와 작업을 관리하는 시스템입니다.
- 관리콘솔에서 지원하는 Workflow의 기능에 대해 안내합니다.


권장버전
----------

.. csv-table::
    :header: 제품명(구성요소),버전,비고
    :class: longtable
    :widths: 30 30 40

    Genian ZTNA(정책서버),V6.0 이상,
    
지원되는 기능
--------------------
Genian ZTNA Workflow에서는 다음과 같은 기능을 지원합니다:
    
- 다중 Webhook 


설정 공통 내용
--------------------

- ${ }

  - ${ }와 같이 매크로처럼 입력란에 표시되는 값은 서버에서 값이 실행될 때 해당 값이 치환되어 실행됩니다.

- this 키워드

  - Response Body Template 에서 ${this} 와 같이 설정하면 Response로 넘어오는 결과 데이터를 필터하지 않고 그대로 Response로 출력한다는 의미입니다.
  - Response 데이터가 {"result" : "true", "message" : "success"} 일 때 Response Body Template을 {"res" : "${this.result}"} 와 같이 설정한다면 Response는 필터링되어 { "res" : "true" } 가 출력될 것입니다.

- request 키워드

  - ${request.userId} 처럼 해당 Workflow를 호출(POST)할 때 파라미터를 전달할 경우 해당 파라미터를 request 변수를 통해 사용할 수 있습니다.

- 복사 아이콘

  - Response Body에는 Response값을 Response Body Template에서 정의한 대로 필터링하여 표시하게 됩니다.
  - Response Body Template을 정의하지 않으면 실행결과가 그대로 출력됩니다.
  - Response Body에 표시되는 데이터에는 다음 프로세스에서 사용할 수 있도록 복사 아이콘이 각각 표시됩니다.

    - 다음 Action을 정의하고 해당 프로세스에서 필요한 값을 이전 프로세스의 Response Body에서 복사해서 사용하면 됩니다.
    - 붙여넣기 하면 ${dgdgadgasdgadg.ni_ipstr} 형태로 복사됩니다. ${이전프로세스ID.결과 컬럼값} 입니다. 

- RAW DATA 아이콘
  
  - Response Body에는 프로세스가 실행되면 RAW DATA가 아이콘이 출력됩니다. 
  - Response Body에는 Response Body Template 에 의해 가공된 데이터가 표시되기 때문에 RAW DATA가 필요한 경우 해당 아이콘을 클릭하면 Response 원본 데이터가 클립보드에 복사가 됩니다.


설정 방법
--------------------
  #. **설정 > 환경설정 > Workflow** 로 이동합니다.
  #. **작업선택** 의 생성을 통해 새로운 Workflow 생성 UI로 이동합니다. 
  #. **플로우명** 을 입력합니다.
  #. 왼쪽 영역의 **>>** 아이콘을 클릭하여 각 프로세스에서 공통적으로 사용할 값을 정의해서 사용할 수 있습니다.

    - 설정한 값은 각 입력한 오른쪽에 표시된 복사아이콘을 통해 복사한 후 사용하면 됩니다.

  #. Name, Request URL, Method, Headers 등을 설정한 후 아래의 Test 버튼을 통해 설정된 내용이 정상적으로 동작하는지 확인할 수 있습니다.
  #. Response Boby Template을 통해 결과를 적절하게 필터링 할 수 있습니다.

    - 예로 {"res" : "${this.result}"} 와 같이 설정하면 Response의  JSON 데이터에서 result 값을 이용하여 가공된 결과를 만들 수 있습니다.
  #. **+** 아이콘을 통해 다음 프로세스를 생성할 수 있습니다.

실행 방법
--------------------

  - Workflow 목록화면에 생성된 URL 정보를 POST 방식으로 호출하여 실행할 수 있습니다.