Cloud Events Base Extension

Version: 27.0.0.0 Publisher: Origo App ID: 54db7020-675c-4760-aca6-f4061f924ed2 ID Range: 65300-65399 Target Platform: Business Central Cloud (27.0+) Languages: en-US, is-IS


Overview

Cloud Events Base is a comprehensive Business Central extension that provides REST API endpoints for processing cloud events following the CloudEvents 1.0 specification. The extension enables external systems to interact with Business Central through standardized event-driven messaging patterns for data integration, metadata queries, sales operations, and business logic calculations.

Key Features


Functional Flow

API Endpoints

1. Cloud Event Queue API (/cloudEventQueue)

2. Cloud Event Task API (/cloudEventTask)

3. Cloud Event Data API (/cloudEventData)

Message Processing Flow

External System → POST /cloudEventQueue (JSON payload)
                ↓
    Validate CloudEvents structure (id, source, type, subject, data)
                ↓
    Store in Cloud Event Message table (Direction: Incoming)
               | --- | --- |
    Schedule background task (TaskScheduler.CreateTask)
                ↓
    [Background Processing]
               | --- | --- |
    Dispatch to interface implementation based on MessageType
                ↓
    Execute business logic (read/write data, calculations)
                ↓
    Store response in Cloud Event Message table (Direction: Outgoing)
                ↓
    Raise External Business Event (OnCloudEventMessageCompleted)
                ↓
    Webhook notification sent to subscribers (MessageId, MessageType, ResponseContentLink, Timestamp)
                ↓
External System ← GET /cloudEventData (retrieve response using MessageId)

Webhook Notification Pattern

The extension uses Business Central's native External Business Events for webhook notifications:

  1. Minimal Notification Payload: Webhooks send only essential data (MessageId, MessageType, ResponseContentLink, Timestamp)
  2. Direct Download Link: External systems can use ResponseContentLink for direct data download, or use MessageId to call /cloudEventData API
  3. Event Types:
  1. Event Category: "Origo Cloud Event" (EventCategory extension)

Message Type Processing Flow

All cloud event messages follow a consistent processing pattern:

  1. Message Validation – CloudEvents specification fields are validated (specversion, type, source)
  2. Type Resolution – Message type enum determines which implementation to use
  3. Interface Execution – Message type implements Cloud Event Msg Interface and executes business logic
  4. Response Generation – Implementation generates response data in appropriate format (JSON, Markdown, XML, etc.)
  5. Storage – Response is stored in the message record's response data blob
  6. Delivery – Response is returned to caller (synchronous) or made available for retrieval (asynchronous)

Built-in Message Types

