我正在尝试在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服务来填充复杂的输入参数。
非常感谢任何帮助。
由于
马丁
答案 0 :(得分:1)
为自己解决了这个问题。我从未意识到我需要填充覆盖方法setProperty,getProperty Count和getPropertyInfo
希望这有助于其他有类似问题的人。