Freigeben über


Behandeln von Betriebsproblemen mit dem SAP-Adapter

In diesem Abschnitt wird die Verwendung von Problembehandlungstechniken zum Beheben von Betriebsfehlern erläutert, die bei der Verwendung des Microsoft BizTalk-Adapters für mySAP Business Suite auftreten können.

Aktivieren der Ablaufverfolgung

Informationen zur Unterstützung der Ablaufverfolgung im SAP-Adapter finden Sie unter Diagnoseablaufverfolgung und Nachrichtenprotokollierung für den SAP-Adapter.

Fehler beim Laden der Bindung

Problem

Wenn Sie versuchen, das Visual Studio-Plug-In "Adapterdienstverweis hinzufügen" oder das BizTalk-Projekt-Add-In "Adapterdienst nutzen" zu starten, zeigt die grafische Benutzeroberfläche den folgenden Fehler an:

There was an error loading the binding, <binding name>, from your system configuration.
ConfigurationErrorsException: Exception has been thrown by the target of an invocation.

Ursache

Wenn Sie das Add Adapter Service Reference Plug-In oder das Add-In Consume Adapter Service starten, lädt Windows Communication Foundation (WCF) die Adapterbindungen für alle installierten Adapter. Die Adapterbindungen wiederum sind von der spezifischen Clientsoftware für die Unternehmensanwendung abhängig. Dieses Problem kann aus einem oder beiden der folgenden Gründe auftreten:

  • Die erforderliche BRANCHENclientsoftware ist nicht auf dem Computer installiert, auf dem Sie den Adapter installiert haben.

  • Sie haben eine typische oder vollständige Installation des Adapters durchgeführt, der alle im BizTalk-Adapterpaket enthaltenen Adapter installiert. Die LOB-Clientbibliotheken werden jedoch möglicherweise nur für eine Unternehmensanwendung installiert. Daher kann die GUI die Bindungen für die anderen Adapter nicht laden.

    Lösung

  • Stellen Sie sicher, dass Sie eine benutzerdefinierte Installation der Adapter durchführen, um nur den von Ihnen benötigten Adapter zu installieren.

  • Stellen Sie sicher, dass die erforderlichen BRANCHENclientversionen auf dem Computer installiert sind, auf dem Sie das BizTalk Adapter Pack installiert haben. Unterstützte BRANCHENsysteme listet die unterstützten Versionen auf. Das BizTalk-Adapterpaket erfordert auch bestimmte DLLs für die Schnittstelle mit dem SAP-System. Weitere Informationen zu den dlLs, die für den Adapter erforderlich sind, finden Sie unter Installieren von benutzerdefinierten RFCs für den Datenanbieter für SAP.

Der SAP-Adapter fehlt in der BizTalk-Verwaltungskonsole.

Problem

Der im BizTalk-Adapterpaket enthaltene SAP-Adapter wird nicht in der Liste der Adapter in der BizTalk Server-Verwaltungskonsole angezeigt.

Ursache

Der SAP-Adapter ist eine benutzerdefinierte WCF-Bindung. Obwohl die BizTalk Server-Verwaltungskonsole den WCF-Custom-Adapter anzeigt, werden die benutzerdefinierten WCF-Bindungen nicht angezeigt, sodass der WCF-basierte SAP-Adapter nicht angezeigt wird.

Auflösung

Sie können den SAP-Adapter explizit der BizTalk Server-Verwaltungskonsole hinzufügen, indem Sie die unter Hinzufügen des SAP-Adapters zu BizTalk Server Verwaltungskonsole beschriebenen Schritte ausführen.

DLLs fehlen fehler beim Öffnen einer Verbindung mit SAP

Problem

Wenn Sie versuchen, mithilfe des SAP-Adapters eine Verbindung mit dem SAP-System herzustellen, wird im SAP-System ein Dialogfeld angezeigt, in dem darüber informiert wird, dass einige DLLs fehlen.

Ursache

