다음을 통해 공유


Azure Logic Apps에서 SAP 아티팩트용 스키마 생성

적용 대상: Azure Logic Apps(사용량 + 표준)

이 방법 가이드에서는 SAP 아티팩트에 대한 스키마를 만드는 예 논리 앱 워크플로를 만드는 방법을 보여 줍니다. 워크플로는 SAP 서버에서 HTTP POST 요청을 수신할 수 있는 요청 트리거로 시작됩니다. 그런 다음 워크플로는 SAP 서버에 요청을 보내는 스키마 생성이라는 SAP 작업을 사용하여 지정된 IDoc 및 BAPI에 대한 스키마를 생성합니다. 이 요청을 보내려면 SAP에 메시지 보내기라는 일반 SAP 관리 커넥터 작업을 사용하거나 [BAPI] SAP의 호출 방법이라는 특정 SAP 관리 또는 기본 제공 작업을 사용할 수 있습니다. 이 SAP 작업은 XML 문서 자체의 콘텐츠나 데이터가 아닌 XML 스키마를 반환합니다. 응답에 반환된 스키마는 Azure Resource Manager 커넥터를 사용하여 통합 계정에 업로드됩니다. 스키마에는 다음과 같은 부분이 포함됩니다.

구성 요소 설명
요청 메시지 구조 이 정보를 사용하여 BAPI get 목록을 구성합니다.
응답 메시지 구조 이 정보를 사용하여 응답을 구문 분석합니다.

표준 및 사용량 논리 앱 워크플로는 모두 다중 테넌트 Azure에서 호스트되고 실행되는 SAP 관리형 커넥터를 제공합니다. 표준 워크플로는 단일 테넌트 Azure Logic Apps에서 호스트된 및 실행되는 미리 보기 SAP 기본 제공 커넥터도 제공하지만 이 커넥터는 현재 미리 보기 상태이며 Microsoft Azure 미리 보기에 대한 추가 사용 약관이 적용됩니다. 자세한 내용은 커넥터 기술 참조를 참고하세요.

필수 조건

  • 솔루션을 테스트하기 위해 HTTP 요청을 보낼 수 있는 도구를 설치하거나 사용합니다. 예를 들면 다음과 같습니다.

    주의

    자격 증명, 비밀, 액세스 토큰, API 키 및 기타 유사한 정보와 같은 중요한 데이터가 있는 시나리오의 경우 필요한 보안 기능으로 데이터를 보호하고, 오프라인 또는 로컬로 작동하며, 데이터를 클라우드에 동기화하지 않고, 온라인 계정에 로그인할 필요가 없는 도구를 사용해야 합니다. 이렇게 하면 중요한 데이터가 대중에게 노출되는 위험을 줄일 수 있습니다.

SAP 아티팩트에 대한 스키마 생성

다음 논리 앱 워크플로 예는 워크플로의 SAP 트리거가 SAP 서버로부터 요청을 받을 때 트리거됩니다. 그런 다음 워크플로는 지정된 SAP 아티팩트에 대한 스키마를 생성하는 SAP 작업을 실행합니다.

요청 트리거 추가

워크플로가 HTTP를 통해 SAP 서버로부터 요청을 받도록 하려면 요청 기본 제공 트리거를 사용할 수 있습니다. 이 트리거는 SAP 서버가 워크플로에 HTTP POST 요청을 보낼 수 있는 URL이 포함된 엔드포인트를 만듭니다. 워크플로에서 이러한 요청을 받으면 트리거가 실행되어 워크플로의 다음 단계를 실행합니다.

다중 테넌트 Azure Logic Apps에 사용량 워크플로가 있는지 또는 단일 테넌트 Azure Logic Apps에 표준 워크플로가 있는지 여부에 따라 해당하는 단계를 따릅니다.

  1. Azure Portal에서 디자이너에서 열리는 사용량 논리 앱 리소스와 빈 워크플로를 만듭니다.

  2. 디자이너에서 다음 일반 단계에 따라 HTTP 요청이 수신될 때라는 요청 기본 제공 트리거를 찾아서 추가합니다.

    소비 워크플로에 대한 요청 트리거를 보여 주는 스크린샷.

  3. 워크플로를 저장합니다. 디자이너 도구 모음에서 저장을 선택합니다.

    이 단계에서는 트리거가 SAP 서버로부터 요청을 받을 수 있는 엔드포인트 URL을 생성합니다. 예를 들면 다음과 같습니다.

    소비 워크플로에서 요청을 수신하기 위해 요청 트리거가 생성한 엔드포인트 URL을 보여 주는 스크린샷.

스키마를 생성하는 SAP 작업 추가

다중 테넌트 Azure Logic Apps에 사용량 워크플로가 있는지 또는 단일 테넌트 Azure Logic Apps에 표준 워크플로가 있는지 여부에 따라 해당하는 단계를 따릅니다.

  1. 워크플로 디자이너의 요청 트리거 아래에서 새 단계를 선택합니다.

  2. 디자이너에서 다음 일반 단계에 따라 스키마 생성이라는 SAP 관리 작업을 찾아서 추가합니다.

    이 SAP 관리 작업에 대한 자세한 내용은 스키마 생성을 참조하세요.

  3. 메시지가 나타나면 온-프레미스 SAP 서버에 대한 연결 정보를 제공합니다. 완료되면 만들기를 선택합니다. 그렇지 않으면 다음 단계를 계속하여 SAP 작업을 설정합니다.

    기본적으로 SAP 관리 작업에 대한 연결을 만들 때 강력한 유형 지정을 사용하여 스키마에 대해 XML 유효성 검사를 수행하여 잘못된 값이 있는지 유효성을 검사합니다. 이 동작은 이전에 발생한 문제를 검색하는 데 도움이 될 수 있습니다. 안전한 형식 지정 설정에 대해 자세히 알아봅니다. 선택적으로 사용 가능한 다른 연결 매개 변수는 기본 연결 정보를 참조하세요.

    Azure Logic Apps가 연결을 설정하고 테스트하면 작업 정보 상자가 나타납니다. 발생할 수 있는 연결 문제에 대한 자세한 내용은 연결 문제 해결을 참조하세요.

    소비 워크플로와 스키마 생성이라는 SAP 관리 작업을 보여 주는 스크린샷.

  4. 스키마 생성 작업에서 SAP 서버에서 사용 가능한 SAP 작업을 선택하여 스키마를 생성하려는 아티팩트의 경로를 제공합니다.

    1. Body ActionUri 매개 변수의 편집 상자에서 폴더 아이콘을 선택합니다. 열리는 목록에서 BAPI, IDOC, RFC 또는 TRFC를 선택합니다. 이 예에서는 IDOC을 선택합니다. 다른 형식을 선택하면 선택 사항에 따라 사용 가능한 SAP 작업이 변경됩니다.

      참고 항목

      잘못된 게이트웨이(500) 오류 또는 잘못된 요청(400) 오류가 발생하는 경우 500 잘못된 게이트웨이 또는 400 잘못된 요청 오류를 참조하세요.

      소비 워크플로, 스키마 생성 작업 및 IDOC 선택을 보여 주는 스크린샷.

    2. 화살표를 사용하여 SAP 작업 형식 폴더를 찾아 사용하려는 SAP 작업을 찾아 선택합니다.

      이 예에서는 ORDERS>ORDERS05>720>Send를 선택합니다.

      소비 워크플로, 스키마 생성 작업 및 주문 작업 찾기를 보여 주는 스크린샷.

      원하는 작업을 찾을 수 없는 경우 경로를 수동으로 입력할 수 있습니다. 예를 들면 다음과 같습니다.

      소비 워크플로와 SAP 작업 경로를 수동으로 입력하는 방법을 보여 주는 스크린샷.

      Body ActionUri 매개 변수의 경우 식 편집기를 사용하여 매개 변수 값을 제공할 수 있습니다. 이렇게 하면 다양한 메시지 유형에 동일한 SAP 작업을 사용할 수 있습니다.

      이 SAP 작업에 대한 자세한 내용은 IDoc 작업을 위한 메시지 스키마를 참조하세요.

    3. 둘 이상의 아티팩트에 대한 스키마를 생성하려면 Body ActionUri 섹션에서 새 항목 추가를 선택합니다.

      새 항목을 추가하는 옵션을 선택하는 것을 보여 주는 스크린샷.

    4. 각 아티팩트에 대해 스키마 생성에 사용할 SAP 작업을 제공합니다. 예를 들면 다음과 같습니다.

      여러 스키마를 생성하는 데 사용할 여러 SAP 작업을 보여 주는 스크린샷.

  5. 워크플로를 저장합니다. 디자이너 도구 모음에서 저장을 선택합니다.

스키마 생성을 위한 워크플로 테스트

다중 테넌트 Azure Logic Apps에 사용량 워크플로가 있는지 또는 단일 테넌트 Azure Logic Apps에 표준 워크플로가 있는지 여부에 따라 해당하는 단계를 따릅니다.

  1. 사용량 논리 앱 리소스가 이미 활성화되어 있지 않은 경우 논리 앱 메뉴에서 개요를 선택합니다. 도구 모음에서 사용을 선택합니다.

  2. 디자이너 도구 모음에서 실행>실행을 선택하여 워크플로를 수동으로 시작합니다.

  3. 웹후크 트리거 페이로드를 시뮬레이션하고 워크플로를 트리거하려면 HTTP 요청 도구와 지침을 사용하여 요청 트리거에 필요한 메서드를 포함하여 워크플로의 요청 트리거에 의해 만들어진 엔드포인트 URL로 HTTP 요청을 보냅니다. 요청에 메시지 콘텐츠를 포함해야 합니다.

    이 예에서는 POST 메서드와 엔드포인트 URL을 사용하여 IDoc 파일을 보냅니다. 이 파일은 XML 형식이어야 하며 선택한 SAP 작업에 대한 네임스페이스를 포함해야 합니다. 예를 들면 다음과 같습니다.

    <?xml version="1.0" encoding="UTF-8" ?>
    <Send xmlns="http://Microsoft.LobServices.Sap/2007/03/Idoc/2/ORDERS05//720/Send">
      <idocData>
        <...>
      </idocData>
    </Send>
    
  4. HTTP 요청을 보낸 후 워크플로의 응답을 기다립니다.

    참고 항목

    응답에 필요한 모든 단계가 요청 시간 초과 제한 내에 완료되지 않으면 워크플로가 시간 제한될 수 있습니다. 이 조건이 발생하면 요청이 차단될 수 있습니다. 문제 진단에 도움이 되도록 논리 앱 워크플로를 확인하고 모니터링하는 방법을 알아봅니다.

  5. 논리 앱의 개요 창에 있는 실행 기록에서 워크플로 실행을 찾아서 엽니다.

  6. 스키마 생성 작업을 찾아 해당 작업의 출력을 검토합니다.

    출력에는 지정된 메시지에 대해 생성된 스키마가 표시됩니다.

워크플로 실행 기록 검토에 대한 자세한 내용은 논리 앱 워크플로 모니터링을 참조하세요.

통합 계정에 스키마 업로드

선택적으로 생성된 스키마를 통합 계정 또는 Azure Storage 계정(예: Blob 컨테이너)과 같은 리포지토리에 다운로드하거나 저장할 수 있습니다. 통합 계정은 Azure Logic Apps의 워크플로에 대한 XML 작업을 통해 최고 수준의 환경을 제공합니다. 리소스 만들기 또는 업데이트라는 Azure Resource Manager 작업을 사용하여 해당 스키마를 만드는 동일한 워크플로 내의 기존 통합 계정에 만들어진 스키마를 업로드할 수 있는 옵션이 있습니다.

참고 항목

스키마는 base64 인코딩 형식을 사용합니다. 통합 계정에 스키마를 업로드하려면 먼저 base64ToString() 함수를 사용하여 스키마를 디코딩해야 합니다. 다음 예에서는 properties 요소의 코드를 보여 줍니다.

"properties": {
   "Content": "@base64ToString(items('For_each')?['Content'])",
   "ContentType": "application/xml",
   "SchemaType": "Xml"
}

이 작업을 수행하려면 통합 계정이 필요합니다(아직 없는 경우). 다중 테넌트 Azure Logic Apps에 사용량 워크플로가 있는지 또는 단일 테넌트 Azure Logic Apps에 표준 워크플로가 있는지에 따라 해당 단계에 따라 스키마 생성 후 워크플로에서 통합 계정에 스키마를 업로드합니다.

  1. 워크플로 디자이너의 스키마 생성이라는 SAP 관리 작업 아래에서 새 단계를 선택합니다.

  2. 다음 일반 단계에 따라 리소스 만들기 또는 업데이트라는 Azure Resource Manager 관리 작업을 찾아 추가합니다. 자격 증명으로 로그인하라는 메시지가 표시되면 계속 진행합니다.

    Azure Logic Apps가 연결을 설정하고 테스트하면 작업 정보 상자가 나타납니다.

    소비 워크플로와 리소스 만들기 또는 업데이트라는 Azure Resource Manager 작업을 보여 주는 스크린샷.

  3. 리소스 만들기 또는 업데이트 작업에서 필수 정보를 제공합니다.

    1. 워크플로에서 이전 단계의 출력을 포함하려면 출력을 포함할 매개 변수 내부를 선택하고 동적 콘텐츠 목록을 열고 포함할 출력을 선택합니다.

    2. 새 매개 변수 추가 목록에서 위치속성 매개 변수를 선택합니다.

    3. 다음과 같이 추가된 매개 변수에 대한 값을 제공합니다.

      위치 및 속성이라는 매개 변수가 추가된 소비 워크플로와 Azure Resource Manager 작업을 보여 주는 스크린샷.

    스키마 생성 작업은 스키마를 컬렉션으로 생성하므로 디자이너는 Azure Resource Manager 작업 주위에 For Each 루프를 자동으로 추가합니다. 예를 들면 다음과 같습니다.

    Azure Resource Manager 작업이 포함된 각 루프와 소비 워크플로를 보여 주는 스크린샷.

  4. 워크플로를 저장합니다. 디자이너 도구 모음에서 저장을 선택합니다.

워크플로 테스트

  1. 사용량 또는 표준 논리 앱 워크플로가 있는지 여부에 따라 워크플로를 수동으로 테스트하고 실행하는 일반적인 단계를 따릅니다.

  2. 실행이 성공하면 통합 계정으로 이동하여 생성된 스키마가 있는지 확인합니다.

샘플 XML 스키마

샘플 문서를 만드는 데 사용할 XML 스키마를 생성하는 방법을 알아보려면 다음 샘플을 검토하세요. 아래 예제에서는 다음을 포함하여 여러 가지 유형의 페이로드를 사용하는 방법을 보여줍니다.

선택적 XML 프롤로그를 사용하여 XML 스키마를 시작할 수 있습니다. SAP 커넥터는 XML 프롤로그와 함께 또는 XML 프롤로그 없이 작동합니다.

<?xml version="1.0" encoding="utf-8">

RFC 요청에 대한 XML 샘플

다음 예에서는 RFC 이름이 STFC_CONNECTION인 기본 RFC 호출을 보여 줍니다. 이 요청은 xmlns=라는 기본 네임스페이스를 사용합니다. 그러나 xmlns:exampleAlias=와 같은 네임스페이스 별칭을 할당하고 사용할 수 있습니다. 네임스페이스 값은 Microsoft 서비스용 SAP의 모든 RFC에 대한 네임스페이스입니다. 요청에는 <REQUTEXT>라는 간단한 입력 매개 변수가 있습니다.

<STFC_CONNECTION xmlns="http://Microsoft.LobServices.Sap/2007/03/Rfc/">
   <REQUTEXT>exampleInput</REQUTEXT>
</STFC_CONNECTION>

다음 예에서는 테이블 매개 변수를 사용한 RFC 호출을 보여 줍니다. 이 호출 예 및 테스트 RFC 그룹은 모든 SAP 시스템에서 사용할 수 있습니다. 테이블 매개 변수의 이름은 TCPICDAT입니다. 테이블 선 유형은 ABAPTEXT이며, 이 요소는 테이블의 행마다 반복됩니다. 이 예에는 LINE이라는 단일 행이 포함되어 있습니다. 테이블 매개 변수가 있는 요청은 필드를 임의의 개수만큼 포함할 수 있으며, 여기서 숫자는 양의 정수(n)입니다.

<STFC_WRITE_TO_TCPIC xmlns="http://Microsoft.LobServices.Sap/2007/03/Rfc/">
   <RESTART_QNAME>exampleQName</RESTART_QNAME>
   <TCPICDAT>
      <ABAPTEXT xmlns="http://Microsoft.LobServices.Sap/2007/03/Types/Rfc/">
         <LINE>exampleFieldInput1</LINE>
      </ABAPTEXT>
      <ABAPTEXT xmlns="http://Microsoft.LobServices.Sap/2007/03/Types/Rfc/">
         <LINE>exampleFieldInput2</LINE>
      </ABAPTEXT>
      <ABAPTEXT xmlns="http://Microsoft.LobServices.Sap/2007/03/Types/Rfc/">
         <LINE>exampleFieldInput3</LINE>
      </ABAPTEXT>
   </TCPICDAT>
</STFC_WRITE_TO_TCPIC>

RFC STFC_WRITE_TO_TCPIC의 결과를 검토하려면 SAP Logon의 데이터 브라우저(T-Code SE16)와 TCPIC이라는 테이블을 사용합니다.

다음 예에서는 할당된 이름이 없는 필드인 익명 필드가 있는 테이블 매개 변수를 사용한 RFC 호출을 보여 줍니다. 복합 형식은 선언이 현재 노드와 모든 자식 요소에 대한 새 기본값을 설정하는 별도의 네임스페이스 아래에 선언됩니다. 이 예에서는 16진수 코드 x002F를 기호 /의 이스케이프 문자로 사용합니다. 이 기호는 SAP 필드 이름에 예약되어 있기 때문입니다.

<RFC_XML_TEST_1 xmlns="http://Microsoft.LobServices.Sap/2007/03/Rfc/">
   <IM_XML_TABLE>
      <RFC_XMLCNT xmlns="http://Microsoft.LobServices.Sap/2007/03/Rfc/">
         <_x002F_AnonymousField>AQIDBAU=</_x002F_AnonymousField>
      </RFC_XMLCNT>
   </IM_XML_TABLE>
</RFC_XML_TEST_1>

이전 예에서는 SAP 데이터 형식 byteXString에 대한 이진 배열을 인코딩하는 방법도 보여 줍니다. 이진 배열은 XML(XSD 이진 데이터 형식 xs:base64Binary)로 base64로 인코딩됩니다. 이 예에서 샘플 base64 문자열 값 AQIDBAU=는 이진 배열 [01][02][03][04]로 디코딩됩니다. 이 인코딩은 기본 SAP .NET 커넥터의 16진수 인코딩과 다르며 공간 효율적입니다. 16진수 인코딩을 사용하면 동일한 값이 문자열 01020304로 인코딩됩니다.

참고 항목

16진수 인코딩은 base64 범위의 하위 집합을 사용하고 유효한 base64 값으로 나타나므로 이진 배열 인코딩을 사용할 때는 주의해야 합니다. 예를 들어, 문자열 값 01020304도 유효한 base64 인코딩 값으로 디코딩되지만 결과적으로 이진 배열 [01][02][03][04]가 아닌 다른 이진 배열 [d3][5d][36][d3][7d][38]이 생성됩니다.

다음 예제는 네임스페이스의 접두사를 포함하고 있습니다. 모든 접두사를 한꺼번에 선언할 수도 있고, 원하는 수의 접두사를 노드 특성으로 선언할 수도 있습니다. ns0이라는 RFC 네임스페이스 별칭은 기본 형식의 루트 및 매개 변수로 사용됩니다.

참고 항목

복합 형식은 별칭 ns0을 사용하는 일반 RFC 네임스페이스 대신 별칭 ns3을 사용하는 RFC 형식의 다른 네임스페이스 아래에 선언됩니다.

<ns0:BBP_RFC_READ_TABLE xmlns:ns0="http://Microsoft.LobServices.Sap/2007/03/Rfc/" xmlns:ns3="http://Microsoft.LobServices.Sap/2007/03/Types/Rfc/">
   <ns0:DELIMITER>0</ns0:DELIMITER>
   <ns0:QUERY_TABLE>KNA1</ns0:QUERY_TABLE>
   <ns0:ROWCOUNT>250</ns0:ROWCOUNT>
   <ns0:ROWSKIPS>0</ns0:ROWSKIPS>
   <ns0:FIELDS>
      <ns3:RFC_DB_FLD>
         <ns3:FIELDNAME>KUNNR</ns3:FIELDNAME>
      </ns3:RFC_DB_FLD>
   </ns0:FIELDS>
</ns0:BBP_RFC_READ_TABLE>

BAPI 요청에 대한 XML 샘플

다음 XML 샘플은 BAPI 메서드를 호출하는 요청 예제입니다.

참고 항목

SAP는 Azure Logic Apps가 입력 필터 없이 발급하는 RFC RPY_BOR_TREE_INIT에 대한 응답으로 비즈니스 개체를 설명하여 외부 시스템에서 사용할 수 있도록 합니다. Azure Logic Apps는 출력 테이블 BOR_TREE를 검사합니다. SHORT_TEXT 필드는 비즈니스 개체의 이름에 사용됩니다. SAP가 출력 테이블에 반환하지 않은 비즈니스 개체는 Azure Logic Apps에서 액세스할 수 없습니다.

사용자 지정 비즈니스 개체를 사용하는 경우 이러한 비즈니스 개체를 SAP에 게시하고 릴리스해야 합니다. 그렇지 않으면 SAP는 사용자 지정 비즈니스 개체를 출력 테이블 BOR_TREE에 나열하지 않습니다. SAP에서 비즈니스 개체를 노출할 때까지 Azure Logic Apps에서 사용자 지정 비즈니스 개체에 액세스할 수 없습니다.

다음 예제에서는 BAPI 메서드 GETLIST를 사용하여 은행 목록을 가져옵니다. 이 샘플에는 BUS1011이라는 은행에 대한 비즈니스 개체가 포함되어 있습니다.

<GETLIST xmlns="http://Microsoft.LobServices.Sap/2007/03/Bapi/BUS1011">
   <BANK_CTRY>US</BANK_CTRY>
   <MAX_ROWS>10</MAX_ROWS>
</GETLIST>

다음 예제에서는 CREATE 메서드를 사용하여 은행 개체를 만듭니다. 이 예에서는 이전 예와 동일한 BUS1011이라는 비즈니스 개체를 사용합니다. CREATE 메서드를 사용하여 은행을 만드는 경우 이 메서드는 기본적으로 커밋되지 않으므로 변경 내용을 커밋해야 합니다.

XML 문서가 SAP 시스템에 구성된 유효성 검사 규칙을 따르는지 유효성을 검사합니다. 예를 들어, 미국에서 이 샘플 문서의 경우 은행 키(<BANK_KEY>)는 ABA 번호라고도 알려진 은행 라우팅 번호여야 합니다.

<CREATE xmlns="http://Microsoft.LobServices.Sap/2007/03/Bapi/BUS1011">
   <BANK_ADDRESS>
      <BANK_NAME xmlns="http://Microsoft.LobServices.Sap/2007/03/Types/Rfc">ExampleBankName</BANK_NAME>
      <REGION xmlns="http://Microsoft.LobServices.Sap/2007/03/Types/Rfc">ExampleRegionName</REGION>
      <STREET xmlns="http://Microsoft.LobServices.Sap/2007/03/Types/Rfc">ExampleStreetAddress</STREET>
      <CITY xmlns="http://Microsoft.LobServices.Sap/2007/03/Types/Rfc">Redmond</CITY>
   </BANK_ADDRESS>
   <BANK_CTRY>US</BANK_CTRY>
   <BANK_KEY>123456789</BANK_KEY>
</CREATE>

다음 예에서는 <BANK_KEY>의 값인 은행 라우팅 번호를 사용하여 은행에 대한 세부 정보를 가져옵니다.

<GETDETAIL xmlns="http://Microsoft.LobServices.Sap/2007/03/Bapi/BUS1011">
   <BANKCOUNTRY>US</BANKCOUNTRY>
   <BANKKEY>123456789</BANKKEY>
</GETDETAIL>

IDoc 요청에 대한 XML 샘플

일반 SAP IDoc XML 스키마를 생성하려면 SAP 로그온 애플리케이션과 T-코드 WE60을 사용합니다. 사용자 인터페이스를 통해 SAP 설명서에 액세스하고 IDoc 형식 및 확장에 대한 XSD 형식의 XML 스키마를 생성합니다. 일반 SAP 형식과 페이로드 및 기본 제공된 대화 상자에 대한 자세한 내용은 SAP 설명서를 검토합니다.

이 예제에서는 루트 노드 및 네임스페이스를 선언합니다. 샘플 코드의 URI http://Microsoft.LobServices.Sap/2007/03/Idoc/3/ORDERS05//700/Send는 다음 구성을 선언합니다.

  • /IDoc는 모든 IDoc의 루트 노드입니다.

  • /3은 공통 세그먼트 정의의 레코드 형식 버전입니다.

  • /ORDERS05는 IDoc 유형입니다.

  • //는 IDoc 확장이 없기 때문에 빈 세그먼트입니다.

  • /700은 SAP 버전입니다.

  • /Send는 SAP에 정보를 보내는 작업입니다.

<ns0:Send xmlns:ns0="http://Microsoft.LobServices.Sap/2007/03/Idoc/3/ORDERS05//700/Send" xmlns:ns3="http://schemas.microsoft.com/2003/10/Serialization" xmlns:ns1="http://Microsoft.LobServices.Sap/2007/03/Types/Idoc/Common/" xmlns:ns2="http://Microsoft.LobServices.Sap/2007/03/Idoc/3/ORDERS05//700">
   <ns0:idocData>

idocData 노드를 반복하여 호출 한 번으로 IDoc 일괄 처리를 보낼 수 있습니다. 다음 예에는 EDI_DC40이라는 하나의 제어 레코드와 여러 데이터 레코드가 있습니다.

<...>
   <ns0:idocData>
      <ns2:EDI_DC40>
         <ns1:TABNAM>EDI_DC40</ns1:TABNAM>
         <...>
         <ns1:ARCKEY>Cor1908207-5</ns1:ARCKEY>
      </ns2:EDI_DC40>
      <ns2:E2EDK01005>
         <ns2:DATAHEADERCOLUMN_SEGNAM>E23DK01005</ns2:DATAHEADERCOLUMN_SEGNAM>
         <ns2:CURCY>USD</ns2:CURCY>
      </ns2:E2EDK01005>
      <ns2:E2EDK03>
      <...>
   </ns0:idocData>

다음 예에서는 EDI_DC라는 접두사를 사용하는 샘플 IDoc 제어 레코드를 보여 줍니다. SAP 설치 및 IDoc 유형과 일치하도록 값을 업데이트해야 합니다. 예를 들어, IDoc 클라이언트 코드는 800이 아닐 수 있습니다. SAP 팀에 문의하여 SAP 설치에 올바른 값을 사용하고 있는지 확인하세요.

<ns2:EDI_DC40>
   <ns:TABNAM>EDI_DC40</ns1:TABNAM>
   <ns:MANDT>800</ns1:MANDT>
   <ns:DIRECT>2</ns1:DIRECT>
   <ns:IDOCTYP>ORDERS05</ns1:IDOCTYP>
   <ns:CIMTYP></ns1:CIMTYP>
   <ns:MESTYP>ORDERS</ns1:MESTYP>
   <ns:STD>X</ns1:STD>
   <ns:STDVRS>004010</ns1:STDVRS>
   <ns:STDMES></ns1:STDMES>
   <ns:SNDPOR>SAPENI</ns1:SNDPOR>
   <ns:SNDPRT>LS</ns1:SNDPRT>
   <ns:SNDPFC>AG</ns1:SNDPFC>
   <ns:SNDPRN>ABAP1PXP1</ns1:SNDPRN>
   <ns:SNDLAD></ns1:SNDLAD>
   <ns:RCVPOR>BTSFILE</ns1:RCVPOR>
   <ns:RCVPRT>LI</ns1:RCVPRT>

다음 예에서는 일반 세그먼트가 포함된 샘플 데이터 레코드를 보여 줍니다. 이 예제에서는 SAP 날짜 형식을 사용합니다. 강력한 형식의 문서는 2020-12-31 23:59:59 같은 네이티브 XML 날짜 형식을 사용할 수 있습니다.

<ns2:E2EDK01005>
   <ns2:DATAHEADERCOLUMN_SEGNAM>E2EDK01005</ns2:DATAHEADERCOLUMN_SEGNAM>
      <ns2:CURCY>USD</ns2:CURCY>
      <ns2:BSART>OR</ns2:BSART>
      <ns2:BELNR>1908207-5</ns2:BELNR>
      <ns2:ABLAD>CC</ns2:ABLAD>
   </ns2>
   <ns2:E2EDK03>
      <ns2:DATAHEADERCOLUMN_SEGNAM>E2EDK03</ns2:DATAHEADERCOLUMN_SEGNAM>
      <ns2:IDDAT>002</ns2:IDDAT>
      <ns2:DATUM>20160611</ns2:DATUM>
   </ns2:E2EDK03>

다음 예에서는 그룹화된 세그먼트가 있는 데이터 레코드를 보여 줍니다. 레코드에는 E2EDKT1002GRP라는 그룹 부모 노드와 E2EDKT1002E2EDKT2001을 포함한 여러 자식 노드가 포함되어 있습니다.

<ns2:E2EDKT1002GRP>
   <ns2:E2EDKT1002>
      <ns2:DATAHEADERCOLUMN_SEGNAM>E2EDKT1002</ns2:DATAHEADERCOLUMN_SEGNAM>
         <ns2:TDID>ZONE</ns2:TDID>
   </ns2:E2EDKT1002>
   <ns2:E2EDKT2001>
      <ns2:DATAHEADERCOLUMN_SEGNAM>E2EDKT2001</ns2:DATAHEADERCOLUMN_SEGNAM>
         <ns2:TDLINE>CRSD</ns2:TDLINE>
   </ns2:E2EDKT2001>
</ns2:E2EDKT1002GRP>

tRFC와 함께 사용할 IDoc 식별자를 만드는 것이 좋습니다. SAP 관리 커넥터에서 IDoc 보내기 작업을 사용하여 tid라는 트랜잭션 식별자를 설정할 수 있습니다.

다음 예에서는 트랜잭션 식별자 또는 tid를 설정하는 대체 방법을 보여 줍니다. 이 예제에서는 마지막 데이터 레코드 세그먼트 노드와 IDoc 데이터 노드가 닫혀 있습니다. 그리고 GUID guid를 tRFC 식별자로 사용하여 중복 항목을 탐지합니다.

     </E2STZUM002GRP>
  </idocData>
  <guid>8820ea40-5825-4b2f-ac3c-b83adc34321c</guid>
</Send>

다음 단계