JCo BAPI_COMMIT_TRANSACTIONS

2020-09-15 18:00发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)亲爱的 我正在尝试使用JAV...

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


亲爱的

 我正在尝试使用JAVA注册帕克发票,这是我的JAVA代码


 JCoDestination目标= JCoDestinationManager.getDestination(" currentConnection");

 尝试{
 JCoContext.begin(destination);
 JCoFunction f1 = destination.getRepository()。getFunction(" BAPI_INCOMINGINVOICE_CREATE1");

 JCoParameterList f1GetParameters = f1.getImportParameterList();
 f1GetParameters.setValue(" INVOICESTATUS"," D");

//监听者信息//
 JCoStructure BAPI_INCINV_CREATE_HEADER = f1GetParameters.getStructure(" HEADERDATA");
 BAPI_INCINV_CREATE_HEADER.setValue(" INVOICE_IND"," X");
 BAPI_INCINV_CREATE_HEADER.setValue(" DOC_TYPE"," 1A");
 DateFormat格式=新
 SimpleDateFormat(" yyyyMMdd",Locale.ENGLISH);
 日期日期=(日期)
 format.parse(" 20130503");
 BAPI_INCINV_CREATE_HEADER.setValue(" DOC_DATE",日期);
 date =(Date)format.parse(" 20130531");
 BAPI_INCINV_CREATE_HEADER.setValue(" PSTNG_DATE",日期);
 BAPI_INCINV_CREATE_HEADER.setValue(" COMP_CODE"," SUP");
 BAPI_INCINV_CREATE_HEADER.setValue(" DIFF_INV"," 0000714491");
 BAPI_INCINV_CREATE_HEADER.setValue(" CURRENCY"," EUR");
 BAPI_INCINV_CREATE_HEADER.setValue(" EXCH_RATE",新的Double(" 0.0000"));
 BAPI_INCINV_CREATE_HEADER.setValue(" EXCH_RATE_V",新Double(" 0.0000));
 BAPI_INCINV_CREATE_HEADER.setValue(" GROSS_AMOUNT",新的Double(" 100.0000")));
 BAPI_INCINV_CREATE_HEADER.setValue(" DSCT_DAYS1",新的Double(" 0"));
 BAPI_INCINV_CREATE_HEADER.setValue(" DSCT_DAYS2",new Double(" 0"));
 BAPI_INCINV_CREATE_HEADER.setValue(" DSCT_PCT1",新的Double(" 0.0000"));
 BAPI_INCINV_CREATE_HEADER.setValue(" DSCT_PCT2",新的Double(" 0.0000"));
 BAPI_INCINV_CREATE_HEADER.setValue(" PMNTTRMS"," 100");
 BAPI_INCINV_CREATE_HEADER.setValue(" DEL_COSTS",新的Double(" 0.0000"));
 BAPI_INCINV_CREATE_HEADER.setValue(" DSCT_AMOUNT",新的Double(" 0.0000"));

//表
 JCoParameterList f1GetTables = f1.getTableParameterList();


 JCoTable GLACCOUNTDATA = f1GetTables.getTable(" GLACCOUNTDATA");
 GLACCOUNTDATA.appendRow();


           
 GLACCOUNTDATA.setValue(" INVOICE_DOC_ITEM"," 000001");
 GLACCOUNTDATA.setValue(" GL_ACCOUNT"," 0000499100");
 GLACCOUNTDATA.setValue(" DB_CR_IND"," S");
 GLACCOUNTDATA.setValue(" COMP_CODE"," SUP");
 GLACCOUNTDATA.setValue(" SDOC_ITEM"," 000000");
 GLACCOUNTDATA.setValue(" PERSON_NO"," 00000000");
 GLACCOUNTDATA.setValue(" QUANTITY",new Double(" 0.000"));
 GLACCOUNTDATA.setValue(" TAX_BASE_AMOUNT",新的Double(" 0.000"));
 GLACCOUNTDATA.setValue(" PROFIT_SEGM_NO"," 0000000000");
//执行BAPI_INCOMINGINVOICE_CREATE1
 f1.execute(目的地);

 System.out.println(f1.getExportParameterList()。getString(" INVOICEDOCNUMBER"));
 System.out.println(f1.getExportParameterList()。getString(" FISCALYEAR"));

 for(int counter = 0; counter 
 

1条回答
hengyuye
2020-09-15 18:46

你好Balint,

使用JCoContext.begin()将使目标在当前会话中变为有状态,因此将通过使用完全相同的连接来使用相同的ABAP侧上下文。 调用是否在同一会话中执行取决于所使用的SessionReferenceProvider。 默认实现将每个线程视为一个会话。 在这种情况下,您的代码应该可以工作。 如果是不同的,则应检查它在做什么。 通过打开JCo trace ,您将了解是否使用了相同的连接。 根据您的发现,您可以决定进一步的步骤。

最诚挚的问候,
马库斯

一周热门 更多>