Der SAP-Adapter verwendet librfc32u.dll, um eine Verbindung mit dem SAP-System herzustellen. Die librfc32u.dll wiederum erfordert eine Reihe von DLLs, um zu funktionieren. Dieser Fehler wird angezeigt, wenn diese unterstützenden DLLs nicht der PATH-Variablen auf dem Computer hinzugefügt werden, auf dem der SAP-Adapter installiert ist.

Lösung

Sehen Sie sich die Tabelle als Lösung für das Problem Fehler beim Laden der Adapterbindungen an . In der Tabelle sind die unterstützenden DLLs aufgeführt, die für die Schnittstelle mit dem SAP-System mithilfe des SAP-Adapters erforderlich sind.

Fehler beim Abrufen von XML mit mehr als 65.536 Knoten

Problem

Der Adapter gibt beim Abrufen einer XML-Ausgabe mit mehr als 65.536 Knoten den folgenden Fehler aus.

Maximum number of items that can be serialized or deserialized in an object graph is '65536'.
Change the object graph or increase the MaxItemsInObjectGraph quota.

Ursache

Der Adapter kann ein Objekt mit mehr als 65.536 Elementen nicht serialisieren und deserialisieren.

Auflösung

Sie können dieses Problem beheben, indem Sie den maxItemsInObjectGraph Parameter auf eine der folgenden beiden Arten festlegen:

  • Legen Sie diesen Parameter fest, indem Sie den maxItemsInObjectGraph Parameter im ServiceBehavior -Attribut ihrer Dienstklasse ändern.

  • Fügen Sie der app.config-Datei Ihrer Anwendung Folgendes hinzu.

    <behaviors>
      <endpointBehaviors>
        <behavior name="NewBehavior">
          <dataContractSerializer maxItemsInObjectGraph="65536000" />
        </behavior>
      </endpointBehaviors>
    </behaviors>
    

    Ein Beispiel app.config sieht wie folgt aus.

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <system.serviceModel>
    <behaviors>
      <endpointBehaviors>
        <behavior name="NewBehavior">
         <dataContractSerializer maxItemsInObjectGraph="65536000" />
        </behavior>
      </endpointBehaviors>
    </behaviors>
    <client>
      <endpoint   behaviorConfiguration="NewBehavior" binding="sapBinding"
       contract="IOutboundContract" name="sap_ICalculator" />
    </client>
  </system.serviceModel>
</configuration>

Fehler beim Eingeben eines Verbindungs-URI für einen WCF-Custom-Port in BizTalk Server

Problem

BizTalk Server gibt den folgenden Fehler an, wenn Sie einen Verbindungs-URI angeben, um eine Verbindung mit dem SAP-System herzustellen.

Error saving properties.
(System.ArgumentException) The specified address is invalid.
(System.ArgumentException) Invalid address;
"<connection URI>" is not a well-formed absolute uri.

Ursache

Der Verbindungs-URI entspricht nicht dem Standardcodierungsformat. Beispielsweise kann der Wert für einen Parameter ein Leerzeichen enthalten.

Auflösung

Stellen Sie sicher, dass der angegebene Verbindungs-URI dem Standardcodierungsformat entspricht. Beispielsweise muss ein Leerzeichen durch "%20" ersetzt werden.

System.ArgumentNullException-Fehler beim Abschließen eines Vorgangs in SAP

Problem

Der Adapter gibt den folgenden Fehler aus, wenn ein Vorgang auf dem SAP-System mithilfe von BizTalk Server ausgeführt wird.

System.ArgumentNullException: Value cannot be null.

Ursache

Die WCF-Aktion für die Nachricht ist nicht angegeben. WCF erfordert, dass für jeden Vorgang eine SOAP-Aktion angegeben wird, die den Adapter über den Vorgang informiert, der für die BRANCHENanwendung ausgeführt werden soll.

Auflösung

