My CRM Learning

report url

http://servername/orgname/crmreports/viewer/viewer.aspx?action=run

&id={8D2FCC14-2A2B-4BA8-B070-A29787E37E57}&context=records
&recordstype=1088

&records={81D8C017-882A-DE11-95E0-00110A5CDC7F}&helpID=Purchase%20Order.rdl

 

id= guid of the report

recordstype= object id of the entity

records= id of the entity record

helpID= name of the report

 

For Post Update Callout values would only be passed when they are registered using callout.config. Values would be passed irrespective of whether it is changed or not. Value wouldn’t be passed in case if they are null.

We could use CancelSalesOrderRequest in PostUpdate callout or plugin without infinite loop issue.

Canceled order cannot be activated, the only option is through direct query against database.

When salesorderdetail is created it also fires update of sales order and create of itself for plugins.

We can update salesorderdetail from salesorder update callout or plugin without triggering infinite loop.

CrmService.asmx would always be pointing to wsdl for the default organization set in deployment manager. For a specific organization we need to use following query parameter.

http://<servername[:port]>/mscrmservices/2007/crmservice.asmx?
WSDL&uniquename=organizationName

In input parameters while updating a record , only the attributes that are modifed would be there, however if we are raising an InvalidPluginExecutionException and then trying to update that record, this time it would contain all the attributes that has value as inputparameters.

Inputparameters target property for SalesOrderDetail Post Create.

+        [0]    {[salesorderid, Microsoft.Crm.Sdk.Lookup]}    System.Collections.Generic.KeyValuePair<string,object>

+        [1]    {[isproductoverridden, Microsoft.Crm.Sdk.CrmBoolean]}    System.Collections.Generic.KeyValuePair<string,object>

+        [2]    {[productid, Microsoft.Crm.Sdk.Lookup]}    System.Collections.Generic.KeyValuePair<string,object>

+        [3]    {[uomid, Microsoft.Crm.Sdk.Lookup]}    System.Collections.Generic.KeyValuePair<string,object>

+        [4]    {[ispriceoverridden, Microsoft.Crm.Sdk.CrmBoolean]}    System.Collections.Generic.KeyValuePair<string,object>

+        [5]    {[quantity, Microsoft.Crm.Sdk.CrmDecimal]}    System.Collections.Generic.KeyValuePair<string,object>

+        [6]    {[salesrepid, Microsoft.Crm.Sdk.Lookup]}    System.Collections.Generic.KeyValuePair<string,object>

+        [7]    {[willcall, Microsoft.Crm.Sdk.CrmBoolean]}    System.Collections.Generic.KeyValuePair<string,object>

+        [8]    {[shipto_freighttermscode, Microsoft.Crm.Sdk.Picklist]}    System.Collections.Generic.KeyValuePair<string,object>

+        [9]    {[iscopied, Microsoft.Crm.Sdk.CrmBoolean]}    System.Collections.Generic.KeyValuePair<string,object>

+        [10]    {[pricingerrorcode, Microsoft.Crm.Sdk.Picklist]}    System.Collections.Generic.KeyValuePair<string,object>

+        [11]    {[salesorderispricelocked, Microsoft.Crm.Sdk.CrmBoolean]}    System.Collections.Generic.KeyValuePair<string,object>

Responses

  1. when i send an email from outlook to CRM online the mail is coming as email activity with status as “completed”. How to get the email status as “open” ?

  2. Hi Nishant,

    Thanks for this post. It is really helpful. I have a query on this though.

    I want to assign multiple records to the filter of the report. Can you provide some help on the same!!

    Thanks…
    Vikas Chitale.
    Pune, India.

  3. Hi Vikas,

    Thanks for your appreciation.

    “I want to assign multiple records to the filter of the report.”

    Could you please explain it in more detail ?

    • Thanks for such a fast reply. :)

      We have developed a custom grid using the code available on codeplex. In this grid we select a few of the phone calls on which we want to generate a report.

      The problem comes now as according to your blog we are able to set only one record to the filter at a time. How to assign multiple records to the filter from URL?

      Vikas Chitale.
      Pune, India.

      • Just like “Running report on selected record ” thing?

        I would look into that and hopefully if i am able to find a solution get back to you :)

  4. Yes exactly….

    Thanks a lot… even am looking into this issue for about a week now but no luck.

    Regrads,
    Vikas Chitale.
    Pune, India.

    • Hi Vikas,

      Even i am trying out the same over here !!

      It uses this kind of url for context sensitive report

      http://servername:5555/orgname/crmreports/viewer/viewer.aspx?
      action=run
      &id=%7b2B6DF296-C3A9-DE11-B611-0003FFD21C1C%7d
      &helpID=Activities.rdl
      &context=records
      &recordstype=4200

      It seems that CRM uses some kind of session to pass guid of the selected records from the grid to the report viewer page or something like that!!

      Regards,
      Nishant Rana

  5. Hi Nishant,

    We saw this URL as soon as we got a look at your blog about two weeks back…

    Have even raised this issue on Microsft Dynamics forum… Hope to to get some help from there too…

    Will inform you if even we find some solution for this. :)

    Regards,
    Vikas Chitale.
    Pune, India.

    • Hi Vikas,
      Ok so you have posted it on MS CRM forum as well.
      Well you know i had even asked Andriy, a top answerer on that forum, personally, but unfortunately he was also not sure about that.
      Do let me know if you get any solution for it, meanwhile i’d try out certain things here!

      Regards,
      Nishant Rana

  6. Hi Nishant,

    Any luck?? :(


Leave a response

Your response: