由于 Netweaver 附带了自己的 DestinationDataProvider,我们无法注册自己的自定义目标数据提供者。是否意味着我们必须使用 Netweaver 的目标管理器来定义目标并在我们的应用程序中使用它?有没有办法在不使用 Netweaver 的目标管理器的情况下连接到任何 SAP 服务器并创建我们自己的目标?
问问题
2101 次
2 回答
2
在 JCO 3 中执行此操作的方式略有不同。这个想法是创建可以检索的属性和位置(平面文件、ldap 等),然后在您想要连接到 sap 服务器时检索相同的位置。
// 所以你首先使用下面的代码来创建连接参数
static String DESTINATION_NAME1 = "ABAP_AS_WITHOUT_POOL";
static String DESTINATION_NAME2 = "ABAP_AS_WITH_POOL";
static
{
Properties connectProperties = new Properties();
connectProperties.setProperty(DestinationDataProvider.JCO_ASHOST, "sap.dsc.com");
connectProperties.setProperty(DestinationDataProvider.JCO_SYSNR, "76");
connectProperties.setProperty(DestinationDataProvider.JCO_CLIENT, "800");
connectProperties.setProperty(DestinationDataProvider.JCO_USER, "dsc007");
connectProperties.setProperty(DestinationDataProvider.JCO_PASSWD, "passwd");
connectProperties.setProperty(DestinationDataProvider.JCO_LANG, "en");
createDestinationDataFile(DESTINATION_NAME1, connectProperties);
connectProperties.setProperty(DestinationDataProvider.JCO_POOL_CAPACITY, "3");
connectProperties.setProperty(DestinationDataProvider.JCO_PEAK_LIMIT, "10");
createDestinationDataFile(DESTINATION_NAME2, connectProperties);
}
static void createDestinationDataFile(String destinationName, Properties connectProperties)
{
File destCfg = new File(destinationName+".jcoDestination");
try
{
FileOutputStream fos = new FileOutputStream(destCfg, false);
connectProperties.store(fos, "for tests only !");
fos.close();
}
catch (Exception e)
{
throw new RuntimeException("Unable to create the destination files", e);
}
}
// 然后可以在其他地方使用以下代码片段连接到 sap 服务器
static String DESTINATION_NAME1 = "ABAP_AS_WITHOUT_POOL";
static String DESTINATION_NAME2 = "ABAP_AS_WITH_POOL";
public static void step1Connect() throws JCoException
{
JCoDestination destination = JCoDestinationManager.getDestination(DESTINATION_NAME1);
System.out.println("Attributes:");
System.out.println(destination.getAttributes());
System.out.println();
}
于 2014-02-27T11:53:53.357 回答
0
您必须使用 NetWeaver 的目标服务。通过 NetWeaver Admin UI 或通过提供的 API 以编程方式创建 RFC 目标以管理目标配置。不过,您也可以JCoCustomDestination
根据JCoDestination
从JCoDestinationManager
.
于 2016-12-26T22:17:43.523 回答