Public Profile
  • Support Package No. in Phys. Invt. Record Line

    In Physical Inventory Record Line, there is currently no support for typing a Package No. Lot Nos and Serial Nos are supported but Package No. is currently missing.
  • Automatically show a field as mandatory if the field is marked as NotBlank = true

    This idea is a development thing but also a UI improvement. If ShowMandatory is not set on a page field, then I suggest to consider the field as ShowMandatory = true if the property NotBlank = true in the page or in the table.
  • Expose ObsoleteState / ObsoleteReason in the Page Inspector

    Hello, Consultants (and sometimes developers) might be confused between obsolete and new functionality. For instance, when Item Cross-References/Item References exists or Customer Template/Config. Template are existing at the same time. It might be useful to expose the ObsoleteSate / ObsoleteReason in the Page Inspector. Typically, a exclamation mark in the front of the table/field with a tooltip explaining the reason would be nice.
  • Improvements regarding To-dos creation

    When you create a new To-do from a Contact card, there is few issues/strange choices: 1. You can change the Salesperson Code until you select Type = Phone call. Then the salesperson code cannot be changed anymore. I would say the Salesperson Code should be editable whatever the type of task is. 2. You can setup a start time (should not it be renamed Starting Time?) / ending time for a Type = Meeting. It could be useful to also set up a Starting/Ending time for a phone call. 3. When you create a task of Type = Meeting, then the Contact No. is always empty in the Task List page (PAG 5096) opened from Tasks page (PAG 5099) > Show Matrix > drilldown on a cell
  • Improve error message when a report has no layout

    When a report has no layout (typically if you create a report with a Word layout and you miss to set DefaultLayout = Word), then BC online returns a generic error page telling that an error occured... On-premise, the Windows event log gives a bit more info (see below). Could you improve the error message in the client so it can also be understandable in BC online? Windows event log: Tenant ID: Environment Name: Environment Type: User: Type: System.ArgumentNullException Message: Value cannot be null. Parameter name: reportLayout ParamName: reportLayout StackTrace: at Microsoft.Dynamics.Nav.Types.Report.Runtime.LocalReportHandle..ctor(Int32 reportId, Byte[] reportLayout, Boolean enableExternalImages, Boolean enableHyperlinks, Boolean enableExternalAssemblies, Boolean enableReportViewerInternalAppDomainIsolation, Boolean enableAppDomainMonitor) at Microsoft.Dynamics.Nav.Runtime.NavSession.<>c__DisplayClass190_0.b__0(MetaReport metaReport) at Microsoft.Dynamics.Nav.Runtime.LocalReportCache.GetLocalReport(MetaReport metaReport) at Microsoft.Dynamics.Nav.Runtime.NavReport.EffectiveLocalReportHandle() at Microsoft.Dynamics.Nav.Runtime.ReportSaveAsRenderer.Start() at Microsoft.Dynamics.Nav.Runtime.DataItemIterator.b__64_0() at Microsoft.Dynamics.Nav.Runtime.DataItemIterator.ExecuteDataItemIterator(NavSqlConnectionIntent connectionIntent) at Microsoft.Dynamics.Nav.Runtime.NavReport.<>c__DisplayClass154_0.b__0() at Microsoft.Dynamics.Nav.Runtime.ApplicationObjectRootScope.AddApplicationObjectRootScope[T](NavApplicationObjectBase applicationObject, Func`1 action) at Microsoft.Dynamics.Nav.Runtime.NavReport.RunReportInternal(NavRecord record, Boolean displayResult, ReportRunOptions reportRunOptions, Nullable`1 formResult) at Microsoft.Dynamics.Nav.Runtime.NavReport.RunReport(NavRecord record, ReportRunOptions reportRunOptions, Nullable`1 formResult) at Microsoft.Dynamics.Nav.Runtime.NavReport.RunReport(Nullable`1 requestWindow, Nullable`1 systemPrinter, NavRecord record, ReportRunMode mode, String printerName) at Microsoft.Dynamics.Nav.Runtime.NavReport.RunReport(Int32 reportId, Nullable`1 requestWindow, Nullable`1 systemPrinter, NavRecord record, ReportRunMode runMode) at Microsoft.Dynamics.Nav.Runtime.NavReport.Run(Int32 reportId) at Microsoft.Dynamics.Nav.Service.NSService.RunReport(ApplicationMethodRequest applicationMethodRequest) at SyncInvokeRunReport(Object , Object[] , Object[] ) at System.ServiceModel.Dispatcher.SyncMethodInvoker.Invoke(Object instance, Object[] inputs, Object[]& outputs) at Microsoft.Dynamics.Nav.Service.ServiceOperationInvoker.RunInTransactionCombinator(ServiceOperation innerOperation, NSServiceBase serviceInstance, MethodBase syncMethod, Object[] inputs, Object[]& outputs) at Microsoft.Dynamics.Nav.Service.ServiceOperationInvoker.<>c__DisplayClass28_1.b__1(NSServiceBase serviceInstance, Object[] inputs, Object[]& outputs) at Microsoft.Dynamics.Nav.Service.ServiceOperationInvoker.TransientErrorRetryCombinator(ServiceOperation innerOperation, NSServiceBase serviceInstance, MethodBase syncMethod, Object[] inputs, Object[]& outputs) at Microsoft.Dynamics.Nav.Service.ServiceOperationInvoker.<>c__DisplayClass28_1.b__1(NSServiceBase serviceInstance, Object[] inputs, Object[]& outputs) at Microsoft.Dynamics.Nav.Service.ServiceOperationInvoker.ErrorMappingCombinator(ServiceOperation innerOperation, NSServiceBase serviceInstance, MethodBase syncMethod, Object[] inputs, Object[]& outputs) Source: Microsoft.Dynamics.Nav.Types.Report.Runtime HResult: -2147467261 StackTrace: at Microsoft.Dynamics.Nav.Types.Report.Runtime.LocalReportHandle..ctor(Int32 reportId, Byte[] reportLayout, Boolean enableExternalImages, Boolean enableHyperlinks, Boolean enableExternalAssemblies, Boolean enableReportViewerInternalAppDomainIsolation, Boolean enableAppDomainMonitor) at Microsoft.Dynamics.Nav.Runtime.NavSession.<>c__DisplayClass190_0.b__0(MetaReport metaReport) at Microsoft.Dynamics.Nav.Runtime.LocalReportCache.GetLocalReport(MetaReport metaReport) at Microsoft.Dynamics.Nav.Runtime.NavReport.EffectiveLocalReportHandle() at Microsoft.Dynamics.Nav.Runtime.ReportSaveAsRenderer.Start() at Microsoft.Dynamics.Nav.Runtime.DataItemIterator.b__64_0() at Microsoft.Dynamics.Nav.Runtime.DataItemIterator.ExecuteDataItemIterator(NavSqlConnectionIntent connectionIntent) at Microsoft.Dynamics.Nav.Runtime.NavReport.<>c__DisplayClass154_0.b__0() at Microsoft.Dynamics.Nav.Runtime.ApplicationObjectRootScope.AddApplicationObjectRootScope[T](NavApplicationObjectBase applicationObject, Func`1 action) at Microsoft.Dynamics.Nav.Runtime.NavReport.RunReportInternal(NavRecord record, Boolean displayResult, ReportRunOptions reportRunOptions, Nullable`1 formResult) at Microsoft.Dynamics.Nav.Runtime.NavReport.RunReport(NavRecord record, ReportRunOptions reportRunOptions, Nullable`1 formResult) at Microsoft.Dynamics.Nav.Runtime.NavReport.RunReport(Nullable`1 requestWindow, Nullable`1 systemPrinter, NavRecord record, ReportRunMode mode, String printerName) at Microsoft.Dynamics.Nav.Runtime.NavReport.RunReport(Int32 reportId, Nullable`1 requestWindow, Nullable`1 systemPrinter, NavRecord record, ReportRunMode runMode) at Microsoft.Dynamics.Nav.Runtime.NavReport.Run(Int32 reportId) at Microsoft.Dynamics.Nav.Service.NSService.RunReport(ApplicationMethodRequest applicationMethodRequest) at SyncInvokeRunReport(Object , Object[] , Object[] ) at System.ServiceModel.Dispatcher.SyncMethodInvoker.Invoke(Object instance, Object[] inputs, Object[]& outputs) at Microsoft.Dynamics.Nav.Service.ServiceOperationInvoker.RunInTransactionCombinator(ServiceOperation innerOperation, NSServiceBase serviceInstance, MethodBase syncMethod, Object[] inputs, Object[]& outputs) at Microsoft.Dynamics.Nav.Service.ServiceOperationInvoker.<>c__DisplayClass28_1.b__1(NSServiceBase serviceInstance, Object[] inputs, Object[]& outputs) at Microsoft.Dynamics.Nav.Service.ServiceOperationInvoker.TransientErrorRetryCombinator(ServiceOperation innerOperation, NSServiceBase serviceInstance, MethodBase syncMethod, Object[] inputs, Object[]& outputs) at Microsoft.Dynamics.Nav.Service.ServiceOperationInvoker.<>c__DisplayClass28_1.b__1(NSServiceBase serviceInstance, Object[] inputs, Object[]& outputs) at Microsoft.Dynamics.Nav.Service.ServiceOperationInvoker.ErrorMappingCombinator(ServiceOperation innerOperation, NSServiceBase serviceInstance, MethodBase syncMethod, Object[] inputs, Object[]& outputs)
  • Improved Test Field and Field Error UX

    For customers and consultants, if we could improved the TestField and FieldError functions it would be awesome. These functions are very handy for the developer but not easy to understand in client. 


    Some ideas:


    - if the FieldError or TestField is related to the a record currently displayed on the page: move the focus to that field


    - if lookuppageid of the record is editable, give the. opportunity to open the page, on the record, focused on the field where the error comes from


    - if there is a cardpageid attached to the lookuppage, then open the cardpage instead- give the developer the hability to provide a action (like in notifications) or a link to help the user fix the error. The link could be a help page but also a link to a page in the client (created with GetUrl) 

  • Allow delegated admin to use the Power BI connector for their customers

    Related to this Yammer thread:https://www.yammer.com/dynamicsnavdev/#/Threads/show?threadId=1786809800613888


    The Power BI connector for Business Central online is always connected to your native tenant. If you are a delegated admin (VAR), you are not able to design/make Power BI reports for your customers with this connector.

    The only way is to use the OData connector or, ask each end customer to create an account in their own tenant for the maker.


    My proposal: could you add a parameter in the Business Central connector to specify the aadTenantId?

  • OData : support referencing requests in a batch call

    This suggestion is related to this Yammer thread: (1) Yammer : Dynamics 365 Business Central Development : Afficher la conversation


    Current problem:

    We cannot run a batch call in a single transaction if we have to insert a record and call an bound action of this inserted record.


    The solution exists in the OData protocol (source: Batch calls with Business Central APIs (3) – Tips and Tricks – Kauffmann @ Dynamics 365 Business Central):

    OData V4.01 even supports referencing new entities without change sets. However, it appears that Business Central is not using OData v4.01, the response headers include an OData-Version: 4.0 header.

    https://docs.oasis-open.org/odata/odata-json-format/v4.01/odata-json-format-v4.01.html#_Toc38457783



    It would be nice to support this, it would help to get much consistant transactions and less API calls.

  • [FR] Export DEB DTI: allow extending the object by replacing DotNet variables by native Xml datatypes



    In France, we use the report 10821 "Export DEB DTI" to export the intrastat.

    This report is actively using codeunit 10821 "Export DEB DTI" to create the XML file (https://github.com/StefanMaron/MSDyn365BC.Code.History/blob/fr-20/BaseApp/Source/Base%20Application/Intrastat/ExportDEBDTI.Codeunit.al).


    Unfortunately, the codeunit cannot be extended (or duplicated) because it is entirely written with DotNet variable.

    The events proposed in the codeunit could be sufficient for our needs, but we cannot use them because of the existence of .Net variable.


    Could you make the codeunit extensible (without .Net variable but with native AL Xml variables) so we can extend this feature to comply with the current regulation?


    Please note that the needs are industry specific requirements by customs. Not sure that it should be included in the Base App.


  • [FRA] Support electronic invoicing between B2G and B2B

    In France, it is mandatory for a few years to send invoices to institutional entities - B2G transactions - to a public platform named Chorus Pro (https://portail.chorus-pro.gouv.fr).


    In 2024, it will be mandatory to send for B2B transactions and the portal Chorus Pro will also support B2B transactions.


    API are available to send invoices (in PDF or with an detailed XML description): API Chorus Pro - api.gouv.fr


    Will you support this scenario as customers are asking if this legal enforcement of electronic invoices will be natively supported by Business Central?