如何在Netweaver上使用JCo3创建自定义目标(使用我自己的服务器名称,客户端,用户名等)?

时间:2014-02-05 21:56:41

标签: sap jco netweaver

由于Netweaver附带了自己的DestinationDataProvider,因此我们无法注册自己的自定义目标数据提供程序。是否意味着我们必须使用Netweaver的目标管理器来定义目标并在我们的应用程序中使用它?有没有办法连接到任何SAP服务器并创建我们自己的目的地而不使用Netweaver的目标管理器?

2 个答案:

答案 0 :(得分: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();
    }

答案 1 :(得分:0)

您必须使用NetWeaver的目标服务。通过NetWeaver管理UI创建RFC目标,或通过提供的API以编程方式管理目标配置。 不过,您也可以根据从JCoCustomDestination检索到的JCoDestination个实例创建JCoDestinationManager个实例。