GlideSysAttachment : dans le champ d’application
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.
| Nom | Type | Description |
|---|---|---|
| Néant |
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.
| 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. |
| 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 champ d’application : deleteAttachment(String attachmentID)
Supprime la pièce jointe spécifiée.
| Nom | Type | Description |
|---|---|---|
| ID pièce jointe | Chaîne | La pièce jointe est sys_id. |
| 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)
Retourne un GlideRecord contenant les métadonnées de pièce jointe correspondantes telles que le nom, le type ou la taille.
| 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. |
| 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.
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 .- CSV (*.csv)
- JSON (*.json)
- Texte (*.txt)
| Nom | Type | Description |
|---|---|---|
| sysAttachment | GlideRecord | Enregistrement de pièce jointe. |
| 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 .
| Nom | Type | Description |
|---|---|---|
| sysAttachment | GlideRecord | Enregistrement de pièce jointe. |
| 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.
| Nom | Type | Description |
|---|---|---|
| sysID | Chaîne | Pièce jointe sys_id. |
| 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 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é.
| Nom | Type | Description |
|---|---|---|
| enregistrement | 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. |
| 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.
| 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. |
| 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.
| 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. |
| 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");
}