使用带有BAPI_SALESORDER_CREATEFROMDAT2的JCO创建销售订单时出错 [英] Error while creating sales order using JCO with BAPI_SALESORDER_CREATEFROMDAT2
本文介绍了使用带有BAPI_SALESORDER_CREATEFROMDAT2的JCO创建销售订单时出错的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
public static void createSalesOrder() {
try {
JCoDestination destination = JCoDestinationManager.getDestination("ABAP_AS_WITH_POOL");
JCoFunction functionCreateOrder = destination.getRepository().getFunction("BAPI_SALESORDER_CREATEFROMDAT2");
JCoFunction functionTransComit = destination.getRepository().getFunction("BAPI_TRANSACTION_COMMIT");
JCoStructure orderHeaderIn = functionCreateOrder.getImportParameterList().getStructure("ORDER_HEADER_IN");
orderHeaderIn.setValue("SALES_ORG", "2000");
orderHeaderIn.setValue("DISTR_CHAN", "20");
orderHeaderIn.setValue("DIVISION", "20");
orderHeaderIn.setValue("DOC_TYPE", "ZAR");
JCoTable orderPartners = functionCreateOrder.getTableParameterList().getTable("ORDER_PARTNERS");
// WE,AG,SP,PH
// AG Sold to Party
// WE Ship to Party
orderPartners.appendRows(1);
orderPartners.setValue("PARTN_ROLE", "AG");
orderPartners.setValue("PARTN_NUMB", "99");
orderPartners.appendRows(1);
orderPartners.setValue("PARTN_ROLE", "WE");
orderPartners.setValue("PARTN_NUMB", "99");
System.out.println(orderPartners);
JCoTable orderItemsIn = functionCreateOrder.getTableParameterList().getTable("ORDER_ITEMS_IN");
orderItemsIn.appendRow();
orderItemsIn.setValue("MATERIAL", "PEN_ARN");
System.out.println(orderItemsIn);
JCoTable orderSchedulesIn = functionCreateOrder.getTableParameterList().getTable("ORDER_SCHEDULES_IN");
orderSchedulesIn.appendRow();
orderSchedulesIn.setValue("REQ_QTY", "1");
System.out.println(orderSchedulesIn);
functionCreateOrder.execute(destination);
functionTransComit.execute(destination);
// System.out.println(functionCreateOrder);
JCoTable returnTable = functionCreateOrder.getTableParameterList().getTable("RETURN");
System.out.println(returnTable.getString("MESSAGE"));
System.out.println("sales order number is : "
+ functionCreateOrder.getExportParameterList().getValue("SALESDOCUMENT"));
} catch (JCoException ex) {
System.out.println(ex.getMessage());
} finally {
System.out.println("Creating sales order ends");
}
}
推荐答案
合作伙伴编号有问题,在合作伙伴编号前面添加000000000可以解决问题。
这篇关于使用带有BAPI_SALESORDER_CREATEFROMDAT2的JCO创建销售订单时出错的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文