Message TypePurpose
Help.MessageTypes.GetLists all available message types with metadata
Help.Implementation.GetReturns detailed help documentation for a specific message type
Help.Tables.GetReturns list of all tables in Business Central
Help.Fields.GetReturns field metadata for a specified table
Help.Permissions.GetReturns permission set information and access levels
Data.RecordIds.GetReturns record IDs and modification timestamps for incremental sync
Data.Records.GetReturns full record data as JSON for a specified table (by name, number, or subject field); supports field filtering, FlowField retrieval, date range, table view, and pagination
Data.Records.SetInserts or updates records from JSON payload
Email.Draft.SetCreates a Business Central email draft with recipients, body content, optional attachments, and resolved email scenario
CSV.Records.GetExports all matching records from a specified table as a UTF-8 CSV file in Open Mirroring format (text/csv); supports field filtering, date range, and table view
Data.Totals.GetAggregates Decimal SumIndexFields across matching records in a specified table using BC's native CalcSums function
Deleted.Records.GetReturns full JSON snapshots of deleted records from the Cloud Events Delete Log; supports optional field filtering, date range, and skip/take pagination
Deleted.RecordIds.GetReturns system IDs and deletion timestamps for deleted records; lightweight sync without requiring Save JSON to be enabled
CSV.DeletedRecords.GetExports deleted record audit data as a base64-encoded RFC 4180 CSV file, with optional JSON snapshot column
Customer.CreditLimit.GetRetrieves customer credit limit information including balance and outstanding amounts
Customer.SalesHistory.GetRetrieves sales history by item for a specific customer within a date range, based on Item Ledger Entries
Customer.Statement.PdfRetrieves customer statement as a PDF document with optional date range using configured report selection
Item.Availability.GetRetrieves item availability information including inventory quantities
Item.Price.GetRetrieves item pricing information based on customer and quantity
Sales.Order.ReleaseReleases a sales order, changing status from Open to Released
Sales.Order.ReopenReopens a released sales order, changing status back to Open
Sales.Order.StatisticsRetrieves sales order statistics including amounts, VAT totals, quantities, weight and volume
Sales.Order.PostPosts a sales order and returns the resulting posted invoice number
Sales.Order.PendingApprovalSets a sales order status to Pending Approval for approval workflows
Sales.SalesInvoice.PdfRetrieves posted sales invoice as a PDF document using configured report selection
Sales.SalesShipment.PdfRetrieves posted sales shipment as a PDF document using configured report selection
Sales.SalesCreditMemo.PdfRetrieves posted sales credit memo as a PDF document using configured report selection
Sales.ReturnReceipt.PdfRetrieves posted return receipt as a PDF document using configured report selection
Purchase.Order.ReleaseReleases a purchase order, changing status from Open to Released
Purchase.Order.ReopenReopens a released purchase order, changing status back to Open
Purchase.Order.StatisticsRetrieves purchase order statistics including amounts, VAT totals, quantities, weight and volume
Purchase.Order.PostPosts a purchase order and returns the resulting posted receipt number
Purchase.Order.PendingApprovalSets a purchase order status to Pending Approval for approval workflows
Finance.GeneralJournal.CheckValidates a general journal batch without posting, returns comprehensive readiness status (Ready/ReadyWithWarnings/NotReady) with detailed validation results using BC Error Message Management framework
Finance.GeneralJournal.PostPosts a general journal batch and returns posting statistics including entry counts by type (GL, Customer, Vendor)
Incoming.Document.CreateCreates a new Incoming Document with a main file attachment (Base64). Supports vendorNo, description, documentDate, and dueDate
Incoming.Document.AttachAdds a supplemental file attachment to an existing Incoming Document, identified by EntryNo or SystemId
Incoming.Document.ProcessProcesses an Incoming Document to create a purchase invoice or general journal line
Incoming.Document.GetRetrieves an Incoming Document with all header fields and all attachments as Base64, split into mainAttachment and additionalAttachments
Field.Translation.GetRetrieves BC system translations for a specific record field identified by table, SystemId, and field number
Field.Translation.SetWrites or deletes BC system translations for a record field
Field.Translations.GetRetrieves all stored translations for a record, with optional field and language filters
ChangeLog.Field.HistoryReturns the complete modification history for a single record field from the Change Log, ordered most-recent first, with a synthetic «Current» entry (entryNo=0) showing the live value
ChangeLog.Field.RestoreRestores a record field to a previous Change Log value — by entryNo (Mode 1) or by point-in-time lookup (Mode 2). Respects the ChangeLog Write Guard and field restrictions
ChangeLog.Field.EnabledChecks whether Change Log modification logging is active for a specific table field, returning tableNo, fieldNo, fieldName, and isEnabled
Memory.Company.GetRetrieves company-scoped memory records (key-value blobs) with optional skip/take pagination and table view filtering
Memory.Company.ListLists company-scoped memory records returning only id and description (no memory blob) with optional skip/take pagination
Memory.Company.SetInserts or updates company-scoped memory records from a JSON data array; upserts by GUID id
Memory.User.GetRetrieves user-scoped memory records filtered to the calling user, with optional skip/take pagination and table view filtering
Memory.User.ListLists user-scoped memory records returning only id and description (no memory blob) with optional skip/take pagination
Memory.User.SetInserts or updates user-scoped memory records for the calling user from a JSON data array; upserts by GUID id

Extensibility Pattern

The extension provides five key extensibility points through AL interfaces:

