Tracking status in CRM-online of MUP in error for MSA clients

Hi,
We are using the Upgrade console to distribute MSA application updates via the middleware.
When these are in error, a status entry and log file errors are put back into the CRM-online tables SMOGSYSMP and SMOGSYSMON.
Has anyone written any ABAP's to interpret these tables into a more readable format?
Thanks,
Graham

Hi Simran08,
According to your description, you fail to add your report to CRM due to the custom code. Right?
In this scenario, based on my knowledge, I find two issues in your custom code.
You pass the array Items as argument to the function. This array is from the LookupSet() function. However, it returns an concatenated string with commas. When you convert it into decimal, it will throw error.
In your For Each loop part, we should follow the format below:
For Each element In group
[statements]
[Exit For]
[statements]
Next [element]
It seems you miss Item after Next.
If you still have any question, please feel free to ask.
Best Regards,
Simon Hou

Similar Messages

  • Cannot view SharePoint Online documents through CRM Online Outlook Connector - iframe error

    We are integrating CRM 2013 Online with SharePoint 2013 Online. We have installed the CRM List Component solution. We have also modified the SharePoint master page to permit display of SharePoint content in iframes. We can view SharePoint documents within
    CRM using Internet Explorer after setting the Documents link for an opportunity to point to a document set in SharePoint. However we cannot view documents through the CRM Outlook Connector. We receive the error that "This content cannot be displayed in
    a frame".
    We have tried adding *.sharepoint.com, *.dynamics.com, and *.microsoftonline.com to IE's Trusted Zone with no effect.
    The application launched by the Outlook Connector is called Microsoft.Crm.Application.Outlook.WebFormsHost and it's my understanding that it uses the IE engine to render online content.
    Is there anyway to view SharePoint content embdedded in CRM via an iframe with the Outlook Connector?

    I have the same problem here.
    The integration works fine outside of Outlook, but if, for example, an account is opened within CRM for Outlook the error occurs.
    - No masterpage modification
    - Some security setting in IE 11 (perhaps IE 11 is the problem)
    - Installed the solution in the used site collection
    - Configured CRM settings
    Dirk

  • Communicate (CRUD) with CRM Online from SharePoint Online

    Hi,
    I'm working on an offer to a client where I'm considering if I'll recommend SharePoint Online.
    Most of the requirements from the client are out of the box SharePoint and doesn't affect the decision to go for SharePoint Online. However, the client has one requirement, which is that they need to be able to update Entities/records in their CRM Online
    solution from SharePoint. I'm not sure how those updates should be triggered, but my guess is it should be triggered when an item in a list/document library changes it's status (a status field). This would probably require custom development of some sort (Event
    Receiver? Workflow?) which uses the CRM web services.
    Is this even possible in SP Online?
    I've done a lot of searching for this in Google, but haven't found anything interesting yet. I come across solutions for integration the other way though (FROM CRM to SharePoint), but I need integration with CRM FROM SharePoint.
    Thanks!

    Hi,
    According to your post, my understanding is that you want to communicate SharePoint Online and CRM Online.
    We can use the Business Connectivity Services (BCS) to communicate SharePoint Online (SPO) to CRM Online.
    The following blog for your reference:
    http://blogs.msdn.com/b/girishr/archive/2013/05/13/connecting-sharepoint-online-and-crm-online-using-bcs-2013-edition.aspx
    Best Regards
    Dennis Guo
    TechNet Community Support

  • We have office 365 subscription and we need to merge our Microsoft Dynamics CRM online subscription to office

    Hi,
                 We have office 365 subscription and we need to merge our Microsoft Dynamics CRM online subscription to office 365
     For organization:  Softtrends Software Pvt Ltd (https://softtrendssoftwarepvtltd.crm5.dynamics.com)
    Office 365 organization :  Softtrends Software Private Limited
     [email protected]

    Hi there,
    If you already have two different Microsoft Online services accounts, then this is no easy task. If you sign up for two Microsoft Online services, using two different Microsoft Online services ID's, you basically need to choose which one to throw away, and
    then do a migration from one to another.
    If you have a lot of data in both of them, you could cross your fingers, and make a Service Request to Microsoft, hoping that they could do some magic for you, or at least tell you which migration track that's the easiest one.
    The important part is that you first sign in to the service you want to keep, and then register for a new one using Sign in, in stead of Sign up. This way they are automatically liked to the same Windows Azure Active Directory tenant.
    I hope I understood your question, and was able to help you here.
    /Anders Eide

  • CRM ONLINE 2013: On Approval Of Quotation, Run Report, Generate PDF and Send an Email With PDF as attachment

    Hi,
    I am using CRM ONLINE 2013.
    How to automate below process?
    1. On Approval Of Quotation, Run Report.
    2. Generate PDF.
    3. Send an Email With PDF as attachment.
    As i have gone through many forums for this topic, but creating a plugin code for generating Report PDF is not possible in CRM ONLINE.
    So, What is the alternate way to do this..?
    Thanks.

    This is my entire code mentioned below:-
    <!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" 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('ABM_Infotech_SalesQuote');
            //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 = "Report1.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 = "ABM_Infotech_SalesQuote"; //set this to the report you are trying to download
                var reportID = "751089AA-74B8-E211-B52F-D8D3855B253B"; //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:ABMFilteredQuote=" + 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>

  • Not able to connect CRM Online to PowerBI

    Not able to connect CRM Online to PowerBI, Please let me know if you have an idea to resolve this issue.
    oops, something went wrong
    Failed to update model parameters
    Activity Id59a2a854-8e34-6636-0679-3d2e245d2241
    Request Id9b7fa606-324e-4ec8-495f-13f91d03bc54
    Error Code400
    TimeWed Mar 18 2015 21:24:18 GMT-0400 (Eastern Daylight Time)
    Version11.0.9165.945
    Cluster URIhttps://wabi-south-east-asia-redirect.analysis.windows.net

    Hi Kiran
    Please chcek the Note 1359600-MDM stopped communicating after upgrading to 7.1.03 from SAP NOTES.
    https://websmp230.sap-ag.de/sap(bD1lbiZjPTAwMQ==)/bc/bsp/spn/sapnotes/index2.htm?numm=1359600
    SAP Note Description:
    Summary
    Symptom
    MDM components stopped communicating after upgrading to 7.1.03
    Other terms
    TCP ports, Firewall, connection, network, SP03, SP3, 7.1
    Reason and Prerequisites
    Starting from version 7.1.03 the MDM suite is using different TCP ports for its operations. The change was in order to be compliant with the Internet Authority for Numbering Assignment. Port numbers changed as follows:
    Application Old Port # New Port #
    MDS 20005 59950
    MDLS 20008 59650
    MDIS 20009 59750
    MDSS 20010 59850
    If firewalls were configured to allow MDM's communication throughout the landscape, they actually might prevent (depending on their rules table) the communication after an upgrade to MDM suite starting at version 7.1.03 and higher.
    Solution
    Revise the firewall rules such that they will allow the communication according to the changes described above.
    In order to check that the ports are allowed to pass trough the firewall a telnet test could be done like so:
    1) Open a terminal window (on UNIX) or a command window (on Windows) on the same machine which hosts the application which tries to connect, and issue the following command:
    telnet <MDM server host name or IP address> <TCP port to test>
    2) If no error response is received than it means that the TCP port is allowed to go trough.
    3) Repeat steps 1,2 for all the other ports need by the application.
    Thanks
    Sowseel
    Edited by: sowseel pasumarthi on Jan 18, 2011 6:36 AM

  • Error while uploading report in Microsoft Dynamics CRM Online

    I have created a report using fetch-xml query for Microsoft Dynamics CRM Online. In this field, I have created a custom enity which has "Last Accessed Date Time" field of type "DateTime". This field stores the value in GTM. I am retrieving
    the value of this field using fetch-xml query. Also, I want to calculate the difference between the current DateTime and the value (in the locale and not in GMT) of this field in "Hours Minutes Seconds" format. I
    have written an expression for the same in reportas follows.
    (IIF(((INT((DateDiff(DateInterval.Second, DateTime.SpecifyKind(DateTime.Parse(Fields!new_lastaccesseddatetime.Value), DateTimeKind.Utc).ToLocalTime(), DateTime.Now))/60))>60), INT(((((DateDiff(DateInterval.Second, DateTime.SpecifyKind(DateTime.Parse(Fields!new_lastaccesseddatetime.Value),
    DateTimeKind.Utc).ToLocalTime(), DateTime.Now)))/60)) / 60), 0))
    & "Hours"&
    (IIF(((INT((DateDiff(DateInterval.Second, DateTime.SpecifyKind(DateTime.Parse(Fields!new_lastaccesseddatetime.Value), DateTimeKind.Utc).ToLocalTime(), DateTime.Now))/60))>60), INT((((DateDiff(DateInterval.Second,DateTime.SpecifyKind(DateTime.Parse(Fields!new_lastaccesseddatetime.Value),
    DateTimeKind.Utc).ToLocalTime(), DateTime.Now)))/60) Mod 60), INT((DateDiff(DateInterval.Second, DateTime.SpecifyKind(DateTime.Parse(Fields!new_lastaccesseddatetime.Value), DateTimeKind.Utc).ToLocalTime(), DateTime.Now))/60)))
    & "Minutes" &
    ((DateDiff(DateInterval.Second, DateTime.SpecifyKind(DateTime.Parse(Fields!new_lastaccesseddatetime.Value), 
    DateTimeKind.Utc).ToLocalTime(), DateTime.Now)) Mod 60)
    & "Seconds"
    This works fine in visual studio. But, when tried to upload the same report in CRM Online organization, it gives the following error.
    Any idea how to solve this issue?

    I have found the following useful link-
    - support.microsoft.com/.../en-us
    The error occurred because I have used some functions("Int", "DateTime.SpecifyKind(DateTime.Parse(Fields!new_lastaccesseddatetime.Value), DateTimeKind.Utc).ToLocalTime()") in my ssrs report which are not supported by CRM Online., though
    it works fine in visual studio.

  • What are the different tools and techniques available to track analytics in SharePoint online 2013?

    I want to know What are the different tools and techniques available to track analytics in SharePoint online 2013. Please provide your suggestions/ inputs. Thanks in advance.

    you can Use the Web Analytics Integration app  to
    connect your SharePoint Online public website to third-party web analytics services, such as Webtrends, Google Analytics, Adobe, and so on.
    Google Analytics
    Webtrends for SharePoint
    CARDIOLOG ANALYTICS
    Please remember to mark your question as answered &Vote helpful,if this solves/helps your problem. ****************************************************************************************** Thanks -WS MCITP(SharePoint 2010, 2013) Blog: http://wscheema.com/blog

  • Groupware Transaction is rejected in CRM Online

    Hello All,
    Appointments and Tasks are replicating fine from CRM to Groupware.
    But when I create an appointment in Groupware ( in our case Lotus ), I get an email from the CRMAdmin saying 'Transaction is rejected in CRM Online'
    Does anyone know how to solve this issue.
    Thanks.
    Pratima

    Hi Pratima,
    You can try activating the power user mode in admin tool and create an activity and check for the error logs.
    Error log may help you pointing towards the error.
    Else check if this has groupware role still assigned or not?
    You may also check the user id and password you have given in Lotus config tool is not locked.
    Regards...Arup

  • Appointment - Transaction is rejected in CRM online

    Hello,
    When creating an appointment in my CRM calendar i get an email from the admin account set for groupware connector with a link of the appointment. It does synchronise in my calendar successfully but i want to disable the email that i am getting. Sometime also i get an a message Transaction is rejected in CRM online .
    I have been looking for a while to disable this function but can't seem to find any informations regarding this issue.
    I noticed those messages appear in the Outbox of the groupware connector account in Exchange 2007. If anyone had a similar issue let me know how you resolved it. I want to be able to disable the message that are generated when i create an appointment in my CRM calendar.
    SAP CRM 7.0
    SAP Groupware Connector 2.1
    Exchange 2007 (Outlook 2007)
    Thank you,
    Martin

    for your issue "email from the admin account set for groupware connector with a link of the appointment. It does synchronize in my calendar successfully "
    you have go to CRM Middleware and Related Components>CRM Middleware and Related Components>Groupware Integration>Maintain General Groupware Settings
    set value         ACT HOSTNAME XXX.XXXX.COM (check SMICM for your CRM link.)
    you can also disable this function set value   ACT NO_BSP_URL            X
    for issue "Sometime also i get an a message Transaction is rejected in CRM online "
    This issue might got when you create Appointment in OUTLOOK , if you check middleware entry from GWCONNECTOR ID,
    yo will see Appointment transaction  type is missing for incoming entry .you can use BADI  "CMW_GW_ACT_IN" to set transaction type onte basis catagory "'CRM_ACT 301(Date)'".
    i hope your issue will resolved.
    regard ,
    vijay

  • JavaScript files are not being updated while updating managed solution over Dynamics CRM Online

    Hi Support,
    While I am updating a managed solution over Dynamics CRM 2013 Online, JavaScript files are not being updated and is showing the source as of the last version of the managed solution. 
    I tried the same versions of solution on my CRM 2013 on-premise install (test organization) and it updated successfully.
    This is a bit urgent issue. Please suggest how to resolve this.
    Online version of the CRM is
    Microsoft Dynamics® CRM Online Spring '14
    (6.1.1.1855) (DB 6.1.1.1847)
    blog: <a href="http://technologynotesforyou.wordpress.com">http://technologynotesforyou.wordpress.com</a> | skype: ali.net.pk

    Our technical team managed to find the immediate cause for the problem, and a solution.
    According to them there was a corruption on a speciffic OLAP file. By deleting it, they allowed it to be recreated on the next application processing. The file in question was found in \Microsoft SQL Server\MSSQL.2\OLAP\Data\UGF.0.db\<APPLICATION>.38.cub.xml
    Where <APPLICATION> is the name of the problematic cube.
    After that everything is working.

  • User Status Replication-CRM to R/3

    HI Gurus
    Our requirement is to replicate the Item level user statuses in CRM Service order to R/3.We will use BADI- CRM_DATAEXCHG_BADI and methodCRM_DATAEXCH_AFTER_MBDOC_FILL.
    Would appreciate if you can let me know how to fill the item status information into the MBDOC.By this,I mean which component to use pertaining to item level user status to fetch the info.
    Thanks in advance
    Madhav

    Use FM CRM_STATUS_READ
    Hope it helps.
    Lokesh
    PS. Pls. reward helpful posts.

  • Fetch-Xml based report (to count User Access in the last 6 months ) for Microsoft Dynamics CRM Online

    Hi,
    I have created a User Access report for CRM on-premise using SQl query in the following format. One row corresponds to one user in organization. Currently, I am using Microsoft Dynamics CRM Online trial version and have two users in my organization.
    I want to the same report for CRM Online environment. Only Fetch-Xml based custom reports are supported by CRM online environment hence this SQL query cannot be used.
    I have already written fetch-xml query to retrieve user access records ("audit" entity records) in "last-x-months" (where x = 1,2,3,4,5,6) as below.
    I am able to retrieve the records with "last-x-months" condition at a time, for example, the last-2-months  in my fetch-xml query only.
    For, example, when I retrieve the records in the last-2-months, it also includes the records in the last month. I want to count the records in the 2nd month only that is the difference between these two. The difference will be my 2nd column.
    Similarly, I want the other columns.  
    For the case in the above example, I have created the two separate datasets to get the record-count for the last month and last-2-months. But, I am not able to use the two datasets in the same table in my report and hence not able to calculate the difference.
    Is there any way to solve this problem?

    Hi,
    I have modified my Fetch-XML query to retrieve all the required User Access records and removed aggregation and counting and grouping from the query as well. Did grouping and counting in SSRS. Now the report works fine as shown in the above picture.

  • How to get count of all records of all entities in CRM Online

    Hi,
     I want to get count of all records entitywise in dynamics CRM 2013 online. I know we can count the records in CRM on-premise using a SQL query in report. Earlier I wrote a SSRS report to count the records in a CRM entity wise  as displayed in
    the screenshot below..
    Can someone suggest me a good approach to implement the same in CRM Online. 
    Thanks
    Pratibha Singh

    Hello,
    In a CRM Online environment, you need to create reports based on Fetch XML. Take a look at this link to create a Fetch XML query with aggregates: https://msdn.microsoft.com/en-us/library/gg309565.aspx?f=255&MSPPError=-2147217396#count .
    Here is an example to create a report in an online environment: http://edwardsdna.com/2012/12/03/crmonline-report/
    Hope it helps,
    Kind regards

  • Custom code in SSRS gives error when uploaded to report in CRM online

    Hi All;
    Below is my custom code 
    Function SumLookup(ByVal items As Object()) As Decimal
    If items Is Nothing Then
    Return Nothing
    End If
    Dim suma As Decimal = New Decimal()
    Dim ct as Integer = New Integer()
    suma = 0
    ct = 0
    For Each item As Object In items
    suma += Convert.ToDecimal(item)
    ct += 1
    Next
    If (ct = 0) Then return 0 else return suma
    End Function
    and this code is used in 
    =Code.SumLookup(LookupSet(Fields!new_mainprogrammeid.Value & "," &
    Fields!new_subprogrammeid.Value & "," &
    Fields!new_outputs.Value & "," &
    Fields!new_claimmonthid.Value,
    Fields!new_mainprogrammeid.Value & "," &
    Fields!new_subprogrammeid.Value & "," &
    Fields!new_outputs.Value & "," &
    Fields!new_claimmonthid.Value,
    Fields!new_fte.Value, "JobOutcome"))
    when this code is uploaded in CRM online report it gives an error 
    below is the error from the log file 
    Unhandled Exception: System.ServiceModel.FaultException`1[[Microsoft.Xrm.Sdk.OrganizationServiceFault, Microsoft.Xrm.Sdk, Version=6.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]]: An error occurred while trying to add the report to Microsoft Dynamics CRM. Try adding the report again. If this problem persists, contact your system administrator.Detail:
    <OrganizationServiceFault xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.microsoft.com/xrm/2011/Contracts">
    <ErrorCode>-2147188072</ErrorCode>
    <ErrorDetails xmlns:d2p1="http://schemas.datacontract.org/2004/07/System.Collections.Generic" />
    <Message>An error occurred while trying to add the report to Microsoft Dynamics CRM. Try adding the report again. If this problem persists, contact your system administrator.</Message>
    <Timestamp>2014-10-07T14:21:25.5823821Z</Timestamp>
    <InnerFault i:nil="true" />
    <TraceText i:nil="true" />
    </OrganizationServiceFault>
    but when i remove the custom code and upload the lookup as below i dont get any error
    =(LookupSet(Fields!new_mainprogrammeid.Value & "," &
    Fields!new_subprogrammeid.Value & "," &
    Fields!new_outputs.Value & "," &
    Fields!new_claimmonthid.Value,
    Fields!new_mainprogrammeid.Value & "," &
    Fields!new_subprogrammeid.Value & "," &
    Fields!new_outputs.Value & "," &
    Fields!new_claimmonthid.Value,
    Fields!new_fte.Value, "JobOutcome"))
    I need to calculate the sum of fte hence needed the custom code
    Any help on this much appreciated
    Thanks
    Pradnya07

    Hi Simran08,
    According to your description, you fail to add your report to CRM due to the custom code. Right?
    In this scenario, based on my knowledge, I find two issues in your custom code.
    You pass the array Items as argument to the function. This array is from the LookupSet() function. However, it returns an concatenated string with commas. When you convert it into decimal, it will throw error.
    In your For Each loop part, we should follow the format below:
    For Each element In group
    [statements]
    [Exit For]
    [statements]
    Next [element]
    It seems you miss Item after Next.
    If you still have any question, please feel free to ask.
    Best Regards,
    Simon Hou

Maybe you are looking for