Quantcast
Channel: Microsoft Dynamics 365 Community
Viewing all 51311 articles
Browse latest View live

Handle Boolean/Two Option Fields In Scribe Data Migration/Bulk Update

$
0
0
I know many CRM developer get into Data migration or bulk update operation from CRM system to other external/CRM system. I have gathered few useful tips while dealing with boolean fields as in how to...(read more)

News about the ALAppExtensions repository on GitHub

$
0
0
Hi there! Ready for some good news about the ALAppExtensions repository on GitHub? We’ve just added the code for the Sales and Inventory Forecast extension to the repository. A few years ago...(read more)

Managing the reporting currency

$
0
0
In the 8.1 PU20 version of MSDyn365FO, a new functionality has been added : managing dual currency for reporting purposes . In previous versions, amount in reporting currency was calculated from the ledger...(read more)

MB6-898 Describe features for employee self-service

$
0
0
The employee self-service is an important feature of Talent. This is the page where all of your employers should have access, and where they can edit their own information and find information connected...(read more)

Relationship between Order Line and Invoice Line in Dynamics 365 CRM

$
0
0
Introduction: Recently we had a business requirement where customer wants to map Order Line fields to Invoice Line while creating an Invoice from Order. Until Dynamics 365 8.2 version, there was no direct...(read more)

Upgrading to Jet 2019: Series Index

$
0
0

Jet Global Data TechnologiesBack in April I did a series of posts on implementing the various products from Jet Globaal Data technologies (or Jet Reports as they then were before their re-branding).

Jet Global have recently launched new versions of their products and I thought a short series on upgrading might be useful. This post is the series index, and will automatically update as the posts go live (if you’re reading this on a syndicated post, make sure you check back to the original as only that will update).

In this series I will be upgrading both Jet Analytics (formerly Jet Enterprise) and Jet Reports (formerly Jet Professional).

Upgrading to Jet 2019

Read original post Upgrading to Jet 2019: Series Index at azurecurve|Ramblings of a Dynamics GP Consultant

Windows Server 2019 and SQL Server 2017

$
0
0
Windows Server 2019 (1809) finally shipped (again) and with that we have a new LTSC (Long Term Servicing Channel). This means that we will begin creating images for Windows Server 2019 as soon as our infrastructure...(read more)

Discount Calculation Method for Product Line Items in Dynamics 365

$
0
0

There are two methods that might be used by Microsoft Dynamics 365 for calculating the Extended Amount on Opportunity Products, Quote Products, Order Products and Invoice Products depending on the configuration of the Discount Calculation Method option in System Settings.

By default this option is set to ‘Line item’ but it can be changed to ‘Per unit’.

image

The ‘Line item’ method does not multiply the Manual Discount Amount by the Quantity. The Per Unit method multiplies the Manual Discount Amount by the Quantity.

In the following examples, the Tax is 15% of the calculated non-tax amount.

The following image shows the calculation of the Extended Amount for Order Products using the ‘Line item’ Discount Calculation Method.

image

The calculation of Extended Amount using the ‘Line item’ Discount Calculation Method is as follows:

•    (((Price Per Unit - Volume Discount) * Quantity) - Discount Amount) + Tax; e.g. (($1,000 - $100) * 10) - $100) + $1,335 = $10,235. In this example, the pre-Tax amount is $8,900.

The following image shows the calculation of the Extended Amount for Order Products using the ‘Per unit’ Discount Calculation Method. The Tax is 15% of the calculated non-tax amount.

image

The calculation of Extended Amount using the ‘Per unit’ Discount Calculation Method is as follows:

•    (((Price Per Unit - Volume Discount) * Quantity) - (Quantity * Discount Amount)) + Tax

e.g. (($1,000 - $100) * 10) - (10 * $100)) + $1,200 = $9,200. In this example, the pre-Tax amount is $8,000.

If there was no tax on either of these two examples, the sum of the Extended Amount for the Order related Order Products would be $26,700 when using ‘Line Item’ and $24,000 when calculated using ‘Per Unit’.


Print Barcodes on Reports from Dynamics GP

$
0
0

