XML POST-Anforderung

Benutzerdefinierte Webservices können als REST-Webservices verfügbar gemacht werden und mit einer POST-Methode konfiguriert werden, die XML-Eingaben zulässt. Spezifizieren Sie Content-Type:application/xml und verwenden Sie das folgende Format für XML POST-Anforderungen.

Flache Daten

Senden Sie unter Berücksichtigung des folgenden Formats flache Daten mithilfe von POST an einen Webservice:

<ServiceNameRequest xmlns:svc="http://www.pb.com/spectrum/services/ServiceName">
    <svc:Input>
       <svc:Row>
          <svc:Field1>Example value</svc:Field1>
          <svc:Field2>Another example value</svc:Field2>
       </svc:Row>
    </svc:Input>
</ServiceNameRequest>

Wo:

ServiceName
Der Name des Webservices auf dem Spectrum™ Technology Platform-Server.
Field1 und Field2
Die Namen der Eingabefelder, die im Input-Schritt des Dienstes definiert sind.

Beispiel: Diese Anforderung sendet einen Vornamen und einen Nachnamen an einen Dienst mit der Bezeichnung „CasingExample“.

<CasingExampleRequest xmlns:svc="http://www.pb.com/spectrum/services/CasingExample">
    <svc:Input>
       <svc:Row>
          <svc:FirstName>Alex</svc:FirstName>
          <svc:LastName>Smith</svc:LastName>
       </svc:Row>
    </svc:Input>
</CasingExampleRequest>

Listendaten

Listendaten sind aus hierarchischen Gruppierungen von Feldern zusammengesetzt, die unter einem übergeordneten Feld gruppiert werden.
Anmerkung: Um Listendaten als Eingabe zu verwenden, muss der Dienst als REST-Webservice ohne GET-Ressourcen verfügbar gemacht werden. Wenn der Dienst eine GET-Ressource enthält, wird im Enterprise Designer eine Fehlermeldung angezeigt, wenn der Dienst verfügbar gemacht wird. Der Grund hierfür ist, dass hierarchische Felder für GET nicht unterstützt werden.

Senden Sie unter Berücksichtigung des folgenden Formats Listendaten mithilfe von POST an einen Webservice.

<?xml version="1.0" encoding="UTF-8"?>
<ServiceNameRequest xmlns:svc="http://www.pb.com/spectrum/services/ServiceName">
    <svc:Input>
        <svc:Row>
            <svc:ListField1>
                <svc:DataType>
                    <svc:SubField1>Example value</svc:SubField1>
                    <svc:SubField2>Example value</svc:SubField2>
                </svc:DataType>
            </svc:ListField1>
        </svc:Row>
    </svc:Input>
</ServiceNameRequest>

Wo:

ListField1
Der Name des hierarchischen Feldes, das im Input-Schritt des Dienstes definiert ist.
DataType
Der Datentyp des Listenfeldes, das im Input-Schritt des Dienstes definiert ist.
Subfield1 und Subfield2
Die Namen der untergeordneten Felder, aus denen sich das Listenfeld zusammensetzt.

Beispiel: Diese Anforderung sendet einen Vornamen, Nachnamen und eine Liste mit Telefonnummern an einen Dienst mit der Bezeichnung „CasingExample“.

<CasingExampleRequest xmlns:svc="http://www.pb.com/spectrum/services/CasingExample">
    <svc:Input>
       <svc:Row>
          <svc:FirstName>George</svc:FirstName>
          <svc:LastName>Washington</svc:LastName>
          <svc:PhoneNumbers>
              <svc:PhoneNumbers>
                 <svc:HomePhone>123-234-9876</svc:HomePhone>
                 <svc:CellPhone>123-678-9012</svc:CellPhone>
                 <svc:OfficePhone>123-987-6543</svc:OfficePhone>
               </svc:PhoneNumbers>
          </svc:PhoneNumbers>
       </svc:Row>
    </svc:Input>
</CasingExampleRequest>

Benutzerfelder

Sie können zusätzliche Felder über den Webservice übergeben, auch wenn der Webservice diese nicht verwendet. Diese Felder werden unverändert im Bereich user_fields der Antwort zurückgegeben. Die in der Anforderung angegebenen Benutzerfelder müssen nicht im Input-Schritt des Dienstdatenflusses definiert werden.

<ServiceNameRequest xmlns:svc="http://www.pb.com/spectrum/services/ServiceName">
    <svc:Input>
       <svc:Row>
          <svc:user_fields>
            <svc:user_field>
                <svc:name>FieldName</svc:name>
                <svc:value>FieldValue</svc:value>
            </svc:user_field>
          </svc:user_fields> 
       </svc:Row>
    </svc:Input>
</ServiceNameRequest>

Wo:

FieldName
Der Name des Durchlauffeldes.
FieldValue
Der im Durchlauffeld enthaltene Wert.

Beispiel: Diese Anforderung sendet den Namen des Ehepartners als ein Durchlauffeld. Der Benutzerfeldname lautet Spouse und der Wert des Feldes ist Martha.

