Browse Source

Fix operations

Yentl Van Tendeloo 8 years ago
parent
commit
7edeaf4218
4 changed files with 166 additions and 52 deletions
  1. 2 2
      unit/test_all.py
  2. 41 18
      wrappers/classes/modelverse.xml
  3. 70 6
      wrappers/modelverse.py
  4. 53 26
      wrappers/modelverse_SCCD.py

+ 2 - 2
unit/test_all.py

@@ -215,7 +215,7 @@ class TestModelverse(unittest.TestCase):
         thrd.daemon = True
         thrd.start()
 
-        assert transformation_execute_MT("test/print_pn", {"PetriNet": "test/my_pn"}, {}, (ctrl, "inp", "outp")) == None
+        assert transformation_execute_MT("test/print_pn", {"PetriNet": "test/my_pn"}, {}, (ctrl, "inp", "outp")) == True
         thrd.join()
         assert set(log) == set(['"p1" --> 1',
                                 '"p2" --> 2',
@@ -231,7 +231,7 @@ class TestModelverse(unittest.TestCase):
         thrd.daemon = True
         thrd.start()
 
-        assert transformation_execute_MT("test/print_pn", {"PetriNet": "test/my_pn"}, {}, (ctrl, "inp", "outp")) == None
+        assert transformation_execute_MT("test/print_pn", {"PetriNet": "test/my_pn"}, {}, (ctrl, "inp", "outp")) == True
         thrd.join()
         assert set(log) == set(['"p1" --> 0',
                                 '"p2" --> 1',

+ 41 - 18
wrappers/classes/modelverse.xml

@@ -79,6 +79,20 @@
         </body>
     </method>
 
+    <method name="expect_input">
+        <parameter name="context"/>
+        <parameter name="expected"/>
+        <body>
+            #print("Expected action: " + str(expected))
+            #print("Context: " + str(context))
+            #print("Actions: " + str(self.actions[context]))
+            if isinstance(expected, list):
+                return self.inputs[context] and self.inputs[context][0]["name"] in expected
+            else:
+                return self.inputs[context] and self.inputs[context][0]["name"] == expected
+        </body>
+    </method>
+
     <constructor>
         <body>
             self.actions = {None: []}
@@ -86,6 +100,7 @@
             self.http_clients = []
             self.context = None
             self.registered_metamodel = {}
+            self.inputs = {}
         </body>
     </constructor>
 
@@ -598,12 +613,12 @@
 
                                 <transition cond="self.expect_response('Success: ready for AL execution')" target="../dialog">
                                     <script>
-                                        self.context = str(uuid.uuid4())
-                                        self.actions[self.context] = []
+                                        self.input_context = str(uuid.uuid4())
+                                        self.inputs[self.input_context] = []
                                     </script>
 
                                     <raise event="result">
-                                        <parameter expr="self.context"/>
+                                        <parameter expr="self.input_context"/>
                                     </raise>
                                 </transition>
                             </state>
@@ -611,19 +626,19 @@
                             <state id="dialog">
                                 <transition cond="self.expect_response('Success', pop=False) or self.expect_response('Failure', pop=False)" target="../../../../wait_for_action/history">
                                     <raise event="result">
-                                        <parameter expr="self.responses.pop(0)"/>
+                                        <parameter expr="True if self.responses.pop(0) == 'Success' else False"/>
                                     </raise>
                                 </transition>
 
                                 <transition cond="not (self.expect_response('Success', pop=False) or self.expect_response('Failure', pop=False)) and self.expect_response_partial('', pop=False)" target=".">
-                                    <raise event="result">
+                                    <raise event="data_output">
                                         <parameter expr="self.responses.pop(0)"/>
                                     </raise>
                                 </transition>
 
-                                <transition cond="self.expect_action(self.context, 'data_input')" target=".">
+                                <transition cond="self.expect_input(self.input_context, 'data_input')" target=".">
                                     <raise event="request">
-                                        <parameter expr="self.actions[self.context].pop(0)['parameters']"/>
+                                        <parameter expr="self.inputs[self.input_context].pop(0)['parameters']"/>
                                     </raise>
                                 </transition>
                             </state>
@@ -639,12 +654,12 @@
 
                                 <transition cond="self.expect_response('Success: ready for MT execution')" target="../dialog">
                                     <script>
-                                        self.context = str(uuid.uuid4())
-                                        self.actions[self.context] = []
+                                        self.input_context = str(uuid.uuid4())
+                                        self.inputs[self.input_context] = []
                                     </script>
 
                                     <raise event="result">
-                                        <parameter expr="self.context"/>
+                                        <parameter expr="self.input_context"/>
                                     </raise>
                                 </transition>
                             </state>
@@ -652,19 +667,19 @@
                             <state id="dialog">
                                 <transition cond="self.expect_response('Success', pop=False) or self.expect_response('Failure', pop=False)" target="../../../../wait_for_action/history">
                                     <raise event="result">
-                                        <parameter expr="self.responses.pop(0)"/>
+                                        <parameter expr="True if self.responses.pop(0) == 'Success' else False"/>
                                     </raise>
                                 </transition>
 
                                 <transition cond="not (self.expect_response('Success', pop=False) or self.expect_response('Failure', pop=False)) and self.expect_response_partial('', pop=False)" target=".">
-                                    <raise event="result">
+                                    <raise event="data_output">
                                         <parameter expr="self.responses.pop(0)"/>
                                     </raise>
                                 </transition>
 
-                                <transition cond="self.expect_action(self.context, 'data_input')" target=".">
+                                <transition cond="self.expect_input(self.input_context, 'data_input')" target=".">
                                     <raise event="request">
-                                        <parameter expr="self.actions[self.context].pop(0)['parameters']"/>
+                                        <parameter expr="self.inputs[self.input_context].pop(0)['parameters']"/>
                                     </raise>
                                 </transition>
                             </state>
@@ -692,10 +707,11 @@
                             </state>
 
                             <state id="edit_model">
+                                <transition cond="self.expect_response_partial('Please perform manual operation ', pop=True)" target="."/>
                                 <transition cond="self.expect_response('Model loaded, ready for commands!')" target="../../../../going_scripted"/>
                                 <transition cond="self.expect_response('Success')" target="../../../../wait_for_action/megamodelling">
                                     <raise event="result">
-                                        <parameter expr="None"/>
+                                        <parameter expr="True"/>
                                     </raise>
                                 </transition>
                             </state>
@@ -1080,7 +1096,7 @@
                     <state id="attr_assign">
                         <onentry>
                             <raise event="request">
-                                <parameter expr="['attr_assign', self.parameters[1], self.parameters[2], self.parameters[3]]"/>
+                                <parameter expr="['attr_add', self.parameters[1], self.parameters[2], self.parameters[3]]"/>
                             </raise>
                         </onentry>
 
@@ -1094,7 +1110,7 @@
                     <state id="attr_assign_code">
                         <onentry>
                             <raise event="request">
-                                <parameter expr="['attr_assign_code', self.parameters[1], self.parameters[2], self.parameters[3]]"/>
+                                <parameter expr="['attr_add_code', self.parameters[1], self.parameters[2], self.parameters[3]]"/>
                             </raise>
                         </onentry>
 
@@ -1717,6 +1733,13 @@
                         </raise>
                     </transition>
 
+                    <transition event="data_output" target=".">
+                        <parameter name="parameters"/>
+                        <raise scope="output" event="data_output" port="action_out">
+                            <parameter expr="parameters"/>
+                        </raise>
+                    </transition>
+
                     <transition event="exception" target=".">
                         <parameter name="parameters"/>
                         <raise scope="output" event="exception" port="action_out">
@@ -1725,7 +1748,7 @@
                         </raise>
                     </transition>
 
-                    <transition port="input_in" event="input" target=".">
+                    <transition port="action_in" event="data_input" target=".">
                         <parameter name="value"/>
                         <parameter name="context_ID"/>
                         <script>

+ 70 - 6
wrappers/modelverse.py

@@ -1,6 +1,7 @@
 from sccd.runtime.statecharts_core import Event
 import sccd.runtime.socket2event as socket2event
 import modelverse_SCCD
+import time
 
 controller = modelverse_SCCD.Controller()
 socket2event.boot_translation_service(controller)
@@ -153,15 +154,78 @@ def transformation_add_MANUAL(source_metamodels, target_metamodels, operation_na
     INPUT("exit", context, [])
     return OUTPUT()
 
-def transformation_execute_MT(operation_name, input_models_dict, output_models_dict):
-    #NOTE callbacks as statechart not supported (yet?)!
+def transformation_execute_MT(operation_name, input_models_dict, output_models_dict, statechart=None):
+    if statechart is not None:
+        port_sc = statechart[0].addOutputListener(statechart[2])
+
     INPUT("transformation_execute_MT", None, [operation_name, input_models_dict, output_models_dict])
-    return OUTPUT()
+    context = OUTPUT()
+    if statechart is not None:
+        while 1:
+            empty = True
+
+            # Fetch output from the MV
+            response = responses.fetch(0)
+            if response is not None:
+                print("Got response from MV: " + str(response))
+                if response.name == "data_output":
+                    # Got output of MV, so forward to SCCD
+                    statechart[0].addInput(Event("input", statechart[1], response.parameters))
+                elif response.name == "result":
+                    # Finished execution, so continue and return result
+                    statechart[0].addInput(Event("terminate", statechart[1], []))
+                    return response.parameters[1]
+                empty = False
+
+            # Fetch output from the SC
+            response = port_sc.fetch(0)
+            if response is not None:
+                print("Got response from SC: " + str(response))
+                if response.name == "output":
+                    controller.addInput(Event("data_input", "action_in", [response.parameters, context]))
+                empty = False
+
+            if empty:
+                time.sleep(0.01)
+    else:
+        return OUTPUT()
+
+def transformation_execute_AL(operation_name, input_models_dict, output_models_dict, statechart=None):
+    if statechart is not None:
+        port_sc = statechart[0].addOutputListener(statechart[2])
 
-def transformation_execute_AL(operation_name, input_models_dict, output_models_dict):
-    #NOTE callbacks as statechart not supported (yet?)!
     INPUT("transformation_execute_AL", None, [operation_name, input_models_dict, output_models_dict])
-    return OUTPUT()
+
+    context = OUTPUT()
+    if statechart is not None:
+        while 1:
+            empty = True
+
+            # Fetch output from the MV
+            response = responses.fetch(0)
+            if response is not None:
+                print("Got response from MV: " + str(response))
+                if response.name == "data_output":
+                    # Got output of MV, so forward to SCCD
+                    statechart[0].addInput(Event("input", statechart[1], response.parameters))
+                elif response.name == "result":
+                    # Finished execution, so continue and return result
+                    statechart[0].addInput(Event("terminate", statechart[1], []))
+                    return response.parameters[1]
+                empty = False
+
+            # Fetch output from the SC
+            response = port_sc.fetch(0)
+            if response is not None:
+                print("Got response from SC: " + str(response))
+                if response.name == "output":
+                    controller.addInput(Event("data_input", "action_in", [response.parameters, context]))
+                empty = False
+
+            if empty:
+                time.sleep(0.01)
+    else:
+        return OUTPUT()
 
 def transformation_execute_MANUAL(operation_name, input_models_dict, output_models_dict, callback=None):
     INPUT("transformation_execute_MANUAL", None, [operation_name, input_models_dict, output_models_dict])

+ 53 - 26
wrappers/modelverse_SCCD.py

@@ -1,7 +1,7 @@
 """
 Generated by Statechart compiler by Glenn De Jonghe, Joeri Exelmans, Simon Van Mierlo, and Yentl Van Tendeloo (for the inspiration)
 
-Date:   Tue Sep  5 15:10:46 2017
+Date:   Tue Sep  5 16:28:07 2017
 
 Model author: Yentl Van Tendeloo
 Model name:   MvK Server
@@ -43,6 +43,7 @@ class Modelverse(RuntimeClassBase):
         self.http_clients = []
         self.context = None
         self.registered_metamodel = {}
+        self.inputs = {}
     
     def user_defined_destructor(self):
         pass
@@ -111,6 +112,17 @@ class Modelverse(RuntimeClassBase):
             return self.actions[context] and self.actions[context][0]["name"] == expected
     
     
+    # user defined method
+    def expect_input(self, context, expected):
+        #print("Expected action: " + str(expected))
+        #print("Context: " + str(context))
+        #print("Actions: " + str(self.actions[context]))
+        if isinstance(expected, list):
+            return self.inputs[context] and self.inputs[context][0]["name"] in expected
+        else:
+            return self.inputs[context] and self.inputs[context][0]["name"] == expected
+    
+    
     # builds Statechart structure
     def build_statechart_structure(self):
         
@@ -928,15 +940,19 @@ class Modelverse(RuntimeClassBase):
         self.states["/initialized/behaviour/operations/store_on_scripted/transformation_execute_MANUAL/send_metadata"].addTransition(_initialized_behaviour_operations_store_on_scripted_transformation_execute_MANUAL_send_metadata_0)
         
         # transition /initialized/behaviour/operations/store_on_scripted/transformation_execute_MANUAL/edit_model
-        _initialized_behaviour_operations_store_on_scripted_transformation_execute_MANUAL_edit_model_0 = Transition(self, self.states["/initialized/behaviour/operations/store_on_scripted/transformation_execute_MANUAL/edit_model"], [self.states["/initialized/behaviour/going_scripted"]])
+        _initialized_behaviour_operations_store_on_scripted_transformation_execute_MANUAL_edit_model_0 = Transition(self, self.states["/initialized/behaviour/operations/store_on_scripted/transformation_execute_MANUAL/edit_model"], [self.states["/initialized/behaviour/operations/store_on_scripted/transformation_execute_MANUAL/edit_model"]])
         _initialized_behaviour_operations_store_on_scripted_transformation_execute_MANUAL_edit_model_0.setTrigger(None)
         _initialized_behaviour_operations_store_on_scripted_transformation_execute_MANUAL_edit_model_0.setGuard(self._initialized_behaviour_operations_store_on_scripted_transformation_execute_MANUAL_edit_model_0_guard)
         self.states["/initialized/behaviour/operations/store_on_scripted/transformation_execute_MANUAL/edit_model"].addTransition(_initialized_behaviour_operations_store_on_scripted_transformation_execute_MANUAL_edit_model_0)
-        _initialized_behaviour_operations_store_on_scripted_transformation_execute_MANUAL_edit_model_1 = Transition(self, self.states["/initialized/behaviour/operations/store_on_scripted/transformation_execute_MANUAL/edit_model"], [self.states["/initialized/behaviour/wait_for_action/megamodelling"]])
-        _initialized_behaviour_operations_store_on_scripted_transformation_execute_MANUAL_edit_model_1.setAction(self._initialized_behaviour_operations_store_on_scripted_transformation_execute_MANUAL_edit_model_1_exec)
+        _initialized_behaviour_operations_store_on_scripted_transformation_execute_MANUAL_edit_model_1 = Transition(self, self.states["/initialized/behaviour/operations/store_on_scripted/transformation_execute_MANUAL/edit_model"], [self.states["/initialized/behaviour/going_scripted"]])
         _initialized_behaviour_operations_store_on_scripted_transformation_execute_MANUAL_edit_model_1.setTrigger(None)
         _initialized_behaviour_operations_store_on_scripted_transformation_execute_MANUAL_edit_model_1.setGuard(self._initialized_behaviour_operations_store_on_scripted_transformation_execute_MANUAL_edit_model_1_guard)
         self.states["/initialized/behaviour/operations/store_on_scripted/transformation_execute_MANUAL/edit_model"].addTransition(_initialized_behaviour_operations_store_on_scripted_transformation_execute_MANUAL_edit_model_1)
+        _initialized_behaviour_operations_store_on_scripted_transformation_execute_MANUAL_edit_model_2 = Transition(self, self.states["/initialized/behaviour/operations/store_on_scripted/transformation_execute_MANUAL/edit_model"], [self.states["/initialized/behaviour/wait_for_action/megamodelling"]])
+        _initialized_behaviour_operations_store_on_scripted_transformation_execute_MANUAL_edit_model_2.setAction(self._initialized_behaviour_operations_store_on_scripted_transformation_execute_MANUAL_edit_model_2_exec)
+        _initialized_behaviour_operations_store_on_scripted_transformation_execute_MANUAL_edit_model_2.setTrigger(None)
+        _initialized_behaviour_operations_store_on_scripted_transformation_execute_MANUAL_edit_model_2.setGuard(self._initialized_behaviour_operations_store_on_scripted_transformation_execute_MANUAL_edit_model_2_guard)
+        self.states["/initialized/behaviour/operations/store_on_scripted/transformation_execute_MANUAL/edit_model"].addTransition(_initialized_behaviour_operations_store_on_scripted_transformation_execute_MANUAL_edit_model_2)
         
         # transition /initialized/behaviour/operations/permission_modify
         _initialized_behaviour_operations_permission_modify_0 = Transition(self, self.states["/initialized/behaviour/operations/permission_modify"], [self.states["/initialized/behaviour/wait_for_action/history"]])
@@ -1429,12 +1445,16 @@ class Modelverse(RuntimeClassBase):
         self.states["/initialized/queue/queue"].addTransition(_initialized_queue_queue_1)
         _initialized_queue_queue_2 = Transition(self, self.states["/initialized/queue/queue"], [self.states["/initialized/queue/queue"]])
         _initialized_queue_queue_2.setAction(self._initialized_queue_queue_2_exec)
-        _initialized_queue_queue_2.setTrigger(Event("exception", None))
+        _initialized_queue_queue_2.setTrigger(Event("data_output", None))
         self.states["/initialized/queue/queue"].addTransition(_initialized_queue_queue_2)
         _initialized_queue_queue_3 = Transition(self, self.states["/initialized/queue/queue"], [self.states["/initialized/queue/queue"]])
         _initialized_queue_queue_3.setAction(self._initialized_queue_queue_3_exec)
-        _initialized_queue_queue_3.setTrigger(Event("input", "input_in"))
+        _initialized_queue_queue_3.setTrigger(Event("exception", None))
         self.states["/initialized/queue/queue"].addTransition(_initialized_queue_queue_3)
+        _initialized_queue_queue_4 = Transition(self, self.states["/initialized/queue/queue"], [self.states["/initialized/queue/queue"]])
+        _initialized_queue_queue_4.setAction(self._initialized_queue_queue_4_exec)
+        _initialized_queue_queue_4.setTrigger(Event("data_input", "action_in"))
+        self.states["/initialized/queue/queue"].addTransition(_initialized_queue_queue_4)
         
         # transition /initialized/behaviour/operations
         _initialized_behaviour_operations_0 = Transition(self, self.states["/initialized/behaviour/operations"], [self.states["/initialized/behaviour/wait_for_action/history"]])
@@ -1728,10 +1748,10 @@ class Modelverse(RuntimeClassBase):
         self.raiseInternalEvent(Event("request", None, [['delete_element', self.parameters[1]]]))
     
     def _initialized_behaviour_operations_attr_assign_enter(self):
-        self.raiseInternalEvent(Event("request", None, [['attr_assign', self.parameters[1], self.parameters[2], self.parameters[3]]]))
+        self.raiseInternalEvent(Event("request", None, [['attr_add', self.parameters[1], self.parameters[2], self.parameters[3]]]))
     
     def _initialized_behaviour_operations_attr_assign_code_enter(self):
-        self.raiseInternalEvent(Event("request", None, [['attr_assign_code', self.parameters[1], self.parameters[2], self.parameters[3]]]))
+        self.raiseInternalEvent(Event("request", None, [['attr_add_code', self.parameters[1], self.parameters[2], self.parameters[3]]]))
     
     def _initialized_behaviour_operations_attr_delete_enter(self):
         self.raiseInternalEvent(Event("request", None, [['attr_delete', self.parameters[1], self.parameters[2]]]))
@@ -2123,67 +2143,70 @@ class Modelverse(RuntimeClassBase):
         return self.expect_response('Success')
     
     def _initialized_behaviour_operations_store_on_scripted_transformation_execute_AL_send_operation_0_exec(self, parameters):
-        self.context = str(uuid.uuid4())
-        self.actions[self.context] = []
-        self.raiseInternalEvent(Event("result", None, [self.context]))
+        self.input_context = str(uuid.uuid4())
+        self.inputs[self.input_context] = []
+        self.raiseInternalEvent(Event("result", None, [self.input_context]))
     
     def _initialized_behaviour_operations_store_on_scripted_transformation_execute_AL_send_operation_0_guard(self, parameters):
         return self.expect_response('Success: ready for AL execution')
     
     def _initialized_behaviour_operations_store_on_scripted_transformation_execute_AL_dialog_0_exec(self, parameters):
-        self.raiseInternalEvent(Event("result", None, [self.responses.pop(0)]))
+        self.raiseInternalEvent(Event("result", None, [True if self.responses.pop(0) == 'Success' else False]))
     
     def _initialized_behaviour_operations_store_on_scripted_transformation_execute_AL_dialog_0_guard(self, parameters):
         return self.expect_response('Success', pop=False) or self.expect_response('Failure', pop=False)
     
     def _initialized_behaviour_operations_store_on_scripted_transformation_execute_AL_dialog_1_exec(self, parameters):
-        self.raiseInternalEvent(Event("result", None, [self.responses.pop(0)]))
+        self.raiseInternalEvent(Event("data_output", None, [self.responses.pop(0)]))
     
     def _initialized_behaviour_operations_store_on_scripted_transformation_execute_AL_dialog_1_guard(self, parameters):
         return not (self.expect_response('Success', pop=False) or self.expect_response('Failure', pop=False)) and self.expect_response_partial('', pop=False)
     
     def _initialized_behaviour_operations_store_on_scripted_transformation_execute_AL_dialog_2_exec(self, parameters):
-        self.raiseInternalEvent(Event("request", None, [self.actions[self.context].pop(0)['parameters']]))
+        self.raiseInternalEvent(Event("request", None, [self.inputs[self.input_context].pop(0)['parameters']]))
     
     def _initialized_behaviour_operations_store_on_scripted_transformation_execute_AL_dialog_2_guard(self, parameters):
-        return self.expect_action(self.context, 'data_input')
+        return self.expect_input(self.input_context, 'data_input')
     
     def _initialized_behaviour_operations_store_on_scripted_transformation_execute_MT_send_operation_0_exec(self, parameters):
-        self.context = str(uuid.uuid4())
-        self.actions[self.context] = []
-        self.raiseInternalEvent(Event("result", None, [self.context]))
+        self.input_context = str(uuid.uuid4())
+        self.inputs[self.input_context] = []
+        self.raiseInternalEvent(Event("result", None, [self.input_context]))
     
     def _initialized_behaviour_operations_store_on_scripted_transformation_execute_MT_send_operation_0_guard(self, parameters):
         return self.expect_response('Success: ready for MT execution')
     
     def _initialized_behaviour_operations_store_on_scripted_transformation_execute_MT_dialog_0_exec(self, parameters):
-        self.raiseInternalEvent(Event("result", None, [self.responses.pop(0)]))
+        self.raiseInternalEvent(Event("result", None, [True if self.responses.pop(0) == 'Success' else False]))
     
     def _initialized_behaviour_operations_store_on_scripted_transformation_execute_MT_dialog_0_guard(self, parameters):
         return self.expect_response('Success', pop=False) or self.expect_response('Failure', pop=False)
     
     def _initialized_behaviour_operations_store_on_scripted_transformation_execute_MT_dialog_1_exec(self, parameters):
-        self.raiseInternalEvent(Event("result", None, [self.responses.pop(0)]))
+        self.raiseInternalEvent(Event("data_output", None, [self.responses.pop(0)]))
     
     def _initialized_behaviour_operations_store_on_scripted_transformation_execute_MT_dialog_1_guard(self, parameters):
         return not (self.expect_response('Success', pop=False) or self.expect_response('Failure', pop=False)) and self.expect_response_partial('', pop=False)
     
     def _initialized_behaviour_operations_store_on_scripted_transformation_execute_MT_dialog_2_exec(self, parameters):
-        self.raiseInternalEvent(Event("request", None, [self.actions[self.context].pop(0)['parameters']]))
+        self.raiseInternalEvent(Event("request", None, [self.inputs[self.input_context].pop(0)['parameters']]))
     
     def _initialized_behaviour_operations_store_on_scripted_transformation_execute_MT_dialog_2_guard(self, parameters):
-        return self.expect_action(self.context, 'data_input')
+        return self.expect_input(self.input_context, 'data_input')
     
     def _initialized_behaviour_operations_store_on_scripted_transformation_execute_MANUAL_send_metadata_0_guard(self, parameters):
         return self.expect_response('Success: ready for MANUAL execution')
     
     def _initialized_behaviour_operations_store_on_scripted_transformation_execute_MANUAL_edit_model_0_guard(self, parameters):
+        return self.expect_response_partial('Please perform manual operation ', pop=True)
+    
+    def _initialized_behaviour_operations_store_on_scripted_transformation_execute_MANUAL_edit_model_1_guard(self, parameters):
         return self.expect_response('Model loaded, ready for commands!')
     
-    def _initialized_behaviour_operations_store_on_scripted_transformation_execute_MANUAL_edit_model_1_exec(self, parameters):
-        self.raiseInternalEvent(Event("result", None, [None]))
+    def _initialized_behaviour_operations_store_on_scripted_transformation_execute_MANUAL_edit_model_2_exec(self, parameters):
+        self.raiseInternalEvent(Event("result", None, [True]))
     
-    def _initialized_behaviour_operations_store_on_scripted_transformation_execute_MANUAL_edit_model_1_guard(self, parameters):
+    def _initialized_behaviour_operations_store_on_scripted_transformation_execute_MANUAL_edit_model_2_guard(self, parameters):
         return self.expect_response('Success')
     
     def _initialized_behaviour_operations_permission_modify_0_exec(self, parameters):
@@ -2678,9 +2701,13 @@ class Modelverse(RuntimeClassBase):
     
     def _initialized_queue_queue_2_exec(self, parameters):
         parameters = parameters[0]
-        self.big_step.outputEvent(Event("exception", "action_out", [self.current_ID, parameters]))
+        self.big_step.outputEvent(Event("data_output", "action_out", [parameters]))
     
     def _initialized_queue_queue_3_exec(self, parameters):
+        parameters = parameters[0]
+        self.big_step.outputEvent(Event("exception", "action_out", [self.current_ID, parameters]))
+    
+    def _initialized_queue_queue_4_exec(self, parameters):
         value = parameters[0]
         context_ID = parameters[1]
         self.inputs[context_ID].append(value)