Skip to content

T2T Admin

Connects one BigLedger tenant to another — two independent subscriptions, each with its own database — so that one can see and reference a controlled slice of the other: a host owns the shared data, a guest consumes it, and the connection starts with an invitation the guest accepts. Across it you can map companies and branches, share items (the host permits, the guest pairs) and run external teams. It is not multi-company accounting, and mapping the two sides moves no document between them — nothing in sales, purchasing, stock or journals reads a T2T mapping; almost every write touches two databases, and a connection, once made, can change status but never be deleted.

Overview

T2T (“tenant to tenant”) connects one BigLedger tenant to another — two independent subscriptions, each with its own database — so that one can see and reference a controlled slice of the other. One tenant is the host (it owns the data being shared) and the other is the guest (it consumes the shared data). The connection is created by an invitation that the guest has to accept.

Once the two are connected, four things can be linked across the connection: companies and branches (business mapping), inventory/financial items (item-to-tenant permission, then item-to-item mapping), teams and roles, and an audit trail of everything that was done to the connection.

T2T is not multi-company accounting. Several companies inside one tenant are handled by the Organization applet; T2T is for a relationship between two organisations that each run their own BigLedger tenant — typically a distributor and a dealer, or a principal and a franchisee.

This applet’s own screens are not described here. This page describes what T2T does — the connection, the mappings, the permissions and what goes wrong — from the platform’s behaviour and from the T2T screens that live in the Doc Item Maintenance applet. The applet’s own menus and settings are not documented.

Where it fits

DirectionWhatWhy
PrerequisiteA second BigLedger tenant on the same platformYou invite it by tenant code; an unknown code is refused as a tenant that does not exist
PrerequisiteOrganization — companies and branches on both sidesBusiness mapping maps a company/branch pair on one side to a company/branch pair on the other
PrerequisiteEmployee / user accounts, teams and rolesExternal teams are ordinary teams flagged as T2T
DownstreamDoc Item Maintenance — T2T Item Mapping tabThe only shipped screen that reads and writes T2T item links
DownstreamBackend distributor ordering integrationAn electronic-software-delivery ordering integration resolves a guest item to the host’s item through the item mapping before placing an order

Apart from the two consumers above, nothing else in the platform reads a T2T mapping — no sales, purchase, stock or journal process consults a business mapping or an item link. Mapping the two sides does not, by itself, move a document between them.

Screens and menus

The wiki has no captures of this applet yet. What can be stated is the set of functional areas the applet is built on:

AreaWhat it holds
Tenant linkingThe invitation and its status; the list of connected host and guest tenants
Business mappingCompany + branch + entity pairs, both sides of the link
Companies / branches of the other tenantRead-only pickers that read the other tenant’s master data
Item permission (host side)Which of the host’s items a given guest tenant may map to
Item permission (guest side)Read-only: what the guest has been permitted
Item-to-item mappingThe guest’s item ↔ the host’s item
Item labelsLabels applied across the connection
External teamsTeams of the other tenant’s users
Roles and role linksRoles scoped to the connection
Audit trailEvery invitation, team and mapping action

The T2T Item Mapping tab inside Doc Item Maintenance is the one T2T surface whose source is readable. It has three sub-tabs — Host Tenant, Guest Tenant Item Mapping and Guest Tenant Permission Listing — and it loads the list of connections before anything else, which is why an item’s T2T tab is empty until a connection exists.

Configuration

Before you can use it

  • A second tenant that already exists. Invitations are addressed by tenant code, and the platform looks the code up before doing anything. Inviting your own tenant code is refused: the code must differ from your own.
  • The other tenant must be fully provisioned. T2T writes into both tenants in one call; if the platform cannot reach the other tenant the call fails, and only BigLedger can fix that.
  • Companies and branches on both sides. A mapping names a company and branch on each side, and the pair is not checked against either tenant’s records when the mapping is saved, so choose carefully.
  • Items in both tenants, before item mapping can pair them.

