Difference in response from RetrievePrincipalAccessRequest & RetrieveSharedPrincipalsAndAccessRequest (CRM 2013 SP1 UR1 on-premise)

Hi all,
I've been fighting this for 2 days now. I'm trying to check if an account is already shared with a team before modifying or granting the access. I noticed at first that when I shared, and then checked at the next run, Sharing and Assign privs where not returned
by RetrievePrincipalAccessRequest. So I mitigated this by not checking for those two.
However for some of my accounts, an already shared record (verified in the UI) is returning "None" when retrieved using RetrievePrincipalAccessRequest but the full set when listed using RetrieveSharedPrincipalsAndAccessRequest. I created the code
below to verify this - the output from this run is:
team 4b7ec141-81f3-e211-940a-00155deab80e
ReadAccess, WriteAccess, AppendAccess, AppendToAccess, ShareAccess, AssignAccess
None
team 4d7ec141-81f3-e211-940a-00155deab80e
ReadAccess, WriteAccess, AppendAccess, AppendToAccess, ShareAccess, AssignAccess
ReadAccess, WriteAccess, AppendAccess, AppendToAccess, ShareAccess, AssignAccess
Is there anybody that can offer an explanation on this behaviour? Retrieving the full list does seem like a waste of ressources but I guess that is what I will have to do for now.
Thank's
Nicolai
EntityReference targetref = new EntityReference("account", new Guid("a2a56119-0501-e311-940e-00155deab80e"));
RetrieveSharedPrincipalsAndAccessRequest req = new RetrieveSharedPrincipalsAndAccessRequest()
Target = targetref
RetrieveSharedPrincipalsAndAccessResponse resp = (RetrieveSharedPrincipalsAndAccessResponse)_orgService.Execute(req);
foreach (PrincipalAccess pa in resp.PrincipalAccesses)
Console.WriteLine(pa.Principal.LogicalName + " " + pa.Principal.Id);
Console.WriteLine(pa.AccessMask.ToString());
RetrievePrincipalAccessRequest req2 = new RetrievePrincipalAccessRequest()
Principal = pa.Principal,
Target = req.Target
RetrievePrincipalAccessResponse resp2 = (RetrievePrincipalAccessResponse)_orgService.Execute(req2);
Console.WriteLine(resp2.AccessRights.ToString());
Console.WriteLine("------------------------------------------------------------------------");
-- Please vote as helpful / mark as answer where appropriate ;)

Hi Chris, thank's for getting back to me.
I needed to check that all the rights where the same as the requested, and if not replace them.
What I found was that quering for the specific team for a specific target (RetrievePrincipalAccessRequest )
gave me sometimes "None" other times "ReadAccess, WriteAccess, AppendAccess, AppendToAccess" when infact the team also had "ShareAccess, AssignAccess" in addition.
But requesting the entire set of princiaps and rights (RetrieveSharedPrincipalsAndAccessRequest) gave me all the info.
I do not believe the performance impact is so huge here since most targets are shared with max 3 principals, so I have implemtented it using
RetrieveSharedPrincipalsAndAccessRequest now.
Did this make the issue more clear? For the benefit of other users that may run into this problem, I would still like to find out what happened.
-- Please vote as helpful / mark as answer where appropriate ;)

