我試圖使用標準BAPI(PurchaseRequisition.CreateFromData)向採購申請「插入」(或)「添加一行」。示例使用帶JCO3的BAPI插入行的程序
我正在使用JCo3。 JCo3中的例子表明我們應該使用table.appendRow()或table.insertRow()方法。我正在嘗試table.appendRow()& table.appendRows(1)。當我嘗試插入一行時,我沒有得到任何錯誤,行未插入。
下面是我試圖執行的程序。 /**以下是該程序運行所需的輸入/ /步驟1 **/ 字符串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));
//跳過其他列相關的代碼
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();
}
}
我不知道如何讀的響應,並且想從exportParameters獲取它!
- 任何人都可以分享一段代碼插入和
- 獲得確認的響應(我們響應得到PREQ_NO?)
- 我加入日期字段值爲「20131101」,但不能肯定是否格式和方法是正確的?
- 當我嘗試添加數量列值時,我收到一條錯誤消息,抱怨此列不是BAPIEBANC的一部分。但該列在BAPIEBANC類型中可見。
- 要檢查SAP端的任何配置?
- 我應該激活JCo方面的任何領域嗎?如果是這樣,
請注意,我在SAP方面的知識非常有限。
等待專家的迴應。
謝謝。
你好,如何在jco表中添加多個原始數據?使用RFC –