• Icon: Epic Epic
    • Resolution: Fixed
    • Icon: L3 - Default L3 - Default
    • None
    • None
    • None
    • Export Process instance details

      User Story (Required on creation):

      Camunda users often operate the engine in an environment consisting of several other engines, backend systems, ... . The ownership of these systems might be in several different teams / several operators. One business transaction is E2E executed on several of these systems. If there is an error, it frequently must be fixed manually / semi-automated.

      To ease communication between teams / operators (that e.g. do not use Cockpit), exporting relevant process instance data in a text-based format is a useful feature. 

      Functional Requirements (Required before implementation):

      • The results of the process instance search on the process dashboard (https://docs.camunda.org/manual/7.16/webapps/cockpit/bpmn/dashboard/#deployed-processes) can be exported
      • Format: CSV (needs final clarification)
      • Selection:
        • All results of the search
        • The current page
        • A selection of instances on the current page
      • Users can choose what properties are included in the result
      • The following properties can be included in the result:
        • All historic process instance attributes, especially including
          • Process instance id
          • Business Key
          • Process definition id
          • Start and end date of process instance
        • Process instance variables of the user's choice
        • The currently active activities in the process instance
        • The exception messages of jobs in the process instance (regardless of number of retries left)

      Technical Requirements (Required before implementation):

      • tbd: Clarify how exporting all results plays together with the pagination limit that users can configure
      • tbd: The selection of exported properties can be stored in the local storage of the browser
      • tbd: Decide if public API or Cockpit private endpoint
      • tbd: Consider having a warning if a user is about to export a very large result set
      • tbd: Clarify how 1:N relationships of process instance with secondary entities (active activities, job exception messages) should turn out in the result. Currently known options:
        • Separate multiple values by comma within one CSV attribute (nesting in CSV)
        • Export multiple rows when there is more than one related entity
          • May have the permutation problem. For example if we have two active activities and two job failure messages, do we export 2*2 = 4 rows with all combinations?
        • Use JSON instead of CSV

      Limitations of Scope (Optional):

      Hints (optional):

        This is the controller panel for Smart Panels app

            [CAM-13097] Export Process instance details

            Imagine a company, where BPMN processes are used on different levels of oder handling, this feature is used to communicate process details with different (operations) teams.

            E.g. order management has operated a bunch of orders, which need to be operated in subsequent operation teams as well.

            It is connected with https://jira.camunda.com/browse/CAM-12043, where the relevant process instances are selected by data, exported as described above.

            The current work around is to use the REST API with the following drawbacks:

            • no access to the comfortable filtering options of cockpit
            • in oder to filter the relevant process instances, one has to know the Camunda data model
            • difficult to join process variables

            Georg Röver added a comment - Imagine a company, where BPMN processes are used on different levels of oder handling, this feature is used to communicate process details with different (operations) teams. E.g. order management has operated a bunch of orders, which need to be operated in subsequent operation teams as well. It is connected with https://jira.camunda.com/browse/CAM-12043 , where the relevant process instances are selected by data, exported as described above. The current work around is to use the REST API with the following drawbacks: no access to the comfortable filtering options of cockpit in oder to filter the relevant process instances, one has to know the Camunda data model difficult to join process variables

            Before implementation, we need to understand the following better:

            • Which format should the export have? (e.g. JSON as defined by the REST API)
            • In which Cockpit views should there be the option to do the export?
            • How much flexibility is needed to select the data for export? (e.g. Option 1: I can select the types of data - variables, incidents, etc.; Option 2: I can do more fine-grained restrictions, e.g. variables with specific names)
            • Are the any requirements for the number of requests? (e.g. the naive approach would make n*c requests, where n is the number of process instances and c is the number of entity types we want to select (i.e. 2 if we want to fetch incidents and variables)

            georg.roever@1und1.de, if you have any input from your side on these questions, that would be great.

            Thorben Lindhauer added a comment - Before implementation, we need to understand the following better: Which format should the export have? (e.g. JSON as defined by the REST API) In which Cockpit views should there be the option to do the export? How much flexibility is needed to select the data for export? (e.g. Option 1: I can select the types of data - variables, incidents, etc.; Option 2: I can do more fine-grained restrictions, e.g. variables with specific names) Are the any requirements for the number of requests? (e.g. the naive approach would make n*c requests, where n is the number of process instances and c is the number of entity types we want to select (i.e. 2 if we want to fetch incidents and variables) georg.roever@1und1.de , if you have any input from your side on these questions, that would be great.

            Hi Thorben,

            discussed the Feature Request with my opperating Collegue Markus:

            • we prefere CSV, so a comma separated File, since the output is send to other opperation teams. If we used JSON, there would be an overhead for parsing the output. Nice to have would be a choice to use CSV or JSON, but the 95% usage will be CSV. JSON ist good fpr machine-to-machine-communcation, for our opperating team is no use case known, where JSON had any advantages
            • we need the export in the processes overview, where one can filter the process instances. The export should be possible
              • for all filtered processes or
              • for a selection of the filtered processes
            • Hope, I got you question regrding the flexibility right. The selection has two aspects:
              • for the selection of the Process instances that should be exported, we need the full feature set of process filtering:
                • processes with incident
                • selection by Business Key
                • selection by a values of process variables
                • ...
              • for the selection of the data to be exported, we need the following
                • Business Key
                • Prozess Variables
                • Process Instance ID
                • text of the exception
            • we have no requirements regarding the number of requests, apart from, that the  execution shoul for mans Process instances and large an complex process variables, using usually xml serialisation for complex process variables

            Thanks a lot,

            Georg

            Georg Röver added a comment - Hi Thorben, discussed the Feature Request with my opperating Collegue Markus: we prefere CSV, so a comma separated File, since the output is send to other opperation teams. If we used JSON, there would be an overhead for parsing the output. Nice to have would be a choice to use CSV or JSON, but the 95% usage will be CSV. JSON ist good fpr machine-to-machine-communcation, for our opperating team is no use case known, where JSON had any advantages we need the export in the processes overview, where one can filter the process instances. The export should be possible for all filtered processes or for a selection of the filtered processes Hope, I got you question regrding the flexibility right. The selection has two aspects: for the selection of the Process instances that should be exported, we need the full feature set of process filtering: processes with incident selection by Business Key selection by a values of process variables ... for the selection of the data to be exported, we need the following Business Key Prozess Variables Process Instance ID text of the exception we have no requirements regarding the number of requests, apart from, that the  execution shoul for mans Process instances and large an complex process variables, using usually xml serialisation for complex process variables Thanks a lot, Georg

            Hi georg.roever@1und1.de,

            Thanks, this helps us understanding the general scope of the ticket. We will likely reach out to your team once more before we start working on this during 7.17 development to ensure we are aligned on the details.

            Best regards,
            Thorben

            Thorben Lindhauer added a comment - Hi georg.roever@1und1.de , Thanks, this helps us understanding the general scope of the ticket. We will likely reach out to your team once more before we start working on this during 7.17 development to ensure we are aligned on the details. Best regards, Thorben

            We are closing this ticket as part of our backlog grooming. Reasons:

            • This functionality has been implemented

            Thorben Lindhauer added a comment - We are closing this ticket as part of our backlog grooming. Reasons: This functionality has been implemented

              tassilo.weidner Tassilo Weidner
              meyer Daniel Meyer
              Tassilo Weidner Tassilo Weidner
              Votes:
              0 Vote for this issue
              Watchers:
              5 Start watching this issue

                Created:
                Updated:
                Resolved: