Tech Support > Microsoft Windows > Windows CRM > Post Callout upgrade to 3.0
Post Callout upgrade to 3.0
Posted by Wouter on January 23rd, 2006




Q: What do I need to do to make my 1.2 post-callout work?

I already copied my dll to \Program Files\Microsoft
CRM\server\bin\assembly\

And made an callout.config.xml that looks like this:
<callout.config version="3.0" xmlns="
http://schemas.microsoft.com/crm/2006/callout/">
<callout entity="account" event="PostCreate">
<subscription assembly="CRMPostCallout.dll"
class="CRMCaller.PostCreate" onerror="abort">
<postvalue>@all</postvalue>
</subscription>
</callout>
<callout entity="account" event="PostUpdate">
<subscription assembly="CRMPostCallout.dll"
class="CRMCaller.PostUpdate" onerror="abort">
<postvalue>@all</postvalue>
</subscription>
</callout>
<callout entity="account" event="PostDelete">
<subscription assembly="CRMPostCallout.dll"
class="CRMCaller.PostDelete" onerror="abort">
<postvalue>@all</postvalue>
</subscription>
</callout>
</callout.config>

but then I got the following error: Error: ISV code threw exception:
assembly: CRMPostCallout.dll; class: CRMCaller.PostUpdate; entity:
account, event: postupdate, exception: System.TypeLoadException: Could
not load type CRMCaller.PostUpdate from assembly CRMPostCallout,

so I probably need to make a new dll with the new/upgraded code but in
the sdk it also says "Existing V1.x post-callouts will upgrade and
continue to work as long as they do not use classes that are no longer
supported, such as activities"
& since I don't use activities I hoped I wouldn't have to change my
postcallout..

If I need to make a new postcallout: can I use Visual Studio 2005?

Posted by Matt Parks on January 23rd, 2006


I haven't played with upgraded callouts, but my guess is that the "upgraded"
callouts are still registered in the same manner as they were in v1.2. You
are trying to register them in the new manner and that is going to require
that the callout be developed against the new APIs as the method signatures
have changed.

Given the changes in the callout architecture, I would recommend rewriting
them as it will help down the line anyway. AS fro VS 2005, you can use
that, but you must ensure that you compile against the v1.1 .net framework.

--

Matt Parks
MVP - Microsoft CRM


"Wouter" <W.VandenBergh@mobileaccess.REMOVETHIS.be> wrote in message
newsrc9t19tuiele5g317ao38knfeo63rk3b3@4ax.com...


Q: What do I need to do to make my 1.2 post-callout work?

I already copied my dll to \Program Files\Microsoft
CRM\server\bin\assembly\

And made an callout.config.xml that looks like this:
<callout.config version="3.0" xmlns="
http://schemas.microsoft.com/crm/2006/callout/">
<callout entity="account" event="PostCreate">
<subscription assembly="CRMPostCallout.dll"
class="CRMCaller.PostCreate" onerror="abort">
<postvalue>@all</postvalue>
</subscription>
</callout>
<callout entity="account" event="PostUpdate">
<subscription assembly="CRMPostCallout.dll"
class="CRMCaller.PostUpdate" onerror="abort">
<postvalue>@all</postvalue>
</subscription>
</callout>
<callout entity="account" event="PostDelete">
<subscription assembly="CRMPostCallout.dll"
class="CRMCaller.PostDelete" onerror="abort">
<postvalue>@all</postvalue>
</subscription>
</callout>
</callout.config>

but then I got the following error: Error: ISV code threw exception:
assembly: CRMPostCallout.dll; class: CRMCaller.PostUpdate; entity:
account, event: postupdate, exception: System.TypeLoadException: Could
not load type CRMCaller.PostUpdate from assembly CRMPostCallout,

so I probably need to make a new dll with the new/upgraded code but in
the sdk it also says "Existing V1.x post-callouts will upgrade and
continue to work as long as they do not use classes that are no longer
supported, such as activities"
& since I don't use activities I hoped I wouldn't have to change my
postcallout..

If I need to make a new postcallout: can I use Visual Studio 2005?


Posted by Looking forward to CRM 3.0 on January 23rd, 2006


Matt is correct - the registration through the subscriberentity table
still has to be done. You do not want to create the entries in the
callout.config.xml file if you want to use the 1.2 postcallouts. For
many reasons.... the least of which is the fact that the calls are
completely different - which explains your error.

Couple of notes:

1.) In the 1.2 model, you only get the XML for whatever changed. In
the 3.0 model, you get the pre and postxml for all of the fields on an
entity - you have to figure out what changed.
2.) In the 3.0 callout model - you do get calls for things like
setstate and assign - 2 that were missing from 1.2.
3.) Some of the 1.2 calls were broken in the 3.0 version. They will
eventually deprecate all of that functionality - but some OTC's just
don't work the way they used to.
4.) Some of the 3.0 calls are broken - for instance there are certain
updates that for some unknown reason were declared to be behind the
scenes and don't produce a callout. That is totally outrageous - but
there it is.
5.) Some of the 3.0 calls just don't exist. For instance, the queue
item call that works fine on 1.2 for when you assign things to a queue,
doesn't support a callout in 3.0. So if you want to track all types of
assignments, you need to use both the 1.2 and the 3.0 model.
6.) The 1.2 model requires COM registration - the 3.0 model doesn't.

Bottom line is the 3.0 model is a lot better - but it has holes - but
so didn't the 1.2 model.

Good Luck!

Matt Parks wrote:

Posted by Wouter on January 25th, 2006


Thanks a lot guys.
I got my 1.2 callout working.. for a small part
(as Matt said, by installing it the 1.2 way...)

But since the CRMCustomization class is also no longer supported I can
no longer retrieve picklistvalues. Therefore I need to upgrade my code
anyway so I'm not going to spend any more time searching why it
doesn't work for the other part & start working on the upgrade..

Greetings,

Wouter



Similar Posts