Question Status

Suggested Answer
Sven Peeters asked a question on 22 Feb 2012 1:03 AM

Hi,

 

I've been looking for an example where you use the CallContext in System Services.

The documentation states :

The data contract for the call context is not published as part of the Web Service Description Language (WSDL) files for system services. However, the call context can be used just like for other services. The call context values for system services are set to the default values. If you want to explicitly set any call context values for a system service, you must create the code to set the values for the system service call.

 

But I have no idea how to create this code.

As example, I would like to use the ExecuteStaticQuery method on the QueryServiceClient.

But I want to choose in which company this query must be executed.

 

Does anybody has an example of this?

 

Regards,

Sven Peeters

Reply
Suggested Answer
Joris de Gruyter responded on 17 Apr 2012 4:31 PM

I couldn't find the context on the query service either. I ended up setting the query to crosscompany=true and then specify only one company in the company ranges.

It's a workaround, but works well.

Reply
Suggested Answer
Tory Bjorklund responded on 18 Apr 2012 11:45 AM

Ok, here is what I learned.

1. Joris dG is correct. This will work.

2. However, ExecuteStaticQuery() doesn't use any meta data with which to set these parameters so here is what I did.

I used the Metatdata service (msdn.microsoft.com/.../gg880762.aspx) to get the metatdata for the desired static query, then I set the values desired on the metadata (I also wanted to flatten the dataset) and then I called QueryServiceClient.ExecuteQuery() (msdn.microsoft.com/.../microsoft.dynamics.ax.framework.services.queryservice.queryserviceclient.executequery.aspx) passing the modified metadata.

I am planning to write this up with a little more information (including sample code) and I will post it to my blog and place a link on this thread later.

I hope that helps.

Tory

Reply
Tory Bjorklund responded on 17 Apr 2012 8:00 AM

Hi Sven,

I am trying to find an answer to the same question. I see you have no response to this post. Have you figured out the answer on your own?

Thanks,

Tory

Reply
Sven Peeters responded on 17 Apr 2012 9:38 AM

Hi Tory, no answer and no solution what so ever.

Very dissappointed that until today, no sample is released bij MS in their documentation

If you find a way, please share it with us.

I reverted back to the BC.Net connector for that particular customer.

Regards,

Sven Peeters

Reply
Suggested Answer
Joris de Gruyter responded on 17 Apr 2012 4:31 PM

I couldn't find the context on the query service either. I ended up setting the query to crosscompany=true and then specify only one company in the company ranges.

It's a workaround, but works well.

Reply
Suggested Answer
Tory Bjorklund responded on 18 Apr 2012 11:45 AM

Ok, here is what I learned.

1. Joris dG is correct. This will work.

2. However, ExecuteStaticQuery() doesn't use any meta data with which to set these parameters so here is what I did.

I used the Metatdata service (msdn.microsoft.com/.../gg880762.aspx) to get the metatdata for the desired static query, then I set the values desired on the metadata (I also wanted to flatten the dataset) and then I called QueryServiceClient.ExecuteQuery() (msdn.microsoft.com/.../microsoft.dynamics.ax.framework.services.queryservice.queryserviceclient.executequery.aspx) passing the modified metadata.

I am planning to write this up with a little more information (including sample code) and I will post it to my blog and place a link on this thread later.

I hope that helps.

Tory

Reply
Nima Kamoosi responded on 4 Jan 2013 5:06 PM

See the following sample: code.msdn.microsoft.com/Walkthrough-of-using-73c07391

Thanks,

Nima

Reply