Schritt 2: Erstellen einer Anwendungsdefinitionsdatei für die SAP-Elemente
Abgeschlossene Zeit: 15 Minuten
Ziel: Das Feature Business Data Catalog in Microsoft SharePoint Server macht Daten aus Branchenanwendungen verfügbar und integriert sie in Portale. Um diese Daten in Ihre Portalwebsite zu integrieren, müssen Sie eine Anwendungsdefinitionsdatei erstellen, die Microsoft Office SharePoint Server nutzen kann.
Mit dem Business Data Catalog Definition Editor-Tool, das mit dem Microsoft Office SharePoint Server 2007 SDK verfügbar ist, können Sie eine Anwendungsdefinitionsdatei für die Business Data Catalog erstellen. Dieses Tool generiert automatisch eine XML-Datei für die Definitionsdatei, sodass Sie die Datei nicht manuell in einem XML-Editor erstellen müssen.
Der Zweck der Microsoft Office SharePoint Server-Anwendung, die Sie erstellen, besteht darin, Folgendes zu erstellen:
Suchen Sie im SAP-System anhand eines Kundennamens nach einem Kunden.
Wählen Sie einen Kunden aus der Liste der abgerufenen Kunden aus, und rufen Sie die Details für den Kunden ab.
Wählen Sie einen Kunden aus der Liste der abgerufenen Kunden aus, und rufen Sie die Verkaufsaufträge für den Kunden ab.
Für jede dieser Anforderungen müssen Sie eine Reihe von Aufgaben im Business Data Catalog Definition Editor-Tool ausführen. Dieses Thema enthält Anweisungen zum Ausführen dieser Aufgaben.
Voraussetzungen
Sie müssen den Business Data Catalog Definition Editor als Teil des Microsoft Office SharePoint Server 2007 SDK installiert haben.
Veröffentlichen Sie den WCF-Dienst wie in Schritt 1: Veröffentlichen der SAP-Artefakte als WCF-Dienst beschrieben.
Erstellen einer Anwendungsdefinitionsdatei
Dieses Thema enthält schrittweise Anweisungen zum Erstellen einer Anwendungsdefinitionsdatei für den WCF-Dienst.
Herstellen einer Verbindung mit dem WCF-LOB-Dienst und Erstellen von Entitäten
Sie müssen eine Verbindung mit dem WCF-Dienst herstellen, um die Web Services Description Language (WSDL) für den Dienst zu extrahieren. Aus der WSDL extrahiert der Business Data Catalog Definition Editor die Methoden. Diese Methoden können zum Erstellen von Entitäten verwendet werden. In diesem Beispiel werden zwei Entitäten erstellt, jeweils eine für kunden- und verkaufsaufträge.
So stellen Sie eine Verbindung mit dem WCF-Dienst her und erstellen Entitäten
Starten Sie den Business Data Catalog Definition Editor. Klicken Sie im Menü Start auf Microsoft Business Data Catalog Definition Editor.
Klicken Sie auf der Symbolleiste auf LOB-System hinzufügen.
Klicken Sie im Fenster Lob-System hinzufügen auf Mit Webdienst verbinden.
Geben Sie im Feld URL die URL für den WCF-Dienst ein. Die URL muss das folgende Format aufweisen:
https://<computer_name>/Customer_Order/Rfc.svc?wsdl
dabei ist Rfc.svc die Datei, die für den Rfc-Vertrag erstellt wurde.
Die URL ist verfügbar, wenn Sie testen, ob der WCF-Dienst erfolgreich veröffentlicht wird, wie im Thema Schritt 1: Veröffentlichen der SAP-Artefakte als WCF-Dienst beschrieben.
Klicken Sie auf Verbinden.
Klicken Sie auf die Registerkarte Webmethode hinzufügen , um die Vorgänge anzuzeigen, die Sie im Assistenten für die Entwicklung des WCF-Adapterdiensts ausgewählt haben. Sie sehen die folgenden Methoden:
SD_RFC_CUSTOMER_GET
BAPI_SALESORDER_GETLIST
Ziehen Sie die Methoden auf die Entwurfsoberfläche. Ziehen Sie beide Vorgänge auf die verschiedenen Entitäten.
Klicken Sie auf OK.
Geben Sie im Dialogfeld Name für das LOB-System eingeben einen Namen in das Feld Branchensystemname ein. Rufen Sie in diesem Beispiel Customer_Order auf, und klicken Sie dann auf OK.
Im Business Data Catalog Definition Editor werden die beiden Entitäten als Entity0 und Entity1 aufgeführt. Geben Sie diesen Entitäten Anzeigenamen. Benennen Sie die Entität für SD_RFC_CUSTOMER_GET in Customer um, und benennen Sie die Entität für BAPI_SALESORDER_GETLIST in SalesOrder um. Führen Sie die folgenden Schritte aus, um die Entitäten umzubenennen:
Erweitern Sie den Knoten Customer_Order und dann den Knoten Entitäten .
Wählen Sie den Knoten Entity0 aus.
Geben Sie im Bereich Eigenschaften den Namen Customer in das Feld Name ein.
Wählen Sie den Knoten Entity1 aus.
Geben Sie im Bereich Eigenschaften den Namen SalesOrder in das Feld Name ein.
Angeben von Benutzernamen- und Kennwortheadern für die Methoden
Beim Erstellen eines WCF-Diensts für die ausgewählten RFCs im SAP-System haben Sie Benutzernamen- und Kennwortheader als Teil der Endpunktverhaltenskonfiguration angegeben. Weitere Informationen finden Sie unter Schritt 1: Veröffentlichen der SAP-Artefakte als WCF-Dienst. Sie müssen dieselben Werte für die Methodeneigenschaften angeben.
So geben Sie Benutzernamen- und Kennwortheader an
Fügen Sie den Benutzernamen und die Kennwortheader für die SD_RFC_CUSTOMER_GET-Methode hinzu.
Erweitern Sie im Bereich Metadatenobjekte den Knoten Kunde , und erweitern Sie dann den Knoten Methoden .
Klicken Sie auf den Knoten SD_RFC_CUSTOMER_GET, und klicken Sie im Bereich Eigenschaften auf die Schaltfläche mit den Auslassungspunkten (...) im Feld Eigenschaften .
Klicken Sie im Fenster PropertyView Collection Editor auf Hinzufügen, und geben Sie im Eigenschaftenbereich httpHeaderUserName als Feld Name ein. Geben Sie in ähnlicher Weise MyUserHeader für das Feld PropertyValue ein. Wählen Sie System.String für das Feld Typ aus.
Klicken Sie im Fenster PropertyView Collection Editor auf Hinzufügen, und geben Sie im Eigenschaftenbereich httpHeaderPassword als Feld Name ein. Geben Sie in ähnlicher Weise MyPassHeader für das Feld PropertyValue ein. Wählen Sie System.String für das Feld Typ aus.
Klicken Sie auf OK.
Fügen Sie den Benutzernamen und die Kennwortheader für die BAPI_SALESORDER_GETLIST-Methode hinzu.
Erweitern Sie im Bereich Metadatenobjekte den Knoten SalesOrder und dann den Knoten Methoden .
Klicken Sie auf den Knoten BAPI_SALESORDER_GETLIST, und klicken Sie im Bereich Eigenschaften auf die Schaltfläche mit den Auslassungspunkten (...) für das Feld Eigenschaften .
Klicken Sie im Fenster PropertyView Collection Editor auf Hinzufügen, und geben Sie im Eigenschaftenbereich httpHeaderUserName als Feld Name ein. Geben Sie in ähnlicher Weise MyUserHeader für das Feld PropertyValue ein. Wählen Sie System.String für das Feld Typ aus.
Klicken Sie im Fenster PropertyView Collection Editor auf Hinzufügen, und geben Sie im Eigenschaftenbereich httpHeaderPassword als Feld Name ein. Geben Sie in ähnlicher Weise MyPassHeader für das Feld PropertyValue ein. Wählen Sie System.String für das Feld Typ aus.
Klicken Sie auf OK.
Einrichten eines einzelnen Sign-On zum Herstellen einer Verbindung mit dem SAP-System
Nachdem Sie alle Prozeduren in diesem Thema ausgeführt haben, haben Sie eine Anwendungsdefinitionsdatei erstellt, die in eine SharePoint-Anwendung importiert werden kann. In der Anwendung rufen Sie die SAP-Methoden auf, um relevante Daten aus dem SAP-System abzurufen. Um dies zu aktivieren, müssen Sie eine Zuordnung zwischen einem Benutzer im SAP-System und dem Benutzer in der SharePoint-Anwendung erstellen. Sie erstellen diese Zuordnung in der SharePoint-Zentraladministrationskonsole, nachdem Sie die Anwendungsdefinitionsdatei importiert haben.
Zum Erstellen der Zuordnung müssen Sie jedoch eine Eigenschaft SecondarySsoApplicationId im Business Data Catalog Definition Editor festlegen.
So legen Sie die SecondarySsoApplicationId-Eigenschaft fest
Erweitern Sie im Bereich Metadatenobjekte den Knoten Customer_Order , und erweitern Sie dann den Knoten Instanzen .
Klicken Sie auf Customer_Order_Instance, und klicken Sie im Bereich Eigenschaften auf die Schaltfläche mit den Auslassungspunkten (...) für das Feld Eigenschaften .
Klicken Sie im Fenster PropertyView Collection Editor auf Hinzufügen, und geben Sie im Eigenschaftenbereich SecondarySsoApplicationId als Feld Name ein. Geben Sie in ähnlicher Weise SAPSSO für das Feld PropertyValue ein. Wählen Sie System.String für das Feld Typ aus.
Klicken Sie auf OK.
Anforderung 1: Suchen nach Kunden anhand des Kundennamens
Um eine Anwendungsdefinitionsdatei zu erstellen, die zum Suchen nach Kunden basierend auf dem Kundennamen verwendet werden kann, müssen Sie die folgenden Aufgaben ausführen.
Erstellen Sie in der SD_RFC_CUSTOMER_GET-Methode einen Filter, und ordnen Sie ihn dem Parameter zu, der den Kundennamen speichert.
Erstellen Sie eine Finder-Methode instance für die SD_RFC_CUSTOMER_GET-Methode. Eine Finder-Methode ruft eine Liste von Datensätzen basierend auf einem Filter ab.
So erstellen Sie einen Filter und ordnen ihn dem Kundennamenparameter zu
Erstellen Sie einen Filter.
Erweitern Sie im Bereich Metadatenobjekte den Knoten Kunde , und erweitern Sie dann den Knoten Methoden .
Erweitern Sie die SD_RFC_CUSTOMER_GET-Methode, klicken Sie mit der rechten Maustaste auf Filter, und klicken Sie dann auf Filter hinzufügen.
Geben Sie im Bereich Eigenschaften den Namen CustomerName in das Feld Name ein.
an.
Wählen Sie für die FilterType-Eigenschaftdie Option WildcardFilter aus.
Ordnen Sie den Filter dem PARAMETER NAME1 in der SD_RFC_CUSTOMER_GET-Methode zu.
Erweitern Sie im Bereich Metadatenobjekte den Knoten Kunde , und erweitern Sie dann den Knoten Methoden .
Erweitern Sie die SD_RFC_CUSTOMER_GET-Methode, und erweitern Sie dann den Knoten Parameter .
Erweitern Sie den Knoten NAME1 , und klicken Sie auf den zweiten Knoten NAME1 . Der NAME1-Parameter enthält den Namen des Kunden.
Wählen Sie im Bereich Eigenschaften die Option CustomerName aus der Liste FilterDescriptor aus.
So erstellen Sie eine Finder-Methode instance für die SD_RFC_CUSTOMER_GET-Methode
Erweitern Sie im Bereich Metadatenobjekte den Knoten Kunde , und erweitern Sie dann den Knoten Methoden .
Erweitern Sie den Knoten SD_RFC_CUSTOMER_GET , klicken Sie mit der rechten Maustaste auf Instanzen, und klicken Sie dann auf Methodeninstanz hinzufügen , um das Fenster Methodeninstanz erstellen zu öffnen.
Klicken Sie im Fenster Methodeninstanz erstellen auf Finder für Methodeninstanztyp. Wählen Sie CUSTOMER_T für Return TypeDescriptor aus.
Klicken Sie auf OK.
Geben Sie im Bereich Eigenschaften in das Feld Name GetCustomerByName_Instance ein.
Anforderung 2: Abrufen von Details für einen bestimmten Kunden aus der Kundenliste
Um eine Anwendungsdefinitionsdatei zu erstellen, die zum Suchen nach Kunden basierend auf dem Kundennamen verwendet werden kann, müssen Sie die folgenden Aufgaben ausführen.
Erstellen Sie in der SD_RFC_CUSTOMER_GET-Methode einen Bezeichner, und ordnen Sie ihn dem Parameter zu, der die Kundennummer speichert.
Erstellen Sie eine spezifische Finder-Methode instance für die SD_RFC_CUSTOMER_GET-Methode. Eine Spezifische Finder-Methode findet einen bestimmten Datensatz basierend auf einem Bezeichner.
So erstellen Sie einen Bezeichner und ordnen ihn dem Parameter "Kundennummer" zu
Erstellen Sie einen Bezeichner für die Entität Customer .
Erweitern Sie im Bereich Metadatenobjekte den Knoten Kunde .
Klicken Sie mit der rechten Maustaste auf den Knoten Bezeichner , und wählen Sie dann Bezeichner hinzufügen aus.
Geben Sie im Bereich Eigenschaften den Namen CustomerID in das Feld Name ein.
Wählen Sie System.String für das Feld Typ aus.
an.
Ordnen Sie den Bezeichner dem Schlüsselparameter für die SD_RFC_CUSTOMER_GET-Methode zu.
Erweitern Sie im Bereich Metadatenobjekte den Knoten Kunde , und erweitern Sie dann den Knoten Methoden .
Erweitern Sie die SD_RFC_CUSTOMER_GET-Methode, und erweitern Sie dann den Knoten Parameter .
Erweitern Sie den KUNNR-Parameter , und klicken Sie dann auf den zweiten KUNNR-Knoten .
Wählen Sie im Bereich Eigenschaften die Option CustomerID[Kunde] aus der Liste Bezeichner aus.
Richten Sie eine Zuordnung zwischen Eingabe- und Rückgabeparametern ein.
Erweitern Sie im Bereich Metadatenobjekte den Knoten Kunde , und erweitern Sie dann den Knoten Methoden .
Erweitern Sie die SD_RFC_CUSTOMER_GET-Methode, und erweitern Sie dann den Knoten Parameter .
Erweitern Sie den knoten CUSTOMER_T , dann den zweiten knoten CUSTOMER_T , dann den Knoten Element , und klicken Sie dann auf den Knoten KUNNR .
Wählen Sie im Bereich Eigenschaften die Option CustomerID[Kunde] aus der Liste Bezeichner aus.
So erstellen Sie eine spezifische Finder-Methode instance für die SD_RFC_CUSTOMER_GET-Methode
Erweitern Sie im Bereich Metadatenobjekte den Knoten Kunde und dann den Knoten Methoden .
Erweitern Sie den Knoten SD_RFC_CUSTOMER_GET , klicken Sie mit der rechten Maustaste auf Instanzen, und wählen Sie dann Methodeninstanz hinzufügen aus, um das Fenster Methodeninstanz erstellen zu öffnen.
Wählen Sie im Fenster Methodeinstanz erstellen die Option Spezifischer Finder für Methodeninstanztyp aus. Wählen Sie auf ähnliche Weise CUSTOMER_T für Return TypeDescriptor aus.
Klicken Sie auf OK.
Geben Sie im Bereich Eigenschaften im Feld NameGetCustomerByNumber_Instance ein.
Anforderung 3: Abrufen von Verkaufsauftragsdetails für einen bestimmten Kunden aus der Kundenliste
Um eine Anwendungsdefinitionsdatei zu erstellen, die zum Abrufen von Auftragsdetails für einen bestimmten Kunden verwendet werden kann, müssen Sie die folgenden Aufgaben ausführen.
Richten Sie eine Zuordnung zwischen den Entitäten Customer und SalesOrder ein.
Erstellen Sie eine Association-Methode für die BAPI_SALESORDER_GETLIST-Methode.
So erstellen Sie eine Zuordnung zwischen den Entitäten Customer und SalesOrder
Erweitern Sie im Bereich Metadatenobjekte den Knoten SalesOrder und dann den Knoten Methoden .
Erweitern Sie die BAPI_SALESORDER_GETLIST-Methode, und erweitern Sie dann den Knoten Parameter .
Erweitern Sie den Knoten CUSTOMER_NUMBER , und klicken Sie dann auf den zweiten knoten CUSTOMER_NUMBER .
Wählen Sie im Bereich Eigenschaften die Option CustomerID[Kunde] aus der Liste Bezeichner aus.
So erstellen Sie eine Association-Methode instance für die BAPI_SALESORDER_GETLIST-Methode
Erweitern Sie im Bereich Metadatenobjekte den Knoten SalesOrder und dann den Knoten Methoden .
Erweitern Sie den Knoten BAPI_SALESORDER_GETLIST , klicken Sie mit der rechten Maustaste auf Instanzen, und wählen Sie dann Methodeninstanz hinzufügen aus, um das Fenster Methodeninstanz erstellen zu öffnen.
Wählen Sie im Fenster Methodeninstanz erstellen die Option Zuordnung für Methodeninstanztyp aus.
Wählen Sie in der Liste Quellentitätendie Option Kunde aus.
Wählen Sie in der Liste Return TypeDescriptordie Option SALES_ORDERS.. aus.
Klicken Sie auf OK.
Geben Sie im Bereich Eigenschaften für das Feld Name SalesOrderForCustomer_Instance ein.
an.
Entfernen von Parametern des System.Nullable-Typs
Beim Erstellen der Association-Methode instance für die BAPI_SALESORDER_GETLIST-Methode haben Sie den Rückgabetyp als SALES_ORDERS ausgewählt. Wenn Sie den parameter SALES_ORDER erweitern, werden Sie feststellen, dass einige Parameter vom Typ System.Nullable sind. Sie können den Parametertyp anzeigen, indem Sie den Parameter im Business Data Catalog Definition Editor auswählen und den Wert für die TypeName-Eigenschaft betrachten.
Für solche Parameter erstellt der Business Data Catalog Definition Editor einen weiteren Parameter mit dem gleichen Namen, aber mit dem Suffix "Angegeben". Sehen Sie sich beispielsweise Parameter ITM_NUMBER und ITM_NUMBERSpecified an. Microsoft Office SharePoint Server unterstützt keine System.Nullable-Parameter. Wenn Sie also Datensätze ausprobieren, die den Parametertyp System.Nullable enthalten, wird eine Ausnahme ausgelöst. Daher müssen Sie beide Parameter (mit und ohne das Suffix "Angegeben" und denselben Namen) aus dem Business Data Catalog Definition Editor entfernen.
So entfernen Sie die Parameter des Typs System.Nullable
Erweitern Sie im Bereich Metadatenobjekte den Knoten SalesOrder und dann den Knoten Methoden .
Erweitern Sie den Knoten BAPI_SALESORDER_GETLIST und dann den Knoten Parameter .
Erweitern Sie SALES_ORDERS, den zweiten SALES_ORDERS, und erweitern Sie dann Element.
Klicken Sie mit der rechten Maustaste auf den Parameter, der das Suffix "Angegeben" im Namen enthält, und wählen Sie dann Löschen aus.
Klicken Sie mit der rechten Maustaste auf den Parameter, der denselben Namen wie der gelöschte Parameter ohne das Suffix hat, und wählen Sie dann Löschen aus. In der Regel befindet sich dieser Parameter direkt vor dem Parameter mit dem Suffix "Angegeben".
Festlegen von Standardparametern
Die BAPI_SALESORDER_GETLIST benötigt zwei Parameter. Einer dieser Parameter, TRANSACTION_GROUP, ist der Standardparameter. Daher müssen Sie den Standardwert für diesen Parameter festlegen.
So legen Sie den Standardwert für TRANSACTION_GROUP
Erweitern Sie im Bereich Metadatenobjekte den Knoten SalesOrder und dann den Knoten Methoden .
Erweitern Sie den Knoten BAPI_SALESORDER_GETLIST und dann den Knoten Instanzen .
Wählen Sie die SalesOrderForCustomer_Instance-Methode instance aus, und klicken Sie im Bereich Eigenschaften auf die Schaltfläche mit den Auslassungspunkten (...) für das Feld DefaultValues.
Erweitern Sie im Fenster Bearbeiten TRANSACTION_GROUP Knoten, und geben Sie für das Feld TRANSACTION_GROUP den Standardwert 0 an.
Klicken Sie auf Schließen.
Exportieren der Anwendungsdefinition in eine Datei
Sie haben nun eine Anwendungsdefinition erstellt, die das SAP-System instance Metadaten enthält. Sie müssen diese Definition in eine XML-Datei exportieren, die in Microsoft Office SharePoint Server importiert werden kann.
So exportieren Sie die Anwendungsdefinition in eine Datei
Klicken Sie im Bereich Metadatenobjekte mit der rechten Maustaste auf den Knoten Customer_Order , und klicken Sie dann auf Exportieren.
Speichern Sie die Datei als Customer_Order.xml.
Nächste Schritte
Sie müssen jetzt eine SharePoint-Anwendung erstellen, um Daten aus einem SAP-System abzurufen. Anweisungen finden Sie unter Schritt 3: Erstellen einer SharePoint-Anwendung zum Abrufen von Daten aus SAP .
Weitere Informationen
Tutorial 1: Darstellen von Daten aus einem SAP-System auf einer SharePoint-Website