Geben Sie die SOAP-Aktion im Sendeport oder als Nachrichtenkontexteigenschaft in einer BizTalk-Orchestrierung an. Anweisungen finden Sie unter Konfigurieren der SOAP-Aktion für das SAP-System. Eine Liste der Aktionen für jeden Vorgang finden Sie unter Nachrichten und Nachrichtenschemas .

XmlReaderParsingException aufgrund eines falschen Vorgangsnamens in der angegebenen Aktion

Problem

Die BizTalk Server-Verwaltungskonsole gibt beim Senden von Nachrichten an ein SAP-System den folgenden Fehler aus:

Microsoft.ServiceModel.Channels.Common.XmlReaderParsingException: Invalid argument:
<BtsActionMapping xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <Operation Name="<operation_name>" Action="<action>" />
</BtsActionMapping>

Ursache

Wenn Sie einen WCF-Custom Port konfigurieren, indem Sie die Portbindungsdatei importieren, die vom BizTalk-Projekt-Add-In "Adapterdienst nutzen" erstellt wurde, wird die Aktion im Port im folgenden Format angegeben:

<BtsActionMapping>
  <Operation Name="Op1" Action="http://MyService/Svc/Op1" />
</BtsActionMapping>

Im obigen Format wird der Vorgangsname durch den Vorgang gesteuert, den Sie beim Generieren des Schemas ausgewählt haben. Wenn Sie beispielsweise ein Schema für RFC_CUSTOMER_GET generiert haben, lautet der Vorgangsname in der Aktion "RFC_CUSTOMER_GET". Der Vorgangsname im logischen Port, der in der BizTalk-Orchestrierung in Visual Studio erstellt wurde, kann jedoch unterschiedlich sein.

Lösung

Stellen Sie sicher, dass die Vorgangsnamen sowohl im logischen Port (in der BizTalk-Orchestrierung in Visual Studio) als auch im physischen Port (in BizTalk Server Verwaltungskonsole) identisch sind.

Fehler beim Öffnen von mehr als 100 Verbindungen mit SAP

Problem

Der Adapter löst die folgende Ausnahme aus, wenn mehr als 100 Verbindungen mit dem SAP-System geöffnet werden.

Microsoft.ServiceModel.Channels.Common.ConnectionException: ErrorCode=RFC_OK. ErrorGroup=RFC_ERROR_COMMUNICATION. SapErrorMessage=Connect to SAP gateway failed
Connect_PM  GWHOST=<gw_host>, GWSERV=<gw_serv>, SYSNR=<sys_number>
LOCATION    CPIC (TCP/IP) on local host with Unicode
ERROR       max no of 100 conversations exceeded

Ursache

Standardmäßig aktiviert SAP nicht mehr als 100 Verbindungen mit dem System.

Lösung

Um die maximale Anzahl von Verbindungen zu erhöhen, müssen Sie eine Umgebungsvariable auf dem Computer erstellen, auf dem die SAP-Clientbibliotheken installiert sind, und sie auf einen numerischen Wert festlegen. Der Wert, den Sie für diese Umgebungsvariable angeben, ist die maximale Anzahl von Verbindungen, die mit dem SAP-System hergestellt werden können. Erstellen Sie die Umgebungsvariable mit den folgenden Details:

Fehler beim Generieren oder Abrufen von Metadaten für IDOCs

Problem

Beim Generieren von Metadaten für den Empfangsvorgang für ein IDOC in einem SAP-System gibt der SAP-Adapter den folgenden Fehler aus.

Error while retrieving or generating the WSDL.
Adapter message: Details: ErrorCode=RFC_EXCEPTION.
ErrorGroup=RFC_ERROR_APPLICATION_EXCEPTION. SapErrorMessage= OBJECT_UNKNOWN.
AdapterErrorMessage=Error returned by RfcCallReceiveEx while calling RFC: IDOCTYPE_READ_COMPLETE.

Ursache

