从Java调用SAP方法 [英] Call SAP methods from Java

查看:440
本文介绍了从Java调用SAP方法的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试与树液系统建立连接,并且我具有执行此连接所需的所有连接属性.

I am trying to make a connection with the sap systems and I have all the connection properties which are required in order to do so.

我正在尽力而为,但是我遇到了一些我不知道如何解决的问题.

I am trying my best but I am facing some issues I have no idea how to resolve.

我所需要的只是一个简单的代码示例,通过该示例,我可以将我的Java应用程序与sap系统集成在一起.

All I need is a simple code example by which I will be able to integrate my java app with the sap systems.

我浏览了一些网站,但找不到与sap系统建立连接的解决方案.

I have gone through some websites but could not find a solution for making the connection with the sap system.

我正在尝试下面的代码,但我不知道在createDataFile方法中要写什么.

I am trying with the below code but i do not know that what to write inside createDataFile method.

import com.sap.conn.jco.ext.DestinationDataProvider;
import com.sap.conn.jco.JCoDestination;
import com.sap.conn.jco.JCoException;
import com.sap.conn.jco.JCoDestinationManager;
import java.util.Properties;
public class TestMySAP {

    public static void main(String[] args) {
        // This will create a file called mySAPSystem.jcoDestination
        String DESTINATION_NAME1 = "mySAPSystem";
        Properties connectProperties = new Properties();
        connectProperties.setProperty(DestinationDataProvider.JCO_ASHOST, "10.129.19.151"); //host
        connectProperties.setProperty(DestinationDataProvider.JCO_SYSNR,  "00"); //system number
        connectProperties.setProperty(DestinationDataProvider.JCO_CLIENT, "442"); //client number
        connectProperties.setProperty(DestinationDataProvider.JCO_USER,   "MPOSRFC");
        connectProperties.setProperty(DestinationDataProvider.JCO_PASSWD, "123456");
        connectProperties.setProperty(DestinationDataProvider.JCO_LANG,   "en");
        createDataFile(DESTINATION_NAME1, connectProperties);
        // This will use that destination file to connect to SAP
        try {

            JCoDestination destination = JCoDestinationManager.getDestination("mySAPSystem");
            System.out.println("Attributes:");
            System.out.println(destination.getAttributes());
            System.out.println();
            destination.ping();

        } catch (JCoException e){
            e.printStackTrace();
        }

    }
}

推荐答案

与注释中问题的第二部分有关,对于BAPI函数,您可以尝试以下代码段:

Related to the second part of your question in the comments, for BAPI functions you can try the following snippet:

public static void getCompanyCodes throws JCoException {
        JCoDestination destination = JCoDestinationManager.getDestination(DESTINATION_NAME1);
        JCoFunction function = destination.getRepository().getFunction("BAPI_COMPANYCODE_GETLIST");
        if (function == null)
            throw new RuntimeException("Function not found in SAP.");
        try {
            function.execute(destination);
        } catch (AbapException e) {
            System.out.println(e.toString());
            return;
        }

        JCoStructure returnStructure = function.getExportParameterList().getStructure("RETURN");
        if (!(returnStructure.getString("TYPE").equals("") || returnStructure.getString("TYPE").equals("S"))) {
            throw new RuntimeException(returnStructure.getString("MESSAGE"));
        }

        JCoTable codes = function.getTableParameterList().getTable("COMPANYCODE_LIST");
        for (int i = 0; i < codes.getNumRows(); i++) {
            codes.setRow(i);
            System.out.println(codes.getString("COMP_CODE") + '\t' + codes.getString("COMP_NAME"));
        }
    }

您可以在此处找到BAPI函数的列表: http://www.sapnet.ru /m/list_BAPI.html

You can find a list of BAPI functions here: http://www.sapnet.ru/m/list_BAPI.html

这篇关于从Java调用SAP方法的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