JAVA通过JCO连接SAP例子

阅读更多

 

 环境的搭建,把附件中的所有DLL放入 C://windows/system32下,如果你电脑装过SAP,那可能会有重复,直接忽略即可。将sapjco.jar 放入项目环境中

package test1;

import com.sap.mw.jco.IFunctionTemplate;
import com.sap.mw.jco.JCO;

public class TTT1 {

	public static void main(String[] args) {
		SAPLogon mySAP = new SAPLogon("300", "gaojunyi", "gaojunyi", "zh",
				"172.16.2.11", "00");
		SAPServer myServer = new SAPServer(mySAP.mRepository);
		myServer.start();
	}
}

class SAPServer extends JCO.Server {
	public SAPServer(JCO.Repository repo) {
		super("10.10.10.50", "sapgw00", "ABC", repo);
	}
}

class SAPLogon {
	public JCO.Client mConnection;
	public JCO.Repository mRepository;

	public SAPLogon(String client, String userid, String password,
			String language, String ip, String system_number) {
		try {

			mConnection = JCO.createClient(client, userid, password, language,
					ip, system_number);
			mConnection.connect();
			mRepository = new JCO.Repository("Lee", mConnection);
			System.out.println("SAP连接成功");
			
			// 调用RFC函数
			IFunctionTemplate ft = mRepository
					.getFunctionTemplate("BAPI_MATERIAL_GET_DETAIL");
			JCO.Function f = ft.getFunction();

			// 1.传入参数为Field
			f.getImportParameterList().setValue("000000000010000008", "MATERIAL");
			f.getImportParameterList().setValue("2000", "PLANT");
			mConnection.execute(f);

			// 1.返回参数为Field
			JCO.Structure struct = f.getExportParameterList().getStructure(
					"MATERIAL_GENERAL_DATA");
			String name = struct.getString("MATL_DESC");
			System.out.println("物料名:" + name);
			String MATL_TYPE = struct.getString("MATL_TYPE");
			System.out.println("物料类型:" + MATL_TYPE);

			mRepository = new JCO.Repository("my_repository", mConnection);
			mConnection.disconnect();

		} catch (Exception ex) {
			ex.printStackTrace();
			System.exit(1);

		}
	}
}

 

  • sapjco部署.rar (4.1 MB)
  • 下载次数: 11

你可能感兴趣的:(sap,jco)