Importing object types and relationships from source data
If your source system data has tables that contain data for identifiable objects, we can create custom object types for you based on your source system tables. We'll also use the metadata for the tables to identify and create object to object relationships between them, and generate all the transformation scripts you need. You can save time on your custom modeling with this approach if your source system data is already object-centric.
You can import one or multiple tables from a connected data source. Each table you import becomes one object type. You can only import tables from one data source at a time, and you can only create one object type from each table at a time. But you can go through the import flow as many times as you want, to import other data sources or create different object types.
The columns from the tables become the attributes of the object types. You can de-select columns that you don't want to use as attributes, and you can add extra attributes that aren't in the original table. You can also select a column to be used as the object type’s ID. You can't change the data type for an attribute during the import - change it in Data Integration before or afterwards.
If you’re creating multiple object types at the same time, we’ll use the foreign keys connecting the tables to identify potential one to many (1:m) relationships. You can choose which ones to add as object to object relationships. You can also add extra one to many relationships between the object types in the import. If you want any many to many (m:n) object to object relationships, you'll need to create these after the import.
We’ll autogenerate the SQL transformation scripts to populate the attributes and relationship columns for the object types, with the data from your source system tables. You'll need to check the scripts, ensure the object IDs are unique, and populate any extra attributes and relationships that use data from somewhere other than your original source system table.
If this approach won't work for your source system data, follow the steps in Creating custom object types and custom event types to build object types from scratch. If you're not sure whether it'll work or not, you can try the import, preview the object types and relationships that we generate from your data, and discard some or all of our suggestions if you don't want to use them. Trying out the import won't affect your existing object-centric data model.
The data source you're importing from needs to be available through a data connection in the data pool where you're working with objects and events. Sharing data between data pools explains how to share a connection into your data pool if it's not already there.
Tip
Before you start working with custom object types, event types, relationships, and transformations, we recommend you complete the Celonis Academy training track Implement Object-Centric Process Mining, which teaches you how to model objects and events. The course OCPM in Action - Build Object-Centric Data Models (2 hours) has step by step examples for you to work through. And our new course Object-Centric Modeling Best Practices has expert training, tips, and strategies for creating a custom object-centric data model.
Follow these steps to import one or multiple object types from your source system data. If you have any problems, check the solutions in Troubleshooting for modeling objects and events.
From the Celonis navigation bar, select Data > Objects and Events.
Select Objects in the Objects and Events navigation panel.
Click the Create button on the list of objects, and choose Import from table.
In the Tables pane, select the Import button.
From the dropdown list in the Import Table dialog, select the data source that you want to import object types from. It must be available through a data connection in the data pool where you're working with objects and events. If you don't see the data source that you want, click Manage data sources to find your data connection or add a new one.
In the list of the data source's tables, check the box by one or more tables that you want to import as object types, or click Select all to import everything. You'll be able to remove any table from the import if you preview its object type and decide you don't want it.
When you've made your selection, click Import at the end of the Import Table dialog. If you decide you do need further tables that you didn't select, you can add more tables from the data source by selecting the Import button again.
Select each table from the list of tables that you've imported, and view the object type that we've generated from it. If you decide you don't want this as an object type at all, click the trash can icon on the table name in the list. If you do want to keep it, make any of these edits that you want to - they're all optional:
Rename the object type by entering a new name in the Type name field. By default, we'll take the table name and apply our naming rules to it. If the table name starts with a number, or if it already exists, we’ll flag this so you know you need to change it.
Tip
Here are all the naming rules for object types, event types, and relationships:
The name of an object type or event type can’t have any spaces or special characters. Upper and lower case letters and numbers are allowed ([A-Za-z0-9]), and the name must start with a letter.
The length limits are 40 characters for the name of an object type or event type, 50 characters for the name of an attribute, and 41 characters for the name of a relationship.
The names of attributes and relationships must be unique within an object type or event type, and you can't give a relationship the same name as an attribute. Uniqueness is validated case-insensitively.
Don’t use the reserved words ”activity” (for event types) and “epoch” (for object types and event types) as the names of attributes.
Select a column to use as the object type's ID. Use the dropdown list by the ID attribute, which is required and can't be renamed or removed. You won't be able to use this column as another attribute of the object type. If you want, you can leave this as None (create later), then assemble the ID in your transformation script.
Uncheck any columns that you don't want to become attributes of the object type. If you want to see a sample of the data in each column so you can verify what you're keeping and removing, click Preview source table.
Tip
You can't change the data type for an attribute during the import. If the data type in the source data isn’t suitable, some extractors let you change it in the extraction configuration. Or you can set up a pre-processing stage by following the instructions in I want to pre-process my raw data before transforming it into objects and events. You can cancel the import and do this now, or you can edit the custom object type after the import to change or replace the attribute.
Rename any attribute by entering a new name in its Attribute name field. Follow the naming rules given earlier in this procedure. We'll use the column name by default, with the naming rules applied.
Click Add attribute to add any further attributes you want in the object type, which you'll be populating with data from outside your selected table. Name them and select a data type for them. You'll need to add your own SQL statements to the generated transformations to populate these attributes.
Change the display color that will be used to color-code the object type in the graph view of the object-centric data model. Click Color by the object type name to do this.
Add tags that apply to the object type, and add a description. Expand Tags and description by the object type name to do this. You can use the existing Celonis process tags, or create your own tags in the "Custom processes" category by typing one in and clicking it to create it. Custom tags can be up to 41 characters long (including spaces), and they need to be unique in the "Custom processes" category - note that they aren't case-sensitive. After we've created the object type, your custom tags can be used for filtering, and can be assigned to other custom object types or event types.
When you've edited each object type, confirm that you’ve got all the attributes you want. To help you verify the results, you can use the Hide unselected toggle to remove the table columns you aren’t using from the preview, and you can sort the attributes. Then move on to another table from the list.
When you've finished editing all the object types you want us to create, click Next to move on to the Relationships step.
If you're only importing one table, you can't create relationships, so select Back to import more tables, or Skip relationships to move on.
If you're importing multiple tables but they don't have any existing foreign key relationships, you can create new relationships between them, or select Skip relationships to move on.
To create relationships, in the Relationships pane, select the Add button, then select Create new to set up your own relationships between the object types in your import, or Import to import relationships from the foreign keys connecting the tables.
Tip
During the import, you can only import and create one to many (1:m) object to object relationships between the object types in your import. These relationships need a column in the object type table for the object on the many side of the relationship. For imported relationships, we'll set up the SQL statements to populate those in the generated transformations. For relationships you create, you’ll need to add statements to the transformations.
If you want any many to many (m:n) object to object relationships between these object types, you'll need to create these after the import. They'll be handled as separate relationship tables, and you'll need to write transformation scripts for them.
If you're importing relationships (Add > Import), follow these steps:
In the Import relationships from metadata dialog, check the box by any foreign key relationships that you want to convert into object to object relationships. You'll be able to remove any relationship if you preview it and decide you don't want it.
When you've made your selection, click Import at the end of the Import relationships from metadata dialog. If you decide you do need further relationships that you didn't select, you can add them by selecting the Import button again.
Select each relationship from the list of relationships that you've imported, and view it. If you decide you don't want this relationship at all, click the trash can icon on the relationship name in the list. If you do want to keep it, edit the outgoing and incoming relationship names if you want to, following the naming rules given earlier in this procedure.
When you've checked each relationship, if you want to create additional new relationships between the object types in your import, select the Add button in the Relationships pane, then select Create new. If you don't want to create any more relationships now, select Next to move on to the Summary step.
If you're creating relationships (Add > Create new), follow these steps:
In the Create object to object relationship pane, use the Source and Target dropdown lists to select a source object type and a target object type from your imported object types.
The relationship type dropdown list appears. Use it to pick which of the object types is on the m side of the relationship, and which is on the 1 side. The relationship data will be kept in the database table for the object type on the m side.
The Foreign key column field appears for the object type on the m side of the relationship. Select a column in the source system table that provides the relationship data - you can choose from the table's foreign key columns and any other columns that you aren't using as attributes of the object type. Or leave it as Not selected if the data is coming from somewhere else.
Edit the outgoing and incoming relationship names if you want to, following the naming rules given earlier in this procedure.
If you want to create additional new relationships, select the Add button in the Relationships pane, then select Create new. If you don't want to create any more relationships now, select Next to move on to the Summary step.
In the Summary step, review the object types that are about to be created.
Use the arrow by each object type name to expand the list of relationships that we'll be setting up for it. No arrow means you didn't create any relationships for that object type.
If you want to check the attributes of an object type again, click its name to go back to the Objects step, where you can see and edit the attributes. You can also add and remove object types here.
If you want to add or remove any relationships, use the Back button at the end of the pane to go back to the Relationships step.
When you're happy with the object types and object to object relationships that we're about to set up, click the Create button. We’ll create the object types and the object to object relationships, and autogenerate the SQL transformation scripts to populate the attributes and relationship columns for the object types, with the data from your source system tables. You’ll need to check the transformations and add any additional statements you need in them for the object ID and extra attributes or relationships you’ve added.
In the confirmation dialog, click Check transformations to view and edit the transformation scripts we've generated. Select the filter for the Objects column to filter on the object types you just created, and click each transformation script to check it.
Ensure the object IDs are unique. Creating IDs for objects and events explains best practice for creating a unique ID for an object type. You'll probably need to add other items to your selected ID value to guarantee that it's unique. If you didn't select an ID value, assemble your ID now.
Write SQL statements to populate any extra attributes or relationships you added that use data from somewhere other than your original source system table. Creating custom transformations has the instructions to use the transformation editor.
We recommend you check the transformations now, but if you want to do that later, or if you first want to make any edits to your new object types that you couldn't do during the import, click Go to object types to view the list of object types.
Now that the import is complete, you can duplicate, edit, rename, or delete any of your imported custom object types in the same way as a custom object type that you modeled from scratch. You'll also need to create the event types for the processes that the objects are involved in. Creating custom object types and custom event types includes the instructions for working with custom object types after you've created them, and for creating event types and event to object relationships.
When you've finished working with your custom object types, select Publish > Publish to development to synchronize your changes to the development environment.