Mit Hilfe der Klasse SOGERPBenutzerEntscheidung können Benutzerentscheidungen aus SOG ERP-Verarbeitungsfunktionen abgerufen werden.
Die Funktion ist Job geeignet, da es mehrere unterschiedliche Mechanismen gibt, die Entscheidung vorweg zu nehmen, oder die Frage über eine eigene Entscheidungslogik zu beantworten.
Innerhalb von ActiveSkin stellt SOGERPBenutzerEntscheidung eine Schnittstelle zu der bekannten Maske "vdi4" dar, über die SOG ERP üblicherweise Benutzerentscheidungen abfordert.
Verwendung in der Software:
public const string ID_ENTSCHEIDUNG_VERTRETERZUORDNUNG = "AufgabenLogik.Entscheidung.Vertreterzuordnung";
...
SOGERPBenutzerEntscheidung entscheidung = new SOGERPBenutzerEntscheidung
{
IdAndHelpUrl = ID_ENTSCHEIDUNG_VERTRETERZUORDNUNG,
Frage = Aph.FormatLog(
"Sachbearbeiter {0} ({1}) ist als Vertreter definiert worden.\r\n\r\nMöchten Sie die Aufgabe ({2}) stattdessen diesem Sachbearbeiter zuordnen?",
vertretenderSachbearbeiter.Name,
vertretenderSachbearbeiter.m_id,
_aufgabe.UniqKey),
Kopf = Aph.FormatLog("Aufgabenvertreter gefunden"),
Antwort1 = Aph.FormatLog("Ja ({0} zuordnen)", vertretenderSachbearbeiter.m_id),
Antwort2 = Aph.FormatLog("Nein ({0} zuordnen)", zustaendigerSachbearbeiter.m_id),
UniqKey = _aufgabe.UniqKey,
CursorFieldBeiAbbruch = K_FELD_SACH_ZUSTAENDIG,
DefaultAntwort = SOGERPBenutzerEntscheidung.K_ANTWORT_1,
DefaultJobAntwort = SOGERPBenutzerEntscheidung.K_ANTWORT_1
};
vertreterZuweisen = entscheidung.GetEntscheidung() == SOGERPBenutzerEntscheidung.K_ANTWORT_1;
if (vertreterZuweisen)
_aufgabe.m_sach4 = zustaendigerSachbearbeiter.m_aufg_vertret;
Jeder Entscheidung muss eine eindeutige ID zugewiesen werden. Über diese Id kann direkt auch ein Hilfetext zu der Entscheidung hinterlegt werden. Außerdem können Batchverarbeitungen anhand dieser Id Entscheidungen vorwegnehmen, sodass die Frage innerhalb eines Jobs immer auf eine definierte Art beantwortet werden kann. Die Id wird außerdem für ein Dictionary verwendet, in dem die Entscheidung des Benutzer gespeichert wird, wenn er in der vdi4-Maske die Checkbox "Für alle Datenelemente verwenden" setzt. Dies ist vor allem innerhalb einer Sammeländerung z.B. in einem PropertyGrid von Belang.
Frage, die dem Benutzer gestellt wird. Verwenden Sie die Platzhalterschreibweise um einen übersetzbaren Text zu hinterlegen.
Überschrift der vdi4-Dialogbox.
Beschriftung des 1. Antwort-Buttons.
Beschriftung des 2. Antwort-Buttons (Nur die notwendigen Buttons müssen gesetzt werden).
Beschriftung des 3. Antwort-Buttons (Nur die notwendigen Buttons müssen gesetzt werden).
Beschriftung des 4. Antwort-Buttons (Nur die notwendigen Buttons müssen gesetzt werden).
Eindeutiger Schlüssel des Datensatzes, auf den sich die Frage bezieht. Über IdAndHelpUrl und UniqKey kann die Antwort auf die Entscheidung individuell für einzelne Datensätze vorweggenommen werden.
Name des Datenfeldes, auf den der Cursor gestellt werden soll, wenn der Benutzer "Abbrechen" klickt. (Kann auch null sein)
Antwort die gegeben werden soll, wenn der Benutzer nur "Enter" drückt.
Antwort die innerhalb einer Jobverarbeitung gelten soll, wenn keine abweichende Antwort eingestellt wird.
Antwort die gegeben werden soll, wenn der Benutzer "Abbrechen" drückt. Wird hier nichts angegeben, wirft die Verarbeitung eine Exception wenn "Abbrechen" geklickt wird.
Design der Fragebox (Hintergrundfarbe etc.)
Vorwegnehmen der Entscheidung innerhalb einer Jobverarbeitung
Über die folgende Funktion kann die Entscheidung für eine nachfolgende Verarbeitung für alle Datensätze auf Antwort "2" eingestellt werden:
SOGERPBenutzerEntscheidung.SetEntscheidung(AufgabenLogik.ID_ENTSCHEIDUNG_VERTRETERZUORDNUNG, null, SOGERPBenutzerEntscheidung.K_ANTWORT_2);