1

我正在尝试在 SAP 系统上调用 Web 服务,但在尝试传递复杂参数时遇到问题。

Web 服务有 3 个输入参数。2 字符串和一个复杂参数,它引用包含多个字段的 SAP 结构。这 3 个输入参数称为:-

函数参数

当我调用 Web 服务时,Funtion 和 Repid 被传入 ok,但是,没有任何东西被传递到名为 Parameters 的输入参数中。

我有以下代码来设置复杂的参数输入:-

    final ReportExecutionParametersDefinition exeParams = new ReportExecutionParametersDefinition();

    exeParams.setSelname("P_AUART");
    exeParams.setKind("P");
    exeParams.setSign("I");
    exeParams.setOption("EQ");
    exeParams.setLow("ZA");
    exeParams.setHigh(" ");

    final PropertyInfo pinfo = new PropertyInfo();

    pinfo.name = "Parameters";
    pinfo.setValue(exeParams);
    pinfo.type = exeParams.getClass();

以下代码用于调用 Web 服务:-

            KSOAPFactory soapFact = new KSOAPFactory();

            soapFact.initialiseSOAPEnvelope(NAMESPACE, METHOD_NAME, URL);

            soapFact.addProperty("Function", "EXE");
            soapFact.addProperty(pinfo);
            soapFact.addProperty("Repid", reportDef.getReportHeader()
                    .getReport());

            try {
                resp = soapFact.invokeSOAP();
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } catch (XmlPullParserException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }

当我查看 SAP 时,“参数”输入参数中没有传递任何值。

有没有人使用 kSOAP 来调用 SAP Web 服务来填充复杂的输入参数。

任何帮助深表感谢。

谢谢

马丁

4

1 回答 1

1

为自己解决了。我从未意识到我需要填充覆盖方法 getProperty、getPropertyCount 和 getPropertyInfo

希望这可以帮助其他有类似问题的人。

于 2012-11-20T14:56:43.943 回答