GlideSysAttachment - 범위 지정
GlideSysAttachment API는 첨부 파일을 처리하는 방법을 제공합니다.
내용은 getContent() 가 호출될 때 바이트 배열이 아닌 문자열로 반환됩니다.
getContentStream()이 호출되면 콘텐츠가 GlideScriptableInputStream 객체로 반환됩니다. GlideScriptableInputStream에는 문자열로 변환되지 않은 실제 바이트가 포함되어 있습니다.
범위가 지정된 GlideSysAttachment - copy(sourceTable 문자열, sourceID 문자열, targetTable 문자열, targetID 문자열)
원본 기록의 첨부 파일을 대상 기록으로 복사합니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| sourceTable | 문자열 | 복사할 첨부 파일이 있는 테이블의 이름입니다. |
| sourceID | 문자열 | 소스 테이블의 sys_id입니다. |
| targetTable | 문자열 | 첨부 파일을 추가할 테이블의 이름입니다. |
| 대상ID | 문자열 | 대상 테이블의 sys_id입니다. |
| 유형 | 설명 |
|---|---|
| 문자열 | 복사된 첨부 파일의 sys_ids 배열입니다. |
var attachment = new GlideSysAttachment();
var incidentSysID = 'ab1b30031b04ec101363ff37dc4bcbfc';
var incGR = new GlideRecord('incident');
incGR.get(incidentSysID);
var copiedAttachments = attachment.copy('incident', incidentSysID, 'problem', incGR.getValue('problem_id'));
gs.info('Copied attachments: ' + copiedAttachments);
출력:
Copied attachments: 6e4621df1bc420501363ff37dc4bcbb0,a87769531b0820501363ff37dc4bcba2
범위가 지정된 GlideSysAttachment - deleteAttachment(attachmentID 문자열)
지정된 첨부 파일을 삭제합니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| 첨부 파일 ID | 문자열 | 첨부 파일의 sys_id입니다. |
| 유형 | 설명 |
|---|---|
| void |
var attachment = new GlideSysAttachment();
var attachmentSysID = 'a87769531b0820501363ff37dc4bcba2';
attachment.deleteAttachment(attachmentSysID);
범위가 지정된 GlideSysAttachment - getAttachments(tableName 문자열, sys_id 문자열)
이름, 유형 또는 크기와 같은 일치하는 첨부 파일 메타데이터가 포함된 GlideRecord를 반환합니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| tableName | 문자열 | 첨부 파일이 속한 테이블의 이름입니다. 예: 인시던트. |
| sys_id | 문자열 | 첨부 파일이 속한 기록의 sys_id입니다. |
| 유형 | 설명 |
|---|---|
| GlideRecord | 이름, 유형 또는 크기와 같은 일치하는 첨부 파일 메타데이터를 포함하는 GlideRecord 객체입니다. |
다음 스크립트는 두 개의 첨부 파일이 있는 기록의 첨부 파일 이름을 나열합니다.
var attachment = new GlideSysAttachment();
var agr = attachment.getAttachments('<table_name>', '<record_sys_id>');
while(agr.next())
gs.info(agr.getValue('file_name'));
출력:
*** Script: filename1.txt
*** Script: filename2.txt
범위가 지정된 GlideSysAttachment - getContent(GlideRecord sysAttachment)
첨부 파일 컨텐츠를 문자열로 반환합니다.
이 메서드는 범위가 지정된 애플리케이션에서만 사용할 수 있습니다. 이 메서드는 전역 범위에서 사용될 때 undefined 를 반환합니다. 전역 범위의 첨부 파일 컨텐츠를 읽으려면 GlideSysAttachment - Global API에서 getContentStream 메서드를 사용합니다.
- CSV (*.csv)
- JSON(*.json)
- 텍스트(*.txt)
| 이름 | 유형 | 설명 |
|---|---|---|
| sysattachment | GlideRecord | 첨부 파일 기록입니다. |
| 유형 | 설명 |
|---|---|
| 문자열 | 문자열로 된 첨부 파일 컨텐츠입니다. 최대 5MB의 데이터를 반환합니다. |
var attachment = new GlideSysAttachment();
var agr = attachment.getAttachments('incident', '78271e1347c12200e0ef563dbb9a7109'); //create attachment GlideRecord
while(agr.next()) { //for each attachment on the incident record
gs.info(agr.getValue('file_name')); //print file name of attachment
var attachmentContent = attachment.getContent(agr);
gs.info('Attachment content: ' + attachmentContent); //print attachment content
}
출력
Doc1.txt
Attachment content: I am text in a txt file attached to a record.
범위가 지정된 GlideSysAttachment - getContentBase64(GlideRecord sysAttachment)
첨부 파일 컨텐츠를 base64 인코딩을 사용하는 문자열로 반환합니다.
이 메서드는 범위가 지정된 애플리케이션에서만 사용할 수 있습니다. 이 메서드는 전역 범위에서 사용될 때 undefined 를 반환합니다. 전역 범위의 첨부 파일 컨텐츠를 읽으려면 GlideSysAttachment - Global API에서 getContentStream 메서드를 사용합니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| sysattachment | GlideRecord | 첨부 파일 기록입니다. |
| 유형 | 설명 |
|---|---|
| 문자열 | 첨부 파일 컨텐츠는 base64 인코딩을 사용하는 문자열입니다. 최대 5MB의 데이터를 반환합니다. |
var attachment = new GlideSysAttachment();
var agr = attachment.getAttachments('incident', '78271e1347c12200e0ef563dbb9a7109'); //create attachment GlideRecord
while(agr.next()) { //for each attachment on the incident record
gs.info(agr.getValue('file_name')); //print file name of attachment
var attachmentContent = attachment.getContentBase64(agr);
gs.info('Attachment content: ' + attachmentContent); //print attachment content
}
출력
Doc1.txt
Attachment content: SSBhbSB0ZXh0IGluIGEgdHh0IGZpbGUgYXR0YWNoZWQgdG8gYSByZWNvcmQuIA0=
범위가 지정된 GlideSysAttachment - getContentStream(문자열 sysID)
첨부 파일의 sys_id 지정된 GlideScriptableInputStream 객체를 반환합니다.
GlideTextReader API를 사용하여 콘텐츠 스트림을 읽을 수 있습니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| sysID | 문자열 | 첨부 파일 sys_id. |
| 유형 | 설명 |
|---|---|
| GlideScriptableInputStream | 첨부 파일 컨텐츠를 포함하는 스트림입니다. |
var attachment = new GlideSysAttachment();
var attachmentSysID = '6e4621df1bc420501363ff37dc4bcbb0';
var attachmentContentStream = attachment.getContentStream(attachmentSysID);
gs.info('Attachment content stream: ' + attachmentContentStream);
출력:
Attachment content stream: com.glide.communications.GlideScriptableInputStream@14bd299
범위 지정 GlideSysAttachment - GlideSysAttachment()
GlideSysAttachment 클래스의 인스턴스를 만듭니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| 없음 |
범위가 지정된 GlideSysAttachment - write(GlideRecord 기록, 문자열 fileName, 문자열 contentType, 문자열 컨텐츠)
지정된 기록에 지정된 첨부 파일을 첨부합니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| 기록 | GlideRecord | 첨부 파일을 첨부할 기록입니다. |
| fileName | 문자열 | 첨부 파일 이름입니다. |
| Contenttype | 문자열 | 첨부 파일 컨텐츠 유형입니다. |
| 컨텐츠 | 문자열 | 첨부 파일 컨텐츠입니다. |
| 유형 | 설명 |
|---|---|
| 문자열 | 첨부 파일 sys_id. 첨부 파일이 추가되지 않은 경우 null을 반환합니다. |
var attachment = new GlideSysAttachment();
//set up inputs
var rec = new GlideRecord('incident');
rec.get('78271e1347c12200e0ef563dbb9a7109');
var fileName = 'example.txt';
var contentType = 'text/csv';
var content = 'The text that is stored inside my file';
var agr = attachment.write(rec, fileName, contentType, content);
gs.info('The attachment sys_id is: ' + agr);
출력:
The attachment sys_id is: 01271e4317c13311e0ef563dbb9abe34
범위가 지정된 GlideSysAttachment - writeBase64(GlideRecord now_GR, 문자열 fileName, 문자열 contentType, 문자열 content_base64Encoded)
base64 인코딩 컨텐츠를 사용하여 지정된 기록에 대한 첨부 파일을 삽입합니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| now_GR | GlideRecord | 첨부 파일이 첨부될 기록입니다. |
| fileName | 문자열 | 첨부 파일의 파일 이름입니다. |
| Contenttype | 문자열 | 첨부 파일의 컨텐츠 유형입니다. |
| 컨텐츠 | 문자열 | base64 형식의 첨부 파일 컨텐츠입니다. |
| 유형 | 설명 |
|---|---|
| 문자열 | 생성된 첨부 파일의 Sys_id입니다. |
var attachment = new GlideSysAttachment();
var rec = new GlideRecord('incident');
var incidentSysID = 'ab1b30031b04ec101363ff37dc4bcbfc';
rec.get(incidentSysID);
var fileName = 'example.txt';
var contentType = 'text/csv';
var base64Encodedcontent = 'SSBhbSB0ZXh0Lg==';
var agr = attachment.writeBase64(rec, fileName, contentType, base64Encodedcontent);
gs.info('The attachment sys_id is: ' + agr);
출력
The attachment sys_id is: 10cde9971b0820501363ff37dc4bcba6
범위가 지정된 GlideSysAttachment - writeContentStream(GlideRecord now_GR, 문자열 fileName, 문자열 contentType, GlideScriptableInputStream inputStream)
입력 스트림을 사용하여 첨부 파일을 삽입합니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| now_GR | GlideRecord | 첨부 파일이 첨부될 기록입니다. |
| fileName | 문자열 | 첨부 파일의 파일 이름입니다. |
| Contenttype | 문자열 | 첨부 파일의 컨텐츠 유형입니다. |
| 컨텐츠 | GlideScriptableInputStream | 첨부 파일 컨텐츠입니다. |
| 유형 | 설명 |
|---|---|
| 문자열 | 생성된 첨부 파일의 Sys_id입니다. |
sys_attachment 테이블의 콘텐츠 스트림을 test_table 기록에 첨부합니다.
function copyAttachmentToGlideRecord(conceptSysId) {
// Get record from test_table using sys_id
var targetGlideRecord = new GlideRecord("test_table");
if (!targetGlideRecord.get(conceptSysId)) {
throw ("Cannot find record created by test with sys_id: " + conceptSysId);
}
// Get record from sys_attachment table
var sourceAttachmentGlideRecord = new GlideRecord('sys_attachment');
sourceAttachmentGlideRecord.query();
sourceAttachmentGlideRecord.next();
// Get field values from retrieved sys_attachment record
var fileName = sourceAttachmentGlideRecord.getValue('file_name');
var contentType = sourceAttachmentGlideRecord.getValue('content_type');
var sourceAttachmentSysId = sourceAttachmentGlideRecord.getValue('sys_id');
// Attach sys_attachment record content stream to test_table record
var gsa = new GlideSysAttachment();
gsa.writeContentStream(
targetGlideRecord,
fileName,
contentType,
gsa.getContentStream(sourceAttachmentSysId));
gs.info("Attachment created");
}