Interfaces
Interfaces
Section titled “Interfaces”Einführung
Section titled “Einführung”Dieses Interface wird für die Lagerstandabfrage von Artikeln benötigt. Wird im Kontextmenü eines Artikels die Liste “Lagerstand” aufgerufen, werden alle Skripts aus dem Autostart-Ordner nach diesem Interface durchsucht und die entsprechenden Funktionen aufgerufen. Das IRealtimeLagerstand Interface ist für erweiterte Lagerabfragen gedacht, die auch mehrere Lager gleichzeitig abfragen können. Sämtliche Asynchronen Vorgänge müssen im Skript selbst erstellt werden, da die Hauptanwendung sonst während der Abfrage nicht mehr reagiert.
Für einfache Abfragen ist das Interface Ilagerstandabfrage entwickelt worden.
Ablauf
Section titled “Ablauf”- Der Skript wird beim starten der Auftragsverwaltung kompiliert und verbleibt im Arbeitsspeicher bis die Anwendung beendet wird.
- Ein User wählt einen Artikel aus und geht im Kontextmenü mit der Maus auf “Lagerstand”
- Die Funktion BeginRequest() wird ausgeführt und die Artikeldaten wie Artikelnummer, Artikelnummer1-9 usw. werden als Artikeldaten übergeben. Zusätzlich wird noch eine ReferenzID übermittelt. Diese muss bei Rückmeldung der Ergebnisse mit ausgegeben werden um Anfrage und Rückmeldung zuordnen zu können.
- Der Skript kann nun den Lagerstand oder auch mehrere Lagerstände laden und anschließend für jedes Lager das Ereignis RequestCompleted() aufrufen.
- Jeder Aufruf des Ereignisses RequestCompleted() fügt eine neue Zeile in die Lagerliste ein. Einträge können einen Tag enthalten. Dieser ist nur für das Skript erforderlich, falls dieses auf die Lagerinfo_Clicked() Funktion reagieren möchte. Der Tag wird dabei zur Identifizierung des Eintrags verwendet.
- Die Funktion CancelRequest() wird ausgeführt, sobald die Lagerliste ausgeblendet wird. Der Skript sollte dann keine weiteren Daten durch das Ereignis RequestCompleted() liefern. Wichtige Hinweise
- Der Skript bleibt während der gesamten Laufzeit der Auftragsverwaltung aktiv.
- Es können mehrere BeginRequest, CancelRequest oder Lagerinfo_Clicked Ereignisse parallel in beliebiger Reihenfolge auftreten. Anfragen für einzelne Artikel können anhand der ReferenzID unterschieden werden.
- Die Funktion BeginRequest wird im Thread der Hauptanwendung ausgeführt. Die Anwendung wird also nicht reagieren, bis die Abfrage beendet ist. Aus diesem Grund sollte BeginRequest verwendet werden, um einen Asynchronen Vorgang zu starten. Das Event RequestCompleted muss im Thread der Hauptanwendung ausgeführt werden. z.B. durch Verwendung von Host des ICommonPlugIn-Interface.
Host.Invoke(Sub()RaiseEvent RequestCompleted …End Sub)Interface
Section titled “Interface”Assembly: Styletronix.AuftragsverwaltungV2.IPC
Public Interface IRealtimeLagerstandInherits ICommonPlugInStructure LagerRequestArgsDim Artikeldaten As Dictionary(Of String, String)Dim ReferenzID As Int64End StructureStructure LagerRequestResultDim ReferenzID As Int64Dim Lagerstand As StringDim Lager As StringDim Datum As DateTimeDim Tag As ObjectDim Ex As ExceptionEnd StructureStructure CancelRequestArgsDim ReferenzID As Int64End StructureStructure LagerInfoClickedArgsDim Lager As StringDim ReferenzID As Int64End StructureStructure BeginLagerRequestResultDim Lager As List(Of String)End StructureFunction BeginRequest(ByVal sender As Object, ByVal e As LagerRequestArgs) As BeginLagerRequestResultSub CancelRequest(ByVal sender As Object, ByVal e As CancelRequestArgs)Sub Lagerinfo_Clicked(ByVal sender As Object, ByVal e As LagerInfoClickedArgs)ReadOnly Property ReferenzID As Int64Event RequestCompleted(ByVal sender As Object, ByVal e As LagerRequestResult)End InterfaceMögliche Keys für Artikeldaten
ArtikelnummerArtikelnummer2Artikelnummer3Artikelnummer4Artikelnummer5Artikelnummer6Artikelnummer7Artikelnummer8Artikelnummer9GlobalIDLagerplatzLieferant (Name aus Feld Name1)Artikelnummer_LieferantUnterthemen
Section titled “Unterthemen”- ICommonPlugIn
- IdbConnection
- ILagerstandabfrage
- IMenuManager
- IPluginDetails
- IRealtimeLagerstand
- ISettings
- IArtikelsuche
- IInsertEntityIntoFile
- ITileMenu
- IPreProcessBarcode
- IArtikelModification
Quelle
Section titled “Quelle”- Ursprungsdatei: interfaces.htm