GlideSysAttachment - Com escopo

  • Versão de lançamento: Zurich
  • Atualizado 31 de jul. de 2025
  • 12 min. de leitura
  • . GlideSysAttachment A API fornece métodos para 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. GlideScriptableInputStream contém os bytes reais não convertidos em uma cadeia de caracteres.

    GlideSysAttachment com escopo - GlideSysAttachment()

    Cria uma instância da classe GlideSysAttachment.

    Tabela 1. Parâmetros
    Nome Tipo Descrição
    Nenhum

    GlideSysAttachment com escopo - addAttribute(cadeia de caracteres sysAttachmentID, cadeia de caracteres attrKey, cadeia de caracteres attrValue)

    Adiciona um único atributo a um registro de anexo existente.

    Tabela 2. Parâmetros
    Nome Tipo Descrição
    SysAttachmentId Cadeia de caracteres Sys_id do anexo listado na tabela Anexos [sys_attachment].
    AttrKey Cadeia de caracteres Parte de chave de um par de chave-valor para um atributo de anexo.
    Attribute Cadeia de caracteres Parte de valor de um par de chave-valor para um atributo de anexo.
    Tabela 3. Retornos
    Tipo Descrição
    Nenhum(a)

    O exemplo a seguir mostra como adicionar um atributo a um anexo especificado com a chave autor e valor Dirigido por Fred Luddy . Os resultados podem ser exibidos na tabela Atributos de anexo [sys_attachment_attribute].

    var attach = new GlideSysAttachment();
    attach.addAttribute("9e1b714601932210f877b455304df0af", "author", "Fred Luddy");
    
    var result = attach.fetchAttribute("9e1b714601932210f877b455304df0af", "author");
    
    while(result.next()) {
       gs.info("Key: " + result.getValue('key') + " \nValue: " + result.getValue('value')); 
    }

    Saída:

    Key: author 
    Value: Fred Luddy

    GlideSysAttachment com escopo - addMultipleAttributes(cadeia de caracteres sysAttachmentID, objeto attrsKeyValuePair)

    Adiciona vários atributos a um registro de anexo.

    Tabela 4. Parâmetros
    Nome Tipo Descrição
    SysAttachmentId Cadeia de caracteres Sys_id do anexo listado na tabela Anexos [sys_attachment].
    AttrsKeyValuePair Objeto Atributos de anexo em um conjunto de pares de chave-valor. Cada chave de atributo e seu valor devem ser fornecidos como uma cadeia de caracteres.
    Por exemplo:
    var attachmentAttributes = { 
        "description" : "Photo of the solar system",
        "dimensions" : "1600 x 300"
    }
    Tabela 5. Retornos
    Tipo Descrição
    Nenhum(a)

    O exemplo a seguir mostra como adicionar atributos a um anexo especificado. Os resultados também podem ser verificados na tabela Atributos de anexo [sys_attachment_attribute].

    var attach = new GlideSysAttachment();
    
    var attachmentID = '9e1b714601932210f877b455304df0af';
    
    var attrsKeyValuePair = { };
      attrsKeyValuePair["title"]  = "Add multiple attributes to an attachment";
      attrsKeyValuePair["category"] =  "KB";
      attrsKeyValuePair["length"] =  "5000";
    
    attach.addMultipleAttributes(attachmentID, attrsKeyValuePair);
    
    var result = attach.fetchAllAttributes(attachmentID);
    
    while(result.next()) {
       gs.info("Key: " + result.getValue('key') + ", Value: " + result.getValue('value'));
    }

    Saída:

    Key: title, Value: Add multiple attributes to an attachment
    Key: author, Value: Abel Tuter
    Key: category, Value: KB
    Key: length, Value: 5000

    GlideSysAttachment com escopo - cópia (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.

    Nota:
    Copiar um anexo também copia todos os atributos atribuídos a ele. Você pode exibir uma lista de atributos atribuídos na tabela Atributos de anexo [sys_attachment_list] ou executar o. FetchAllAtributos() método.
    Tabela 6. Parâmetros
    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.
    TargetId Cadeia de caracteres Sys_id da tabela de destino.
    Tabela 7. Retornos
    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 - deleteAllAttributes(cadeia de caracteres sysAttachmentID)

    Exclui todos os atributos de um registro de anexo existente.

    Tabela 8. Parâmetros
    Nome Tipo Descrição
    SysAttachmentId Cadeia de caracteres Sys_id do anexo listado na tabela Anexos [sys_attachment].
    Tabela 9. Retornos
    Tipo Descrição
    Booliano Sinalizador que indica se os atributos foram excluídos com sucesso.
    Valores válidos:
    • Verdadeiro: Os atributos foram excluídos com sucesso.
    • Falso: Os atributos não foram excluídos com sucesso.

    O exemplo a seguir mostra como excluir todos os atributos atribuídos a um anexo especificado. Os resultados também podem ser verificados na tabela Atributos de anexo [sys_attachment_attribute].

    var attach = new GlideSysAttachment();
    
    var attachmentID = '9e1b714601932210f877b455304df0af';
    
    attach.deleteAllAttributes(attachmentID);
    
    var result = attach.fetchAllAttributes(attachmentID);
    
    while(result.next()) {
       gs.info("Key: " + result.getValue('key') + ", Value: " + result.getValue('value')); 
    }

    Saída:

    Attribute "null" not found for attachment "04f48541083e2e50f877df7a115e31f3"
    

    GlideSysAttachment com escopo - deleteAttachment(cadeia de caracteres attachmentID)

    Exclui o anexo indicado.

    Nota:
    Excluir um anexo também exclui todos os atributos atribuídos a ele. Você pode exibir uma lista de atributos atribuídos na tabela Atributos de anexo [sys_attachment_list] ou executar o. FetchAllAtributos() método.
    Tabela 10. Parâmetros
    Nome Tipo Descrição
    AnexoID Cadeia de caracteres Sys_id do anexo.
    Tabela 11. Retornos
    Tipo Descrição
    vazio
    var attachment = new GlideSysAttachment();
    var attachmentSysID = 'a87769531b0820501363ff37dc4bcba2';
    attachment.deleteAttachment(attachmentSysID);

    GlideSysAttachment com escopo - deleteAttribute(cadeia de caracteres sysAttachmentID, cadeia de caracteres attrKey)

    Exclui um atributo especificado do registro de anexo.

    Tabela 12. Parâmetros
    Nome Tipo Descrição
    SysAttachmentId Cadeia de caracteres Sys_id do anexo listado na tabela Anexos [sys_attachment].
    AttrKey Cadeia de caracteres Parte de chave de um par de chave-valor para um atributo de anexo.
    Tabela 13. Retornos
    Tipo Descrição
    Booliano Sinalizador que indica se o atributo de anexo foi excluído com sucesso.
    Valores válidos:
    • Verdadeiro: O atributo de anexo foi excluído com sucesso.
    • Falso: O atributo de anexo não foi excluído com sucesso.

    O exemplo a seguir mostra como excluir um atributo atribuído a um anexo especificado com a chave autor . Os resultados também podem ser verificados na tabela Atributos de anexo [sys_attachment_attribute].

    var attach = new GlideSysAttachment();
    
    var attachmentID = '9e1b714601932210f877b455304df0af';
    
    attach.deleteAttribute(attachmentID, "author");
    
    var result = attach.fetchAttribute(attachmentID, "author");
    
    while(result.next()) {
       gs.info("Key: " + result.getValue('key') + " \nValue: " + result.getValue('value')); 
    }

    Saída:

    Attribute "author" not found for attachment "04f48541083e2e50f877df7a115e31f3"

    GlideSysAttachment com escopo - getAttachments(cadeia de caracteres tablename, cadeia de caracteres sys_id)

    Retorna um GlideRecord que contém os metadados de anexo correspondentes, como nome, tipo ou tamanho.

    Tabela 14. Parâmetros
    Nome Tipo Descrição
    tableName Cadeia de caracteres Nome da tabela à qual o anexo pertence; por exemplo, incidente.
    sys_id Cadeia de caracteres Sys_id do registro ao qual o anexo pertence.
    Tabela 15. Retornos
    Tipo Descrição
    GlideRecord Objeto GlideRecord que contém os metadados de anexo correspondentes, 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(GlideRecord sysAttachment)

    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 GetContentStream() método do GlideSysAttachment - Global API.

    Este método oferece suporte aos seguintes tipos de arquivo para anexos.
    • CSV (*.csv)
    • JSON (*.json)
    • Texto (*.txt)
    Tabela 16. Parâmetros
    Nome Tipo Descrição
    SysAttachment GlideRecord Registro de anexo.
    Tabela 17. Retornos
    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 GetContentStream método do GlideSysAttachment - Global API.

    Tabela 18. Parâmetros
    Nome Tipo Descrição
    SysAttachment GlideRecord Registro de anexo.
    Tabela 19. Retornos
    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 (SYSID de cadeia de caracteres)

    Retorna um objeto GlideScriptableInputStream dado o sys_id de um anexo.

    Você pode usar GlideTextReader API para ler o fluxo de conteúdo.

    Tabela 20. Parâmetros
    Nome Tipo Descrição
    sysID Cadeia de caracteres Sys_id do anexo.
    Tabela 21. Retornos
    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 - FetchAllAttributes(cadeia de caracteres sysAttachmentId)

    Busca todos os atributos de um registro de anexo especificado.

    Tabela 22. Parâmetros
    Nome Tipo Descrição
    SysAttachmentId Cadeia de caracteres Sys_id do anexo listado na tabela Anexos [sys_attachment].
    Tabela 23. Retornos
    Tipo Descrição
    GlideRecord O registro do anexo e todos os seus atributos.

    O exemplo a seguir mostra como obter todos os atributos atribuídos a um anexo especificado.

    var attach = new GlideSysAttachment();
    
    var attachmentID = '9e1b714601932210f877b455304df0af';
    
    var result = attach.fetchAllAttributes(attachmentID);
    
    while(result.next()) {
       gs.info("Key: " + result.getValue('key') + ", Value: " + result.getValue('value')); 
    }

    Saída:

    Key: title, Value: Add multiple attributes to an attachment
    Key: author, Value: Abel Tuter
    Key: category, Value: KB
    Key: length, Value: 5000

    GlideSysAttachment com escopo - fetchAttribute(cadeia de caracteres sysAttachmentID, cadeia de caracteres attrKey)

    Busca um atributo especificado de um registro de anexo.

    Tabela 24. Parâmetros
    Nome Tipo Descrição
    SysAttachmentId Cadeia de caracteres Sys_id do anexo listado na tabela Anexos [sys_attachment].
    AttrKey Cadeia de caracteres Parte de chave de um par de chave-valor para um atributo de anexo.
    Tabela 25. Retornos
    Tipo Descrição
    GlideRecord GlideRecord do anexo e o atributo especificado.

    O exemplo a seguir mostra como obter um atributo de anexo com a chave autor .

    var attach = new GlideSysAttachment();
    
    var attachmentID = '9e1b714601932210f877b455304df0af';
    
    var result = attach.fetchAttribute(attachmentID, "author");
    
    while(result.next()) {
       gs.info("Key: " + result.getValue('key') + " \nValue: " + result.getValue('value')); 
    }

    Saída:

    Key: author 
    Value: Abel Tuter

    GlideSysAttachment com escopo - updateAllAttributes(cadeia de caracteres sysAttachmentID, objeto attrsKeyValuePair)

    Atualiza todos os atributos de um registro de anexo existente.

    Tabela 26. Parâmetros
    Nome Tipo Descrição
    SysAttachmentId Cadeia de caracteres Sys_id do anexo listado na tabela Anexos [sys_attachment].
    AttrsKeyValuePair Objeto Atributos de anexo em um conjunto de pares de chave-valor. Cada chave de atributo e seu valor devem ser fornecidos como uma cadeia de caracteres.
    Por exemplo:
    var attachmentAttributes = { 
        "description" : "Photo of the solar system",
        "dimensions" : "1600 x 300"
    }
    Tabela 27. Retornos
    Tipo Descrição
    Nenhum(a)

    O exemplo a seguir mostra como atualizar cada atributo de um anexo especificado. Os resultados também podem ser verificados na tabela Atributos de anexo [sys_attachment_attribute].

    var attach = new GlideSysAttachment();
    
    var attachmentID = '9e1b714601932210f877b455304df0af';
    
    var attachmentAttributes = {
        "category" : "Training",
        "title" : "Updating attachment attributes", 
        "author" : "Abraham Lincoln",
        "length" : "6000"
    }
    
    attach.updateAllAttributes(attachmentID, attachmentAttributes);
    
    var result = attach.fetchAllAttributes(attachmentID);
    
    while(result.next()) {
       gs.info("Key: " + result.getValue('key') + ", Value: " + result.getValue('value'));
    }

    Saída:

    Key: title, Value: Updating attachment attributes
    Key: author, Value: Abraham Lincoln
    Key: category, Value: Training
    Key: length, Value: 6000

    GlideSysAttachment com escopo - updateAttribute(cadeia de caracteres sysAttachmentID, cadeia de caracteres attrKey, cadeia de caracteres attrValue)

    Atualiza um único atributo para um registro de anexo existente.

    Tabela 28. Parâmetros
    Nome Tipo Descrição
    SysAttachmentId Cadeia de caracteres Sys_id do anexo listado na tabela Anexos [sys_attachment].
    AttrKey Cadeia de caracteres Parte de chave de um par de chave-valor para um atributo de anexo.
    Attribute Cadeia de caracteres Parte de valor de um par de chave-valor para um atributo de anexo.
    Tabela 29. Retornos
    Tipo Descrição
    Nenhum(a)

    O exemplo a seguir mostra como atualizar um atributo atribuído a um anexo especificado com a chave autor E muda o valor para Abel Tuter. Os resultados também podem ser verificados na tabela Atributos de anexo [sys_attachment_attribute].

    var attach = new GlideSysAttachment();
    
    var attachmentID = '9e1b714601932210f877b455304df0af';
    
    var originalVal = attach.fetchAttribute(attachmentID, "author");
    while(originalVal.next()) {
       gs.info("Original attribute value: " + originalVal.getValue('value') + "\n"); 
    }
    
    attach.updateAttribute(attachmentID, "author", "Abel Tuter");
    
    var updatedVal = attach.fetchAttribute(attachmentID, "author"); 
    while(updatedVal.next()) {
       gs.info("Updated attribute value: " + updatedVal.getValue('value')); 
    }

    Saída:

    Original attribute value: Fred Luddy
    
    Updated attribute value: Abel Tuter

    GlideSysAttachment com escopo - gravação (registro GlideRecord, cadeia de caracteres do nome do arquivo, cadeia de caracteres contentType, cadeia de caracteres do conteúdo)

    Anexa um anexo especificado ao registro especificado.

    Tabela 30. Parâmetros
    Nome Tipo Descrição
    registro GlideRecord Registro ao qual anexar o anexo.
    nomeArquivo Cadeia de caracteres Nome do arquivo do anexo.
    tipoConteúdo Cadeia de caracteres Tipo MIME do anexo, como imagem/png . Localizado na tabela Anexo [sys_attachment] em Tipo de conteúdo campo.
    conteúdo Cadeia de caracteres Conteúdo do anexo.
    Tabela 31. Retornos
    Tipo Descrição
    Cadeia de caracteres Sys_id do anexo. Retorna nulo se o anexo não foi 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.

    Tabela 32. Parâmetros
    Nome Tipo Descrição
    Now_GR GlideRecord Registro ao qual anexar o anexo.
    nomeArquivo Cadeia de caracteres Nome do arquivo do anexo.
    tipoConteúdo Cadeia de caracteres Tipo MIME do anexo, como imagem/png . Localizado na tabela Anexo [sys_attachment] em Tipo de conteúdo campo.
    conteúdo Cadeia de caracteres Conteúdo do anexo no formato base64.
    Tabela 33. Retornos
    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, String Filename, String contentType, GlideScriptableInputStream)

    Insere um anexo usando o fluxo de entrada.

    Tabela 34. Parâmetros
    Nome Tipo Descrição
    Now_GR GlideRecord Registro ao qual anexar o anexo.
    nomeArquivo Cadeia de caracteres Nome do arquivo do anexo.
    tipoConteúdo Cadeia de caracteres Tipo MIME do anexo, como imagem/png . Localizado na tabela Anexo [sys_attachment] em Tipo de conteúdo campo.
    conteúdo GlideScriptableInputStream Conteúdo do anexo.
    Tabela 35. Retornos
    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");
    }