BCCL Documentation
Index

Overview

What Is BCCL?

BCCL (Business Central Command Line) is a data exchange tool for Microsoft Dynamics 365 Business Central. It gives you a fast, scriptable way to move data between Business Central and external systems -- without writing custom code or building integrations from scratch.

Whether you need to migrate data from a legacy system, replicate tables to a SQL Server warehouse, schedule nightly exports, or push updates from a spreadsheet, BCCL handles it through simple command-line operations that you can run manually, schedule with a task scheduler, or execute as a Windows service.

BCCL is developed and maintained by hougaard.com.

Two Components Working Together

BCCL consists of two components that work as a pair:

The Business Central Extension (App)

The BCCL extension installs into your Business Central environment -- cloud or on-premises. It provides:

  • A web service endpoint (SOAP codeunit) that receives and processes requests from the external client
  • Request processing logic that reads from and writes to Business Central tables
  • The Request Builder -- a graphical interface inside Business Central that helps you construct command lines
  • The SQL Bundle Builder -- a report that generates replication scripts for multiple tables at once
  • Service Tasks -- a system for defining, scheduling, and monitoring data operations from within Business Central
  • Field Mapping configuration for controlling which fields are included and how they are named

The BCCL Client (BCCL.EXE)

The BCCL client is a standalone command-line executable that runs on your workstation, server, or any machine that has network access to Business Central. Key characteristics:

  • Single file, no installation -- just copy the executable to any folder
  • Self-contained -- approximately 80 MB, with no external dependencies or runtime requirements
  • Cross-platform -- available for Windows, macOS, and Linux (all 64-bit)
  • Communicates with the Business Central extension via SOAP web services over HTTPS

Purpose and Use Cases

BCCL enables bidirectional data transfer between Business Central and external systems. Here are the most common scenarios:

Data Migration

When you are moving from a legacy ERP to Business Central, you can use BCCL to import customers, vendors, items, chart of accounts, open transactions, and historical data from CSV, JSON, XML, or Excel files.

SQL Server Replication

You can replicate Business Central tables directly to a SQL Server database for reporting, analytics, or data warehousing. BCCL handles table creation, incremental updates using the Change Log, and deletion tracking.

Scheduled Data Synchronization

By running BCCL from a Windows scheduled task, a cron job, or as a Windows service, you can automate recurring data exchanges. For example, you might export sales orders every hour or import inventory updates nightly.

Reporting and Analytics

Export data from any Business Central table in the format your reporting tools expect -- JSON for web dashboards, CSV for Excel analysis, or directly to SQL Server for Power BI.

System Integration

When you need to connect Business Central with systems that produce or consume flat files, BCCL acts as the bridge. It reads data from files and pushes it into Business Central, or pulls data from Business Central and writes it to files.

How It Works

The architecture is straightforward:

[External System]           [BCCL Client]           [Business Central]
     |                           |                         |
     |   (files: CSV/JSON/       |    SOAP Web Service     |
     |    XML/XLSX/SQL)          |    (HTTPS request)      |
     |  <-------------------->   | ----------------------> |
     |                           |                         |  [BCCL Extension]
     |                           |                         |  processes request,
     |                           |    SOAP Response        |  reads/writes data
     |                           | <---------------------- |
     |                           |                         |
  1. You invoke BCCL.EXE with parameters specifying the task, target table, file format, and credentials.
  2. The client builds a JSON request and sends it to the BCCL web service endpoint in Business Central via SOAP over HTTPS.
  3. The BCCL extension inside Business Central receives the request, processes it (reading or writing data as needed), and returns a response.
  4. The client receives the response and writes it to a file, sends it to SQL Server, or displays it on screen.

For large data sets, BCCL uses a paging mechanism to break the transfer into manageable chunks, staying within Business Central's web service size limits.

Available Request Types

BCCL supports the following operations, each invoked as a "task" on the command line:

Task Description
TASKS Returns a list of all available request types and their parameters
TABLES Searches for tables in Business Central by name
GETDATA Exports data from a Business Central table
PUTDATA Imports data into a Business Central table
DELETEDATA Deletes specific records from a table (based on input data)
DELETEALL Deletes all records matching a filter from a table
MASSUPDATE Updates multiple records with the same values
MAPPING Retrieves a mapping file template for a table
CHANGELOG Exports data from the Business Central Change Log
POSTSALES Posts a sales document (invoice, order, etc.)
POSTPURCHASE Posts a purchase document
RUNCODEUNIT Executes a specified codeunit in Business Central
DOWNLOAD Downloads binary data (files) from a Service Task
UPLOAD Uploads binary data (files) to Business Central

Custom request types can also be registered by other extensions through the OnRegisterExtraTaskType integration event.

Supported Data Formats

BCCL supports five data formats for import and export:

  • JSON -- structured, widely used for web integrations and APIs
  • XML -- structured, common in enterprise integrations
  • CSV -- flat files, ideal for spreadsheet workflows and simple data exchange
  • Excel (XLSX) -- native Excel workbooks, useful for business user workflows
  • SQL -- direct read/write to Microsoft SQL Server tables

Trial Mode

You can use BCCL without a license to evaluate its capabilities. In trial mode, data transfers are limited to 100 records per upload and 50,000 bytes per download. This is enough to verify connectivity, test your workflow, and confirm that BCCL meets your needs before purchasing a license.

To remove these limits, you register BCCL with a license key. See Registration for details.

One BCCL Enduser (Commercial) license covers all environments of a tenant, production and sandboxes alike. See "Which License Do I Need?" in License Terms.

  • Trial version detected on an installation that has been running for a long time means the license has expired (or the instance on this machine was never registered). Contact support@hougaard.com. See License and Registration Issues.
  • A valid license not found for ... is not a BCCL message. Errors worded like this are raised by third-party apps. Before raising a ticket about any licence-related error, verify its origin with Share Details on the error dialog and check the ... by <Publisher> suffix on the AL call stack lines. See Identifying Which App Raised an Error.
  • Version mismatch or output showing BCCL.BigStringBuilder: update BCCL.EXE from https://www.hougaard.com/on-premises/BCCL. See Client Versions and Updates.
  • For everything else, start with Common Issues and Frequently Asked Questions.

Where to Go Next

If you are new to BCCL, the recommended path is:

  1. Review the System Requirements to confirm compatibility
  2. Follow the Installation guide to set up both components
  3. Complete the Initial Configuration to verify connectivity
  4. Run your first data export or import