`
王三
  • 浏览: 173721 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Call BAPI with SAP Enterprise Connector Guide

    博客分类:
  • Java
阅读更多

 

This document is step by step guide on how to calling BAPI in Java with SAP Enterprise connector.

SAP BAPI is remote enabled function module, and we can call it with JCO library.  SAP Enterprise Connector is a wizard to generate proxy code for calling remote function module.

 

1. Install NWDS

First download NWDS from SDN, SAP NetWeaver Composition Environment 7.1 SR5 - Trial Version

You should register an account in SDN first.

Extract downloaded files to temp folder. Then install NWDS follow the installation instruction..

 

2. Create Java Project 

Start Netweaver Development Studio, create Java project. 

Add related library to build path:

 

3. Create proxy class with SAP Enterprise Connector

Select the function module , and click Finish button, Waiting for NWDS will generate proxy codes. 

 

4. Test generated proxy class

 

JCO.Client jcoClient =   JCO.createClient(
			       "800",
			       "CP.WANG",
			       "justin65",
			       "EN",
			       "/H/eclass.efglobe.com/H/sapecc",
			       "01");
		jcoClient.setProperty("jco.client.codepage", "4110");
		
		CompanyCode_PortType proxy = new CompanyCode_PortType();
		proxy.messageSpecifier.setJcoClient(jcoClient);
		jcoClient.connect();
		Bapi_Companycode_Getlist_Input input = new Bapi_Companycode_Getlist_Input(); 
		try {
			Bapi_Companycode_Getlist_Output output = proxy.bapi_Companycode_Getlist(input);
			Bapi0002_1Type[] codes = output.getCompanycode_List();
		    if(codes!=null && codes.length> 0){
		    	int len = codes.length;
		    	for(int i=0;i<len;i++){
		    		System.out.printf("%-10s", codes[i].getComp_Code());
		    		System.out.print(new String(new String(codes[i].getComp_Name()).getBytes("UTF-8"),"GBK"));
		    		System.out.println();
		    	}
		    }
		} catch (ApplicationFaultException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (SystemFaultException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}catch (UnsupportedEncodingException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		jcoClient.disconnect();

Question:

1. Exception:RFC_ERROR_COMMUNICATION

Exception in thread "main" com.sap.mw.jco.JCO$Exception: (102) RFC_ERROR_COMMUNICATION: SAP_CMINIT3 : rc=20 > Connect to SAP gateway failed

Connect_PM  GWHOST=sapecc, GWSERV=sapgw01, SYSNR=01

 

LOCATION    CPIC (TCP/IP) on local host

ERROR       hostname 'sapecc' unknown

 

TIME        Sat Jun 20 16:08:59 2009

RELEASE     710

COMPONENT   NI (network interface)

VERSION     39

RC          -2

MODULE      ninti.c

LINE        895

DETAIL      NiPGetHostByName: 'sapecc' not found

SYSTEM CALL getaddrinfo

COUNTER     1

 

at com.sap.mw.jco.rfc.MiddlewareRFC$Client.nativeConnect(Native Method)

at com.sap.mw.jco.rfc.MiddlewareRFC$Client.connect(MiddlewareRFC.java:1125)

at com.sap.mw.jco.JCO$Client.connect(JCO.java:3138)

at com.rfc.test.RFCTest.main(RFCTest.java:36)

Solution: When you connect to SAP system in java with JCO.Client , if you want to use SAP router string , please replace SAP host name with “/Hrouter_string/Hhostname” format.

 

2. Exception :

 java.lang.ExceptionInInitializerError: JCO.classInitialize(): Could not load middleware layer 'com.sap.mw.jco.rfc.MiddlewareRFC'

JCO.nativeInit(): Could not initialize dynamic link library sapjcorfc [no sapjcorfc in java.library.path]. java.library.path [C:\Program Files\Java\jdk1.6.0_11\jre\bin;.;C:\WINDOWS\Sun\Java\bin;C:\WINDOWS\system32;C:\WINDOWS;E:\oracle\product\10.2.0\db_1\bin;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\Programiles\Java\jdk1.6.0_11\bin;;D:\OpenSource\apache-ant-1.7.0\bin;D:\Program Files\MySQL\MySQL Server 5.0\bin ]

        at com.sap.mw.jco.JCO.<clinit>(JCO.java:776)

        at com.rfc.test.RFCTest.getCmp(RFCTest.java:62)

        at com.jt.CompanyPanel.setData(CompanyPanel.java:28)

        at desktopapplication1.DesktopApplication1View.showCompanyCode(DesktopApplication1View.java:248)

Solution: Copy sapjcorfc.dll, librfc32.dll into C:\Windows\System32, these files exist in SAP JCO library, and you could download from SAP Service Market Place, quick link connectors.

http://searchsap.techtarget.com/generic/0,295582,sid21_gci1095552,00.html

 

 

Summary:

Read reference of JCO before programming. Follow the install guide of JCO library.

 

分享到:
评论

相关推荐

    SAP.Connector.dll和SAP.Connector.Rfc.dll

    SAP.Connector.dll是SAP .NET Connector的主要库文件,它提供了一系列的类和方法,使得.NET应用程序能够方便地调用SAP的BAPI(Business Application Programming Interface)和IDoc(Intermediate Document)功能。...

    SAP.Net Connector 3.0

    SAP .Net Connector 3.0 是一个关键的软件组件,它允许.NET应用程序与SAP系统进行无缝集成和通信。这个连接器提供了丰富的接口和功能,使得开发人员能够利用C#、VB.NET或其他.NET语言来访问SAP的功能,执行业务逻辑...

    SAP.NET CONNECTOR 3.0.18 FOR X64

    SAP .NET Connector 3.0.18 for X64是SAP公司推出的一款用于在.NET Framework环境下与SAP系统交互的软件组件。这款连接器使得开发人员能够利用C#、VB.NET或其他.NET语言轻松地构建应用程序,与SAP R/3或SAP ...

    SAP模块常用BAPI总结

    SAP开发过程中常用到的BAPI函数总结: 将服务器文件下载到本地 READ_TEXT 分类计量点和计量凭证处理 SAPOFFICE 通知单 修改用户状态的BAPI 修改服务订单的bapi 修改订单的bapi

    sap java connector jco 3.1.1.7z

    【SAP Java Connector (JCO) 3.1.1】是SAP提供的一款用于Java应用程序与SAP系统间通信的接口库。JCO允许Java开发者通过编程方式访问和交互SAP R/3或ABAP系统,实现了SAP与Java环境的无缝集成。 JCO的核心功能在于...

    SAP.Connector.dll 与 SAP.Connector.Rfc.dll

    接下来,SAP.Connector.Rfc.dll是SAP Remote Function Call (RFC) 的.NET版本,它是SAP NetWeaver系统的核心组件之一。RFC是一种通信协议,允许外部应用程序通过标准接口调用SAP内部的功能模块。这些功能模块可以是...

    SAP .NET CONNECTOR3.0.12 64bit .NET4.0

    1. **通信协议**:SAP .NET Connector通过RFC(Remote Function Call)协议和BAPI(Business Application Programming Interface)实现.NET应用程序与SAP系统的通信。 2. **对象模型**:NCO提供了一套.NET类库,模拟...

    SAP .Net Connector 3.0 (DLL) 文件

    SAP Net Connector 3.0 是 SAP 公司推出的一款用于连接 SAP 系统与 .NET Framework 应用程序的接口库,它使得开发者能够利用 C# 或其他 .NET 语言来构建、集成和访问 SAP 系统的功能。这篇详细的知识点解释将深入...

    SAP .NET CONNECTOR3.0.12 64bit

    标签"SAP .NET Connector NCO"中的NCO(NetWeaver Connection Objects)是SAP .NET Connector的核心部分,它提供了一系列的.NET类库,使开发者可以访问SAP RFC(Remote Function Call)服务,以及BAPI(Business ...

    SAP .Net Connector 案例

    该工具通过专有的 BAPI/RFC 接口实现两者之间的通信,使得 .Net 开发者能够轻松地访问 SAP 系统中的业务逻辑和数据。 #### 二、历史变迁及替代方案 早期版本的 SAP .Net Connector 主要针对 Visual Studio 2003 ...

    Delphi通过BAPI连接SAP DEMO

    本文将详细介绍如何使用Delphi通过BAPI(Business Application Programming Interface)与SAP系统进行交互,以实现DEMO功能。 首先,BAPI是SAP提供的一种标准接口,允许外部系统与SAP内部业务逻辑进行通信。它封装...

    SAP .NET Connector 3.0.13 32bit .NET4.0

    3. **rscp4n.dll**:这是R/SCN(Remote Services Call for .NET)的实现,用于.NET应用程序访问SAP系统的BAPI(Business Application Programming Interface)和Web服务。BAPI是SAP系统中预定义的业务函数模块,提供...

    SAP .Net connector 相关帮助文档

    SAP .Net Connector是基于NCO(NetWeaver Connector for .NET)技术,它提供了面向对象的接口,使得.NET开发者可以方便地调用SAP RFC(Remote Function Call)函数模块。RFC是一种SAP系统内部的通信机制,允许远程...

    如何根据SAP系统标准程序查找所用的BAPI

    ### 如何根据SAP系统标准程序查找所用的BAPI 在SAP系统中,BAPI(Business API)是一组预定义的接口,用于与其他应用程序或系统进行交互。通过BAPI,开发人员能够调用SAP系统中的业务逻辑,而无需深入了解内部结构...

    SAP .NET Connector 2.0 在Visual Studio 2005(.Net 2.0)及VS2008、VS2010使用方法

    SAP .NET Connector 2.0用于在.Net环境下,调用SAP的BAPI接口函数,实现数据交互。 官方提供的SAP .NET Connector 2.0安装包,只支持在VS 2003 (.Net1.1)的环境下安装使用。目前VS2003已经基本废弃,但.Net连接...

    SAP_BAPI操作手册

    SAP_BAPI操作手册 SAP_BAPI操作手册是SAP系统中的一种编程接口,允许开发者通过编程方式来访问和操作SAP系统中的数据和业务逻辑。本手册将为读者提供一个关于BAPI的概述,包括BAPI的原理、用途和一些实践案例。 ...

    【测试】SAP 委外加工收货BAPI Demo

    三、委外PO的收货(这里使用BAPI_GOODSMVT_CREATE) *&---------------------------------------------------------------------* *& Report ZTEST_WWJG *& *&---------------------------------------------------...

    sap abap常用bapi

    BAPI(Business Application Programming Interface)是SAP系统中预定义的接口,用于实现和访问标准的商业对象和业务处理功能,提供了一种允许外部系统与SAP系统交互的方式。在SAP ABAP开发中,BAPI是进行数据交互和...

    SAP .NET CONNECTOR3.0.12 32bit .NET4.0

    它支持多种通信模式,包括同步和异步调用,以及通过RFC(Remote Function Call)和BAPI(Business Application Programming Interface)进行的数据交换。 6. **开发和配置** 开发过程中,开发者需要理解SAP系统的...

Global site tag (gtag.js) - Google Analytics