Resolve the dependency between multiple solutions in D365 Customer Engagement / CRM Solution using Solution Component Mover.
You have might question in your mind that why we need to move the components from one solution to another solution in D365 Customer Engagement So, let’s consider a scenario you and your team is working on D365 CRM customization and created the two solution — ‘ Solution A’ and ‘Solution B’. While customization development when you are moving the ‘Solution A’ on the Production instance but you are not able to move it. Because some of the missing components are present in the ‘Solution B’. Then you have decided to move the ‘Solution B’ first, but again while moving the ‘Solution B’ its failed because of some of the missing components present in ‘Solution A’. It means ‘Solution A’ and ‘Solution B’ are dependent on each other and you can’t move either of the solutions in the Production Environment or Target Environment. There are two solutions to the above problem Add the missing components in the one solution and move that solution to production. Merge the dependent solution into one solution using Solution Component Mover. Now, the First solution is time-consuming as well as effort making and developers need to track all the missing components and add them manually. But using Solution Component Mover, you can merge solutions in 10 to 15 min just by selecting the component from Source Solution and Target solution to which you need to move the components. So, let us see how to do it. Perquisites: XrmToolBox You can download the XrmToolBox from https://www.xrmtoolbox.com/ Steps to follow: Open the XrmToolBox and connect to your D365 CRM environment. Search for the Plugin “Solution Components Mover” Image: Search Solution Components Mover in XrmToolBox 3. Once the plugin will be load, click on load solution — it will load all the solutions present in the Environment. Image: Click on Load Solution After solutions are loaded you can see I have two solutions in my Environment “Solution A” and “Solution B” which have dependent components and one “Target Solution” on which I m going to copy the component so that “Target Solution” will become a master solution. Solution A Image: Solution A has Account entity and it’s subcomponents Solution B Image: Solution A has Case entity and it’s subcomponents Target Solution Image: Target Solution doesn’t have any entity or component. 4. Move the solution component by select the Source solution and Target Solution 5. Click on the Copy component, a popup will open where you can select the component type to move to the target solution. 6. Click on “Ok” and component from both solutions will be moved to Target Solution. You can see the following screenshot in which Target Solution has a component from “Solution A” and “Solution B”. You can see XrmToolBox Plugin how it helps to reduce your time and effort to which are required to move the component from solution to solution manually one by one.
Share Story :
Create security role in D365 Finance and operation
In D365 Finance and Operations when you need to provide and restrict users from a certain operation you can make use of security roles. You can create security roles from Finance and operations environment itself or from its development tool i.e Visual Studio. In this blog, we are going to create a security role in Visual Studio as follows. Create privilege First of all we need to create privilege as follows now we need to add new entry point and set object type in our case display menu item from properties Now add object name(display menu item name) as follows create role Now we need to create role where above created privilege will be needed create new security role as follows now we need to add new privilege in role as shown And from properties select privilege which we have created in previous step Create Duty Now we have to create new duty and assign previously created privilege in its properties as shown Now we can see security role in FnO environment select any user from system administration>>users and click on assign role as follows and now search for priviously created role and click on Ok button now your security role is assigned to user with our role will be able to see the object like form, report etc except user with system administrator.
Share Story :
Updating multiple CDS records from Grid using PowerApps
Introduction: In this blog, we will learn how to Update multiple records of CDS from the Grid. Use Case: We have a requirement where there is a Grid of CDS Data Source, on clicking the Save Icon on top of the Grid, it should Save every record which is selected through the checkbox which is there on every record of the Grid. Steps: 1. There is a Screen on which there is an Editable grid of Quote Product Entity. To Create an Editable Grid refer to the following link. https://www.cloudfronts.com/create-an-editable-grid-view-in-powerapps/ To add Lookup Fields in the Grid refer to the following link. https://www.cloudfronts.com/add-lookup-fields-in-an-editable-grid-using-powerapps/ 2. This is the grid with a checkbox. 3. To Save selected records, first create a Collection: OnSelect property of the Delete icon: Set SaveIcon.OnSelect = ClearCollect( <VariableName>, Filter( <GalleryName>.AllItems, <CheckBoxName>.Value = true ) ) For eg: SaveSelectedRecord.OnSelect= ClearCollect( SelectedQuoteProduct, Filter( GalleryQuoteProduct.AllItems, CheckboxQuoteProductGallery.Value = true ) ) 4. When we select the Save Icon, it will collect all the records where the Checkbox is selected. 5. To Save the records from the CDS, set the OnSelect property of the Save Icon to the following formula: OnSelect property of the Delete icon: Set SaveIcon.OnSelect = ForAll( <CollectionVariable>, Patch( ‘Gallery Data Source’, <GUID you want to delete> { <fieldName>: TextInput.Text, <fieldName>:ComboBoxName.Selected, <fieldName>:Value(CurrencyTextInput.Text) } ) ) For eg: SaveSelectedRecord.OnSelect=ForAll( SelectedQuoteProduct, Patch( [@’Quote Products’], LookUp( [@’Quote Products’], ‘Quote Product’ in SelectedQuoteProduct[@’Quote Product’] ), { ‘Product Code’: ProductCodeQPGallery.Text, ‘Product Name’: ProductNameQPGallery.Text, Quantity: Value(QuantityQPGallery.Text), ‘Sales Price’: Value(SoldPriceQPEditform.Text), ‘Discount Amount’: Value(DiscountAmountQPGallery.Text), Tax:Value(TaxQPEditForm.Text), ‘Extended Amount’: Value(ExtendedAmountQPGallery.Text) } ) ) 6. Combine the Whole formula in the OnSelect property of Save Icon : For eg: SaveSelectedRecord.OnSelect= ClearCollect( SelectedQuoteProduct, Filter( GalleryQuoteProduct.AllItems, CheckboxQuoteProductGallery.Value = true ) ) ForAll( SelectedQuoteProduct, Patch( [@’Quote Products’], LookUp( [@’Quote Products’], ‘Quote Product’ in SelectedQuoteProduct[@’Quote Product’] ), { ‘Product Code’: ProductCodeQPGallery.Text, ‘Product Name’: ProductNameQPGallery.Text, Quantity: Value(QuantityQPGallery.Text), ‘Sales Price’: Value(SoldPriceQPEditform.Text), ‘Discount Amount’: Value(DiscountAmountQPGallery.Text), Tax:Value(TaxQPEditForm.Text), ‘Extended Amount’: Value(ExtendedAmountQPGallery.Text) } ) ) Conclusion: Hope the above Blog helps you Save multiple records of CDS from the Grid.
Share Story :
How to Set Default value of Two Options on New form using PowerApps
Introduction: In this blog, we will learn how to set Default Value of Two Options on New Form. Use Case: We have a requirement where there is a Field(Data Field: Two Options) on the form, which should show “NO” as Default value. The Field on the Form is a Combo Box. Steps: 1. This is the form of Quote Product. We want to set Override Price as NO. 2. To set Default value of the field, click on the Combo Box. DefaultSelectedItems property: Set OverridePrices.DefaultSelectedItems = { Value: <Field Name>.No} For eg: OverridePricesComboBoxQPForm.DefaultSelectedItems = {Value: ‘Override Prices (Quote Products)’.No} Conclusion: Hope the above Blog helps you to set Default Value of Two Options on New Form.
Share Story :
Hide Recent Items from Dynamics 365 CRM Lookup form using Xrm.Utility.lookupObjects through JavaScript
User property disableMru = true; You can refer below code selectProjectLayout: () => { var lookupOptions = {}; var _projectLayoutName = null; var customFilter = ‘<filter type=”and”>’ + ‘<condition attribute=”cf_project” operator=”eq” value=”‘ + Operations.selectedProjectId + ‘”/>’ + ‘</filter>’; lookupOptions.allowMultiSelect = false; lookupOptions.defaultEntityType = “cf_tcmaplayout”; lookupOptions.entityTypes = [“cf_tcmaplayout”]; lookupOptions.disableMru = true;// used to hide recent items try { if (Operations.selectedProjectId !== null) { lookupOptions.filters = [{ filterXml: customFilter }]; Xrm.Utility.lookupObjects(lookupOptions).then( function (result) { if (result !== undefined && result.length > 0) { // your code } } }, function (error) { if (error != null) { Xrm.Utility.alertDialog(error.message); } } ); } } catch (e) { Xrm.Utility.alertDialog(e.message); } }
Share Story :
How to share confidential files securely with external users?
Suppose you are sharing a confidential file externally, of course, you will not want the external user to edit the file or download it or share it again with others. In this article, we are going to see how we can achieve that. This is applicable to both OneDrive for Business Online as well as with the app (OneDrive files synced on your system). OneDrive for Business users have the option to restrict the level of access. Anyone – gives access to anyone with the link, whether received directly or forwarded. This can also include external users as well. People in your Organization – give anyone in your organization who has the link access, whether received directly or forwarded. People with Existing access – Can only be used by the people who already have access to the document. Specific People – gives access only to people you specify. This cannot be accessed if forwarded to others who don’t have access already. If you see any of these options greyed out, your admins might have restricted the options from Admin Center. Steps 1: Sharing process for the confidential files. Go to OneDrive for Business, select a file you want to share by selecting the circle, you can also pick multiple items to share them together. Select Share at the top of the page or beside the file name there is a small Share icon (See above screenshot). Select “Anyone with the link can edit” to customize the option. You can see the other options as well, now select “Specific People”, uncheck Allow Editing and toggle ON the Block download option and click Apply. Enter the email address of this user with whom you want to share this file and click Send. Steps 2: What happens when the external user receives the file. The user received the email with a file link and it is clearly indicated that this link will not work if forwarded to someone who doesn’t have access to this file already. When the user will try to open the file, it will ask for verification and users will need to click on Send Code. The code will be generated and sent to the user via email. The user will enter the code and verify it. The file will open after it is verified. Users won’t be able to edit or download the file. If this user will forward this document to another user, the other user will be asked to log in with the credentials to which the file was initially shared, hence securing the file if it gets forwarded. In this way, you can share confidential documents with external users and hence securing the data. Hope this article helps to achieve the same.
Share Story :
Ms Flows are not getting triggered ?
Introduction : In this blog, we will see, why the Ms Flows are not getting triggered after Completion full copy of the environment. Use Case : It was requirement of our Project to Copy UAT environment To Dev but after Completion of full copy, None of the Flows in Power Automate were getting triggered. We tried the below solutions : Import and Export the flows and Change the Environment of the flows but this also failed. Created a new Flow, but this also failed. Solution : Go to the https://admin.powerplatform.microsoft.com/ -> Select Environment -> Edit and Check the Administration Mode of the Environment. Note : The Administration mode of the Environment should be disabled. If the administration mode is enabled, all the Asynchronous Processes will not get triggered. Conclusion: By doing this we were able to trigger the flows. Hope this will help you while Copying one Environment to the Other.
Share Story :
Table Properties in Business Central
Introduction: In this blog, I will be addressing some of the Table properties in Microsoft Business Central. Pre-requisites: VS Code AL Language Extension Microsoft Dynamics NAV / Business Central Properties: 1. CharAllowed It sets which characters are allowed in the field. This property can be applied to Table and Page fields. Charalowed takes parameters in a combination of two characters as shown below, where characters “1 to 4 “, “7 to 9” and “a to d” are allowed. An example of this property is given below. Definition Error 2. DataPerCompany It sets whether the table data applies to all companies in the database or only the current company. The default value for this property is true. This property can only be applied to Tables. The User table is an example where Datapercompany is false. 3. DataCaptionFields Sets fields defined on the Top Left Position of the Card page. It can be applied in Table. Syntax: DataCaptionfields= Field1,Field2,Field3; In below example, I have used No, Name and Type fields for Caption. Definition Result 4. Enabled Sets a value that indicates whether a field is enabled or disabled. It can be applied to Page fields, Table fields, and Actions. In the below example, I have set Enabled Property to True on Name field, therefore Name is field is visible to users but it is not editable and it is displayed Gray in color making it less highlighted than other fields. Enable = False Hope this helps!
Share Story :
How to: Create a Bot using Power Virtual Agents
Introduction : Power Virtual Agents help us build simple and easy bots which can be integrated with websites, Microsoft teams, etc. Here are the steps to create a bot using PVA. Login to your environment in https://powervirtualagents.microsoft.com/en-us/ The pop up for create new bot will be visible, name the bot and create. Go to Topics Follow the numbers sequence in the below screenshot for the steps. After you click go to Authoring canvas, you can add messages, actions or call flows. This is where you write the responses and actions of your BOT, Topic Checker displays errors if any. You can test the Bot by clicking on “Test Your bot”, left bottom of the browser.You can check the working and update the bot topic while testing by enabling the “Track between topics”. Conclusion: Publish the bot and click on demo website to the actual working of your Bot
Share Story :
Get RSS Notifications to phone for important blog posts using Power Automate
RSS is powerful and taming it wisely really helps! 🙂 Here’s an example where I used it to get a notification whenever a new blog was posted by Microsoft in their Dynamics 365 Blog page. It is my attempt to stay updated on the latest posts so that I don’t miss anything. Scenario Let’s say, for example, this is the website I want to read RSS feeds from. So click on the RSS icon – https://cloudblogs.microsoft.com/dynamics365/ Copy the URL from the Feed page Build your Power Automate Start by building your Power Automate, you can select the Trigger as RSS. Paste the URL copied from your RSS source above, and then add a step to send a Notification. You can have anything here, it’s up to your use case of what you want to do with the Power Automate further on. Getting RSS Feeds on Phone using Power Automate Now, once all this is set, here’s how I’ll get notifications on the phone once I have Power Automate setup and authenticated to the correct environment of Power Automate. Whenever there’s a new blog posted on https://cloudblogs.microsoft.com/dynamics365/, I get a Power Automate notification on the phone like this And when you click on it, you’ll see what has been posted, it will open up in the Power Automate app And when you click on the link, it will take you to the actual blog Post Hope this helps you in your application or use case! Cheers!!
