Hi,
erstmal vielen Dank für Deine Antwort. Kurz zum Verständnis für Dich: es handelt sich hierbei um eine Anwendung zur Erfassung und Verwaltung von Hotline-Calls. Es ist möglich, zu jedem Call bestimmte Statusdokumente zu erstellen, z.B. "Information" oder "Erledigung". Abhängig von dem in diesem Statusdokument ausgewählten Status wird beim Speichern des Statusdokuments auf den zugehörigen Hotline-Call hochgegriffen und ein entsprechendes Feld gesetzt.
Es gibt 3 Möglichkeiten, solche Statusdokumente zu erstellen. Einmal aus einer Ansicht heraus, die mir alle offenen Hotline-Calls auflistet. Hier ist es möglich, einen Call zu markieren und mit einer Aktion "Neues Statusdokument" ein solches zu erstellen. Dies wird allein mit folgender Codezeile realisiert:
@PostedCommand([Compose];"TaskStatus")
Weiterhin ist es möglich, einen Hotline-Call zu öffnen und in der Maske die Aktion "Taskstatus erstellen" zu wählen. Der Code hierfür:
@If(@IsNewDoc;
@Command([FileSave]);
""
);
@Command([Compose]; "TaskStatus")
Letztlich ist es möglich, einen Call direkt zu erledigen (also ein neues Statusdokument zu öffnen und in diesem direkt den Status auf "Erledigung" zu setzen):
FIELD Aufgabenstatus := Aufgabenstatus;
FIELD TS_ERL := TS_ERL;
@Command([EditDocument]; "1");
REM {Kategorie des Hotline-Calls zur Überprüfung vorlegen};
@If(Aufgabenart = "CALL";@SetField("Klassifizierung"; @Prompt([OkCancelList] : [NoSort]; "Call-Klassifizierung"; "Welcher Klasse möchten Sie diesen Call zuordnen?";"Incident wird telefonisch erledigt"; "Incident wird telefonisch erledigt" : "Incident erfordert Recherche / Vorortservice, Dauer bis zu 0,5 Stunden" : "Incident erfordert Recherche / Vorortservice, Dauer 0,5 bis 4 Stunden" : "Incident erfordert Recherche / Vorortservice, Dauer mehr als 4 Stunden"));"");
REM {Der Aufgabenstatus wird vom Antwortdokument in dessen Postsave-Event auf ERL gesetzt};
@SetField("TS_ERL"; @Now);
@SetField("Endetermin"; @Now);
@Environment("SBI_STATUS_RESP"; "ERL");
@PostedCommand([FileSave]);
@PostedCommand([EditDocument];"0");
@PostedCommand([Compose];""; "TaskStatus");
REM {Fenster nicht schließen, weil das ja der Taskstatus ist...};
Beim Speichern des Statusdokuments passiert folgendes:
@Command([FileSave]);
@Command([FileCloseWindow]);
@SetDocField($Ref; "TS_REAKTION"; @Now);
@If(StatusArt_CM = "CPIR"; @SetDocField($Ref; "TS_PIR"; "1"); "");
@If(StatusArt = "ERL" | StatusArt_CM = "ERL";@SetDocField ($Ref; "TS_ERL"; @Now); "")
In der Praxis siehts momentan halt leider so aus, dass unregelmäßig z.B. folgendes Phänomen auftritt:
Ein Azubi erledigt seinen Call "Drucker geht nicht" und schreibt "Toner getauscht" in die Beschreibung seines Statusdokuments... 2 Minuten später beschwert sich der Chef einer anderen Abteilung, was sich der Azubi erlaubt, die Aufgabe "Task Force Servershutdown bei Stromausfall" des Chefs mit "Toner getauscht" abzuschließen.
Und das Ganze dann auch noch bei den verschiedensten Leuten und bei verschiedensten Calls, so dass es mir bisher nicht gelungen ist, nachzuvollziehen, woran das liegt.
Ich hoffe, ich hab Dich jetzt nicht total verwirrt *g*
Wenn Du noch Informationen benötigst, sag nur Bescheid - ich versuche sie so gut wie möglich zu liefern. Leider habe ich die Anwendung nicht selbst entwickelt, so dass ich nicht zu jeder Zeile Code den exakten Hintergrund weiss (so z.B. ist mir unklar, warum der Kollege in manchen Fällen @Command und in manchen @PostedCommand verwendet hatte)
Viele Grüße
Ben