0

我正在从 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 中无法以这种形式实例化。我应该创建函数模板吗?谢谢你的任何提示。

4

1 回答 1

1

....有点迟到的反应...

你必须JcoFunction从你的JcoDestination. 例如

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();
于 2015-04-03T09:06:01.340 回答