Kinetic Upgrade - Custom Code Query

Hi

Can somebody give me a pointer on this line of code below that compiles on 10.2.300, but fails to compile on 2022.1.

var dynamicCriteriaReport = WCFServiceSupport.CreateImpl<Ice.Proxy.Rpt.DynamicCriteriaImpl>((Session)oTrans.Session, Epicor.ServiceModel.Channels.ImplBase<Ice.Contracts.DynamicCriteriaSvcContract>.UriPath);

The error I’m getting is:
Error: CS0117 - line 313 (735) - ‘Epicor.ServiceModel.Channels.ImplBase’ does not contain a definition for ‘UriPath’

Is it a write to use REST, move away from WCF? Or a tweak to syntax? I have seen some Kinetic Code examples that do use the WCFServiceSupport.

Many Thanks
Mark

Running into a meeting but maybe @josecgomez or @jgiese.wci have already figured this out.

In a nutshell what I see is that Epicor got rid of

ImplBase<TContract>

They still have ImplBase and they still in their Client code get the UriPath from the Client Side via something like

aRInvoiceLoadBO = WCFServiceSupport.CreateImpl<ARInvoiceLoadImpl>( Session, ARInvoiceLoadImpl.UriPath);

EDIT

Josh said

Just went through and updated the calls. They put the uri in the contract object.

Try

Ice.Proxy.Rpt.DynamicCriteriaImpl.UriPath
1 Like

@hkeric.wci @jgiese.wci you’re both legends as always.

I managed to get it updated based on your advice.

Couple of usings at the top:

using Ice.Proxy.Rpt;
using Ice.Contracts;

and then updated my line to read:

var dynamicCriteriaReport = WCFServiceSupport.CreateImpl<DynamicCriteriaImpl>((Session)oTrans.Session, DynamicCriteriaImpl.UriPath);

THANK YOU! :+1:

4 Likes

That’s excellent. Now you have time to get some badly needed REST.

:wink:

4 Likes

Nice Mark! :rofl: