@@ -79,6 +79,7 @@ def __init__(
7979 ProcessTracker is the primary engine for tracking data integration processes.
8080 :param process_name: Name of the process being tracked.
8181 :param process_run_name: Optional name of the process run.
82+ :param process_type: Type of process the process_name is. Optional if process already exists.
8283 :param actor_name: Name of the person or environment runnning the process.
8384 :param tool_name: Name of the tool used to run the process.
8485 :param sources: A single source name or list of source names for the given process. If source_objects is set,
@@ -164,17 +165,15 @@ def __init__(
164165 self .logger .error (error_msg )
165166 raise Exception (error_msg )
166167 else :
167- if process_name is None or process_type is None :
168- error_msg = "process_name and process_type must be set."
168+ if process_name is None is None :
169+ error_msg = "process_name must be set."
169170 self .logger .error (error_msg )
170171 raise Exception (error_msg )
171172
172173 self .actor = self .data_store .get_or_create_item (
173174 model = Actor , actor_name = actor_name
174175 )
175- self .process_type = self .data_store .get_or_create_item (
176- model = ProcessType , process_type_name = process_type
177- )
176+
178177 self .tool = self .data_store .get_or_create_item (
179178 model = Tool , tool_name = tool_name
180179 )
@@ -188,13 +187,27 @@ def __init__(
188187 model = ScheduleFrequency , schedule_frequency_name = schedule_frequency
189188 )
190189
191- self .process = self .data_store .get_or_create_item (
192- model = Process ,
193- process_name = process_name ,
194- process_type_id = self .process_type .process_type_id ,
195- process_tool_id = self .tool .tool_id ,
196- schedule_frequency_id = self .schedule_frequency .schedule_frequency_id ,
197- )
190+ if process_type is None :
191+
192+ self .process = self .data_store .get_or_create_item (
193+ model = Process , process_name = process_name , create = False
194+ )
195+
196+ self .process_type = self .process .process_type
197+
198+ else :
199+
200+ self .process_type = self .data_store .get_or_create_item (
201+ model = ProcessType , process_type_name = process_type
202+ )
203+
204+ self .process = self .data_store .get_or_create_item (
205+ model = Process ,
206+ process_name = process_name ,
207+ process_type_id = self .process_type .process_type_id ,
208+ process_tool_id = self .tool .tool_id ,
209+ schedule_frequency_id = self .schedule_frequency .schedule_frequency_id ,
210+ )
198211
199212 # Dataset types should be loaded before source and target because they are also used there.
200213
0 commit comments