Show TOC Anfang des Inhaltsbereichs

Vorgehensweisen Lookups über SystemAccessor implementieren  Dokument im Navigationsbaum lokalisieren

Vorgehensweise

Generische Lookup-API

Beim generischen Zugriff müssen Entwickler die Payload, der der Adapter erwartet, vor dem Lookup selbst aufbauen und die Ergebnis-Payload selbst parsen.

Um generisch auf ein Anwendungssystem zuzugreifen, verwenden Entwickler die Klasse SystemAccessor. Bei generischen Aufrufen müssen Entwickler einer Methode einen Stream mit der Payload übergeben, die an den Adapter geschickt werden soll. Als Ergebnis des Aufrufs erhalten Sie wiederum ein Payload-Objekt, über das Sie die Payload als Stream auslesen können, um die Payload zu parsen.

Die generische Lookup-API ist Teil der Mapping-API (siehe Klasse LookupService in der javadoc-Dokumentation). Weitere Informationen zu diesen APIs finden Sie im SAP Developer Network unter der Adresse https://www.sdn.sap.com/irj/sdn/javadocs (SDN-User nötig).

Hinweis

Das Schema für den Aufruf eines RFCs können Sie sich besorgen, indem Sie den RFC in das Enterprise Services Repository importieren (siehe: Import von IDocs und RFCs).

Beispiel

import com.sap.aii.mapping.api.AbstractTransformation;
import com.sap.aii.mapping.api.StreamTransformationException;
import com.sap.aii.mapping.api.TransformationInput;
import com.sap.aii.mapping.api.TransformationOutput;
import com.sap.aii.mapping.lookup.*;

public class Parametraziation_Java extends AbstractTransformation {

   public void transform(TransformationInput in, TransformationOutput out)
         throws StreamTransformationException {

      SystemAccessor accessor = null;
      java.io.InputStream inputStream = null;

      try {

         // 1. Read Import Parameter to get the channel ID for Lookup
         Channel channel = in.getInputParameters().getChannel("MYCHANNEL");

         // 2. Get a system accessor for a channel.
         accessor = LookupService.getSystemAccessor(channel);

         // 3. Create a payload according to the data type.
         // To get a payload object, pass the payload
         // as java.io.InputStream to one of the following methods:
         // LookupService.getBinaryPayload() for binary payload,
         // or LookupService.getTextPayload() for text payloads.
         Payload payload = LookupService.getXmlPayload(inputStream);

         // 4. Set the operation name and namespace; optional step,
         // only necessary if the used adapter needs these parameters.
         accessor.setOperationName("myInterfaceName");
         accessor.setOperationNamespace("myInterfaceNS");

         // 5. Execute lookup.
         Payload result = accessor.call(payload);

         // Steps 3. and 5. can be executed several times.

      } catch (Exception e) {
         // Exception Handling
      } finally {
         // 5. close the accessor in order to free resources.
         if (accessor != null)
            accessor.close();
      }
   }
}

 

 

 

Ende des Inhaltsbereichs