How to define a report as default?


for any reason do we have several reports for the same document.

When I print an invoice in a specific company, it uses SalesInvoice.Report_IT,

But with the default 365 template and not the uploaded Docentric layout. All other companies are working great with and the uploaded Docnetric templates. How can I delete the _IT and FR stuff and use one report for all companies?

Hello Stefan, thank you for your question.

In short, deleting the localized versions of the report in your screenshot will not consolidate the use of a single custom template for all your companies. However, I will describe detailed steps required to achieve this and the reasons behind them.

Use Custom and Replica Templates for Localized SSRS Reports

In standard D365FO, some reports such as sales invoice come as localized variants, as in your case. The SalesInvoice.Report_IT and SalesInvoice.Report_FR, for example, are localized versions of the standard SalesInvoice.Report. Please note that Docentric has no means of changing what report is executed when you print the report from different legal entities (i.e., companies).

The use of report’s localized version is determined by the country and region associated with a particular legal entity. As our reporting solution follows which report is executed, and only routes the registered reports through the Docentric pipeline, we first need to know which report is being run.

Step 1: Determine the technical name of the report

To determine the exact report technical name, we need to enable the following setting in User options (learn more):

Now, when printing the same report from different legal entities, you will see the names of the reports displayed in the message bar at the top of the screen.

As you can see, printing a sales invoice from three different legal entities results in different technical names of the report:

  • SalesInvoice.Report
  • SalesInvoice.Report_FR
  • SalesInvoice.Report_IT

Step 2: Registration of the report

As mentioned above, to run a report through the Docentric pipeline, we need to register the specific report for which you want to use Docentric’s advanced reporting features and capabilities (e.g., Docentric templates).

(You have already registered these localized versions of the report in the Report table, which is a good start. We would instruct you to do so if you didn’t have this report registered yet.)

If you want to use the same Docentric template for different legal entities that may require localized versions of the SSRS report, please follow the steps below:

  1. Check if the technical name of the report can be found among the reports already present in the Report table;

  2. If you do not see this report name registered (e.g. SalesInvoice.Report_IT), click on the New button to register this report;

  3. Enter the exact name of the SSRS report and the design (see below, 4 and 5);

  4. As you can see below, no templates are yet available for this report, resulting in a temporary validation warning (6 and 7);

  5. Activate the Use only print destinations setting (8) to be able to run this report based on the existing SSRS design (Optional: Validate the report after this setting is enabled);

  6. Click the Generation options menu item (9) to activate the generation of the data source (learn more)

  7. Note that the DSP class selection (10) is set to Default DSP for all newly registered reports.

Step 3: Selection of the DSP class

The DSP class is one of the most important report-specific settings, which is why we need to pay particular attention to it. Among other things, it affects the structure of the data source.

If you register a report that does not exist as one of the Docentric replicas, leave the default DSP class selected unchanged. Here you will find a list of all reports that are available as Docentric replicas: Link >>

On the other hand, if you register a variant of the report (i.e. a localized or customized SSRS report) that already exists as a Docentric replica, as in your case, we need to change the DSP class to be used for this report.

The DSP class affects the structure of the report’s data source and allows you to take advantage of Docentric’s advanced reporting features (learn more), such as Docentric replica templates, enhanced emailing capabilities, report-specific placeholders, etc.

In the case of the Italian localization of the sales invoice (SalesInvoice.Report_IT), we therefore choose the same DSP class as for the SalesInvoice.Report: DocSalesInvoiceReportDSP. Below we can see the final setup for the SalesInvoice.Report_IT that has just been registered:

Step 4: Creating a matching DDSP for the localized report

Once the data source generation has been activated, we can generate the DDSP and finalize the setup, including the report template.

In order to use one of the existing sales invoice templates (an existing Docentric replica or one of the custom report templates) for use with the localized SalesInvoice.Report_IT, we need a matching data source file (DDSP). The DDSP will be downloaded to the browser when we run this report.

Step 5: Update an existing report template with the new DDSP

Next, we need to open the template we want to use for this report and upload the new DDSP. In my case, I will demonstrate this by using a custom template (below, 1) that I currently use for the SalesInvoice report (2).

Clicking the Download button and opening the custom template in Word allows us to upload the previously generated DDSP (below, 5) into the template.

When uploading the DDSP, please ensure no tagging elements in the Element tree display warnings (6). If this is the case, we must investigate possible differences between the data sources and address this problem. Save the new variant of the template under a meaningful name.

Switching to D365, we need to upload the custom template with the updated data source. Open the SalesInvoice.Report_IT report, and click Template file > Attach to upload the custom template into the environment:

After the template has been uploaded (above, 7), deactivate the Use only print destinations setting.

Step 6: Test the new custom template

Now we can run the Italian localized sales invoice report and verify that the printed document is based on the custom report template:

We can see above the result of printing the document, with the details in the message bar confirming the correct technical name of the report and the expected Docentric Template ID.

Final steps

The last steps include deactivating the generation of the data source and validating the template (9 and 10).

As a side note, specifically for the report in question - SalesInvoice.Report_IT - Docentric also provides a replica template you can access by clicking the Reload system > Reload all button (above, 11).


I hope the description of the process gives sufficient insight into the basic mechanism and logic of the report execution process and how to use the same template for the localized report variants. You can follow the same steps for any other legal entity leading to the same result, e.g. the French company.

A similar process of identifying the report name, registering the report, generating the data source, and uploading the template with a matching DDSP is also required in the case of a previously customized SSRS report. You can watch the following video tutorial to learn more about this scenario: Link >>

Please let me know if this has helped.

Hi Jeremej,

thanks a lot for your support, anything works now. I stumbled across something that I don’t understand. The ddsp file contains each invoice line twice.there is a field called “InvoiceReportLineType_IT”. In one line it’s true, in the other one it’s false.Probably something related to the electronic invoicing, Italy uses.
However, can I filter them out with a condition in my list element?

Hello Stefan, thank you for your update. I am glad to hear that you were able to sort out the reports :+1:

As for the other question, is filtering records in repeater tagging elements (Group, List) possible in the template? It certainly is :slight_smile:

Here is a link to a similar forum post that discusses such a scenario: How to conditionally hide some table rows

I hope this helps you. If you have further questions, we can move to the other thread. We will be happy to help you!

1 Like