Reimaginate.Orchestrator.BusinessCentral 1.1.5

dotnet add package Reimaginate.Orchestrator.BusinessCentral --version 1.1.5
                    
NuGet\Install-Package Reimaginate.Orchestrator.BusinessCentral -Version 1.1.5
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Reimaginate.Orchestrator.BusinessCentral" Version="1.1.5" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Reimaginate.Orchestrator.BusinessCentral" Version="1.1.5" />
                    
Directory.Packages.props
<PackageReference Include="Reimaginate.Orchestrator.BusinessCentral" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Reimaginate.Orchestrator.BusinessCentral --version 1.1.5
                    
#r "nuget: Reimaginate.Orchestrator.BusinessCentral, 1.1.5"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package Reimaginate.Orchestrator.BusinessCentral@1.1.5
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=Reimaginate.Orchestrator.BusinessCentral&version=1.1.5
                    
Install as a Cake Addin
#tool nuget:?package=Reimaginate.Orchestrator.BusinessCentral&version=1.1.5
                    
Install as a Cake Tool

Reimaginate.Orchestrator.BusinessCentral

Business Central workflow actions for Orchestrator hosts.

Use this package when workflows need Business Central finance, purchasing, item, manufacturing, or custom API page operations. The package does not own OAuth flows, token storage, tenant resolution, or company selection state. Hosts provide those concerns through IBusinessCentralWorkflowConnectionProvider.

Registration

Register the action handlers in the customer host:

services.AddBusinessCentralWorkflowActions(configuration);

If the host uses a custom workflow action resolver, scan this package's action assembly:

using Reimaginate.Orchestrator.Abstractions;
using Reimaginate.Orchestrator.BusinessCentral.Actions;

[WorkflowActionResolver]
[ScanAssembly(typeof(BusinessCentralWorkflowActionsMarker))]
public partial class WorkflowActionResolver : IWorkflowActionResolver;

Register a host-owned connection provider:

services.AddSingleton<IBusinessCentralWorkflowConnectionProvider, CustomerBusinessCentralConnectionProvider>();

IBusinessCentralWorkflowConnectionProvider receives the workflow TenantKey and optional CompanyKey, then returns a fresh access token, environment URL, and resolved Business Central company ID. TenantKey is required on every action. CompanyKey is optional; when omitted, the host provider resolves the default company.

Actions

Generic/custom API actions:

  • BusinessCentral.Get
  • BusinessCentral.Search
  • BusinessCentral.Post
  • BusinessCentral.Patch
  • BusinessCentral.Delete
  • BusinessCentral.InvokeAction

Typed standard API actions:

  • BusinessCentral.SearchVendors
  • BusinessCentral.GetVendor
  • BusinessCentral.CreateVendor
  • BusinessCentral.UpdateVendor
  • BusinessCentral.SearchItems
  • BusinessCentral.GetItem
  • BusinessCentral.CreateItem
  • BusinessCentral.UpdateItem
  • BusinessCentral.SearchPurchaseOrders
  • BusinessCentral.GetPurchaseOrder
  • BusinessCentral.CreatePurchaseOrder
  • BusinessCentral.UpdatePurchaseOrder
  • BusinessCentral.DeletePurchaseOrder
  • BusinessCentral.ReceiveAndInvoicePurchaseOrder
  • BusinessCentral.SearchPurchaseInvoices
  • BusinessCentral.GetPurchaseInvoice
  • BusinessCentral.CreatePurchaseInvoice
  • BusinessCentral.UpdatePurchaseInvoice
  • BusinessCentral.DeletePurchaseInvoice
  • BusinessCentral.PostPurchaseInvoice

Typed manufacturing/custom API page actions:

  • BusinessCentral.SearchProductionOrders
  • BusinessCentral.GetProductionOrder
  • BusinessCentral.CreateProductionOrder
  • BusinessCentral.UpdateProductionOrder
  • BusinessCentral.SearchReleasedProductionOrders
  • BusinessCentral.GetReleasedProductionOrder
  • BusinessCentral.CreateReleasedProductionOrder
  • BusinessCentral.UpdateReleasedProductionOrder
  • BusinessCentral.SearchBoms
  • BusinessCentral.GetBom
  • BusinessCentral.CreateBom
  • BusinessCentral.UpdateBom

