📋 Effortless Copy Actions: From Business Central to Clipboard 📎
This extension enables users to copy formatted customer, vendor, and transaction data from Business Central directly to the clipboard with a single action, ready to share via email, Teams, or other applications. It demonstrates a modular AL architecture using page extensions, codeunits, and WebPageViewer to handle data formatting and clipboard operations.

post Gerardo Rentería Blog
"Page extensions capture user actions that allow entity data to be formatted into two-column text."
Key points
- Modular architecture separates formatting logic by entity type into dedicated codeunits for customers, vendors, and ledger entries
- WebPageViewer add-in renders HTML with two-column layout and JavaScript clipboard API for seamless data copying
- Page extensions add copy actions to Customer List, Vendor List, and Customer Ledger Entries, integrating the feature into existing workflows
- Formatted data preserves layout when pasted into external applications like email, Teams, or text editors
Quotes
- “Page extensions capture user actions that allow entity data to be formatted into two-column text.” (Explains how the solution integrates copy functionality into existing pages without modifying core objects)
- “Executes document.execCommand(‘copy’) to copy the content to the system clipboard with visual feedback.” (Describes the JavaScript mechanism that actually places formatted data into the system clipboard)
- “The copied information is now ready to be pasted into any application: email, Teams, WhatsApp, or any text editor.” (Demonstrates the practical benefit of preserving formatting across different external applications)
AL objects mentioned
As named in the post. A name that matches one object page by exact type and name links to it; the others stay as named.
- codeunit “GDRGClipboardMgtCust”
- codeunit “GDRGClipboardMgtVend”
- codeunit “GDRGClipboardMgtCustLedg”
- page “GDRGClipboardHelper”
- page “GDRGCustomerListExt”
- page “GDRGVendorListExt”
- page “GDRGCustLedgerEntries”
- permissionset “GDRGClipboard”
Not found in BC28-30: codeunit “GDRGClipboardMgtCust”, codeunit “GDRGClipboardMgtVend”, codeunit “GDRGClipboardMgtCustLedg”, page “GDRGClipboardHelper”, page “GDRGCustomerListExt”, page “GDRGVendorListExt”, page “GDRGCustLedgerEntries”, permissionset “GDRGClipboard”.
Context
- Features: Copy to clipboard action, Two-column formatted layout, Dynamic dialog titles, HTML rendering via WebPageViewer, JavaScript event handling, Data formatting by entity type
Source: Gerardo Renteria, community blog. Summary, key points and quotes are derived (CONTENT-NOTICE.md); read the original for the full text.