As an industry leader in bar coding for Dynamics GP we are asked daily regarding the ability to add bar-codes to reports like Purchase Orders, SOP Pick Lists, Packing Slips and more. While the PanatrackerGP application offers robust lookup and filtering options for many fields, it often speeds user’s entry to scan information from a paper list at the receiving dock or in the warehouse while picking. This can also be useful to your customers who may be using some form of warehouse management system. Dynamics GP and the Report Writer tool offer powerful report printing and customizing capabilities from within GP itself. To take advantage of Report Writer and print bar codes on your reports can be accomplished easily and we have included the instructions for this to share with you.

Bar Code Fonts

To begin we must establish that a standard 1-Dimensional Bar code can be thought of as a font to be printed. It is however a font that is designed to be read by a machine and may or may not include human readable text. For more on bar-codes see our post 1D vs 2D Barcodes . To illustrate this, see our image below in which ABC123 is printed in 4 different fonts.

The initial step in adding barcodes to your reports in GP is locate and install a barcode True Type Font (ttf) for your machines. For this Panatrack highly recommends the “Code 3of9” or “Code 39” barcode format. While inventory barcodes printed on item labels often benefit from “Code 128” or even UPC barcodes, these have complicated check digits that can require you to write code that will allow them to be properly scanned. Conversely, Code39 barcodes will allow you to encode all of the ASCII characters and requires only a start and stop character, like an asterisk * before and after the text.

So, to create a barcode for item ABC123 you will need to input *ABC123* When the scanner reads the barcode it will only “see” ABC123. Therefore if you take a scanner to the barcode example displayed in the table above, nothing will read. However, try the barcode below and it can be scanned. Another draw of the Code39 Barcode is that this is available as a free downloadable font package for your machine. As such a note of acknowledgement must be paid to Matt Welch for creating and distributing this font pack. Click here to download the font onto your Dynamics GP Server. We must then install the font pack onto your machine, this will likely require administrator permissions. Panatrack recommendsinstalling only the “free3of9x” from this file as it is the only font you will use.

Report Writer

To achieve the proper display of a barcode requires some minor effort in the Report Writer tool. To access Report Writer you can navigate through the menus in GP or simply press ALT+F9. Next navigate to the report that you wish to edit and select it. The first step will be to edit the name of the report if you require it, next uncheck the box next to “Text Report” under Format Options.  Once these steps are complete, we can begin to edit the report itself by clicking the Layout button which opens the report and the Toolbox in their own windows.

With the report open we will now create the calculated field for the barcode, this will be a combination of the required asterisks and data field. To do this look to the Toolbox window and from the drop-down and select calculated fields, then hit the new button to create the barcode field. Name this field as you see fit, in our case we will name it PO Barcode. The Result Type will be String, you must select that from the drop-down to begin building the calculated expression. We now will add the appropriate characters and data to the Calculated section to create a barcode, as discussed earlier, this means we need to add an Asterisk to either end of the data.

Under the Constants tab, select String from the Type drop-down and enter * in the Constant field, then click Add. This has now started the field off with an asterisk as required. Next click the CAT button under the Operators heading, which creates the expression required. The following step is to click the Functions tab and with the System-Defined radio button filled in select STRIP from the drop-down and click Add. Next you will go to the Fields tab and select the resource that matches your report and in the Field drop-down select the option that is the information you want to barcode and click Add. Now use your mouse cursor and click to the right of the end parenthesis. Now click the CAT button to close the expression, leaving us only to need another asterisk. Under the Constants tab, select String from the Type drop-down and enter * in the Constant field, then click Add. Clicking the OK button will save our Calculated Field definition and we are now done with the hard part.

Now that you have created your barcode field, it is time to add it to the report! Simply drag the field name from the Toolbox and onto the Report Layout, positioning it where desired. It is recommended to increase the size of this box initially and fine tune later. Now it is time to print your report and confirm that the output is correct. When you print the report, you should see *Field Name*with no other spaces or characters. If this field does not show as expected, recheck your calculated field and adjust.

The final step is to turn this field into a barcode that can be scanned. Navigate back into the report layout and select the field that you added. Once the field is selected use the Ctrl+D to access the drawing options menu to adjust the font. Under the Font menu select the “Free 3 of 9 Extended” font (do not use the “Free 3 of 9”) and increase the size, we recommend a minimum of 26 points. Having confirmed that your text is displaying properly changing the font results in a scannable barcode appearing on the report. It is important to note that there will be no human readable text as part of this barcode, as such you may want to include a field identifier or add the calculated field a second time directly under the barcode in standard a font.  The report will now include a barcode that can be scanned into any barcode reader.

Finished Report

Including barcodes on Purchase Orders, Pick and Pack Lists, Manufacturing orders, or any other documents will further leverage the use of barcode technology in a warehouse. This is a simple way to add to the value of a WMS or Bar code Data Capture Solution. If you are interested in trying this but are not currently using an Embedded WMS such as Panatrack, you can download barcode apps onto most smartphones. (Note that not all apps will read the Code39 barcode type.) This will allow you to read the barcode and get a feel for customizing reports.

For questions and further information on PanatrackerGP and Barcode Solutions for Dynamics GP, Contact Us.

Special Thanks

Panatrack would like to extend a thank you to Andy Berntson at Fargo Public Schools for his help in revamping and refining the instructions above.

Do you include test codeunits with your BC extensions?

$
0
0

Running Dynamics 365 Business Central in the cloud, means that we always have a system which is running the latest version. Microsoft will take care of the upgrades of both the standard code and any installed extensions. Before upgrading and upon any new build Business Central is being tested by running 10,000's of automated tests in the test toolkit. This test is done every time they build their code, and it checks that the functionality in BC works as it is designed to work.

Besides the test toolkit covering the standard code, then all extensions available from AppSource comes with a test package covering at least 90% of the code. AppSource developers are also required to download the preview builds and make sure their extensions also work with the next update and even the next major release.

When it comes to extensions which are not build for AppSource, then there are no formal requirements.

If the extension is developed for only one customer, then in most cases you will have no requirement regarding test codeunits. Neither from the customer nor your employer. They primary see the time you need to spend, to create the automated tests as an extra cost.

So, why should you care?

Unless your extension is developed completely separate from the standard code, then you always have a risk that whatever you have used to tie your functionality into the standard has been changed. If you have subscribed to an event, then this may have changed (maybe new variables etc.), in a page extension/customization whatever you have used as your reference (i.e. addafter/before) may have changed. Of course, this does not change every month or in every release. If you have used integration events, then theoretical these should never change!

As everybody know, then changes do happen! The last two-three years we have all witnessed a fast stream of both new and a lot of changed functionality coming from Lyngby. Under the hood (so to say), we have seen even more changes coming from Microsoft's clean code efforts. Like redesigning codeunit 80, or their removal of codeunit 1.

And there is nothing in the air saying this will stop. We should also expect to see more design change when C/Side and the Windows client goes away within 1-2 years (as announced on Directions).

Having test codeunits will give you (and your company and customers) a basic assurance that the Business Central extension you have developed also works next month. If redesign or changes are required, then you know it before it breaks for your customers.

What does it take to make automated tests?

I am not going to tell you that it is easy to get started. For me its been a journey that started some years ago. I had the pleasure of my fellow MVP Luc van Vugt's NavTechDays pre-conference course on testing two years ago, where I learned a lot and also had a project where we implemented the test toolkit. But then I have been of to other projects, until I two months ago again were able to work on a project where it has to be applied. And I'm still learning.

It is not learning the special code required to write the test codeunits, that is the problem. Writing tests is actually very easy. The problem is really to define what to test and then figure out how you can test it.

You will also soon realize that some code is easy to test, while other parts may require you to write a lot of code or even mocks, before you will able to test it. You may also find that it requires you to learn everything you can, about design patterns and clean code.

If the extension was already developed, without knowledge of how the test toolkit, how to write test codeunits and clean code and design patterns, then your extension may be in a shape where it is almost impossible to implement it. At least not without refactoring your code heavily.

