Android kSOAP:在SAP上调用Web服务以获取复杂参数

时间:2012-11-20 11:16:59

标签: android sap ksoap

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

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

功能 参数 REPID

功能&当我调用Web服务时,将传递Repid,但是,没有任何内容传递给名为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时,“Parameters”输入参数中没有传递任何值。

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

非常感谢任何帮助。

由于

马丁

1 个答案:

答案 0 :(得分:1)

为自己解决了这个问题。我从未意识到我需要填充覆盖方法setProperty,getProperty Count和getPropertyInfo

希望这有助于其他有类似问题的人。