GlideSysAttachment : dans le champ d’application

  • Rversion finale: Zurich
  • Mis à jour 31 juil. 2025
  • 13 minutes de lecture
  • L’API GlideSysAttachment fournit des méthodes pour gérer les pièces jointes.

    Le contenu est renvoyé sous forme de chaîne, et non sous forme de tableau d’octets lorsque getContent() est appelé.

    Le contenu est renvoyé en tant qu’objet GlideScriptableInputStream lorsque getContentStream() est appelé. La valeur GlideScriptableInputStream contient les octets réels non convertis en chaîne.

    GlideSysAttachment inclus dans le champ d’application : GlideSysAttachment()

    Crée une instance de la classe GlideSysAttachment.

    Tableau 1. Paramètres
    Nom Type Description
    Aucun

    GlideSysAttachment inclus dans le champ d’application : addAttribute (chaîne sysAttachmentID, chaîne attrKey, chaîne attrValue)

    Ajoute un attribut unique à un enregistrement de pièce jointe existant.

    Tableau 2. Paramètres
    Nom Type Description
    ID sysAttachmentID Chaîne Sys_id de la pièce jointe répertoriée dans la table Pièces jointes [sys_attachment].
    attrKey Chaîne Portion clé d’une paire clé-valeur pour un attribut de pièce jointe.
    attrValue Chaîne Portion de valeur d’une paire clé-valeur pour un attribut de pièce jointe.
    Tableau 3. Renvoie
    Type Description
    Aucun

    L’exemple suivant montre comment ajouter un attribut à une pièce jointe spécifiée avec l’auteur et valeur de clé Fred Luddy. Les résultats peuvent être visualisés dans le tableau Attributs de pièce jointe [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')); 
    }

    Sortie :

    Key: author 
    Value: Fred Luddy

    GlideSysAttachment inclus dans le champ d’application : addMultipleAttributes(String, sysAttachmentID, objet attrsKeyValuePair)

    Ajoute plusieurs attributs à un enregistrement de pièce jointe.

    Tableau 4. Paramètres
    Nom Type Description
    ID sysAttachmentID Chaîne Sys_id de la pièce jointe répertoriée dans la table Pièces jointes [sys_attachment].
    attrsKeyValuePair Objet Attributs de pièce jointe dans un ensemble de paires clé-valeur. Chaque clé d’attribut et sa valeur doivent être fournies sous forme de chaîne.
    Par exemple :
    var attachmentAttributes = { 
        "description" : "Photo of the solar system",
        "dimensions" : "1600 x 300"
    }
    Tableau 5. Renvoie
    Type Description
    Aucun

    L’exemple suivant montre comment ajouter des attributs à une pièce jointe spécifiée. Les résultats peuvent également être vérifiés dans le tableau Attributs de pièce jointe [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'));
    }

    Sortie :

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

    GlideSysAttachment inclus dans le champ d’application : copy(String sourceTable, String sourceID, String targetTable, String targetID)

    Copie les pièces jointes de l’enregistrement source vers l’enregistrement cible.

    Remarque :
    La copie d’une pièce jointe copie également tous les attributs qui lui sont affectés. Vous pouvez afficher la liste des attributs affectés dans la table Attributs de pièce jointe [sys_attachment_list] ou exécuter la méthode fetchAllAttributes( ).
    Tableau 6. Paramètres
    Nom Type Description
    sourceTable Chaîne Nom de la table avec les pièces jointes à copier.
    sourceID Chaîne sys_id de la table source.
    targetTable Chaîne Nom de la table sur laquelle ajouter les pièces jointes.
    targetID Chaîne sys_id de la table cible.
    Tableau 7. Renvoie
    Type Description
    Chaîne Tableau des sys_ids des pièces jointes copiées.
    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);

    Sortie :

    Copied attachments: 6e4621df1bc420501363ff37dc4bcbb0,a87769531b0820501363ff37dc4bcba2

    GlideSysAttachment dans le champ d’application : deleteAllAttributes(String sysAttachmentID)

    Supprime tous les attributs d’un enregistrement de pièce jointe existant.

    Tableau 8. Paramètres
    Nom Type Description
    ID sysAttachmentID Chaîne Sys_id de la pièce jointe répertoriée dans la table Pièces jointes [sys_attachment].
    Tableau 9. Renvoie
    Type Description
    Booléen Marqueur indiquant si les attributs ont été supprimés avec succès.
    Valeurs valides :
    • vrai : les attributs ont été supprimés avec succès.
    • false : les attributs n’ont pas été supprimés avec succès.

    L’exemple suivant montre comment supprimer tous les attributs affectés à une pièce jointe spécifiée. Les résultats peuvent également être vérifiés dans le tableau Attributs de pièce jointe [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')); 
    }

    Sortie :

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

    GlideSysAttachment inclus dans le champ d’application : deleteAttachment(String attachmentID)

    Supprime la pièce jointe spécifiée.

    Remarque :
    La suppression d’une pièce jointe supprime également tous les attributs qui lui sont affectés. Vous pouvez afficher la liste des attributs affectés dans la table Attributs de pièce jointe [sys_attachment_list] ou exécuter la méthode fetchAllAttributes( ).
    Tableau 10. Paramètres
    Nom Type Description
    ID pièce jointe Chaîne La pièce jointe est sys_id.
    Tableau 11. Renvoie
    Type Description
    nul
    var attachment = new GlideSysAttachment();
    var attachmentSysID = 'a87769531b0820501363ff37dc4bcba2';
    attachment.deleteAttachment(attachmentSysID);

    GlideSysAttachment dans le champ d’application : deleteAttribute(String sysAttachmentID, String attrKey)

    Supprime un attribut spécifié de l’enregistrement de pièce jointe.

    Tableau 12. Paramètres
    Nom Type Description
    ID sysAttachmentID Chaîne Sys_id de la pièce jointe répertoriée dans la table Pièces jointes [sys_attachment].
    attrKey Chaîne Portion clé d’une paire clé-valeur pour un attribut de pièce jointe.
    Tableau 13. Renvoie
    Type Description
    Booléen Marqueur indiquant si l’attribut de pièce jointe a été supprimé avec succès.
    Valeurs valides :
    • vrai : l’attribut de pièce jointe a été supprimé avec succès.
    • faux : l’attribut de pièce jointe n’a pas été supprimé avec succès.

    L’exemple suivant montre comment supprimer un attribut affecté à une pièce jointe spécifiée avec l’auteur de clé. Les résultats peuvent également être vérifiés dans le tableau Attributs de pièce jointe [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')); 
    }

    Sortie :

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

    GlideSysAttachment inclus dans le champ d’application : getAttachments(String tableName, String sys_id)

    Retourne un GlideRecord contenant les métadonnées de pièce jointe correspondantes telles que le nom, le type ou la taille.

    Tableau 14. Paramètres
    Nom Type Description
    tableName Chaîne Nom de la table à laquelle appartient la pièce jointe ; Par exemple, incident.
    sys_id Chaîne Sys_id d’enregistrement auquel la pièce jointe appartient.
    Tableau 15. Renvoie
    Type Description
    GlideRecord Objet GlideRecord contenant les métadonnées de pièce jointe correspondantes telles que le nom, le type ou la taille.

    Le script suivant répertorie les noms de fichiers de pièce jointe pour un enregistrement avec deux pièces jointes.

    var attachment = new GlideSysAttachment();
    
    var agr = attachment.getAttachments('<table_name>', '<record_sys_id>');
    
    while(agr.next())
    gs.info(agr.getValue('file_name'));

    Sortie :

    *** Script: filename1.txt
    *** Script: filename2.txt

    GlideSysAttachment inclus dans le champ d’application : getContent(GlideRecord sysAttachment)

    Renvoie le contenu de la pièce jointe sous forme de chaîne.

    Cette méthode est destinée à être utilisée uniquement dans les applications incluses dans le périmètre. Cette méthode renvoie undefined lorsqu’elle est utilisée dans le champ d’application global. Pour lire le contenu de la pièce jointe dans le champ d’application global, utilisez la méthode getContentStream() à partir de l’API globale GlideSysAttachment .

    Cette méthode prend en charge les types de fichiers suivants pour les pièces jointes.
    • CSV (*.csv)
    • JSON (*.json)
    • Texte (*.txt)
    Tableau 16. Paramètres
    Nom Type Description
    sysAttachment GlideRecord Enregistrement de pièce jointe.
    Tableau 17. Renvoie
    Type Description
    Chaîne Contenu de la pièce jointe sous forme de chaîne. Renvoie jusqu’à 5 Mo de données.
    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
    }

    Sortie :

    Doc1.txt
    Attachment content: I am text in a txt file attached to a record.

    GlideSysAttachment inclus dans le champ d’application : getContentBase64(GlideRecord sysAttachment)

    Renvoie le contenu de la pièce jointe sous forme de chaîne avec un codage base64.

    Cette méthode est destinée à être utilisée uniquement dans les applications incluses dans le périmètre. Cette méthode renvoie undefined lorsqu’elle est utilisée dans le champ d’application global. Pour lire le contenu de la pièce jointe dans le champ d’application global, utilisez la méthode getContentStream de l’API GlideSysAttachment - Global .

    Tableau 18. Paramètres
    Nom Type Description
    sysAttachment GlideRecord Enregistrement de pièce jointe.
    Tableau 19. Renvoie
    Type Description
    Chaîne Contenu de la pièce jointe sous forme de chaîne avec codage base64. Renvoie jusqu’à 5 Mo de données.
    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
    }

    Sortie :

    Doc1.txt
    Attachment content: SSBhbSB0ZXh0IGluIGEgdHh0IGZpbGUgYXR0YWNoZWQgdG8gYSByZWNvcmQuIA0=

    GlideSysAttachment dans le champ d’application : getContentStream(String sysID)

    Renvoie un objet GlideScriptableInputStream compte tenu de l’sys_id d’une pièce jointe.

    Vous pouvez utiliser l’API GlideTextReader pour lire le flux de contenu.

    Tableau 20. Paramètres
    Nom Type Description
    sysID Chaîne Pièce jointe sys_id.
    Tableau 21. Renvoie
    Type Description
    GlideScriptableInputStream Flux contenant le contenu de la pièce jointe.
    var attachment = new GlideSysAttachment();
    var attachmentSysID = '6e4621df1bc420501363ff37dc4bcbb0';
    var attachmentContentStream = attachment.getContentStream(attachmentSysID);
    gs.info('Attachment content stream: ' + attachmentContentStream);

    Sortie :

    Attachment content stream: com.glide.communications.GlideScriptableInputStream@14bd299

    GlideSysAttachment dans le champ d’application : fetchAllAttributes(String sysAttachmentID)

    Récupère tous les attributs à partir d’un enregistrement de pièce jointe spécifié.

    Tableau 22. Paramètres
    Nom Type Description
    ID sysAttachmentID Chaîne Sys_id de la pièce jointe répertoriée dans la table Pièces jointes [sys_attachment].
    Tableau 23. Renvoie
    Type Description
    GlideRecord L’enregistrement de pièce jointe et tous ses attributs.

    L’exemple suivant montre comment obtenir tous les attributs affectés à une pièce jointe spécifiée.

    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')); 
    }

    Sortie :

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

    GlideSysAttachment dans le champ d’application : fetchAttribute(String sysAttachmentID, String attrKey)

    Récupère un attribut spécifié à partir d’un enregistrement de pièce jointe.

    Tableau 24. Paramètres
    Nom Type Description
    ID sysAttachmentID Chaîne Sys_id de la pièce jointe répertoriée dans la table Pièces jointes [sys_attachment].
    attrKey Chaîne Portion clé d’une paire clé-valeur pour un attribut de pièce jointe.
    Tableau 25. Renvoie
    Type Description
    GlideRecord Le GlideRecord de la pièce jointe et l’attribut spécifié.

    L’exemple suivant montre comment obtenir un attribut de pièce jointe avec l’auteur de clé.

    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')); 
    }

    Sortie :

    Key: author 
    Value: Abel Tuter

    GlideSysAttachment inclus dans le champ d’application : updateAllAttributes(String, sysAttachmentID, objet attrsKeyValuePair)

    Met à jour tous les attributs d’un enregistrement de pièce jointe existant.

    Tableau 26. Paramètres
    Nom Type Description
    ID sysAttachmentID Chaîne Sys_id de la pièce jointe répertoriée dans la table Pièces jointes [sys_attachment].
    attrsKeyValuePair Objet Attributs de pièce jointe dans un ensemble de paires clé-valeur. Chaque clé d’attribut et sa valeur doivent être fournies sous forme de chaîne.
    Par exemple :
    var attachmentAttributes = { 
        "description" : "Photo of the solar system",
        "dimensions" : "1600 x 300"
    }
    Tableau 27. Renvoie
    Type Description
    Aucun

    L’exemple suivant montre comment mettre à jour chaque attribut pour une pièce jointe spécifiée. Les résultats peuvent également être vérifiés dans le tableau Attributs de pièce jointe [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'));
    }

    Sortie :

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

    GlideSysAttachment inclus dans le champ d’application : updateAttribute (chaîne sysAttachmentID, chaîne attrKey, chaîne attrValue)

    Met à jour un attribut unique pour un enregistrement de pièce jointe existant.

    Tableau 28. Paramètres
    Nom Type Description
    ID sysAttachmentID Chaîne Sys_id de la pièce jointe répertoriée dans la table Pièces jointes [sys_attachment].
    attrKey Chaîne Portion clé d’une paire clé-valeur pour un attribut de pièce jointe.
    attrValue Chaîne Portion de valeur d’une paire clé-valeur pour un attribut de pièce jointe.
    Tableau 29. Renvoie
    Type Description
    Aucun

    L’exemple suivant montre comment mettre à jour un attribut affecté à une pièce jointe spécifiée avec l’auteur de clé et change la valeur en Abel Tuter. Les résultats peuvent également être vérifiés dans le tableau Attributs de pièce jointe [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')); 
    }

    Sortie :

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

    GlideSysAttachment inclus dans le champ d’application : write (enregistrement GlideRecord, nom de fichier de chaîne, contentType de chaîne, contenu de chaîne)

    Joint une pièce jointe spécifiée à l’enregistrement spécifié.

    Tableau 30. Paramètres
    Nom Type Description
    record GlideRecord Enregistrement auquel joindre la pièce jointe.
    fileName Chaîne Nom du fichier de la pièce jointe.
    contentType Chaîne Type MIME de la pièce jointe, tel que image/png. Situé dans la table des pièces jointes [sys_attachment] dans le champ Type de contenu .
    contenu Chaîne Contenu de la pièce jointe.
    Tableau 31. Renvoie
    Type Description
    Chaîne Pièce jointe sys_id. Renvoie null si la pièce jointe n’a pas été ajoutée.
    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);

    Sortie :

    The attachment sys_id is: 01271e4317c13311e0ef563dbb9abe34

    GlideSysAttachment inclus dans le champ d’application : writeBase64(GlideRecord now_GR, chaîne fileName, chaîne contentType, chaîne content_base64Encoded)

    Insère une pièce jointe pour l’enregistrement spécifié à l’aide d’un contenu codé base64.

    Tableau 32. Paramètres
    Nom Type Description
    now_GR GlideRecord Enregistrement auquel joindre la pièce jointe.
    fileName Chaîne Nom du fichier de la pièce jointe.
    contentType Chaîne Type MIME de la pièce jointe, tel que image/png. Situé dans la table des pièces jointes [sys_attachment] dans le champ Type de contenu .
    contenu Chaîne Contenu de la pièce jointe au format base64.
    Tableau 33. Renvoie
    Type Description
    Chaîne Sys_id de la pièce jointe créée.
    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);

    Sortie :

    The attachment sys_id is: 10cde9971b0820501363ff37dc4bcba6

    GlideSysAttachment inclus dans le champ d’application : writeContentStream (GlideRecord now_GR, chaîne fileName, chaîne contentType, GlideScriptableInputStream, inputStream)

    Insère une pièce jointe à l’aide du flux d’entrée.

    Tableau 34. Paramètres
    Nom Type Description
    now_GR GlideRecord Enregistrement auquel joindre la pièce jointe.
    fileName Chaîne Nom du fichier de la pièce jointe.
    contentType Chaîne Type MIME de la pièce jointe, tel que image/png. Situé dans la table des pièces jointes [sys_attachment] dans le champ Type de contenu .
    contenu GlideScriptableInputStream Contenu de la pièce jointe.
    Tableau 35. Renvoie
    Type Description
    Chaîne Sys_id de la pièce jointe créée.

    Joint un flux de contenu de la table sys_attachment à un enregistrement 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");
    }