GlideSysAttachment - com escopo
A API GlideSysAttachment fornece uma maneira de lidar com anexos.
O conteúdo é retornado como uma cadeia de caracteres, não como uma matriz de bytes quando getContent() é chamado.
O conteúdo é retornado como um objeto GlideScriptableInputStream quando getContentStream() é chamado. O GlideScriptableInputStream contém os bytes reais não convertidos em uma cadeia de caracteres.
GlideSysAttachment com escopo - copy(cadeia de caracteres sourceTable, cadeia de caracteres sourceID, cadeia de caracteres targetTable, cadeia de caracteres targetID)
Copia anexos do registro de origem para o registro de destino.
| Nome | Tipo | Descrição |
|---|---|---|
| sourceTable | Cadeia de caracteres | Nome da tabela com os anexos a serem copiados. |
| sourceID | Cadeia de caracteres | sys_id da tabela de origem. |
| targetTable | Cadeia de caracteres | Nome da tabela na qual os anexos serão adicionados. |
| ID de destino | Cadeia de caracteres | sys_id da tabela de destino. |
| Tipo | Descrição |
|---|---|
| Cadeia de caracteres | Matriz de sys_ids dos anexos que foram copiados. |
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);
Saída:
Copied attachments: 6e4621df1bc420501363ff37dc4bcbb0,a87769531b0820501363ff37dc4bcba2
GlideSysAttachment com escopo - deleteAttachment(cadeia de caracteres attachmentID)
Exclui o anexo indicado.
| Nome | Tipo | Descrição |
|---|---|---|
| ID do anexo | Cadeia de caracteres | sys_id do anexo. |
| Tipo | Descrição |
|---|---|
| vazio |
var attachment = new GlideSysAttachment();
var attachmentSysID = 'a87769531b0820501363ff37dc4bcba2';
attachment.deleteAttachment(attachmentSysID);
GlideSysAttachment com escopo - getAttachments(cadeia de caracteres "tableName", cadeia de caracteres sys_id)
Retorna um GlideRecord contendo os metadados do anexo correspondente, como nome, tipo ou tamanho.
| Nome | Tipo | Descrição |
|---|---|---|
| tableName | Cadeia de caracteres | Nome da tabela à qual o anexo pertence; por exemplo, incidente. |
| sys_id | Cadeia de caracteres | O sys_id do registro ao qual o anexo pertence. |
| Tipo | Descrição |
|---|---|
| GlideRecord | Objeto GlideRecord que contém os metadados do anexo correspondente, como nome, tipo ou tamanho. |
O script a seguir lista os nomes de arquivo de anexo para um registro com dois anexos.
var attachment = new GlideSysAttachment();
var agr = attachment.getAttachments('<table_name>', '<record_sys_id>');
while(agr.next())
gs.info(agr.getValue('file_name'));
Saída:
*** Script: filename1.txt
*** Script: filename2.txt
GlideSysAttachment com escopo - getContent(sysAttachment de GlideRecord)
Retorna o conteúdo do anexo como uma cadeia de caracteres.
Este método é para uso somente em aplicações com escopo. Este método retorna indefinido quando usado no escopo global. Para ler o conteúdo do anexo no escopo global, use o método getContentStream da API GlideSysAttachment - Global.
- CSV (*.csv)
- JSON (*. json)
- Texto (*.txt)
| Nome | Tipo | Descrição |
|---|---|---|
| sysAttachment | GlideRecord | Registro de anexo. |
| Tipo | Descrição |
|---|---|
| Cadeia de caracteres | Conteúdo do anexo como uma cadeia de caracteres. Retorna até 5 MB de dados. |
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
}
Saída
Doc1.txt
Attachment content: I am text in a txt file attached to a record.
GlideSysAttachment com escopo - getContentBase64(GlideRecord sysAttachment)
Retorna o conteúdo do anexo como uma cadeia de caracteres com codificação base64.
Este método é para uso somente em aplicações com escopo. Este método retorna indefinido quando usado no escopo global. Para ler o conteúdo do anexo no escopo global, use o método getContentStream da API GlideSysAttachment - Global.
| Nome | Tipo | Descrição |
|---|---|---|
| sysAttachment | GlideRecord | Registro de anexo. |
| Tipo | Descrição |
|---|---|
| Cadeia de caracteres | Conteúdo do anexo como uma cadeia de caracteres com codificação base64. Retorna até 5 MB de dados. |
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
}
Saída
Doc1.txt
Attachment content: SSBhbSB0ZXh0IGluIGEgdHh0IGZpbGUgYXR0YWNoZWQgdG8gYSByZWNvcmQuIA0=
GlideSysAttachment com escopo - getContentStream(cadeia de caracteres sysID)
Retorna um objeto GlideScriptableInputStream de acordo com o sys_id de um anexo.
Você pode usar a API GlideTextReader para ler o fluxo de conteúdo.
| Nome | Tipo | Descrição |
|---|---|---|
| sysID | Cadeia de caracteres | sys_id do anexo. |
| Tipo | Descrição |
|---|---|
| GlideScriptableInputStream | Fluxo que contém o conteúdo do anexo. |
var attachment = new GlideSysAttachment();
var attachmentSysID = '6e4621df1bc420501363ff37dc4bcbb0';
var attachmentContentStream = attachment.getContentStream(attachmentSysID);
gs.info('Attachment content stream: ' + attachmentContentStream);
Saída:
Attachment content stream: com.glide.communications.GlideScriptableInputStream@14bd299
GlideSysAttachment com escopo — GlideSysAttachment()
Cria uma instância da classe GlideSysAttachment.
| Nome | Tipo | Descrição |
|---|---|---|
| Nenhum |
GlideSysAttachment com escopo - write(registro GlideRecord, Cadeia de caracteres fileName, Cadeia de caracteres contentType, Cadeia de caracteres conteúdo)
Anexa um anexo especificado ao registro especificado.
| Nome | Tipo | Descrição |
|---|---|---|
| registro | GlideRecord | Registro ao qual anexar o anexo. |
| fileName | Cadeia de caracteres | Nome do arquivo do anexo. |
| contentType | Cadeia de caracteres | Tipo de conteúdo de anexo. |
| conteúdo | Cadeia de caracteres | Conteúdo do anexo. |
| Tipo | Descrição |
|---|---|
| Cadeia de caracteres | sys_id do anexo. Retornará nulo se o anexo não tiver sido adicionado. |
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);
Saída:
The attachment sys_id is: 01271e4317c13311e0ef563dbb9abe34
GlideSysAttachment com escopo - writeBase64(GlideRecord now_GR, Cadeia de caracteres fileName, Cadeia de caracteres contentType, Cadeia de caracteres content_base64Encoded)
Insere um anexo para o registro especificado usando conteúdo codificado em base64.
| Nome | Tipo | Descrição |
|---|---|---|
| now_GR | GlideRecord | Registro ao qual o anexo será anexado. |
| fileName | Cadeia de caracteres | Nome do arquivo do anexo. |
| contentType | Cadeia de caracteres | Tipo de conteúdo do anexo. |
| conteúdo | Cadeia de caracteres | Conteúdo do anexo no formato base64. |
| Tipo | Descrição |
|---|---|
| Cadeia de caracteres | Sys_id do anexo criado. |
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);
Saída
The attachment sys_id is: 10cde9971b0820501363ff37dc4bcba6
GlideSysAttachment com escopo - writeContentStream(GlideRecord now_GR, Cadeia de caracteres fileName, Cadeia de caracteres contentType, GlideScriptableInputStream inputStream)
Insere um anexo usando o fluxo de entrada.
| Nome | Tipo | Descrição |
|---|---|---|
| now_GR | GlideRecord | Registro ao qual o anexo será anexado. |
| fileName | Cadeia de caracteres | Nome do arquivo do anexo. |
| contentType | Cadeia de caracteres | Tipo de conteúdo do anexo. |
| conteúdo | GlideScriptableInputStream | Conteúdo do anexo. |
| Tipo | Descrição |
|---|---|
| Cadeia de caracteres | Sys_id do anexo criado. |
Anexa um fluxo de conteúdo da tabela sys_attachment a um registro 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");
}