Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 7 Current »

  • inputValue(input 위치에서 찾은 데이터)의 row count 만큼 roof 돌며 각 아이템에 대하여 하위 filter 또는 filterTerms 처리 후 output에 반환

  • filter의 type 에 따라 filter를 hierarchy 하게 구성 가능

    • type = conjunction → 하위 filters

    • type = filter → filterTerms

  • conjunction 에 따라 filters 또는 filterTerms를 AND, OR 논리 연산한다.

  • isNot 이 true 이면 논리연산값을 부정처리한다.

 Define field

Filter

ID

Description

id

query flow component id

name

이름

type

  • filter

  • conjunction

input

flow Component 처리 기준 데이터 위치

isNot

부정연산 ( true / false )

conjunction

논리연산 ( and, or, exist )

output

flow Component 처리 결과 위치

filters

type = conjunction 인경우 하위 filter 설정

filterTerms

type = filter 인경우 하위 filterTerms 설정

next

다음 flow Component id

Filter Terms

ID

Description

id

filter terms id

field

비교연산 기준 데이터 위치

"field": "id"

"field": "context.pg.id"

"field": "session.userId"

isNot

부정연산 ( true / false )

method

관계 연산자 (아래 상세 설명)

value

조건값

Filter Terms Method

ID

Description

equals

두 CharSequence를 비교하여 동일한 문자 시퀀스를 나타내는지 확인

contains

CharSequence에 검색 CharSequence가 포함되어 있는지 확인

exist

존재 여부 확인

startWith

CharSequence가 지정된 접두사로 시작하는지 확인

endsWith

CharSequence가 지정된 접미사로 끝나는 지 확인

above

숫자,날짜 비교 >=

below

숫자,날짜 비교 <=

fromto

숫자,날짜 기간 내 포함 여부 "20200101~20201231"

Flow Component

output 위치에 논리연산값 반환 후 next

filter start

  • get value of "input" position (inputValue)

  • roof inputValue

    • if type = conjunction

      • roof filters

    • if type = filter

      • roof filterTerms

        • run each "terms"

        • get the value of the "method" processed "value" position (termsValue)

        • set "field" as the key, "termsValue" as the value

  • put the value of the "output" position

next

 

Component inner filter

논리연산값에 따라 현재 flow Component 실행여부 판단

flowComponent start

→ mapper, reducer, trigger, switch, switchTerms, validation

  • get value of "input" position (inputValue)

  • roof inputValue

    • filter exists

    • if type = conjunction

      • roof filters

    • if type = filter

      • roof filterTerms

        • run each "terms"

        • get the value of the "method" processed "value" position (termsValue)

        • set "field" as the key, "termsValue" as the value

    • The result of the final logical operation of "filter"

      • TRUE execute flowComponent

      • FALSE continue

next

 

SAMPLE Flow Component

[
  {
    "typeId": "filter",
    "id": 97734146,
    "name": "TEST filter",
    "type": "conjunction",
    "input": "context.cartProductList",
    "isNot": false,
    "conjunction": "and",
    "filters": [
      {
        "typeId": "filter", "id": 977341461, "name": "TEST subFilter 1", "type": "filter", "isNot": false, "conjunction": "or",
        "filterTerms": [
          { "typeId": "filterTerms", "id": 555, "field": "existOption", "isNot": true, "method": "equals", "value": "true" },
          { "typeId": "filterTerms", "id": 554, "field": "existOption",  "isNot": false,  "method": "equals", "value": "true" }
        ]
      },
      {
        "typeId": "filter", "id": 977341462, "name": "TEST subFilter 2", "type": "filter", "isNot": false, "conjunction": "and",
        "filterTerms": [
          { "typeId": "filterTerms", "id": 556, "field": "existOption", "isNot": true, "method": "equals", "value": "true" }
        ]
      }
    ],
    "output": "filterCartProducts"
  }
]

SAMPLE Component inner filter

{
  "typeId": "trigger",
  "id": 685630802,
  "name": "create Cart",
  "input": "cart",
  "output": "cart.node",
  "filter": {
    "typeId": "filter", "id": null, "name": "cart Id 존재 여부", "type": "filter", "isNot": false, "conjunction": "and",
    "filterTerms": [
      { "typeId": "filterTerms", "id": null, "field": "id", "isNot": true, "method": "exist", "value": "" }
    ]
  },
  "processEvent": { "typeId": "processEvent", "id" : "createCart", "name": "장바구니 생성", "tid": "cart", "targetEvent": "create" },
  "next": 15054316
}

 

  • No labels