Skip to content

Commit 027da78

Browse files
Add BeyondSignature integration for invoice signature capture and document flow
1 parent d5ebb15 commit 027da78

18 files changed

Lines changed: 121 additions & 102 deletions

README.md

Lines changed: 89 additions & 100 deletions
Original file line numberDiff line numberDiff line change
@@ -1,45 +1,52 @@
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
3846
action("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
117115
2. 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.

ThirdParties/app/.vscode/rad.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
{"Added":[],"Modified":[],"Removed":[]}
File renamed without changes.

app/Translations/BeyondSignature for Invoices.g.xlf renamed to ThirdParties/app/Translations/BeyondSignature for Invoices.g.xlf

File renamed without changes.
File renamed without changes.
44.5 KB
Loading
65.4 KB
Loading

0 commit comments

Comments
 (0)