Skip to content
Snippets Groups Projects
Commit 2a625d4e authored by Aleksandra Dimitrova's avatar Aleksandra Dimitrova
Browse files

changed the timestamps in the log to datetime format and modified the functions using them

parent bd8056f8
Branches
No related tags found
No related merge requests found
CaseID,Activity,StartTimestamp,EndTimestamp
0,place order,0.0,2.0
1,place order,2.0,4.0
2,place order,4.0,6.0
0,arrange standard order,6.0,18.0
1,arrange standard order,6.0,17.0
2,arrange custom order,6.0,34.0
3,place order,13.0,15.0
3,arrange custom order,15.0,43.0
1,pick from stock C,17.0,47.0
0,pick from stock A,18.0,48.0
4,place order,24.0,26.0
4,arrange custom order,26.0,53.0
2,manufacture A,34.0,
5,place order,37.0,39.0
5,arrange custom order,39.0,59.0
3,manufacture B,43.0,
1,pack A,47.0,64.0
0,pack A,48.0,64.0
6,place order,52.0,54.0
4,manufacture A,54.0,
6,arrange standard order,54.0,64.0
5,manufacture B,59.0,
1,attempt delivery B,64.0,
0,attempt delivery B,64.0,
6,pick from stock A,64.0,77.0
7,place order,66.0,68.0
7,arrange custom order,68.0,89.0
8,place order,77.0,79.0
6,pack B,79.0,98.0
8,arrange custom order,79.0,99.0
9,place order,89.0,91.0
7,manufacture B,91.0,
9,arrange custom order,91.0,
6,attempt delivery A,98.0,
8,manufacture A,99.0,
10,place order,104.0,106.0
10,arrange custom order,106.0,
11,place order,115.0,117.0
11,arrange standard order,117.0,
0,place order,2023-07-07 16:41,2023-07-07 16:43
1,place order,2023-07-07 16:43,2023-07-07 16:43
2,place order,2023-07-07 16:45,2023-07-07 16:43
0,arrange custom order,2023-07-07 16:47,2023-07-07 17:08
1,arrange custom order,2023-07-07 16:47,2023-07-07 17:04
2,arrange custom order,2023-07-07 16:47,2023-07-07 17:02
3,place order,2023-07-07 16:54,2023-07-07 16:43
3,arrange custom order,2023-07-07 16:56,2023-07-07 17:10
4,place order,2023-07-07 17:04,2023-07-07 16:43
2,manufacture B,2023-07-07 17:08,
4,arrange standard order,2023-07-07 17:08,2023-07-07 16:54
1,manufacture B,2023-07-07 17:10,
0,manufacture A,2023-07-07 17:14,
5,place order,2023-07-07 17:18,2023-07-07 16:43
5,arrange standard order,2023-07-07 17:20,2023-07-07 16:51
4,pick from stock C,2023-07-07 17:21,
3,manufacture B,2023-07-07 17:25,
6,place order,2023-07-07 17:30,2023-07-07 16:43
5,pick from stock A,2023-07-07 17:32,2023-07-07 16:57
6,arrange custom order,2023-07-07 17:32,
7,place order,2023-07-07 17:41,2023-07-07 16:43
7,arrange standard order,2023-07-07 17:43,
5,pack C,2023-07-07 17:48,
......@@ -3,301 +3,185 @@
<trace>
<event>
<string key="Activity" value="place order" />
<float key="StartTimestamp" value="0.0" />
<int key="EndTimestamp" value="2" />
<string key="StartTimestamp" value="2023-07-07 16:41" />
<string key="EndTimestamp" value="2023-07-07 16:43" />
<int key="CaseID" value="0" />
</event>
</trace>
<trace>
<event>
<string key="Activity" value="place order" />
<float key="StartTimestamp" value="2.0" />
<int key="EndTimestamp" value="4" />
<string key="StartTimestamp" value="2023-07-07 16:43" />
<string key="EndTimestamp" value="2023-07-07 16:43" />
<int key="CaseID" value="1" />
</event>
</trace>
<trace>
<event>
<string key="Activity" value="place order" />
<float key="StartTimestamp" value="4.0" />
<int key="EndTimestamp" value="6" />
<string key="StartTimestamp" value="2023-07-07 16:45" />
<string key="EndTimestamp" value="2023-07-07 16:43" />
<int key="CaseID" value="2" />
</event>
</trace>
<trace>
<event>
<string key="Activity" value="arrange standard order" />
<float key="StartTimestamp" value="6.0" />
<int key="EndTimestamp" value="18" />
<string key="Activity" value="arrange custom order" />
<string key="StartTimestamp" value="2023-07-07 16:47" />
<string key="EndTimestamp" value="2023-07-07 17:08" />
<int key="CaseID" value="0" />
</event>
</trace>
<trace>
<event>
<string key="Activity" value="arrange standard order" />
<float key="StartTimestamp" value="6.0" />
<int key="EndTimestamp" value="17" />
<string key="Activity" value="arrange custom order" />
<string key="StartTimestamp" value="2023-07-07 16:47" />
<string key="EndTimestamp" value="2023-07-07 17:04" />
<int key="CaseID" value="1" />
</event>
</trace>
<trace>
<event>
<string key="Activity" value="arrange custom order" />
<float key="StartTimestamp" value="6.0" />
<int key="EndTimestamp" value="34" />
<string key="StartTimestamp" value="2023-07-07 16:47" />
<string key="EndTimestamp" value="2023-07-07 17:02" />
<int key="CaseID" value="2" />
</event>
</trace>
<trace>
<event>
<string key="Activity" value="place order" />
<float key="StartTimestamp" value="13.0" />
<int key="EndTimestamp" value="15" />
<string key="StartTimestamp" value="2023-07-07 16:54" />
<string key="EndTimestamp" value="2023-07-07 16:43" />
<int key="CaseID" value="3" />
</event>
</trace>
<trace>
<event>
<string key="Activity" value="arrange custom order" />
<float key="StartTimestamp" value="15.0" />
<int key="EndTimestamp" value="43" />
<string key="StartTimestamp" value="2023-07-07 16:56" />
<string key="EndTimestamp" value="2023-07-07 17:10" />
<int key="CaseID" value="3" />
</event>
</trace>
<trace>
<event>
<string key="Activity" value="pick from stock C" />
<float key="StartTimestamp" value="17.0" />
<int key="EndTimestamp" value="47" />
<int key="CaseID" value="1" />
</event>
</trace>
<trace>
<event>
<string key="Activity" value="pick from stock A" />
<float key="StartTimestamp" value="18.0" />
<int key="EndTimestamp" value="48" />
<int key="CaseID" value="0" />
</event>
</trace>
<trace>
<event>
<string key="Activity" value="place order" />
<float key="StartTimestamp" value="24.0" />
<int key="EndTimestamp" value="26" />
<int key="CaseID" value="4" />
</event>
</trace>
<trace>
<event>
<string key="Activity" value="arrange custom order" />
<float key="StartTimestamp" value="26.0" />
<int key="EndTimestamp" value="53" />
<string key="StartTimestamp" value="2023-07-07 17:04" />
<string key="EndTimestamp" value="2023-07-07 16:43" />
<int key="CaseID" value="4" />
</event>
</trace>
<trace>
<event>
<string key="Activity" value="manufacture A" />
<float key="StartTimestamp" value="34.0" />
<string key="Activity" value="manufacture B" />
<string key="StartTimestamp" value="2023-07-07 17:08" />
<string key="EndTimestamp" value=" " />
<int key="CaseID" value="2" />
</event>
</trace>
<trace>
<event>
<string key="Activity" value="place order" />
<float key="StartTimestamp" value="37.0" />
<int key="EndTimestamp" value="39" />
<int key="CaseID" value="5" />
</event>
</trace>
<trace>
<event>
<string key="Activity" value="arrange custom order" />
<float key="StartTimestamp" value="39.0" />
<int key="EndTimestamp" value="59" />
<int key="CaseID" value="5" />
<string key="Activity" value="arrange standard order" />
<string key="StartTimestamp" value="2023-07-07 17:08" />
<string key="EndTimestamp" value="2023-07-07 16:54" />
<int key="CaseID" value="4" />
</event>
</trace>
<trace>
<event>
<string key="Activity" value="manufacture B" />
<float key="StartTimestamp" value="43.0" />
<int key="CaseID" value="3" />
</event>
</trace>
<trace>
<event>
<string key="Activity" value="pack A" />
<float key="StartTimestamp" value="47.0" />
<int key="EndTimestamp" value="64" />
<string key="StartTimestamp" value="2023-07-07 17:10" />
<string key="EndTimestamp" value=" " />
<int key="CaseID" value="1" />
</event>
</trace>
<trace>
<event>
<string key="Activity" value="pack A" />
<float key="StartTimestamp" value="48.0" />
<int key="EndTimestamp" value="64" />
<string key="Activity" value="manufacture A" />
<string key="StartTimestamp" value="2023-07-07 17:14" />
<string key="EndTimestamp" value=" " />
<int key="CaseID" value="0" />
</event>
</trace>
<trace>
<event>
<string key="Activity" value="place order" />
<float key="StartTimestamp" value="52.0" />
<int key="EndTimestamp" value="54" />
<int key="CaseID" value="6" />
</event>
</trace>
<trace>
<event>
<string key="Activity" value="manufacture A" />
<float key="StartTimestamp" value="54.0" />
<int key="CaseID" value="4" />
<string key="StartTimestamp" value="2023-07-07 17:18" />
<string key="EndTimestamp" value="2023-07-07 16:43" />
<int key="CaseID" value="5" />
</event>
</trace>
<trace>
<event>
<string key="Activity" value="arrange standard order" />
<float key="StartTimestamp" value="54.0" />
<int key="EndTimestamp" value="64" />
<int key="CaseID" value="6" />
</event>
</trace>
<trace>
<event>
<string key="Activity" value="manufacture B" />
<float key="StartTimestamp" value="59.0" />
<string key="StartTimestamp" value="2023-07-07 17:20" />
<string key="EndTimestamp" value="2023-07-07 16:51" />
<int key="CaseID" value="5" />
</event>
</trace>
<trace>
<event>
<string key="Activity" value="attempt delivery B" />
<float key="StartTimestamp" value="64.0" />
<int key="CaseID" value="1" />
</event>
</trace>
<trace>
<event>
<string key="Activity" value="attempt delivery B" />
<float key="StartTimestamp" value="64.0" />
<int key="CaseID" value="0" />
</event>
</trace>
<trace>
<event>
<string key="Activity" value="pick from stock A" />
<float key="StartTimestamp" value="64.0" />
<int key="EndTimestamp" value="77" />
<int key="CaseID" value="6" />
</event>
</trace>
<trace>
<event>
<string key="Activity" value="place order" />
<float key="StartTimestamp" value="66.0" />
<int key="EndTimestamp" value="68" />
<int key="CaseID" value="7" />
<string key="Activity" value="pick from stock C" />
<string key="StartTimestamp" value="2023-07-07 17:21" />
<string key="EndTimestamp" value=" " />
<int key="CaseID" value="4" />
</event>
</trace>
<trace>
<event>
<string key="Activity" value="arrange custom order" />
<float key="StartTimestamp" value="68.0" />
<int key="EndTimestamp" value="89" />
<int key="CaseID" value="7" />
<string key="Activity" value="manufacture B" />
<string key="StartTimestamp" value="2023-07-07 17:25" />
<string key="EndTimestamp" value=" " />
<int key="CaseID" value="3" />
</event>
</trace>
<trace>
<event>
<string key="Activity" value="place order" />
<float key="StartTimestamp" value="77.0" />
<int key="EndTimestamp" value="79" />
<int key="CaseID" value="8" />
</event>
</trace>
<trace>
<event>
<string key="Activity" value="pack B" />
<float key="StartTimestamp" value="79.0" />
<int key="EndTimestamp" value="98" />
<string key="StartTimestamp" value="2023-07-07 17:30" />
<string key="EndTimestamp" value="2023-07-07 16:43" />
<int key="CaseID" value="6" />
</event>
</trace>
<trace>
<event>
<string key="Activity" value="arrange custom order" />
<float key="StartTimestamp" value="79.0" />
<int key="EndTimestamp" value="99" />
<int key="CaseID" value="8" />
</event>
</trace>
<trace>
<event>
<string key="Activity" value="place order" />
<float key="StartTimestamp" value="89.0" />
<int key="EndTimestamp" value="91" />
<int key="CaseID" value="9" />
</event>
</trace>
<trace>
<event>
<string key="Activity" value="manufacture B" />
<float key="StartTimestamp" value="91.0" />
<int key="CaseID" value="7" />
<string key="Activity" value="pick from stock A" />
<string key="StartTimestamp" value="2023-07-07 17:32" />
<string key="EndTimestamp" value="2023-07-07 16:57" />
<int key="CaseID" value="5" />
</event>
</trace>
<trace>
<event>
<string key="Activity" value="arrange custom order" />
<float key="StartTimestamp" value="91.0" />
<int key="CaseID" value="9" />
</event>
</trace>
<trace>
<event>
<string key="Activity" value="attempt delivery A" />
<float key="StartTimestamp" value="98.0" />
<string key="StartTimestamp" value="2023-07-07 17:32" />
<string key="EndTimestamp" value=" " />
<int key="CaseID" value="6" />
</event>
</trace>
<trace>
<event>
<string key="Activity" value="manufacture A" />
<float key="StartTimestamp" value="99.0" />
<int key="CaseID" value="8" />
</event>
</trace>
<trace>
<event>
<string key="Activity" value="place order" />
<float key="StartTimestamp" value="104.0" />
<int key="EndTimestamp" value="106" />
<int key="CaseID" value="10" />
</event>
</trace>
<trace>
<event>
<string key="Activity" value="arrange custom order" />
<float key="StartTimestamp" value="106.0" />
<int key="CaseID" value="10" />
<string key="StartTimestamp" value="2023-07-07 17:41" />
<string key="EndTimestamp" value="2023-07-07 16:43" />
<int key="CaseID" value="7" />
</event>
</trace>
<trace>
<event>
<string key="Activity" value="place order" />
<float key="StartTimestamp" value="115.0" />
<int key="EndTimestamp" value="117" />
<int key="CaseID" value="11" />
<string key="Activity" value="arrange standard order" />
<string key="StartTimestamp" value="2023-07-07 17:43" />
<string key="EndTimestamp" value=" " />
<int key="CaseID" value="7" />
</event>
</trace>
<trace>
<event>
<string key="Activity" value="arrange standard order" />
<float key="StartTimestamp" value="117.0" />
<int key="CaseID" value="11" />
<string key="Activity" value="pack C" />
<string key="StartTimestamp" value="2023-07-07 17:48" />
<string key="EndTimestamp" value=" " />
<int key="CaseID" value="5" />
</event>
</trace>
</log>
......@@ -62,7 +62,6 @@ def upload_file():
flash('No files selected! Please select a file!')
return redirect(url_for('index'))
print(uploaded_file.filename)
return redirect(url_for('case_id', filename = uploaded_file.filename))
"""
......
Frontend/static/net.png

51.9 KiB | W: | H:

Frontend/static/net.png

51.4 KiB | W: | H:

Frontend/static/net.png
Frontend/static/net.png
Frontend/static/net.png
Frontend/static/net.png
  • 2-up
  • Swipe
  • Onion skin
Frontend/static/preview_net.png

51.8 KiB | W: | H:

Frontend/static/preview_net.png

46.4 KiB | W: | H:

Frontend/static/preview_net.png
Frontend/static/preview_net.png
Frontend/static/preview_net.png
Frontend/static/preview_net.png
  • 2-up
  • Swipe
  • Onion skin
CaseID,Activity,StartTimestamp,EndTimestamp
0,place order,2023-07-07 16:41,2023-07-07 16:43
1,place order,2023-07-07 16:43,2023-07-07 16:43
2,place order,2023-07-07 16:45,2023-07-07 16:43
0,arrange custom order,2023-07-07 16:47,2023-07-07 17:02
1,arrange custom order,2023-07-07 16:47,2023-07-07 17:03
2,arrange custom order,2023-07-07 16:47,2023-07-07 17:04
3,place order,2023-07-07 16:54,2023-07-07 16:43
3,arrange custom order,2023-07-07 16:56,2023-07-07 17:11
4,place order,2023-07-07 17:07,2023-07-07 16:43
0,manufacture B,2023-07-07 17:09,
1,manufacture B,2023-07-07 17:09,
4,arrange custom order,2023-07-07 17:09,2023-07-07 17:11
2,manufacture B,2023-07-07 17:10,
5,place order,2023-07-07 17:20,2023-07-07 16:43
5,arrange custom order,2023-07-07 17:22,2023-07-07 17:01
3,manufacture B,2023-07-07 17:26,
6,place order,2023-07-07 17:34,2023-07-07 16:43
6,arrange custom order,2023-07-07 17:36,
4,manufacture B,2023-07-07 17:39,
5,manufacture B,2023-07-07 17:42,
7,place order,2023-07-07 17:47,
CaseID,Activity,StartTimestamp,EndTimestamp
0,place order,2023-07-07 17:28,2023-07-07 17:30
1,place order,2023-07-07 17:30,2023-07-07 17:30
2,place order,2023-07-07 17:32,2023-07-07 17:30
0,arrange custom order,2023-07-07 17:34,
1,arrange custom order,2023-07-07 17:34,
2,arrange custom order,2023-07-07 17:34,
3,place order,2023-07-07 17:38,2023-07-07 17:30
3,arrange custom order,2023-07-07 17:40,
No preview for this file type
No preview for this file type
......@@ -24,12 +24,13 @@ from pm4py.objects.log.obj import Event
from pm4py.objects.log.exporter.xes import exporter as xes_exporter
from pm4py.objects.log.importer.xes import importer as xes_importer
import os
import datetime
import simplesimmodel as model
from businessprocess import BusinessProcess
def add_start_event(process, event_id, case_id, activity, start_timestamp):
def add_start_event(process, event_id, case_id, activity, start):
"""Add the start of an event to the event log of a process.
Parameters
......@@ -40,30 +41,35 @@ def add_start_event(process, event_id, case_id, activity, start_timestamp):
the unique case-id of a case
activity : str
the name of the activity
start_timestamp : float
start : float
the relative start time of the event
"""
start_timestamp = current_time + datetime.timedelta(minutes = start)
process.event_log.append(event_id)
process.event_log[event_id] = {
'CaseID': case_id,
'Activity': activity,
'StartTimestamp': float(start_timestamp),
'EndTimestamp': None
'StartTimestamp': start_timestamp.strftime('%Y-%m-%d %H:%M'),
'EndTimestamp': " "
}
process.event_counter += 1
def add_end_event(process, event_id, end_timestamp):
def add_end_event(process, event_id, duration):
"""Add the end of an event to the event log of a process.
Parameters
----------
event_id : int
the unique id of the event
end_timestamp : float
the relative end time of the event
duartion : float
the complete duration of the event
"""
event = process.event_log[event_id]
event['EndTimestamp'] = end_timestamp
end_timestamp = current_time + datetime.timedelta(minutes = duration)
event['EndTimestamp'] = end_timestamp.strftime('%Y-%m-%d %H:%M')
def export_to_csv(process, file_path):
"""Export the event log of a process simulation to .csv.
......@@ -134,9 +140,7 @@ def convert_to_dataframe(name):
# file_path = r"Frontend/upload/" + name #docker
file_path = r"upload/" + name
print(name)
file_extension = os.path.splitext(file_path)[1].lower()
print(file_extension)
if file_extension == '.csv':
event_log_df = pd.read_csv(file_path)
......@@ -154,6 +158,7 @@ def convert_to_dataframe(name):
event_log_df = pd.DataFrame(event_data)
else:
print(f"Unsupported file type: {file_extension}")
return None
# print(event_log_df)
return event_log_df
......@@ -193,12 +198,24 @@ def format_check(name):
if activity not in allowed_activities:
return False
res = True
start = event['StartTimestamp']
if not isinstance(start, float):
print(start)
try:
bool(datetime.datetime.strptime(start, '%Y-%m-%d %H:%M'))
except ValueError:
res = False
if not res and not (start == " " or start == None):
return False
end = event['EndTimestamp']
if not isinstance(end, float):
print(end)
try:
bool(datetime.datetime.strptime(end, '%Y-%m-%d %H:%M'))
except ValueError:
res = False
if not res and not (end == " " or end == None):
return False
return True
......@@ -404,6 +421,8 @@ def generate_event_log(time):
env = simpy.Environment()
business_process = BusinessProcess(env, ressources)
business_process.event_log_flag = True
global current_time
current_time = datetime.datetime.now() - datetime.timedelta(minutes = time)
env.process(model.run_process(env, business_process))
env.run(until = time)
# export to both formats
......
......@@ -128,12 +128,14 @@ def execute_case(env, case, process):
# if the event_log_flag is set add the event to the log
if process.event_log_flag:
event_counter = process.event_counter
log.add_start_event(process, event_counter, case, "place order", env.now)
start = env.now
log.add_start_event(process, event_counter, case, "place order", start)
yield env.process(process.place_order()) # do the activity
if process.event_log_flag:
log.add_end_event(process, event_counter, env.now)
duration = env.now - start
log.add_end_event(process, event_counter, duration)
# if the last action was made from the agent set the process flag to be able to return to the environment's step function
......@@ -159,10 +161,12 @@ def execute_case(env, case, process):
yield request
if process.event_log_flag:
event_counter = process.event_counter
start = env.now
log.add_start_event(process, event_counter, case, "arrange standard order", env.now)
yield env.process(process.arrange_standard_order())
if process.event_log_flag:
log.add_end_event(process, event_counter, env.now)
duration = env.now - start
log.add_end_event(process, event_counter, duration)
if case_obj.agent:
process.flag = False
with process.system.request() as request:
......@@ -176,10 +180,12 @@ def execute_case(env, case, process):
yield request
if process.event_log_flag:
event_counter = process.event_counter
start = env.now
log.add_start_event(process, event_counter, case, "arrange custom order", env.now)
yield env.process(process.arrange_custom_order())
if process.event_log_flag:
log.add_end_event(process, event_counter, env.now)
duration = env.now - start
log.add_end_event(process, event_counter, duration)
if case_obj.agent:
process.flag = False
with process.system.request() as request:
......@@ -206,10 +212,12 @@ def execute_case(env, case, process):
yield request
if process.event_log_flag:
event_counter = process.event_counter
start = env.now
log.add_start_event(process, event_counter, case, "pick from stock A", env.now)
yield env.process(process.pick_from_stock_a())
if process.event_log_flag:
log.add_end_event(process, event_counter, env.now)
duration = env.now - start
log.add_end_event(process, event_counter, duration)
if case_obj.agent:
process.flag = False
with process.system.request() as request:
......@@ -221,10 +229,12 @@ def execute_case(env, case, process):
yield request
if process.event_log_flag:
event_counter = process.event_counter
start = env.now
log.add_start_event(process, event_counter, case, "pick from stock B", env.now)
yield env.process(process.pick_from_stock_b())
if process.event_log_flag:
log.add_end_event(process, event_counter, env.now)
duration = env.now - start
log.add_end_event(process, event_counter, duration)
if case_obj.agent:
process.flag = False
with process.system.request() as request:
......@@ -236,10 +246,12 @@ def execute_case(env, case, process):
yield request
if process.event_log_flag:
event_counter = process.event_counter
start = env.now
log.add_start_event(process, event_counter, case, "pick from stock C", env.now)
yield env.process(process.pick_from_stock_c())
if process.event_log_flag:
log.add_end_event(process, event_counter, env.now)
duration = env.now - start
log.add_end_event(process, event_counter, duration)
if case_obj.agent:
process.flag = False
with process.system.request() as request:
......@@ -251,10 +263,12 @@ def execute_case(env, case, process):
yield request
if process.event_log_flag:
event_counter = process.event_counter
start = env.now
log.add_start_event(process, event_counter, case, "manufacture A", env.now)
yield env.process(process.manufacture_a())
if process.event_log_flag:
log.add_end_event(process, event_counter, env.now)
duration = env.now - start
log.add_end_event(process, event_counter, duration)
if case_obj.agent:
process.flag = False
with process.system.request() as request:
......@@ -266,10 +280,12 @@ def execute_case(env, case, process):
yield request
if process.event_log_flag:
event_counter = process.event_counter
start = env.now
log.add_start_event(process, event_counter, case, "manufacture B", env.now)
yield env.process(process.manufacture_b())
if process.event_log_flag:
log.add_end_event(process, event_counter, env.now)
duration = env.now - start
log.add_end_event(process, event_counter, duration)
if case_obj.agent:
process.flag = False
with process.system.request() as request:
......@@ -287,10 +303,12 @@ def execute_case(env, case, process):
yield request
if process.event_log_flag:
event_counter = process.event_counter
start = env.now
log.add_start_event(process, event_counter, case, "pack A", env.now)
yield env.process(process.pack_a())
if process.event_log_flag:
log.add_end_event(process, event_counter, env.now)
duration = env.now - start
log.add_end_event(process, event_counter, duration)
if case_obj.agent:
process.flag = False
with process.system.request() as request:
......@@ -302,10 +320,11 @@ def execute_case(env, case, process):
yield request
if process.event_log_flag:
event_counter = process.event_counter
start = env.now
log.add_start_event(process, event_counter, case, "pack B", env.now)
yield env.process(process.pack_b())
if process.event_log_flag:
log.add_end_event(process, event_counter, env.now)
log.add_end_event(process, event_counter, duration)
if case_obj.agent:
process.flag = False
......@@ -318,10 +337,12 @@ def execute_case(env, case, process):
yield request
if process.event_log_flag:
event_counter = process.event_counter
start = env.now
log.add_start_event(process, event_counter, case, "pack C", env.now)
yield env.process(process.pack_c())
if process.event_log_flag:
log.add_end_event(process, event_counter, env.now)
duration = env.now - start
log.add_end_event(process, event_counter, duration)
if case_obj.agent:
process.flag = False
with process.system.request() as request:
......@@ -338,10 +359,12 @@ def execute_case(env, case, process):
yield request
if process.event_log_flag:
event_counter = process.event_counter
start = env.now
log.add_start_event(process, event_counter, case, "attempt delivery A", env.now)
yield env.process(process.attempt_delivery_a())
if process.event_log_flag:
log.add_end_event(process, event_counter, env.now)
duration = env.now - start
log.add_end_event(process, event_counter, duration)
if case_obj.agent:
process.flag = False
with process.system.request() as request:
......@@ -353,10 +376,12 @@ def execute_case(env, case, process):
yield request
if process.event_log_flag:
event_counter = process.event_counter
start = env.now
log.add_start_event(process, event_counter, case, "attempt delivery B", env.now)
yield env.process(process.attempt_delivery_b())
if process.event_log_flag:
log.add_end_event(process, event_counter, env.now)
duration = env.now - start
log.add_end_event(process, event_counter, duration)
if case_obj.agent:
process.flag = False
with process.system.request() as request:
......@@ -368,10 +393,12 @@ def execute_case(env, case, process):
yield request
if process.event_log_flag:
event_counter = process.event_counter
start = env.now
log.add_start_event(process, event_counter, case, "attempt delivery C", env.now)
yield env.process(process.attempt_delivery_c())
if process.event_log_flag:
log.add_end_event(process, event_counter, env.now)
duration = env.now - start
log.add_end_event(process, event_counter, duration)
if case_obj.agent:
process.flag = False
with process.system.request() as request:
......@@ -387,10 +414,12 @@ def execute_case(env, case, process):
yield request
if process.event_log_flag:
event_counter = process.event_counter
start = env.now
log.add_start_event(process, event_counter, case, "order completed", env.now)
yield env.process(process.order_completed())
if process.event_log_flag:
log.add_end_event(process, event_counter, env.now)
duration = env.now - start
log.add_end_event(process, event_counter, duration)
# remove the case from the active cases since it's now done
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment