OPEN_GRID API - v1.3.1
    Preparing search index...

    Class XmlConverter

    XML ↔ 그리드 데이터 변환기(정적 메서드 모음). / XML ↔ grid-data converter (static methods).

    const rows = XmlConverter.parse('<rows><row><name>Kim</name></row></rows>');
    const xml = XmlConverter.stringify(rows);
    Index

    Constructors

    Methods

    • XML 문자열을 파싱하여 그리드 데이터 배열로 변환. Element / Attribute 방식 자동 감지. / Parse an XML string into a grid-data array. Auto-detects element vs. attribute style.

      Parameters

      • xml: string

        파싱할 XML 문자열 / XML string to parse

      • options: XmlParseOptions = {}

        파싱 옵션 / Parse options

      Returns Record<string, any>[]

      행 객체 배열 / Array of row objects

      XML 파싱 오류 시 Error 발생 / Throws an Error on XML parse failure

      // <rows><row><name>Kim</name><dept>Sales</dept></row></rows>
      const rows = XmlConverter.parse(xmlText);
      grid.setData(rows); // → [{ name: 'Kim', dept: 'Sales' }]
    • SAP BAPI XML 응답을 파싱하여 { header, items, returns } 구조로 반환. / Parse a SAP BAPI XML response into a { header, items, returns } structure.

      SAP BAPI 응답은 "행이 죽 나열된" 단순 목록이 아니라 문서 헤더(DOCUMENTHEADER)·라인 아이템(ACCOUNTGL 등)·처리 결과 메시지(RETURN)가 뒤섞여 한 응답 안에 들어온다. 그래서 범용 parse()(단일 rowTag 기준)로는 못 풀고, 이 메서드가 세 부분을 각각 알아서 찾아 분리해 준다. 라인 아이템은 그리드에 그대로 setData()할 수 있는 배열로 나온다. / A SAP BAPI response isn't a flat list of rows — a document header (DOCUMENTHEADER), line items (e.g. ACCOUNTGL), and result messages (RETURN) are all mixed into one response. The generic parse() (which assumes a single rowTag) can't untangle that, so this method locates and splits all three parts for you. items comes out ready to hand to the grid's setData().

      지원 패턴 / Supported patterns: ... ... S...

      Parameters

      • xml: string

        SAP BAPI XML 응답 문자열 / SAP BAPI XML response string

      Returns SapParseResult

      파싱 결과 구조 / Parsed result structure

      const { header, items, returns } = XmlConverter.parseSap(sapResponseXml);
      grid.setData(items);
      if (returns.some(r => r.TYPE === 'E')) console.error('SAP 오류 응답', returns);
    • 그리드 데이터 배열을 XML 문자열로 직렬화. / Serialize a grid-data array into an XML string.

      Parameters

      • data: Record<string, any>[]

        직렬화할 행 배열 / Row array to serialize

      • options: XmlStringifyOptions = {}

        직렬화 옵션 / Serialize options

      Returns string

      XML 문자열 / XML string

      // 그리드에서 수정된 행을 서버로 보낼 때 / Sending grid-edited rows back to a server
      const xml = XmlConverter.stringify(grid.getEditedRows(), { mode: 'attribute' });
    • BAPI 페이로드 객체를 SAP XML 형식으로 직렬화. sapGenPayload() 결과 또는 단일 document 객체를 받음. / Serialize a BAPI payload object into SAP XML. Accepts a sapGenPayload() result or a single document object.

      parseSap()의 반대 방향 — 그리드에서 만든/편집한 전표 데이터를 SAP가 받을 수 있는 BAPI 호출용 XML로 만들 때 쓴다. / The reverse of parseSap() — use this to turn grid-built/edited document data into the BAPI-call XML that SAP expects.

      Parameters

      • payload: {
            ACCOUNTGL?: Record<string, any>[];
            BAPI_FUNCTION?: string;
            DOCUMENTHEADER?: Record<string, any>;
            [key: string]: any;
        }

        BAPI 페이로드 객체 / BAPI payload object

      Returns string

      SAP XML 문자열 / SAP XML string

      const xml = XmlConverter.stringifySap({
      BAPI_FUNCTION: 'BAPI_ACC_DOCUMENT_POST',
      DOCUMENTHEADER: { COMP_CODE: '1000', DOC_DATE: '20260101' },
      ACCOUNTGL: grid.getData(),
      });
    • sapGenPayload() 의 { totalDocuments, documents[] } 결과를 다건 BAPI XML 로 직렬화. / Serialize a sapGenPayload() { totalDocuments, documents[] } result into a multi-document BAPI XML.

      Parameters

      • payload: { documents: any[] }

        documents 배열을 담은 페이로드 / Payload holding the documents array

      Returns string

      다건 BAPI XML 문자열 / Multi-document BAPI XML string