Skip to content

Commit

Permalink
Feature/marp 265 - onboarding advanced process analyzer
Browse files Browse the repository at this point in the history
* TE-538: calculate estimated time

* TE-538: Update unit test for flow example basic

* TE-538: Unit test findTasksOnPath

* TE-538: Unit test findTasksOnPath with mixed

* Add example for embedded sub-processes.

* TE-538: modify logic and add unit test

* TE-538: Fix to prevent loop

* TE-538: Adapt Task type

* TE-538: add customer info

* TE-538: Remove unuse code

* TE-538: add find task sub process

* TE-538: Get one path only

* TE-538: Update findAllTasks with new login

* TE-538: Using recursion for both case

* TE-538: Unit test with complex process

* TE-538: Implement find all task with list start element

* TE-538: add check task and sorting

* TE-538: Implement WorkflowEstimatorHelper.getBaseElementOf

* TE-538: Set process flow override

* TE-538: add set override duration

* TE-538: add calculate duration based on many starts

* TE-538: add calculate duration based on many starts

* TE-538: Add java doc

* TE-538: Update unit test

* TE-538: Update unit test for flow overrides

* TE-538: add parent element name

* TE-538: add element name field and unit test

* TE-538: Add process graph unit test

* Fixed process model (because it was not compatible with execution before)

* TE-538: Update unit test for ProcessGraph

* TE-538: Update unit test for complex process

* TE-538: fix unit test

* TE-538: Create demo project

* TE-538: find all process

* TE-538: Add estimator component

* TE-538: Delete an estimator

* TE-538: add demo project WIP

* TE-538: Generate estimated task

* TE-538: add and delete estimator demo

* TE-538: Add process diagram

* TE-538: Add process diagram

* TE-538: delete unused code

* TE-538: Fix bug get process guiid

* TE-538: add display time format

* TE-538: add display time format

* TE-538: Show detail task in a table

* TE-538: Implement Use case to get duration

* TE-538: modify order of parallel task

* TE-538: Delete an estimator

* TE-538: Update unit test

* TE-541: Performance test

* TE-541: add unit test override process flow

* TE-538: Update label

* TE-538: Add Estimated Element class

* TE-538: Update demo process

* TE-543: Refactor code

* TE-547: detection alternative

* TE-547-wip

* TE-547-Detection of alternative gateway

* TE-548-UI-Improvement

* TE-543: Refator to detect start and end TaskSwitchGateway

* WIP-TE543

* TE-543: Upate unit test

* TE-543-UI-demo-for-override-process

* TE-550-Separate-internal-classes-to-internal-package

* TE-552: fix warning

* TE-557 remove enable disable alternative

* TE-549: Convert Ivy base element to custom CommonElement

* TE-549: Update code to pass unit test

* TE-549: Update process demo to avoid not out put task after Join

* TE-533: add total duration

* TE-549: Calculate total duration

* TE-549: Calculate start time

* TE-549: Refactor code

* TE-533: rename project workflow

* TE-533: rename project test

* TE-551: export main module as jar

* TE-551: Calculate starttime for parallel task

* TE-551: Calculate starttime for parallel task

* TE-533: rename project demo

* TE-540: Create document

* TE-533: rename package and product

* TE-540: Add images

* TE-533: rename variable and delete unused folder

* TE-540: Update developer connection

* TE-555: get task list by ivy case

* TE-540: Update document link

* TE-555: Fix bug calculate start time

* TE-555: Refactor code

* TE-555: Detect first intersection task

* TE-550: Refactor the constant for useCase

* TE-555: case start with many start in parallel task

* TE-559: get back detection of alternative

* TE-559: update api for demo project

* TE-555: Write unit test for case analyze

* TE-555: Fix calculate time at start tasks

* TE-555: Update document

* TE-556: change to use duration instead of date

* TE-556: method to remove duplicate element

* TE-555: Get all paths

* TE-555: Update demo project

* TE-555: Check loop with exactly path

* TE-561: Move use case and flowName into API

* TE-562: Udpdate convert time for task parallet with goto task End

* TE-563: Handle spent time

* TE-563: Get spent time base on business duration

* TE-558: Throw exception if there are one more matching at alternative

