---
category: [Administration & Integrations, Administration & Integrations/Custom Integrations & Apps, Platform and Product Extensions, Platform and Product Extensions/Workday Extend, Platform and Product Extensions/Integration]
keyword: [Extend, Model Components, Extend Business Objects, MCBO, Model Component Business Objects, Business Objects, Model BO]
nav: wcp_docs
parent_url: /wcp_docs/
title: >- 
  Concept: Joiner Business Objects
layout: subsection
---

The purpose of a joiner business object is to bring about multi-instance relationships between objects. We can create a Workdog app to demonstrate how and when to use a joiner business object.

## <a id="section_epq_zfp_fpb"></a>Single-Instance Relationships

The Workdog app enables workers to register their dogs and get them approved to visit the office. This table contains some of the fields that you might include on your business object definition:

<table><thead><tr><th>Workdog Business Object (Workday Extend)</th></tr></thead><tbody><tr><td><ul><li>Workdog ID
</li><li>Worker Reference (Worker ID)
</li><li>Workdog Name
</li><li>Workdog Breed
</li><li>Workdog Allowed to Visit Office?
</li></ul></td></tr></tbody></table><br/>

This table illustrates a few instances of the Workdog business object:

<table><thead><tr><th>Workdog ID</th><th>Worker</th><th>Workdog Name</th><th>Workdog Breed</th><th>Workdog Allowed to Visit Office?</th></tr></thead><tbody><tr><td>Dog1</td><td>Logan McNeil</td><td>Bruno</td><td>Bulldog</td><td>Yes</td></tr><tr><td>Dog2</td><td>Logan McNeil</td><td>Fido</td><td>Lab</td><td>Yes</td></tr><tr><td>Dog3</td><td>Logan McNeil</td><td>Pluto</td><td>Poodle</td><td>Yes</td></tr></tbody></table><br/>

Because Workday automatically creates a report data source on the Workdog business object when you install the Workdog app on the tenant, you can report on this data. You can create any type of report on this data, such as a matrix report to display Workdogs per worker.

In this use case, you don't need a joiner business object. You always assign a dog to 1 worker. A worker can have multiple dogs, but each row in the table is unique since each dog has its own unique identifier.

## <a id="section_ufz_ghp_fpb"></a>Multi-Instance Relationships

Use a joiner business object when you have a many-to-many relationship. We can modify the Workdog app to track Workdogs across offices in multiple locations. Any Workdog might be able to visit 1 or more office location.

-   Bruno can visit the Pleasanton, Sacramento, and San Francisco locations.
-   Fido can visit the Sacramento and San Francisco locations.
-   Pluto can visit the Pleasanton location.


The updated Workdog app has a similar definition to the original app. However, the updated app uses a joiner business object to associate a Workdog with a location. In effect, a location can allow multiple Workdogs and a Workdog can visit multiple locations. Because you can't assign multiple locations directly to a single Workdog, you need to create a joiner business object to create this many-to-many relationship.

This table illustrates the object model:

<table><thead><tr><th>Workdog Business Object (Workday Extend)</th><th>Joiner Business Object (Workday Extend)</th><th>Location Business Object (Workday-Delivered)</th></tr></thead><tbody><tr><td><ul><li>Workdog ID
</li><li>Worker Reference (Worker ID)
</li><li>Workdog Name
</li><li>Workdog Breed
</li><li>Workdog Allowed to Visit Office?
</li></ul></td><td><ul><li>Joiner ID
</li><li>Workdog ID
</li><li>Location ID
</li></ul></td><td><ul><li>Location ID
</li></ul></td></tr></tbody></table><br/>

To determine which offices your Workdog can visit, create a custom report on the joiner data source. You can filter on the Workdog ID, and then look up the locations that meet your criteria.

## <a id="section_kc4_2lg_hpb"></a>Other Considerations

When you use joiner business objects, consider these guidelines:

-   Use a bulk process to update the data in a joiner table. Example: If Bruno is no longer allowed in any office, you must use a bulk process to update every joiner instance with his Workdog ID. Because the `?bulk=true` query parameter on business object APIs only supports updating up to 100 instances at a time, Presentation Components isn't always the best choice to interact with data in bulk.
-   The maximum number of instances in a joiner table is a factorial. This would rarely happen in reality; however, you should keep in mind the potential number of instances given documented limits.
-   In this example, the joiner business object has only 3 fields. To display additional data on the custom report, you must use calculated fields on a related business object.


Keep in mind that there might be additional considerations when you create a joiner business object to bring about many-to-many relationships.

### Related Information

[Reference: Business Object API Requests](/wcp_docs/xml1559763881756.html)

