如何使用Java connector消费ABAP系统的函数(abap,java,开发技术)

时间:2024-05-07 03:55:46 作者 : 石家庄SEO 分类 : 开发技术
  • TAG :

我的ABAP系统有个函数名叫ZDIS_GET_UPSELL_MATERIALS,输入一个customer ID和product ID,会输出为这对客户和product组合维护的一组Upsell product ID和描述信息。

如何使用Java connector消费ABAP系统的函数如何使用Java connector消费ABAP系统的函数

测试如下:

下面是使用Java消费该函数的代码:

packagejco;importjava.io.File;importjava.io.FileOutputStream;importjava.util.Properties;importcom.sap.conn.jco.JCoDestination;importcom.sap.conn.jco.JCoDestinationManager;importcom.sap.conn.jco.JCoException;importcom.sap.conn.jco.JCoFunction;importcom.sap.conn.jco.JCoParameterList;importcom.sap.conn.jco.JCoRepository;importcom.sap.conn.jco.JCoTable;importcom.sap.conn.jco.ext.DestinationDataProvider;/***basicexamplesforJavatoABAPcommunication*Seehelp:https://help.sap.com/saphelp_nwpi711/helpdata/en/48/70792c872c1b5ae10000000a42189c/frameset.htm*/publicclassStepByStepClient{ staticStringDESTINATION_NAME="ABAP_AS_WITHOUT_POOL"; staticpublicfinalStringABAP_DURATION="abapLayerDuration"; staticpublicfinalStringUPSELL_PRODUCT="upsellProducts"; staticpublicfinalStringPRODUCT_ID="productID"; staticpublicfinalStringPRODUCT_TEXT="productText";staticprivatePropertiesprepareProperty(){PropertiesconnectProperties=newProperties();connectProperties.setProperty(DestinationDataProvider.JCO_ASHOST,"yourabapsystemhostname");connectProperties.setProperty(DestinationDataProvider.JCO_SYSNR,"00");connectProperties.setProperty(DestinationDataProvider.JCO_CLIENT,"111");connectProperties.setProperty(DestinationDataProvider.JCO_USER,"WANGJER");connectProperties.setProperty(DestinationDataProvider.JCO_PASSWD,"yourpassword");connectProperties.setProperty(DestinationDataProvider.JCO_LANG,"en");createDestinationDataFile(DESTINATION_NAME,connectProperties);connectProperties.setProperty(DestinationDataProvider.JCO_POOL_CAPACITY,"3");connectProperties.setProperty(DestinationDataProvider.JCO_PEAK_LIMIT,"10");createDestinationDataFile(DESTINATION_NAME,connectProperties);returnconnectProperties;}staticpublicvoidmain(String[]arg){ createDestinationDataFile(DESTINATION_NAME,prepareProperty()); JCoDestinationdestination=null; try{ destination=JCoDestinationManager.getDestination(DESTINATION_NAME); JCoRepositoryrepo=destination.getRepository(); JCoFunctionstfcConnection=repo.getFunction("ZDIS_GET_UPSELL_MATERIALS"); JCoParameterListimports=stfcConnection.getImportParameterList(); StringcustomerID="1000040"; StringmaterialID="11"; imports.setValue("IV_CUSTOMER_ID",customerID); imports.setValue("IV_MATERIAL_ID",materialID); stfcConnection.execute(destination); JCoParameterListexports=stfcConnection.getExportParameterList(); //intresult=exports.getInt("EV_RESULT"); intabapDuration=exports.getInt("EV_DURATION"); StringBuildersb=newStringBuilder(); sb.append("{\""+ABAP_DURATION+"\":"+abapDuration+","); sb.append("\""+UPSELL_PRODUCT+"\":["); JCoTablecodes=exports.getTable("ET_MATERIALS"); introw=codes.getNumRows(); System.out.println("Totalrows:"+row); System.out.println("ABAPduration:"+abapDuration); for(inti=0;i<row;i++){ codes.setRow(i);System.out.println(codes.getString("MATERIAL_ID")+'\t'+codes.getString("MATERIAL_TEXT"));sb.append("{\""+PRODUCT_ID+"\":"+codes.getString("MATERIAL_ID")+"," +"\""+PRODUCT_TEXT+"\":\""+codes.getString("MATERIAL_TEXT")+"\"");if(i<row-1){ sb.append("},");}else{ sb.append("}");} } sb.append("]}"); System.out.println("Finaljson:"+sb.toString()); }catch(JCoExceptione){ //TODOAuto-generatedcatchblock e.printStackTrace(); }}staticprivatevoidcreateDestinationDataFile(StringdestinationName,PropertiesconnectProperties){FiledestCfg=newFile(destinationName+".jcoDestination");try{FileOutputStreamfos=newFileOutputStream(destCfg,false);connectProperties.store(fos,"fortestsonly!");fos.close();}catch(Exceptione){thrownewRuntimeException("Unabletocreatethedestinationfiles",e);}}}

为简单起见没有使用Google的gson库进行Json的序列化。

执行结果:

如何使用Java connector消费ABAP系统的函数如何使用Java connector消费ABAP系统的函数

 </div> <div class="zixun-tj-product adv-bottom"></div> </div> </div> <div class="prve-next-news">
本文:如何使用Java connector消费ABAP系统的函数的详细内容,希望对您有所帮助,信息来源于网络。
上一篇:SpringBoot怎么对LocalDateTime进行格式化并解析下一篇:

16 人围观 / 0 条评论 ↓快速评论↓

(必须)

(必须,保密)

阿狸1 阿狸2 阿狸3 阿狸4 阿狸5 阿狸6 阿狸7 阿狸8 阿狸9 阿狸10 阿狸11 阿狸12 阿狸13 阿狸14 阿狸15 阿狸16 阿狸17 阿狸18