Der SAP-Adapter verwendet den IDOCTYPE_READ_COMPLETE RFC, um die Metadaten für den Empfangsvorgang für ein IDOC abzurufen. Für den Aufruf dieses RFC sind bestimmte Benutzerberechtigungen im SAP-System erforderlich. Wenn Sie eine Verbindung mit dem SAP-System mithilfe von Anmeldeinformationen hergestellt haben, die nicht über die Berechtigung zum Aufrufen des IDOCTYPE_READ_COMPLETE RFC verfügen, gibt der SAP-Adapter einen Fehler aus, um Metadaten zu generieren.

Lösung

Melden Sie sich bei der SAP GUI mit den gleichen Anmeldeinformationen an, die Sie für den Adapter verwendet haben. Navigieren Sie zur Transaktion SE37, und geben Sie den Namen des RFC ein, der als IDOCTYPE_READ_COMPLETE ausgeführt werden soll.

Geben Sie für die Eingabeparameter PI_IDOCTYP und PI_CIMTYP die Werte ein, die dem benutzerdefinierten IDoc entsprechen. Geben Sie für die Parameter PI_VERSION und PI_RELEASE die gleichen Werte ein, die auf der Benutzeroberfläche für Adaptermetadaten ausgewählt werden. Drücken Sie zum Ausführen F8.

Sie sollten die gleiche Ausnahme wie der Adapter erhalten, mit weiteren Informationen zum Problem.

Wenn Sie das Problem weiterhin nicht beheben können, generieren Sie anstelle des Empfangsvorgangs ein Schema für den ReceiveIdoc-Vorgang. In diesem Fall verwendet der SAP-Adapter keine IDOCTYPE_READ_COMPLETE und löst keinen Fehler aus.

Fehler beim Senden oder Empfangen von IDOCs mit nicht freigegebenen Segmenten

Problem

Der SAP-Adapter bietet eine XmlReaderParsingException beim Senden von IDOCs (mithilfe des Sendevorgangs ) oder beim Empfangen von IDOCs (mit Empfangsvorgang ), die nicht freigegebene Segmente aufweisen.

Ursache

IDOCs bestehen aus Segmenten. Beim Generieren von Metadaten ruft der SAP-Adapter alle freigegebenen Segmente ab, die im SAP-System vorhanden sind. Wenn der Adapterclient jedoch die Metadaten verwendet, um einen Vorgang wie den Empfang eines IDOC auszuführen, gibt der SAP-Adapter eine XmlReaderParsingException an. Dies tritt auf, weil das SAP-System beim Empfang des IDOC möglicherweise auch einige nicht freigegebene Segmente gesendet hat, für die die Metadaten nicht vom Adapter generiert wurden.

Lösung

Führen Sie einen der folgenden Schritte aus:

  • Aktualisieren Sie Ihr SAP-System, indem Sie entsprechende Patches für die nicht freigegebenen Segmente anwenden.

  • Verwenden Sie SendIdoc - oder ReceiveIdoc-Vorgänge , um jeweils IDOCs zu senden und zu empfangen. Weitere Informationen zu diesen Vorgängen finden Sie unter Vorgänge auf IDOCs in SAP.

Fehler beim Senden von Flatfile-IDOCs an SAP, die mithilfe des SAP FilePort empfangen wurden

Problem

Wenn Sie versuchen, (mithilfe des Sendevorgangs) ein Flatfile-IDOC an ein SAP-System zu senden, das mit einem SAP FilePort generiert wurde, kann der Flatfileparser in der BizTalk-Orchestrierung die Flatf-Datei nicht in ein XML-Format konvertieren, wodurch der IDOD-Sendevorgang fehlschlägt.

Ursache

Wenn das SAP-System mithilfe eines FilePorts ein IDOC generiert, werden alle leeren Leerzeichen am Ende eines Segments abgesenkt. Der Flatfileparser erwartet jedoch, dass die Daten des letzten Felds im Segment vorhanden sind, um die Flatfile erfolgreich in XML zu konvertieren. Da die leeren Leerzeichen im Segment nicht vorhanden sind, kann der Flatfileparser die Flatfile nicht in XML analysieren.

