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`