GlideSysAttachment : inclus dans le périmètre

  • Rversion finale: Washingtondc
  • Mis à jour 1 févr. 2024
  • 5 minutes de lecture
  • L’API GlideSysAttachment fournit un moyen de 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é. Le GlideScriptableInputStream contient les octets réels non convertis en chaîne.

    GlideSysAttachment inclus dans le périmètre : copie(String sourceTable, String sourceID, String targetTable, String targetID)

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

    Tableau 1. Paramètres
    Nom Type Description
    sourceTable Chaîne Nom de la table avec les pièces jointes à copier.
    ID source Chaîne sys_id de la table source.
    targetTable Chaîne Nom de la table à laquelle ajouter les pièces jointes.
    ID cible Chaîne sys_id de la table cible.
    Tableau 2. 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 inclus dans le périmètre : deleteAttachment(String attachmentID)

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

    Tableau 3. Paramètres
    Nom Type Description
    ID de pièce jointe Chaîne sys_id de la pièce jointe.
    Tableau 4. Renvoie
    Type Description
    nul
    var attachment = new GlideSysAttachment();
    var attachmentSysID = 'a87769531b0820501363ff37dc4bcba2';
    attachment.deleteAttachment(attachmentSysID);

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

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

    Tableau 5. Paramètres
    Nom Type Description
    tableName Chaîne Nom de la table à laquelle la pièce jointe appartient ; Par exemple, Incident.
    sys_id Chaîne sys_id d’enregistrement auquel appartient la pièce jointe.
    Tableau 6. 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èces jointes 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 périmètre : 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 GlideSysAttachment - Global .

    Cette méthode prend en charge les types de fichiers suivants pour les pièces jointes.
    • Fichier CSV (*.csv)
    • JSON (*.json)
    • Texte (*.txt)
    Tableau 7. Paramètres
    Nom Type Description
    sysAttachment GlideRecord Enregistrement de la pièce jointe.
    Tableau 8. Renvoie
    Type Description
    Chaîne Contenus des pièces jointes 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 périmètre : 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 à partir de l’API GlideSysAttachment - Global .

    Tableau 9. Paramètres
    Nom Type Description
    sysAttachment GlideRecord Enregistrement de la pièce jointe.
    Tableau 10. 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 inclus dans le périmètre : 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 11. Paramètres
    Nom Type Description
    sysID Chaîne Pièce jointe sys_id.
    Tableau 12. 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 inclus dans le périmètre : GlideSysAttachment()

    Crée une instance de la classe GlideSysAttachment.

    Tableau 13. Paramètres
    Nom Type Description
    Néant

    GlideSysAttachment inclus dans le périmètre : write(enregistrement GlideRecord, chaîne fileName, chaîne contentType, chaîne de contenu)

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

    Tableau 14. Paramètres
    Nom Type Description
    record GlideRecord Enregistrement auquel joindre la pièce jointe.
    fileName Chaîne Nom de fichier de la pièce jointe.
    Contenttype Chaîne Type de contenu de la pièce jointe.
    contenu Chaîne Contenu de la pièce jointe.
    Tableau 15. 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 périmètre : writeBase64(GlideRecord now_GR, String fileName, String contentType, String content_base64Encoded)

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

    Tableau 16. Paramètres
    Nom Type Description
    now_GR GlideRecord Enregistrement auquel la pièce jointe doit être jointe.
    fileName Chaîne Nom de fichier de la pièce jointe.
    Contenttype Chaîne Type de contenu de la pièce jointe.
    contenu Chaîne Contenu de la pièce jointe au format base64.
    Tableau 17. 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 périmètre : writeContentStream(GlideRecord now_GR, String fileName, String contentType, GlideScriptableInputStream inputStream)

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

    Tableau 18. Paramètres
    Nom Type Description
    now_GR GlideRecord Enregistrement auquel la pièce jointe doit être jointe.
    fileName Chaîne Nom de fichier de la pièce jointe.
    Contenttype Chaîne Type de contenu de la pièce jointe.
    contenu GlideScriptableInputStream Contenu de la pièce jointe.
    Tableau 19. Renvoie
    Type Description
    Chaîne Sys_id de la pièce jointe créée.

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