[英]Call SAP methods from Java
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.我正在尝试与 sap 系统建立连接,并且我拥有这样做所需的所有连接属性。
I am trying my best but I am facing some issues I have no idea how to resolve.我正在尽我所能,但我面临一些我不知道如何解决的问题。
All I need is a simple code example by which I will be able to integrate my java app with the sap systems.我所需要的只是一个简单的代码示例,通过它我将能够将我的 java 应用程序与 sap 系统集成。
I have gone through some websites but could not find a solution for making the connection with the sap system.我浏览了一些网站,但找不到与 sap 系统建立连接的解决方案。
I am trying with the below code but i do not know that what to write inside createDataFile
method.我正在尝试使用以下代码,但我不知道在createDataFile
方法中该写什么。
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();
}
}
}
Related to the second part of your question in the comments, for BAPI functions you can try the following snippet:与评论中问题的第二部分相关,对于 BAPI 函数,您可以尝试以下代码段:
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"));
}
}
You can find a list of BAPI functions here: http://www.sapnet.ru/m/list_BAPI.html您可以在此处找到 BAPI 函数列表: http : //www.sapnet.ru/m/list_BAPI.html
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.