* TE-560: option to handle call sub element similar to a task

* TE-560: remove unused import

* TE-562: rename class and remove unused variable

* TE-564: using map instead of hashmap and apply record

* TE-566: Make AdvancedProcessAnalyze as interface

* TE-566: format code

* TE-566: Update comment and rename demo process folder

* TE-566: Update short example for main class

* TE-565: re-design class for static content

* TE-565: change product version

* TE-567: Refactor call method

* TE-567: Make function public

* TE-569: Add logo

* TE-563: Next task is not impact by previous delay

* TE-571: handle complex parallel task

* TE-571: add default taskname for taskswitchgateway

* TE-574: Convert to task parallel group

* TE-574: Refactor code

* TE-579: fix review code

* TE-579: add method get all process in workspace

* TE-579: format code and change artifact

* TE-579: rechange artifact

---------
Co-authored-by: AAVN\ntnchuong <[email protected]>
Co-authored-by: Trung Mai <[email protected]>
Co-authored-by: Timo Rupp <[email protected]>
  • Loading branch information
ntqdinh-axonivy authored May 23, 2024
1 parent ce4fb11 commit 946e3e8
Show file tree
Hide file tree
Showing 174 changed files with 10,051 additions and 101 deletions.
17 changes: 17 additions & 0 deletions .project
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>process-analyzer-modules</name>
<comment></comment>
<projects>
</projects>
<buildSpec>
<buildCommand>
<name>org.eclipse.m2e.core.maven2Builder</name>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>org.eclipse.m2e.core.maven2Nature</nature>
</natures>
</projectDescription>
4 changes: 4 additions & 0 deletions .settings/org.eclipse.m2e.core.prefs
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
activeProfiles=
eclipse.preferences.version=1
resolveWorkspaceProjects=true
version=1
15 changes: 0 additions & 15 deletions MY-PRODUCT-NAME-product/README.md

This file was deleted.

67 changes: 0 additions & 67 deletions MY-PRODUCT-NAME-product/pom.xml

This file was deleted.

16 changes: 12 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,15 @@
# MY-PRODUCT-NAME
# Advanced Process Analyzer

