Skip to content

data_model.py

Datamodel (CelonisApiObjectChild)

Datamodel object to interact with Celonis Event Collection API.

name: str inherited property writable

Name of the object via data['name'] if available.

url: str property readonly

API

  • /integration/api/pools/{pool_id}/data-models/{datamodel_id}

data inherited property writable

Response data from the Celonis API. If static is set to False, every time you set the data property will execute a POST request to the resource API endpoint to update the remote resource in Celonis EMS.

Examples:

o = celonis.<api-service>.find("<name or ID")

# This will execute a `POST` request to '<celonis_url>/<api-service>/api/...'
o.data["name"] = "New Name"

tables: CelonisCollection[DatamodelTable] property readonly

Get all Datamodel Tables.

API

  • GET: /integration/api/pools/{pool_id}/data-model/{datamodel_id}/tables/{table_id}

Returns:

Type Description
CelonisCollection[DatamodelTable]

Collection of Datamodel Tables.

key: str inherited property writable

Key of the object via data['key'] if available.

process_configuration: DatamodelProcessConfiguration property readonly

Get the Datamodels Process Configuration.

Warning

This method is deprecated. Use celonis_api.event_collection.data_model.Datamodel.process_configurations:

dm.process_configurations[0]

Returns:

Type Description
DatamodelProcessConfiguration

The first Process Configuration of the all Datamodels Process Configurations.

process_configurations: CelonisCollection[DatamodelProcessConfiguration] property readonly

Get all Datamodels Process Configurations.

API

  • GET: /integration/api/pools/{pool_id}/data-models/{datamodel_id}/process-configurations

Returns:

Type Description
CelonisCollection[DatamodelProcessConfiguration]

A Collection the Datamodel's Process Configurations.

default_activity_table: DatamodelTable property writable

Get/Set the default Activity Table via Process Configuration.

# Get
default_at = dm.default_activity_table
# Set
dm.default_activity_table = default_at

API

  • PUT: /integration/api/pools/{pool_id}/data-models/process-configurations/default-activity-table
    {
        "id": datamodel_table.id,
        "dataSourceId": datamodel_table.data["dataSourceId"],
        "aliasOrName": datamodel_table.alias,
        "alias": datamodel_table.alias,
        "dataModelId": self.id,
        "name": datamodel_table.source_name,
        "useDirectStorage": False,
        "columns": [],
    }
    

Returns:

Type Description
DatamodelTable

The default Activity Table.

case_table_key: List property readonly

Get all Case Table Keys.

Returns:

Type Description
List

Sorted List of Case Table Keys.

foreign_keys: ForeignKeyList property readonly

Get all Foreign Keys.

Returns:

Type Description
ForeignKeyList

A List of Foreign Keys.

load_status: Dict property readonly

Get the Datamodels Load Status.

API

  • GET: /integration/api/pools/{pool_id}/data-models/{datamodel_id}/load-history/load-info-sync

Returns:

Type Description
Dict

Load status.

workspaces: CelonisCollection[Workspace] property readonly

Get all Process Mining Workspaces. Uses celonis_api.celonis.Celonis.workspaces.

Returns:

Type Description
CelonisCollection[Workspace]

Collection of Workspaces.

last_change_dates: DataFrame property readonly

Returns the latest change date found in tables.

name_mapping: Dict property readonly

Get the Datamodels Name Mappings.

API

  • GET: /integration/api/pools/{pool_id}/data-models/{datamodel_id}/name-mapping

Returns:

Type Description
Dict

Dictionary containing the Name Mappings.

reset_state(self) inherited

Resets data = None. This will force a reload of the remote resource from Celonis EMS on the next property access.

delete(self) inherited

Executes a DELETE request to the resource API endpoint to delete the remote resource in Celonis EMS.

create_process_configuration(self, activity_table=None, case_table=None, case_column=None, activity_column=None, timestamp_column=None, sorting_column=None)

Creates a new Process Configuration.

API

  • PUT: /integration/api/pools/{pool_id}/data-models/{datamodel_id}/process-configurations
    {
        "activityTableId": activity_table_id,
        "caseIdColumn": case_column,
        "activityColumn": activity_column,
        "timestampColumn": timestamp_column,
        "sortingColumn": sorting_column,
        "caseTableId": case_table_id
    }
    

Parameters:

Name Type Description Default
activity_table Union[str, DatamodelTable]

Name of Activity Table or DatamodelTable object.

None
case_table Union[str, DatamodelTable]

Name of Case Table or DatamodelTable object.

None
case_column str

Case Column Name referring to column in activity table.

None
activity_column str

Activity Column Name referring to column in activity table.

None
timestamp_column str

Timestamp Column Name referring to column in activity table.

None
sorting_column str

Sorting Column Name.

None

Returns:

Type Description
CelonisCollection[DatamodelProcessConfiguration]

A Collection the Datamodel's Process Configurations.

create_foreign_key(self, source_table, target_table, columns, **kwargs)

Creates a new Foreign Key between the source_table (child(1)) and the target_table (parent(N)).

Parameters:

Name Type Description Default
source_table Union[str, DatamodelTable]

Name of Source Table or DatamodelTable object.

required
target_table Union[str, DatamodelTable]

Name of Target Table or DatamodelTable object.

required
columns List[Tuple[str, str]]

List of 2D-tuples consisting of a 'sourceColumnName' and 'targetColumnName' which represents the foreign_key, e.g. foreign_key_columns=[('Col1', 'Col3'), ('Col2', 'Col2'), ..]

required

Returns:

Type Description
Dict

The newly created Foreign Key configuration as Dictionary.

Exceptions:

Type Description
PyCelonisValueError

If tables not found or columns not found or foreign key connection already exists between the specified tables.

PyCelonisTypeError

If table columns have different data types.

push_table(self, df_or_path, table_name, reload_datamodel=True, **kwargs)

Pushes a table to a Pool, adds it the Datamodel and by default reloads the Datamodel.

Warning

This method is deprecated. Use create_table.

Returns:

Type Description
DatamodelTable

The newly added Datamodel Table.

reload(self, from_cache=False, tables=None, wait_for_reload=True)

Reloads the Datamodel only if a reload is not already running.

API

  • POST: /integration/api/pools/{pool_id}/data-models/{datamodel_id}/reload
        { "forceComplete": from_cache }
    

Parameters:

Name Type Description Default
from_cache bool

If True, only reloads from cache, else complete reload.

False
tables List

List of Datamodel Tables or table ids. If given a partial reload will be performed on these tables, from_cache will be ignored.

None
wait_for_reload bool

If True waits until the Datamodel is reloaded.

True

Returns:

Type Description
Dict

Report of the reload.

add_table_from_pool(self, table_name, alias=None, connection=None, new_foreign_key_to_table=None, added_table_join_type='source', foreign_key_columns=None, reload=None)

Adds a Table from Pool to Datamodel. If the Table names and the ey parameters are provided it also can connect two tables directly.

Parameters:

Name Type Description Default
table_name str

Name of the table to be added in the Pool.

required
alias str

An alias name for the new table, by default None

None
added_table_join_type str

Add table to be pushed as 'source' table or as 'target' table regarding the connection. One of [source, target].

'source'
new_foreign_key_to_table str

Set connection to or from this table.

None
foreign_key_columns

List 2D-tuples consisting of a 'sourceColumnName' and 'targetColumnName' which represents the foreign_key, e.g. foreign_key_columns=[('Col1', 'Col3'), ('Col2', 'Col2'), ..] between two tables.

None
connection Union[DataConnection, str]

DataConnection object or ID, uses Global if not specified.

None
reload str

Reload type. One of [FROM_CACHE, FORCE_COMPLETE, PARTIAL_ON_TABLE], if not specified doesn't reload.

None

Returns:

