1

SAP システムで Web サービスを呼び出そうとしていますが、複雑なパラメーターを渡そうとすると問題が発生します。

Web サービスには 3 つの入力パラメーターがあります。2 文字列と、複数のフィールドを含む SAP 構造を参照する複雑なパラメーター。これら 3 つの入力パラメータは次のように呼ばれます。 -

関数パラメータ Repid

Web サービスを呼び出すと、Funtion と 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 を見ると、for "Parameters" 入力パラメーターに値が渡されていません。

kSOAP を使用して SAP Web サービスを呼び出し、複雑な入力パラメーターを入力した人はいますか。

どんな助けでも大歓迎です。

ありがとう

マーティン

4

1 に答える 1

1

自分で解決しました。オーバーライド メソッド getProperty、getPropertyCount、および getPropertyInfo を設定する必要があることに気づきませんでした。

これが同様の問題を抱えている他の誰かに役立つことを願っています。

于 2012-11-20T14:56:43.943 に答える