From bb2e675c2c72602f2df54d257ea8d8a44e945d9f Mon Sep 17 00:00:00 2001 From: yunjy-hp Date: Wed, 14 Jan 2026 13:34:16 +0900 Subject: [PATCH] =?UTF-8?q?=ED=91=9C=EC=A4=80=EC=A0=84=EB=AC=B8=20?= =?UTF-8?q?=EC=A1=B0=EA=B1=B4=20=EC=B2=98=EB=A6=AC=20=EA=B8=B0=EB=8A=A5=20?= =?UTF-8?q?OR=20=EC=B2=98=EB=A6=AC=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/레이아웃_조건부처리.md | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 docs/레이아웃_조건부처리.md diff --git a/docs/레이아웃_조건부처리.md b/docs/레이아웃_조건부처리.md new file mode 100644 index 0000000..8c58170 --- /dev/null +++ b/docs/레이아웃_조건부처리.md @@ -0,0 +1,32 @@ +# 레이아웃 조건부 처리 (RefValue) + +FlatReader에서 GROUP/GRID 항목의 조건부 처리를 위한 RefValue 설정 방법 + +## 지원 조건 + +| 표현식 | 의미 | 설명 | +|--------|------|------| +| `NM` | EQUALS | 값이 NM과 일치하는 경우 | +| `NM\|EM` | OR | 값이 NM 또는 EM과 일치하는 경우 | +| `!EM` | NOT | 값이 EM이 아닌 경우 | +| `!NM\|EM` | NOT OR | 값이 NM도 아니고 EM도 아닌 경우 | + +## 레이아웃 설정 예시 + +| 항목명 | 설명 | Depth | Type | Node | OccMin | Length | OccMax | RefPath | RefValue | +|--------|------|-------|------|------|--------|--------|--------|---------|----------| +| Message | 메시지부 | 1 | 3 | 0 | 1 | 0 | 1 | Message.Msg_Header.MSG_HEDR_KNCD | NM\|EM | +| Msg_Header | 메시지헤더 | 2 | 3 | 0 | 1 | 0 | 1 | | | +| MSG_HEDR_KNCD | 메시지헤더종류코드 | 3 | 2 | 1 | 1 | 2 | 1 | | NM | + +## 동작 설명 + +위 예시에서 `Message` 항목은 `MSG_HEDR_KNCD` 값이 `NM` 또는 `EM`일 때만 처리됩니다. + +- `MSG_HEDR_KNCD = "NM"` → Message 처리됨 +- `MSG_HEDR_KNCD = "EM"` → Message 처리됨 +- `MSG_HEDR_KNCD = "XX"` → Message 스킵됨 + +## 변경 파일 + +- `elink-online-common/src/main/java/com/eactive/eai/message/parser/FlatReader.java`