Auflösung

Verwenden Sie für solche Flatfile-IDOCs, die mit dem SAP FilePort generiert wurden, stattdessen den SendIdoc-Vorgang . Weitere Informationen zu diesem Vorgang finden Sie unter Vorgänge auf IDOCs in SAP.

Fehler beim Empfangen von IDOCs von SAP, wenn die EnableBizTalkCompatibilityMode-Eigenschaft auf true festgelegt ist

Problem

Die folgende Ausnahme tritt beim Empfangen eines IDOC auf, bei dem die EnableBizTalkCompatibilityMode-Bindungseigenschaft auf true festgelegt ist:

System.Exception: Loading property information list by namespace failed or property not found in the list. Verify that the schema is deployed properly.

Ursache

Wenn die Bindungseigenschaft EnableBizTalkCompatibilityMode auf true festgelegt ist, müssen Sie die BizTalk-Eigenschaftsschema-DLL für den SAP-Adapter als Ressource in Ihrer BizTalk-Anwendung hinzufügen, d. h. die Anwendung, in der Ihr Projekt bereitgestellt wird.

Lösung

Der Name für das BizTalk-Eigenschaftenschema für den SAP-Adapter ist Microsoft.Adapters.SAP.BiztalkPropertySchema.dll. Dies wird vom BizTalk Adapter Pack-Setup unter <installationslaufwerk>:\ Programme\Microsoft BizTalk Adapter Pack\bin installiert. Führen Sie die folgenden Aufgaben aus, um diese Assembly als Ressource in Ihrer BizTalk-Anwendung hinzuzufügen.

Hinzufügen einer Assembly als Ressource in der BizTalk-Anwendung

  1. Starten Sie die BizTalk Server-Verwaltungskonsole.

  2. Erweitern Sie in der Konsolenstruktur die BizTalk-Gruppe, dann Anwendungen und dann die Anwendung, der Sie eine BizTalk-Assembly hinzufügen möchten.

  3. Erweitern Sie Anwendungen und die Anwendung, der Sie eine BizTalk-Assembly hinzufügen möchten.

  4. Klicken Sie mit der rechten Maustaste auf Ressourcen, zeigen Sie auf Hinzufügen, und klicken Sie dann auf BizTalk-Assemblys.

  5. Klicken Sie auf Hinzufügen, navigieren Sie zu dem Ordner mit der BizTalk-Assemblydatei, wählen Sie die BizTalk-Assemblydatei aus, und klicken Sie dann auf Öffnen.

  6. Geben Sie unter Optionen die Optionen zum Installieren der BizTalk-Assembly im GAC an, und klicken Sie dann auf OK.

Fehler bei der Validierung beim Empfangen von IDOCs von einem SAP-System

Problem

Ein IDOC, das von einem SAP-System empfangen wurde, schlägt die Überprüfung mit einem Fehler ähnlich dem folgenden fehl:

There was a failure executing the receive pipeline: "Microsoft.BizTalk.DefaultPipelines.XMLReceive, Microsoft.BizTalk.DefaultPipelines, Version=3.0.1.0, Culture=neutral, PublicKeyToken=<token>"
Source: "Pipeline " Receive Port: "ReceiveIdoc" URI: "<connection uri>"
Reason: The document failed to validate because of the following error:
"The 'http://Microsoft.LobServices.Sap/2007/03/Types/Idoc/3/CREMAS03//620:TAXBS' element has an invalid value according to its data type."

Ursache

Die für den Empfang eines IDOC generierten Metadaten enthalten die zulässigen Werte, die im Rahmen des Empfangsvorgangs für eine bestimmte Spalte empfangen werden können. Diese Werte werden als Enumeration in den generierten Metadaten verfügbar gemacht. Wenn das IDOC jedoch tatsächlich empfangen wird, kann sich der empfangene Wert von den aufgezählten Werten unterscheiden. Daher schlägt der Empfangsvorgang beim Überprüfen der Werte fehl. Beispiel: In der obigen Fehlermeldung schlägt die Überprüfung für die TAXBS-Spalte fehl.

