Are you the publisher? Claim or contact us about this channel


Embed this content in your HTML

Search

Report adult content:

click to rate:

Account: (login)

More Channels


Showcase


Channel Catalog


Channel Description:

A one stop shop where the Microsoft Dynamics ecosystem can learn, share, connect and network with others within the Community. Peer to Peer discussions , product demonstrations, blogs & videos.

older | 1 | .... | 1136 | 1137 | (Page 1138) | 1139 | 1140 | .... | 1174 | newer

    0 0

    Originally posted on Rajeev Pentyala - Dynamics 365 Blog : As you are aware, using Plug-in Profiler option we can debug D365 online plug-ins by throwing exception and capturing the Serilaized profile....(read more)

    0 0

    On the computer named CRMBackEnd01.Domain.LOCAL;192.168.1.3 and RMBackEnd02.Domain.LOCAL; 192.168.1.4 complete the following procedure. Meet all requirements specified in Microsoft Dynamics 365 system...(read more)

    0 0

    A series of Tips&Trick will be located in a  Tips&Tricks  page on the blog to be dedicated to publish every quarter of the year the last tips and tricks that illustrate a specific function on Microsoft...(read more)

    0 0

    One of the most underused tools in Dynamics and CDS development teams the myriad of those available is the Microsoft.Xrm.Data.PowerShell library by the ever helpful Sean McNellis. If you have to perform repetitive tasks then there is nothing easier but with the unfamiliar nature of PowerShell for those of us that write C# or JavaScript on a daily basis, it's often avoided.

    This post is a call to action - consider it as an option for the following reasons:

    1. You can quickly convert Excel spreadsheets into a PowerShell script to perform repetitive tasks such as adding roles to users or entities to solutions.
    2. Easily create reusable scripts that are parameterized without the complexity of a user interface.
    3. Easily automate build tasks and run them over and over again with no chance of human error
    4. Creating scripts to give to other people to run as their user account when you don't have access to the target environment

    Recently I needed to add a load of entities to a solution which can be quite cumbersome using the classic solution UI and the PowerApps solution manager doesn't allow you to add entities without their sub-components yet - PowerShell to the rescue.

    # Shows how to add entities to a solution
    
    Set-ExecutionPolicy –ExecutionPolicy RemoteSigned –Scope CurrentUser
    Install-Module Microsoft.Xrm.Data.PowerShell -Scope CurrentUser
    Import-Module Microsoft.Xrm.Data.Powershell
    $conn = Connect-CrmOnlineDiscovery -InteractiveMode
    
    Function Add-SolutionComponent
    {
        param
        (
            [string]$solutionuniquename,
            [Int32]$componenttype,
            [Guid]$componentid
        )
    
        # See https://docs.microsoft.com/en-us/previous-versions/dynamicscrm-2016/developers-guide/gg327422(v%3Dcrm.8) 
        $addrequest = new-object Microsoft.Crm.Sdk.Messages.AddSolutionComponentRequest
        $addrequest.AddRequiredComponents = 0
        $addrequest.ComponentType = $componenttype #1=Entity
        $addrequest.DoNotIncludeSubcomponents = 1
        $addrequest.ComponentId = $componentid
        $addrequest.SolutionUniqueName = $solutionuniquename
        $response= $conn.ExecuteCrmOrganizationRequest($addrequest)
    
    }
    
    Function Add-EntitiesToSolution
    {
        param
        (
            [string]$solutionuniquename,
            [string[]]$addentities
        )
    
        Write-Host "Checking that solution exists '$solutionuniquename'"
        $solution = Get-CrmRecords -conn $conn -EntityLogicalName solution -FilterAttribute uniquename -FilterOperator eq -FilterValue $solutionuniquename -Fields solutionid
        $solutionid =  $solution.CrmRecords[0].solutionid
    
        Write-Host "Querying metdata to get entity id"
        $entities = Get-CrmEntityAllMetadata -conn $conn -EntityFilters Entity -OnlyPublished $false
    
        # Filter by the entities to add
        foreach($entity in $entities | ? {$_.LogicalName -in $addentities})
        {
            $logicalName = $entity.LogicalName
            $count = (Get-CrmRecordsCount -conn $conn -EntityLogicalName $logicalName -WarningAction SilentlyContinue)
            Write-Host "Adding $logicalName"
            Add-SolutionComponent -solutionuniquename $solutionuniquename -componenttype 1 -componentid $entity.MetadataId
        }
    }
    
    # Add lead, account and contact to the solution TestSolution
    Add-EntitiesToSolution -solutionuniquename "TestSolution" -addentities "lead","account","contact"

    So there you have it! I've picked this scenario because it shows some common things you'll need to use regularly:

    1. Querying for records
      Get-CrmRecords
    2. Executing SDK Messages
      ExecuteCrmOrganizationRequest
    3. Iterating and filtering collections
      foreach($entity in $entities | ? {$_.LogicalName -in $addentities})

    So there you have it. Hopefully, you'll consider using PowerShell if you've not already!

    You can find lots more samples on Sean's git hub samples repo.


    0 0

    Getting started with local container sandboxes for Business Central is very easy. Just download and install Docker locally (remember to choose Windows containers), install the NavContainerHelper Powershell...(read more)

    0 0
  • 12/02/18--00:54: 2nd Holiday Calendar Post
  • At Microsoft, everything we do is ultimately intended to benefit our customers. As a customer, you experience this in the form of new features in updates, or the custom solutions that our partners can...(read more)

    0 0

    I am about to take the MB2-719 certification, this certification covers the Dynamics 365 for Marketing Application. I plan to create a series of blog posts that collectively should help anyone else preparing...(read more)

    0 0

    At our shop, we were doing a real big upgrade – Classic NAV (no SQL) all the way up to 2018. We hit a weird error message about the Locked and Locked By fields missing when trying to modify any records: Since our upgrade lead hadn’t seen “Invalid column name ‘Locked'” before, and neither had I, this was a new one. When he looked at the Object table in SQL, the fields were named “Låst” and “Låst av”, the Swedish translations of the field names. But, we know the ETX/STX files were correct during the upgrade, so it’s pretty baffling. Opening the Classic, we’d get this: Obviously, yes, “The Locked field on the Object table” does not exist. Collation was fine, so how to fix it without restarting the upgrade? Turns out, the go-to place was the good ol’ $ndo$dbproperty table. It has a field called Identifiers which normally contains something like: 2000000001=”Object”,1=”Type”,2=”Company Name”,3=”ID”,4=”Name”,5=”Modified”,6=”Compiled”,7=”BLOB Reference”,8=”BLOB Size”,9=”DBM Table No_”,10=”Date”,11=”Time” ...read more


    0 0

    In Part 1, I discussed the importance of measuring your project’s success, and walked through the Success Mapping meeting where you work with all you players to do it. The goal in this is to gather data...(read more)

    0 0

    In CRM/CDS Destination Component of SSIS Integration toolkit we can found 2 output column as part of error handling In case of Create CrmRecordId will have the GUID of the newly created record, which could...(read more)

    0 0

    Working with a Flow to do some text analysis and sentiment analysis on Voice of the customer responses.

    The trick, as the payment model is per run, is to trigger it per Survey Response, and not Question Response. Hence the logic has to loop through all the question responses.

    The way you create a filter in Flow for the query is to use Odata filters. However, I found that these were a casing nightmare, which those of you who have worked with more, probably also have noticed.

    After troubleshooting a lot with different queries in the browser I finally found that the following actually worked. Note that you will have t change the guid to your own.

    https://dev-dtn.api.crm4.dynamics.com/api/data/v9.1/msdyn_questionresponses?$select=msdyn_name,msdyn_SurveyResponseId&$filter=msdyn_SurveyResponseId/msdyn_surveyresponseid%20eq%20460279E7-2AF2-E811-A97F-000D3AB0C08C

    The tricky part, as you can see, is that the first part of the lookup attribute, is defined in camel-case and the one in the related entity (Survey Response) in lower case.

    The part you need in the Flow is the last part, but it is useful to test it directly in the browser to make sure you get the syntax correct.

    Its the filter part of the query that you are to enter into the "Filter query" field, and make sure to make it dynamic. :)

    And this is how it looks in Dynamics 365 CE if you check out the fields. I like to look at them in the list view as I can see the schema name there, which isn't visible in the Form.

    msdyn_SurveyResponseId Lookup from the Question Response Entity. As you can see it seems to be using the Schema name above.

    This is the primary field Survey Response. Do note the subtle difference between the fields, that Id is spellt with a capital "I" in the Schema name. Based on the information above, it hence seems to be using "Name" to indicate the field.

    Hence based on the above, the supposition would be that the syntax is <Schemaname of the lookup>/<name of field in target entity>


    I then did a query to business Unit and I was very surprised to find that it was rather inconsistent and looked like this:

    https://dev-dtn.api.crm4.dynamics.com/api/data/v9.1/businessunits?$select=cntso_organizationbaseurl&$filter=parentbusinessunitid/businessunitid%20eq%20null

    with just the query that would be

    parentbusinessunitid/businessunitid eq null 

    Let's have a look at the fields in Dynamics:


    The Parent Business Unit Lookup in Business Unit (Self Referential). Note that the Schema name is Pascal Case.

    key field, businessunitid in Business Unit


    And as you can see, if we were to follow the syntax set by the example above, this should be:

    ParentBusinessUnitId/businessuniti

    However, that didn't seem to work, and as a pragmatist, I have to conclude, somewhat sad, that this doesn't seem to be very consistent.

    My recommendation is hence when working with this:

    • Do not take any casing for granted
    • <Schemaname of the lookup>/<name of field in target entity> is probably correct for most custom fields/entities.
    • Many older entities and fields, like the businessunit shown above, has been there since CRM 1.0 or at least 3.0, if I remember correctly and hence the syntax might be different.
    • Test your queries directly in the browser like I have shown above.

    Good luck with your Flows.

    And if you know Swedish, make sure you check out my colleague Martin Burmans article on Flow as well. Not sure how well it turns out in translation. https://www.crmkonsulterna.se/flow-i-medvind/

    Gustaf Westerlund
    MVP, Founder and Principal Consultant at CRM-konsulterna AB
    www.crmkonsulterna.se

    0 0

    We all know or should know that Microsoft Dynamics 365 Dialogs have been deprecated. When introduced Dialogs allowed a Functional Consultant to create an interactive step-by-step data entry form. The replacement options now are either business process flows or Canvas Apps. Both of which are reasonable alternatives and the latter, embedding PowerApps presents some really exciting possibilities.

    But what if you need something a little simpler and perhaps utilize something you have already built? If it is a Microsoft Flow I will show you the simple steps you can do to embed an Button Flow into the Dynamics 365 Customer Engagement application.

    Let’s consider this business scenario.

    You have a busy Sales Exec at your company that refuses to login into the Dynamics 365 application to see what is going on with Opportunities. This person keeps emailing or calling you to have you email them a list of all the new Opportunities. I am going to keep this scenario simplified in the blog post but you can take what you learn and make it more complex.

    Let’s imagine that previously you created a Flow Button and installed the Flow app on the Sales Exec’s phone. All the Exec had to do was to open the Flow App, tap on the Button and it would send directly to the exec a list of all the new Opportunities created in the last 24 hours.

    But now the Exec calls you and keeps changing the time frame. And also refuses to even use the Flow App.

    So your idea is to take the original Flow Button and modify it so you can vary the time for new Opportunities and it is business logic you can kick off from within the Dynamics 365 Web Client were you, as the Sales manager, live all the time.

    Step 1– Take the existing Flow Button and make a copy.

    Microsoft Flow Make a Copy

    Step 2– Edit the Flow to delete the Manually Trigger a Flow Button element.

    Microsoft Flow Delete a Button Trigger

    Step 3  – Insert the Common Data Service When a Record is Selected Trigger. This will cause the Flow to be available from the Toolbar Flyout from the Opportunity Grid View. Add an Output field to prompt you to enter the number of days you want the report to cover for new Opportunities.

    Microsoft Flow When a Record is Selected

    Step 4 and a little more– here we need to initialize a variable, then set the variable with the output from the prompted question so we can use it in the Get Past Time Step.

    Microsoft Flow Initialize Variable

    Step 5– There is nothing else we need to do except modify the To: field in the Send an Email Action. For the purposes of the blog post I am retrieving my own email address as the executor of the Flow. You could either hard code your bosses email address here (I don’t have a boss, I own the company.  ) or you could add to the prompt for the recipients email address and use it in this later step.

    Microsoft Flow Retrieve Filter Records

    Step 6– Now go to the Opportunity Grid View, select one row (this is required, doesn’t matter which record) and then click as shown in the image below.

    Microsoft Flow Run from Dynamics 365 CE

    Step 7– After clicking on the Copy of – Receive… link, the Flow ‘Dialog’ Window will open up. Now respond the prompt and enter the number of days.

    Microsoft Flow Dialog like Prompt

    Step 8– With a little bit of luck will see a screen as follows with all green check marks meaning your Flow has run successfully. The email to your Exec will have been sent out.

    There is much more you can do with the process. I just wanted to show you the basic framework to get you started. Happy Flowing!

    Microsoft Flow Successful Run

    Microsoft Flow Send Email

    The post Replace Dialogs with Microsoft Flow appeared first on CRM Innovation - Microsoft Dynamics 365 Consulting and Marketing Solutions.


    0 0

    A series of Tips&Trick will be located in a  Tips&Tricks  page on the blog to be dedicated to publish every quarter of the year the last tips and tricks that illustrate a specific function on Microsoft...(read more)

    0 0

    Introduction Currently many companies resort to manually choosing which shipments need to be added to a wave we are about to process, which is slow and error prone, as the user needs to check up on each of the shipments, understand where it is headed, what types of items are on it, which mode of delivery is used, etc. Today I would like to show a demo example of how to configure wave templates,


    0 0

    Much has been written recently about the amazing feature of Google Chrome “Profiles”, or the ability to have separate / fire-walled browsing sessions open at one time. See Google’s article...(read more)

    0 0

    In all supported versions of Business Central and in NAV, all list pages have a Quick search control, allowing you to create a filter, that finds records containing what is typed in the search box. This...(read more)

    0 0

    The Reports area of Dynamics 365 has been a mainstay for quite some time. Many people and companies still rely on this tool to create reports for day-to-day use. However, when the new Unified User Interface...(read more)

    0 0

    Hi Readers,

    I have received so many comments and email about how to code with New changes.

    There are so many confusion and wrong assumptions with these changes that Microsoft is bringing in the product.

    Old Way - #MSDNAV  <==> New Way - #MSDYN365BC

    Read Complete Article »

    0 0

    In this post I provide 2 ways to retrieve duplicates – using plain JS way and with usage of Xrm.WebApi namespace that was introduced as a part of 9.0 release. So here is plain JS: [crayon-5c04c315add87010874123/] And here is Xrm.WebApi version: [crayon-5c04c315add92909506735/]  


    0 0

    You must have often seen this error while qualifying the lead in PSA. This will only come when the lead is of the Type “Work Based”. There is an important parameter setting that is missing to be...(read more)

older | 1 | .... | 1136 | 1137 | (Page 1138) | 1139 | 1140 | .... | 1174 | newer