Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Failure

Solutions

Challenges

AMID conflict

  • Regenarate

  • Replace all objectReference

PK conflict (Single PK only for now)

  • Regenaret if UUID

  • Input from the user

  • Replace all FK

  • How to handle composite PK?

Unique conflict

  • Regenarate if UUID

  • Input from the user

  • Set null if nullable

FVP Unique conflict (Root entities only for now)

  • Regenarate if FVP

  • Input from the user

  • Set null if nullable

FK conflict (Not yet supported)

  • Set null if nullable

NULL conflict

  • Regenarate if UUID

  • Regenarate if FVP and root

  • Input from the user

Wrong type

  • Regenarate if UUID

  • Regenarate if FVP and root

  • Input from the user

  • Set null if nullable

Wrong length

  • Input from the user

  • Trim extra

  • Set null if nullable

System Entities

As we are only exporting the participant module and tag module for now we can ignore the other system templates for now. We For this section, we need to consider the system root entities like AKTOR and TAG entities for this section , TAG, etc. and ignore AMID/PK conflicts for all sub-entities. For the AKTOR and TAG entities, we We should add some additional options for handling AMID/PK/Unique/FVP Unique conflicts for the system root entities.

Failure

Solutions

Challenges

AMID/PK/Unique/FVP Unique conflict

  • Ignore

  • Replace with the conflicted row

  • If ignored then need to ignore the whole subtree for this row as well

  • If replaced need to replace all objectReference and FK as well

  • If replaced need to keep the relation objects but change their FK

  • Should we consider the possible new sub-entity objects?

  • Should we consider the possible changes for this subtree?

Implementation

We can divide the implementation into four key steps.

Execute Normal Import

As before we will try to import the data without any changes. In case of an exception, we will analyze the exception to check if it is a resolvable exception (AMID/PK conflict, NULL conflict, etc.). If resolvable then the import job dialog will show a button to start the resolving process.

...

Clicking the Resolve button will start the 2nd.

Gather Import Conflicts

After clicking the Resolve button a new tab will be opened. The tab will start a background job which will go through the import file and gather all the resolvable conflicts. After gathering all the conflict the 3rd step will begin.

Show Conflicts and Possible Solutions

Once the conflict-gathering job is done the tab will show all the conflicts in a table.

...

The table contains the following columns

Column

Description

Entity Name

Entity name of the conflicted row