webMethods for FlatFile
Flat File
정의 : 계층구조 데이터 -> 레코드 기반 저장소 표기
데이터 내에 계층 구조 데이터 (메타 데이터)를 표현할 수 없습니다.
구조:
필드 : 가장 작은 데이터 구조 - 원자 단위의 데이터(시작과 끝에 *)
서브 필드(Composite): 필드의 결합체 - 여러 필드를 참조하는 복합개체(필드를 +로 연결)
레코드(Segment): 필드 및 복합적 요소 (문단 마지막 !로 종료)
일반적으로 Flat File Dictionary & Flat file Schema 는 세트로 되어있습니다.
Dictionary에서 가져올 데이터에 대하여 DB의 필드명과 같이 정의를 내리는 역활을 하고
Schema에서는 정의된 데이터를 어떤 기준으로 나눠서 출력할 수 있는지 개발자에게 알려주는 역활을 합니다.
Flat File Schema
정의 : 외부 혹은 생성된 Flat File에 대한 설명서입니다.
Flat File 의 구조적인 정보 가지고있는 webMethods의 개체
특징 :
수신자가 유효성 검사 및 구문 분석 가능합니다.
구분 기호 및 문서 구조 설명서
WebMethods 내 Flatfile 생성 과정
1.Dictionary 생성 후 가장 큰 묶음인 Record Definition 을 시작합니다. 우클릭 -> New를 통해 만들 수 있습니다.
2. 정의된 레코드에게 우클릭을 하면 그 안에 들어갈 필드를 세분화 할 수 있습니다.
Composite , Field reference 는 말 그대로 이미 만들어진 Composite 나 Field를 가져올 수 있습니다. 단, Dictionary 끼리만 가능 합니다.
간단 히 생각하자면 아래와 같습니다.
Record = Document List
Composite = Document
Field = String
3. 2번과 같이 Field Definition을 눌렀다면 Extractor Type 안에 Nth Field , Fixed Position 중 하나를 택할 수 있습니다.
Fixed Position은 시작과 끝을 길이로 제한을 둘 수 있으며, Nth Field 로 선택 시, 스키마의 정의에 따라 Field를 구분할 수 있습니다.
Mandatory : 필수 값 지정 여부
4-1. 가져오려는 데이터가 Dictionary에 정의된 값과 동일한 경우 가장 쉬운 방법은 Schema를 생성 후 Default Record 를 지정하는것입니다.
또한 Dictionary 에서 Nth Field(길이 제한없는 필드)로 생성한 경우 , Record Parser Type 을 Delimiter로 선택해주고
어느 범위 까지를 Record로 생각할 건지 newLine(다음 라인) , Field or composite 의 구분은 무엇으로 할건지 "," 를 지정하였습니다.
4-2 . 가져오려는 데이터가 만약 형식이 다를 경우, Schema 내에서 직접 정의해주는 방법이 있습니다.
아래와 같이 구조를 정의 후, Delimiter, newLine 옵션을 적용하면
Point 로 시작되는 라인, Measure로 시작되는 라인, Date 로 시작되는 라인 등을 Field에 담아줍니다.
만약, 정의가 되지 않은 라인이 있다면 unDefData 안에 내용이 담기게 됩니다.
5. Schema에 대한 설정이 끝났다면, 상단 문서모양 버튼을 통해 Document를 생성 할 수 있습니다.
6. 디자이너에서 확인하게 된다면 convertToValues 를 거친 후, ffValues 안에 정의된 Schema 내용이 출력되는 것을 보실 수 있습니다.