Klassen zu Objekten

Von der Klasse AEObject ausgehend gibt es abgeleitete Klassen, mit deren Hilfe Sie beispielsweise Objekte anlegen und bearbeiten können.

Diese Seite beinhaltet Folgendes:

Objekte anlegen

Ermitteln Sie zuerst mit der Klasse FolderTree die Ordnerstruktur des Mandanten. Da es sich hierbei um eine Anfrage handelt, wird die Methode sendRequestAndWait aufgerufen. Bestimmen Sie danach den Ordner, in dem das Objekt angelegt werden soll. Objektnamen dürfen nur gewisse Zeichen enthalten und sind daher in einer eigenen Klasse implementiert. Wählen Sie über UC4ObjectName einen Namen für das Objekt. Das Objekt wird über die Klasse CreateObject erstellt. Rufen Sie danach auch hier die Methode sendRequestAndWait auf, um den Request an das AE-System zu übertragen.

FolderTree tree = new FolderTree();
uc4.sendRequestAndWait(tree);
IFolder folder = tree.getFolder("/MATERIAL_MANAGEMENT/DAILY_CLOSING");

UC4ObjectName name = new UC4ObjectName("MM_CLOSING");
CreateObject create = new CreateObject(name, Template.JOBS_UNIX, folder);
uc4prod.sendRequestAndWait(create);

Ordner anlegen

Da es sich bei Ordnern um Objekte handelt, funktioniert das Anlegen dementsprechend.

UC4ObjectName fname= new UC4ObjectName("PRODUCTION");
CreateObject create = new CreateObject(fname, Template.FOLD, folder);
uc4.sendRequestAndWait(create);

Objekte bearbeiten

Um ein Objekt bearbeiten zu können, muss es mit der Klasse OpenObject geöffnet werden. Die Klasse bietet auch Methoden, um Informationen abfragen zu können. In dem untenstehenden Beispiel wird geprüft, ob es sich um einen UNIX-Job handelt. Danach können Sie mit Hilfe der Klasse Job die Einstellungen und Attribute im Job-Objekt setzen. Beachten Sie, dass die Namen von Benutzer-, Agent- und Zeitzonen-Objekten aufgrund der abweichenden Namenskonventionen in speziellen Klassen implementiert sind. Die Hostattribute werden ebenfalls getrennt nach Job-Typ in eigenen Klassen verwaltet.

Nachdem das Objekt fertig bearbeitet ist, muss es natürlich per Request übermittelt und gespeichert werden. Die Klasse SaveObject enthält die dafür notwendigen Methoden. Vergessen Sie auch nicht, das Objekt zu schließen.

OpenObject open = new OpenObject(name);
uc4.sendRequestAndWait(open);

if (open.getType().equalsIgnoreCase("JOBS_UNIX"))
{
Job job = (Job) open.getUC4Object();

job.header().setArchiveKey1("Material_Management");
job.attributes().setPriority(100);
job.attributes().setHost(new UC4HostName("UNIX01"));
job.setPostProcess(script);

AttributesUnix hostattributes = (AttributesUnix) job.hostAttributes();
hostattributes.setShell("csh");
hostattributes.setReportDatabase(true);
hostattributes.setReportErrorOnly(true);

SaveObject save = new SaveObject(job);
uc4.sendRequestAndWait(save);
uc4.sendRequestAndWait(new CloseObject(job));
}

Objekte löschen

Verwenden Sie Klasse DeleteObject, um Objekte zu löschen.

DeleteObject delete = new DeleteObject(name);
uc4.sendRequestAndWait(delete);

Objekte suchen

Die Klasse SearchObject bietet Ihnen die Möglichkeit, nach Objekten zu suchen. Genauso wie im Automic Web Interface können Sie Suchparameter definieren. Im Beispiel wird nach Workflows gesucht, deren Namen mit FIAC beginnen. Die Anfrage liefert Ihnen ein Ergebnis, welches mit einem Iterator durchlaufen werden kann. Für jeden Ergebniseintrag lassen sich Informationen wie z. B. der Objektname ermitteln.

SearchObject search = new SearchObject();
search.setTypeJOBP(true);
search.setName("FIBU*");

uc4.sendRequestAndWait(search);

if(search.size() > 0)
{
Iterator it = search.resultIterator();
while(it.hasNext())
{
SearchResultItem result = (SearchResultItem) it.next();
System.out.println("Result: " + result.getName());
}
}

Siehe auch:

Klassen zu Workflows und Schedules Klassen zu Aktivitäten Klassen zu Statistik und Reports
Klassen für die Administration-Perspektive