Skip to content
Snippets Groups Projects
Commit 31513b89 authored by Till Josef Brinkhus's avatar Till Josef Brinkhus
Browse files

Erkennung von Flow-Zusammengehörigkeiten

parent 6369b1fe
No related branches found
No related tags found
No related merge requests found
BPMNDiagram process
with testpackage "de.sample.onlineschuhdemo" with bpmn "retoure.bpmn" with key "Retoure" with dmn : [ "\\schuh_vernichtung_spende.dmn" ] with embedded : [ "\\forms\\warendaten-erfassen-form.html" ] ;
Loop Loop0
starts with "Gateway_Einpackung_Fehlerhaft"
follows by "Gateway_Auspacken"
ends with "Gateway_Einpackung_Fehlerhaft_Closed"
has complexity 2 passed : [ 0 , 1 ] ;
FlowElement Retoure_Start : StartEvent with inputVariables : [ kundennummer , erstattung , beschaedigt ] ;
FlowElement Flow_Start : SequenceFlow ;
FlowElement Gateway_Parallel_Lager_Neusendung : Gateway ;
FlowElement Flow_0eh02jo : SequenceFlow ;
FlowElement Gateway_Beschaedigt : Gateway ;
FlowElement Flow_unbeschaedigt : SequenceFlow ;
FlowElement Ware_einsortieren : ManualTask ;
FlowElement Flow_0a9rzst : SequenceFlow ;
FlowElement New_Task_1 : ManualTask ;
FlowElement Flow_New_1 : SequenceFlow ;
FlowElement Gateway_Beschaedigt_Close : Gateway ;
FlowElement Flow_1c2tfla : SequenceFlow ;
FlowElement Flow_1gu0k49 : SequenceFlow ;
FlowElement Kundendaten_ermitteln : ServiceTask with external : customer ;
FlowElement Flow_0iibopi : SequenceFlow ;
FlowElement Gateway_Neusendung : Gateway ;
FlowElement Flow_Erstattung : SequenceFlow with expression : "#{erstattung}" ;
FlowElement Finanzdaten_ermitteln : ServiceTask with external : financial with hardcoded inputs : [ serviceIdentifier = "getData" ] ;
FlowElement Flow_Erstattung_Datenermittlung : SequenceFlow ;
FlowElement Erstattung : ServiceTask with external : financial with hardcoded inputs : [ serviceIdentifier = "refund" ] ;
FlowElement Flow_Erstattung_abgeschlossen : SequenceFlow ;
FlowElement New_Task_2 : ManualTask ;
FlowElement New_Flow_2 : ManualTask ;
FlowElement Gateway_Neusendung_Closed : Gateway ;
FlowElement Flow_0m33odz : SequenceFlow ;
FlowElement Gateway_Parallel_Lager_Neusendung_Closed : Gateway ;
FlowElement Flow_Ende : SequenceFlow ;
FlowElement Retoure_Ende : EndEvent ;
FlowElement Flow_neusenden : SequenceFlow ;
FlowElement Manuelle_Pruefung : UserTask ;
FlowElement Flow_0u77zm0 : SequenceFlow ;
FlowElement Warennummer_ermitteln : ServiceTask with delegate : "warennummer" ;
FlowElement Flow_03ubi3l : SequenceFlow ;
FlowElement Gateway_Einpackung_Fehlerhaft_Closed : Gateway ;
FlowElement Flow_006t3wo : SequenceFlow ;
FlowElement Paket_packen : UserTask with inputVariables : [ pakettyp ] ;
FlowElement Flow_0bhr7g8 : SequenceFlow ;
FlowElement Paket_pruefen : UserTask with inputVariables : [ paket ] ;
FlowElement Flow_1n6o3h6 : SequenceFlow ;
FlowElement Gateway_Einpackung_Fehlerhaft : Gateway ;
FlowElement Flow_paket_okay : SequenceFlow ;
FlowElement Paket_senden : UserTask ;
FlowElement Flow_0u4n4gn : SequenceFlow ;
FlowElement Flow_fehlerhaft_eingepackt : SequenceFlow with expression : "#{paket==false}" ;
FlowElement Gateway_Auspacken : Gateway ;
FlowElement Flow_normal_auspacken : SequenceFlow with expression : "#{pakettyp==\"Normalverpackung\"}" ;
FlowElement Ware_auspacken_normal : ManualTask ;
FlowElement Flow_0d8lhxo : SequenceFlow ;
FlowElement Gateway_14evkap : Gateway ;
FlowElement Flow_1bnro90 : SequenceFlow ;
FlowElement Flow_luxus_auspacken : SequenceFlow with expression : "#{pakettyp==\"Luxusverpackung\"}" ;
FlowElement Ware_auspacken_luxus : ManualTask ;
FlowElement Flow_04tyvq1 : SequenceFlow ;
FlowElement Flow_beschaedigt : SequenceFlow with expression : "#{beschaedigt == true}" ;
FlowElement Warendaten_erfassen : UserTask with inputVariables : [ marke , preis ] ;
FlowElement Flow_01lf19r : SequenceFlow ;
FlowElement Vernichtung_ermitteln : BusinessRuleTask ;
FlowElement Flow_0kgxxke : SequenceFlow ;
FlowElement Gateway_Vernichtung : Gateway ;
FlowElement Flow_vernichten : SequenceFlow with expression : "#{vernichten == true}" ;
FlowElement Ware_vernichten : UserTask ;
FlowElement Flow_0zkq7z5 : SequenceFlow ;
FlowElement Gateway_Vernichtung_Close : Gateway ;
FlowElement Flow_14jbtgw : SequenceFlow ;
FlowElement Flow_spenden : SequenceFlow with expression : "#{vernichten == false}" ;
FlowElement Ware_spenden : UserTask ;
FlowElement Flow_0f171gg : SequenceFlow ;
String kundennummer with proposals : [ ] ;
String marke with proposals : [ "Luxury Foot" , "Simply Shoe" , "Shoe One" ] ;
String iban with proposals : [ ] ;
String vorname with proposals : [ ] ;
String nachname with proposals : [ ] ;
String pakettyp with proposals : [ "Normalverpackung" , "Luxusverpackung" ] ;
String emailGesendet with proposals : [ ] ;
String firstname with proposals : [ ] ;
String lastname with proposals : [ ] ;
String ibanRefund with proposals : [ ] ;
String confirmationEmailSent with proposals : [ ] ;
String serviceIdentifier with proposals : [ "getData" , "refund" ] ;
Integer preis with proposals : [ 350 , 349 , 70 , 71 ] ;
Boolean erstattung with proposals : [ true , false ] ;
Boolean paket with proposals : [ true , false ] ;
Boolean beschaedigt with proposals : [ true , false ] ;
ExternalTopic customer ;
ExternalTopic financial ;
Flow Flow_0 for process
with elements : [ Retoure_Start , Flow_Start , Gateway_Parallel_Lager_Neusendung , Flow_0eh02jo , Gateway_Beschaedigt , Flow_unbeschaedigt , Ware_einsortieren , Flow_0a9rzst , New_Task_1 , Flow_New_1 , Gateway_Beschaedigt_Close , Flow_1c2tfla , Flow_1gu0k49 , Kundendaten_ermitteln , Flow_0iibopi , Gateway_Neusendung , Flow_neusenden , Manuelle_Pruefung , Flow_0u77zm0 , Warennummer_ermitteln , Flow_03ubi3l , Gateway_Einpackung_Fehlerhaft_Closed , Flow_006t3wo , Paket_packen , Flow_0bhr7g8 , Paket_pruefen , Flow_1n6o3h6 , Gateway_Einpackung_Fehlerhaft , Flow_paket_okay , Paket_senden , Flow_0u4n4gn , Gateway_Neusendung_Closed , Flow_0m33odz , Gateway_Parallel_Lager_Neusendung_Closed , Flow_Ende , Retoure_Ende ]
without elements : [ Flow_Erstattung , Finanzdaten_ermitteln , Flow_Erstattung_Datenermittlung , Erstattung , Flow_Erstattung_abgeschlossen , New_Task_2 , New_Flow_2 , Flow_fehlerhaft_eingepackt , Gateway_Auspacken , Flow_normal_auspacken , Ware_auspacken_normal , Flow_0d8lhxo , Gateway_14evkap , Flow_1bnro90 , Flow_luxus_auspacken , Ware_auspacken_luxus , Flow_04tyvq1 , Flow_beschaedigt , Warendaten_erfassen , Flow_01lf19r , Vernichtung_ermitteln , Flow_0kgxxke , Gateway_Vernichtung , Flow_vernichten , Ware_vernichten , Flow_0zkq7z5 , Gateway_Vernichtung_Close , Flow_14jbtgw , Flow_spenden , Ware_spenden , Flow_0f171gg ] ;
Flow Flow_1 for process
with elements : [ Retoure_Start , Flow_Start , Gateway_Parallel_Lager_Neusendung , Flow_0eh02jo , Gateway_Beschaedigt , Flow_unbeschaedigt , Ware_einsortieren , Flow_0a9rzst , New_Task_1 , Flow_New_1 , Gateway_Beschaedigt_Close , Flow_1c2tfla , Flow_1gu0k49 , Kundendaten_ermitteln , Flow_0iibopi , Gateway_Neusendung , Flow_neusenden , Manuelle_Pruefung , Flow_0u77zm0 , Warennummer_ermitteln , Flow_03ubi3l , Gateway_Einpackung_Fehlerhaft_Closed , Flow_006t3wo , Paket_packen , Flow_0bhr7g8 , Paket_pruefen , Flow_1n6o3h6 , Gateway_Einpackung_Fehlerhaft , Flow_fehlerhaft_eingepackt , Gateway_Auspacken , Flow_normal_auspacken , Ware_auspacken_normal , Flow_0d8lhxo , Gateway_14evkap , Flow_1bnro90 , Gateway_Einpackung_Fehlerhaft_Closed , Flow_006t3wo , Paket_packen , Flow_0bhr7g8 , Paket_pruefen , Flow_1n6o3h6 , Gateway_Einpackung_Fehlerhaft , Flow_paket_okay , Paket_senden , Flow_0u4n4gn , Gateway_Neusendung_Closed , Flow_0m33odz , Gateway_Parallel_Lager_Neusendung_Closed , Flow_Ende , Retoure_Ende ]
without elements : [ Flow_Erstattung , Finanzdaten_ermitteln , Flow_Erstattung_Datenermittlung , Erstattung , Flow_Erstattung_abgeschlossen , New_Task_2 , New_Flow_2 , Flow_luxus_auspacken , Ware_auspacken_luxus , Flow_04tyvq1 , Flow_beschaedigt , Warendaten_erfassen , Flow_01lf19r , Vernichtung_ermitteln , Flow_0kgxxke , Gateway_Vernichtung , Flow_vernichten , Ware_vernichten , Flow_0zkq7z5 , Gateway_Vernichtung_Close , Flow_14jbtgw , Flow_spenden , Ware_spenden , Flow_0f171gg ] ;
Flow Flow_2 for process
with elements : [ Retoure_Start , Flow_Start , Gateway_Parallel_Lager_Neusendung , Flow_0eh02jo , Gateway_Beschaedigt , Flow_unbeschaedigt , Ware_einsortieren , Flow_0a9rzst , New_Task_1 , Flow_New_1 , Gateway_Beschaedigt_Close , Flow_1c2tfla , Flow_1gu0k49 , Kundendaten_ermitteln , Flow_0iibopi , Gateway_Neusendung , Flow_neusenden , Manuelle_Pruefung , Flow_0u77zm0 , Warennummer_ermitteln , Flow_03ubi3l , Gateway_Einpackung_Fehlerhaft_Closed , Flow_006t3wo , Paket_packen , Flow_0bhr7g8 , Paket_pruefen , Flow_1n6o3h6 , Gateway_Einpackung_Fehlerhaft , Flow_fehlerhaft_eingepackt , Gateway_Auspacken , Flow_luxus_auspacken , Ware_auspacken_luxus , Flow_04tyvq1 , Gateway_14evkap , Flow_1bnro90 , Gateway_Einpackung_Fehlerhaft_Closed , Flow_006t3wo , Paket_packen , Flow_0bhr7g8 , Paket_pruefen , Flow_1n6o3h6 , Gateway_Einpackung_Fehlerhaft , Flow_paket_okay , Paket_senden , Flow_0u4n4gn , Gateway_Neusendung_Closed , Flow_0m33odz , Gateway_Parallel_Lager_Neusendung_Closed , Flow_Ende , Retoure_Ende ]
without elements : [ Flow_Erstattung , Finanzdaten_ermitteln , Flow_Erstattung_Datenermittlung , Erstattung , Flow_Erstattung_abgeschlossen , New_Task_2 , New_Flow_2 , Flow_normal_auspacken , Ware_auspacken_normal , Flow_0d8lhxo , Flow_beschaedigt , Warendaten_erfassen , Flow_01lf19r , Vernichtung_ermitteln , Flow_0kgxxke , Gateway_Vernichtung , Flow_vernichten , Ware_vernichten , Flow_0zkq7z5 , Gateway_Vernichtung_Close , Flow_14jbtgw , Flow_spenden , Ware_spenden , Flow_0f171gg ] ;
Flow Flow_3 for process
with elements : [ Retoure_Start , Flow_Start , Gateway_Parallel_Lager_Neusendung , Flow_0eh02jo , Gateway_Beschaedigt , Flow_unbeschaedigt , Ware_einsortieren , Flow_0a9rzst , New_Task_1 , Flow_New_1 , Gateway_Beschaedigt_Close , Flow_1c2tfla , Flow_1gu0k49 , Kundendaten_ermitteln , Flow_0iibopi , Gateway_Neusendung , Flow_Erstattung , Finanzdaten_ermitteln , Flow_Erstattung_Datenermittlung , Erstattung , Flow_Erstattung_abgeschlossen , New_Task_2 , New_Flow_2 , Gateway_Neusendung_Closed , Flow_0m33odz , Gateway_Parallel_Lager_Neusendung_Closed , Flow_Ende , Retoure_Ende ]
without elements : [ Flow_neusenden , Manuelle_Pruefung , Flow_0u77zm0 , Warennummer_ermitteln , Flow_03ubi3l , Gateway_Einpackung_Fehlerhaft_Closed , Flow_006t3wo , Paket_packen , Flow_0bhr7g8 , Paket_pruefen , Flow_1n6o3h6 , Gateway_Einpackung_Fehlerhaft , Flow_paket_okay , Paket_senden , Flow_0u4n4gn , Flow_fehlerhaft_eingepackt , Gateway_Auspacken , Flow_normal_auspacken , Ware_auspacken_normal , Flow_0d8lhxo , Gateway_14evkap , Flow_1bnro90 , Flow_luxus_auspacken , Ware_auspacken_luxus , Flow_04tyvq1 , Flow_beschaedigt , Warendaten_erfassen , Flow_01lf19r , Vernichtung_ermitteln , Flow_0kgxxke , Gateway_Vernichtung , Flow_vernichten , Ware_vernichten , Flow_0zkq7z5 , Gateway_Vernichtung_Close , Flow_14jbtgw , Flow_spenden , Ware_spenden , Flow_0f171gg ] ;
Flow Flow_4 for process
with elements : [ Retoure_Start , Flow_Start , Gateway_Parallel_Lager_Neusendung , Flow_0eh02jo , Gateway_Beschaedigt , Flow_beschaedigt , Warendaten_erfassen , Flow_01lf19r , Vernichtung_ermitteln , Flow_0kgxxke , Gateway_Vernichtung , Flow_vernichten , Ware_vernichten , Flow_0zkq7z5 , Gateway_Vernichtung_Close , Flow_14jbtgw , Gateway_Beschaedigt_Close , Flow_1c2tfla , Flow_1gu0k49 , Kundendaten_ermitteln , Flow_0iibopi , Gateway_Neusendung , Flow_Erstattung , Finanzdaten_ermitteln , Flow_Erstattung_Datenermittlung , Erstattung , Flow_Erstattung_abgeschlossen , New_Task_2 , New_Flow_2 , Gateway_Neusendung_Closed , Flow_0m33odz , Gateway_Parallel_Lager_Neusendung_Closed , Flow_Ende , Retoure_Ende ]
without elements : [ Flow_unbeschaedigt , Ware_einsortieren , Flow_0a9rzst , New_Task_1 , Flow_New_1 , Flow_neusenden , Manuelle_Pruefung , Flow_0u77zm0 , Warennummer_ermitteln , Flow_03ubi3l , Gateway_Einpackung_Fehlerhaft_Closed , Flow_006t3wo , Paket_packen , Flow_0bhr7g8 , Paket_pruefen , Flow_1n6o3h6 , Gateway_Einpackung_Fehlerhaft , Flow_paket_okay , Paket_senden , Flow_0u4n4gn , Flow_fehlerhaft_eingepackt , Gateway_Auspacken , Flow_normal_auspacken , Ware_auspacken_normal , Flow_0d8lhxo , Gateway_14evkap , Flow_1bnro90 , Flow_luxus_auspacken , Ware_auspacken_luxus , Flow_04tyvq1 , Flow_spenden , Ware_spenden , Flow_0f171gg ] ;
Flow Flow_5 for process
with elements : [ Retoure_Start , Flow_Start , Gateway_Parallel_Lager_Neusendung , Flow_0eh02jo , Gateway_Beschaedigt , Flow_beschaedigt , Warendaten_erfassen , Flow_01lf19r , Vernichtung_ermitteln , Flow_0kgxxke , Gateway_Vernichtung , Flow_vernichten , Ware_vernichten , Flow_0zkq7z5 , Gateway_Vernichtung_Close , Flow_14jbtgw , Gateway_Beschaedigt_Close , Flow_1c2tfla , Flow_1gu0k49 , Kundendaten_ermitteln , Flow_0iibopi , Gateway_Neusendung , Flow_neusenden , Manuelle_Pruefung , Flow_0u77zm0 , Warennummer_ermitteln , Flow_03ubi3l , Gateway_Einpackung_Fehlerhaft_Closed , Flow_006t3wo , Paket_packen , Flow_0bhr7g8 , Paket_pruefen , Flow_1n6o3h6 , Gateway_Einpackung_Fehlerhaft , Flow_paket_okay , Paket_senden , Flow_0u4n4gn , Gateway_Neusendung_Closed , Flow_0m33odz , Gateway_Parallel_Lager_Neusendung_Closed , Flow_Ende , Retoure_Ende ]
without elements : [ Flow_unbeschaedigt , Ware_einsortieren , Flow_0a9rzst , New_Task_1 , Flow_New_1 , Flow_Erstattung , Finanzdaten_ermitteln , Flow_Erstattung_Datenermittlung , Erstattung , Flow_Erstattung_abgeschlossen , New_Task_2 , New_Flow_2 , Flow_fehlerhaft_eingepackt , Gateway_Auspacken , Flow_normal_auspacken , Ware_auspacken_normal , Flow_0d8lhxo , Gateway_14evkap , Flow_1bnro90 , Flow_luxus_auspacken , Ware_auspacken_luxus , Flow_04tyvq1 , Flow_spenden , Ware_spenden , Flow_0f171gg ] ;
Flow Flow_6 for process
with elements : [ Retoure_Start , Flow_Start , Gateway_Parallel_Lager_Neusendung , Flow_0eh02jo , Gateway_Beschaedigt , Flow_beschaedigt , Warendaten_erfassen , Flow_01lf19r , Vernichtung_ermitteln , Flow_0kgxxke , Gateway_Vernichtung , Flow_vernichten , Ware_vernichten , Flow_0zkq7z5 , Gateway_Vernichtung_Close , Flow_14jbtgw , Gateway_Beschaedigt_Close , Flow_1c2tfla , Flow_1gu0k49 , Kundendaten_ermitteln , Flow_0iibopi , Gateway_Neusendung , Flow_neusenden , Manuelle_Pruefung , Flow_0u77zm0 , Warennummer_ermitteln , Flow_03ubi3l , Gateway_Einpackung_Fehlerhaft_Closed , Flow_006t3wo , Paket_packen , Flow_0bhr7g8 , Paket_pruefen , Flow_1n6o3h6 , Gateway_Einpackung_Fehlerhaft , Flow_fehlerhaft_eingepackt , Gateway_Auspacken , Flow_normal_auspacken , Ware_auspacken_normal , Flow_0d8lhxo , Gateway_14evkap , Flow_1bnro90 , Gateway_Einpackung_Fehlerhaft_Closed , Flow_006t3wo , Paket_packen , Flow_0bhr7g8 , Paket_pruefen , Flow_1n6o3h6 , Gateway_Einpackung_Fehlerhaft , Flow_paket_okay , Paket_senden , Flow_0u4n4gn , Gateway_Neusendung_Closed , Flow_0m33odz , Gateway_Parallel_Lager_Neusendung_Closed , Flow_Ende , Retoure_Ende ]
without elements : [ Flow_unbeschaedigt , Ware_einsortieren , Flow_0a9rzst , New_Task_1 , Flow_New_1 , Flow_Erstattung , Finanzdaten_ermitteln , Flow_Erstattung_Datenermittlung , Erstattung , Flow_Erstattung_abgeschlossen , New_Task_2 , New_Flow_2 , Flow_luxus_auspacken , Ware_auspacken_luxus , Flow_04tyvq1 , Flow_spenden , Ware_spenden , Flow_0f171gg ] ;
Flow Flow_7 for process
with elements : [ Retoure_Start , Flow_Start , Gateway_Parallel_Lager_Neusendung , Flow_0eh02jo , Gateway_Beschaedigt , Flow_beschaedigt , Warendaten_erfassen , Flow_01lf19r , Vernichtung_ermitteln , Flow_0kgxxke , Gateway_Vernichtung , Flow_vernichten , Ware_vernichten , Flow_0zkq7z5 , Gateway_Vernichtung_Close , Flow_14jbtgw , Gateway_Beschaedigt_Close , Flow_1c2tfla , Flow_1gu0k49 , Kundendaten_ermitteln , Flow_0iibopi , Gateway_Neusendung , Flow_neusenden , Manuelle_Pruefung , Flow_0u77zm0 , Warennummer_ermitteln , Flow_03ubi3l , Gateway_Einpackung_Fehlerhaft_Closed , Flow_006t3wo , Paket_packen , Flow_0bhr7g8 , Paket_pruefen , Flow_1n6o3h6 , Gateway_Einpackung_Fehlerhaft , Flow_fehlerhaft_eingepackt , Gateway_Auspacken , Flow_luxus_auspacken , Ware_auspacken_luxus , Flow_04tyvq1 , Gateway_14evkap , Flow_1bnro90 , Gateway_Einpackung_Fehlerhaft_Closed , Flow_006t3wo , Paket_packen , Flow_0bhr7g8 , Paket_pruefen , Flow_1n6o3h6 , Gateway_Einpackung_Fehlerhaft , Flow_paket_okay , Paket_senden , Flow_0u4n4gn , Gateway_Neusendung_Closed , Flow_0m33odz , Gateway_Parallel_Lager_Neusendung_Closed , Flow_Ende , Retoure_Ende ]
without elements : [ Flow_unbeschaedigt , Ware_einsortieren , Flow_0a9rzst , New_Task_1 , Flow_New_1 , Flow_Erstattung , Finanzdaten_ermitteln , Flow_Erstattung_Datenermittlung , Erstattung , Flow_Erstattung_abgeschlossen , New_Task_2 , New_Flow_2 , Flow_normal_auspacken , Ware_auspacken_normal , Flow_0d8lhxo , Flow_spenden , Ware_spenden , Flow_0f171gg ] ;
Flow Flow_8 for process
with elements : [ Retoure_Start , Flow_Start , Gateway_Parallel_Lager_Neusendung , Flow_0eh02jo , Gateway_Beschaedigt , Flow_beschaedigt , Warendaten_erfassen , Flow_01lf19r , Vernichtung_ermitteln , Flow_0kgxxke , Gateway_Vernichtung , Flow_spenden , Ware_spenden , Flow_0f171gg , Gateway_Vernichtung_Close , Flow_14jbtgw , Gateway_Beschaedigt_Close , Flow_1c2tfla , Flow_1gu0k49 , Kundendaten_ermitteln , Flow_0iibopi , Gateway_Neusendung , Flow_neusenden , Manuelle_Pruefung , Flow_0u77zm0 , Warennummer_ermitteln , Flow_03ubi3l , Gateway_Einpackung_Fehlerhaft_Closed , Flow_006t3wo , Paket_packen , Flow_0bhr7g8 , Paket_pruefen , Flow_1n6o3h6 , Gateway_Einpackung_Fehlerhaft , Flow_paket_okay , Paket_senden , Flow_0u4n4gn , Gateway_Neusendung_Closed , Flow_0m33odz , Gateway_Parallel_Lager_Neusendung_Closed , Flow_Ende , Retoure_Ende ]
without elements : [ Flow_unbeschaedigt , Ware_einsortieren , Flow_0a9rzst , New_Task_1 , Flow_New_1 , Flow_Erstattung , Finanzdaten_ermitteln , Flow_Erstattung_Datenermittlung , Erstattung , Flow_Erstattung_abgeschlossen , New_Task_2 , New_Flow_2 , Flow_fehlerhaft_eingepackt , Gateway_Auspacken , Flow_normal_auspacken , Ware_auspacken_normal , Flow_0d8lhxo , Gateway_14evkap , Flow_1bnro90 , Flow_luxus_auspacken , Ware_auspacken_luxus , Flow_04tyvq1 , Flow_vernichten , Ware_vernichten , Flow_0zkq7z5 ] ;
Flow Flow_9 for process
with elements : [ Retoure_Start , Flow_Start , Gateway_Parallel_Lager_Neusendung , Flow_0eh02jo , Gateway_Beschaedigt , Flow_beschaedigt , Warendaten_erfassen , Flow_01lf19r , Vernichtung_ermitteln , Flow_0kgxxke , Gateway_Vernichtung , Flow_spenden , Ware_spenden , Flow_0f171gg , Gateway_Vernichtung_Close , Flow_14jbtgw , Gateway_Beschaedigt_Close , Flow_1c2tfla , Flow_1gu0k49 , Kundendaten_ermitteln , Flow_0iibopi , Gateway_Neusendung , Flow_Erstattung , Finanzdaten_ermitteln , Flow_Erstattung_Datenermittlung , Erstattung , Flow_Erstattung_abgeschlossen , New_Task_2 , New_Flow_2 , Gateway_Neusendung_Closed , Flow_0m33odz , Gateway_Parallel_Lager_Neusendung_Closed , Flow_Ende , Retoure_Ende ]
without elements : [ Flow_unbeschaedigt , Ware_einsortieren , Flow_0a9rzst , New_Task_1 , Flow_New_1 , Flow_neusenden , Manuelle_Pruefung , Flow_0u77zm0 , Warennummer_ermitteln , Flow_03ubi3l , Gateway_Einpackung_Fehlerhaft_Closed , Flow_006t3wo , Paket_packen , Flow_0bhr7g8 , Paket_pruefen , Flow_1n6o3h6 , Gateway_Einpackung_Fehlerhaft , Flow_paket_okay , Paket_senden , Flow_0u4n4gn , Flow_fehlerhaft_eingepackt , Gateway_Auspacken , Flow_normal_auspacken , Ware_auspacken_normal , Flow_0d8lhxo , Gateway_14evkap , Flow_1bnro90 , Flow_luxus_auspacken , Ware_auspacken_luxus , Flow_04tyvq1 , Flow_vernichten , Ware_vernichten , Flow_0zkq7z5 ] ;
Flow Flow_10 for process
with elements : [ Retoure_Start , Flow_Start , Gateway_Parallel_Lager_Neusendung , Flow_0eh02jo , Gateway_Beschaedigt , Flow_beschaedigt , Warendaten_erfassen , Flow_01lf19r , Vernichtung_ermitteln , Flow_0kgxxke , Gateway_Vernichtung , Flow_spenden , Ware_spenden , Flow_0f171gg , Gateway_Vernichtung_Close , Flow_14jbtgw , Gateway_Beschaedigt_Close , Flow_1c2tfla , Flow_1gu0k49 , Kundendaten_ermitteln , Flow_0iibopi , Gateway_Neusendung , Flow_neusenden , Manuelle_Pruefung , Flow_0u77zm0 , Warennummer_ermitteln , Flow_03ubi3l , Gateway_Einpackung_Fehlerhaft_Closed , Flow_006t3wo , Paket_packen , Flow_0bhr7g8 , Paket_pruefen , Flow_1n6o3h6 , Gateway_Einpackung_Fehlerhaft , Flow_fehlerhaft_eingepackt , Gateway_Auspacken , Flow_luxus_auspacken , Ware_auspacken_luxus , Flow_04tyvq1 , Gateway_14evkap , Flow_1bnro90 , Gateway_Einpackung_Fehlerhaft_Closed , Flow_006t3wo , Paket_packen , Flow_0bhr7g8 , Paket_pruefen , Flow_1n6o3h6 , Gateway_Einpackung_Fehlerhaft , Flow_paket_okay , Paket_senden , Flow_0u4n4gn , Gateway_Neusendung_Closed , Flow_0m33odz , Gateway_Parallel_Lager_Neusendung_Closed , Flow_Ende , Retoure_Ende ]
without elements : [ Flow_unbeschaedigt , Ware_einsortieren , Flow_0a9rzst , New_Task_1 , Flow_New_1 , Flow_Erstattung , Finanzdaten_ermitteln , Flow_Erstattung_Datenermittlung , Erstattung , Flow_Erstattung_abgeschlossen , New_Task_2 , New_Flow_2 , Flow_normal_auspacken , Ware_auspacken_normal , Flow_0d8lhxo , Flow_vernichten , Ware_vernichten , Flow_0zkq7z5 ] ;
Flow Flow_11 for process
with elements : [ Retoure_Start , Flow_Start , Gateway_Parallel_Lager_Neusendung , Flow_0eh02jo , Gateway_Beschaedigt , Flow_beschaedigt , Warendaten_erfassen , Flow_01lf19r , Vernichtung_ermitteln , Flow_0kgxxke , Gateway_Vernichtung , Flow_spenden , Ware_spenden , Flow_0f171gg , Gateway_Vernichtung_Close , Flow_14jbtgw , Gateway_Beschaedigt_Close , Flow_1c2tfla , Flow_1gu0k49 , Kundendaten_ermitteln , Flow_0iibopi , Gateway_Neusendung , Flow_neusenden , Manuelle_Pruefung , Flow_0u77zm0 , Warennummer_ermitteln , Flow_03ubi3l , Gateway_Einpackung_Fehlerhaft_Closed , Flow_006t3wo , Paket_packen , Flow_0bhr7g8 , Paket_pruefen , Flow_1n6o3h6 , Gateway_Einpackung_Fehlerhaft , Flow_fehlerhaft_eingepackt , Gateway_Auspacken , Flow_normal_auspacken , Ware_auspacken_normal , Flow_0d8lhxo , Gateway_14evkap , Flow_1bnro90 , Gateway_Einpackung_Fehlerhaft_Closed , Flow_006t3wo , Paket_packen , Flow_0bhr7g8 , Paket_pruefen , Flow_1n6o3h6 , Gateway_Einpackung_Fehlerhaft , Flow_paket_okay , Paket_senden , Flow_0u4n4gn , Gateway_Neusendung_Closed , Flow_0m33odz , Gateway_Parallel_Lager_Neusendung_Closed , Flow_Ende , Retoure_Ende ]
without elements : [ Flow_unbeschaedigt , Ware_einsortieren , Flow_0a9rzst , New_Task_1 , Flow_New_1 , Flow_Erstattung , Finanzdaten_ermitteln , Flow_Erstattung_Datenermittlung , Erstattung , Flow_Erstattung_abgeschlossen , New_Task_2 , New_Flow_2 , Flow_luxus_auspacken , Ware_auspacken_luxus , Flow_04tyvq1 , Flow_vernichten , Ware_vernichten , Flow_0zkq7z5 ] ;
DelegateMock Warennummer_ermitteln for Warennummer_ermitteln with delegate "de.sample.onlineschuhdemo.externalaccess.WarennummerErmittelnDelegate" with manual "de.sample.onlineschuhdemo.externalaccess.LagerService" by setter "setLagerService" ;
ExternalServiceMock customerProvider for topic customer
with rule : if [ kundennummer == "C-123A456" ] set [ firstname = "Max" , lastname = "Mustermann" ] ,
with rule : if [ kundennummer == "C-987A654" ] set [ firstname = "Erika" , lastname = "Mustermann" ] ;
ExternalServiceMock financialMock for topic financial
with rule : if [ serviceIdentifier == "getData" , kundennummer == "C-123A456" ] set [ ibanRefund = "DE12345678900000123456" ] ,
with rule : if [ serviceIdentifier == "getData" , kundennummer == "C-987A654" ] set [ ibanRefund = "DE12345678900000987654" ] ,
with rule : if [ serviceIdentifier == "refund" , iban == "DE12345678900000123456" ] set [ confirmationEmailSent = "Nein" ] ,
with rule : if [ serviceIdentifier == "refund" ] set [ confirmationEmailSent = "Ja" ] ;
Test normalverpackungAuspacken for Flow_2
with variables for Retoure_Start : [ kundennummer = "C-123A456" , erstattung = false , beschaedigt = false ] ,
with variables for Paket_packen : [ pakettyp = "Normalverpackung" ] ,
with variables for Paket_pruefen : [ paket = false ] ,
with variables for Paket_packen : [ pakettyp = "Luxusverpackung" ] ,
with variables for Paket_pruefen : [ paket = true ]
with check : [ kundennummer == "C-123A456" , vorname == "Max" , nachname == "Mustermann" , erstattung == false , beschaedigt == false ]
with mocks : [ Warennummer_ermitteln , customerProvider ] ;
Test vernichtenErstattung for Flow_4
with variables for Retoure_Start : [ kundennummer = "C-123A456" , erstattung = true , beschaedigt = true ] ,
with variables for Warendaten_erfassen : [ marke = "Luxury Foot" , preis = 350 ]
with check : [ kundennummer == "C-123A456" , marke == "Luxury Foot" , iban == "DE12345678900000123456" , vorname == "Max" , nachname == "Mustermann" , emailGesendet == "Nein" , erstattung == true , beschaedigt == true ]
with mocks : [ financialMock , customerProvider ] ;
Test casetill1 for Flow_0
with variables for Retoure_Start : [ kundennummer = "123" , erstattung = true , beschaedigt = true ]
with check : [ kundennummer == "123" , marke == "wer" , iban == "DE80123084556" , vorname == "till" , nachname == "Brinkhus" , pakettyp == "Normalverpackung" , emailGesendet == "Ja" , firstname == "Till" , lastname == "Brinkhus" , ibanRefund == "DE80123084556" , confirmationEmailSent == "Ja" , serviceIdentifier == "getData" , preis == 1234 , erstattung == true , paket == true , beschaedigt == false ]
with mocks : [ financialMock , customerProvider ] ;
......@@ -32,6 +32,8 @@ import de.fhmuenster.masterthesis.Testgenerator.rest.service.project.ProjectServ
import de.fhmuenster.masterthesis.Testgenerator.rest.service.test.TestService;
import de.fhmuenster.masterthesis.Testgenerator.utils.ProjectDirectoryUtils;
import de.fhmuenster.masterthesis.serialization.TestgeneratorDSLSerializer;
import de.fhmuenster.masterthesis.services.TestgeneratorDSLGrammarAccess.FlowElements;
import de.fhmuenster.masterthesis.testgeneratorDSL.BPMNReference;
import de.fhmuenster.masterthesis.testgeneratorDSL.Flow;
import de.fhmuenster.masterthesis.testgeneratorDSL.FlowElement;
import de.fhmuenster.masterthesis.testgeneratorDSL.FlowElementReference;
......@@ -50,14 +52,13 @@ public class ChangeController {
private TestService testService;
@RequestMapping(path = "/project/{projectId}/match", method = RequestMethod.GET)
public String getNewFlows(@PathVariable(required = true) Long projectId) {
public void getNewFlows(@PathVariable(required = true) Long projectId) {
boolean success = true;
List <List<String>> newFlowsElements = new ArrayList<List<String>>();
List <List<String>> oldFlowsElements = new ArrayList<List<String>>();
//neue Flow ist erste Element, alte Flow zweite
List <List<String>> matchingFlows = new ArrayList<List<String>>();
// String[] keywords = { "Flow Flow_", "with elements", "without elements"};
......@@ -81,76 +82,45 @@ public class ChangeController {
//speichern von neuen Flow Elementen aller Flows
List<Flow> newFlows = flowService.getFlows(projectForId.getProjectDirectories());
List<BPMNFlowDTO> newFlowDtos = MAPPER_FLOW.mapToList(newFlows, BPMNFlowDTO.class);
List<Flow> newFlows = flowService.getFlows(projectForId.getProjectDirectories());
System.out.println("neu:");
//for Schleife durchläuft alle Flows
for (int i= 0; i<newFlowDtos.size(); i++) {
List<String> currentFlow = new ArrayList<String>();
currentFlow.add("Flow_"+i);
//for Schleife durchläuft alle Flow-Elemente
for(FlowElementDTO flowElement : newFlowDtos.get(i).getFlowElements()){
currentFlow.add(flowElement.getId());
}
newFlowsElements.add(currentFlow);
}
// System.out.println("new: " +newFlowsElements);
// System.out.println("old flow --------------------------------------------");
//für alte Flows
String pathOld = "C:\\Users\\tillb\\Desktop\\fe_projekt\\fe-pda-testing-tool\\OnlineSchuhDemo\\dsl_matching\\MatchingTestcollectionOld.bpmn-testgen";
List<Flow> oldFlows = flowService.getOldFlows(pathOld);
List<BPMNFlowDTO> oldFlowDtos = MAPPER_FLOW.mapToList(oldFlows, BPMNFlowDTO.class);
//for Schleife durchläuft alle alten Flows
for (int i= 0; i<oldFlowDtos.size(); i++) {
List<String> currentFlow = new ArrayList<String>();
currentFlow.add("Flow_"+i);
//for Schleife durchläuft alle Flow-Elemente
for(FlowElementDTO flowElement : oldFlowDtos.get(i).getFlowElements()){
currentFlow.add(flowElement.getId());
}
oldFlowsElements.add(currentFlow);
}
// System.out.println("old :"+ oldFlowsElements);
// System.out.println("alt:");
// for(FlowElementReference e : oldFlows.get(0).getInclElements()){
// System.out.println(e.getRef().getName());
// }
matchingFlows = compareFlows(newFlowsElements, oldFlowsElements);
// System.out.println(matchingFlows);
return "false";
Flow [][] matchingFlows = new Flow [newFlows.size()][];
matchingFlows = compareFlows(newFlows, oldFlows);
}
private List<List<String>> compareFlows(List<List<String>> newFlowsElements, List<List<String>> oldFlowsElements) {
private Flow[][] compareFlows(List<Flow> newFlows, List<Flow> oldFlows) {
List <Integer> checkedFlowsOld = new ArrayList <Integer>();
//hier werden die Flows gespeichert, die zurückgegeben werden. [x][0] -> Flow neu, [x][1] -> passender Flow alt
Flow [][] matchingFlows = new Flow [newFlows.size()][2];
List <Integer> checkedFlowsOld = new ArrayList <Integer>();
List <String> checkedElements = new ArrayList <String>();
//an Stelle [x][0] ist neuer Flow, [x][1] alter Flow, [x][2] Gemeinsamkeiten, [x][3] Unterschiede
String [][] matchingFlows = new String [newFlowsElements.size()][4];
int currentNewFlow = 0;
for (List newFlow: newFlowsElements) {
for (Flow newFlow: newFlows) {
EList<FlowElementReference> newFlowElements = newFlow.getInclElements();
int mostSimilarities = 0;
int leastDifferences = 10000;
int currentOldFlow = 0;
for (List oldFlow: oldFlowsElements) {
for (Flow oldFlow: oldFlows) {
EList<FlowElementReference> oldFlowElements = oldFlow.getInclElements();
int similarities = 0;
int differences = 0;
......@@ -158,19 +128,20 @@ public class ChangeController {
else {
for (Object newFlowElement: newFlow) {
if((newFlowElement.toString().contains("Flow_"+currentNewFlow)&& newFlowElement.toString().length()==6) || checkedElements.contains(newFlowElement.toString())) {}
for (FlowElementReference newFlowElement: newFlowElements) {
if(checkedElements.contains(newFlowElement.getRef().getName())) {}
else {
for (Object oldFlowElement: oldFlow) {
for (FlowElementReference oldFlowElement: oldFlowElements) {
if((oldFlowElement.toString().contains("Flow_"+currentOldFlow)&& oldFlowElement.toString().length()==6) || checkedElements.contains(oldFlowElement.toString())) {}
if(checkedElements.contains(oldFlowElement.getRef().getName())) {}
else {
if(newFlowElement.equals(oldFlowElement)) {
if(newFlowElement.getRef().getName().equals(oldFlowElement.getRef().getName())) {
similarities++;
checkedElements.add(newFlowElement.toString());
checkedElements.add(newFlowElement.getRef().getName());
}
......@@ -180,21 +151,19 @@ public class ChangeController {
}
}
//berechnen der Elemente, die aus dem alten und neuen Flow nicht zueinander gepasst haben
differences = oldFlow.size()-similarities + newFlow.size()-similarities;
differences = oldFlow.getInclElements().size()-similarities + newFlow.getInclElements().size()-similarities;
// System.out.println("Neuer Flow: "+ currentNewFlow+ " ; alter Flow: "+currentOldFlow+" ; similarities: "+similarities + " ; difference: "+ differences);
// falls aktuell übprüfte Flow alt und neu Kombination die meisten Gemeinsamkeiten haben oder noch nichts in matchingFlows gespeichert wurde
if(matchingFlows[currentNewFlow][2]==null || Integer.parseInt(matchingFlows[currentNewFlow][2])<similarities ||
(Integer.parseInt(matchingFlows[currentNewFlow][2])==similarities && Integer.parseInt(matchingFlows[currentNewFlow][3])> differences)) {
if(mostSimilarities<similarities || (mostSimilarities==similarities && leastDifferences> differences)) {
// System.out.println(currentNewFlow +" "+ currentOldFlow +" "+ similarities+ " "+ differences);
matchingFlows[currentNewFlow][0] = "Flow_"+currentNewFlow;
matchingFlows[currentNewFlow][1] = "Flow_"+currentOldFlow;
matchingFlows[currentNewFlow][2] = Integer.toString(similarities);
matchingFlows[currentNewFlow][3] = Integer.toString(differences);
// System.out.println("checked: "+checkedElements + " "+ checkedElements.size());
mostSimilarities=similarities;
leastDifferences = differences;
matchingFlows[currentNewFlow][0] = newFlow;
matchingFlows[currentNewFlow][1] = oldFlow;
}
checkedElements = new ArrayList <String>();
......@@ -205,12 +174,12 @@ public class ChangeController {
currentNewFlow++;
}
for (int i=0; i<newFlowsElements.size();i++) {
System.out.println(matchingFlows[i][0]+" "+matchingFlows[i][1]+" "+matchingFlows[i][2]+" "+matchingFlows[i][3]);
}
return null;
return matchingFlows;
}
}
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment