SAP CPI 페이로드 도구: 브라우저에서 비교, 변환, 테스트 데이터 생성
두 페이로드를 비교하고, SAP 변환기 규칙으로 XML, JSON, YAML, CSV를 변환하고, 오류가 있는 테스트 페이로드를 생성하고, Groovy 스니펫을 넣으세요. 모두 iFlow 디자이너 옆에서 오프라인으로 동작합니다.
SAP Cloud Integration(SAP CPI) iFlow 작업의 절반은 페이로드를 둘러싸고 일어납니다. 같아야 하는데 다른 두 메시지, 수신 측이 XML로 원하는 JSON 본문, 오류 처리를 위한 테스트 메시지 묶음, 매주 쓰지만 늘 기억나지 않는 Groovy 한 줄. 이런 일은 보통 텍스트 편집기, 온라인 변환기, 직접 만든 스크립트로 끝나곤 합니다.
Kitegra의 Toolbox는 이것들을 브라우저 안, iFlow 디자이너 바로 옆에 모아 둡니다. 페이로드 비교, 형식 변환기, 테스트 페이로드 생성기, 치트 시트가 있는 Groovy 스니펫, 그리고 HTTP Runner입니다. HTTP Runner로 보내는 요청을 빼면 모두 오프라인으로 동작합니다. 붙여 넣은 내용은 페이지 안에만 머물며 저장되거나 전송되지 않습니다.
Toolbox를 찾는 곳
확장 프로그램의 팝업을 열고 “도구”를 선택하세요. Toolbox 목록에서 각 도구가 별도의 탭으로 열립니다. “페이로드 비교”, “형식 변환기”, “테스트 페이로드 생성기”, “스니펫과 치트 시트”, HTTP Runner, iFlow Docs입니다. iFlow에서는 다이어그램 도구 모음에 있는 Kitegra 상자의 메뉴로 “스니펫”과 “메모”를 페이지 위 패널로 열 수도 있습니다.
모든 컨트롤 옆에는 기능을 설명하는 작은 (i)가 있습니다. Toolbox는 요금제의 iFlow를 세지 않습니다.
페이로드 비교
두 페이로드를 붙여 넣거나 파일에서 불러오거나 페이지에 끌어다 놓으면 차이가 줄 단위로 표시됩니다. “이전”과 “다음”으로 차이에서 차이로 이동하며, 차이가 몇 개인지도 보여 줍니다.
- 공백 무시: 공백, 탭, 들여쓰기만 다른 줄을 같은 것으로 봅니다.
- XML 정규화: 속성을 정렬하고 네임스페이스 접두사를 무시하며 양쪽을 들여쓰기해, 실제 변경만 남깁니다.
- JSON 정규화: 키를 정렬하고 들여쓰기합니다.
- 차이만: 같은 줄을 숨기고, 그 자리에 숨긴 줄의 수를 표시합니다.
- A와 B 바꾸기: 추가로 표시되던 내용이 삭제로 표시됩니다.
올바른 형식의 XML이나 유효한 JSON이 아닌 페이로드도 텍스트로 비교됩니다. Message Monitor에서 추적한 단계의 페이로드 뷰어에는 다음 단계와 비교가 있어, 그 단계 전후의 본문으로 이 페이지를 엽니다. 메시지를 단계별로 추적하기를 참고하세요.
형식 변환기
XML, JSON, YAML, CSV 또는 아무 텍스트나 붙여 넣거나 파일을 불러오세요. 형식은 내용으로 감지되며, 그에 맞는 변환만 제공됩니다.
- XML에서 JSON, JSON에서 XML. SAP 자체 변환기의 규칙을 따릅니다.
@name멤버는 속성,$는 요소의 텍스트이며, 배열은 해당 요소를 반복합니다. 옵션은 iFlow에서 설정하는 것과 같습니다. “XML 루트 요소 추가”, “JSON 루트 요소 생략”, 그리고 항상 배열로 쓰는 요소입니다. - CSV와 JSON 또는 XML 간 상호 변환. 구분자는 자동 감지하거나 선택하며, 헤더 행과 행 요소 이름을 지정할 수 있습니다.
- YAML에서 JSON, JSON에서 YAML.
- XML에서 추론한 XSD, XSD에서 만든 샘플 XML.
- XML과 JSON의 보기 좋게 정렬과 축소.
- Base64와 URL 인코딩·디코딩, XML·JSON·Groovy 문자열의 이스케이프와 언이스케이프.
입력으로 사용은 결과를 입력 상자에 다시 넣어 한 번 더 변환할 수 있게 합니다. “변환” 옆에는 탭이 세 개 더 있습니다.
- 검증은 입력이 올바른 형식인지 확인하고 문제마다 줄과 열을 나열합니다. XSD를 주면 XML의 요소, 그 순서와 개수, 속성, 단순 유형도 확인합니다. 가벼운 검사이므로 네임스페이스, import, include, 대체 그룹, 키는 확인하지 않습니다.
- 찾기 및 바꾸기. JavaScript 정규식과 그룹을 쓸 수 있습니다.
- 일괄은 여러 파일을 같은 방식으로 변환하고 결과를 ZIP 하나로 내려받습니다. 실패한 파일은 빠지고 목록에 표시됩니다.
테스트 페이로드 생성기
오류 처리는 iFlow에서 가장 덜 테스트되는 부분입니다. 깨진 메시지를 가진 사람이 없기 때문입니다. 생성기는 실제 샘플 하나로 그런 메시지를 만듭니다.
- 실제 메시지 하나를 붙여 넣거나 업로드합니다. XML, JSON 또는 헤더 행이 있는 CSV입니다.
- 필드 표를 확인합니다. 각 필드의 유형은 값으로 추측합니다. 텍스트, 정수, 소수, 불리언, 날짜, 날짜와 시간, 이메일, 통화, 국가, UUID 또는 null입니다.
- 필드마다 규칙을 고릅니다. 샘플 값 “유지”, “같은 유형의 임의 값”, “순번”, “목록에서 선택” 중 하나입니다.
- 만들 페이로드 수(최대 1,000개)와 오류를 넣을 비율을 정합니다.
- 오류 종류를 고르고 “생성”을 클릭합니다.
오류는 수신 측이 거부하는 것들입니다. 필수 필드 누락, 빈 필드, 잘못된 유형, 잘못된 날짜·이메일·통화·국가, 음수 수량, 잘못된 네임스페이스, 깨진 XML·JSON·CSV, 중복 ID, 추가 필드, null 값입니다. 오류가 있는 페이로드에는 오류가 하나씩 들어갑니다.
같은 샘플, 규칙, 시드는 항상 같은 페이로드를 만들므로 같은 데이터로 테스트를 다시 실행할 수 있습니다. ZIP 다운로드는 페이로드마다 파일 하나와, 각 파일의 오류와 바꾼 필드를 나열한 manifest.json을 줍니다. 하나의 파일로 다운로드는 JSON Lines, 또는 빈 줄로 구분한 XML과 CSV를 씁니다. Runner용 데이터 세트로 저장은 묶음을 HTTP Runner에 넘기며, HTTP Runner는 각 페이로드를 iFlow로 보내고 어떤 응답이 예상대로 돌아왔는지 보여 줄 수 있습니다.
Groovy 스니펫과 치트 시트
“스니펫” 탭에는 Cloud Integration 스크립트용 Groovy 패턴 32개가 있습니다. 모두 processData(Message message) 안에 넣도록 작성되었고, 클래스 이름을 전부 써서 import가 필요 없습니다. 본문, 헤더, 교환 속성 읽기와 설정, 큰 본문 스트리밍, XmlSlurper·XmlParser·MarkupBuilder, XXE를 막는 안전한 XML 파싱, JsonSlurper와 JsonBuilder, 모니터링에서 검색할 수 있는 값, 메시지 로그의 첨부 파일, 명확한 오류로 실패하기, 예외 하위 프로세스의 HTTP 오류, Secure Store 자격 증명, Value Mapping과 Partner Directory 조회를 다룹니다.
이름이나 태그로 검색하세요. 디자이너에서 스크립트를 편집 모드로 열어 두었다면 삽입이 스니펫을 커서 위치에 입력합니다. 그렇지 않으면 복사하세요. 내 스니펫 추가로 내 스니펫을 최대 20개까지 보관하며, 로그인하면 Kitegra 계정과 동기화됩니다. 비밀번호나 키는 넣지 마세요.
“치트 시트” 탭에는 매주 찾아보는 것들이 있습니다. Simple 연산자, 예시가 있는 Java 날짜 패턴, 샘플 XML에서 실행되는 XPath 1.0 함수, SAP와 Apache Camel 문서 링크입니다. 예시를 클릭하면 복사됩니다. 표현식 자체는 SAP CPI의 Camel Simple 표현식에서 설명합니다.
iFlow에 이미 있는 스크립트를 읽으려면 iFlow Docs의 “스크립트 설명”을 사용하세요. 스크립트마다 목적, 읽는 것, 설정하거나 바꾸는 것, 주요 로직, 사용하는 SAP API, 위험 요소를 나열합니다.
HTTP Runner
HTTP Runner는 Process Integration Runtime 서비스 키의 OAuth로 iFlow의 HTTPS 엔드포인트를 호출하고, 요청을 컬렉션에 보관하며, 응답을 확인합니다. “iFlow 정보”에서 각 엔드포인트를 cURL로 복사하거나 Runner에서 열 수 있습니다. 전체 과정은 서비스 키로 HTTPS iFlow 테스트하기에 있습니다.
보관하는 것과 요금제에 포함된 것
비교, 변환기, 생성기, 치트 시트는 페이지 안에서 실행되며 아무것도 보관하지 않습니다. 내 스니펫과, 인증 값과 비밀 변수를 뺀 HTTP Runner 컬렉션은 로그인하면 Kitegra 계정과 동기화됩니다.
오프라인 도구는 모든 요금제에 있습니다. HTTP Runner는 Free와 Starter에서는 제한적으로, Pro와 팀 요금제에서는 모두 쓸 수 있습니다. Kitegra 출시 기간에는 Free 요금제를 포함해 로그인한 모든 사용자가 모든 도구를 쓸 수 있습니다. 요금제 비교하기.
다음 iFlow에서 사용해 보세요
Kitegra이 SAP Integration Suite 디자이너에 무엇을 더하는지 읽어 보거나, Toolbox로 할 수 있는 모든 것을 살펴보세요.
자주 묻는 질문
내 페이로드가 어딘가로 전송되나요?
아니요. 비교, 변환기, 생성기, 치트 시트는 브라우저 페이지 안에서 실행됩니다. 붙여 넣거나 불러온 내용은 저장되거나 전송되지 않습니다.
변환기는 SAP 변환기와 같은 결과를 내나요?
SAP의 JSON to XML, XML to JSON 변환기와 같은 규칙과 옵션을 따릅니다. 속성, 요소 텍스트, 배열, 추가한 루트 요소, 생략한 JSON 루트입니다. 결과가 정확해야 할 때는 iFlow를 실행하세요.
생성한 테스트 세트를 다시 만들 수 있나요?
네. 같은 샘플, 규칙, 시드는 항상 같은 페이로드를 만듭니다. 오류 종류를 바꿔도 값은 그대로입니다.
Groovy 스크립트에 스니펫을 넣으려면 어떻게 하나요?
디자이너에서 스크립트를 편집 모드로 열고, 넣을 위치에 커서를 둔 다음 스니펫의 “삽입”을 클릭하세요. 그런 다음 iFlow는 직접 저장하세요.
Toolbox도 iFlow를 세나요?
아니요. iFlow를 세는 것은 Helper, Message Monitor, iFlow Inspector, iFlow Docs뿐입니다.