Hi, Document.getElementById() may require legacy form rendering. developer.mozilla.org/.../getElementById Please mark my comments as answered if this helps. Thanks, Saurabh
↧
Forum Post: RE: How to get text field value in crm 2015 which is coming from Html webresource through javascript?
↧
Blog Post: Power Platform | Exceeding Microsoft Dataflex Pro storage capacity
Today, I wanted to talk about an important message that administrators received via the Microsoft 365 Message Center these days regarding Microsoft Dataflex Pro (fka Common Data Service). It basically introduce actions that are going to occur, if on tenant level you continue to exceed the capacity you´re entitled for via purchased licenses. It reflects to this documentation where changes for exceeding your storage capacity entitlements have already been announced earlier. As outlined in the notification, your first task is to understand your current storage usage. And here is where the new Power Platform Admin Center comes into play. But here´s also where some confusion and questions pop up. This is due to the fact of this task being related to Service Administrators of either Global Admin, Dynamics 365 service admin, Power Platform service admin or Delegated Admins. So it can be complicated for a Global Admin for instance to understand the storage usage in total, as she/he´s not responsible for the Power Platform or the Dynamics 365 maintenance/governance. It certainly can become a struggling part for customers where both Dynamics 365 service admins and Power Platform service admins operate and they need to understand their storage usage. As storage so far is aggregated on the tenant level, and there´s no opportunity to allocate or assign storage that is entitled with specific licensing to a specific environment only. So in practice cannibalizing each others storage is something I do hear a lot from customers asking around better governance and maintenance. Another straight forward example is the amount of environments that have been provisioned additionally to the default environment because of either running Dynamics 365 or Power Platform trials. As the global admin didn´t take action to limit the creation of environments to only service admins – a setting that I am always recommending as a first task for better governance and maintenance – it can be a shocking moment to see the total database storage running out of control as each environment provisioning comes with 1 GB storage consumption. For example taking a look inside my tenant that I am using for customer workshops, personal learning and much more – lucky me, I am not yet in trouble regarding my overall storage consumption. But understanding that my FullPower environment (with Dynamics 365 first party apps installed), my Default environment where a Dataflex Pro has been provisioned because of using Microsoft Power Automate Approvals and my Customer Demo environment where I am hosting typical customer showcases, all share the same storage was tough task first hand. Furthermore, there´re additional environments of different types that I am regular playing around with, such as a Preview environment or certain environments of the type „Trial“ . It is important for each service admin though to understand, that environments of type „Developer“ , „Trial“ , „Support“ or „Preview“ will show up as 0 GB, but you can drill into the details of their storage consumption as well. You can also see this, when you hover over the (i) symbol next to the 0 GB storage as shown in the visual to the left. But there´s even more to understand before taking care of actions, such as reducing storage or even deleting data to be compliant to your limits. First, you need to understand when you´re in deficit. You might argument that it will be shown inside the report showing what is running over in red color. But there´s more due to the fact of storage being split into three different buckets: Database- , Log- and File -storage. Assuming your database consumption is 110 GB, your log consumption 5 GB and your file storage is 200 GB. Your entitled capacity is 100 GB of database, 10 GB of log and 400 GB of file storage. So this tenant is 10 GB over in database usage. And even though there´s a 200 GB file storage left open, the tenant is considered as deficit. So let´s take a look at the other way around. Assuming the File storage consumption is 290 GB, the log file 5 GB and the database 20 GB. The entitlement for this tenant was 100 GB of database, 10 GB of log and 200 GB of file storage. Therefore, this tenant is 90 GB over in file usage. Despite having 85 GB still available (80 GB of database and 5 GB of log), this tenant is also considered to be in deficit. Both scenarios, you being the administrator need to take action and free up storage or consume the capacity add-on storage for the specific type of storage running over. But there´re also scenarios where the report would show storage running out of capacity with a red color, but you would not necessarily need to take action. When is this? Assuming your consumed database storage is 80 GB, your log storage 20 GB and your file storage 200 GB. Your entitlement is 100 GB of database, 10 GB of log and 400 GB of file storage. Therefore you crossed the log file capacity limit with 10 GB over. The tenant itself isn´t in deficit as there´s 20 GB remaining database storage. Note that there´s 200 GB left file storage as well, but this cannot be used to compensate deficits in log- or database storage. To further note, if in above example the database storage consumption would have been at 95 GB instead of 80 GB, this tenant would be in deficit as well. In other words, if your log storage went over, check your remaining database storage and if you might be covered due to the remaining database storage. Also check, if you could reduce database storage first and become compliant again, before paying for additional log file capacity add-on. You might also want to consider, if you have additional projects upcoming which requires further user licenses and purchase those, instead of the add-on(s). Note though, each user license comes with additional entitlements regarding file or database storage but not log storage. Hope this clarifies a couple of upcoming questions regarding above notification. Until next time…
↧
↧
Forum Post: RE: Javascript to prepopulate To field in Email
But I dont have direct access to Contacts(partylist). I have Course as main entity and Paticipants as (Grid), and in participants I have contact lookup. I used web API but its not helping out. var GlobalContact; var GlobalName; var partylist = []; function Gridselected(selectedItems) { debugger; var i = 0; if (selectedItems.length == 1) { //nothing } else { for (var indxIds = 0; indxIds 0 && partylist.length == selectedItems.length) { alert("OpenFormss"); OpenFormss(); } } } function Contactname() { debugger; var req = new XMLHttpRequest(); req.open("GET", Xrm.Page.context.getClientUrl() + "/api/data/v9.1/contacts(" + GlobalContact + ")?$select=fullname", true); req.setRequestHeader("OData-MaxVersion", "4.0"); req.setRequestHeader("OData-Version", "4.0"); req.setRequestHeader("Accept", "application/json"); req.setRequestHeader("Content-Type", "application/json; charset=utf-8"); req.setRequestHeader("Prefer", "odata.include-annotations=\"*\""); req.onreadystatechange = function () { if (this.readyState === 4) { req.onreadystatechange = null; if (this.status === 200) { debugger; var result = JSON.parse(this.response); // var accountid = result["contactid"]; GlobalName = result["fullname"]; } else { alert("error"); Xrm.Utility.alertDialog(this.statusText); } } }; req.send(); } function OpenFormss() { debugger; var entityFormOptions = {}; entityFormOptions["entityName"] = "email"; // Set default values for the Contact form var formParameters = {}; //set To field formParameters["to"] = partylist; // Open the form. Xrm.Navigation.openForm(entityFormOptions, formParameters).then( function (success) { console.log(success); }, function (error) { console.log(error); }); }
↧
Forum Post: Javascript to open email
EntityRelation: Course - participant(Grid)- Contact I have placed a button on Grid to get selected items on button click and from there open an email with the preloaded contacts in the to field. Contact is alookup on Participant, so before adding the contact to party list i need to retrieve the contact based on the participant. I have used the below code, sometimes the code is opening an email with one contacts sometimes as no name, ad sometimes it doesnt open at all. Any leads are appreciated. var GlobalContact; var GlobalName; var partylist = []; function Gridselected(selectedItems) { debugger; var i = 0; if (selectedItems.length == 1) { //nothing } else { for (var indxIds = 0; indxIds 0 && partylist.length == selectedItems.length) { alert("OpenFormss"); OpenFormss(); } } } function Contactname() { debugger; var req = new XMLHttpRequest(); req.open("GET", Xrm.Page.context.getClientUrl() + "/api/data/v9.1/contacts(" + GlobalContact + ")?$select=fullname", true); req.setRequestHeader("OData-MaxVersion", "4.0"); req.setRequestHeader("OData-Version", "4.0"); req.setRequestHeader("Accept", "application/json"); req.setRequestHeader("Content-Type", "application/json; charset=utf-8"); req.setRequestHeader("Prefer", "odata.include-annotations=\"*\""); req.onreadystatechange = function () { if (this.readyState === 4) { req.onreadystatechange = null; if (this.status === 200) { debugger; var result = JSON.parse(this.response); // var accountid = result["contactid"]; GlobalName = result["fullname"]; } else { alert("wer"); Xrm.Utility.alertDialog(this.statusText); } } }; req.send(); } function OpenFormss() { debugger; var entityFormOptions = {}; entityFormOptions["entityName"] = "email"; // Set default values for the Contact form var formParameters = {}; //set To field formParameters["to"] = partylist; // Open the form. Xrm.Navigation.openForm(entityFormOptions, formParameters).then( function (success) { console.log(success); }, function (error) { console.log(error); }); }
↧
Forum Post: RE: Could not find the field for me to use as a Key
Finally, I figured it out as the Issue is the field length of the Single line of Text. The Character length was set to 500. it should be less than 400 characters. When I set to 300 characters, it solved my Issue
↧
↧
Forum Post: RE: Changing System Colours (Colors) In Reports
hey WG, I realised this is VERY OLD. But did you ever come up with a solution? thanks
↧
Forum Post: RE: Read values from Iframe
Hi when i am using this code i am getting null value .Here I am calling this function to onsave event of form . please help i need to get value of "visdate". function Abc(){ var date = Xrm.Page.getControl("WebResource_SlotAvailability").getObject().contentWindow.window.document.getElementById("visdate"); alert(date); }
↧
Forum Post: RE: Read values from Iframe
You Just miss the Value: Var date = Xrm.Page.getControl("WebResource_SlotAvailability").getObject().contentWindow.window.document.getElementById("visdate").value
↧
Forum Post: RE: Read values from Iframe
when i am putting value getting error on form save Var date = Xrm.Page.getControl("WebResource_SlotAvailability").getObject().contentWindow.window.document.getElementById("visdate").value its not working getting undefined error
↧
↧
Forum Post: ADX Studio Sync Problem with Dynamics 365
I'm working on dynamics 365 (9.0.2.3034) On-Prim and ADX Studio7.0.0086 Customer portal. Both are deployed on same machine with Localhost bindings. After record creation from adx portal I'm changing the status reason field or any other fields in CRM change does not reflect on portal unless reset IIS. Is there any configuration issue with AdxStudio and Dynamics 365. Please help to solve this problem. Thanks in advance
↧
Forum Post: RE: How to return value from a WebResource ?
Hello Marco, Since Xrm.Navigation.openWebResource doesn't have any successCallback attribute, how do I trigger the successCallback function when the modal is closed ?
↧
Forum Post: RE: Missing components for a solution after adding a "customer field" can't be found
Hello Dirk, If you created the field and the entity directly inside the solution you are exporting you shouldn't be facing any missing components error (for these entity components at least) If this was created outside the solution that you are trying to export, have you tried to use add all assets? Also, are you exporting this as managed or unmanaged?
↧
Forum Post: RE: How can I prevent performance problem with customized Account form
Hi Allan, Please follow below link of removing data from RecentlyViewedXml field (column) in "UserEntityUISettingsBase" might it can help: " community.dynamics.com/.../one-specific-user-slow" This resolution also helped us , but we have tried it on d365 v8 on premises don't know if it will work for 2011, but you can try, If you found a UserEntityUISettingsBase table remove data firstly for one user who is facing slowness issue, and if it helps you can try for all users. Thanks.
↧
↧
Forum Post: RE: Trying to update Contacts with the correct Account based on coincidence in domain of their email address.
Hi Chris, The pseudo code seems to be correct but it will take time as you are have nested loops which is not optimized. You can get two objects for accounts and contacts and use Find or similar method to find the relevant account. It will be great if we can get both account and contact records in same object using some where clause but the possibility for this is low. You can go with you code if there are no much records and we can also use https://docs.microsoft.com/en-us/dotnet/api/microsoft.xrm.sdk.messages.executemultiplerequest?view=dynamics-general-ce-9 to avoid load on server. Thank you. Best Regards, Mobeen Mohsin
↧
Forum Post: CRM Fom into Temas displays footer at the top
Hi, I have added a customized CRM form into Teams and it display the footer at the top. Did this happen also to any of you? Any workaround other tan removing the footer? Form on Teams Form in dynamics
↧
Forum Post: RE: Show Primary Contact and Contacts(Sub-grid) records in a single Subgrid
Hi Partner, You could use Connect to show both primary contact and child contacts in the same subgrid with different tags. 1.Manually action. For example, I have a Account Datum with primary contact Rene and child contact Susan. a).Create 2 connect roles in Business Management for different contact tags in subgrid. Here I created "Primary Contact" and "Contacts". b).Create a new conncet from account to contact. c).Choose the primary contact Rene in "Name" and "Primary Contact" in role. Save and close. Do the same thing for another contact "Susan" and choose "Contacts" for its role. Then open the related view "Connections". Here you can see primary contact and child contact are in the same subgrid with their tags. 2.If you want to apply this function to all your account records, you could use Power Automate to create an on-demand Flow. a).Create a Common Data Service button Flow. b).Add a create records action, set the entity to "Connections". In "Role To", you should fill in the record Id of "Primary contact" role. c).Add a list records action to list all the child contacts and set their connections. d).Add a create record action. Here add the "Contact" role ID in "Role To" field. Then we can select one or multiple records and trigger this FLOW manually. The last thing is to create a view for connections to show this Account - Contact connections only. Best Regards, Leo
↧
Forum Post: KingswaySoft SSIS Lookup owner by email address
Hello everyone, I have a task to migrate records from on-prem CRM to Dynamics CRM online using KingswaySoft SSIS. By default in CRM destination component, the ownerid field (in destination system) was mapped by oweridname field (in source system): This approach worked fine. But as an user fullname can be easily duplicated, could we lookup an owner by email address, instead of the fullname ? I saw we can configure the text lookup settings: I changed the text lookup option to "Choose Target Field(s)", then the lookup method to "Manually Specify", and then the target text/integer field to "internalemailaddress" So, the last issue is the value of "owneridname" from the source system. Can we replace it by the user email address, so the text lookup can work correctly? If not the tool always use the user fullname to map with the email address, that always cause the error. Thanks for your support and advice.
↧
↧
Forum Post: RE: CRM Fom into Temas displays footer at the top
Hi Jorge, Does this issue happen for all forms? Could you please try to re-publish this form? If the issue still not be resolved, I would suggest you raise a ticket to Microsoft Support. Thanks.
↧
Forum Post: RE: Javascript to open email
No its not working, and yo have pasted the same code
↧
Blog Post: Create Application User in Dataflex Pro (CDS)
During integration there is always a need to perform authentications with several systems/applications; in this blog we are interested in Dataflex Pro (previously known as CDS) and while you can create an Office 365 user with username/password and configure it in Dataflex Pro; it will consume a license. And if multi-factor authentication (MFA) is setup for that particular user then authentication might be little difficult. That is why Microsoft enabled users to create an application user that uses service principal based authentication. To create application user you need an active Azure subscription and a Dataflex Pro license. The process is divided into two pieces: one register an App in Azure and second create user in Dataflex Pro. App Registration in Azure Once you log into Azure Portal , search “ App registrations ” in the search box. On the App Registrations page, click New from the menu bar and you will be taken the registration page. On this page provide the name of your name and keep all other options as default. Click Register; this will take you to the Overview page. On the overview page, you can find the tenant id, application id. Copy these ids as we will be needing them later. Now, we need to create a client secret which will be used during authentication. To create the client secret, click on “ Certificates & secret ” on the left blade, then under section “ Client secrets ” click on New client secret . This will pop-out a modal for you to enter your description and expiration. Enter a description that you can remember and choose “Never” for Expires . The system will create a random client secret for you. Please copy and save the secret as this will be the only time you will see it. At this point you should have tenant id, application id and client secret. But, we need to provide access to different APIs. To do so, click on “API permissions” on the left blade, then click on Add Permission . Under Microsoft API, choose Dynamics CRM ; and under permission check user_impersonation ; click Add permissions . Similarly you can add more APIs, like for Power Platform Service Connection in Azure DevOps you need to add PowerApps Runtime Service . Once you have added all the APIs, you will need to grant admin consent to those APIs. If the Grant admin consent is disabled then you will need to reach out to the Azure Admin to provide the consent. Finally the API permission page should look like below. Creating user in Dataflex Pro Now, head to your Dataflex Pro environment and go to Settings > Security > Users . Make sure to change the view to Application Users . Once on that view click on “ New “. If “User” form loads then change it to “Application User” from the form selector. On this page enter your preferred username; something like integration.admin@yourdomain.com . Now, paste the copied application id from Azure on the Application ID attribute; when you tab/focus out then it should populate “Application ID Uri” and “Azure AD Object ID”. Enter fullname and email address (can be same as username). Click save. Don’t forget to provide proper security role to this user. Now, you can use this user to authenticate using Service Principal; for that you will need Application Id and Client Secret we had copied from Azure. Hope this helps. For more content subscribe to my blogs and follow me on: Don’t forget to subscribe to my Power Platform ProDev Newsletter Email address (required) First name Last name Subscribe https://www.getrevue.co/profile/power-maverick Subscription received! Please check your email to confirm your newsletter subscription.
↧