Auflösung

Sie müssen die Enumeration manuell im Schema (für BizTalk-Projekte) oder den Clientproxy (für .NET-Projekte mithilfe des WCF-Dienstmodells) bearbeiten, um den vom SAP-System empfangenen Wert einzuschließen.

Flatfile-IDOCs vor und nach der Konvertierung in XML sind nicht identisch

Problem

Wenn Sie einen Flatfileparser verwenden, um ein Flatfile-IDOC mithilfe des Schemas in einen XML-Code zu konvertieren und dann den XML-Code über eine Pipeline mit dem Schema wieder in ein Flatfile-IDOC zu konvertieren, sind die beiden Flatfile-IDOCs nicht identisch.

Ursache

Beim Generieren des XML-Codes aus einem Flatfile-IDOC generiert der Parser keine XML-Knoten mit leeren Werten. Wenn dieser XML-Code wieder in eine Flatdatei konvertiert wird, werden die im XML-Code fehlenden Knoten nicht im Flatfile-IDOC reflektiert. Daher sind die Flatfile-IDOCs nicht identisch.

Auflösung

Führen Sie in dem Schema zum Konvertieren der Flatfile in XML und umgekehrt innerhalb der Knotendefinition "Senden" oder "Empfangen" die folgenden Schritte aus:

  1. Legen Sie die suppress_empty_nodes-Eigenschaft auf false fest, und legen Sie die generate_empty_nodes-Eigenschaft auf true fest. Standardmäßig ist die suppress_empty_nodes-Eigenschaft auf true und die generate_empty_nodes-Eigenschaft auf false festgelegt, sodass alle leeren Knoten nicht im XML-Code reflektiert werden.

  2. Die Flatfile-Datei kann am Ende einen zusätzlichen Wagenrücklauf enthalten. Sie können die suppress_trailing_delimiters-Eigenschaft auf Ja festlegen, um diese zusätzliche Wagenrückkehr zu vermeiden. Diese Eigenschaft wird auch als Die Eigenschaft Suppress Trailing Delimiters verfügbar gemacht, wenn Sie das Schema in Visual Studio öffnen.

Fehler bei der Verwendung eines physischen Ports, der mit einer Bindungsdatei erstellt wird

Problem

Nachdem Sie das Add-In Adapterdienst nutzen verwendet haben, um ein Schema für einen bestimmten Vorgang auf dem SAP-System zu generieren, erstellt das Add-In auch eine Portbindungsdatei. Sie können diese Bindungsdatei mithilfe der BizTalk Server-Verwaltungskonsole importieren, um physische Ports in BizTalk Server zu erstellen. Wenn Sie jedoch Nachrichten über solche Ports an das SAP-System senden, kann der Adapter die für den Port angegebene Aktion nicht verstehen und gibt einen Fehler wie den folgenden an:

Microsoft.ServiceModel.Channels.Common.UnsupportedOperationException: Incorrect Action
<BtsActionMapping xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <Operation Name="<op_name>" Action="<action>" />
</BtsActionMapping>. Correct the specified Action, or refer to the documentation on the allowed formats for the Actions.

Ursache

Wenn Sie logische Ports in einer BizTalk-Orchestrierung erstellen, geben Sie bestimmte Namen für die Vorgänge an diesen Ports an, oder Sie verwenden einfach die Standardnamen wie Operation_1, Operation_2 usw. In der bindungsdatei, die vom Add-In Verbrauchsadapterdienst generiert wurde, ist der Vorgangsname jedoch mit dem Namen des Vorgangs identisch, für den Sie Metadaten generieren. Wenn Sie beispielsweise Metadaten für RFC_CUSTOMER_GET generieren, wird die Aktion auf Folgendes festgelegt:

