6.통신 Data Format

Edit

그림 6-1Data 통신

통신 Data Format은 Service와 MiPlatform 간에 전달되는 Data의 XML 구조입니다.

TOBESOFT 제품군이 아닌 경우 통신 Data Format을 아래와 같이 통일시키면 MiPlatform에서 Data를 처리할 수 있습니다. 통신 Data Format은 XML형식과 Binary형식이 있습니다

Binary형식은 Developer 매뉴얼을 참고하십시오.

6.1XML Fomat

6.1.1구성

Prolog

Root Element


Params

Dataset1


column

colinfo

record


record Information

Dataset2


column

colinfo

record


record Information

DatasetN


column

colinfo

record


record Information

6.1.2Prolog

Prolog는 Root Element가 나오기 전에 선언되는 Header 정보로 XML 선언문과 DTD 정보가 있습니다. MiPlatform에서는 XML 선언문만 사용합니다.

표 6-1Prolog

Attribute 이름

설명

version

W3C에서 발표된 XML Version

encoding

CharSet

<?xml version="1.0" encoding="euc-kr"?>

6.1.3Root Element

Root Element는 Sub Element "Params" 와 "Dataset"으로 구성됩니다.

Params

통신 시에 필요한 parameter(시스템변수, 사용자 변수)를 정의합니다,

id가 ErrorCode, ErrorMsg, Cache 시스템 변수로 반드시 정의되어야 하며, 필요한 경우 사용자 정의 변수를 추가로 선언할 수 있습니다.

표 6-2Root Element - Params

Attribute 이름

설명

Id

전달 Parameter의 ID

Type

전달 Parameter의 Type

<param id="ErrorMsg" type="STRING">SUCC</param>

필수 Parameter (시스템 변수)

표 6-3Root Element - Params - 필수 Parameter

ID

설명

ErrorCode

Error Code

-Transaction 함수 호출시

0보다 작은 경우에는 사용자가 정의한 에러로 InputDataset에 UpdateStatus를 반영하지 않고 실패 처리됩니다.

0이상일 경우에는 사용자가 정의한 정상 상태로 InputDataset에 UpdateStatus를 반영하며 성공 처리됩니다.

-Load 함수 호출시

0보다 작은 경우에는 사용자가 정의한 에러로 실패 처리됩니다.

0이상일 경우에는 사용자가 정의한 정상 상태로 성공 처리됩니다.

ErrorMsg

Error Message

Cache

Cache기능 사용 여부

<param id="ErrorCode">1</param>
<param id="ErrorMsg">SUCC</param>
<param id="cache" type="string" >true</param>

선택 Parameter (사용자 변수)

Format은 필수 Parameter (시스템 변수)사용과 동일하며 ID에 적당한 이름을 부여하여 사용합니다.

dataset

In/Output Data에 대한 내용입니다. Sub Element로 Colinfo(Dataset을 구성하고 있는 Column 정보)와 Record(전달될 실제 Data)로 구성되어 있습니다.

표 6-4Root Element - Dataset

Attribute 이름

설명

id

Dataset의 이름

<dataset id="output" >

column

Dataset의 상수 Column 정보에 대한 기술 입니다.

상수의 값은 Tag와 Tag사이에 입력합니다.

Attribute

이름

설명

id

Const Column의 이름

size

Column의 최대 Data크기 (기준값임.)

type

Column에 들어갈 Data의 종류

colinfo의 type과 동일합니다.

<Column id="col1" size="255" type="string">Const</Column>

colinfo

Dataset을 구성하고 있는 Column 정보에 대한 기술입니다.

표 6-5Root Element - Dataset - Colinfo

Attribute

이름

설명

id

Colinfo의 이름

type

Column의 Type

(string:Size에 상관없이 값이 저장됩니다.

Int: 정수

Decimal: 실수

date : 14자리 yyyyMMddHHmmss

8자리 yyyyMMdd

6자리 HHmmss

Long: 긴 문자열

Char:

l: string Type 같습니다.

currency: 통화(화폐단위)형 데이터

blob:Binary Data

)

size

Column의 Size

<colinfo id="UserID" type= "STRING" size="30"/>

record

Dataset에 포함된 Data의 내용으로, colinfo에서 정의된 Column ID가 record의 sub-element로 기술됩니다. 각 컬럼의 데이타는 sub-element의 콘텐츠로 지정됩니다.

