XMLStreamingBuilder - 범위 지정됨
작성기 객체를 만들어 REST 또는 SOAP 요청에서 사용할 큰 XML 페이로드를 빌드하여 대량 데이터를 외부 공급업체 API에 보냅니다. 비스트리밍 옵션에 대한 XML 문자열로 페이로드를 생성할 수도 있습니다.
sn_ih 네임스페이스 식별자와 함께 이러한 메서드를 사용합니다. 예를 들어, 이 API를 사용하여 스크립트 단계에서 XML 페이로드 워크플로우 스튜디오 를 생성하고 반환된 값을 REST 단계에 전달하여 요청을 외부 공급업체 서비스로 보낼 수 있습니다. 추가 정보를 보려면 워크플로우 스튜디오 스크립트 단계를 참조하십시오.
API 호출 순서
먼저 XMLStreamingBuilder 를 사용하여 빌더 객체를 인스턴스화한 다음 XMLStreamingAPI 클래스의 메서드를 호출하여 XML 페이로드를 생성합니다.
- 1. XMLStreamingBuilder : 빌더 객체를 만듭니다.
- 다음 순서로 이러한 메서드를 사용하여 빌더 개체를 만듭니다.
- XMLStreamingBuilder():XMLStreamingBuilder 객체를 인스턴스화합니다.
- withAttachment(): 선택 사항입니다. XML 문서를 첨부 파일로 작성하고 스트리밍 첨부 파일 [streaming_attachment] 테이블에 저장합니다. 이 메서드를 호출하지 않으면 API는 페이로드를 XML 문자열로 빌드합니다.
- expiresAt(): 선택 사항입니다. 첨부 파일이 만료되는 시간을 설정합니다. False가 기본값입니다. 또한 withAttachment() 메서드를 호출해야 합니다.
- build(): XMLStreamingAPI 객체를 반환합니다.
- 2. XMLStreamingAPI: XML 페이로드를 빌드합니다.
- 다음 순서로 이러한 메서드를 사용하여 XML 페이로드를 생성합니다.
- startDocument():XML 문서에 최상위 부모 요소를 만듭니다.
- XML 문서에서 자식 요소를 생성하는 메서드(예: writeTextElement(),startElement() 및 writeArray()).
- writeAttribute(), writeNamespace() 및 writeDtd()와 같은 요소에 대한 속성을 생성하는 메서드입니다.
- endElement():XML 요소를 닫습니다.
- endDocument: 최상위 상위 요소를 닫습니다.
- getXMLString() 또는 getAttachmentId(): 사용자가 생성한 XML 문자열 또는 첨부 파일 ID를 반환합니다.
- close():XMLStreamingAPI 객체를 닫습니다.
크기 제한
이 API를 통해 생성된 페이로드는 다음 크기 제한을 초과할 수 없습니다.
- 첨부 파일: 200MB
- 문자열: 5MB
다음 예제에서는 XML 문서를 만들고 정의된 만료 날짜가 있는 스트리밍 첨부 파일 [streaming_attachment] 테이블에 저장하는 방법을 보여 줍니다.
try {
var ttl = new GlideDateTime("2011-01-01 12:00:00");
var builder = new sn_ih.XMLStreamingBuilder()
.withAttachment() // Creates the XML document in streaming mode within an attachment.
.expiresAt(ttl) // Sets an expiration date for the attachment.
.build(); // Creates the XMLStreamingAPI object.
builder.startDocument("Employee") // Begins generating the XML document.
.writeTextElement("firstName","John") // Writes a "firstName" element and value.
.writeTextElement("lastName","Smith")
.writeTextElement("age","25")
.startElement("address") // Adds an "address" parent element.
.writeTextElement("streetAddress", "21 2nd Street") // Writes a child element and value.
.writeTextElement("city", "Santa Clara")
.writeTextElement("state", "CA")
.writeTextElement("postalCode", "11111")
.endElement() // Adds a closing tag for the "address" element.
.startElement("phoneNumber")
.writeTextElement("type","home")
.writeTextElement("number","212 555-1234")
.writeTextElement("type","fax")
.writeTextElement("number","646 555-4567")
.endElement()
.endDocument() // Stops generating the XML document.
gs.log(builder.getAttachmentId()); // Returns the sys_id of the attachment.
} catch (err) {
gs.log(err);
} finally {
builder.close();
}또는 스크립트 단계에서 API를 사용하여 페이로드를 XML 문자열로 만드는 방법을 예시합니다. 이 옵션을 사용하여 5MB 미만의 페이로드를 생성할 수 있습니다.
(function execute(inputs, outputs) {
var builder = new sn_ih.XMLStreamingBuilder().build();
builder.startDocument("Employee")
.enablePrettyPrint()
.writeTextElement("firstName","John")
.writeTextElement("lastName","Smith")
.writeTextElement("age","25")
.startElement("address")
.writeTextElement("streetAddress", "21 2nd Street")
.writeTextElement("city", "Santa Clara")
.writeTextElement("state", "CA")
.writeTextElement("postalCode", "11111")
.endElement()
.startElement("phoneNumber")
.writeTextElement("type","home")
.writeTextElement("number","212 555-1234")
.writeTextElement("type","fax")
.writeTextElement("number","646 555-4567")
.endElement()
.endDocument()
outputs.payload = builder.getXMLString();
})(inputs, outputs);출력:
<?xml version="1.0" encoding="UTF-8"?>
<firstName>John</firstName>
<lastName>Smith</lastName>
<age>25</age>
<address>
<streetAddress>21 2nd Street</streetAddress>
<city>Santa Clara</city>
<state>CA</state>
<postalCode>11111</postalCode>
</address>
<phoneNumber>
<type>home</type>
<number>212 555-1234</number>
<type>fax</type>
<number>646 555-4567</number>
</phoneNumber>XMLStreamingBuilder - XMLStreamingBuilder()
XMLStreamingBuilder 개체를 인스턴스화합니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| 안 함 |
이 예제에서는 빌더 개체를 인스턴스화하는 방법을 보여 줍니다.
var builder = new sn_ih.XMLStreamingBuilder()
XMLStreamingBuilder - build()
XMLStreamingAPI 객체를 반환합니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| 없음 |
| 유형 | 설명 |
|---|---|
| XMLStreamingAPI | 페이로드를 구성하기 위한 스트리밍 XML 객체입니다. |
다음 예제에서는 XML 문서를 만들고 정의된 만료 날짜가 있는 스트리밍 첨부 파일 [streaming_attachment] 테이블에 저장하는 방법을 보여 줍니다.
try {
var ttl = new GlideDateTime("2011-01-01 12:00:00");
var builder = new sn_ih.XMLStreamingBuilder()
.withAttachment() // Creates the XML document in streaming mode within an attachment.
.expiresAt(ttl) // Sets an expiration date for the attachment.
.build(); // Creates the XMLStreamingAPI object.
builder.startDocument("Employee") // Begins generating the XML document.
.writeTextElement("firstName","John") // Writes a "firstName" element and value.
.writeTextElement("lastName","Smith")
.writeTextElement("age","25")
.startElement("address") // Adds an "address" parent element.
.writeTextElement("streetAddress", "21 2nd Street") // Writes a child element and value.
.writeTextElement("city", "Santa Clara")
.writeTextElement("state", "CA")
.writeTextElement("postalCode", "11111")
.endElement() // Adds a closing tag for the "address" element.
.startElement("phoneNumber")
.writeTextElement("type","home")
.writeTextElement("number","212 555-1234")
.writeTextElement("type","fax")
.writeTextElement("number","646 555-4567")
.endElement()
.endDocument() // Stops generating the XML document.
gs.log(builder.getAttachmentId()); // Returns the sys_id of the attachment.
} catch (err) {
gs.log(err);
} finally {
builder.close();
}
XMLStreamingBuilder - expiresAt(객체 expiresAt)
첨부 파일이 만료되는 시간을 설정합니다. 또한 withAttachment() 메서드를 호출해야 합니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| expiresAt | Glide날짜/시간 | 첨부 파일이 만료될 때 설정되는 객체입니다.
|
| 유형 | 설명 |
|---|---|
| XMLStreaming빌더 | XML 페이로드를 시작하는 데 사용되는 작성기 객체입니다. |
다음 예제에서는 XML 문서를 만들고 정의된 만료 날짜가 있는 스트리밍 첨부 파일 [streaming_attachment] 테이블에 저장하는 방법을 보여 줍니다.
try {
var ttl = new GlideDateTime("2011-01-01 12:00:00");
var builder = new sn_ih.XMLStreamingBuilder()
.withAttachment() // Creates the XML document in streaming mode within an attachment.
.expiresAt(ttl) // Sets an expiration date for the attachment.
.build(); // Creates the XMLStreamingAPI object.
builder.startDocument("Employee") // Begins generating the XML document.
.writeTextElement("firstName","John") // Writes a "firstName" element and value.
.writeTextElement("lastName","Smith")
.writeTextElement("age","25")
.startElement("address") // Adds an "address" parent element.
.writeTextElement("streetAddress", "21 2nd Street") // Writes a child element and value.
.writeTextElement("city", "Santa Clara")
.writeTextElement("state", "CA")
.writeTextElement("postalCode", "11111")
.endElement() // Adds a closing tag for the "address" element.
.startElement("phoneNumber")
.writeTextElement("type","home")
.writeTextElement("number","212 555-1234")
.writeTextElement("type","fax")
.writeTextElement("number","646 555-4567")
.endElement()
.endDocument() // Stops generating the XML document.
gs.log(builder.getAttachmentId()); // Returns the sys_id of the attachment.
} catch (err) {
gs.log(err);
} finally {
builder.close();
}
XMLStreamingBuilder - 첨부 파일과 함께 ()
XML 문서를 첨부 파일로 작성하고 스트리밍 첨부 파일 [streaming_attachment] 테이블에 저장합니다. 이 메서드를 호출하지 않으면 API는 XML 문서를 문자열로 만듭니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| 없음 |
| 유형 | 설명 |
|---|---|
| XMLStreaming빌더 | XML 페이로드를 시작하는 데 사용되는 작성기 객체입니다. |
다음 예제에서는 XML 문서를 만들고 정의된 만료 날짜가 있는 스트리밍 첨부 파일 [streaming_attachment] 테이블에 저장하는 방법을 보여 줍니다.
try {
var ttl = new GlideDateTime("2011-01-01 12:00:00");
var builder = new sn_ih.XMLStreamingBuilder()
.withAttachment() // Creates the XML document in streaming mode within an attachment.
.expiresAt(ttl) // Sets an expiration date for the attachment.
.build(); // Creates the XMLStreamingAPI object.
builder.startDocument("Employee") // Begins generating the XML document.
.writeTextElement("firstName","John") // Writes a "firstName" element and value.
.writeTextElement("lastName","Smith")
.writeTextElement("age","25")
.startElement("address") // Adds an "address" parent element.
.writeTextElement("streetAddress", "21 2nd Street") // Writes a child element and value.
.writeTextElement("city", "Santa Clara")
.writeTextElement("state", "CA")
.writeTextElement("postalCode", "11111")
.endElement() // Adds a closing tag for the "address" element.
.startElement("phoneNumber")
.writeTextElement("type","home")
.writeTextElement("number","212 555-1234")
.writeTextElement("type","fax")
.writeTextElement("number","646 555-4567")
.endElement()
.endDocument() // Stops generating the XML document.
gs.log(builder.getAttachmentId()); // Returns the sys_id of the attachment.
} catch (err) {
gs.log(err);
} finally {
builder.close();
}이 예시에서는 XML 페이로드를 빌드하고 문자열로 저장하는 방법을 보여줍니다.
(function execute(inputs, outputs) {
var builder = new sn_ih.XMLStreamingBuilder().build();
builder.startDocument("Employee")
.enablePrettyPrint()
.writeTextElement("firstName","John")
.writeTextElement("lastName","Smith")
.writeTextElement("age","25")
.startElement("address")
.writeTextElement("streetAddress", "21 2nd Street")
.writeTextElement("city", "Santa Clara")
.writeTextElement("state", "CA")
.writeTextElement("postalCode", "11111")
.endElement()
.startElement("phoneNumber")
.writeTextElement("type","home")
.writeTextElement("number","212 555-1234")
.writeTextElement("type","fax")
.writeTextElement("number","646 555-4567")
.endElement()
.endDocument()
outputs.payload = builder.getXMLString();
})(inputs, outputs);출력:
<?xml version="1.0" encoding="UTF-8"?>
<firstName>John</firstName>
<lastName>Smith</lastName>
<age>25</age>
<address>
<streetAddress>21 2nd Street</streetAddress>
<city>Santa Clara</city>
<state>CA</state>
<postalCode>11111</postalCode>
</address>
<phoneNumber>
<type>home</type>
<number>212 555-1234</number>
<type>fax</type>
<number>646 555-4567</number>
</phoneNumber>