Grundlagen
Grundlegende Angaben
Folgende Angaben müssen Sie bei allen Aktionen vornehmen:
Aktiv
Sobald Sie eine Aktion aktivieren, wird diese in Salesware sichtbar.
Bezeichnung
Benennen Sie die Aktion so, dass der Benutzer weiß, welchen Schritt er damit auslöst. Dies ist insbesondere wichtig, wenn er über ein Kontext- oder Dreipunktmenü darauf zugreifen kann. Mit Hilfe einer eindeutigen und selbsterklärenden Bezeichnung weiß der Benutzer, welches Ergebnis er durch das Anklicken des Eintrags erwarten kann.
Tipp
Nennen Sie Ihre Aktion lieber „Rücklieferschein erstellen” als „Rücklieferschein”.
Aktionstyp
Sie können eine Aktion genau einem Aktionstyp zuordnen. Der Aktionstyp legt fest, welche Einstiegspunkte für die automatische Ausführung zur Verfügung stehen und ob die Aktion auch im Kontext- oder Dreipunktmenü der Entität zur Verfügung steht.
Wichtig
Nach dem Speichern können Sie den Aktionstyp nicht mehr ändern.
Entität
Je nach Aktion können Sie auswählen, in welcher Entität diese aktiviert wird. Möchten Sie eine Aktion in verschiedenen Entitäten mit einer anderen Logik versehen, so können Sie diese einfach ein weiteres Mal anlegen und die Aktionen jeweils anderen Entitäten zuordnen.
Endpunkttyp
Legen Sie den Endpunkttyp der Aktion fest. Aktuell kann lediglich eine Aktion auf dem Sage Appserver ausgelöst werden. Eine Erweiterung auf andere Aktionstypen ist angedacht.
Für den Endpunkttyp Sage Appserver sind zwei weitere Felder Pflicht:
Aktion Geben Sie hier bitte den Namen der Klasse ein, die die Implementierung der Aktion beinhaltet, inklusive kompletten Namespace. (z.B. „Custom.Action.TestAction“)
DLL_Datei Tragen Sie bitte den Namen der dll-Datei ein, die auf dem von Salesware genutzten Application Server im Shared-Verzeichnis der Sage100 liegt. (z.B. „Custom.Action.dll“)
Die unter Aktion angegebene Klasse muss eine Methode mit folgender Signatur aufweisen:
public Dictionary<string,object> Execute(Dictionary<string, object> parameter)
Beispiel
Codebeispiel
using System.Collections.Generic;
namespace Custom.TestAssembly
{
public class ExampleAction
{
public Dictionary<string,object> Execute(Dictionary<string, object> parameter)
{
var client = parameter.TryGetValue("Client", out var clientObj) ? clientObj as Mandant : null;
var documentId = parameter.TryGetValue("DocumentId", out var documentIdObj) && int.TryParse(documentIdObj?.ToString(), out var documentIdParsed) ? documentIdParsed : (int?)null;
var cultureId = parameter.TryGetValue("CultureId", out var cultureIdObj) && cultureIdObj != null ? cultureIdObj?.ToString() : "de-DE (Fallback)";
var erpUser = parameter.TryGetValue("ErpUser", out var erpUserObj) ? erpUserObj as string : null;
var locationKey = parameter.TryGetValue("LocationKey", out var locationKeyObj) ? locationKeyObj as string : null;
var result = new Dictionary<string, object>();
result.Add("Message", new string[] {
$"Standort: {locationKey}",
$"Lokalisierung: {cultureId}",
$"ERP-Benutzer: {erpUser}"
});
result.Add("MessageType", "Information");
result.Add("PrintDocumentId", documentId);
return result;
}
}
}