<Operation Name="RFC_CUSTOMER_GET" Action="http://Microsoft.LobServices.Sap/2007/03/Rfc/RFC_CUSTOMER_GET" />

Wenn Sie die Bindungsdatei importieren, wird dieselbe Aktion für den physischen Port festgelegt. Daher stimmen die Vorgangsnamen auf dem logischen Port (Operation_1, Operation_2 usw.) nicht mit den Vorgangsnamen überein, die in der Aktion für den physischen Port angegeben sind, was zu einem Fehler führt.

Auflösung

Stellen Sie sicher, dass der Vorgangsname im logischen Port mit dem Vorgangsnamen übereinstimmt, der als Teil der Aktion im physischen Port angegeben wurde. Führen Sie einen der folgenden Schritte aus:

  • Ändern Sie den Vorgangsnamen im logischen Port der BizTalk-Orchestrierung von Operation_1 usw. in den Vorgang, für den Sie Metadaten generieren, z. B. RFC_CUSTOMER_GET.

  • Ändern Sie den Vorgangsnamen in der Aktion für den physischen Port in den Vorgangsnamen im logischen Port. Beispielsweise können Sie die Aktion im physischen Port so ändern, dass sie wie folgt aussieht:

    <Operation Name="Operation_1" Action="http://Microsoft.LobServices.Sap/2007/03/Rfc/RFC_CUSTOMER_GET" />
    

Die Antwortmeldung für einen in SAP ausgeführten Vorgang enthält keine Tabellenparameter.

Ursache

Wenn Sie den SAP-Adapter zum Ausführen eines Vorgangs auf dem SAP-System verwenden, der eine große Anzahl von Tabellen zurückgibt und jede Tabelle eine große Anzahl von Datensätzen aufweist, entspricht dies einem großen Dataset, das als Teil der Antwortnachricht vom SAP-System zurückgegeben wird. Daher gibt der SAP-Adapter standardmäßig keine Tabellenparameter als Teil der Antwortnachricht zurück.

Auflösung

Sie können die Tabellen anfordern, die der SAP-Adapter als Teil der Antwort zurückgeben soll. Sie können dazu einen leeren Tabellenparameter als Teil der Anforderungsnachricht bereitstellen, die Sie an das SAP-System senden. Beispiel: <table_parameter_name />.

Adapterclients erhalten die Antwort von SAP nicht.

Problem

Wenn die Adapter mit BizTalk Server verwendet werden, werden die Anforderungsmeldungen nicht verarbeitet, wenn die Anmeldeinformationen am benutzerdefinierten WCF-Sendeport falsch sind. Nachdem Sie die richtigen Anmeldeinformationen angegeben haben, wird die Nachricht an das SAP-System gesendet, und eine Antwort wird empfangen. Die Antwortnachricht ist jedoch nicht für den out-Port verfügbar.

Lösung

Starten Sie den BizTalk-Host instance neu.

Konnektivitätsprobleme beim Empfangen einer eingehenden Nachricht vom SAP-Server

Problem

Die folgende Fehlermeldung wird nur beim Empfangen einer eingehenden Nachricht vom SAP-Server mithilfe eines WCF-Custom Empfangsports für den SAP-Adapter angezeigt.

The Messaging Engine failed to add a receive location "<location_name>" with URL "<connection URI>" to the adapter "WCF-Custom".
Reason: "Microsoft.Adapters.SAP.RFCException: Details: ErrorCode=RFC_OK. ErrorGroup=RFC_ERROR_COMMUNICATION. SapErrorMessage=Connect to SAP gateway failed
Connect_PM  TPNAME=<name>, GWHOST=<host>, GWSERV=<server>

Sie können nachrichten jedoch erfolgreich über einen WCF-Custom Sendeport an das SAP-System senden.

Lösung

