Ziel: Fertigungsauftrag anzeigen Fertigungspläne sind ein wesentlicher Bestandteil der Produktionsplanung und -steuerung. Da nicht immer alle Materialien vorrätig sind, wird durch das Anlegen eines Kundenauftrags unter Umständen auch ein Fertigungsauftrag angestoßen. Die Informationen über diesen Fertigungsauftrag sollen in diesem Beispiel als Addon für CIS mobile verfügbar gemacht werden. Aufgeklappte Details zu einem Fertigungsauftrag |
|||
Schritt 1: Platzhalter für Addons anzeigen Aktivieren Sie in den Einstellungen die Testausgabe für Addons und navigieren Sie anschließend an die Stelle in CIS mobile, an der später Zusatzinformationen angezeigt werden sollen. In diesem Beispiel ist dies die Detailansicht einer Position eines Kundenauftrags. Die Platzhalter in orange stehen für Informationen, die ohne Aufklappen durch den Benutzer sichtbar sind. Wir möchten jedoch dem Benutzer die Möglichkeit bieten, Details zu einem ggf. vorhandenen Fertigungsauftrag anzufordern und zwar nur dann, wenn auch tatsächlich ein solcher Auftrag existiert. Wir werden daher eine Methode "BuildOrderPositionButtons2" in dem VB.net-Projekt "s10cisaddon" implementieren. Platzhalter für Addons aktivieren Stellen für mögliche neue Addons |
|||
Schritt 2: Schlüssel für die Abfrage prüfen Klicken Sie auf einen der farbigen Platzhalter, um alle an dieser Stelle verfügbaren Schlüssel und deren aktuelle Werte anzuzeigen. Für die Abfrage aus dem SAP-ERP benötigen wir vor allem die Auftragsnummer (VBELN), die Position (POSNR) und natürlich die Kundennummer (KUNNR). Diese sind, wie wir gleich sehen werden, in VB.net in einem dictionary-Objekt verfügbar. Für den Fertigungsautrag benötigte Schlüssel |
|||
Schritt 3: Methode in VB.net implementieren
Die Methode in VB.net, deren Name sich nach dem zu ersetzenden Platzhalter richtet, hat folgenen Methodenkopf:
VB.net
' Position to Order Addon Public Function BuildOrderPositionButtons2 _ (ByVal keys As Dictionary(Of String, String), _ ByRef buttons As String) As String Durch das dictionary-Objekt "keys" können wir auf die in Schritt 2 erwähnten Schlüssel-Wertepaare zugreifen. Der Textstring "buttons" wird verwendet, um dem Benutzer weitere Möglichkeiten zum Aufklappen von Zusatzinformationen, in diesem Beispiel sind das die Komponenten und Vorgänge eines Fertigungsauftrages, anzubieten. |
|||
Schritt 3.1: Existiert ein Fertigungs- auftrag zum gewählten Kundenauftrag? Um zu überprüfen, ob ein Fertigungsauftrag zum Kundenauftrag existiert, können wir die Tabelle "AUFK" lesen: Auftragsstammdaten. Dazu legen wir in S10-Repository eine Klasse "aufk" an, die wir auch automatisch aus dem SAP-ERP generieren lassen können. Nach einem Klick auf "generieren" kann die generierte .vb Datei in das Addonprojekt aufgenommen und dort verwendet werden. Es muss hierbei allerdings noch er Assemblyname angepasst werden, da das Addonprojekt eine eigenständige DLL ist, die in CIS mobile angesprochen wird. Tabellen/Views anzeigen mit SE11 Klassen generieren mit dem S10 Repository Die Klasse für "s1cisaddon.sln" vorbereiten Objekt vom Typ "aufk" im Repository definieren Wir verwenden das S10 Repository, um das Objekt anzulegen. Dass es mehrere Fertigungsaufträge zu einem Kundenauftrag gibt, ist eher unwahrscheinlich. Trotzdem verwenden wir einen "folder", der mehrere Objekte des Typs enthalten kann, und zählen die Elemente nach der Abfrage.
VB.net
Zu Beginn wird das statement für die select-Abfrage festgelegt. Anschließend wird in Zeile 8 die Abfrage für die Tabelle "aufk" aufgerufen. Wir zählen die gelieferten Elemente und erstellen nur im Fall n>0 den Textstring, der dafür sorgt, dass ein (+) Symbol zum Aufklappen der Informationen zum Fertigungsauftrag angezeigt wird. Da die Bezeichnung des Aufklappbuttons in CIS mobile sprachabhängig sein soll, lesen wir den Text zur Laufzeit entsprechend einer ID aus dem Repository (Zeile 15). Bemerkung: Die Auftragsnummer wird in der Tabelle AUFK in der Spalte KDAUF gespeichert und muss 10-stellig sein. Daher wird VBELN ggf. mit führenden Nullen aufgefüllt. |
|||
Empfehlenswert: Passenden Index
anlegen Zur Beschleunigung der Datenselektion aus der Tabelle AUFK empfiehlt sich die Verwendung eines Index, der nur die für das Add-on benötigten Felder enthält. Legen Sie den Index in der Transaktion SE11 an. Neuen Index erstellen für Tabelle AUFK |
|||
Ergebnis von Schritt 3.1 Das Symbol zum Aufklappen der Details zu einem Fertigungsauftrag ist jetzt nur bei Position 20 ("Pumpe"), nicht aber bei Nr. 10 ("Kabinentür") vorhanden. Im nächsten Schritt werden wir dafür Sorge tragen, dass auch beim Aufklappen die richtigen Informationen zum jeweiligen Fertigungsauftrag erscheinen. Das neue Add-on wird farblich hervorgehoben |
|||
Schritt 4: Details zum Fertigungsauftrag In Schritt 3.1 hatten wir die Möglichkeit zum Aufklappen von Zusatzinformationen für den Fertigungsauftrag definiert durch:
VB.net
'Define (+)Button buttons = "ProductionOrder|" & buttonText & _ "|" & processingMessage Wir müssen daher nun eine Methode "BuildProductionOrder" in VB.net implementieren, die die Daten zum Fertigungsauftrag aus dem ERP-System ausliest und in Form von HTML aufbereitet. Schauen Sie sich am besten den Beispielcode im mitgelieferten Projekt an, die Vorgehensweise ist grundsätzlich die gleiche wie in Schritt 3.1: Eine where-Bedingung wird definiert und damit ein select-Aufruf an das ERP-System geschickt. Anschließend werden die zurückgelieferten Daten in HTML eingearbeitet und dieses von der Methode zurückgegeben. Eine Besonderheit stellt jedoch folgender Aufruf innerhalb der Methode dar, der einen Zugriff auf Daten im ERP mittels der SAP GUI Scripting Schnittstelle durchführt:
VB.net
' read some values with sapgui-scripting Dim dic As New Dictionary(Of String, String) ReadWithSapGui_ProductionOrder(productionorder.aufnr, dic) Diesen werden wir im nächsten Schritt etwas genauer betrachten. |
|||
Schritt 4.1: SAP GUI Scripting Schnittstelle verwenden Wir setzen im Beispiel voraus, dass die SAP GUI Scripting Schnittstelle bereits richtig installiert und konfiguriert ist. Schauen Sie ggf. in die Einstellungen von CIS mobile, und testen Sie die Verbindung zum SAP-System mit dem S10 Repository. Details finden Sie in dem Installationsleitfaden. Die Benutzung der Schnittstelle ist nun denkbar einfach: Nach einem erfolgreichen Logon (Zeilen 7 bis 10) können Transaktionen gestartet und Feldinhalte (und auch ganze Tabelleninhalte) ausgelesen werden. Tipp: Oft befinden sich die gesuchten Daten auf unterschiedlichen Reitern. Diese können Sie ebenfalls durch Angabe eines Transaktionscodes ansprechen. Nutzen Sie z.B. das Aufzeichnungswerkzeug für InputScripte von GuXT, um die entsprechenden Tcodes zu ermitteln. Bemerkung: Der Zugriff mit dieser Methode ist in der Regel langsamer als mit RFC-Aufrufen. Die Prüfung von Berechtigungen entfällt jedoch, da ja eine richtige Benutzersession stattfindet. Auch Meldungen bzw. Fehlermeldungen werden an CIS mobile weitergereicht und in der Webanwendung angezeigt.
VB.net
|
|||
Schritt 5: Diagramm anzeigen Im Beispiel können nicht nur Details zu dem entsprechenden Fertigungsauftrag angezeigt werden, sondern auch die zugehörigen Vorgänge sowie die Komponenten. Dazu wurden zwei weitere Aufklappbuttons definiert:
VB.net
Hinweis: In Zeile 7 werden zwei Aufklappbuttons definiert. Dabei wird die jeweilige Definition im String durch ein Komma getrennt. Wir möchten nun dem Benutzer noch die Möglichkeit geben, die Vorgänge anhand eines Ganttdiagramms zu prüfen. Dazu definieren wir einen weiteren Button mit Verweis auf eine Methode, die dann die Bilddatei des Diagramms mit Hilfe des ChartDirectors erstellt und an CIS mobile zurückliefert. Es kann selbstverständlich ein beliebiges anderes Tool für die Erzeugung der Grafiken verwendet werden.
VB.net
|
|||
Ergebnis von Schritt 5 Keine Pufferzeiten in diesem Fall |