在jap jco 3.x中迁移JCo函数

时间:2014-10-09 10:12:40

标签: jco

我正在从JCO2.x迁移到3.x.我已经重写了几乎整个代码,但有了这个我无法移动。

原始2.x代码:

        JCO.ParameterList input = new JCO.ParameterList();
        input.addInfo("APP_AREA", JCO.TYPE_STRING, 0, 0, 0, JCO.IMPORT_PARAMETER, null);
        input.addInfo("XML", JCO.TYPE_STRING, 0, 0, 0, JCO.IMPORT_PARAMETER, null);
        JCO.Function function = new JCO.Function(
            BAPI_NAMESPACE + "ZZZ",
            input, // input
            new JCO.ParameterList(), // output
            new JCO.ParameterList() // tables
        );

我建议的代码:

        JCoParameterList input = new JCoParameterList();
        input.addInfo("APP_AREA", JCO.TYPE_STRING, 0, 0, 0, JCO.IMPORT_PARAMETER, null);
        input.addInfo("XML", JCO.TYPE_STRING, 0, 0, 0, JCO.IMPORT_PARAMETER, null);
        JCoFunction function = new JCoFunction(
            BAPI_NAMESPACE + "ZZZ",
            input, // input
            new JCoParameterList(), // output
            new JCoParameterList() // tables
        );

事情是JCoFunction无法在3.x中以这种形式实例化。我应该创建功能模板吗?谢谢你的任何提示。

1 个答案:

答案 0 :(得分:1)

......有点迟到了......

您必须从JcoFunction获取JcoDestination。 e.g。

JCoDestination destination = JCoDestinationManager
            .getDestination(destinationName);
JCoRepository repository = destination.getRepository();
JCoFunctionTemplate template = repository.getFunctionTemplate(functionName);
JCoFunction function = template.getFunction();

JCoParameterList input = function_.getImportParameterList();
//set data on input

//execute the function
function.execute(destination);


//access the output
JCoParameterList output = function_.getExportParameterList();
JCoParameterList table = function_.getTableParameterList();