Cloud Bridge – User Documentation
Table of Contents
- VISIONDATA Cloud Bridge – Online Documentation
- Table of Contents
- 1. Welcome to VISIONDATA Cloud Bridge
- What is Cloud Bridge?
- How does Cloud Bridge work?
- Architecture Overview
- 2. Getting Started
- 2.1 Getting Started with Cloud Bridge
- Quick Start Overview
- What You Need
- Who Does What?
- Next Steps
- 2.2 Frequently Asked Questions
- FAQ
- Minimum Requirements
- 2.1 Getting Started with Cloud Bridge
- 3. Setting Up Cloud Bridge
- 4. Printing Features
- 4.1 Printers
- Setting Up Printers
- 4.2 Print Jobs
- Printing Reports
- Monitoring Print Jobs
- 4.1 Printers
- 5. File Features
- File Access from Business Central
- Prerequisites
- Common Scenarios
- Scenario 1: Processing Import Files
- Scenario 2: Creating Export Files
- Scenario 3: Monitoring Directories
- Security & Best Practices
- 6. Troubleshooting
- Common Problems and Solutions
- Agent Not Responding
- Printer Not Found
- File Access Denied
- Invalid Azure Relay Connection String
- Common Problems and Solutions
- 7. Glossary
- Terms
- Abbreviations
1. Welcome to VISIONDATA Cloud Bridge
What is Cloud Bridge?
Cloud Bridge Connector is a Business Central extension that connects cloud and on-premises environments to local resources – without VPN configuration.
What can you do with Cloud Bridge?
| Feature | Description | Usage |
|---|---|---|
| 🖨️ Print Management | Access local network printers directly from BC Cloud | Output labels, reports, documents on local printers |
| 📁 File System Access | Read/write/delete files and directories | Document exchange, import/export, archiving |
| 🗄️ SQL Server Integration | Execute SQL queries on on-prem databases | Connect legacy systems, data migration |
| 📡 FTP/SFTP Client | File transfer via FTP, FTPS, SFTP | EDI systems, partner interfaces |
| 🔗 API Relay Bridge | Reach on-prem APIs via Azure Service Bus | REST services, SOAP endpoints |
How does Cloud Bridge work?
Business Central (Cloud/OnPrem)
│
├─── Azure Relay (Hybrid Connections)
│
CloudBridge Agent (Windows Service on local server)
│
├─── Local Printers
├─── File System (C:\Data\...)
├─── SQL Server
└─── FTP Server
Benefits:
- ✅ Secure connection via Azure (no VPN configuration required)
- ✅ Cloud BC can access on-premises resources
- ✅ No public IP address required for local server
- ✅ TLS encrypted (end-to-end)
- ✅ GDPR compliant (Azure region selectable)
- ✅ Low ongoing costs
- ✅ WebSocket-based bidirectional communication
Architecture Overview
Cloud Bridge uses Azure Service Bus Relay as a secure bridge between Business Central and local resources:
- BC Extension – Sends requests via Azure Relay
- CloudBridge Agent – Windows Service on local server, receives requests and executes them
- Azure Relay – Secure hybrid connection (no VPN infrastructure required)
2. Getting Started
2.1 Getting Started with Cloud Bridge
Quick Start Overview
Setting up Cloud Bridge requires three main steps:
- Set up Azure Relay (approx. 10 minutes)
- Install CloudBridge Agent (approx. 10 minutes)
- Configure Agent in Business Central (approx. 10 minutes)
Total Time: Approx. 30 minutes
What You Need
- Windows Server with internet access (for CloudBridge Agent)
- Azure Subscription (for Azure Relay)
- Business Central (Cloud or On-Premises, from version BC25)
- Administrator Rights on Windows Server
- CloudBridge Connector Extension installed in Business Central
Who Does What?
| Task | Responsible |
|---|---|
| Set up Azure Service Bus Relay | IT Administrator |
| Install CloudBridge Agent | IT Administrator / Server Admin |
| Configure Agent in BC | Key User / BC Administrator |
| Set up printers/resources | Key User |
| Assign permissions | BC Administrator |
Next Steps
Follow the detailed installation guide in chapter 3. Setting Up Cloud Bridge.
2.2 Frequently Asked Questions
FAQ
What is CloudBridge Connector?
CloudBridge Connector is a Business Central extension that connects cloud and on-premises environments to local resources:
- 📁 File Access to local servers
- 🖨️ Printing on network printers
- 🗄️ SQL Server access
- 📡 FTP/SFTP data transfer
- 🔗 API Bridge for on-premises services
Does CloudBridge cost extra?
- Extension: Open Source (free)
- Azure Relay: Approx. €0.02/hour (approx. €14.40/month)
- Example: Monthly costs independent of number of messages
![ℹ️] Note: Azure Relay only has Standard tier available (no Basic tier).
Which BC versions are supported?
- Minimum: Business Central 25 (BC25)
- Currently tested: BC27 (Business Central 2025 Release Wave 2)
- Cloud & On-Premises: Both supported
Where do I install the CloudBridge Agent?
The Agent runs on a Windows Server (or Windows 10/11 PC) that:
- ✅ Has access to local resources (printers, files, SQL)
- ✅ Has internet access (outbound HTTPS port 443)
- ✅ Runs continuously (24/7)
Common Scenarios:
- Option A: Local Windows Server in office
- Option B: Azure VM (for Cloud BC + Azure printers)
- Option C: Terminal Server
![⚠️] Important: Not suitable for workstation PCs (shut down in the evening).
Do I need an Azure Subscription?
Yes, for Azure Relay:
- Create Azure account: portal.azure.com
- Create Azure Relay Namespace (only Standard tier available)
- Create Hybrid Connection
- Copy Connection String
Cost: Approx. €14.40 per month
Can I use multiple Agents?
Yes! Common scenarios:
- Multiple locations: Munich, Berlin, Hamburg (one agent each)
- Different networks: Office, production hall, warehouse
- Redundancy: Backup agent in case of failure
Setup:
- Create separate Azure Relay Hybrid Connection per agent (or separate Relay Namespace)
- Create agents with different names in BC (
AGENT-MUNICH,AGENT-BERLIN) - Select corresponding agent for printers/files
Is the connection secure?
Yes, secured in multiple ways:
- ✅ TLS Encryption (end-to-end via Azure)
- ✅ SAS Token Authentication (Shared Access Signature with 1h validity)
- ✅ No inbound firewall rules required (only outbound HTTPS)
- ✅ Isolated Storage for Connection Strings in BC (encrypted)
- ✅ Azure Relay uses WebSocket protocol (TLS 1.2+)
What data is transmitted?
- HTTP requests from BC to Agent (JSON format)
- HTTP responses from Agent to BC (JSON/Base64)
- Print data (PDF as Base64)
- File contents (text or Base64)
- SQL query results (JSON)
![ℹ️] Note: All data is transmitted encrypted via Azure Relay.
Minimum Requirements
Business Central:
- Version: BC25 or higher
- Deployment: Cloud (SaaS) or On-Premises
- Permissions: CloudBridge Connector Extension installable
- Users: Permission sets „CloudBridge Core“ and „CloudBridge Printing“ assignable
CloudBridge Agent (Windows Server):
- Operating System: Windows Server 2016 or higher (alternatively: Windows 10/11)
- RAM: Minimum 2 GB
- CPU: 2 cores
- .NET Runtime: .NET 8.0 or higher
- Network: Outbound HTTPS connection to Azure (port 443)
- Access: Local resources (printers, file system, SQL Server) must be reachable
Azure Resources:
- Azure Subscription: Active subscription
- Azure Relay Namespace: Standard Tier (approx. €14.40/month)
- Hybrid Connections: 1 per agent (unlimited messages)
Network:
- Firewall: Outbound HTTPS connection to
*.servicebus.windows.net(port 443) - Proxy: If present, must support WebSocket protocol
- VPN: Not required!
3. Setting Up Cloud Bridge
3.1 SaaS Installation
3.1.1 Business Central
Step 1: Install Extension
- Open AppSource (from BC: Search → „Extension Marketplace“)
- Search for „Cloud Bridge Connector“
- Click Install
- Confirm installation (accept permissions)
- Wait (approx. 2-5 minutes)
Alternative: Manual Installation (.app file)
- Receive
.appfile from partner - Open Business Central Admin Center
- Select Environment → Apps → Upload
- Upload
.appfile - Start installation
Step 2: Assign Permissions
- Open Users page
- Select user
- User Permission Sets → Edit
- Add following permission sets:
- VDBC Core (CloudBridge Core) – Base functions
- VDBC Printing (CloudBridge Printing) – Print functions
- VDBC File (CloudBridge File) – File functions
Step 3: Verify Setup
- Search: „VDBC Agents“
- CloudBridge Agents page opens
- Still empty – will be configured in 3.1.2 Azure Relay
3.1.2 Azure Relay
Step 1: Create Azure Relay Namespace
- Sign in to Azure Portal: portal.azure.com
- Search for and open Relay (or enter „Azure Relay“ in search bar)
- Click + Create
Configuration:
| Field | Value | Description |
|---|---|---|
| Name | cloudbridge-prod | Unique name (global) |
| Location | West Europe | Select nearest Azure location |
| Resource Group | cloudbridge-rg | Create new group |
| Pricing Tier | Standard | Only Standard available |
- Click Review + create
- Click Create (duration: approx. 2 minutes)
Step 2: Create Hybrid Connection
- Open Relay Namespace cloudbridge-prod (after creation)
- Menu: Entities → Hybrid Connections
- Click + Hybrid Connection
Configuration:
| Field | Value | Description |
|---|---|---|
| Name | agent-01 | Agent name |
| Requires Client Authorization | ☑️ Yes | Enabled (recommended) |
| Other Settings | Default | Keep default |
- Click Create
Step 3: Create Shared Access Policy
- Open Hybrid Connection agent-01
- Menu: Settings → Shared access policies
- Click + Add
Configuration:
| Field | Value |
|---|---|
| Policy name | cloudbridge-agent-policy |
| Permissions | ☑️ Send ☑️ Listen ☐ Manage (not needed) |
- Click Create
Step 4: Copy Connection String
- Click on policy cloudbridge-agent-policy
- Copy Primary Connection String
Example (looks similar to this):
Endpoint=sb://cloudbridge-prod.servicebus.windows.net/;
SharedAccessKeyName=cloudbridge-agent-policy;
SharedAccessKey=abc123xyz789==;
EntityPath=agent-01
![⚠️] Important: Although the endpoint says „sb://“ (Service Bus), this is an Azure Relay Hybrid Connection!
3.1.3 Business Central Agent
Step 1: Download Agent
- Open GitHub Releases: CloudBridgeAgent/releases
- Select latest version
- Download CloudBridgeAgent.zip
- Extract ZIP file on Windows Server (e.g.,
C:\CloudBridgeAgent\)
Step 2: Adjust Configuration
- Open
appsettings.jsonfile in an editor - Paste Connection String from 3.1.2 Azure Relay
Example Configuration:
{
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft.Hosting.Lifetime": "Information"
}
},
"BusinessCentralAgent": {
"UseKestrel": false,
"UseAzureHybridConnection": true,
"AzureHybridConnectionString": "Endpoint=sb://cloudbridge-prod.servicebus.windows.net/;SharedAccessKeyName=cloudbridge-agent-policy;SharedAccessKey=abc123xyz789==;EntityPath=agent-01"
}
}
Important Settings:
| Field | Description | Example |
|---|---|---|
| UseAzureHybridConnection | Enable Azure Relay mode | true |
| AzureHybridConnectionString | Azure Relay Connection String | From Step 3.1.2 |
| UseKestrel | Kestrel HTTP mode (for OnPrem) | false |
- Save file
Step 3: Install Agent as Windows Service
- Open Command Prompt as Administrator
- Execute in agent directory:
CloudBridgeAgent.exe install - Open Windows Services (services.msc) → Start CloudBridge Agent
- Check status: Should be Running
Step 4: Register Agent in Business Central
- Open Business Central
- Search: „VDBC Agents“
- CloudBridge Agents page opens
- Click New
- Fill in fields:
| Field | Value | Description |
|---|---|---|
| Name | AGENT-01 | Unique agent name |
| Description | Local File & Print Server | Description |
| Connection Key | [Paste Connection String] | From Step 3.1.2 |
| Http Client Time Out | 30000 | Timeout in milliseconds (30 sec) |
- Click Save
Step 5: Test Connection
- Open agent card (AGENT-01)
- Click Actions → Test Connection
- System sends test request to agent
Expected Message:
✅ Connection successful!
Agent Version: 1.0.0
On error message: See Chapter 6: Troubleshooting.
3.2 OnPrem Installation
3.2.1 Business Central
Step 1: Deploy Extension (.app file)
- Copy
.appfile to BC server - Open Business Central Administration Shell as Administrator
- Deploy extension with following steps:
- Publish extension
- Install extension
- Synchronize extension
![ℹ️] Note: Use BC Administration Shell cmdlets for Publish-NAVApp, Install-NAVApp, and Sync-NAVApp.
Step 2: Assign Permissions
See 3.1.1 Business Central – Step 2.
3.2.2 Kestrel
For On-Premises without Azure Relay: Kestrel as HTTP Server
![ℹ️] Note: Kestrel is an alternative to Azure Relay for pure on-premises scenarios. The CloudBridge Agent can be accessed directly via HTTP/HTTPS.
Step 1: Agent with Kestrel Configuration
- Open
appsettings.json - Add Kestrel configuration:
{
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft.Hosting.Lifetime": "Information"
}
},
"BusinessCentralAgent": {
"UseKestrel": true,
"KestrelConnectionString": "Endpoint=http://localhost:5000/;SharedAccessKeyName=key1;SharedAccessKey=YourKey==",
"UseAzureHybridConnection": false
},
"Kestrel": {
"Endpoints": {
"Http": {
"Url": "http://*:5000"
}
}
}
}
Important Settings:
| Field | Description | Example |
|---|---|---|
| UseKestrel | Enable Kestrel mode | true |
| KestrelConnectionString | Connection String for Kestrel | Endpoint=http://localhost:5000/;SharedAccessKeyName=key1;SharedAccessKey=YourKey== |
| UseAzureHybridConnection | Disable Azure Relay | false |
| Kestrel.Endpoints.Http.Url | Bind address for HTTP server | http://*:5000 |
Step 2: Create Firewall Rule (if needed)
If BC server and agent run on different servers:
- Open Windows Firewall with Advanced Security
- Inbound Rules → New Rule
- Rule type: Port
- Protocol: TCP, Port: 5000
- Action: Allow connection
- Name: CloudBridge Agent Kestrel
Step 3: Configure Agent in BC
- Open VDBC Agents page
- Create new agent:
| Field | Value |
|---|---|
| Name | AGENT-ONPREM |
| Description | On-Prem Kestrel Agent |
| Connection Key | http://server-name:5000 |
![ℹ️] Note: Connection Key contains Kestrel URL instead of Azure Relay Connection String.
3.2.3 Business Central Agent
Installation as in 3.1.3 Business Central Agent, but with adjusted configuration for on-premises.
Differences:
- With Azure Relay: Connection String with
sb:// - With Kestrel: URL with
http://orhttps://
4. Printing Features
4.1 Printers
Setting Up Printers
Step 1: Configure Print Server
![ℹ️] Architecture: CloudBridge uses a three-tier structure: Agent → Print Server → Printer
- Search: „VDBC Print Servers“
- CloudBridge Print Servers page opens
- Click New
- Fill in fields:
| Field | Value | Description |
|---|---|---|
| Name | PRINTSERVER-01 | Unique name |
| Agent Code | AGENT-01 | Reference to CloudBridge Agent |
- Click Save
Step 2: Get Printers from Agent
- Open Print Server PRINTSERVER-01
- Click Actions → Printers → Get Printers
- System queries agent for available printers
- All printers are automatically created under this print server
Example Result:
| Name | Description | Agent | Default |
|---|---|---|---|
| HP-LaserJet-500 | HP LaserJet 500 M551 | AGENT-01 | No |
| Zebra-Label-Printer | Zebra ZD420 | AGENT-01 | No |
| PDF-Printer | Microsoft Print to PDF | AGENT-01 | Yes |
Step 3: Adjust Printer Settings
- Select printer from list (e.g., „HP-LaserJet-500“)
- Card opens
- Edit fields:
| Field | Description | Example |
|---|---|---|
| Name | Unique ID (don’t change) | HP-LaserJet-500 |
| Description | Display name for users | Main Printer Accounting |
| Agent | Associated agent | AGENT-01 |
| Printer | Actual printer name | HP LaserJet 500 M551 |
| Default | Mark as default printer | ☑️ Yes |
4.2 Print Jobs
Printing Reports
Step 1: Print Report with Printer Selection
Example: Print Sales Invoice
- Open Posted Sales Invoice
- Click Print → Print
- Report request page opens
- Select Printer:
Printer Options:
| Option | What Happens? |
|---|---|
| Local Printer | Prints on printer at your PC (if available) |
| CloudBridge: HP-LaserJet-500 | Prints via agent on server printer |
| PDF download in browser |
- Click Print
- Document is sent to agent
- Agent prints on configured printer
Step 2: Batch Printing
Example: Print 100 invoices at once
- Posted Sales Invoices (list)
- Set filter: Invoices from today
- Click Print → Print
- Printer:
HP-LaserJet-500 - Click OK
Background Processing:
- Reports are queued as Print Jobs
- Agent processes jobs one by one
- You can continue working (no waiting!)
Monitoring Print Jobs
Step 1: Open Print Job List
- Search: „VDBC Print Jobs“
- CloudBridge Print Jobs page opens
Step 2: Understanding Job Status
| Status | Meaning | Action |
|---|---|---|
| ⏰ Pending | Waiting for processing | Normal, will be printed soon |
| 🔄 Processing | Agent is currently printing | Wait |
| ✅ Completed | Successfully printed | No action needed |
| ❌ Error | Print error | Open print job, check error details |
Step 3: Handle Failed Print Jobs
- Open print job with status Error
- Check Error Message field
Common Errors:
| Error Message | Cause | Solution |
|---|---|---|
Printer not found | Printer not available at agent | Check printer on server |
Access denied | Agent has no permission | Check service account rights |
Timeout | Agent not responding | Check agent service status |
- Fix error
- Click Actions → Retry (resend print job)
Step 4: Auto-delete Print Jobs
Set up Job Queue Entry:
- Search: „Job Queue Entries“
- Create new line:
| Field | Value |
|---|---|
| Object Type to Run | Codeunit |
| Object ID to Run | 70540881 (VDBC Print Job Cleanup) |
| No. of Minutes between Runs | 1440 (daily) |
| Status | Ready |
![ℹ️] This codeunit deletes print jobs older than 30 days.
5. File Features
File Access from Business Central
With CloudBridge, you can access files and directories on local servers directly from Business Central.
What can you do?
- ✅ Read files (e.g., process import files)
- ✅ Write files (e.g., store exports)
- ✅ Browse directories
- ✅ Delete files
- ✅ Create directories
- ✅ Rename/move files
Prerequisites
Permissions in Business Central:
You need the permission set: VDBC Core (CloudBridge Core)
CloudBridge Agent Configuration:
Agent must be configured correctly:
- UseAzureHybridConnection or UseKestrel must be enabled
- Connection String must be valid
![⚠️] Security: Agent can only access files below the configured BasePath!
Examples:
- ✅ Allowed:
C:\Data\Import\customers.csv - ✅ Allowed:
C:\Data\Export\invoices.xml - ❌ Blocked:
C:\Windows\system32\file.txt(outside C:\Data) - ❌ Blocked:
D:\Other\file.txt(different drive)
Common Scenarios
![ℹ️] Note: The following scenarios are examples of using CloudBridge. Implementation is done through custom AL code extensions or partner apps.
Scenario 1: Processing Import Files
Use Case: Every morning, a CSV file with new customers is placed in folder C:\Data\Import\.
Workflow:
┌─────────────────────────────────────────────┐
│ 1. Business Central starts import job │
│ (e.g., via Job Queue Entry) │
└─────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────┐
│ 2. AL code calls File Connector: │
│ - GetFilesInDirectory("C:\Data\Import") │
│ - Finds: customers.csv │
└─────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────┐
│ 3. Read file: │
│ - ReadFileAsText("C:\Data\Import\ │
│ customers.csv") │
└─────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────┐
│ 4. Process CSV → Import customers │
└─────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────┐
│ 5. Archive file: │
│ - MoveFile("C:\Data\Import\customers.csv",│
│ "C:\Data\Archive\customers_ │
│ 2025-01-15.csv") │
└─────────────────────────────────────────────┘
Scenario 2: Creating Export Files
Use Case: Export accounting data as XML for tax software.
Workflow:
┌─────────────────────────────────────────────┐
│ User clicks: "Start DATEV Export" │
└─────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────┐
│ BC generates XML content (XMLport) │
└─────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────┐
│ File Connector writes file: │
│ - WriteFile("C:\Data\Export\datev.xml", │
│ XmlContent) │
└─────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────┐
│ Tax software picks up file (automatically) │
└─────────────────────────────────────────────┘
Scenario 3: Monitoring Directories
Use Case: Automatically react to new files.
Setup:
- Create Job Queue Entry
- Execute codeunit: „Check import files“
- Repeat every 5 minutes
- Codeunit Logic:
- Browse directory
C:\Data\Import\ - Find new files (by timestamp)
- Process files
- Browse directory
- Error Handling:
- Move failed files to
C:\Data\Error\ - Notify admin via email
- Move failed files to
Security & Best Practices
Access Restrictions:
- BasePath Protection
- Agent blocks access outside
BasePath - Example: Agent with
BasePath=C:\Datacannot accessC:\Windows
- Agent blocks access outside
- No System Files
- Agent should not run with admin rights
- Use dedicated service account with minimal permissions
- Validation in BC
- AL code should validate paths
- Don’t use user input directly as path
Example – Secure Code:
// ✅ SECURE: Validate path
procedure ImportFile(UserFilename: Text)
var
AllowedPath: Text;
begin
AllowedPath := 'C:\Data\Import\';
if not UserFilename.StartsWith(AllowedPath) then
Error('Invalid path: %1', UserFilename);
FileConnector.ReadFileAsText(UserFilename);
end;
6. Troubleshooting
Common Problems and Solutions
Agent Not Responding
Symptom:
- Error message: „Timeout“ or „Agent not responding“
- Print jobs remain in „Pending“ status
Causes & Solutions:
| Cause | Check | Solution |
|---|---|---|
| Service not running | Windows Services (services.msc) | Start service via Windows Services |
| Wrong Connection String | Check agent log | Correct Connection String in BC |
| Azure Relay unreachable | Network/firewall test | Open port 443 to *.servicebus.windows.net |
| Agent crash | Event Viewer (Windows) | Check log files, reinstall agent |
Diagnostic Steps:
- Check service status:
- Open Windows Services (services.msc)
- Find CloudBridge Agent
- Check status (should be Running)
- Check agent logs:
C:\CloudBridgeAgent\logs\agent-{date}.log - Test network:
- Check if port 443 to
cloudbridge-prod.servicebus.windows.netis reachable - Tools: telnet, browser, or contact network administrator
- Check if port 443 to
- Test connection in BC:
- VDBC Agents → Open agent → Test Connection
Printer Not Found
Symptom:
- Error message: „Printer not found“
- Print job status: „Error“
Causes & Solutions:
| Cause | Check | Solution |
|---|---|---|
| Printer not installed on server | Printer list on server | Install printer on agent server |
| Wrong printer name | Printer card in BC | Execute Get Printers again |
| Printer offline | Check printer status | Turn on printer / check connection |
| Service account has no rights | Printer permissions | Give service account print rights |
Diagnostic Steps:
- Check printer on server:
- Control Panel → Devices and Printers
- View available printers
- Get printers from agent:
- VDBC Print Servers → Get Printers
- Print job error details:
- VDBC Print Jobs → Open job → Error Message field
File Access Denied
Symptom:
- Error message: „Access denied“ or „Path not found“
- File cannot be read/written
Causes & Solutions:
| Cause | Check | Solution |
|---|---|---|
| Path outside BasePath | appsettings.json | Use path within BasePath |
| Service account has no rights | NTFS permissions | Give service account read/write rights |
| File locked | File open in another program | Close file, retry |
| Directory doesn’t exist | Check path | Create directory (CreateDirectory) |
Diagnostic Steps:
- Check agent configuration:
appsettings.json→BusinessCentralAgentsection
- Check permissions:
- Right-click folder → Properties → Security
- Service account must have read/write rights
- Test path:
- Open Windows Explorer
- Navigate to path (e.g.,
C:\Data\Import\test.txt) - Check if file/folder exists
Invalid Azure Relay Connection String
Symptom:
- Error message: „Invalid Connection String“
- Agent doesn’t start
Causes & Solutions:
| Cause | Check | Solution |
|---|---|---|
| Wrong formatting | Connection String format | Use correct format |
| SAS policy deleted | Azure Portal → Shared Access Policies | Recreate policy |
| Hybrid Connection deleted | Azure Portal → Hybrid Connections | Recreate Hybrid Connection |
| Wrong permission | Policy permissions | Send + Listen must be enabled |
Correct Format:
Endpoint=sb://namespace.servicebus.windows.net/;
SharedAccessKeyName=policy-name;
SharedAccessKey=key-value==;
EntityPath=connection-name
Diagnostic Steps:
- Validate format:
- All 4 components present? (Endpoint, KeyName, Key, EntityPath)
- No spaces?
- Check in Azure Portal:
- Relay Namespace → Hybrid Connections → Select connection
- Shared Access Policies → Select policy
- Copy Primary Connection String
7. Glossary
Terms
| Term | Description |
|---|---|
| Agent | CloudBridge Agent – Windows Service on local server |
| Azure Relay | Azure service for secure hybrid connections (WebSocket-based) |
| BasePath | Base path for file access (e.g., C:\Data) – Agent can only access within |
| BC | Business Central |
| Connection String | Connection information for Azure Relay (contains Endpoint, SAS Key, EntityPath) |
| Connector | AL codeunit for communication with agent (File Connector, Print Connector, etc.) |
| Hybrid Connection | Azure Relay resource for bidirectional communication |
| Isolated Storage | Encrypted storage in BC for sensitive data (Connection Strings) |
| Job Queue Entry | BC function for scheduled/recurring tasks |
| Kestrel | HTTP server for on-premises scenarios (alternative to Azure Relay) |
| Print Job | Print job in queue (BC table) |
| Print Server | Logical grouping of printers (1 Print Server per Agent) |
| SAS Token | Shared Access Signature – Authentication for Azure Relay (1h validity) |
| Service Bus | Azure Service Bus (Namespace for Relay) |
Abbreviations
| Abbreviation | Meaning |
|---|---|
| BC | Business Central |
| VDBC | VisionData Business Connector (object prefix) |
| SaaS | Software as a Service (BC Cloud) |
| OnPrem | On-Premises (BC installed locally) |
| FTP | File Transfer Protocol |
| SFTP | SSH File Transfer Protocol |
| FTPS | FTP over SSL/TLS |
| TLS | Transport Layer Security |
| SAS | Shared Access Signature |
| GUID | Globally Unique Identifier |
| JSON | JavaScript Object Notation |