1. Cloud Event Message Interface

Interface: Cloud Event Msg Interface Extensible Enum: Cloud Event Message Type (65300)

Allows creation of custom message types by:

  1. Creating a codeunit that implements Cloud Event Msg Interface
  2. Adding a new value to Cloud Event Message Type enum with the implementation binding
  3. Implementing the ExecuteCloudEventTask() method to define custom business logic

2. Customer Credit Limit Interface

Interface: Customer Credit Limit Extensible Enum: Customer Credit Limit Type (65303) Setup Field: Cloud Events Setup → Customer Credit Limit Type

Allows custom credit limit calculation logic. Built-in implementation:

3. Item Availability Interface

Interface: Item Calc. Availability Extensible Enum: Item Calc. Availability Type (65304) Setup Field: Cloud Events Setup → Item Calc. Availability Type

Allows custom item availability calculations. Built-in implementations:

4. Item Price Calculation Interface

Interface: Item Price Calculation Extensible Enum: Item Price Calculation Type (65305) Setup Field: Cloud Events Setup → Item Price Calculation Type

Allows custom price calculation logic. Built-in implementations:

5. Customer Statement Interface

Interface: Customer Statement Extensible Enum: Customer Statement Type (65306) Setup Field: Cloud Events Setup → Customer Statement Type

Allows custom customer statement generation. Built-in implementation:


Benefits

Extensibility

Scalability

Operational Efficiency

Business Value


Logic Flow

Message Processing (Technical)

  1. API Page Receives Request
  1. Message Persistence
  1. Task Scheduling (Queue API Only)
  1. Message Type Resolution
  1. Argument Preparation
  1. Interface Execution
  1. Response Storage
  1. Error Handling
  1. Task Completion

Setup & Configuration

Cloud Events Setup

The extension includes a Cloud Events Setup table (65302) and page (65307) accessible from the Administration area. Configuration options include:

FieldPurpose
Customer Credit Limit TypeSelects implementation for customer credit limit calculations (Default Credit Limit, or custom implementations)
Credit Limit Tolerance %Percentage tolerance for credit limit checks (0-100)
Item Calc. Availability TypeSelects implementation for item availability calculations (Physical Inventory, Calculated Quantity, or custom implementations)
Item Price Calculation TypeSelects implementation for item price calculations (Default Price, Sales Price Header Handler, or custom implementations)
Customer Statement TypeSelects implementation for customer statement PDF generation (Standard Statement, or custom implementations)
Default Language CodeDefault language for system-generated messages and help text
Default Email ScenarioFallback email scenario used by Email.Draft.Set when the request does not specify one explicitly

To access the setup page, search for "Cloud Events Setup" in Business Central.

Field Access Restrictions

The extension includes Cloud Events Field Accesses page (65309) for managing user-level field access restrictions. This feature allows administrators to:

Restriction Types:

To access field restrictions, search for "Cloud Events Field Accesses" in Business Central. See Field Access Restrictions documentation for detailed setup instructions and use cases.

Permission Requirements

Users or service accounts accessing the API endpoints must be assigned one of the following permission sets:

API Endpoint Configuration

API endpoints are published at:

Authentication follows standard Business Central web service authentication (OAuth 2.0 or Basic Auth depending on deployment).

Retention Policy

The extension registers the Cloud Event Message table with Business Central's retention policy framework, allowing administrators to automatically delete old message records based on the date & time field.


Example Scenario

Scenario: Query Customer Credit Limit

Objective: External system needs to check available credit for a customer before accepting an order.

Step 1: Submit Asynchronous Request

POST https://<bc-instance>/ODataV4/Company('<company-name>')/cloudEventQueue
Content-Type: application/cloudevents+json

{
  "specversion": "1.0",
| --- | --- |
  "source": "https://external-system.example.com",
  "type": "Customer.CreditLimit.Get",
  "subject": "CUST-10000",
  "datacontenttype": "application/json",
  "time": "2024-01-15T14:30:00Z",
  "data": {
    "CustomerNo": "CUST-10000"
  }
}

Response: 202 Accepted

Step 2: Subscribe to Webhook (One-Time Setup)

Configure webhook subscription in Business Central:

Step 3: Receive Webhook Notification

Your webhook endpoint receives:

{
  "MessageId": "credit-check-001",
  "MessageType": "Customer.CreditLimit.Get",
  "ResponseContentLink": "/api/origo/cloudEvent/v1.0/responses(credit-check-001)/data",
  "Timestamp": "2024-01-15T14:30:02Z"
}

Step 4: Retrieve Response Data

GET https://<bc-instance>/ODataV4/Company('<company-name>')/cloudEventData?$filter=MessageId eq 'credit-check-001'

Response:

{
  "value": [
    {
      "MessageId": "credit-check-001",
      "MessageType": "Customer.CreditLimit.Get",
      "Direction": "Outgoing",
      "ResponseData": "{\"CustomerNo\":\"CUST-10000\",\"CreditLimit\":50000.00,\"Balance\":35000.00,\"AvailableCredit\":15000.00}",
      "ResponseTime": "2024-01-15T14:30:02Z"
    }
  ]
}

Alternative: Synchronous Request

For immediate response without webhook callback:

POST https://<bc-instance>/ODataV4/Company('<company-name>')/cloudEventTask
Content-Type: application/cloudevents+json

{
  "specversion": "1.0",
  "id": "credit-check-sync-001",
  "source": "https://external-system.example.com",
  "type": "Customer.CreditLimit.Get",
  "subject": "CUST-10000",
  "datacontenttype": "application/json",
  "data": {
    "CustomerNo": "CUST-10000"
  }
}

Response: 200 OK with response data inline


Objects

