1- # BeyondSignature for Invoices - Simple Integration Example
1+ # BeyondSignature for Invoices - Integration Example
22
3- This repository contains a streamlined example implementation of the BeyondSignature integration for Microsoft Dynamics 365 Business Central, specifically designed for invoice signature capture .
3+ This repository contains an example implementation of the BeyondSignature integration for Microsoft Dynamics 365 Business Central, demonstrating signature capture, document flow, and report integration .
44
55## Overview
66
7- The ** BeyondSignature for Invoices** extension demonstrates a simple and clean integration approach that leverages the BeyondSignature base app's built-in signature pad functionality. This implementation follows a minimalist approach by extending the Posted Sales Invoice page with a signature action that opens the signature pad provided by the BeyondSignature base app.
7+ The ** BeyondSignature for Invoices** extension demonstrates how to integrate with the BeyondSignature base app to:
88
9- ## Architecture
9+ - Capture digital signatures on documents
10+ - Flow signatures from quotes to orders to posted documents
11+ - Include signatures in custom report layouts
1012
11- ### Simplified Integration Approach
13+ ## Screenshots
1214
13- This implementation uses a ** lightweight integration pattern ** that:
15+ ### Capturing Signatures on Sales Quotes
1416
15- - Leverages the existing signature pad from the BeyondSignature base app
16- - Adds a single action to the Posted Sales Invoice page
17- - Requires minimal custom code
18- - Provides maximum compatibility and maintainability
17+ The Signature Pad FactBox allows users to capture customer signatures directly on document pages:
1918
20- ### Key Components
19+ ![ Sales Quote with Signature Pad ] ( app/docs/signature-pad-capture.png )
2120
22- #### 1. App Configuration ([ ` app/app.json ` ] ( app/app.json ) )
23- - ** App ID** : ` 0e2c64c6-0081-42f3-be3d-88563f978442 `
24- - ** Publisher** : BEYONDIT GmbH
25- - ** Version** : 2025.5.0.0
26- - ** Dependencies** : BeyondSignature base app (` f776fc38-ca64-4d43-b868-3fb8c73cd7ff ` )
27- - ** ID Range** : 50241-50250
28- - ** Target** : Cloud deployment
29- - ** Runtime** : 13.0
30-
31- #### 2. Page Extension ([ ` app/src/PostedSalesInvoice.PageExt.al ` ] ( app/src/PostedSalesInvoice.PageExt.al ) )
32- Extends the ` Posted Sales Invoice ` page with:
33- - ** Signature Action** : Adds a "Signature" button to the action bar
34- - ** Action Reference** : Promotes the signature action for easy access
35- - ** Modal Integration** : Opens the BeyondSignature pad in a modal dialog
21+ ### Custom Report Layout Selection
22+
23+ A custom Word layout extends the standard Sales Quote report to include the captured signature:
24+
25+ ![ Report Layouts] ( app/docs/report-layouts.png )
26+
27+ ### Printing with the Signature Layout
28+
29+ Select the custom ` SalesQuoteWithSignature.docx ` layout when printing:
30+
31+ ![ Print Dialog] ( app/docs/print-dialog.png )
32+
33+ ### Final Document Output
34+
35+ The printed document displays the captured signature:
36+
37+ ![ Sales Quote with Signature] ( app/docs/printed-document.png )
38+
39+ ## Features
40+
41+ ### Signature Capture
42+
43+ Add signature actions to any document page that opens the BeyondSignature pad:
3644
3745``` al
3846action("ABC Signature")
3947{
4048 ApplicationArea = All;
4149 Caption = 'Signature';
42- ToolTip = 'Executes the Signature action.';
4350 Image = Signature;
4451
4552 trigger OnAction()
@@ -52,110 +59,92 @@ action("ABC Signature")
5259}
5360```
5461
55- ## Implementation Details
62+ ### Document Flow
5663
57- ### Signature Integration
64+ Signatures automatically flow when documents are converted:
5865
59- The implementation uses the BeyondSignature base app's signature pad:
66+ | Source Document | Target Document |
67+ | -----------------| -----------------|
68+ | Sales Quote | Sales Order |
69+ | Sales Order | Posted Sales Invoice / Credit Memo |
70+ | Purchase Quote | Purchase Order |
71+ | Purchase Order | Posted Purchase Invoice / Credit Memo |
72+ | Service Quote | Service Order |
73+ | Service Order | Posted Service Invoice / Credit Memo |
6074
61- 1 . ** Action Trigger** : When users click the "Signature" action
62- 2 . ** Page Initialization** : The signature pad is initialized with:
63- - Record ID of the current invoice
64- - Ship-to Name for context
65- - Ship-to City for additional context
66- 3 . ** Modal Display** : The signature pad opens as a modal dialog
67- 4 . ** Data Handling** : All signature data management is handled by the base app
75+ ### Report Integration
6876
69- ### Client Compatibility
77+ Include signatures in custom report layouts using a report extension:
7078
71- The extension is designed to work across all client types:
72- - ** Web Client** : Full functionality with mouse/touch input
73- - ** Tablet** : Optimized for touch signature input
74- - ** Phone** : Responsive design for mobile signature capture
79+ ``` al
80+ reportextension 50241 "ABC Sales Quote" extends "Standard Sales - Quote"
81+ {
82+ WordLayout = '.\src\SalesQuoteWithSignature.docx';
83+ dataset
84+ {
85+ add(Header)
86+ {
87+ column(ABCSignature; TempItem."Picture") { }
88+ }
89+ }
90+ }
91+ ```
7592
7693## File Structure
7794
7895```
79- ├── app.json # App manifest and configuration
80- ├── src/
81- │ └── PostedSalesInvoice.PageExt.al # Page extension with signature action
82- └── Translations/
83- └── BeyondSignature for Invoices.g.xlf # Translation file
96+ app/
97+ ├── app.json # App manifest
98+ ├── SignFlow.PermissionSet.al # Permission set
99+ ├── docs/ # Documentation images
100+ └── src/
101+ ├── PostedSalesInvoice.PageExt.al # Signature action on Posted Sales Invoice
102+ ├── SalesFlow.Codeunit.al # Document flow handling
103+ ├── SalesQuote.ReportExt.al # Report extension with signature
104+ └── SalesQuoteWithSignature.docx # Custom Word layout
84105```
85106
86- ## Key Features
87-
88- ### ✅ Minimal Code Footprint
89- - Single page extension file
90- - Leverages existing BeyondSignature infrastructure
91- - No custom signature handling logic required
92-
93- ### ✅ Easy Maintenance
94- - Minimal custom code to maintain
95- - Updates handled by the BeyondSignature base app
96- - Simple integration pattern
97-
98- ### ✅ Full Functionality
99- - Complete signature capture capabilities
100- - Automatic data storage and retrieval
101- - Context-aware initialization
102-
103- ### ✅ Multi-Platform Support
104- - Works on web, tablet, and phone clients
105- - Responsive signature input
106- - Consistent user experience
107-
108107## Prerequisites
109108
110- 1 . ** Microsoft Dynamics 365 Business Central** (version 24.0 or later)
111- 2 . ** BeyondSignature base app** (version 2025.0.0.0 or later)
112- 3 . ** AL Development Environment** with runtime 13.0
109+ - Microsoft Dynamics 365 Business Central (version 24.0 or later)
110+ - BeyondSignature base app (version 2025.0.0.0 or later)
113111
114112## Installation
115113
116- 1 . Install the BeyondSignature base app dependency
114+ 1 . Install the BeyondSignature base app
1171152 . Deploy this extension to your Business Central environment
118- 3 . The signature action will be automatically available on Posted Sales Invoice pages
116+ 3 . The signature action will be available on Posted Sales Invoice pages
117+ 4 . Select the custom report layout in Report Layouts for Sales Quotes
119118
120119## Usage
121120
122- 1 . Navigate to any Posted Sales Invoice
123- 2 . Click the ** "Signature"** action in the action bar
124- 3 . The BeyondSignature pad will open in a modal dialog
125- 4 . Users can capture signatures using mouse, touch, or stylus input
126- 5 . Signatures are automatically saved and linked to the invoice
121+ ### Capturing a Signature
127122
128- ## Development Notes
123+ 1 . Open a document (e.g., Sales Quote, Posted Sales Invoice)
124+ 2 . Click the ** Signature** action
125+ 3 . Have the customer sign on the Signature Pad
126+ 4 . Close the pad to save
129127
130- ### Integration Benefits
128+ ### Printing with Signatures
131129
132- - ** Reduced Complexity ** : No need to implement custom signature handling
133- - ** Automatic Updates ** : Signature functionality updates with the base app
134- - ** Proven Reliability ** : Uses tested and validated signature components
135- - ** Consistent UX ** : Maintains standard BeyondSignature user experience
130+ 1 . Navigate to ** Report Layouts ** and select the ` SalesQuoteWithSignature ` layout for report 1304
131+ 2 . Open a Sales Quote with a captured signature
132+ 3 . Click ** Print ** and select the custom layout
133+ 4 . The signature appears on the printed document
136134
137- ### Extension Points
135+ ## Client Compatibility
138136
139- This simple integration can be easily extended to:
140- - Add signature actions to other document types
141- - Customize the signature pad initialization parameters
142- - Implement additional validation or workflow logic
143- - Add custom signature-related fields or processing
144-
145- ### Best Practices Demonstrated
146-
147- - ** Dependency Management** : Proper use of app dependencies
148- - ** Minimal Footprint** : Lean implementation with maximum functionality
149- - ** Standard Patterns** : Following AL development best practices
150- - ** Localization Support** : Translation-ready implementation
137+ The extension works across all client types:
138+ - ** Web Client** : Mouse and touch input
139+ - ** Tablet** : Optimized for touch signature input
140+ - ** Phone** : Responsive mobile signature capture
151141
152142## Support
153143
154- For technical support and additional information:
155- - ** Website** : https://beyondit.gmbh
144+ - ** Website** : https://beyond365.de
156145- ** Publisher** : BEYONDIT GmbH
157146- ** Documentation** : https://www.beyondit.gmbh/
158147
159148## License
160149
161- This example is provided by BEYONDIT GmbH as a reference implementation for BeyondSignature integration in Microsoft Dynamics 365 Business Central .
150+ Copyright BEYONDIT GmbH. All rights reserved .
0 commit comments