Show TOC Anfang des Inhaltsbereichs

Vorgehensweisen Skalare Importparameter setzen  Dokument im Navigationsbaum lokalisieren

Verwendung

In diesem Schritt soll das BAPI CompanyCode.GetDetail für jeden Buchungskreis (company code) gerufen werden. Das zugehörige RFM heißt BAPI_COMPANYCODE_GETDETAIL. Dazu ist es notwendig, den skalaren Importparameter COMPANYCODEID zu setzen.

 

Aktivitäten

...

       1.      Um auf die Importparameter-Liste zuzugreifen, verwenden Sie getImportParameterList().

       2.      Der Wert des skalaren Parameters wird mit setValue() gesetzt, wobei der zuerst der Wert und dann der Name mitgegeben werden. Es existieren viele Versionen von setValue() im SAP JCo um alle vorhandenen Datentypen zu unterstützen.

       3.      SAP JCo konvertiert die Werte und übergibt Sie an den Datentyp, der dem Feld zugeordnet ist. Tritt ein Fehler bei der Konvertierung auf, wird eine Exception ausgegeben. Die Methode setValue() ist auch in JCO.Structure,JCO.Table und JCO.Field  verfügbar, so dass Sie Werte von Strukturfeldern und Feldern in einer Tabellenzeile setzen können.

Syntaxdokumentation

Skalare Importparameter setzen

 codes.firstRow();

for (int i = 0; i < codes.getNumRows(); i++, codes.nextRow() ) {

   function = this.createFunction (“BAPI_COMPANYCODE_GETDETAIL“);

   function.getImportParameterList ().

      setValue(codes.getString(“COMP_CODE“),   “COMPANYCODEID“);

   mConnection.execute(function);

   JCO.Structure returnStructure =

      function.getExportParameterList ().getStructure(“RETURN“);

   if  (!  (returnStructure.getString(„Type“).equals(““)  | |

            returnStructure.getString(„Type“).equals(“S“)  | |

            returnStructure.getString(„Type“).equals(“W“) )  )  {

      System.out.println(returnStructure.getString(“MESSAGE“));

   }

   JCO.Structure detail =

      function.getExportParameterList ().

      getStructure(“COMPANYCODE_GETDETAIL“);

   System.out.println(detail.getString(“COMP_CODE“)  +  ‚\t‘  +

                                 detail.getString(“COUNTRY“)  +  ‚\t‘  +

                                 detail.getString(“CITY“) );

}

 

Sie rufen firstRow() vor dem Loop, da sich der Zeilen-Pointer für die Tabelle nach dem vorherigen Loop auf der letzten Zeile befand.

 

Hinweis

Beachten Sie, dass in der hier gezeigten BAPI-Fehlerbehandlung nicht nur empty string oder „S“ (success), sondern auch „W“ (warning) akzeptiert wird.

Dies geschieht, da dieses spezielle BAPI gelegentlich die Warnung ausgibt, dass Adressdaten (im Strukturparameter COMPANYCODE_ADDRESS) nicht gepflegt wurden. Im aktuellen Beispielprogramm ist dieser Parameter nicht relevant, deshalb kann die Warnung ignoriert werden. In einem Produktivprogramm muß die Fehlerbehandlung genauer ausgearbeitet sein und auch die Nummer der Warnmeldung prüfen.

 

Ende des Inhaltsbereichs