Ideally you would be using test driven development (TDD), where creating test cases and test codeunits is done before writing actual code. Do this "the right way", then it also involves the customer/system-owner, the analyst/consultant. Together you would be making the test plan, to specify and prioritize everything you need to test. The test plan basically becomes your primary design specification. Read more about it in Luc van Vugt's blog, his blog is the place to read about testing Business Central. This not something invented for Business Central, it's industry standards, which have been around for decades, just never really used much in our little NAV/BC corner of it.

My statement here is that, if correctly applied, then creating test codeunits may in fact speed up the entire project. You will use less time on manual acceptance testing and waist less time while waiting for consultants/users to test for feedback.

But the secret is to start as early in the development process as possible. You may easily use just as much time creating tests for an existing extension (not coded with clean code/design patterns), as you used to program it originally!

Who should pay for this?

Before answering this, then let's think "back" to the Navision days. If you created a customization to a customer, then it was created for that specific version and installation with the customer. If the customer, at a later time, wanted to upgrade to a new version, then they would have to pay you to bring thing the code into the new version. Even if the you could use MergeTool or later the PowerShell CmdLet's, then you still needed a full-scale test (with users) to ensure everything still worked. The result was that every upgrade was a huge and costly task, resulting in most customers staying on old versions for many years.

Visual Studio Code and Extensions have been seen as the answer to the upgrade nightmares.

Most of the times there would not be a problem, your extension will work, without any issues or even without having to be recompiled. But it is naïve to think that this would always be the case, especially when we talk about the twice a year major update.

Test codeunits and CI/CD (continued integration/continued deployment) is the foundation, which allows us to do it an automated, secure and efficient manner.

We must also answer a different question. How are we going to charge our customers for Business Central? When we talk cloud then there is really no recommend list price, except for the basic users. Each partner has to decide how they charge their customers, and which services are part of their price. That goes for the standard Business Central, as well as development of extensions made for specific customers.

Up-front Payment

The partners may decide to invoice development cost like in the NAV days, a once off price based on actual time used or fixed price.

Subscription

The partner includes the development costs into the monthly subscription fee. The customer pays over time, together with the license.

The real question is who is responsible for making sure that the extension you made for the customer, also works next month? If you are their registered partner (CSP) in the cloud, then technically Microsoft is running it, but if their upgrade breaks your code, then it's not Microsoft they must contact, but you - the partner. So even if you did not charge them for creating test codeunits or testing every month, then it will be you fault – at least in the eyes of the customer. I do hope that this is a service you remember to include when charging your customers for Business Central?

The best solution is to always include "upgrades and automated tests" as a subscription services, no matter if the development was paid up-front or not. If already in a subscription, it is already a natural cost you should charge your customers every month. With or without test codeunits.

The answer is that the only one to pay, of course, is the customer. Either up front or better via a subscription.

As for the customer, depending on who "own's" the extension build for them, if their extension already has test codeunits, then it's going to be much easier for them to change partners. No partner would take on the responsibility for running an extension, which they have no way of know works correctly. At least not without charging a lot of money. But who would even consider moving from a partner, where everything works release after release and the quality cannot be questioned?

 

Personally, I'm not in doubt. If you create any extension for Business Central, which will run in the cloud, either now or later, then you must ALWAYS create covering automated tests.

Anything else would be like not having a car insurance. Or like selling a car without safety belts.

Today this may seem as something extra we are "giving" the customers, but I'm sure, that in a few years we have adapted the same industry standards, as everybody else in the IT industry.

---

Although testing is not the subject of David Singleton and my session at NavTechDays next week (Friday 9am), then it is certainly something that we are going to discuss as well. And I hope to see you there, if you are in Antwerp.

 

PS: Just to make it clear. I do not believe that having automated tests will catch all possible errors or make our systems flawless. It depends on how and what you are testing. But that is a very different blog post.

D365 Quick Tip – Why should you Reassign Records to another user?

$
0
0
An underrated feature of Dynamics 365 sitting since a long time is the Reassign Records. This is a particularly important feature that if a key person stayed with the organization for quite some time and...(read more)

[Solved]D365 FO data entity Synch error

$
0
0

Hi Folks,


This quick post about one of the error while working on Data entities,


Error message: Severity Code Description Project File Line Suppression State Error ---> System.Data.SqlClient.SqlException: Violation of PRIMARY KEY constraint 'I_65518FIELD'. Cannot insert duplicate key in object 'dbo.SQLDICTIONARY'. The duplicate key value is (<tableId>, <FieldId>, 1, 0). 0



Possible solution: Delete all fields from staging table and regenerate the same through right click on data entity, refer below.


image


Now rebuild your solution and try.


Cheers!!!

Harry

Microsoft Dynamics SL 2018 CU1 - Available Now!

$
0
0

Microsoft Dynamics SL 2018 CU1 is available now to download from the following sites:

CustomerSource:

https://mbs.microsoft.com/customersource/Global/SL/downloads/product-releases/Microsoft-Dynamics-SL-2018

PartnerSource:

https://mbs.microsoft.com/partnersource/northamerica/deployment/downloads/product-releases/Microsoft-Dynamics-SL-2018

 

A new fact sheet and PowerPoint deck are available to download from the Microsoft Dynamics SL directory.

 

Microsoft Dynamics SL Directory:

CustomerSource:

https://mbs.microsoft.com/customersource/global/SL/news-events/news/MDSLDirectory

PartnerSource:

https://mbs.microsoft.com/partnersource/northamerica/sales-marketing/marketing-collateral/messaging-frameworks/SLDirectory

We created an XrmToolBox tool at Dynamics 365 Saturday Stockholm!

$
0
0
Last Saturday some 100+ experts, partners and user of Microsoft Dynamics 365 met up at the Microsoft offices in Stockholm, Sweden for a day packed with content at the Dynamics 365 Saturday event. I delivered...(read more)

Quick-Tip: The Dangers of Dynamics 365 JavaScript and Clipboard Inheritance

$
0
0
Hi Everyone, I posted a quick video on my YouTube channel where I discuss the dangers of cutting and pasting code, mostly JavaScript, from blogs, Word documents or PDF files. This can sometimes lead to issues if the code contains what we call "Smart Quotes." Smart Quotes are not quotes but rather symbols. They are interpreted by the […]

MVP is Not Just for Startups

$
0
0
One of the key goals for startups is to release their products quickly, which has lead to a minimum viable product (MVP) approach. Speed to market is so important that it's better to release a product...(read more)

Inconsistent Behavior of Liquid in the Custom JavaScript Attribute on Entity Lists in Dynamics 365 Portals

$
0
0
While working on my series about all the places you can put your code in a Dynamics 365 Portals implementation, I ran into an odd quirk with regards to how Liquid is handled in the Custom JavaScript attribute...(read more)

Error importing solutions - "The 'options' attribute is invalid"

$
0
0
I hope that this post will be short-lived, and few people need it, but I had an issue today in Dynamics 365 v9.1 (version 1710 (9.1.0.638) for completeness), where a solution file failed to import. The error occurred on initial parsing on the solution file. The error was 'This solution package cannot be imported because it contains invalid XML' , and the technical details were:

Schema Validation Failed

Schema validation of the customizations.xml file within the compressed solution package file failed. To manually validate and edit the file, you can download the schema file here and use an XML editor that supports schema validation to get more details.

The 'options' attribute is invalid - The value '' is invalid according to its datatype 'String' - The Pattern constraint failed

This was followed by a snippet of a view XML definition, which gave a hint to the problem. It looks like Dynamics 365 has new attribute 'options' within the fetchXml schema. This is currently set to an empty string, but the solution importer fails to recognise it, hence the error. The affected part of the xml is:

            <fetch version="1.0" output-format="xml-platform" mapping="logical" distinct="true" options="">

Fortunately, there's a relatively simple workaround to remove this attribute from a solutions file.
  1. Extract the solution xml
  2. Open customizations.xml
  3. Do a Find & Replace to remove all the following text: options=""
  4. Then recreate the .zip and it should import