All actions return Success and FailureReason plus action-specific result fields. Mutating actions require Confirm = true. Update, delete, post/process, and generic invoke operations also require an ETag; the action pack sends it as If-Match.

Custom Paths

Generic actions accept a full relative API path, for example:

relativePath: api/v2.0/companies({companyId})/vendors

The default HTTP client replaces {companyId}, {companyKey}, and {environmentName} from the resolved connection. Manufacturing actions use configured custom API page paths unless a workflow supplies relativePath directly:

{
  "Orchestrator": {
    "Actions": {
      "BusinessCentral": {
        "ProductionOrdersPath": "api/acme/manufacturing/v1.0/companies({companyId})/productionOrders",
        "ReleasedProductionOrdersPath": "api/acme/manufacturing/v1.0/companies({companyId})/releasedProductionOrders",
        "BomsPath": "api/acme/manufacturing/v1.0/companies({companyId})/boms"
      }
    }
  }
}

Examples

Search a vendor by Business Central vendor number, then create or update explicitly:

do:
  - findVendor:
      call: BusinessCentral.SearchVendors
      with:
        tenantKey: qpac-au
        number: V00010
        top: 1

  - createVendor:
      call: BusinessCentral.CreateVendor
      with:
        tenantKey: qpac-au
        confirm: true
        record:
          number: V00010
          displayName: Contoso Supplies
          email: accounts@contoso.example
          additionalFields:
            paymentTermsCode: 30D

  - updateVendor:
      call: BusinessCentral.UpdateVendor
      with:
        tenantKey: qpac-au
        id: ${findVendor.records[0].id}
        eTag: ${findVendor.records[0].@odata.etag}
        confirm: true
        record:
          displayName: Contoso Supplies Pty Ltd

Create and post a purchase invoice:

do:
  - createInvoice:
      call: BusinessCentral.CreatePurchaseInvoice
      with:
        tenantKey: qpac-au
        confirm: true
        record:
          vendorNumber: V00010
          invoiceDate: "2026-06-30T00:00:00Z"
          lines:
            - lineType: Item
              lineObjectNumber: ITEM-100
              quantity: 2
              unitCost: 42.50

  - postInvoice:
      call: BusinessCentral.PostPurchaseInvoice
      with:
        tenantKey: qpac-au
        id: ${createInvoice.id}
        eTag: ${createInvoice.eTag}
        confirm: true

Use a custom AL/API page path:

do:
  - createProductionOrder:
      call: BusinessCentral.CreateProductionOrder
      with:
        tenantKey: qpac-au
        relativePath: api/acme/manufacturing/v1.0/companies({companyId})/productionOrders
        confirm: true
        data:
          number: PROD-0001
          itemNumber: ITEM-100
        additionalFields:
          sourceType: Item

Hosts that expose these mutating actions from command-line workflows can replace IBusinessCentralActionWarningSink with a Spectre.Console-backed implementation to emit the same warning style as the current CLI.

Product Compatible and additional computed target framework versions.
.NET net10.0 is compatible.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
1.1.5 28 7/30/2026
1.1.4 29 7/30/2026
1.1.3-rc.6 27 7/29/2026
1.1.3-rc.5 32 7/29/2026
1.1.3-rc.4 30 7/28/2026
1.1.3-rc.3 34 7/28/2026
1.1.3-rc.2 31 7/28/2026
1.1.3-rc.1 32 7/28/2026
1.1.2 97 7/23/2026
1.1.1 53 7/20/2026
1.1.1-rc.81 59 7/8/2026
1.1.1-rc.80 55 7/8/2026
1.1.1-rc.79 49 7/4/2026
1.1.1-rc.78 55 7/3/2026
1.1.1-rc.77 49 7/3/2026
1.1.1-rc.76 57 6/30/2026