How to pass filter in navision web services calling from android devices and how to fetch data? I've called the web services using WSDL & ksoap2 with NTML authentication and successfully fetching data, but filter does not work when applied.
Asked
Active
Viewed 411 times
0
-
Described [here with xml sample](http://stackoverflow.com/questions/16542364/date-filter-in-microsoft-dynamics-nav-webservice) and [here](http://stackoverflow.com/questions/3423017/dynamics-nav-navision-webservice-readmultiple-date-filter). – Mak Sim Jan 24 '14 at 12:56
-
I'd gone through these links before, and the issue was between Vector Object and the soapObject. Anyway I solved this issue. Thanks. – The Heist Jan 24 '14 at 13:43
-
Why don't you post solution then? – Mak Sim Jan 27 '14 at 06:37
1 Answers
0
ADDING THIS TO THE WHERE METHOD IS BEING CALLED
VectorApp_Setup_Filter vfilter = new VectorApp_Setup_Filter();
App_Setup_Filter appsetupFilter1 = new App_Setup_Filter();
appsetupFilter1.field = App_Setup_Fields.Salesperson_Code;
Log.e("SALES CODE PASSING IN FILTER ", editStrOfflineUserId);
appsetupFilter1.criteria = editStrOfflineUserId;
App_Setup_Filter appsetupFilter2 = new App_Setup_Filter();
appsetupFilter2.field = App_Setup_Fields.Status;
appsetupFilter2.criteria = "Intrasit";
vfilter.add(appsetupFilter2);
vfilter.add(appsetupFilter1);
appsetup.ReadMultipleAsync(vfilter, null, 0);
READMULTIPLE ASYNC METHOD
SoapSerializationEnvelope soapEnvelope = new SoapSerializationEnvelope(
SoapEnvelope.VER11);
soapEnvelope.implicitTypes = true;
soapEnvelope.dotNet = true;
SoapObject soapReq = new SoapObject(
"urn:microsoft-dynamics-schemas/page/app_setup", "ReadMultiple");
for (int i = 0; i < filter.size(); i++) {
soapReq.addProperty("filter", getSOAPVectorAppsetup(filter, i));
}
soapReq.addProperty("bookmarkKey", bookmarkKey);
soapReq.addProperty("setSize", setSize);
soapEnvelope.setOutputSoapObject(soapReq);
METHOD DETAILS :- getSOAPVectorAppsetup();
private SoapObject getSOAPVectorAppsetup(VectorApp_Setup_Filter filter,
int position) {
SoapObject appsetup = new SoapObject(
"urn:microsoft-dynamics-schemas/page/app_setup", "anyType");
// for (int i = 0; i < filter.size(); i++) {
Log.e("Field", 0 + "" + filter.get(position).getProperty(0));
Log.e("Criteria", 0 + " " + filter.get(position).getProperty(1));
appsetup.addPropertyIfValue("Field", filter.get(position)
.getProperty(0));
appsetup.addPropertyIfValue("Criteria", filter.get(position)
.getProperty(1));
// }
return appsetup;
}
This Solution Worked For ME.

i.n.e.f
- 1,773
- 13
- 22