Ziel: Reklamationen zu Material anzeigen

In diesem Beispiel werden wir Information aus dem Qualitätsmanagement in CIS mobile hinzufügen: Die Reklamationen (z.B. bei fehlerhafter, beschädigter, mangelhafter, falsch bestellter oder falsch gelieferter Ware.) Dies sind Zusatzinformationen zu einem vorhandenen Material und im SAP GUI über die Transaktion QM03 abrufbar. Unser Ziel ist jedoch, dass ein Aussendienstmitarbeiter unterwegs auf einen Blick erkennen kann, ob zu einem bestimmten Material Reklamationen vorliegen.


Die Transaktion QM03




Die Reklamationen sind eine Zusatzinformation zum Material




Reklamationen aller Kunden zum gewählten Material

 

Schritt 1: Platzhalter für Addons anzeigen

Aktivieren Sie in den Einstellungen die Testausgabe (Platzhalter) 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 soll der Platzhalter "MaterialsButton2" ersetzt werden durch die Möglichkeit für den Benutzer, eine Liste mit Reklamationen aufzuklappen. Die Methode, die in VB.net zu implementieren ist, muss daher "BuildMaterialButtons2" heißen.



Testausgabe aktivieren, um Platzhalter für Addons anzuzeigen




Mögliche Stellen für das Addon


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. Im Prinzip benötigen wir für die Anzeige der Reklamationen nur die Materialnummer (MATNR), um anschließend aus der Tabelle QMEL (Qualitätsmeldung) die gewünschten Informationen mit einem RfcDatabaseSelect auszulesen.



Verfügbare Schlüssel und deren aktuelle Werte zu einem Material


Schritt 3: Mapping der SAP-Tabelle

Alle für das Beispiel erforderlichen Daten zu den Reklamationen sind in der SAP-Tabelle QMEL abgelegt. Wir generieren daher im S10-Repository aus dieser Tabelle eine Klasse "qmel", die wir dann in VB.net einbinden. Zusätzlich fügen wir im Repository in die Klasse "addon" ein Objekt (s10 folder) vom Typ "qmel" ein, das wir dann in VB.net für die RfcDatabaseSelect-Abfrage (siehe Schritt 4, Zeile 10) verwenden.



Tipp: Daten anzeigen mit Menü "Hilfsmittel" -> "Tabelleninhalt" -> "anzeigen"





Automatische Generierung einer VB.net Klasse aus einer SAP-Tabelle





Vorbereiten und Generieren der Klasse für die Verwendung in VB.net





Einbinden der generierten .vb Dateien in das Projekt "s10cisaddon.sln"


Schritt 4: Methode in VB.net implementieren

Die Methode in VB.net, deren Name sich nach dem zu ersetzenden Platzhalter richtet, hat folgenen Methodenkopf:

VB.net
   ' Material Addon: Complaints and Stock
    Public Function BuildMaterialButtons2(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 die Möglichkeiten zum Aufklappen der Zusatzinformationen, in diesem Beispiel sind das die Reklamationen zum Material, anzubieten.

Hinweis: Es werden in der Methode zwei Aufklappbuttons hinzugefügt, neben den Reklamationen können dann auch die Bestände abgerufen werden, siehe Beispiel 4.

Die Syntax für einen neuen Aufklappbutton lautet folgendermaßen:
"Name der aufzurufenden Methode" | "Text in CIS mobile" | "Text der Processingmessage" , "Methode2"|"Text2"|"Nachricht2",  etc.

Der Name der aufzurufenden Methode ist in diesem Beispiel "BuildMaterialButtons2" und besteht im Prinzip nur aus der Definition des SELECT-statements, SELECT-Aufrufes und der Rückgabe des aufbereiteten HTML-Strings. Der Inhalte der Tabelle wird in dem Objekt al_qmel (s10 folder) gespeichert und ist vom Typ QMEL, den wir in Schritt 3 erstellt hatten.

VB.net
   Public Function BuildMaterialComplaints(ByVal keys _
     As Dictionary(Of String, String), _
               ByRef buttons As String) As String

        ' where-condition for SAP Select
        Dim where As String = ""
        where &= "VKORG = '" & GetItem(keys, "VKORG") & "'"
        where &= " AND VTWEG = '" & GetItem(keys, "VTWEG") & "'"
        where &= " AND SPART = '" & GetItem(keys, "SPART") & "'"
        where &= " AND MATNR = '" & GetItem(keys, "MATNR") & "'"

        all_qmel.RfcDatabaseSelect(where)

        ' sort by date descending
        all_qmel.Sort("ERDAT-")

        ' Build HTML tabular output
        Dim sb As New StringBuilder

        ' column headings
        sb.Append("<div class='colhead01' style='width:800px; _ 
                       font-size:10pt; margin-bottom:4px;'>")

        ' <...>

        Return sb.ToString

    End Function