Applet settings

None are documented. No backend behaviour depends on a T2T applet setting, so whatever the applet’s own settings screens offer changes only what those screens show.

Feature visibility / permissions

T2T has its own permission family, and it is unusually complete: every resource carries OWNER, ADMIN, MEMBER, CREATE, UPDATE, DELETE and READ codes.

Permission groupGoverns
T2T_TENANT_INVITATION_*Sending, answering and updating invitations
T2T_TENANT_DM_ERP_BUSINESS_MAPPING_*Creating, updating and deleting company/branch mappings
T2T_TENANT_DM_ERP_BUSINESS_MAPPING_COMPANY_READ, …_BRANCH_READReading the other tenant’s companies and branches — these two are target-scoped, so they can be granted company by company
T2T_DM_FI_ITEM_TO_TENANT_LINK_*The host granting a guest permission to map an item
T2T_GUEST_DM_FI_ITEM_TO_TENANT_LINK_*The guest’s read of those permissions
T2T_DM_FI_ITEM_TO_ITEM_LINK_*, T2T_DM_HOST_FI_ITEM_TO_ITEM_LINK_*Item-to-item mapping, guest side and host side
T2T_EXTERNAL_TEAM_HOST_*, T2T_EXTERNAL_TEAM_GUEST_*External teams and their members
T2T_ROLE_LISTING_*Roles used across the connection
T2T_AUDIT_TRAIL_EVENT_*The audit trail

Every T2T action applies the same rule: the caller passes if they are the tenant owner or admin or hold any one of that action’s required permission codes. A read the caller is not entitled to does not error — it returns the record with its status replaced by PERMISSION_DENIED and every other field stripped. Expect blank rows rather than an error message.

Fields

The applet’s own forms are not documented; what follows is what each T2T record holds.

Tenant link — the other tenant’s code (must differ from your own and must exist); whether this side is the host or the guest; a status of INVITED, CONNECTED, REJECTED or DISCONNECTED (the only four states); a free-text name and description, written identically on both sides at invitation time; and whether the host still permits the guest to reconnect (set when the invitation is created).

Business mapping — your company and branch; your customer/supplier record for the other party (the header and the specific address/contact line); and the tenant on the other side. The server also writes a partial copy into the other tenant — see Lifecycle. Setting a mapping INACTIVE stops nothing: the status is not enforced, and an inactive mapping is accepted and listed like an active one. To end a mapping, delete it from the side that created it.

Item permission — the host’s item being opened up and the guest tenant allowed to map to it. To stop sharing an item, delete its permission.

Item mapping — the item in this tenant, the item in the other tenant, the other tenant, and whether the other side is the HOST or the GUEST, which decides which side may write the pair.

Audit trail event — the tenant the event concerns; one of thirteen actions (for example CREATE_NEW_GUEST_TENANT, INVITATION_ACCEPTED, CREATED_NEW_MAPPING); an event code (CREATE, MAIN_DETAILS, DELETE, INVITE, MAPPING); which side logged it; and who and when.

Lifecycle and effects

T2T writes no journal and moves no stock. It maintains link tables, and its defining property is that almost every write touches two databases.

Connecting the two sides

  1. Invite. The host sends the invitation by the guest’s tenant code. The server writes one connection record on the host’s side (marked guest) and one on the guest’s side (marked host), both INVITED, both with host approval set.
  2. Answer. The guest answers with ACCEPT, REJECT, DISCONNECT or CONNECT. Both records move to CONNECTED, REJECTED or DISCONNECTED together. CONNECT (reconnecting after a disconnect) is refused unless the host still approves it.
  3. Audit. Each step writes an audit trail event.

The two sides are written one after the other, not as one transaction. If the second write fails, the first is undone and the call fails. If that undo itself fails, the two sides disagree about the connection, and nothing reconciles them automatically.

