GlideSysAttachment: Bereichsbezogen

  • Freigeben Version: Xanadu
  • Aktualisiert 1. August 2024
  • 4 Minuten Lesedauer
  • Die GlideSysAttachment- API bietet Methoden zum Verarbeiten von Anhängen.

    Inhalt wird als Zeichenfolge zurückgegeben, nicht als Byte-Array, wenn getContent() aufgerufen wird.

    Inhalt wird als GlideScriptableInputStream-Objekt zurückgegeben, wenn getContentStream() aufgerufen wird. GlideScriptableInputStream enthält die tatsächlichen Bytes, die nicht in eine Zeichenfolge konvertiert wurden.

    Scoped GlideSysAttachment – GlideSysAttachment()

    Erstellt eine Instanz der GlideSysAttachment-Klasse.

    Tabelle : 1. Parameter
    Name Typ Beschreibung
    Keine

    Scoped GlideSysAttachment – copy(String sourceTable, String sourceID, String targetTable, String targetID)

    Kopiert Anhänge aus dem Quelldatensatz in den Zieldatensatz.

    Tabelle : 2. Parameter
    Name Typ Beschreibung
    sourceTable Zeichenfolge Name der Tabelle mit den Anhängen, die kopiert werden sollen.
    sourceID Zeichenfolge sys_id der Quelltabelle.
    targetTable Zeichenfolge Name der Tabelle, in der die Anhänge hinzugefügt werden sollen.
    targetID Zeichenfolge sys_id der Zieltabelle.
    Tabelle : 3. Ergebnisse
    Typ Beschreibung
    Zeichenfolge Array von sys_ids der Anhänge, die kopiert wurden.
    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);

    Ausgabe:

    Copied attachments: 6e4621df1bc420501363ff37dc4bcbb0,a87769531b0820501363ff37dc4bcba2

    Scoped GlideSysAttachment – deleteAttachment(String attachmentID)

    Löscht den angegebenen Anhang.

    Tabelle : 4. Parameter
    Name Typ Beschreibung
    attachmentID Zeichenfolge sys_id des Anhangs
    Tabelle : 5. Ergebnisse
    Typ Beschreibung
    void
    var attachment = new GlideSysAttachment();
    var attachmentSysID = 'a87769531b0820501363ff37dc4bcba2';
    attachment.deleteAttachment(attachmentSysID);

    Bereichsbezogenes GlideSysAttachment – getAttachments(String tableName, String sys_id)

    Gibt einen GlideRecord zurück, der die übereinstimmenden Anhangsmetadaten wie Name, Typ oder Größe enthält.

    Tabelle : 6. Parameter
    Name Typ Beschreibung
    tableName Zeichenfolge Name der Tabelle, zu der der Anhang gehört; Beispiel: Incident.
    sys_id Zeichenfolge Sys_id des Datensatzes, zu dem der Anhang gehört.
    Tabelle : 7. Ergebnisse
    Typ Beschreibung
    GlideRecord GlideRecord-Objekt mit den entsprechenden Anhangmetadaten wie Name, Typ oder Größe.

    Das folgende Skript listet Anhangdateinamen für einen Datensatz mit zwei Anhängen auf.

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

    Ausgabe:

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

    Scoped GlideSysAttachment – getContent(GlideRecord sysAttachment)

    Gibt den Inhalt des Anhangs als Zeichenfolge zurück.

    Diese Methode ist nur zur Verwendung in bereichsbezogenen Anwendungen vorgesehen. Diese Methode gibt bei Verwendung im globalen Bereich undefinierte zurück. Um Anhangsinhalte im globalen Bereich zu lesen, verwenden Sie die getContentStream- Methode aus der GlideSysAttachment-Global- API.

    Diese Methode unterstützt die folgenden Dateitypen für Anhänge.
    • CSV (*.csv)
    • JSON (*.json)
    • Text (*.txt)
    Tabelle : 8. Parameter
    Name Typ Beschreibung
    sysAttachment GlideRecord Anhangsdatensatz.
    Tabelle : 9. Ergebnisse
    Typ Beschreibung
    Zeichenfolge Anhangsinhalte als Zeichenfolge. Gibt bis zu 5 MB Daten zurück.
    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
    }

    Ausgabe:

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

    Bereichsbezogenes GlideSysAttachment – getContentBase64(GlideRecord sysAttachment)

    Gibt den Inhalt des Anhangs als Zeichenfolge mit Base64-Codierung zurück.

    Diese Methode ist nur zur Verwendung in bereichsbezogenen Anwendungen vorgesehen. Diese Methode gibt bei Verwendung im globalen Bereich undefinierte zurück. Um Anhangsinhalte im globalen Bereich zu lesen, verwenden Sie die getContentStream- Methode aus der GlideSysAttachment-Global- API.

    Tabelle : 10. Parameter
    Name Typ Beschreibung
    sysAttachment GlideRecord Anhangsdatensatz.
    Tabelle : 11. Ergebnisse
    Typ Beschreibung
    Zeichenfolge Anhangsinhalte als Zeichenfolge mit Base64-Codierung. Gibt bis zu 5 MB Daten zurück.
    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
    }

    Ausgabe:

    Doc1.txt
    Attachment content: SSBhbSB0ZXh0IGluIGEgdHh0IGZpbGUgYXR0YWNoZWQgdG8gYSByZWNvcmQuIA0=

    Bereichsbezogenes GlideSysAttachment – getContentStream(String sysID)

    Gibt ein GlideScriptableInputStream-Objekt anhand der sys_id eines Anhangs zurück.

    Sie können die GlideTextReader- API verwenden, um den Inhaltsstream zu lesen.

    Tabelle : 12. Parameter
    Name Typ Beschreibung
    sysID Zeichenfolge sys_id des Anhangs
    Tabelle : 13. Ergebnisse
    Typ Beschreibung
    GlideScriptableInputStream Stream, der den Inhalt des Anhangs enthält.
    var attachment = new GlideSysAttachment();
    var attachmentSysID = '6e4621df1bc420501363ff37dc4bcbb0';
    var attachmentContentStream = attachment.getContentStream(attachmentSysID);
    gs.info('Attachment content stream: ' + attachmentContentStream);

    Ausgabe:

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

    Scoped GlideSysAttachment – write(GlideRecord record, String fileName, String contentType, String content)

    Hängt dem angegebenen Datensatz einen angegebenen Anhang an.

    Tabelle : 14. Parameter
    Name Typ Beschreibung
    Datensatz GlideRecord Datensatz, an den der Anhang angehängt werden soll.
    fileName Zeichenfolge Dateiname des Anhangs.
    contentType Zeichenfolge Inhaltstyp des Anhangs.
    Content Zeichenfolge Inhalt des Anhangs.
    Tabelle : 15. Ergebnisse
    Typ Beschreibung
    Zeichenfolge sys_id des Anhangs Gibt NULL zurück, wenn der Anhang nicht hinzugefügt wurde.
    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);

    Ausgabe:

    The attachment sys_id is: 01271e4317c13311e0ef563dbb9abe34

    Bereichsbezogenes GlideSysAttachment – writeBase64(GlideRecord now_GR, String fileName, String contentType, String content_base64Encoded)

    Fügt einen Anhang für den angegebenen Datensatz unter Verwendung von base64-codiertem Inhalt ein.

    Tabelle : 16. Parameter
    Name Typ Beschreibung
    now_GR GlideRecord Datensatz, an den der Anhang angehängt werden soll.
    fileName Zeichenfolge Dateiname des Anhangs.
    contentType Zeichenfolge Inhaltstyp des Anhangs.
    Content Zeichenfolge Anhangsinhalt im base64-Format.
    Tabelle : 17. Ergebnisse
    Typ Beschreibung
    Zeichenfolge Sys_id des erstellten Anhangs.
    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);

    Ausgabe:

    The attachment sys_id is: 10cde9971b0820501363ff37dc4bcba6

    Bereichsbezogenes GlideSysAttachment - writeContentStream(GlideRecord now_GR, String fileName, String contentType, GlideScriptableInputStream inputStream)

    Fügt einen Anhang mit dem Eingabe-Stream ein.

    Tabelle : 18. Parameter
    Name Typ Beschreibung
    now_GR GlideRecord Datensatz, an den der Anhang angehängt werden soll.
    fileName Zeichenfolge Dateiname des Anhangs.
    contentType Zeichenfolge Inhaltstyp des Anhangs.
    Content GlideScriptableInputStream Inhalt des Anhangs.
    Tabelle : 19. Ergebnisse
    Typ Beschreibung
    Zeichenfolge Sys_id des erstellten Anhangs.

    Hängt einen Inhaltsstream aus der Tabelle „sys_attachment“ an einen test_table-Datensatz an.

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