Setup and configuration
Set up and configure Pryme Intercompany
Concept parties, topics and subscriptions
Pryme Intercompany enables Business Central companies to share data seamlessly using Messages. TThis system is built on three key components: Parties, Topics, and Subscriptions.
- Parties - A Business Central company that exchanges data with other companies via Messages
- Topics - Messages published by one Party and available for other Parties to subscribe to.
- Subscriptions - Messages that allow a Party to receive data from a Topic.
Configuration differences
Both apps share the same process for setting up Parties, but not for Topics and Subscriptions
Pryme Intercompany Master Data App:
- No pre-configured templates.
- Data exchanges require manual setup for Topics and Subscriptions, offering greater flexibility for custom use cases.
Pryme Intercompany Project App:
- Pre-defined templates for Topics and Subscriptions tailored to project-related data (e.g., time entries, expenses).
- Simplifies setup and accelerates implementation for project-specific data sharing.

1 - Before you start
Things to do and consider before you start setting up the Pryme Intercompany app
Before diving into the setup of Pryme Intercompany, ensure that the following key considerations are addressed to ensure smooth implementation and integration.
Party code
- All companies involved must agree on a unique intercompany partner identification code, also known as a Party Code. This code will help identify each company in the system.
- Use a consistent and scalable naming system. For example, instead of just using a land code (e.g., “UK”), combine it with a number, such as “UK10,” “UK11,” etc.
Data conflicts
Ensure no data conflicts exist before setting up the app. Review and update existing entries to avoid issues.
Key Areas to Check:
- Project numbers
- Resource codes
- Other shared references
Tip!
Use the company code as a prefix in the number series for projects to avoid overlap and improve clarity.Master data
Determine how master data will be managed across the group. Will one company act as the central master data company for the entire group, or will each company manage its own master data? If choosing a centralized approach, designate one company to provide the master data to the others.
Key Considerations:
- Tables to transfer - Identify which master data tables need sharing.
- Field-level restrictions or filters - Ensure that any needed restrictions, filters, or field-level mappings are identified and implemented.
- Code Harmonization - Do you have consistent coding schemes across the companies for master data? If not, align and update the codes to ensure consistency across the group.
If Pryme Intercompany for Projects is installed, exclude projects and resources from the master data, as these are managed by the app.
Make sure that related tables that are needed when importing data are included in the master data setup. This prevents data errors due to missing or incorrect data, saving time in the long run.
Transfer time, expense and item entries between companies
The Pryme Intercompany project app comes with two predefined templates to transfer time entries and project ledger entries. You can choose to use these templates individually or in combination.
Time entries Template
Functionality:
- Transfers time entries to the External time entries table when timesheets are submitted by the performing company.
- The project manager in the selling company can preview the entries, and can approve and comment the entries in an approval flow that is for informational purposes only.
- After posting, project ledger entries are created in both companies (performing and selling).
Limitations:
- Only time entries will be transferred. If you move entries between projects using Move entries or a Project journal, these will not be transferred through intercompany automation as they don’t create time entries; only project ledger entries.
Project ledger entries Template
Functionality:
- Transfers posted time, expense, and item entries to the project journal. When posting these entries, Project ledger entries are created in the selling company.
Limitations:
- Preview and Approval - Project managers in the selling company will not be able to preview time entries before posting.
Combining Templates
If you want to preview time entries (and use the approval flow) and also transfer expenses and item entries, you can use the templates in combination.
- Time entries β Time and resources
- Project ledger entries β Expenses and item entries
2 - Basic setup
Learn about the basic set up that needs to be done before you start setting up parties, topics and subscriptions in Pryme Intercompany
Add your party code
Each company needs a unique Party code for identification purposes. Agree on a naming strategy with all companies in the group and ensure consistency in Party code naming.
Follow these steps to set it up:
- Choose the π icon, enter Pryme Intercompany setup, and select the related link.
- Enter a Party code in My party code.
Exclude a dimension in the intercompany data
If your company uses local dimensions (i.e., only relevant for a specific company) and shouldnβt be shared with other companies, you can exclude the dimensions from the Topic message.
- Choose the π icon, enter Dimensions, and select the related link.
- Change Skip for Intercompany (IDM) to On/Selected for any dimension you want to exclude.
Expense payment type
If you are using the Project ledger entries functionality to transfer expenses between companies, you must add an Expense payment type to prevent expenses from posting to the general ledger. The general ledger will be updated when you post the Purchase invoice.
This Expense payment type is only for intercompany transactions.
- Choose the π icon, enter Expense payment type, and select the related link.
- Create a new expense payment type and set the Expense payment function to Company paid and the Expense posting to NONE.
- Choose the π icon, enter Project expense posting setup, and select the related link.
- Create an Expense code for each code you have, and add the newly created Expense payment type.
- Fill in the necessary fields. Hover over a field for a short description.
Permissions
Users who are going to send projects to other companies must have the permission USER IDMYME.
3 - Step by step Project, Time, Expense, Item
Step by step how to setup Intercompany for Project and Time entries
When setting up Pryme Intercompany Projects, it’s crucial to follow a structured approach to ensure that both the sending and receiving companies are properly configured for transferring projects and time entries. The process involves setting up Parties, Topics, and Subscriptions in the correct order.
Below is a step-by-step guide to help you through the setup process.
In Pryme Intercompany Project, you can transfer data using two pre-defined templates. You can use these templates either separately or in combination, depending on the types of data you want to transfer between companies. Read more about it here.
- Time Entries - This template is used for transferring just the time entries.
- Project Ledger Entries - This template includes time entries, as well as expenses and item entries.
For two-ways data transfer, set up the Topics and Subscriptions in both companies.
Parties
- Create a Party in Company A for Company B.
- Create a Party in Company B for Company A.
Project
- Create a Topic in Company A. Select the template for Projects.
- Create a Subscription in Company B for Projects on the Partycode for company A.
- Check and update the table definitions.
Time, alternative 1
The pre-define template Time entries transfer resources and time entries. When a time sheet is submitted the entries are transfered to the External time entries. This makes it possible for a project manager in to preview the entries. There is also an approval flow for information purpose only.
- Create a Topic in Company B. Select the template Time entries.
- Create a Subscription in Company A for Time entries on the Partycode for company B.
- Check and update the table definitions.
Expense and item entries
If you use the template for Time entries, and also want to transfer project ledger entries for expenses and items, use the template Project ledger entries for this purpose.
- Create a Topic in Company A . Select the template for Project ledger entries.
- Check and update the table definitions. Add a Condition on field Type to only include g/l account and Item in the data message.
- Create Expense payment types in Company B and update the Expense posting groups
- Create a Subscription in Company B for Project ledger entries on the Partycode for company A.
- Check and update the table definitions.
Time alternative 2, including expenses and item entries
If you want to transfer project ledger entries for time, expenses and items, without the possibility for a project manager to preview the time entries, you can use the Project ledger entries. Using this template, the project ledger entries are transfered to a project journal, from where they are posted.
- Create a Topic in Company A . Select the template Project ledger entries.
- Check and update the table definitions.
- Create Expense payment types in Company B and update the Expense posting groups.
- Create a Subscription in Company B for Project ledger entries on the Partycode for company A
- Check and update the table definitions.
| Company A | Company B |
---|
| Parties | |
1a | Create a Party for Company B. | |
1b | | Create a Party for Company A. |
| | |
| Project | |
2a | Create a Topic. Select the template for Projects. | |
2b | | Create a Subscription for Projects from company A and update the table definitions. |
| | |
| Time, alternative 1, via Time sheet (External Time Entries) | |
3a | | Create a Topic. Select the template for Time entries. |
3b | Create a Subscription for Time entries from company B and check the table definitions. | |
| | |
| Expense and item entries (in addition to Time entries) | |
4a | | Create a Topic. Select the template for Project ledger entries. Update the table definitions. Add a Condition to only include Type g/l account and Item in the data message. |
4b | Create Expense payment types and update the Expense posting groups. | |
4c | Create a Subscription for Project ledger entries from company B and check the table definitions. | |
| | |
| Time, alternative 2, via Project ledger entries, includes expenses and items | |
5a | | Create a Topic. Select the template for Project ledger entries. Update the table definitions. |
5b | Create Expense payment types and update the Expense posting groups. | |
5c | Create a Subscription for Project ledger entries from company A and check the table definitions. | |
4 - Parties
Learn how to setup a Party, a company in Business Central sharing data with other companies.
A Party is a Business Central company sharing data with other companies. A Party can send and receive data. You must set up all companies as you will send data to or receive data from.
Before you start setting up the Parties, choose a consistent format for Party Codes. Combine a land code with a number for uniqueness and clarity (e.g., UK10, UK10).
Set up your standard party code
- Choose the π icon, enter Pryme Intercompany Setup, and then select the related link.
- Enter your party code in My Party code.
Parties
Every company must have a unique party code that identifies the company. Decide on a naming strategy, and stick to it.
- Choose the π icon, enter Parties (IDM), and then choose the related link.
- Fill in the fields as necessary. Hover over a field to read a short description.
Party groups
Party Group is a subset of parties and can be used in a Topic to restrict which companies are allowed to receive data.
- Choose the π icon, enter Party Groups (IDM), and select the related link.
- Fill in the fields as necessary. Hover over a field to read a short description.
- Enter the Code of Parties that should be related under the Parties subpage.
5 - Topics
Learn how to set up Topics in Pryme Intercompany, used for publishing data to other Business Central companies.
Topics are used for publishing data to other parties. Topics themselves do not send data directly but act as a notification system that alerts subscribers to pull data.
The Topic defines the types of data (tables and fields) that are available to be transferred to other parties. You can also add Conditions to filter and control which data should be transferred.
Topic card
- Choose the π icon, enter Topics (IDM), and select the related link. Fill in the fields as necessary. Hover over a field to read a short description. Some of the most important fields are as follows:
Field | Comment |
---|
Message processing | Pryme Intercompany Masterdata -> Generic |
| Pryme Intercompany Project -> Project, Time entries or Project ledger entries. |
Subscription type | This field is used to restrict to the Topic to a specific Party or to a group of Parties. |
Subscription Code | If you in Subscription Type choose Party or Group, add the Party or Party group to whom you want to publish the Topic. |
- Open the Topic Tables action under Related.
Transfer time entries
We provide two predefined templates for transferring time entries; Time entries and Project ledger entries.
Time entries
This template transfers both time and resources. Once time entries are submitted, they are transferred to the External Time Entries table in the receiving company. This enables project managers in the selling company to preview the entries. Additionally, there is an approval flow included for informational purposes.
When time entries are posted in the performing company, project ledger entries are automatically created in both the selling and performing companies.
Project ledger entries
This template transfers time (excluding resources), expenses, and item entries. It creates transactions in a project journal, and when posted, project ledger entries are generated in the selling company. Unlike the Time Entries template, this option does not include preview or approval functionality when the time sheet is submitted in the performing company.
You cannot use both templates simultaneously for time entries, as this will result in duplicate project ledger entries. However, you can use the templates in combination for different purposes:
- Time Entries: For transferring time and resources.
- Project Ledger Entries: For transferring expenses and item entries (add a Condition to only include Type g/l account and Item).
Note!
The template Project ledger entries is a preview feature and to be tested in a sandbox environment. Please contact support if you want to use it in a production environment.Topic tables
There is a differance between the two intercompany apps when it comes to setting up Topic tables.
- Pryme Intercompany Masterdata - You must manually add the tables you want to transfer and define their table definitions. By default, all fields are included in the data message unless specified otherwise.
- Pryme Intercompany project - Pre-defined templates are available, with tables and table definitions already populated for you.
- Select New and search for the table you want to add.
- Fill in the fields as necessary. Hover over a field to read a short description. Some of the most important fields are as follows:
Field | Comment |
---|
Allow On-Demand Publish | Enables users to manually publish records to this topic using an on-demand page action, provided the conditions are fulfilled. This field is valid only for tables with special on-demand functionality. |
Conditions | Use this field to set filters that define whether data should be included or excluded in the Topic record. |
Included fields | If you want to exclude specific fields from the Topic, click this field. It opens Message Data Content (IDM), where you can define your restrictions. |
- Go back to the Topic card and Set status to Ready.
- Restart the company. The changelog will be updated with new and updated entries that will generate Topic records to the subscribers.
Note!
If you in Pryme Intercompany project have a transfer pricing list in a different currency than your LCY, you must add the fields Invoice currency code and Time sheet currency code in your Topic.Transfer all entries in a table
The intercompany apps only transfers new and updated entries. To ensure consistency across all subscribing companies, you can transfer all entries in a table using the Topic Table -> Create Messages function. Key points to remember:
- Use this for Master data tables after setting up the Topic to synchronize data across companies.
- This action adds and updates entries but does not delete records in subscribing companies.
- If invalid records exist in subscribing companies, manual cleanup may be required.
Update a topic with new fields
To add a new field to an existing Topic, follow these steps:
- Choose the π icon, enter Topics (IDM), and select the related link.
- Set the Topic to On hold.
- Open the Topic Tables action under Related.
- Click on Included fields. Message Data Content (IDM) will open and you can add the field.
- Go back to the Topic card and Set status to Ready.
- Restart the company.
- Add the field in the Subscription. Look here.
6 - Subscriptions
Learn how to setup Subscriptions, used for receiving data from other Business Central companies.
After setting up the Topic, the next step is to create a Subscription for each Party in the receiving company/companies. You must create one Subscription per Party (sending company) you are receiving data from.
If you are setting up a Subscription in a multiple Business Central environment, using Azure Service Bus, you must run the Topic in the sending company before you are setting up the Subscription
Subscription card
- Choose the π icon, enter Subscriptions (IDM), and select the related link.
- Enter the Party code for the sending company and select the related Topic.
- Pryme Intercompany Project only.
- Inv. Setup template Defines the default invoice template for intercompany projects. Leave blank to add templates manually.
- Res. price template Specifies the transfer pricing list for projects.
- Review and adjust tables under Subscription Tables. Delete tables you do not wish to import. Re-add deleted tables if needed (limited to tables present in the Topic).
- Use Subscription Fields to modify field-level data processing, mapping, and rules.
Subscription Fields
Subscription fields allows you to control how data is imported and processed.
When you import a table, you can mapp a field to change the value in it. This is only possible if the field is included in the Topic message.
If you change or mapp a field, we recommend you use the Comment field to document your changes. The field Relation Table Caption specifies the table that is related to the field. If you have values in these fields, the value you import must exist in the related table in the receiving company.
You can map a field four ways, by Value, Filter, Fixed or Currency.
Type | Description |
---|
Value | One-to-one mapping. |
Filter | Conditional updates based on filters. |
Fixed | Assigns a fixed value to all imported transactions. |
Currency | Manages local currency conversions. |
Currency mapping
Ensures proper handling of differing local currencies (LCY) between companies.
Requires setup of the Currency Code for each Party and the LCY Code in the General Ledger Setup.
- If the currency code in the subscription message is blank the Currency code from the Party code will be used and mapped into the field.
- If the currency code in the subscription message matches the Currency code on the Party code, the currency field will be set to blank.
Note!
When a record is received from another company through a Topic, a Subscription record is created. This record tracks its origin and whether it was created by another company or simply updated. If the record was originally created by another company, any local changes made will not be sent to other companies. For example, if a record, such as a payment term, was created outside the Intercompany (IC) process in multiple companies, there will be no agreement on ownership of the record. Consequently, all changes made across these companies will be synchronized and transferred.
To resolve such conflicts, you must update the Subscription record for these entries (found under Related) by manually setting the Data owned by party field.Subscription fields in Pryme Intercompany Project
In the Pryme Intercompany Project app there are fields you must map to get the correct values on the projects in the receiving company.
Project
Table 167 β Job
Target Field No | Target Field Name | Mapping value | Comment |
---|
5 | Bill-to Customer No. | Fixed | Always map to the sending companyβs customer number in the receiving company. |
20 | Person Responsible | | Is it the same as in the sending company? |
23 | Job posting group | | Is it the same as in the sending company? |
1011 | Invoice currency code | Currency | If you have an intercompany transfer pricing list in another currency than your LCY, always change the Mapping value to Currency. Read more about Currency mapping here. |
2000 | Sell-to Customer No. | Fixed | If you donβt have the customer table as Master data, map to the sending companyβs customer number in the receiving company. |
14045651 | Resource Invoice type | Value | If the selling company have fixed price agreement with the customer, and the performing company need to maintain regular intercompany billings, mapp this field to T&M |
14045655 | Item Invoice type | Value | If the selling company have fixed price agreement with the customer, and the performing company need to maintain regular intercompany billings, mapp this field to T&M |
14045656 | Expense Invoice type | Value | If the selling company have fixed price agreement with the customer, and the performing company need to maintain regular intercompany billings, mapp this field to T&M |
14045674 | Project Managerx PGS | | Is it the same resource as in the sending company? |
14045753 | Time sheet currency code | Currency | If you have an intercompany transfer pricing list in another currency than your LCY, always change the Mapping value to Currency. Read more about Currency mapping here. |
Table 1001 β Job task
Target Field No | Target Field Name | Mapping value | Comment |
---|
14045764 | Contract Type PGS | Value | If the selling company have fixed price agreement with the customer, and the performing company need to maintain regular intercompany billings, you must map this field to T&M |
14045709 | Project Manager PGS | | Is it the same resource as in the sending company? |
Table 14045676 - Permissions PM
This table is not mandatory to transfer. If you don’t need the permissions from the sending company, you can delete the table.
Target Field No | Target Field Name | Mapping value | Comment |
---|
1 | No | | Is it the same resources as in the sending company? |
Time
Table 156 β Resource
Target Field No | Target Field Name | Mapping value | Comment |
---|
51 | Gen Prod Posting Grp | | Is it the same as in the sending company? |
58 | VAT Prod Posting Grp | | Is it the same as in the sending company? |
Note!
The Intercompany Project app does not include cost price as part of its default setup. However, there are two approaches to handle cost prices effectively:
- Manually input the cost price for external resources directly in the receiving company.
- Automation by using Resource Group / Resource Subgroup. Create a decicated Resource Group / Resource Subgroup for IC resources and add the transfer pricing rates for resource costs. Donβt forget to map the IC resources to the decicated group/subgroup.
Project ledger entries
This is a preview feature that transfer resource, expenses and item ledgers between companies. It is to be tested in a Sandbox environment. Please contact support if you want to use it in a production environment.
Table 210 β Job jounal line
Target Field No | Target Field Name | Mapping value | Comment |
---|
1008 | Currency code | Currency | Read more about Currency mapping here. |
14045810 | Expense Payment Type | Value | Mapp the expense payment types you have in the sending company to the one you created for Intercompay purpose. |
Test the setup
When you have created a topic and the corresponding subscription, try to send one entry in the sending company. In the receiving company you can run the subscription manually from the action Run subscription. When everything is working, you can set up a job queue that runs the subscription automatically.
Read more about setting up job queues here.
Update a Subscription after changing the Topic
If you have changed the field definitions on the Topic you must manually update the Subscription.
- Choose the π icon, enter Subscriptions (IDM), and select the related link.
- Go to Update Source fields on the Action tab.
- Open the Subscription card.
- Click on Subscription fields on the table you want to update.
- Go to the field you want to add.
- In Source field No you add the Table No (same number as in Target field No).
7 - Run topics and subscriptions
Learn how to run topics and subscriptions, or setup job queues to run them automatically.
Once the Topics and Subscriptions are setup you can start transferring data. This can be done manually or automatically by a Job queue. If you are testing in a Sandbox, we recommend you run the Topics and Subscriptions manualy, as the Job queue is put On hold every time they complete a run.
Run topics
On the Topic the value Schedule run on Changelog determines if you must run the Topic or not. If the value is FALSE, you must run the Topic manually under Action -> Run topic or set up a Job queue to run it in the background.
- Choose the π icon, enter Topics, and select the related link.
- Go to Actions β Create Job Queue Entry
- Fill in the fields as necessary. Hover over a field to read a short description.
- Set Status to Ready.
Run subscription
Manually
- Choose the π icon, enter Subscriptions (IDM), and select the related link.
- Choose the Subscription you want to run and select Run Subscription under the Home action.
- If you get questions about updating values, always choose the selected answer.
Job Queue
- Choose the π icon, enter Subscriptions (IDM), and select the related link.
- Go to Actions β Create Job Queue Entry.
- Fill in the fields as necessary. Hover over a field to read a short description.
Schedule jobs to run automatically.
Note!
If you create a job queue in a Sandbox it will automatically be put On hold every time they complete a run.8 - Set up Azure Service Bus
Learn how to setup an Azure Service Bus connection for intercompany data transfer between Business Central companies in different environments.
When using multiple Business Central environments, you can use Azure Service Bus to transfer data between the companies. Azure Service Bus is a cloud-based messaging service that enables you to send messages between applications and services. Azure Service Bus supports a set of cloud-based, message-oriented middleware technologies including reliable message queuing and durable publish/subscribe messaging. For more information, see Azure Service Bus.
Before configuring the connection to Azure Service Bus in Business Central, a namespace must be created in Azure Service Bus. The namespace is the container for all messaging components in Azure Service Bus. The namespace is created in the Azure portal.
To create a namespace in Azure Service Bus
- Register an application for API connection: Register an application (MS Learn)
- Save the Application (client) ID for later
- Create a Client Secret and save the secret value for later.
- Create service bus namespace, see Create a namespace (MS Docs). It must be Standard tier or better.
- Save the Name of the namespace for later
- Save the Subscription Id where the Namespace was created for later
- Under Access control (IAM), add the registered application from step 1 as Role, Azure Service Bus Data Owner: Authenticate and authorize an application (MS learn)
After completion you will have the following values to insert into Business Central:
- Directory (tenant) ID from Azure AD
- Application (client) ID from the created App Registration.
- Client Secret from the created App Registration.
- Subscription Id where the ASB Namespace was created
- Azure Service Bus Namespace name from the created Azure Service Bus Namespace
Note
It is important to clearly separate the test and production environments. The test and production environments must never use the same Azure Service Bus namespace.
The test environment must be set up with a separate Azure Service Bus namespace, and the production environment must be set up with a separate Azure Service Bus namespace. If multiple test environments are used, each test environment must be set up with a separate Azure Service Bus namespace.To set up Azure Service Bus in Business Central
- Choose the π icon, enter Azure Service Bus (IDM), and then select the related link.
- Fill in the fields as necessary. Hover over a field to read a short description.
Tip
When an environment is copied to a sandbox, the Azure Service Bus connection is automatically disabled in the sandbox. If you want to use enable it, remember to set up and select a namespace dedicated to that sandbox.To set parties to use Azure Service Bus
- Choose the π icon, enter Parties (IDM), and then select the related link.
- Select the party to set up for Azure Service Bus.
- Select Azure Service Bus in the Data Transfer Type field.