Type Description
Union[DatamodelTable, List[DatamodelTable]]

DatamodelTable or List of DatamodelTables.

create_workspace(self, name)

Creates a new Workspace.

API

  • POST: /process-mining/api/processes
        {
            "name": name,
            "dataModelId": self.id
        }
    

Parameters:

Name Type Description Default
name

Name of the Workspace.

required

Returns:

Type Description
Workspace

The newly created Workspace object.

get_data_file(self, pql_query, file_path=None, verify_query=False, **kwargs)

Exports the results of a PQL query as pyarrow.parquet.ParquetFile and returns the path to the exported file. Uses celonis_api.event_collection.compute_node.ComputeNode.get_data_file.

Parameters:

Name Type Description Default
pql_query PQL

The table query to be executed.

required
file_path Union[str, pathlib.Path]

The output path for the export. Defaults to tmpdir/celonis_pql_export_<current_time>.parquet.

None
verify_query bool

Whether query should be verified before execution.

False

Returns:

Type Description
Path

Path to downloaded file containing the results of the query.

download_name_mapping(self, file_path='name_mapping.xlsx')

Downloads the Datamodels Name Mappings.

Parameters:

Name Type Description Default
file_path str

Download path to Excel File.

'name_mapping.xlsx'

Returns:

Type Description
Path

Path to downloaded Excel File.

upload_name_mapping(self, file_path)

Uploads the Datamodels Name Mappings Excel File.

Parameters:

Name Type Description Default
file_path str

Upload path to Excel File.

required

Returns:

Type Description
Dict

Upload Result.

get_data_frame(self, query, verify_query=False, **kwargs)

Exports the results of a PQL query as pyarrow.parquet.ParquetFile and converts it to a pandas.DataFrame. Uses ComputeNode.get_data_frame.

Parameters:

Name Type Description Default
query PQL

The table query to be executed.

required
verify_query bool

Whether query should be verified before execution.

False

Returns:

Type Description
DataFrame

Dataframe containing the results of the query.

DatamodelTable (CelonisApiObjectChild)

Celonis DatamodelTable object to interact with Celonis Event Collection API.

name: str inherited property writable

Name of the object via data['name'] if available.

data inherited property writable

Response data from the Celonis API. If static is set to False, every time you set the data property will execute a POST request to the resource API endpoint to update the remote resource in Celonis EMS.

Examples:

o = celonis.<api-service>.find("<name or ID")

# This will execute a `POST` request to '<celonis_url>/<api-service>/api/...'
o.data["name"] = "New Name"

key: str inherited property writable

Key of the object via data['key'] if available.

url: str property readonly

API

  • /integration/api/pools/{pool_id}/data-model/{datamodel_id}/tables/{datamodel_table_id}

columns: List property readonly

Get all Datamodel Table Column Definitions (e.g.: {'name': 'EVENTTIME_START', 'length': 26, 'type': 'DATE'}).

API

  • GET: /integration/api/pools/{pool_id}/data-model/{datamodel_id}/tables/{datamodel_table_id}/columns

Returns:

Type Description
List

List of Column definitions.

alias property writable

Datamodel Table Alias.

source_name property writable

Datamodel Table Name.

reset_state(self) inherited

Resets data = None. This will force a reload of the remote resource from Celonis EMS on the next property access.

delete(self)

Deletes the Datamodel Table.

API

  • DELETE: /integration/api/pools/{pool_id}/data-model/{datamodel_id}/tables/{datamodel_table_id}

get_data_frame(self, max_rows=None, verify_query=False, include_change_date=False, **kwargs)

Exports the results of the Datamodel Table Columns PQL query as pyarrow.parquet.ParquetFile and converts it to a pandas.DataFrame. Uses Datamodel.get_data_frame.

Parameters:

Name Type Description Default
max_rows Optional[int]

Limits the number of rows (e.g. max_rows = 100) that are queried.

None
verify_query bool

Whether query should be verified before execution.

False
include_change_date bool