Similar Messages

  • CRM 2013 SP1 new case functions crashes

    Hi,
    We have an issue with a CRM 2013SP1 that has been upgraded from CRM 2011. After the SP1-upgrade the sitemap was in a bit of a mess so I reset the sitemap with XrmToolbox sitemapedito to a CRM 2013-vanilla state and then added the service management settings
    page (<SubArea Id="nav_servicemanagement" ResourceId="Homepage_ServiceManagement" DescriptionResourceId="ServiceManagement_SubArea_Description" Url="/tools/servicemanagement/servicemanagement.aspx" AvailableOffline="false"
    />) in the sitemap xml manually.
    Right, this made the settings page appear, but when I click on the new features I get an error and the trace says that the guid is in the wrong format (Exception of type 'System.Web.HttpUnhandledException' was thrown. ---> System.FormatException: Unrecognized
    Guid format.)
    When I have a look at the customizations there are no views or forms available for entitlements for example so something seems to have gone wrong in the update. It didn't help to install the SP1 again, and the SP1UR1 or SP1UR2 didn't fix this either. Has
    anyone seen anything like this and how have you solved it?
    Thanks
    Rickard Norström Developer CRM-Konsulterna
    http://www.crmkonsulterna.se
    Swedish Dynamics CRM Forum: http://www.crmforum.se
    My Blog: http://rickardnorstrom.blogspot.se

    Hi Rickard,
    I am facing the same issue after upgrading to SP1. Were you able to resolve this issue?
    Regards
    Manish

  • Install MS CRM 2013 Rollups

    Could you please let me know the prerequisites for Installing MS   Dynamics CRM 2013 latest Rollup 
    During early stage of CRM development environment setup, While Installing Rollup, I had corrupted the  MS CRM Environment L
    Please let me know the steps for installing MS CRM 2013 latest Rollup

    Just download and install the rollup. Note that, if you want Crm 2013 service pack 1 installed, then you'll need to install CRM 2013 RTM, then Crm 2013 service pack 1, then the most recent update rollup for Crm 2013 service pack 1. The update rollups for
    Crm 2013 RTM are different from those for CRM 2013 service pack 1
    Microsoft CRM MVP - http://mscrmuk.blogspot.com/ http://www.excitation.co.uk

  • Migration from ISU to CRM

    Hi,
    We are populating SAP ISU via Emigall and proposing to replicate all customer data including BP, CA and Contract and all technical master data including CO, Premise and Device.  This is a lot of objects and data to replicate from ISU to CRM which will mean our migration takes a long time. 
    Are there any other options to populating data into CRM? Would you advice LSMW load into CRM and Emigall load into ISU?
    KR,
    Michelle

    Hi we are proposing to use Emigall (Data migration workbench) to load the following into ISU:-
    BP
    CA
    Contract
    CO
    Premise
    Device
    Reg Structure
    Documents
    Dunning etc
    We are proposing to use CRM middleware to replicate the following objects from ISU to CRM:-
    BP
    CA
    Contract
    CO
    Premise
    Device
    My concern is that the replication from ISU to CRM is very slow and will be our bottleneck during migration weekend. I am looking for ways to speed up this replication including alternative ways of populating CRM.
    KR,
    Michelle

  • From ISU to CRM

    hi frnds
    My requirement is below
    I have created a BOR object in ISU which is related to CRM order item
    and in which the import parameters are date and status
    now when i enter them and execute object then according there should be reflected in CRM program crm_order_read but i dont know why these are not reflected
    i have also checked the FM it is retueming the correct values to CRM
    Can anybody has reason why these are not reflected.

    Hi we are proposing to use Emigall (Data migration workbench) to load the following into ISU:-
    BP
    CA
    Contract
    CO
    Premise
    Device
    Reg Structure
    Documents
    Dunning etc
    We are proposing to use CRM middleware to replicate the following objects from ISU to CRM:-
    BP
    CA
    Contract
    CO
    Premise
    Device
    My concern is that the replication from ISU to CRM is very slow and will be our bottleneck during migration weekend. I am looking for ways to speed up this replication including alternative ways of populating CRM.
    KR,
    Michelle

  • 2013 Exchange, Can't connect to Exchange Management Shell. It cannot determine the content type of the HTTP response from the destination computer.

    The following error occurs.
             Welcome to the Exchange Management Shell!
    Full list of cmdlets: Get-Command
    Only Exchange cmdlets: Get-ExCommand
    Cmdlets that match a specific string: Help *<string>*
    Get general help: Help
    Get help for a cmdlet: Help <cmdlet name> or <cmdlet name> -?
    Show quick reference guide: QuickRef
    Exchange team blog: Get-ExBlog
    Show full output for a command: <command> | Format-List
    Tip of the day #0:
    Did you know that the Identity parameter is a "positional parameter"? That means you can use:
     Get-Mailbox "user" instead of: Get-Mailbox -Identity "user"
    It's a neat usability shortcut!
    VERBOSE: Connecting to mail1.dorothy.local.
    New-PSSession : [mail1.dorothy.local] Connecting to remote server mail1.dorothy.local failed with the following error
    message : The WinRM client cannot process the request. It cannot determine the content type of the HTTP response from
    the destination computer. The content type is absent or invalid. For more information, see the
    about_Remote_Troubleshooting Help topic.
    At line:1 char:1
    + New-PSSession -ConnectionURI "$connectionUri" -ConfigurationName Microsoft.Excha ...
    + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        + CategoryInfo          : OpenError: (System.Manageme....RemoteRunspace:RemoteRunspace) [New-PSSession], PSRemotin
       gTransportException
        + FullyQualifiedErrorId : -2144108297,PSSessionOpenFailed
    Exception calling "GetComputerSite" with "0" argument(s): "The Specified directory object cannot be found."
    At C:\Program Files\Microsoft\Exchange Server\V15\bin\ConnectFunctions.ps1:164 char:2
    +     $localSite=[System.DirectoryServices.ActiveDirectory.ActiveDirectorySite]::GetC ...
    +    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        + CategoryInfo          : NotSpecified: (:) [], MethodInvocationException
        + FullyQualifiedErrorId : ActiveDirectoryObjectNotFoundException
    Failed to connect to an Exchange server in the current site.
    Enter the server FQDN where you want to connect.: mail1.dorothy.local
    VERBOSE: Connecting to mail1.dorothy.local.
    New-PSSession : [mail1.dorothy.local] Connecting to remote server mail1.dorothy.local failed with the following error
    message : The WinRM client cannot process the request. It cannot determine the content type of the HTTP response from
    the destination computer. The content type is absent or invalid. For more information, see the
    about_Remote_Troubleshooting Help topic.
    At line:1 char:1
    + New-PSSession -ConnectionURI "$connectionUri" -ConfigurationName Microsoft.Excha ...
    + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        + CategoryInfo          : OpenError: (System.Manageme....RemoteRunspace:RemoteRunspace) [New-PSSession], PSRemotin
       gTransportException
        + FullyQualifiedErrorId : -2144108297,PSSessionOpenFailed
    Randy Cheek

    Good Morning,
    Log into the server with an account that has appropriate Exchange rights, not a local account.  
    Note: By default - Domain Admins don't have Exchange rights.
    Dame Luthas, ITILv3, MCSE Messaging 2013, MCSA, MCITP
    My Technical Blog: http://thelifestrategist.wordpress.com
    Discipline is the Difference between Goals and Accomplishments
    If this post is useful, please hit the green arrow on the left & if this is the answer hit "mark as answer"

  • CRM 2013: missing conversion of activities to campaign responses

    Hi!
    Recently we upgraded from CRM 2011 to 2013 and now I am looking for a functionality, which I am quite sure was there in 2011: in a campaign I can distribute a campaign activity and get a number of activities of a certain type depending on the channel I selected
    in the campaign activity (e.g. phone call). When I now process these activities and call the potential customers, I want to track their responses in CRM using the campaign response entity. But what I am missing now is a way to directly convert the activity
    into a campaign response. I seem to remember that there was a button for this in CRM 2011, but I can't find this button in CRM 2013. Does anybody now abaout this?
    Best regards
    Daniel

    Vasavi,
    Thanks for your reply! You mean I can NOT convert a phone call to a campaign response? But why?
    You are right regarding the activity with 'letter' as channel, I can promote that to a response.
    Is there no way to activate this same functionality for phone calls? I am quite sure that it worked in CRM 2011. Is there someone at Microsoft randomly picking functions and deactivating them for new releases? I can't see any logical reason why one should
    not promote a phone call to a response - I call people and most of them give me responses...
    Regards
    Daniel

  • How to Disable the Process Header, collapsible Area, and Process Warning Bar from Contacts Form of CRM 2013

    Folks,
    How to Disable the Process Header, collapsible Area, and Process Warning Bar from Contacts Form of CRM 2013
    Thank you.

    Hi,
    You can deactivate the business process itself if you do not want at all. So that the header will not available for the entity.
    Regards,
    Priya

  • Plugin customization from crm 4.0 to crm 2013

    Hi,
    can anyone advice or help me to customize CRM 4.0 plugin code where using Product class, to CRM 2013.
    There is not product class (crm service) in CRM 2013 and I don't know how to customize below Code to CRm 2013 plugin
    here i attached snip of CRm 4.0 plugin code
    try {
    Log("Neue Vorlage!");
    Entity vorlage = (Entity)context.PostEntityImages["Vorlage"];
    //Entity product = new Entity[4];
    product[] produkte = new product[4];

    Hello,
    You can go 2 ways:
    1. Use Late Binding and your code could look like
    Entity[] produkte = new Entity[4];
    2. You can use
    Early Binding.
    And after that your code could look like:
    Product[] produkte = new Product[4];
    Dynamics CRM MVP
    My blog

  • CRM 4.0 Plugin to CRM 2013

    I am newbie in CRM and just while I starting CRM customization we are upgrading from CRM 4.0 to CRM 2013. I must customize some plugin to CRM 2013 but I have difficulty to understand CRM 4.0 coding. Please can any CRM angel help me.
    Here I attach a snip from long coding where I have difficulty to understand.
    First one:  CRM 4.0 Coding
    try {
    TargetCreateDynamic tcd = new TargetCreateDynamic();
    CreateRequest createRequest = new CreateRequest();
    tcd.Entity = seminarprodukt;
    createRequest.Target = tcd;
    Response bla = cs.Execute(createRequest);
    My coding for this snip:
    try
    TargetCreateDynamic tcd = new TargetCreateDynamic();
    CreateRequest createRequest = new CreateRequest();
    Entity entityToCreate = new Entity("seminarproduct");
    createRequest.Target = entityToCreate;//tcd;
    CreateEntityResponse response = (CreateEntityResponse)service.Execute(createRequest);
    Second one:
    else if (context.PostEntityImages.Contains("Vorlage")) { //sem_vorlage
    try {
    Log("Neue Vorlage!");
    DynamicEntity vorlage = (DynamicEntity)context.PostEntityImages["Vorlage"];
    // DynamicEntity[] produkte = new DynamicEntity[4];
    product[] produkte = new product[4];
    Lookup einheit = new Lookup();
    einheit.Value = new Guid("8BC61AB9-9C7B-40DE-92EA-400D2D2D723C");
    einheit.type = EntityName.uom.ToString();
    einheit.name = "Primäre Einheit";
    //Einheitengruppe 14716F64-B23E-48D8-91D6-3A5959CE9A80
    Lookup einheitgruppe = new Lookup();
    einheitgruppe.Value = new Guid("14716F64-B23E-48D8-91D6-3A5959CE9A80");
    einheitgruppe.type = EntityName.uomschedule.ToString();
    einheitgruppe.name = "Standardeinheit";
    Picklist produkttyp = new Picklist();
    produkttyp.Value = 2;
    produkttyp.name = "Verschiedenes";
    Lookup e = new Lookup();
    e.type = EntityName.transactioncurrency.ToString();
    e.name = "Euro";
    e.Value = new Guid("09E73F71-0DE5-E011-B6A9-00155D06D300");
    Lookup chf = new Lookup();
    chf.type = EntityName.transactioncurrency.ToString();
    chf.name = "Schweizer Franken";
    chf.Value = new Guid("77C0C210-65EE-E011-98DF-00155D06D300");
    Lookup epl = new Lookup();
    epl.name = "Euro";
    epl.Value = new Guid("42998222-C995-E111-82D3-00155D06D300");
    epl.type = EntityName.pricelevel.ToString();
    Lookup chfpl = new Lookup();
    chfpl.name = "Schweiz";
    chfpl.Value = new Guid("8467A214-C995-E111-82D3-00155D06D300");
    chfpl.type = EntityName.pricelevel.ToString();
    for (int i = 0; i < produkte.Length; i++) {
    produkte[i] = new product();
    produkte[i].quantitydecimal = new CrmNumber(2);
    produkte[i].producttypecode = produkttyp;
    produkte[i].defaultuomscheduleid = einheitgruppe;
    produkte[i].defaultuomid = einheit;
    My Coding for this snip:
    else if (context.PostEntityImages.Contains("Vorlage"))
    //sem_vorlage
    try
    Log("Neue Vorlage!");
    Entity vorlage = (Entity)context.PostEntityImages["Vorlage"];
    //Entity[] produkte = new Entity[4];
    product[] produkte = new product[4];
    EntityReference einheit = new EntityReference();
    einheit.Id = new Guid("8BC61AB9-9C7B-40DE-92EA-400D2D2D723C");
    //einheit.Name = EntityName.uom.ToString();
    einheit.LogicalName = "Primäre Einheit";
    //Einheitengruppe 14716F64-B23E-48D8-91D6-3A5959CE9A80
    EntityReference einheitgruppe = new EntityReference();
    einheitgruppe.Id = new Guid("14716F64-B23E-48D8-91D6-3A5959CE9A80");
    einheitgruppe.Name = "uomschedule".ToString(); //????? Name = Type???
    einheitgruppe.LogicalName = "Standardeinheit";
    OptionSetValue produkttyp = new OptionSetValue();
    produkttyp.Value = 2;
    // produkttyp //.name = "Verschiedenes";
    EntityReference e = new EntityReference(); //Währung in Product
    e.Name ="transactioncurrency".ToString();
    e.LogicalName = "Euro";
    e.Id = new Guid("09E73F71-0DE5-E011-B6A9-00155D06D300");
    EntityReference chf = new EntityReference();
    chf.Name = "transactioncurrency".ToString();
    chf.LogicalName = "Schweizer Franken";
    chf.Id = new Guid("77C0C210-65EE-E011-98DF-00155D06D300");
    EntityReference epl = new EntityReference();
    epl.LogicalName = "Euro";
    epl.Id = new Guid("42998222-C995-E111-82D3-00155D06D300");
    epl.Name = "pricelevel".ToString();
    EntityReference chfpl = new EntityReference();
    chfpl.LogicalName = "Schweiz";
    chfpl.Id = new Guid("8467A214-C995-E111-82D3-00155D06D300");
    chfpl.Name = "pricelevel".ToString();
    for (int i = 0; i < produkte.Length; i++)
    produkte[i] = new product();
    produkte[i].quantitydecimal = new CrmNumber(2);
    produkte[i].producttypecode = produkttyp;
    produkte[i].defaultuomscheduleid = einheitgruppe;
    produkte[i].defaultuomid = einheit;
    The row as bold selected  I did not understand. Can any one help me how I can customize or is there other wrong customize coding. Thanks a lot for your time and advice.

    Hello,
    To understand what the code means I would suggest to recheck SDK for CRM 4.0 (it is still available online!).
    TargetCreateDynamic
    product
    Dynamics CRM MVP/ Technical Evangelist at SlickData LLC
    My blog

  • Dynamic CRM 2013 Online how to execute Report, generate PDF and email

    Dear All,
    I am using Dynamic CRM 2013 online. For quote, I have workflow and Dialogue processes for review process. On approval, I want the system to generate a PDF of quote report, attach the PDF and email it to the Customer.
    Better I would like, When approver, clicks on the approve button, the system should auto generate a PDF of quote report, attach the PDF and email it to the Customer, without any further input from the user. If its not possible, I may have to put button on
    quote form.
    I am using the attached code, but facing various issues.
    1. Under prepare the SOAP Message coding part, I am not sure what should be the below URL for CRM 2013 Online?
    xHReq.Open("POST", "/mscrmservices/2007/CrmService.asmx", false);
    2. What should be the emailid here? Is it Recepient Contact id(Guid) ?
    var emailid = resultXml.selectSingleNode("//CreateResult").nodeTypedValue;
    alert("emailid" + emailid.toString());
    3. Using this code, not able to create Entity for "ActivityMimeAttachment", I am getting newEntity as undefined.
    Below is the code I am using. Please check and help me out, where I am going wrong. Let me know if any better way to implement it. At present, I have put one button on quote form, on click event, below code will get executed.
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <title></title>
    <script type="text/javascript">
    var Xrm;
    if (window.opener) { Xrm = window.opener.Xrm; }
    else if (window.parent) { Xrm = window.parent.Xrm; }
    function getReportingSession() {
    var reportName = "Quotation_Report"; //set this to the report you are trying to download
    var reportId = "7C39D18F-1DC6-E311-8986-D89D6765B238"; //set this to the guid of the report you are trying to download
    var recordid = Xrm.Page.data.entity.getId();
    // recordid = recordid.substring(1, 37); //getting rid of curly brackets
    alert(recordid);
    var pth = Xrm.Page.context.getServerUrl() + "/CRMReports/rsviewer/reportviewer.aspx";
    var retrieveEntityReq = new XMLHttpRequest();
    retrieveEntityReq.open("POST", pth, false);
    retrieveEntityReq.setRequestHeader("Accept", "*/*");
    retrieveEntityReq.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
    retrieveEntityReq.send("id=%7B" + reportId + "%7D&uniquename=" + Xrm.Page.context.getOrgUniqueName() + "&iscustomreport=true&reportnameonsrs=&reportName=" + reportName + "&isScheduledReport=false");
    var x = retrieveEntityReq.responseText.indexOf("ReportSession=");
    var ret = new Array();
    ret[0] = retrieveEntityReq.responseText.substr(x + 14, retrieveEntityReq.responseText.indexOf("&", x) - x - 14); //the session id
    x = retrieveEntityReq.responseText.indexOf("ControlID=");
    ret[1] = retrieveEntityReq.responseText.substr(x + 10, retrieveEntityReq.responseText.indexOf("&", x) - x - 10); //the control id
    return ret;
    function createEntity(ent, entName, upd) {
    var jsonEntity = JSON.stringify(ent);
    var createEntityReq = new XMLHttpRequest();
    var ODataPath = Xrm.Page.context.getServerUrl() + "XRMServices/2011/OrganizationData.svc";
    createEntityReq.open("POST", ODataPath + "/" + entName + "Set" + upd, false);
    createEntityReq.setRequestHeader("Accept", "application/json");
    createEntityReq.setRequestHeader("Content-Type", "application/json; charset=utf-8");
    createEntityReq.send(jsonEntity);
    var newEntity = JSON.parse(createEntityReq.responseText).d;
    alert("new entity" + newEntity);
    return newEntity;
    function createAttachment() {
    var params = getReportingSession();
    var recordid = Xrm.Page.data.entity.getId();
    alert("recordid " + recordid);
    var orgName = Xrm.Page.context.getOrgUniqueName();
    var userID = Xrm.Page.context.getUserId();
    //create email record
    // Prepare the SOAP message.
    var xml = "<?xml version='1.0' encoding='utf-8'?>" +"<soap:Envelope xmlns:soap='http://schemas.xmlsoap.org/soap/envelope/'" +
    " xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'" +
    " xmlns:xsd='http://www.w3.org/2001/XMLSchema'>" +
    "<soap:Header>" +
    "</soap:Header>" +
    "<soap:Body>" +
    "<Create xmlns='http://schemas.microsoft.com/crm/2007/WebServices'>" +
    "<entity xsi:type='email'>" +
    "<regardingobjectid type='quote'>" + recordid + "</regardingobjectid>" +
    "<subject>" + "Email with Attachment4" + "</subject>" +
    "</entity>" +
    "</Create>" +
    "</soap:Body>" +
    "</soap:Envelope>";
    // Prepare the xmlHttpObject and send the request.
    var xHReq = new ActiveXObject("Msxml2.XMLHTTP");
    xHReq.Open("POST", "/mscrmservices/2007/CrmService.asmx", false);
    xHReq.setRequestHeader("SOAPAction", "http://schemas.microsoft.com/crm/2007/WebServices/Create");
    xHReq.setRequestHeader("Content-Type", "text/xml; charset=utf-8");
    xHReq.setRequestHeader("Content-Length", xml.length);
    xHReq.send(xml);
    // Capture the result
    var resultXml = xHReq.responseXML;
    // alert("resultXml " + resultXml);
    // Check for errors.
    var errorCount = resultXml.selectNodes('//error').length;
    if (errorCount != 0) {
    alert("ERROR");
    var msg = resultXml.selectSingleNode('//description').nodeTypedValue;
    alert(msg);
    var emailid = resultXml.selectSingleNode("//CreateResult").nodeTypedValue;
    alert("emailid" + emailid.toString());
    //var emailid = userID;
    var post = Object();
    post.Body = encodePdf(params);
    var email = new Array();
    email[0] =new Object();
    email[0].id = emailid;
    email[0].entityType ='email';
    post.Subject ="File Attachment";
    post.AttachmentNumber = 1;
    post.FileName ="Report.pdf";
    post.MimeType ="application/pdf";
    post.ObjectId = Object();
    post.ObjectId.LogicalName ="email";
    post.ObjectId.Id = email[0].id;
    post.ObjectTypeCode ="email";
    alert(post.ObjectId.Id);
    createEntity(post,"ActivityMimeAttachment", "");
    alert("created successfully");
    email.Subject = "Your Order";
    //Set The current order as the Regarding object
    email.RegardingObjectId = {
    Id: Xrm.Page.data.entity.getId(), //Get the current entity Id , here OrderId
    LogicalName: Xrm.Page.data.entity.getEntityName()//Get the current entity name, here it will be “salesOrder”
    //Create Email Activity
    SDK.JScriptRESTDataOperations.Create(email, "Email", EmailCallBack, function (error) { alert(error.message); });
    // Email Call Back function
    function EmailCallBack(result) {
    email = result; // Set the email to result to use it later in email attachment for retrieving activity Id
    var activityPartyFrom = new Object();
    // Set the From party of the ActivityParty to relate an entity with Email From field
    activityPartyFrom.PartyId = {
    Id: customerId, // id of entity you want to associate this activity with.
    LogicalName: "contact"
    // Set the "activity" of the ActivityParty
    activityPartyFrom.ActivityId = {
    Id: result.ActivityId,
    LogicalName: "email"
    // Now set the participation type that describes the role of the party on the activity).
    activityPartyFrom.ParticipationTypeMask = { Value: 2 }; // 2 means ToRecipients
    // Create the from ActivityParty for the email
    SDK.JScriptRESTDataOperations.Create(activityPartyFrom, "ActivityParty", ActivityPartyFromCallBack, function (error) { alert(error.message); });
    var activityPartyTo = new Object();
    // Set the From party of the ActivityParty to relate an entity with Email From field
    activityPartyTo.PartyId = {
    Id: ownerId, // id of entity you want to associate this activity with.
    LogicalName: "systemuser"
    // Set the "activity" of the ActivityParty
    activityPartyTo.ActivityId = {
    Id: result.ActivityId,
    LogicalName: "email"
    // Now set the participation type that describes the role of the party on the activity). activityPartyTo.ParticipationTypeMask = { Value: 1 }; // 1 means Sender
    // Create the from ActivityParty
    SDK.JScriptRESTDataOperations.Create(activityPartyTo, "ActivityParty", ActivityPartyToCallBack, function (error) { alert(error.message); });
    //ActivityParty From Callback
    function ActivityPartyFromCallBack(result) {
    //ActivityParty To Callback
    function ActivityPartyToCallBack(result) {
    var StringMaker = function () {
    this.parts = [];
    this.length = 0;
    this.append = function (s) {
    this.parts.push(s);
    this.length += s.length;
    this.prepend = function (s) {
    this.parts.unshift(s);
    this.length += s.length;
    this.toString = function () {
    return this.parts.join('');
    var keyStr = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
    function encode64(input) {
    var output = new StringMaker();
    var chr1, chr2, chr3;
    var enc1, enc2, enc3, enc4;
    var i = 0;
    while (i < input.length) {
    chr1 = input[i++];
    chr2 = input[i++];
    chr3 = input[i++];
    enc1 = chr1 >> 2;
    enc2 = ((chr1 & 3) << 4) | (chr2 >> 4);
    enc3 = ((chr2 & 15) << 2) | (chr3 >> 6);
    enc4 = chr3 & 63;
    if (isNaN(chr2)) {
    enc3 = enc4 = 64;
    else if (isNaN(chr3)) {
    enc4 = 64;
    output.append(keyStr.charAt(enc1) + keyStr.charAt(enc2) + keyStr.charAt(enc3) + keyStr.charAt(enc4));
    return output.toString();
    var bdy = new Array();
    var bdyLen = 0;
    function concat2Bdy(x) {
    bdy[bdyLen] = x;
    bdyLen++;
    function encodePdf(params) {
    bdy = new Array();
    bdyLen = 0;
    var retrieveEntityReq = new XMLHttpRequest();
    var pth = Xrm.Page.context.getServerUrl() + "/Reserved.ReportViewerWebControl.axd?ReportSession=" + params[0] + "&Culture=1033&CultureOverrides=True&UICulture=1033&UICultureOverrides=True&ReportStack=1&ControlID=" + params[1] + "&OpType=Export&FileName=Public&ContentDisposition=OnlyHtmlInline&Format=PDF";
    retrieveEntityReq.open("GET", pth, false);
    retrieveEntityReq.setRequestHeader("Accept", "*/*");
    retrieveEntityReq.send();
    BinaryToArray(retrieveEntityReq.responseBody);
    return encode64(bdy);
    </SCRIPT>
    <SCRIPT type=text/vbscript>
    Function BinaryToArray(Binary)
    Dim i
    ReDim byteArray(LenB(Binary))
    For i = 1 To LenB(Binary)
    byteArray(i-1) = AscB(MidB(Binary, i, 1))
    concat2Bdy(AscB(MidB(Binary, i, 1)))
    Next
    BinaryToArray = byteArray
    End Function
    </SCRIPT>
    </head>
    <body>
    <input type="button" onclick="createAttachment();" value="Attach Report" />
    </body>
    </html>
    Thanks. and waiting for your valuable comments.
    - Mittal

    Hello,
    Yes, I was able to make my code working as below. Tested on CRM online 2013.
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <title></title>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.4.1/jquery.min.js"></script>
    <script type="text/javascript">
    if (typeof (SDK) == "undefined")
    { SDK = { __namespace: true }; }
    SDK.JScriptRESTDataOperations = {
    _context: function () {
    if (typeof GetGlobalContext != "undefined")
    { return GetGlobalContext(); }
    else {
    if (typeof Xrm != "undefined") {
    return Xrm.Page.context;
    else { return new Error("Context is not available."); }
    _getServerUrl: function () {
    var serverUrl = this._context().getServerUrl()
    if (serverUrl.match(/\/$/)) {
    serverUrl = serverUrl.substring(0, serverUrl.length - 1);
    return serverUrl;
    _ODataPath: function () {
    return this._getServerUrl() + "/XRMServices/2011/OrganizationData.svc/";
    _errorHandler: function (req) {
    return new Error("Error : " +
    req.status + ": " +
    req.statusText + ": " +
    JSON.parse(req.responseText).error.message.value);
    _dateReviver: function (key, value) {
    var a;
    if (typeof value === 'string') {
    a = /Date\(([-+]?\d+)\)/.exec(value);
    if (a) {
    return new Date(parseInt(value.replace("/Date(", "").replace(")/", ""), 10));
    return value;
    Create: function (object, type, successCallback, errorCallback) {
    var req = new XMLHttpRequest();
    req.open("POST", this._ODataPath() + type + "Set", true);
    req.setRequestHeader("Accept", "application/json");
    req.setRequestHeader("Content-Type", "application/json; charset=utf-8");
    req.onreadystatechange = function () {
    if (this.readyState == 4 /* complete */) {
    if (this.status == 201) {
    successCallback(JSON.parse(this.responseText, SDK.JScriptRESTDataOperations._dateReviver).d);
    else {
    errorCallback(SDK.JScriptRESTDataOperations._errorHandler(this));
    req.send(JSON.stringify(object));
    Retrieve: function (id, type, successCallback, errorCallback) {
    var req = new XMLHttpRequest();
    req.open("GET", this._ODataPath() + type + "Set(guid'" + id + "')", true);
    req.setRequestHeader("Accept", "application/json");
    req.setRequestHeader("Content-Type", "application/json; charset=utf-8");
    req.onreadystatechange = function () {
    if (this.readyState == 4 /* complete */) {
    if (this.status == 200) {
    successCallback(JSON.parse(this.responseText, SDK.JScriptRESTDataOperations._dateReviver).d);
    else {
    errorCallback(SDK.JScriptRESTDataOperations._errorHandler(this));
    req.send();
    Update: function (id, object, type, successCallback, errorCallback) {
    var req = new XMLHttpRequest();
    req.open("POST", this._ODataPath() + type + "Set(guid'" + id + "')", true);
    req.setRequestHeader("Accept", "application/json");
    req.setRequestHeader("Content-Type", "application/json; charset=utf-8");
    req.setRequestHeader("X-HTTP-Method", "MERGE");
    req.onreadystatechange = function () {
    if (this.readyState == 4 /* complete */) {
    if (this.status == 204 || this.status == 1223) {
    successCallback();
    else {
    errorCallback(SDK.JScriptRESTDataOperations._errorHandler(this));
    req.send(JSON.stringify(object));
    Delete: function (id, type, successCallback, errorCallback) {
    var req = new XMLHttpRequest();
    req.open("POST", this._ODataPath() + type + "Set(guid'" + id + "')", true);
    req.setRequestHeader("Accept", "application/json");
    req.setRequestHeader("Content-Type", "application/json; charset=utf-8");
    req.setRequestHeader("X-HTTP-Method", "DELETE");
    req.onreadystatechange = function () {
    if (this.readyState == 4 /* complete */) {
    if (this.status == 204 || this.status == 1223) {
    successCallback();
    else {
    errorCallback(SDK.JScriptRESTDataOperations._errorHandler(this));
    req.send();
    RetrieveMultiple: function (type, filter, successCallback, errorCallback) {
    if (filter != null) {
    filter = "?" + filter;
    else { filter = ""; }
    var req = new XMLHttpRequest();
    req.open("GET", this._ODataPath() + type + "Set" + filter, true);
    req.setRequestHeader("Accept", "application/json");
    req.setRequestHeader("Content-Type", "application/json; charset=utf-8");
    req.onreadystatechange = function () {
    if (this.readyState == 4 /* complete */) {
    if (this.status == 200) {
    successCallback(JSON.parse(this.responseText, SDK.JScriptRESTDataOperations._dateReviver).d.results);
    else {
    errorCallback(SDK.JScriptRESTDataOperations._errorHandler(this));
    req.send();
    __namespace: true
    </script>
    <script type="text/javascript">
    //Create Email and link it with Order as Regarding field
    var Xrm;
    var email = new Object();
    var ownerID = "";
    var CustomerId = "";
    if (window.opener) { Xrm = window.opener.Xrm; }
    else if (window.parent) { Xrm = window.parent.Xrm; }
    //Get ownerid who send email of quotation to customer
    function GetOwnerID() {
    var owner = Xrm.Page.getAttribute("ownerid").getValue();
    ownerID = owner[0].id;
    var ownerName = owner[0].name;
    var entityType = owner[0].entityType;
    GetToEmailGUID();
    //Get customerid who receive email of quotation from owner
    function GetToEmailGUID() {
    var Customer = Xrm.Page.getAttribute('customerid').getValue();
    CustomerId = Customer[0].id;
    var CustomerName = Customer[0].name;
    var entityType = Customer[0].entityType;
    //if CustomerId is type of "Account" then get Primary Contact id of that account
    if (entityType == "account") {
    var contact = Xrm.Page.getAttribute("customerid").getValue();
    if (contact === null) return;
    var serverUrl = Xrm.Page.context.getClientUrl();
    var oDataSelect = serverUrl + "/XRMServices/2011/OrganizationData.svc/AccountSet(guid'" + contact[0].id + "')?$select=PrimaryContactId";
    var req = new XMLHttpRequest();
    req.open("GET", oDataSelect, false);
    req.setRequestHeader("Accept", "application/json");
    req.setRequestHeader("Content-Type", "application/json;charset=utf-8");
    req.onreadystatechange = function () {
    if (req.readyState === 4) {
    if (req.status === 200) {
    var retrieved = JSON.parse(req.responseText).d;
    CustomerId = retrieved.PrimaryContactId.Id;
    else {
    alert(this.statusText);
    req.send();
    function CreateEmail() {
    GetOwnerID();
    email.Subject = "Email with Report Attachment";
    //Set The current order as the Regarding object
    email.RegardingObjectId = {
    Id: Xrm.Page.data.entity.getId(), //Get the current entity Id , here OrderId
    LogicalName: Xrm.Page.data.entity.getEntityName()//Get the current entity name, here it will be “salesOrder”
    //Create Email Activity
    SDK.JScriptRESTDataOperations.Create(email, "Email", EmailCallBack, function (error) { alert(error.message); });
    // Email Call Back function
    function EmailCallBack(result) {
    email = result; // Set the email to result to use it later in email attachment for retrieving activity Id
    var activityPartyFrom = new Object();
    // Set the From party of the ActivityParty to relate an entity with Email From field
    activityPartyFrom.PartyId = {
    Id: CustomerId, //"79EBDD26-FDBE-E311-8986-D89D6765B238", // id of entity you want to associate this activity with.
    LogicalName: "contact"
    // Set the "activity" of the ActivityParty
    activityPartyFrom.ActivityId = {
    Id: result.ActivityId,
    LogicalName: "email"
    // Now set the participation type that describes the role of the party on the activity).
    activityPartyFrom.ParticipationTypeMask = { Value: 2 }; // 2 means ToRecipients
    // Create the from ActivityParty for the email
    SDK.JScriptRESTDataOperations.Create(activityPartyFrom, "ActivityParty", ActivityPartyFromCallBack, function (error) { alert(error.message); });
    var activityPartyTo = new Object();
    // Set the From party of the ActivityParty to relate an entity with Email From field
    activityPartyTo.PartyId = {
    Id: ownerID, //"79EBDD26-FDBE-E311-8986-D89D6765B238", // id of entity you want to associate this activity with.
    LogicalName: "systemuser"
    // Set the "activity" of the ActivityParty
    activityPartyTo.ActivityId = {
    Id: result.ActivityId,
    LogicalName: "email"
    // Now set the participation type that describes the role of the party on the activity).
    activityPartyTo.ParticipationTypeMask = { Value: 1 }; // 1 means Sender
    // Create the from ActivityParty
    SDK.JScriptRESTDataOperations.Create(activityPartyTo, "ActivityParty", ActivityPartyToCallBack, function (error) { alert(error.message); });
    //ActivityParty From Callback
    function ActivityPartyFromCallBack(result) {
    //ActivityParty To Callback
    function ActivityPartyToCallBack(result) {
    GetReportId('Quotation');
    //Create attachment for the created email
    function CreateEmailAttachment() {
    //get reporting session and use the params to convert a report in PDF
    var params = getReportingSession();
    //Email attachment parameters
    var activitymimeattachment = Object();
    activitymimeattachment.ObjectId = Object();
    activitymimeattachment.ObjectId.LogicalName = "email";
    activitymimeattachment.ObjectId.Id = email.ActivityId;
    activitymimeattachment.ObjectTypeCode = "email",
    activitymimeattachment.Subject = "File Attachment";
    activitymimeattachment.Body = encodePdf(params);
    activitymimeattachment.FileName = "Report.pdf";
    activitymimeattachment.MimeType = "application/pdf";
    //Attachment call
    SDK.JScriptRESTDataOperations.Create(activitymimeattachment, "ActivityMimeAttachment", ActivityMimeAttachmentCallBack, function (error) { alert(error.message); });
    //ActivityMimeAttachment CallBack function
    function ActivityMimeAttachmentCallBack(result) {
    var features = "location=no,menubar=no,status=no,toolbar=no,resizable=yes";
    var width = "800px";
    var height = "600px";
    window.open(Xrm.Page.context.getServerUrl() + "main.aspx?etc=" + 4202 + "&pagetype=entityrecord&id=" + email.ActivityId, "_blank", features);
    // To open window which works in outlook and IE both
    //openStdWin(Xrm.Page.context.getServerUrl() + "main.aspx?etc=" + 4202 + "&pagetype=entityrecord&id=" + email.ActivityId, "_blank", width, height, features);
    //This method will get the reportId based on a report name that will be used in getReportingSession() function
    function GetReportId(reportName) {
    var oDataSetName = "ReportSet";
    var columns = "ReportId";
    var filter = "Name eq '" + reportName + "'";
    retrieveMultiple(oDataSetName, columns, filter, onSuccess);
    function retrieveMultiple(odataSetName, select, filter, successCallback) {
    var serverUrl = Xrm.Page.context.getServerUrl();
    var ODATA_ENDPOINT = "/XRMServices/2011/OrganizationData.svc";
    var odataUri = serverUrl + ODATA_ENDPOINT + "/" + odataSetName + "?";
    if (select) {
    odataUri += "$select=" + select + "&";
    if (filter) {
    odataUri += "$filter=" + filter;
    $.ajax({
    type: "GET",
    contentType: "application/json; charset=utf-8",
    datatype: "json",
    url: odataUri,
    beforeSend: function (XMLHttpRequest) {
    XMLHttpRequest.setRequestHeader("Accept", "application/json");
    success: function (data) {
    if (successCallback) {
    if (data && data.d && data.d.results) {
    successCallback(data.d.results);
    else if (data && data.d) {
    successCallback(data.d);
    else {
    successCallback(data);
    error: function (XmlHttpRequest, errorThrown) {
    if (XmlHttpRequest && XmlHttpRequest.responseText) {
    alert("Error while retrieval ; Error – " + XmlHttpRequest.responseText);
    function onSuccess(data) {
    reportId = data[0].ReportId.replace('{', ").replace('}', ");
    CreateEmailAttachment(); // Create Email Attachment
    //Gets the report contents
    function getReportingSession() {
    var pth = Xrm.Page.context.getServerUrl() + "/CRMReports/rsviewer/reportviewer.aspx";
    var retrieveEntityReq = new XMLHttpRequest();
    var Id = Xrm.Page.data.entity.getId();
    var quotationGUID = Id.replace('{', ""); //set this to selected quotation GUID
    quotationGUID = quotationGUID.replace('}', "");
    var reportName = "Quotation"; //set this to the report you are trying to download
    var reportID = "7C39D18F-1DC6-E311-8986-D89D6765B238"; //set this to the guid of the report you are trying to download
    var rptPathString = ""; //set this to the CRMF_Filtered parameter
    var strParameterXML = "<fetch version='1.0' output-format='xml-platform' mapping='logical' distinct='false'><entity name='quote'><all-attributes /><filter type='and'><condition attribute='quoteid' operator='eq' uitype='quote' value='" + quotationGUID + "' /> </filter></entity></fetch>";
    retrieveEntityReq.open("POST", pth, false);
    retrieveEntityReq.setRequestHeader("Accept", "*/*");
    retrieveEntityReq.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
    rptPathString = "id=%7B" + reportID + "%7D&uniquename=" + Xrm.Page.context.getOrgUniqueName() + "&iscustomreport=true&reportnameonsrs=&reportName=" +
    reportName + "&isScheduledReport=false&p:CRMAF_Filteredquote=" + strParameterXML;
    //remove the part starting from &p:salesorderid if your report has no parameters
    retrieveEntityReq.send(rptPathString);
    var x = retrieveEntityReq.responseText.indexOf("ReportSession=");
    var ret = new Array();
    ret[0] = retrieveEntityReq.responseText.substr(x + 14, retrieveEntityReq.responseText.indexOf("&", x) - x - 14); //the session id
    x = retrieveEntityReq.responseText.indexOf("ControlID=");
    ret[1] = retrieveEntityReq.responseText.substr(x + 10, retrieveEntityReq.responseText.indexOf("&", x) - x - 10); //the control id
    return ret;
    var bdy = new Array();
    var bdyLen = 0;
    function concat2Bdy(x) {
    bdy[bdyLen] = x;
    bdyLen++;
    function encodePdf(params) {
    bdy = new Array();
    bdyLen = 0;
    var retrieveEntityReq = new XMLHttpRequest();
    var pth = Xrm.Page.context.getServerUrl() + "/Reserved.ReportViewerWebControl.axd?ReportSession=" + params[0] +
    "&Culture=1033&CultureOverrides=True&UICulture=1033&UICultureOverrides=True&ReportStack=1&ControlID=" + params[1] +
    "&OpType=Export&FileName=Public&ContentDisposition=OnlyHtmlInline&Format=PDF";
    retrieveEntityReq.open("GET", pth, false);
    retrieveEntityReq.setRequestHeader("Accept", "*/*");
    retrieveEntityReq.send();
    BinaryToArray(retrieveEntityReq.responseBody);
    return encode64(bdy);
    var StringMaker = function () {
    this.parts = [];
    this.length = 0;
    this.append = function (s) {
    this.parts.push(s);
    this.length += s.length;
    this.prepend = function (s) {
    this.parts.unshift(s);
    this.length += s.length;
    this.toString = function () {
    return this.parts.join('');
    var keyStr = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
    function encode64(input) {
    var output = new StringMaker();
    var chr1, chr2, chr3;
    var enc1, enc2, enc3, enc4;
    var i = 0;
    while (i < input.length) {
    chr1 = input[i++];
    chr2 = input[i++];
    chr3 = input[i++];
    enc1 = chr1 >> 2;
    enc2 = ((chr1 & 3) << 4) | (chr2 >> 4);
    enc3 = ((chr2 & 15) << 2) | (chr3 >> 6);
    enc4 = chr3 & 63;
    if (isNaN(chr2)) {
    enc3 = enc4 = 64;
    } else if (isNaN(chr3)) {
    enc4 = 64;
    output.append(keyStr.charAt(enc1) + keyStr.charAt(enc2) + keyStr.charAt(enc3) + keyStr.charAt(enc4));
    return output.toString();
    </script>
    <script type="text/vbscript">
    Function BinaryToArray(Binary)
    Dim i
    ReDim byteArray(LenB(Binary))
    For i = 1 To LenB(Binary)
    byteArray(i-1) = AscB(MidB(Binary, i, 1))
    concat2Bdy(AscB(MidB(Binary, i, 1)))
    Next
    BinaryToArray = byteArray
    End Function
    </script>
    </head>
    <body>
    <input type="button" onclick="CreateEmail();" value="Attach Report" />
    </body>
    </html>
    Thank you,
    Mittal.

  • Unable to open URL attachment from SBWP in CRM WEB UI

    Hello Gurus,
    Need your help please. I'm having some problem opening the URL attachment from SBWP via CRM 7 WEB UI (I used a Transaction Launcher for SBWP). The attachment is a Webdynpro application.  I am able to open the attachment in SAP GUI, but not in CRM WEBUI. This problem occured when we update the SP level of CRM 7.
    Here's the scenario,
    - whenever I click the attachment, it open a new window, which also happen even before SP level update, with the following information:
      Execute an Application on FrontEnd
      Please wait. You will be forwarded automatically.
      This page is included for technical reason.
      Execute program.
      Status: Displaying Office Document ..........
      After a couple of seconds, it will return to the Workflow Workplace screen.
    I have checked the workflow log and found no inconsistency on the attached URL.
    Immediate response would be highly appreciated. Thanks in advance.
    Regards,
    Edwin

    Thanks for the reply WD ABAP.
    Yes, I did try to use the functionality of Worklist and the URL attachment successfully opened. However, there are some limitation in its functionality as indicated in the link below that opted us to use the SBWP in CRM WEB UI via transaction launcher.
    http://wiki.sdn.sap.com/wiki/display/CRM/CRMWorklist-AdvancewithDialognotSupported
    We don't want to adjust the logic of our existing workflow at this point as described in the above link as it will entails end-to-end testing again. We just encountered this issue when we update the SP level of CRM 7.
    Hope there is an alternative solution without shifting us to Worklist.
    Regards,
    Edwin

  • How to show filtered parameter in dropdown form in crm 2013

    Hi,
    I want to create a report in crm 2013. When I report is run then filtered parameter fill record from database in dropdown form and when I select record from dropdown then generate report of selected record. Please tell me how to show record in filtered parameter
    from database within crm. In below image paramter is text field. How to auto fill filtered parameter from database.

    Hi Aamir,
    Check if the below link helps!!
    https://social.microsoft.com/Forums/en-US/ad8a3bc2-dbec-4597-adfd-8bd6c34f5e9a/drop-down-parameter-in-crm-2011-custom-report?forum=crm
    Thanks,
    Prasad
    Make sure to "Vote as Helpful" and "Mark As Answer",if you get answer of your question.

  • Dynamic Hyperlink in SSRS 2008 for CRM 2013 online

    Hi All,
    I have a report which displays contact name and  contactid from contact table 
    I need a link to the contact name which open the CRM record
    Is this possible ?
    Any suggestion most appreciated
    Thanks
    Pradnya07

    Hi
    i been using this url for help
    http://h30507.www3.hp.com/t5/Applications-Services-Blog/Microsoft-Dynamics-CRM-2013-SSRS-drill-down-reports-Part-II/ba-p/149943
    but it didnt worked i get the below error
    Any help much appreciated
    Thanks
    Pradnya07

  • App-V CRM 2013 Outlook Client and Office 2013 Click to Run

    Hi,
    I'm trying to get going with enbing the CRM 2013 for Outlook client with the VL version of Office Pro Plus 2013.  I have successfully published and use Office App-V package in a test environment.  App-V version 5.0 SP2 is installed on the client
    PC (Windows 7 64bit).  SCCM 2012 R2 is used to publish APP-V applications to user groups.
    I have sequenced the CRM 2013 Outlook client (offline mode disabled) with UR2 and published it using SCCM as a "Add-on or Plug-in.  I've also created a connection group so that the App-V version of Office 2013 is able to connect to the sequenced
    CRM client.  The client installs successfully, but the CRM tab doesn't appear in the Outlook Ribbon, and the Configuration Wizard crashes each time it is launched.  The App-V event log is blank (which I'm taking to be a good sign).  All CRM
    client prerequisites have been preinstalled on the target PC.
    I'm thinking that the CRM client can't see the Outlook application and therefore crashes and doesn't integrate with the Outlook application.  Problem Signature 09 (from the crash explanation) states "System.NullReference Exception".
    I can't seem to find much out there for sequencing the 2013 version of the client.  Has any else managed this yet or have any ideas where I'm going wrong?
    Thanks,
    Tim

    Hello,
    I would use Process Monitor to understand what happens and to see why Outlook isn't seeing the plugin, and why the wizard is crashing
    Nicke Källén | The Knack| Twitter:
    @Znackattack

Maybe you are looking for

  • How do I get to a JPEG?

    Hi, I shot some photos with the camera set to save RAW & JPEG and imported them into LR, converting the RAW to DNG as it came in. The shots are just for mucking about with LR. The Library shows one photo. If I set the Library view to show photo (file

  • Musical Rubiks Cube

    Can anyone pose the solution to this problem: I am composing a piece synced to picture that consists of 1musical note for 1 shot. there are 14 shots. i am tempo mapping everything and my 14 note melody is finished. the kicker is it "rewinds", then pl

  • Design Help- Persistance Rebalance in ACE

    Hi, I need one suggestion from you. I have 2 servers that need to be load balanced. Real Server 1 IP Address: 10.10.10.10 Realo Server 2 IP Address: 10.10.10.11 VIP: 10.10.10.100 My requirement is: Real Server will raise request (loopback request as

  • Needing to migrate/upgrade NSM 3.02.76 from OES2 to OES11

    Currently running on OES2 SP2a server. NSM version 3.0.2.76 Need to upgrade to new server. New server is OES11 SP1. Also would like to upgrade to latest NSM version. Do I need to upgrade in place now and then move to new server? Can OES2 SP2a even ru

  • Setting up connection issues

    Hi, I was able to create the master repository. Everything went successful. Then I went in the topology Manager to create one connection for Master. The connection was successful but when I hit OK I got the errors below. Please help. Chanduwar java.i