Add hand written signature to any page in Business Central using Javascript

Maybe signing documents virtually is not the most legal signature but its cool anyway. This example here uses signature pad and implements in Business Central so you can save hand written signatures to documents inside Business Central. This example uses standard Sales Order page. Not 100% sure if its useful or not but maybe it is. For example collecting customer signatures on the field for service orders or maybe letting the customer pay the invoice by drawing a cat picture....

November 25, 2021 · Villem Heinsalu

How to set focus on fields using Javascript in Business Central

Heres an example of how to set field focus in Business Central using one line of Javascript. Setting focus on fields can be useful for example when using barcode scanners or doing some other quick data entry. This example extends sales order lines and after entering the Item No. focuses on Quantity and after quantity focuses on Unit Price etc. Al Code: pageextension 50100 "Ext. Sales Order Subform" extends "Sales Order Subform" { layout { addlast(content) { usercontrol(SetFieldFocus; SetFieldFocus) { ApplicationArea = All; trigger Ready() begin CurrPage....

November 19, 2021 · Villem Heinsalu

How to make standard pages without application area / usage category searchable in Business Central

When page is missing ApplicationArea and UsageCategory it is not searchable in the searchbar and its not possible to bookmark the page to Role Center. For example page 5407 “Prod. Order Comp. Line List” is defined like this: Its not possible to change ApplicationArea or UsageCategory in Page extensions. But what if users still want to find page 5407 “Prod. Order Comp. Line List” in search bar and bookmark it?...

August 19, 2021 · Villem Heinsalu

Error when publishing App via Powershell: Unsupported symbol type 393316

If you try to publish app via Powershell to onprem or Docker sandbox environment and you get error Unsupported symbol type 393316 where the number can be whatever then it just means that the version of the app you are trying to publish is not compatible with your installed BC version. If you download symbols from your Business Central you try to publish and try to build the app when you will get the actual error and missing types....

August 16, 2021 · Villem Heinsalu

Using Azure Insights in Business Central

It very easy to setup and use Azure Insights in Business Central. You can read how to set it up here But how to actually analyze the logs in Azure? First I’ll set up some custom events that I want to send to Azure. Little wrapper around the Session.LogMessage so its easier to use: local procedure LogMessage(EventId: Text[50]; Message: Text[200]; Dimension: Text[50]) var TelemetryDimensions: Dictionary of [Text, Text]; begin TelemetryDimensions.Add('Method', Dimension); Session....

May 14, 2021 · Villem Heinsalu

Difference in pass-by value vs pass-by reference in AL language

Important detail that caused me a bug recently and I want to share with others who are writing AL Code for Business Central. When you pass a record to a procedure then you can do that either by pass-by value or pass-by reference. When you have code like this: CurrPage.SetSelectionFilter(ApprovalEntriesSelected); ApproveEntry(ApprovalEntriesSelected); and you pass-by value: procedure ApproveEntry(Entry: Record "Approval Workflow Entry") then all filters are cleared on the record and you get a empty record on your procedure....

May 6, 2021 · Villem Heinsalu

How to post assembly orders with item tracking via Odata API in Business Central

Here’s a example of how to post Assembly orders and lines and add item tracking to the lines and header via Odata web services in Business Central. First API page to create/read/update assembly orders: page 50130 AssemblyOrders { PageType = API; APIGroup = 'BCPortal'; APIPublisher = 'BCPortal'; APIVersion = 'v1.0'; EntitySetName = 'assemblyOrders'; EntityName = 'assemblyOrder'; DelayedInsert = true; SourceTable = "Assembly Header"; layout { area(Content) { repeater(AssemblyHeader) { field(SystemId; Rec....

April 22, 2021 · Villem Heinsalu

Full example of how to implement and use Azure Storage Queues in Business Central

Last month I had some time to play around and I did small project which implemented Azure Storage Queues in Business Central. What are Azure Storage Queues? They are service in Azure which allows to store some message in queue over HTTP and then poll these messages in some message receiver. Why are they useful? They are useful in some integration scenarios where you have large amounts of incoming data and you cannot process them in real time....

April 19, 2021 · Villem Heinsalu

Working with job queue parameter strings in Business Central

Using job queue parameters you can pass some data to your codeunits that you run via Job queue. How it works? Define your codeunit with TableNo = "Job Queue Entry For example: codeunit 50149 MyCodeunit { TableNo = "Job Queue Entry"; trigger OnRun() var SalesOrderNo: Code[20]; begin if Rec."Parameter String" <> '' then UpdateSalesOrderExternalDocNo(Rec."Parameter String"); end; local procedure UpdateSalesOrderExternalDocNo(SalesOrderNo: Code[20]) var SalesHeader: Record "Sales Header"; begin if SalesHeader.get(SalesHeader."Document Type"::Order, SalesOrderNo) then begin SalesHeader....

April 12, 2021 · Villem Heinsalu

List of Podcasts related to Business Central

I enjoy listening to podcasts while walking the dog or doing stuff in the garden. Here’s a list of podcasts related to Business Central that I listen to from time to time. Techman talks Dynamics A Shot of Business Central and A Beer Business Central Manufacturing Show The Innovia Conversation Steve reads hes blog This is not strictly BC podcast but talks also about BC and I like it anyway Know any more podcast’s that Im not aware of yet?...

April 9, 2021 · Villem Heinsalu