This affects any solution that contains a view (I haven't tested to see if it also applies to charts or reports), and isn't due to a version mismatch between organisations, as I could replicate it by exporting and importing into the same organisation

Stuck Batches & Posting Interruptions in Dynamics GP

$
0
0
Stuck Batches & Posting Interruptions in Dynamics GP I’ve had multiple support cases about stuck batches and posting interruptions in Dynamics GP , so I thought I would write an article about the basics of advanced troubleshooting to help others ...read more

How to stay connected and find resources as a Microsoft partner

$
0
0

Monish Sood, senior marketing manager within the Microsoft One Commercial Partner organization in the US subsidiary, recently hosted a partner community call on the best ways to stay plugged into the Microsoft community and resources—particularly amidst Microsoft’s constant innovation, evolution, and improvements to make partners’ and customers’ experiences even better.

Below is an easy, simple guide to find the information you need to stay connected and informed, when you need it.

  1. Support: get answers to your questions

Many questions have already been asked and answered in the top partner questions library or community discussion forums, great resources for frequently asked questions. If your question hasn’t been answered in the library, you can chat with somebody in real time through our live chat feature. To speak with someone right away, visit partner.microsoft.com/support. You can also get to support through the upper right-hand corner from anywhere on the partner website.

  1. Microsoft events: find local and virtual events

Of course, events are a great way to keep up with the latest information, network, and develop business opportunities—but it’s important to know where to find all the events going on. Find and filter events in your area by topic, by product or solution area, or by role type at events.microsoft.com. Check out the Hot Sheet for US-specific events schedule, updated weekly with local events ranging from technical community calls, to boot camps and workshops.

  1. Partner marketing: customizable tools and marketing training

Recently we’ve done several website and content updates to help you market your Microsoft solutions better—regardless of the size of your marketing team. Resources focus on guidance, advice, and recommendations—including syndicated content, marketing assets, customizable tools, go-to-market services like search engine optimization and search engine marketing, and more.  

  1. Build your practice: guidance to help your business develop key capabilities

If you’re trying to understand where to begin building your cloud practice, or need help along the digital transformation journey, we have guides for you across solution areas—Modern Workplace, Apps & Infrastructure, Data & AI, and Business Applications, with more are being added.

  1. Partner training: enablement and training resources and opportunities

You can go to The Learning Portal for the latest trainings, tailored for your role, which are continuously refreshed and updated. Microsoft Learn offers step-by-step tutorials designed for specific technical roles and skill levels. Get immediate feedback and earn achievements at partner.microsoft.com/training. Find in-person or virtual training events on the Hot Sheet at aka.ms/hotsheetnews.

  1. Dashboard: track performance and manage your relationship with Microsoft

Manage customer referrals, Cloud Solution Provider (CSP) participation, and your membership all from within the dashboard, found in the top righthand corner of the partner website. Check out a great Microsoft Inspire presentation explains all the work and updates Microsoft is doing to the dashboard in less than 20 minutes. Watch it here.

  1. Microsoft Partner website: your one stop for all partner resources

The goal of ongoing updates to the partner website experience is to bring together the various places partners have to visit to find information or log in to manage accounts into one URL and a single identity. So far, we’ve connected about 20 sites at Microsoft through the partner website, all of it organized according to one principle: helping you get access to markets and customers.

  1. Partner community: collaborate and network with other partners

Join a thriving partner community on our Yammer network at aka.ms/uspyammer, made up of more than 19,000 partners who are also experts in their respective areas. Channels are organized by solution area and programs, with leads that specialize in those areas and answer questions within the community. Also, ask questions of the global partner community within Microsoft Partner Community (microsoftpartnercommunity.com).

  1. Social engagement: stay up to date on the latest news, events, and information

Our mass communications channels are meant for not only sharing information, but also building connections with you, our partners. Follow us on Twitter, Facebook, LinkedIn, Yammer, and the US OCP blog to stay informed and connected with whatever is important in the US partner world.

  1. aka.ms/uspartner

It’s our goal to create a personal, relevant, single digital experience for our partners across all the sites you engage with as a Microsoft partner. Aka.ms/uspartner hosts local content contextualized for you, building on the broader needs you have as a partner to find information more easily.

We hope you found this information useful. Watch the full call recording, review the slide deck, and share it with others in your organization!

Viewing all 51311 articles
Browse latest View live




Latest Images