A connection cannot be deleted. A connection record, including a REJECTED one, is permanent; it can only change status.

Mapping companies and branches

The server writes a copy of the mapping into the other tenant, but the copy is partial: it carries only the other tenant’s own company and branch (what you entered as the other company and branch) and your customer/supplier record as their other party. It holds neither your company and branch nor the record they keep for you. So the other side’s paired view shows a blank against those branches, its mapped-only view leaves the pair out, and a delete attempted from that side does not go through. Maintain a mapping from the side that created it. Update and delete from that side locate the copy by the entity line or the branch.

Two views of the mappings exist, and the difference matters: one lists every company/branch of every connected tenant, with a blank where no mapping exists; the other lists only the pairs that are actually mapped. Both read the other tenant’s companies and branches live, per connected tenant, so they slow down as connections grow.

Sharing items

Item sharing is deliberately two-step and host-controlled:

  1. The host grants a permission: “guest tenant X may map to my item Y”. This is the only T2T write that fires a webhook — T2T_ITEM_TO_TENANT_LINKING_ADDED on create and T2T_ITEM_TO_TENANT_LINKING_UPDATED on update.
  2. The guest creates the item-to-item pair. The server refuses if no permission row exists (the host has not allowed linking to that item) and refuses if the guest tries to describe the other side as a guest rather than a host. The server composes the row for the host’s database itself and writes both.

An item can only be in one pair per connection in each direction — a second attempt is refused because the host’s item is already linked with another item of the guest tenant (or the guest-side equivalent).

External teams

An external team is an ordinary team flagged as T2T and tied to the other tenant. Creating one also makes the creating user its OWNER with the title T2T OWNER; because both records live on the same side, this write is all-or-nothing, unlike the connection and mapping writes. Adding and removing members writes ordinary team-membership rows.

Related applets

  • Doc Item Maintenance — hosts the T2T Item Mapping tab, the only shipped screen that reads and writes T2T item links.
  • Organization — supplies the companies, branches and customer/supplier entities that a business mapping pairs up.
  • Tenant Admin — administers a single tenant; T2T administers the relationship between a connected pair.
  • Employee — the users who end up in an external team.

Troubleshooting

SymptomCauseFix
Re-inviting a tenant that rejected you is refused because an invitation or connection already existsThe rejected connection is still there, the duplicate check looks only at the tenant code and side, not at status, and connection records cannot be deleted.Change the existing connection’s status rather than sending a new invitation
The guest tenant list shows tenants that never acceptedThe status filter on that list is silently dropped, so INVITED, REJECTED and DISCONNECTED tenants are listed alongside connected ones.Confirm the connection’s status before mapping to it. Reported as a product defect.
You want to stop a guest mapping to one of your itemsThe sharing permission you granted is still in placeDelete the sharing permission. Pairs the guest has already created stay until they are deleted
Any T2T call to the other tenant fails because the platform cannot reach that tenant’s databaseThe other tenant is not fully provisioned on the platformPlatform-side fix; the tenant cannot participate in T2T until it has one
A connection or mapping save fails on the second of its two writesThe second of the two database writes did not affect exactly one row; the first was rolled back by a compensating statementRetry. If the symptom repeats, the two sides may already disagree — ask BigLedger to compare the connection records on both sides
Updating a business mapping fails because the entity line or branch does not exist on the other sideThe copy in the other tenant could not be found, because the update looks it up by entity line when no branch is supplied and by branch when one isSupply the same combination of branch / entity line that was used when the mapping was created
The item’s T2T Item Mapping tab is blankNothing is connected yet, so the tenant drop-down that the tab loads first is emptyComplete the invitation and acceptance before opening the item
Reads come back with status: PERMISSION_DENIED and no other dataThe caller holds none of the endpoint’s permissions and is not an owner or adminGrant one of the T2T_* permission codes listed above

Related documentation

Last updated on