Hello!
I have the following scenario: I get data from a
webservice. These data are (temporarily) stored in a XML
file on the server. The data contain: 1 account, numerous
customer addresses and numerous contacts. When I save the
account a post-callout routine stores these data in MSCRM
(we use MSCRM v1.2). It works fine, but: VERY SLOW. In my
test case I have 26 customer addresses and 21 contacts.
The whole post-callout routine needs 22 seconds. (When it
is called the first time, it needs 33 seconds.) Through
some tests I found out that 6 to 7 seconds of the time is
consumed by the XSLT transformation I do. So there still
remain 15 seconds which are consumed by doing 26 calls to
CRMCustomerAddress.Create() and 21 calls to
CRMContact.Create(). I think - and our customers think -
that this speed is embarrassing. As a developer I have an
idea, where this slowness comes from: The SDK methods work
as webservice methods. That is useful and necessary, when
you want to handle objects from remote.
In my scenario the data is already on the server (as a XML
file) and it should be loaded into the (MSCRM) database on
the same server. In this scenario doing the object
handling via webservice methods is absolutely overhead. If
the creation of the objects would be done on the server
only, it would much more faster (the creation of some data
rows is usually done in a blink of an eye).
So the following extensions of the SDK would be EXTREMELY
REASONABLE: (hello Microsoft, can you hear me?)
- methods that do the object handling directly and not via
webservice (let's call that: a server API)
- a method like CreateMultiple() for creating multiple
objects of one type.
Any ideas of how to speed up the post-callout routine
would be appreciated.
Regards,
Reinhold Mannsberger
CRM Developer
_______________________
SENSIX IT-Solutions GmbH
The CRM Company
Storchengasse 1
A-1150 Wien
Phone: +43 1 8972426
http://www.sensix.net
Microsoft Certified Partner ID: 583491