我正在尝试在 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 服务来填充复杂的输入参数。
任何帮助深表感谢。
谢谢
马丁