Whether '_CELONIS_CHANGE_DATE' column is included or not.

False

Returns:

Type Description
DataFrame

Dataframe containing the results of the query.

DatamodelProcessConfiguration (CelonisDataObject)

Datamodel ProcessConfiguration object.

name: str inherited property writable

Name of the object via data['name'] if available.

key: str inherited property writable

Key of the object via data['key'] if available.

data property readonly

A reference to the data of this object.

activity_table: DatamodelTable property readonly

Get the Datamodels Process Configuration Activity Table.

Returns:

Type Description
DatamodelTable

Activity Table.

case_table: DatamodelTable property readonly

Get the Datamodels Process Configuration Case Table.

Returns:

Type Description
DatamodelTable

Case Table.

case_column: str property readonly

Get the Datamodels Process Configuration Case Column.

Returns:

Type Description
str

Case Column.

activity_column: str property readonly

Get the Datamodels Process Configuration Activity Column.

Returns:

Type Description
str

Activity Column.

timestamp_column: str property readonly

Get the Datamodels Process Configuration Timestamp Column.

Returns:

Type Description
str

Timestamp Column.

sorting_column: str property readonly

Get the Datamodels Process Configuration Sorting Column.

Returns:

Type Description
str

Sorting Column.

default_configuration: bool property readonly

Get whether the Datamodels Process Configuration is set to default.

Returns:

Type Description
bool

Process Configuration default status.

edit_configuration(self, activity_table=None, case_table=None, case_column=None, activity_column=None, timestamp_column=None, sorting_column=None)

Edit the Datamodels Process Configuration.

API

  • PUT: /integration/api/pools/{pool_id}/data-models/{datamodel_id}/process-configurations
    {
        "activityTableId": activity_table_id,
        "caseIdColumn": case_column,
        "activityColumn": activity_column,
        "timestampColumn": timestamp_column,
        "sortingColumn": sorting_column,
        "caseTableId": case_table_id
    }
    

Parameters:

Name Type Description Default
activity_table Union[str, DatamodelTable]

Name of Activity Table or DatamodelTable object.

None
case_table Union[str, DatamodelTable]

Name of Case Table or DatamodelTable object.

None
case_column str

Case Column Name referring to column in activity table.

None
activity_column str

Activity Column Name referring to column in activity table.

None
timestamp_column str

Timestamp Column Name referring to column in activity table.

None
sorting_column str

Sorting Column Name.

None

Returns:

Type Description
DatamodelProcessConfiguration

Updated Process Configuration.

ForeignKey (dict)

Datamodel Foreign Key object.

Parameters:

Name Type Description Default
source_table DatamodelTable

Source table of foreign key.

required
target_table DatamodelTable

Target table of foreign key.

required
columns List[Tuple]

List of column tuples for foreign key.

required

ForeignKeyList (list)

List of ForeignKey.

Parameters:

Name Type Description Default
foreign_keys_raw Dict

Dictionary of raw foreign keys

required
tables CelonisCollection

Collection of DatamodelTable

required

find_keys_by_source_name(self, name)

Get all foreign keys with given source name.

Parameters:

Name Type Description Default
name str

Source name to search for (source name of table, not alias).

required

Returns:

Type Description
List[celonis_api.event_collection.data_model.ForeignKey]

List of foreign keys with the same source name.

find_keys_by_target_name(self, name)

Returns all foreign keys with given target name

Parameters:

Name Type Description Default
name str

Target name to search for (source name of table, not alias)

required

Returns:

Type Description
List[celonis_api.event_collection.data_model.ForeignKey]

List of foreign keys with the same target name.

find_keys_by_name(self, name)

Get all foreign keys with given target name or source name.

Parameters:

Name Type Description Default
name str

Target and/or source name to search for (source name of table, not alias).

required

Returns:

Type Description
List[celonis_api.event_collection.data_model.ForeignKey]

List of foreign keys with the same target name or same source name.

Back to top