Setup and configuration
Set up and configure pryme Intercompany
Concept parties, topics and subscriptions
Intercompany enabels Business Central companies to share data through massages. For this purpose we have Parties, Topics and Subscriptions.
- Parties is a Business Central company that shares data with other companies.
- Topics is a message that publishes data to other parties, and makes it able for the receiving party to request the data.
- Subscriptions is a message that receives published data from Topics in other Parties.
Parties are set up the same way in both pryme Intercompany apps. Topics and Subscriptions are setup a bit different in the pryme Intercompany Project app. In this app you have pre-defined templates; in the pryme Intercompany Master Data app there are no templates.
1 - Before you start
Things to do and consider before you start setting up the pryme Intercompany app
Before you start to set up pryme Intercompany, there are a few things to do and consider.
Party code
All companies must agree on a unique intercompany partner identification code for each company, a Party code. Before setting up the app, decide on a naming strategy and stick to it. Try to avoid just a land code; use the land code in combination with a number, e.g. UK10, UK11, UK12โฆ
Data conflicts
Check if you have any data conflicts in the data that will be shared. Update existing entries, e.g. projectnumbers and resources, to avoid data conflicts.
Tip!
Use the company code as a prefix in the number series for projects.Master data
Will you manage the master data in one master data company for the entire Group? If not, we recommend you have one company that provides the other companies with the master data.
- Which tables are you going to transfer?
- Any restrictions, filters, or mapping needed on field level?
- Do you have the same codes for the Master data tables in the existing companies? If not, update them to harmonize with the Master data.
If you have pryme Intercompany for Projects installed, projects and resources is a part of this app and should not included in the master data.
Make sure that related tables that are used when importing data is a part of the Master data. That saves you time and you avoid errors because of non-existing or wrong data.
Transfer time, expense and item entries between companies
In the pryme Intercompany project app we have two pre-defined templates to transfers time between between companies; Time entries and Project ledger entries (also includes expenses and items).
You can use them separately or in combination. It’s good to decide which way to go before start setting up your Topics.
Time entries
This template transfer the time entries to the table External time entries when the time sheet is submitted in the performing company. This makes it possible for the project manager in the selling company to preview the entries. There is also an approval flow for information purpose only. When the time entries are posted in the performing company, project ledger entries are created in both companies.
Project ledger entries
This template transfer posted time, expense and item entries to the project journal, and when posted, project ledger entries are created in the selling company. In this case it’s not possible for the project manager to preview the time entries.
In combination
If you want to preview the time entries, and use the approval flow for information purpose only, but also transfer expenses and item entries, you can use the templates in combitation;
- 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 subsctiptions in pryme Intercompany
Add your party code
All companies must agree on a unique intercompany partner identification code for each company, a Party code. Decide on a naming strategy and stick to it.
- Choose the ๐ icon, enter pryme Intercompany setup, and choose the related link.
- Enter the Party code in My party code.
Exclude a dimension in the intercompany data
If you have dimensions that are local for the company and shouldnโt be a part of the intercompany data, you can restrict the dimension to be excluded in the Topic message.
- Choose the ๐ icon, enter Dimensions, and choose the related link.
- Turn Skip for Intercompany (IDM) to On/Selected on the dimensions you want to exclude.
Expense payment type
If you are using the preview Project ledger entries functionality that transfers expenses between companies you must add a new Expense payment type.
This Expense payment type is only for intercompany transactions.
- Choose the ๐ icon, enter Expense payment type, and choose 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 choose the related link.
- Create a new Expense code for each code you have, and add the Expense payment type just created.
- Fill in the fields as necessary. Hover over a field to read a short description.
Permissions
All users that are going to send projects to other companies need the permission USER IDMYME.
3 - Step by step Project, Time, Expense, Item
Step by step how to setup Intercompany for Project and Time entries
Before you start setting up pryme Intercompany projects you must decide which companies should send and which companies should receive projects and time entries.
This is a basic step by step in which order you create Parties, Topics and Subscriptions when setting up pryme Intercompany Projects to transfer projects, time entries and resourses between companies in the same database. If you want to transfer e.g. projects both ways between two companies, you must set up a Topic and Subscription in both companies.
In pryme Intercompany project we have two different pre-defined templates to transfer time; Time entries and Project ledger entries (this template also includes expense and item entries). You can use them separately or in combination. Read more about it here.
The step by step explains in which order you set up Parties, Topics and Subscriptions to transfer projects, time, expenses and item ledger entries one way between two companies. If you transfering the data both ways, you need to 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 company in Business Central sharing data with other companies. A Party can both send and receive data. You must set up all companies you will send data to or receive data from.
Before you start setting up the Parties, decide on a naming strategy and stick to it. Try to avoid just a land code; use the land code in combination with a number, e.g. UK10, UK11, UK12.
Set up your standard party code
- Choose the ๐ icon, enter Pryme Intercompany Setup, and then choose the related link.
- Fill in 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 choose the related link.
- Fill in the fields as necessary. Hover over a field to read a short description.
- Add 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. The Topic doesnโt send data directly; it notifies the subscribers and enables them to pull data from the Topic.
The Topic is where you set up the tables and table definitions; which tables and field should be published. You can also add Conditions if you want to exclude transactions for being transfered.
Topic card
- Choose the ๐ icon, enter Topics (IDM), and choose 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 have two predefined templates that can be used for transferring time entries; Time entries and Project ledger entries.
Time entries
Transfer time and resourses. The time entries are transferred as soon as they are submitted in to the table External time entries in the receiving company. This makes it possible for a project manager in the selling company to preview the entries. There is also an approval flow for information purpose only. When the time entries are posted in the performing company, project ledger entries are created in both companies.
Project ledger entries
Transfers time (not resourses), expenses and item entries and creates transactions in a project journal, and when posted, the project ledger entries in the selling company are created. When using this template, there is no preview or approval functionality when the time sheet is submitted in the performing company.
You can’t use both templates at the same time for time entries because you will get duplicate project ledger entries. What you can do is to use the templates in combination;
- Time entries -> Time and resources
- Project ledger entries -> Expenses and item entries
In this case you must 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 related to setting up the Topic tables.
- pryme Intercompany Masterdata - you must manually add the tables you want to transfer and make the table definitions. The default value is that all fields are included in the data message.
- pryme Intercompany project - you have pre-defined templates with tables and table definitions already populated.
- Choose 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 | Allow users to manually publish records to this topic using an on-demand page action if the conditions are fulfilled. This field is only valid for tables with this special functionality. |
Conditions | You use this field to set filters to include or exclude data Topic record. |
Included fields | If you want exclude fields in the Topic record, click on this field. Message Data Content (IDM) will open where you enter your restrictions. |
- Go back to the Topic card and Set status to Ready.
- Restart the company. The changelog will now 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. If you want to transfer all entries in a table to the subscribers, use Topic Table -> Create Messages. We suggest you do this on all Master data tables after setting up the Topic to be assure that your data is the same in all companies. Note that this function only adds and updates entries, it never delete a record in the subscribing company. This means you might need to do some cleaning up in the subscribing companies if you have records that are not valid anymore.
Update a topic with new fields
This is the procedure if you want to add a new field in an existing Topic.
- Choose the ๐ icon, enter Topics (IDM), and choose 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.
When you have created a Topic you proceed and create a Subscription in the company/companies receiving data from the Topic. You have to set up one Subscription for each Party you are receiving data from.
Subscription card
- Choose the ๐ icon, enter Subscriptions (IDM), and choose the related link.
- Fill in the Party code for the sending company and choose the related Topic.
- pryme Intercompany Project only.
- Inv. Setup template the selected invoice template will be applied on all projects. If this field is empty, you must manually add the invoice template on all intercompany projects.
- Res. price template the transfer pricing list that you want to use for all projects.
- The related tables from the Topic are opened under Subscription tables. You can delete a table you donโt want to import. You can add it again, but you can never add a table that is not in the Topic.
- If you want to change the field definitions, click on Subscription fields.
Subscription Fields
Subscription fields are used for defining which fields should be imported, how the data should be processed on a field level and if there are any rules importing the field. 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 | Map a value one to one to convert from one value to another. |
Filter | Map and update a field based on a filter setting. |
Fixed | Map to a fixed value that will be valid for all imported transactions. |
Currency | Local currency will be mapped to/from blank. |
Currency mapping
This mapping is used when you have different LCY in your parties.
This mapping requires that the field “Currency Code” on each party is defined as well as the “LCY Code” in the General ledger setup.
- If the currency code is blank in the subscription message the Currency code on the Party code will be picked and mapped into the field.
- If the currency code in the subscription message is matching the Currency code on the Party code the currency will be mapped to blank.
Note!
When a record is received from another company from a Topic, a Subscription record is created. This record keeps track of where it came from and if it was created from another company or only updated. If the record was created in another company, local changes will not be sent to other companies. This means that if a record, e.g. a payment term, has been created outside of the IC process in several companies, the parties will not agree on who owns the record, and all changes in all companies will be transferred. In these cases, you must update the Subscription record on these records (under Related), by manually set the Data owned by party.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 | You must 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, you must 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, you must 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, you must 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, you must 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!
Cost price is not a part of the Intercompany Project app. You have two options:
- Enter the cost price manually on the external resources in the receiving company.
- Find a way to automate this, e.g. by using the Resource Group / Resource Subgroup. Create a specific Resource Group / Resource Subgroup for IC resources and add your transfer pricing rates for resource costs. Donโt forget to map the IC resources to the 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 choose 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.
When the Topics and Subscriptions are setup you can start transferring data. You can do that manually or create 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 it has 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 choose 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
Subscriptions must to be run manually or by a Job queue.
In a testing phase, itโs easier to run them manually, as the Job queue is put On hold every time it has run. but over time, itโs better to create a job queue.
Manually
- Choose the ๐ icon, enter Subscriptions (IDM), and choose the related link.
- Choose the Subscription you want to run and choose 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 choose 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 it has 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 choose 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 choose the related link.
- Select the party to set up for Azure Service Bus.
- Select Azure Service Bus in the Data Transfer Type field.