Skripting mit Dateianhängen
Wenn Sie den Dateianhang eines Auftrags auswerten möchten (z. B. im Dateisystem speichern, per E-Mail versenden, auf ein Remote-System hochladen usw.), befolgen Sie bitte diese Anweisungen.
Wenn Sie versuchen, auf die Dateianhänge der Tickets wie folgt zuzugreifen
var atts = task.attachments.toArray();
Sie erhalten eine Liste von „Proxy“-Objekten, die die echten Dateien ersetzen, solange deren Inhalt nicht benötigt wird.
Sie können diese Liste überprüfen und die Dateinamen der einzelnen Anhänge lesen. Wenn Sie jedoch auf den Inhalt der Datei zugreifen möchten, benötigen Sie den folgenden Code, um den Anhang aus der Datenbank zu laden:
Bitte beachten Sie, dass durch die Zeile
helper.getComponentStore().getEntityManager().find(com.proxemo.todo4.bom.ToDoAttachment.class, att.attachmentId);
der echte Anhang vom Typ com.proxemo.todo4.bom.ToDoAttachment geladen wird.
Das folgende Skript sucht in der Liste der Anhänge der aktuellen Aufgabe nach einem Anhang mit dem Dateinamen desired.xlsx und lädt diesen Anhang:
if(atts!=null){
println("Listing attachments!");
println("Number of attachments:" + atts.length);
for(var ai=0; ai<atts.length; ai++){
var att = atts[ai];
println("Attachment name: " + att.getAttachmentName());
if(att.getAttachmentName().equals("desired.xlsx")){
var attX = helper.getComponentStore().getEntityManager().find(com.proxemo.todo4.bom.ToDoAttachment.class, att.attachmentId);
println("Attachments' real size: " +attX.getAttachmentContent().length);
// do something with attX.getAttachmentContent()
// ...
}
}
} else {
println("No attachments.");
}