Book Image

Mastering Microsoft Dynamics 365 Business Central - Second Edition

By : Stefano Demiliani, Duilio Tacconi
5 (3)
Book Image

Mastering Microsoft Dynamics 365 Business Central - Second Edition

5 (3)
By: Stefano Demiliani, Duilio Tacconi

Overview of this book

This book dives straight into guiding you through the process of building real-world solutions with the AL language and Visual Studio Code. It emphasizes best practices and extensibility patterns to ensure your extensions are well-structured, maintainable, and meet the needs of modern businesses. You'll learn advanced AL techniques, report creation methods, debugging strategies, and how to leverage telemetries for monitoring. Additionally, it covers performance optimization practices and API integration to help you create efficient and interconnected solutions. With a focus on extension development, this new edition allows you to jump right into coding without spending time on setup processes. This book introduces new chapters covering essential tasks that Business Central developers frequently encounter, such as file handling and printing management. Finally, the book expands its scope by including chapters on various integration aspects, including VS Code extensions, GitHub DevOps, Azure services, and Power Platform integrations. We’ll wrap up by covering Copilot capabilities in Business Central and how you can create your own generative AI copilots. By mastering these concepts and techniques, you'll be well-equipped to create powerful and customized solutions that extend the capabilities of Dynamics 365 Business Central.
Table of Contents (21 chapters)
19
Other Books You May Enjoy
20
Index

Using Persistent Blobs

If you check the Microsoft’s Base Application, you wil discover that a table called “Persistent Blob” is available (table Id = 4151).This table is not directly accessible by code (its access level is Internal) and it’s defined as follows:

table 4151 "Persistent Blob"
{
    Access = Internal;
    fields
    {
        field(1; "Primary Key"; BigInteger)
        {
            AutoIncrement = true;
            DataClassification = SystemMetadata;
        }
        field(2; Blob; BLOB)
        {
            DataClassification = CustomerContent;
        }
    }
    keys
    {
        key(Key1; "Primary Key")
        {
            Clustered = true;
        }
    }
    fieldgroups
    {
    }
}

This table is used to store Blob values between sessions and you can use it via the Persistent Blob codeunit, that exposes the following methods:

  • Create
  • Exists
  • Delete
  • CopyFromInStream
  • CopyToOutStream

The following code...