<?xml version="1.0" encoding="euc-kr" ?> 
<!-- recode tag에 type이 추가됨 
 type이 update인 경우에는 org_recode tag가 추가되어 있어 변경된 상태를 구별할 수 있습니다. --> 
<root>
    <dataset id="ds_sample">
        <column id="Const0" type="STRING">100</column> 
        <column id="Const1" type="STRING" /> 
        <colinfo id="Genre" size="256" type="STRING" /> 
        <colinfo id="Year" size="256" type="STRING" /> 
        <colinfo id="Title" size="256" type="STRING" /> 
        <colinfo id="Audience" size="256" type="DECIMAL" /> 
        <colinfo id="Country" size="10" type="STRING" /> 
        <record type="insert">
            <!--  insert된 레코드 --> 
            <Audience /> 
            <Country>InsertTest</Country> 
            <Genre /> 
            <Title /> 
            <Year /> 
        </record>
        <record type="update">
            <!--  update된 레코드 --> 
            <Audience>120</Audience> 
            <Country>한국Test</Country> 
            <Genre>스릴러</Genre> 
            <Title>주홍글씨</Title> 
            <Year>2004</Year> 
            <org_record>
                <Audience>120</Audience> 
                <Country>한국</Country> 
                <Genre>스릴러</Genre> 
                <Title>주홍글씨</Title> 
                <Year>2004</Year> 
            </org_record>
        </record>
        <record>
            <Audience>90</Audience> 
            <Country>한국</Country> 
            <Genre>스릴러</Genre> 
            <Title>알포인트</Title> 
            <Year>2004</Year> 
        </record>
        <record>
            <Audience>70</Audience> 
            <Country>한국</Country> 
            <Genre>스릴러</Genre> 
            <Title>거미숲</Title> 
            <Year>2003</Year> 
        </record>
        <record type="delete">
            <!--  delete된 레코드 --> 
            <Audience>50</Audience> 
            <Country>한국</Country> 
            <Genre>스릴러</Genre> 
            <Title>페이스</Title> 
            <Year>2003</Year> 
        </record>
    </dataset>
</root>

6.1.4통신 Format 전체 예시

<?xml version="1.0" encoding="euc-kr"?>
<root>
    <!-- Parameter list -->
    <params>
        <param id="var1" type="STRING">var1</param>
        <param id="var2" type="INTEGER">2005</param>
        <param id="var3" type="DECIMAL">99.99</param>
</params>
    <!-- Datasets -->
    <dataset id="sample1">
        <!-- Column info -->
        <colinfo id="col1" type="STRING" size="255"/>
        <colinfo id="col2" type="INT" size="255"/>
        <colinfo id="col3" type="DECIMAL" size="255"/>
        <colinfo id="col4" type="BLOB" size="255" encrypt="base64"/>
        <!--  record -->
        <record>
            <col1>black</col1>
            <col2>2003</col2>
            <col3>166.6</col3>
            <col4>MTIzNDU2Nzg5MA==</col4>
        </record>
        <!-- Inserted record -->
        <record type="insert">
            <col1>white</col1>
            <col2>2004</col2>
            <col3>172.4</col3>
            <col4>MTIzNDU2Nzg5MA==</col4>
        </record>
        <!-- Updated record -->
        <record type="update">
            <col1>red</col1>
            <col2>2001</col2>
            <col3>177.4</col3>
            <col4>MTIzNDU2Nzg5MA==</col4>
            <!-- Original record -->
            <org_record>
                <col1>yellow</col1>
                <col2>2002</col2>
                <col3>178.2</col3>
                <col4>MTIzNDU2Nzg5MA==</col4>
            </org_record>
        </record>
        <!-- Deleted record -->
        <record type="delete">
            <col1>blue</col1>
            <col2>1998</col2>
            <col3>182.5</col3>
            <col4>MTIzNDU2Nzg5MA==</col4>
        </record>
    </dataset>
    <dataset id="sample2">
        <!-- Constant columns -->
        <column id="const_col1" type="STRING">col1</column>
        <column id="const_col2" type="STRING">col2</column>
        <!-- Column info -->
        <colinfo id="col1" type="STRING" size="255"/>
        <colinfo id="col2" type="INT" size="255"/>
        <!-- Records -->
        <record>
            <col1>apple</col1>
            <col2>324</col2>
        </record>
        <record>
            <col1>grape</col1>
            <col2>377</col2>
        </record>
    </dataset>
</root>