Object TypeObject IDNamePurpose
Table65300Cloud Event MessageStores cloud event messages with request/response data and task scheduling info
Table65301Cloud Event Message ArgumentTemporary table for passing arguments to message type implementations
Table65302Cloud Events SetupStores configuration for credit limit, availability, and price calculation implementations
Table65303Cloud Event TranslationStores translatable string pairs (source/target) for external UI internationalization
Table65304Cloud Events Field AccessStores field-level access restrictions for users
Table65305CE User/App BufferTemporary buffer combining active users and AAD applications for restriction management
Table65306Cloud Event Translation SourceTemporary buffer of distinct translation source identifiers, populated from existing translations
Table65307Cloud Events IntegrationOperational event log recording source system, table, timestamp, and reversal status for integration events
Table65308Cloud Events StorageStores named blob payloads for import/export and configuration scenarios
Table65309Cloud Events Delete LogLogs deleted records with optional full-record JSON snapshots for sync and audit
Table65310Cloud Event Message Type ListTemporary buffer listing available cloud event message types for setup lookup
Table65311Cloud Events Delete SetupConfiguration table specifying which tables should log deletions and store record snapshots
Table65319Cloud Events MemoryCompany-scoped key-value memory storage with blob payloads
Table65320Cloud Events User MemoryUser-scoped key-value memory storage with blob payloads
Table65316Sales Price BufferTemporary buffer table for price list query results
Page65300Cloud Event Data APIAPI endpoint for retrieving response data from completed messages
Page65301Cloud Event Queue APIAPI endpoint for creating asynchronous message requests
Page65302Cloud Event Task APIAPI endpoint for creating synchronous message requests
Page65303Cloud Event Message EditorDialog page for viewing/editing message request/response data
Page65304Cloud Event MessagesList page for viewing and managing all cloud event messages
Page65305Cloud Event RequestFactBox page displaying request data for a message
Page65306Cloud Event ResponseFactBox page displaying response data for a message
Page65307Cloud Events SetupSetup page for configuring Cloud Events functionality
Page65309Cloud Events Field AccessesList page for managing field-level access restrictions
Page65310CE User/App LookupLookup page for selecting users or AAD applications
Page65311Cloud Events Field LookupLookup page for selecting table fields
Page65308Cloud Event TranslationsList page for managing translation entries used by external systems
Page65312CE Translation Src LookupLookup page for selecting a translation source to filter the Cloud Event Translations list
Page65313Cloud Event Request Data APIAPI endpoint for retrieving the original request payload for a processed message
Page65314Cloud Events IntegrationList page for viewing and managing cloud event integration log records
Page65315Cloud Events StorageList page for managing stored blob content with import/export actions
Page65316Cloud Event Message Type ListLookup page for selecting a cloud event message type
Page65317Cloud Events Delete LogList page for viewing and managing the cloud events delete log
Page65318Cloud Events Delete SetupList page for configuring which tables are tracked for deleted record logging
Page65335MCP Chat Model ListLookup page for selecting an available AI model from the configured MCP Chat server
Query65303CE Translation SourcesQuery returning distinct Source values from the Cloud Event Translation table
Codeunit65300Cloud Event InstallInstallation codeunit for registering retention policy
Codeunit65301Cloud Event UpgradeUpgrade codeunit for managing app upgrades
Codeunit65302Help Fields Get HelpHelp documentation generator for Help.Fields.Get message type
Codeunit65303Help Impl Get HelpHelp documentation generator for Help.Implementation.Get message type
Codeunit65304Help MessageTypes Get HelpHelp documentation generator for Help.MessageTypes.Get message type
Codeunit65305Data RecordIds Get HelpHelp documentation generator for Data.RecordIds.Get message type
Codeunit65306Help Tables Get HelpHelp documentation generator for Help.Tables.Get message type
Codeunit65307Help Fields Get ImplImplementation of Help.Fields.Get message type
Codeunit65308Help Impl Get ImplImplementation of Help.Implementation.Get message type
Codeunit65309Help MessageTypes Get ImplImplementation of Help.MessageTypes.Get message type
Codeunit65310Data RecordIds Get ImplImplementation of Data.RecordIds.Get message type
Codeunit65311Help Tables Get ImplImplementation of Help.Tables.Get message type
Codeunit65312Cloud Event Message ErrorError handling codeunit for formatting error responses
Codeunit65313Cloud Event Message TaskTask runner codeunit for processing cloud event messages
Codeunit65314Data Records Get ImplImplementation of Data.Records.Get message type
Codeunit65315Data Records Get HelpHelp documentation generator for Data.Records.Get message type
Codeunit65316Data Records Set ImplImplementation of Data.Records.Set message type
Codeunit65317Data Records Set HelpHelp documentation generator for Data.Records.Set message type
Codeunit65318Customer CreditLimit Get HelpHelp documentation generator for Customer.CreditLimit.Get message type
Codeunit65319Customer CreditLimit Get ImplImplementation of Customer.CreditLimit.Get message type
Codeunit65320Help Permissions Get HelpHelp documentation generator for Help.Permissions.Get message type
Codeunit65321Help Permissions Get ImplImplementation of Help.Permissions.Get message type
Codeunit65322Item Availability Get ImplImplementation of Item.Availability.Get message type
Codeunit65323Item Availability Get HelpHelp documentation generator for Item.Availability.Get message type
Codeunit65324Item Price Get ImplImplementation of Item.Price.Get message type
Codeunit65325Item Price Get HelpHelp documentation generator for Item.Price.Get message type
Codeunit65326Sales Order Release ImplImplementation of Sales.Order.Release message type
Codeunit65327Sales Order Release HelpHelp documentation generator for Sales.Order.Release message type
Codeunit65328Data Records Set ProcessHelper codeunit for processing record data in Data.Records.Set
Codeunit65329Sales Order Reopen ImplImplementation of Sales.Order.Reopen message type
Codeunit65330Default Credit Limit ImplDefault implementation of Customer Credit Limit interface
Codeunit65331Sales Order Reopen HelpHelp documentation generator for Sales.Order.Reopen message type
Codeunit65332Physical Inventory ImplPhysical inventory implementation of Item Calc. Availability interface
Codeunit65333Calculated Quantity ImplCalculated quantity implementation of Item Calc. Availability interface
Codeunit65334Default Price ImplDefault implementation of Item Price Calculation interface
Codeunit65335Sales Price Header HandlerSales price header implementation of Item Price Calculation interface
Codeunit65336Sales CrMemo PDF Get ImplImplementation of Sales.SalesCreditMemo.Pdf message type
Codeunit65337Return Rcpt PDF Get ImplImplementation of Sales.ReturnReceipt.Pdf message type
Codeunit65338Sales Invoice PDF Get ImplImplementation of Sales.SalesInvoice.Pdf message type
Codeunit65339Sales Shipment PDF Get ImplImplementation of Sales.SalesShipment.Pdf message type
Codeunit65340Return Rcpt PDF Get HelpHelp documentation generator for Sales.ReturnReceipt.Pdf message type
Codeunit65341Sales CrMemo PDF Get HelpHelp documentation generator for Sales.SalesCreditMemo.Pdf message type
Codeunit65342Sales Invoice PDF Get HelpHelp documentation generator for Sales.SalesInvoice.Pdf message type
Codeunit65343Sales Shipment PDF Get HelpHelp documentation generator for Sales.SalesShipment.Pdf message type
Codeunit65344Sales Order Statistics ImplImplementation of Sales.Order.Statistics message type
Codeunit65345Sales Order Statistics HelpHelp documentation generator for Sales.Order.Statistics message type
Codeunit65347Customer Statement PDF HelpHelp documentation generator for Customer.Statement.Pdf message type
Codeunit65348Customer Statement PDF ImplDispatch codeunit for Customer.Statement.Pdf — delegates to Customer Statement interface
Codeunit65349Deleted Records Get ImplImplementation of Deleted.Records.Get message type
Codeunit65353Deleted Records Get HelpHelp documentation generator for Deleted.Records.Get message type
Codeunit65354Deleted RecordIds Get ImplImplementation of Deleted.RecordIds.Get message type
Codeunit65355Deleted RecordIds Get HelpHelp documentation generator for Deleted.RecordIds.Get message type
Codeunit65356CSV Deleted Records Get ImplImplementation of CSV.DeletedRecords.Get message type
Codeunit65357CSV Deleted Records Get HelpHelp documentation generator for CSV.DeletedRecords.Get message type
Codeunit65358CSV BuilderRFC 4180 compliant CSV construction utility used by CSV export message types
Codeunit65359Standard Statement ImplDefault implementation of Customer Statement interface using BC Report Selections for C.Statement
Codeunit65372Sales Order Post ImplImplementation of Sales.Order.Post message type
Codeunit65373Sales Order Post HelpHelp documentation generator for Sales.Order.Post message type
Codeunit65364Sales Order PendAppr ImplImplementation of Sales.Order.PendingApproval message type
Codeunit65365Sales Order PendAppr HelpHelp documentation generator for Sales.Order.PendingApproval message type
Codeunit65374Purchase Order Release ImplImplementation of Purchase.Order.Release message type
Codeunit65375Purchase Order Release HelpHelp documentation generator for Purchase.Order.Release message type
Codeunit65376Purchase Order Reopen ImplImplementation of Purchase.Order.Reopen message type
Codeunit65377Purchase Order Reopen HelpHelp documentation generator for Purchase.Order.Reopen message type
Codeunit65378Purchase Order Statistics ImplImplementation of Purchase.Order.Statistics message type
Codeunit65379Purchase Order Statistics HelpHelp documentation generator for Purchase.Order.Statistics message type
Codeunit65380Purchase Order Post ImplImplementation of Purchase.Order.Post message type
Codeunit65381Purchase Order Post HelpHelp documentation generator for Purchase.Order.Post message type
Codeunit65366Purchase Ord PendAppr ImplImplementation of Purchase.Order.PendingApproval message type
Codeunit65367Purchase Ord PendAppr HelpHelp documentation generator for Purchase.Order.PendingApproval message type
Codeunit65346Cloud Event Message EventsExternal Business Events and Integration Events for webhook notifications
Codeunit65350Cloud Events Field AccessManagement codeunit for checking field-level access restrictions
Codeunit65351Cloud Event Message Type MgmtManagement codeunit for cloud event message type configuration and validation
Codeunit65352Cloud Events Delete Log MgtManagement codeunit for the cloud events delete log, handling record capture on delete
Codeunit65370Customer SalesHistory Get ImplImplementation of Customer.SalesHistory.Get message type
Codeunit65371Customer SalesHistory Get HelpHelp documentation generator for Customer.SalesHistory.Get message type
Codeunit65382CSV Records Get ImplImplementation of CSV.Records.Get message type
Codeunit65383CSV Records Get HelpHelp documentation generator for CSV.Records.Get message type
Codeunit65384CSV Format HelperOpen Mirroring CSV formatting helper (column naming, value encoding, field type support)
Codeunit65387Data Totals Get ImplImplementation of Data.Totals.Get message type
Codeunit65388Data Totals Get HelpHelp documentation generator for Data.Totals.Get message type
Codeunit65385Gen. Journal Check ImplImplementation of Finance.GeneralJournal.Check message type
Codeunit65386Gen. Journal Post ImplImplementation of Finance.GeneralJournal.Post message type
Codeunit65389Gen. Journal Check HelpHelp documentation generator for Finance.GeneralJournal.Check message type
Codeunit65390Gen. Journal Post HelpHelp documentation generator for Finance.GeneralJournal.Post message type
Codeunit65391Field Translation Get ImplImplementation of Field.Translation.Get message type
Codeunit65392Field Translation Set ImplImplementation of Field.Translation.Set message type
Codeunit65393Field Translation Get HelpHelp documentation generator for Field.Translation.Get message type
Codeunit65394Field Translation Set HelpHelp documentation generator for Field.Translation.Set message type
Codeunit65395Field Translations Get ImplImplementation of Field.Translations.Get message type
Codeunit65396Field Translations Get HelpHelp documentation generator for Field.Translations.Get message type
Codeunit65362ChangeLog FieldEnabled ImplImplementation of ChangeLog.Field.Enabled message type
Codeunit65363ChangeLog FieldEnabled HelpHelp documentation generator for ChangeLog.Field.Enabled message type
Codeunit65412ChangeLog Field Restore ImplImplementation of ChangeLog.Field.Restore message type
Codeunit65413ChangeLog Field Restore HelpHelp documentation generator for ChangeLog.Field.Restore message type
Codeunit65414ChangeLog Restore ProcessIsolated write process for applying Change Log field restores with error handling
Codeunit65415ChangeLog FieldHistory ImplImplementation of ChangeLog.Field.History message type
Codeunit65416ChangeLog FieldHistory HelpHelp documentation generator for ChangeLog.Field.History message type
Codeunit65417ChangeLog Guard HelperShared helper for ChangeLog Write Guard implementations — Change Log coverage checks and scope caching
Codeunit65418Open Write Guard ImplOpen mode implementation of ChangeLog Write Guard — allows all field writes
Codeunit65419Blocked Write Guard ImplBlocked mode implementation of ChangeLog Write Guard — rejects writes to fields not covered by Change Log
Codeunit65420Via Force Write Guard ImplVia-force mode implementation of ChangeLog Write Guard — blocked but bypassable with force=true and CE Force Access permission
Codeunit65442Cloud Events Memory MgtManagement codeunit for memory record filtering, JSON serialization, and blob helpers
Codeunit65443Memory Company Get ImplImplementation of Memory.Company.Get message type
Codeunit65444Memory Company Set ImplImplementation of Memory.Company.Set message type
Codeunit65445Memory Company Set ProcessIsolated write process for company memory upserts
Codeunit65447Memory Company Get HelpHelp documentation generator for Memory.Company.Get message type
Codeunit65448Memory Company Set HelpHelp documentation generator for Memory.Company.Set message type
Codeunit65449Memory User Get HelpHelp documentation generator for Memory.User.Get message type
Codeunit65450Memory User Set HelpHelp documentation generator for Memory.User.Set message type
Codeunit65451Memory User Get ImplImplementation of Memory.User.Get message type
Codeunit65452Memory User Set ImplImplementation of Memory.User.Set message type
Codeunit65453Memory User Set ProcessIsolated write process for user memory upserts
Codeunit65454Memory Company List ImplImplementation of Memory.Company.List message type
Codeunit65455Memory User List ImplImplementation of Memory.User.List message type
Codeunit65456Memory Company List HelpHelp documentation generator for Memory.Company.List message type
Codeunit65457Memory User List HelpHelp documentation generator for Memory.User.List message type
Codeunit65498Email Draft Set HelpHelp documentation generator for Email.Draft.Set message type
Codeunit65499Email Draft Set ImplImplementation of Email.Draft.Set message type
InterfaceN/AChangeLog Write GuardInterface contract for implementing custom ChangeLog Write Guard strategies
PermissionSet65303CE Force AccessGrants the force-bypass right for the Via-force ChangeLog Write Guard mode
Enum65308ChangeLog Write Guard TypeExtensible enum for selecting the active ChangeLog Write Guard implementation
Enum65300Cloud Event Message TypeExtensible enum defining all available cloud event message types
Enum65301Cloud Event Message VersionEnum for CloudEvents specification versions (currently only 1.0)
Enum65302Cloud Event Msg DirectionEnum for message direction (Inbound, Outbound, Both)
Enum65303Customer Credit Limit TypeExtensible enum for customer credit limit calculation implementations
Enum65304Item Calc. Availability TypeExtensible enum for item availability calculation implementations
Enum65305Item Price Calculation TypeExtensible enum for item price calculation implementations
Enum65306Customer Statement TypeExtensible enum for customer statement PDF generation implementations
Enum65320Cloud Events Restriction TypeEnum defining restriction types (Both, Read, Write, Bypass)
Enum65321CE User Source TypeEnum for user source types (User, AAD Application)
EnumExtension65300Cloud Event CategoryExtends EventCategory enum with "Origo Cloud Event" value for External Business Events
Query65300Item/Location - Inventory QtyQuery for calculating physical inventory by item and location
Query65301Sales Price List QueryQuery for retrieving sales prices from price list entries
Query65302Customer Sales HistoryQuery for retrieving item sales history for a customer from Item Ledger Entries
InterfaceN/ACloud Event Msg InterfaceInterface contract for implementing custom cloud event message types
InterfaceN/ACustomer Credit LimitInterface for implementing custom customer credit limit calculations
InterfaceN/AItem Calc. AvailabilityInterface for implementing custom item availability calculations
InterfaceN/AItem Price CalculationInterface for implementing custom item price calculations
InterfaceN/ACustomer StatementInterface for implementing custom customer statement PDF generation
PermissionSet65300Cloud Events FullFull access permission set for all Cloud Events objects
PermissionSet65301Cloud Events ReadRead-only access permission set for monitoring and reporting
PermissionSet65302Cloud Events APIMinimal permission set for service accounts accessing the Cloud Events API endpoints
PermissionSet65304CE Company MemoryFull RIMD access to company-scoped memory, translation, and storage tables

Dependencies

No external dependencies. This extension runs on standard Business Central platform capabilities only.


Documentation

Context-Sensitive Help

The extension provides built-in context-sensitive help pages for all user-facing pages in both English and Icelandic. When a user presses the help button on any page in Business Central, they are directed to the corresponding help page for their locale.

Help pages are located in the app/Help/ folder:

Each language folder contains an index.html home page with a table of contents linking to individual page help files.

Internal Documentation

Detailed documentation is available within the extension:

CloudEvents Specification

This extension implements the CloudEvents 1.0 Specification.

Required CloudEvents Attributes:

Optional Attributes:

Note for Data message types: Data.Records.Get and Data.Records.Set also accept the table identification in the subject field — both a table name (e.g., "Customer") and a numeric table ID (e.g., "18") are supported. The JSON data payload parameters tableName / tableNumber take precedence when both are provided.

Support

For questions, issues, or feature requests, contact Origo support or refer to internal Confluence documentation.


© 2026 Origo. All rights reserved.


© Origo – Cloud Events Base Extension