Installieren Sie die SAP GUI auf demselben Computer, auf dem Sie den Adapterclient ausführen, und versuchen Sie erneut, die eingehende Nachricht zu erhalten. Weitere Informationen zum Installieren der SAP GUI finden Sie in der SAP-Dokumentation.

Fehler mit RootNode TypeName in BizTalk-Projekten

Problem

Wenn in einem BizTalk-Projekt in Visual Studio die schemas, die aus dem Add-In Zum Verbrauch des Adapterdiensts generiert wurden, ungültige Zeichen oder reservierte Wörter für die RootNode TypeName-Eigenschaft enthalten, tritt beim Kompilieren des Projekts der folgende Fehler auf:

Node <node reference> - Specify a valid .NET type name for this root node.
The current .NET type name of this root node is invalid (it is a reserved BizTalk Keyword or is an invalid C# identifier).

Auflösung

  1. Klicken Sie mit der rechten Maustaste auf den knoten, auf den im Fehler verwiesen wird, und wählen Sie Eigenschaften aus.

  2. Entfernen Sie für die RootNode TypeName-Eigenschaft alle unzulässigen Zeichen oder reservierten Wörter, z. B. Punkt (.).

Ungültige Bindungswarnung bei Verwendung des Adapters in Visual Studio

Problem

Wenn Sie den Adapter zum Erstellen einer Anwendung in Visual Studio verwenden und die vom Adapter generierte Konfigurationsdatei (app.config) öffnen, wird eine Warnung ähnlich der folgenden angezeigt:

The element 'bindings' has invalid child element 'sapBinding'. List of possible elements expected: 'basicHttpBinding, customBinding, ...

Ursache

Diese Warnung wird angezeigt, da die SAP-Adapterbindung keine Standardbindung ist, sapBindingdie mit Windows Communication Foundation (WCF) ausgeliefert wird.

Auflösung

Sie können diese Warnung problemlos ignorieren.

XLANG-Ausnahme in BizTalk Server

Problem

BizTalk Server löst eine XLANG-Ausnahme oder eine Ausnahme aus, die besagt, dass die Anwendung die Dokumentspezifikation nicht finden kann, da mehrere Schemas mit dem Nachrichtentyp übereinstimmen.

Ursache

Dies geschieht aufgrund einer der folgenden:

  • Sie haben mehrere Schemas eines generischen Vorgangs (z. B. SendIdoc und ReceiveIdoc) in einem BizTalk Server-Projekt generiert, in einer BizTalk Server-Anwendung bereitgestellt und dann die Anwendung ausgeführt, um entsprechende Vorgänge auf einem SAP-System auszuführen. Da die Schemas häufig verwendet werden, besteht ein Konflikt zwischen den Schemas, die in der BizTalk Server-Anwendung bereitgestellt werden.

  • Im Fall mehrerer Projekte haben Sie ein generisches Vorgangsschema für jedes der BizTalk Server-Projekte generiert, jedes Projekt in einer separaten BizTalk Server-Anwendung auf demselben Host bereitgestellt und anschließend eine Anwendung oder Anwendungen ausgeführt, um entsprechende Vorgänge auf einem SAP-System auszuführen. Da auf die Schemas und Assemblys in den Anwendungen in BizTalk Server zugegriffen werden kann, besteht ein Konflikt zwischen den allgemeinen Schemas, die unter verschiedenen BizTalk Server Anwendungen und Assemblys bereitgestellt werden.

    Auflösung

    Verwenden Sie eine einzelne generische Vorgangsschemadatei für eine BizTalk Server Anwendung. Wenn Sie ein generisches Vorgangsschema in mehreren BizTalk Server Anwendungen auf demselben Host verwenden müssen, erstellen Sie eine Anwendung, die ein einzelnes generisches Vorgangsschema enthält, und verwenden Sie dann das schema für generische Vorgänge aus allen anderen Anwendungen in BizTalk Server.

Weitere Informationen

Problembehandlung für den SAP-Adapter