Beispiel Programm zum einfügen einer Zeile mit BAPI mit JCO3

Ich versuche, "einfügen" (oder) "hinzufügen eine Zeile" Bestellanforderung Verwendung von standard-BAPIS (PurchaseRequisition.CreateFromData).

Ich bin mit JCo3. Das Beispiel in JCo3 bedeutet, dass wir, sollte die Verwendung von Tabellen.appendRow() ODER Tabelle.insertRow () - Methoden. Ich versuche mit Tisch.appendRow() & Tisch.appendRows(1). Wenn ich versuche, eine Zeile einfügen, i dont get any error und die Zeile wird nicht eingefügt.

Unten ist das Programm, das ich versuche, um Sie auszuführen.
/** Im folgenden sind die inputs, die für die Ausführung des Programms /
/
Schritt 1 **/
String BAPI_NAME = "BAPI_REQUISITION_CREATE";

    /** Step 2 **/
    String query_input_column1 = "DOCUMENTY_TYPE"; 
    String query_input_column1_value = "NB";

    String query_input_column2 = "PREQ_NAME";
    String query_input_column2_value = "Name";

    String query_input_column3 = "ACCTASSCAT";
    String query_input_column3_value = "U";

    String query_input_column4 = "DELIV_DATE";
    String query_input_column4_value = "20131101";

    String query_input_column5 = "MATERIAL";
    String query_input_column5_value = "DELL-RQ2013";

    String query_input_column6 = "QUANITY";
    int query_input_column6_value = 10100;




    /** Step 3 **/
    String targetTableUnderBAPI = "REQUISITION_ITEMS";

    /** Step 4 **/
    /** For the confirmation read the value from export parameter after insertion execution **/
    String result_column1 = "NUMBER";


    JCoDestination destination = null;
    try {
        destination = JCoDestinationManager.getDestination(DestinationManager.DESTINATION_NAME1);
        JCoRepository repository = destination.getRepository();
        JCoContext.begin(destination);

        JCoFunction function = repository.getFunction(BAPI_NAME);

        if(function == null)
            throw new RuntimeException(BAPI_NAME + " not found in SAP.");

        System.out.println("BAPI Name from function object: " + function.getName());            

        //function.getImportParameterList().setValue(query_input_column1, query_input_column1_value);
        JCoTable table = function.getTableParameterList().getTable(targetTableUnderBAPI); //it is taken from the response value of metadata
        //System.out.println("No of Columns: "+ table.getNumColumns());
        System.out.println("Trying to execute append row");

        table.appendRow();
            table.setValue(query_input_column1,query_input_column1_value);
            table.setValue(query_input_column2,query_input_column2_value);
            table.setValue(query_input_column3,query_input_column3_value);
            //table.setValue(query_input_column4,new java.util.Date(query_input_column4_value));

//übersprungen Anderen Spalten den zugehörigen code

        try{
            function.execute(destination);
        }
        catch(AbapException e){
            System.out.println(e.toString());
            return;
        }

        System.out.println("Let us check the result from export parameter");
        String exportParamStructure = (String)function.getExportParameterList().getValue(result_column1); //getStructure(result_column1); //getValue(result_column1);
        System.out.println("Resulting PR#: "+exportParamStructure);

    } catch (JCoException e) {
        e.printStackTrace();
    }
    finally
    {
        try {
            JCoContext.end(destination);
        } catch (JCoException e) {
            e.printStackTrace();
        }
    }

Habe ich nicht verstanden, wie die Antwort Lesen, und ich versuche, um es zu Holen aus exportParameters!!

  1. Kann jemand teilen ein Stück code einfügen und
  2. erste Bestätigungs-Antwort (bekommen wir die PREQ_NO Antwort?)
  3. Ich bin das hinzufügen von Datum-Feld-Wert als "20131101", aber nicht sicher, ob das format und die Vorgehensweise ist richtig?
  4. wenn ich versuche, um Spalte Menge Wert, erhalte ich eine Fehlermeldung, Klagen diese Spalte ist nicht Teil des BAPIEBANC. Aber die Spalte ist sichtbar in BAPIEBANC geben.
  5. jede Konfiguration auf SAP-Seite überprüft werden?
  6. sollte ich aktiviere alle Felder in JCo-Seite? wenn ja, wie

Bitte beachten Sie, dass mein wissen über SAP ist sehr begrenzt.

Warten auf eine Experten-Antwort.

Dank.

  • Hallo, Wie Sie mehrere raw-jco-Tabelle ? Über RFC
InformationsquelleAutor Gana | 2013-10-27
Schreibe einen Kommentar