Show TOC Anfang des Inhaltsbereichs

Vorgehensweisen Lookups über DataBaseAccessor implementieren  Dokument im Navigationsbaum lokalisieren

Vorgehensweise

Spezielle Lookup-API

Beim Zugriff über die spezielle Lookup-API brauchen Entwickler den Aufbau der Payload nicht zu kennen, sondern übergeben der API String-Kommandos, die im gerufenen Anwendungssystem ausgeführt werden sollen.

Bisher gibt es eine spezielle Lookup-API für den JDBC-Adapter. Um diese API einzusetzen, verwenden Entwickler die Klasse DataBaseAccessor.

Die spezielle Lookup-API ist Teil der Mapping-API (siehe Methode getDataBaseAccessor der 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).

Beispiel

import java.util.Iterator;
import java.util.Map;

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 {

      DataBaseAccessor accessor = null;

      try {

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

         // 2. Get a database accessor for the channel.
         accessor = LookupService.getDataBaseAccessor(channel);

         // 3. Prepare a sql statement "sqlStatement".
         String sqlStatement = "SELECT a, b, c FROM TABLE2";

         // 4. Execute lookup.
         DataBaseResult result = accessor.execute(sqlStatement);

         // 5. Iterate over the result rows.
         for (Iterator rows = result.getRows(); rows.hasNext();) {

            Map columnMap = (Map) rows.next();
            Object valueA = columnMap.get("a");
            Object valueB = columnMap.get("b");

         }

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

      } catch (Exception e) {

         // Exception Handling

      } finally {
         // 6. Close the accessor in order to free resources.

         if (accessor != null)
            accessor.close();
      }
   }
}

 

 

 

Ende des Inhaltsbereichs