<CasingExampleRequest xmlns:svc="http://www.pb.com/spectrum/services/CasingExample">
    <svc:Input>
        <svc:Row>
            <svc:FirstName>George</svc:FirstName>
            <svc:LastName>Washington</svc:LastName>
            <svc:PhoneNumbers>
                <svc:PhoneNumbers>
                    <svc:HomePhone>123-123-1234</svc:HomePhone>
                    <svc:CellPhone>123-456-4567</svc:CellPhone>
                    <svc:OfficePhone>123-678-6789</svc:OfficePhone>
                </svc:PhoneNumbers>
            </svc:PhoneNumbers>
            <svc:user_fields>
                <svc:user_field>
                    <svc:name>Spouse</svc:name>
                    <svc:value>Martha</svc:value>
                </svc:user_field>
            </svc:user_fields>
        </svc:Row>
    </svc:Input>
</CasingExampleRequest>

Optionen

Sie können Optionen in der Anforderung festlegen, welche die im Dienstdatenfluss angegebenen Standardoptionen überschreiben. Für benutzerdefinierte Webservices können Sie nur dann Optionen in der Anforderung festlegen, wenn die Annahme von Optionen im Datenfluss konfiguriert wurde. Öffnen Sie einen Dienst im Enterprise Designer, und wählen Sie Bearbeiten > Datenflussoptionen aus, um den Dienst für die Annahme von Optionen in der Anforderung zu konfigurieren.

Geben Sie anhand des folgenden Formats Verarbeitungsoptionen in einer Anforderung an:

<ServiceNameRequest xmlns:svc="http://www.pb.com/spectrum/services/ServiceName">
    <svc:options>
        <svc:OptionName>OptionValue</svc:OptionName>
    </svc:options>
    <svc:Input>
        <svc:Row> ... </svc:Row>
    </svc:Input>
</ServiceNameRequest>

Wo:

OptionName
Der Name der Option. Eine Liste der gültigen Optionen für den Dienst finden Sie in der WADL des Dienstes. Öffnen Sie den Dienst alternativ im Enterprise Designer, und wählen Sie Bearbeiten > Datenflussoptionen aus.
OptionValue
Ein gültiger Wert für die Option. Öffnen Sie den Dienst im Enterprise Designer, und wählen Sie Bearbeiten > Datenflussoptionen aus, um eine Liste der gültigen Werte zu erhalten.

Beispiel: Diese Anforderung setzt die Option OutputCasing auf U:

<AddressValidationRequest xmlns:svc="http://www.pb.com/spectrum/services/AddressValidation">
    <svc:options>
      <svc:OutputCasing>U</svc:OutputCasing>
    </svc:options>
    <svc:Input>
       <svc:Row>
          <svc:FirstName>George</svc:FirstName>
          <svc:LastName>Washington</svc:LastName>
          <svc:AddressLine1>123 Main St.</svc:AddressLine1>
          <svc:City>Springfield</svc:City>
          <svc:StateProvince>MO</svc:City>
       </svc:Row>
    </svc:Input>
</AddressValidationRequest>

Beispiel: XML-Anforderung mithilfe von POST

Im folgenden Beispiel wird veranschaulicht, wie Sie Optionen, flache Felder, ein Listenfeld und benutzerdefinierte Felder in einer XML-Anforderung an einen Webservice anhand von POST hinzufügen.

<CasingExampleRequest xmlns:svc="http://www.pb.com/spectrum/services/CasingExample">
    <svc:options>
        <svc:OutputCasing>U</svc:OutputCasing>
    </svc:options>
    <svc:Input>
        <svc:Row>
            <svc:FirstName>George</svc:FirstName>
            <svc:LastName>Washington</svc:LastName>
            <svc:AddressLine1>1073 Maple</svc:AddressLine1>
            <svc:City>Batavia</svc:City>
            <svc:StateProvince>IL</svc:StateProvince>
            <svc:PhoneNumbers>
                <svc:PhoneNumbers>
                    <svc:HomePhone>123-123-1234</svc:HomePhone>
                    <svc:CellPhone>123-345-3456</svc:CellPhone>
                    <svc:OfficePhone>123-456-4567</svc:OfficePhone>
                </svc:PhoneNumbers>
            </svc:PhoneNumbers>
            <svc:user_fields>
                <svc:user_field>
                    <svc:name>Spouse</svc:name>
                    <svc:value>Martha</svc:value>
                </svc:user_field>
            </svc:user_fields>
        </svc:Row>
    </svc:Input>
</CasingExampleRequest>
In diesem Beispiel
  • ist OutputCasing eine Option, die durch den Webservice zur Steuerung, ob die Ausgabe in Großbruchstaben oder Kleinbuchstaben zurückgegeben wird, verfügbar gemacht wurde. In diesem Beispiel ist sie auf U (= Großbuchstaben) eingestellt.
  • Input ist die Beschriftung des Input-Schrittes im Datenfluss gemäß der Anzeige auf der Arbeitsfläche im Enterprise Designer.
  • Row ist der Name der Entität auf Datensatzebene gemäß den Angaben im Input-Schritt des Datenflusses im Feld Datentypname auf der Registerkarte Eingabefelder.
  • FirstName, LastName, AddressLine1, City und StateProvince sind flache Felder.
  • PhoneNumbers ist ein hierarchisches („Listen“) Feld, das die Namen der Unterfelder HomePhone, CellPhone und OfficePhone enthält.
  • user_fields enthält benutzerdefinierte Felder, die übergeben und ohne Änderung durch den Webservice in der Ausgabe zurückgegeben werden.