[![CI Build](https://github.com/axonivy-market/REPO-NAME/actions/workflows/ci.yml/badge.svg)](https://github.com/axonivy-market/REPO-NAME/actions/workflows/ci.yml)
[![CI Build](https://github.com/axonivy-professional-services/market-process-analyzer/actions/workflows/ci.yml/badge.svg)](https://github.com/axonivy-professional-services/market-process-analyzer/actions/workflows/ci.yml)

"YOUR SHORT DESCRIPTION GOES HERE"
- Configure needed information directly in the process model
- Default duration of a task for multiple use cases. Each task can have multiple named default durations.
- Different “happy path” flows. It’s possible to set multiple named process paths.
- Possibilities to override settings of the process model
- Override duration
- Override default path for the gateways
- Create a list of all tasks in the process.
- Get configured duration for a task.
- Get all upcoming tasks on a configured process path with expected start timestamp for each task.

Read our [documentation](MY-PRODUCT-NAME-product/README.md).
Read our [documentation](process-analyzer-product/README.md).
18 changes: 9 additions & 9 deletions pom.xml
Original file line number Diff line number Diff line change
@@ -1,20 +1,20 @@
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.axonivy.market</groupId><!-- your group id: e.g. com.axonivy.connector.<myconnector> or com.axonivy.utils.<myutil> -->
<name>my-product</name><!-- fill your product name -->
<artifactId>my-product-modules</artifactId><!-- fill your product name + a "-modules" postfix -->
<version>10.0.0-SNAPSHOT</version><!-- identicate your minimal compliant ivy version with the first 2 digits -->
<groupId>com.axonivy.utils.process.analyzer</groupId>
<name>advanced-process-analyzer</name>
<artifactId>advanced-process-analyzer-modules</artifactId>
<version>11.2.1-SNAPSHOT</version>
<packaging>pom</packaging>

<modules>
<module>${project.name}</module>
<module>${project.name}-demo</module>
<module>${project.name}-test</module>
<module>${project.name}-product</module>
<module>process-analyzer</module>
<module>process-analyzer-demo</module>
<module>process-analyzer-test</module>
<module>process-analyzer-product</module>
</modules>

<scm>
<developerConnection>scm:git:https://github.com/axonivy-market/${project.name}.git</developerConnection>
<developerConnection>scm:git:https://github.com/axonivy-professional-services/market-${project.name}.git</developerConnection>
<tag>HEAD</tag>
</scm>

Expand Down
29 changes: 29 additions & 0 deletions process-analyzer-demo/.classpath
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="src" path="src">
<attributes>
<attribute name="optional" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="src" path="src_wsproc">
<attributes>
<attribute name="optional" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="src" path="src_dataClasses">
<attributes>
<attribute name="optional" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
<attributes>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
<classpathentry exported="true" kind="con" path="IVY_CONTAINER"/>
<classpathentry kind="con" path="WEBAPP_CONTAINER"/>
<classpathentry kind="con" path="org.eclipse.jst.j2ee.internal.web.container"/>
<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
<classpathentry kind="output" path="target/classes"/>
</classpath>
19 changes: 19 additions & 0 deletions process-analyzer-demo/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
# general
Thumbs.db
.DS_Store
*~
*.log

# java
*.class
hs_err_pid*

# maven
target/
lib/mvn-deps/

# ivy
classes/
src_dataClasses/
src_wsproc/
logs/
60 changes: 60 additions & 0 deletions process-analyzer-demo/.project
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>process-analyzer-demo</name>
<comment></comment>
<projects>
</projects>
<buildSpec>
<buildCommand>
<name>ch.ivyteam.ivy.designer.dataClasses.ui.ivyDataClassBuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>ch.ivyteam.ivy.designer.process.ui.ivyWebServiceProcessClassBuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.jdt.core.javabuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.wst.common.project.facet.core.builder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>ch.ivyteam.ivy.designer.ide.ivyModelValidationBuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.pde.ManifestBuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.pde.SchemaBuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.m2e.core.maven2Builder</name>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>ch.ivyteam.ivy.project.IvyProjectNature</nature>
<nature>org.eclipse.wst.common.modulecore.ModuleCoreNature</nature>
<nature>org.eclipse.jem.workbench.JavaEMFNature</nature>
<nature>org.eclipse.jdt.core.javanature</nature>
<nature>org.eclipse.m2e.core.maven2Nature</nature>
<nature>org.eclipse.jem.beaninfo.BeanInfoNature</nature>
<nature>org.eclipse.wst.common.project.facet.core.nature</nature>
<nature>org.eclipse.wst.jsdt.core.jsNature</nature>
<nature>org.eclipse.pde.PluginNature</nature>
</natures>
</projectDescription>
12 changes: 12 additions & 0 deletions process-analyzer-demo/.settings/.jsdtscope
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry excluding="**/bower_components/*|**/node_modules/*|**/*.min.js" kind="src" path="webContent"/>
<classpathentry kind="con" path="org.eclipse.wst.jsdt.launching.JRE_CONTAINER"/>
<classpathentry kind="con" path="org.eclipse.wst.jsdt.launching.WebProject">
<attributes>
<attribute name="hide" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="con" path="org.eclipse.wst.jsdt.launching.baseBrowserLibrary"/>
<classpathentry kind="output" path=""/>
</classpath>
5 changes: 5 additions & 0 deletions process-analyzer-demo/.settings/ch.ivyteam.ivy.designer.prefs
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
ch.ivyteam.ivy.designer.preferences.DataClassPreferencePage\:DEFAULT_DATA_CLASS=com.axonivy.utils.estimator.demo.Data
ch.ivyteam.ivy.designer.preferences.DataClassPreferencePage\:DEFAULT_NAMESPACE=com.axonivy.utils.estimator.demo
ch.ivyteam.ivy.project.preferences\:PRIMEFACES_VERSION=11
ch.ivyteam.ivy.project.preferences\:PROJECT_VERSION=112000
eclipse.preferences.version=1
10 changes: 10 additions & 0 deletions process-analyzer-demo/.settings/org.eclipse.jdt.core.prefs
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
eclipse.preferences.version=1
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
org.eclipse.jdt.core.compiler.codegen.targetPlatform=17
org.eclipse.jdt.core.compiler.compliance=17
org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning
org.eclipse.jdt.core.compiler.release=enabled
org.eclipse.jdt.core.compiler.source=17
18 changes: 18 additions & 0 deletions process-analyzer-demo/.settings/org.eclipse.wst.common.component
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
<?xml version="1.0" encoding="UTF-8"?><project-modules id="moduleCoreId" project-version="1.5.0">

<wb-module deploy-name="process-analyzer-demo">

<wb-resource deploy-path="/" source-path="/webContent" tag="defaultRootSource"/>

<wb-resource deploy-path="/WEB-INF/classes" source-path="/src"/>

<wb-resource deploy-path="/WEB-INF/classes" source-path="/src_wsproc"/>

<wb-resource deploy-path="/WEB-INF/classes" source-path="/src_dataClasses"/>

<property name="java-output-path" value="/process-analyzer-demo/target/classes"/>
<property name="context-root" value="process-analyzer-demo"/>

</wb-module>

</project-modules>
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
<root>
<facet id="jst.jsf">
<node name="libprov">
<attribute name="provider-id" value="jsf-user-library-provider"/>
</node>
</facet>
</root>
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<faceted-project>
<fixed facet="wst.jsdt.web"/>
<installed facet="java" version="17"/>
<installed facet="jst.web" version="3.0"/>
<installed facet="wst.jsdt.web" version="1.0"/>
<installed facet="jst.jsf" version="2.1"/>
</faceted-project>
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
css-profile/<project>=org.eclipse.wst.css.core.cssprofile.css3
eclipse.preferences.version=1
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
org.eclipse.wst.jsdt.launching.baseBrowserLibrary
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Window
11 changes: 11 additions & 0 deletions process-analyzer-demo/META-INF/MANIFEST.MF
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: workflow-estimator-demo
Bundle-SymbolicName: process-analyzer-demo
Bundle-Version: 1.0.0.qualifier
Bundle-RequiredExecutionEnvironment: JavaSE-17
Automatic-Module-Name: workflow.estimator.demo
Export-Package: com.axonivy.utils.process.analyzer.demo,
com.axonivy.utils.process.analyzer.demo.constant,
com.axonivy.utils.process.analyzer.demo.model
Require-Bundle: ch.ivyteam.ivy.process.rdm;bundle-version="11.2.1"
5 changes: 5 additions & 0 deletions process-analyzer-demo/build.properties
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
source.. = src/,\
src_wsproc/,\
src_dataClasses/
bin.includes = META-INF/,\
.
22 changes: 22 additions & 0 deletions process-analyzer-demo/config/custom-fields.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
# yaml-language-server: $schema=https://json-schema.axonivy.com/app/0.0.1/custom-fields.json
#
# == Custom Fields Information ==
#
# You can define here your project custom fields.
# Have a look at our documentation for more information.
#
CustomFields:
# Tasks:
# MyTaskCustomField:
# Label: My task custom field
# Description: This new task custom field can be used to ...
# Type: STRING
# Cases:
# MyCaseCustomField:
# Label: My case custom field
# Description: This new case custom field can be used to ...
# Type: STRING
# Starts:
# MyStartCustomField:
# Label: My start custom field
# Description: This new start custom field can be used to ...
2 changes: 2 additions & 0 deletions process-analyzer-demo/config/databases.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
# yaml-language-server: $schema=https://json-schema.axonivy.com/app/0.0.1/databases.json
Databases:
1 change: 1 addition & 0 deletions process-analyzer-demo/config/overrides.any
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
*
2 changes: 2 additions & 0 deletions process-analyzer-demo/config/persistence.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<persistence xmlns="http://xmlns.jcp.org/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.2" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence http://xmlns.jcp.org/xml/ns/persistence/persistence_2_2.xsd"/>
2 changes: 2 additions & 0 deletions process-analyzer-demo/config/rest-clients.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
# yaml-language-server: $schema=https://json-schema.axonivy.com/app/0.0.1/rest-clients.json
RestClients:
Loading

0 comments on commit 946e3e8

Please sign in to comment.