diff --git a/LibOneM2M/OneM2M_Templates.ttcn b/LibOneM2M/OneM2M_Templates.ttcn
index 67f1ee93d3ca833cd720d57dc870ef840c28a824..30be8e0e93583e0a210a254e1a3ab4b54382ef96 100644
--- a/LibOneM2M/OneM2M_Templates.ttcn
+++ b/LibOneM2M/OneM2M_Templates.ttcn
@@ -912,6 +912,21 @@ module OneM2M_Templates {
 				primitiveContent:= {role := m_contentUpdateRole}
 			};
 			
+			/**
+			 * @desc Base UPDATE request primitive for TransactionMgmt resource
+			 */
+			template (value) RequestPrimitive m_updateTransactionMgmtBase modifies m_update:= {
+				requestIdentifier := "m_updateTransactionMgmt",
+				primitiveContent:= {transactionMgmt := m_contentUpdateTransactionMgmt}
+			};
+			
+			/**
+			 * @desc Base UPDATE request primitive for Transaction resource
+			 */
+			template (value) RequestPrimitive m_updateTransactionBase modifies m_update:= {
+				requestIdentifier := "m_updateTransaction",
+				primitiveContent:= {transaction := m_contentUpdateTransaction}
+			};
 			
     	}//end group Update
     	
@@ -1447,6 +1462,35 @@ module OneM2M_Templates {
 				primitiveContent := {pollingChannel := mw_contentCreatePollingChannel}
 			};
 			
+			/**
+			 * @desc Base CREATE request primitive for TransactionMgmt resource's requestPrimitives
+			 */
+			/*template (value) AggregatedRequest m_createAggrRequestPrimitives(in template (value) Operation p_operation) := {
+				// requestIdentifier := testcasename() & "-m_createRequuestPrimitives",
+				request_list[-].from_ := "S0"
+			}*/
+			
+			//const AggregatedRequest[-] c_AggregatedRequest := {request_list := {operation := int1; to_ := "resourceId"; from_ := "AeId"; }};
+			
+			/**
+			 * @desc Base CREATE request primitive for TransactionMgmt resource
+			 */
+			template (value) RequestPrimitive m_createTransactionMgmtBase(in template (value) AggregatedRequest p_aggregatedRequest) modifies m_create := {
+				requestIdentifier := testcasename() & "-m_createTransactionMgmt",
+				resourceType := int50,
+				primitiveContent := {transactionMgmt := m_contentCreateTransactionMgmt(p_aggregatedRequest, "MyTransactionMgmt", -) }
+			};
+			
+			
+			/**
+			 * @desc Base CREATE request primitive for Transaction resource
+			 */
+			template (value) RequestPrimitive m_createTransactionBase(in template (value) RequestPrimitive p_requestPrimitive) modifies m_create := {
+				requestIdentifier := testcasename() & "-m_createTransaction",
+				resourceType := int51,
+				primitiveContent := {transaction := m_contentCreateTransaction(p_requestPrimitive, "MyTransaction", -) }
+			};
+			
 			/**
 			 * @desc Base CREATE request primitive for PrimitveProfile resource
 			 */
@@ -3619,6 +3663,72 @@ module OneM2M_Templates {
 			choice := omit//NP
 		};
 		
+		/**
+		 * @desc Base primitiveContent for CREATE operation for TransactionMgmt resource
+		 * @param p_accessControlPolicyIds ACP IDs for the TransactionMgmt
+		 * @param p_name Resource name
+		 */
+		template (value) TransactionMgmt_optional m_contentCreateTransactionMgmt (	in template (omit) AggregatedRequest p_requestPrimitives,
+																					in template (omit) XSD.String p_name := c_defaultTransactionMgmtResourceName,
+																					in template (omit) TransactionState p_transactionState := int1) := {
+			resourceName := p_name,//O  p_name
+			resourceType := omit,//NP
+			resourceID := omit,//NP
+			parentID := omit,//NP
+			accessControlPolicyIDs := omit,//O
+			creationTime := omit,//NP
+			lastModifiedTime := omit,//NP
+			labels := omit,//O
+			expirationTime := omit,//O
+			dynamicAuthorizationConsultationIDs := omit, //O
+			creator := omit, //O
+			transactionLockTime := omit, //O
+			transactionExecuteTime := omit, //O
+			transactionCommitTime := omit, //O
+			transactionExpirationTime := omit, //O
+			transactionMode := omit, //O
+			transactionLockType := omit, //O
+			transactionControl := omit, //NP
+			transactionState := p_transactionState, //NP p_transactionState
+			transactionMaxRetries := omit, //O
+			transactionMgmtHandling := omit, //O
+			requestPrimitives := p_requestPrimitives, //M p_requestPrimitives
+			responsePrimitives := omit, //NP
+			choice := omit//NP
+		};   
+		
+		
+		/**
+		 * @desc Base primitiveContent for CREATE operation for Transaction resource
+		 * @param p_accessControlPolicyIds ACP IDs for the Transaction
+		 * @param p_name Resource name
+		 */
+		template (value) Transaction_optional m_contentCreateTransaction (	in template (value) RequestPrimitive p_requestPrimitive ,
+																			in template (omit) XSD.String p_name := c_defaultTransactionMgmtResourceName,
+																			in template (omit) TransactionControl p_transactionControl := int2) := {
+			resourceName := p_name,//O  p_name
+			resourceType := omit,//NP
+			resourceID := omit,//NP
+			parentID := omit,//NP
+			accessControlPolicyIDs := omit,//O
+			creationTime := omit,//NP
+			lastModifiedTime := omit,//NP
+			labels := omit,//O
+			expirationTime := omit,//O
+			dynamicAuthorizationConsultationIDs := omit, //O
+			creator := omit, //O
+			transactionID := omit,
+			transactionControl := p_transactionControl,
+			transactionState := omit,
+			transactionLockTime := omit, //O
+			transactionExecuteTime := omit, //O
+			transactionCommitTime := omit, //O
+			transactionLockType := omit, //O
+			requestPrimitive := p_requestPrimitive, //M p_requestPrimitives
+			responsePrimitive := omit, //NP
+			choice := omit//NP
+		};   
+		
 		/**
 		 * @desc Base template primitiveContent for CREATE operation for PrimitveProfile resource
 		 */
@@ -7266,6 +7376,32 @@ module OneM2M_Templates {
                 aggregatedSoftwareStatus := omit,//NP
                 individualSoftwareStatus := omit//NP
 		};
+		template (value) TransactionMgmt_optional m_contentUpdateTransactionMgmt := {
+			resourceName := omit, //NP
+			resourceType := omit, //NP
+			resourceID := omit, //NP
+			parentID := omit, //NP
+			creationTime := omit, //NP
+			lastModifiedTime := omit, //NP
+			labels := omit, //NP
+			accessControlPolicyIDs := omit, //NP
+			expirationTime := omit, //NP
+			dynamicAuthorizationConsultationIDs := omit, //NP
+			creator := omit, //NP
+			transactionExpirationTime := omit, //NP
+			transactionMode := omit, //NP
+			transactionMaxRetries := omit, //NP
+			transactionMgmtHandling := omit, //NP
+			transactionLockTime := omit, //NP
+			transactionExecuteTime := omit, //NP
+			transactionCommitTime := omit, //NP
+			transactionLockType := omit, //NP
+			transactionControl := omit, //NP
+			transactionState := omit, //NP
+			requestPrimitives := omit, //NP
+			responsePrimitives := omit, //NP
+			choice := omit //NP 
+		};
 
         /**
          * @desc Base UPDATE request primitive for SoftwareCampaign resource
@@ -7274,6 +7410,31 @@ module OneM2M_Templates {
             requestIdentifier := "m_updateSoftwareCampaign",
             primitiveContent:= {softwareCampaign := m_contentUpdateSoftwareCampaign}
         };        
+		
+		template (value) Transaction_optional m_contentUpdateTransaction := {
+			resourceName := omit, //NP
+			resourceType := omit, //NP
+			resourceID := omit, //NP
+			parentID := omit, //NP
+			creationTime := omit, //NP
+			lastModifiedTime := omit, //NP
+			labels := omit, //NP
+			accessControlPolicyIDs := omit, //NP
+			expirationTime := omit, //NP
+			dynamicAuthorizationConsultationIDs := omit, //NP
+			creator := omit, //NP
+			transactionID := omit, //NP
+			transactionLockTime := omit, //NP
+			transactionExecuteTime := omit, //NP
+			transactionCommitTime := omit, //NP
+			transactionLockType := omit, //NP
+			transactionControl := omit, //NP
+			transactionState := omit, //NP
+			requestPrimitive := omit, //NP
+			responsePrimitive := omit, //NP
+			choice := omit //NP 
+		};
+		
 	}//end group ContentUpdate
 	
 	group ContentRetrieve {
diff --git a/LibOneM2M/OneM2M_TypesAndValues.ttcn b/LibOneM2M/OneM2M_TypesAndValues.ttcn
index fcda65d54715b24a4d6cc2495fa9c7ea77d4caef..c767fc629c33f23000eec7cb971d6aebc658d2d0 100644
--- a/LibOneM2M/OneM2M_TypesAndValues.ttcn
+++ b/LibOneM2M/OneM2M_TypesAndValues.ttcn
@@ -54,6 +54,8 @@ module OneM2M_TypesAndValues {
 		const XSD.String c_defaultTokenResourceName := "MyTokenResource";
 		const XSD.String c_defaultGenericInterworkingServiceResourceName := "MyGenericInterworkingServiceResource"; //<genericInterworkingService>
 		const XSD.String c_defaultPrimitiveProfileceResourceName := "MyPrimitiveProfileResource";
+		const XSD.String c_defaultTransactionMgmtResourceName := "MyTransactionMgmtResource";
+		const XSD.String c_defaultTransactionResourceName := "MyTransactionResource";
 		const XSD.String c_defaultAe1ResourceName := "MyAe1";
 		const XSD.String c_defaultAe2ResourceName := "MyAe2";
 		const XSD.String c_defaultAcpResourceName := "MyAcp";
@@ -4133,6 +4135,90 @@ group OptionalResourceTypes {
 		variant (choice.choice_list[-]) "untagged";
 	};
 
+		type record TransactionMgmt_optional
+		{
+			ResourceName resourceName optional,
+			ResourceType resourceType optional,
+			XSD.ID resourceID optional,
+			NhURI parentID optional,
+			Timestamp creationTime optional,
+			Timestamp lastModifiedTime optional,
+			Labels labels optional,
+			AcpType accessControlPolicyIDs optional,
+			Timestamp expirationTime optional,
+			ListOfURIs dynamicAuthorizationConsultationIDs optional,
+			XSD.ID creator optional,
+			Timestamp transactionLockTime optional,
+			Timestamp transactionExecuteTime optional,
+			Timestamp transactionCommitTime optional,
+			Timestamp transactionExpirationTime optional,
+			TransactionMode transactionMode optional,
+			TransactionLockType transactionLockType optional,
+			TransactionControl transactionControl optional,
+			TransactionState transactionState optional,
+			XSD.NonNegativeInteger transactionMaxRetries optional,
+			TransactionMgmtHandling transactionMgmtHandling optional,
+			AggregatedRequest requestPrimitives optional,
+			AggregatedResponse responsePrimitives optional,
+			union {
+				record length(1 .. infinity) of ChildResourceRef childResource_list,
+				record length(1 .. infinity) of union {
+					Subscription subscription
+				} choice_list
+			} choice optional
+		}
+		with {
+			variant "name as uncapitalized";
+			variant "element";
+			variant (resourceName) "attribute";
+			variant (choice) "untagged";
+			variant (choice.childResource_list) "untagged";
+			variant (choice.childResource_list[-]) "name as 'childResource'";
+			variant (choice.choice_list) "untagged";
+			variant (choice.choice_list[-]) "untagged";
+		};
+		
+		
+	type record Transaction_optional
+{
+	ResourceName resourceName optional,
+	ResourceType resourceType optional,
+	XSD.ID resourceID optional,
+	NhURI parentID optional,
+	Timestamp creationTime optional,
+	Timestamp lastModifiedTime optional,
+	Labels labels optional,
+	AcpType accessControlPolicyIDs optional,
+	Timestamp expirationTime optional,
+	ListOfURIs dynamicAuthorizationConsultationIDs optional,
+	XSD.ID creator optional,
+	XSD.String transactionID optional,
+	TransactionControl transactionControl optional,
+	TransactionState transactionState optional,
+	Timestamp transactionLockTime optional,
+	Timestamp transactionExecuteTime optional,
+	Timestamp transactionCommitTime optional,
+	TransactionLockType transactionLockType optional,
+	RequestPrimitive requestPrimitive optional,
+	ResponsePrimitive responsePrimitive optional,
+	union {
+		record length(1 .. infinity) of ChildResourceRef childResource_list,
+		record length(1 .. infinity) of union {
+			Subscription subscription
+		} choice_list
+	} choice optional
+}
+with {
+  variant "name as uncapitalized";
+  variant "element";
+  variant (resourceName) "attribute";
+  variant (choice) "untagged";
+  variant (choice.childResource_list) "untagged";
+  variant (choice.childResource_list[-]) "name as 'childResource'";
+  variant (choice.choice_list) "untagged";
+  variant (choice.choice_list[-]) "untagged";
+};
+
 }//end group OptionalResourceTypes
 	
 	
@@ -4724,7 +4810,9 @@ group OtherTypes {
 	GenericInterworkingOperationInstance_optional genericInterworkingOperationInstance,
 	Role_optional role,
 	Token_optional token,
-    SoftwareCampaign_optional softwareCampaign, //added on Release-4    
+    SoftwareCampaign_optional softwareCampaign, //added on Release-4    	
+    TransactionMgmt_optional transactionMgmt,
+	Transaction_optional transaction,
 	//HAIM 
 	DeviceAirConditioner_optional deviceAirConditioner,
 	DeviceClothesWasherDryer_optional deviceClothesWasherDryer,
diff --git a/OneM2M_PermutationFunctions.ttcn b/OneM2M_PermutationFunctions.ttcn
index 6cd543086cc4fc8baa64ed907ad352007c229a08..3b7ba624906a4e01f28eb52218d1a783a26e9c75 100644
--- a/OneM2M_PermutationFunctions.ttcn
+++ b/OneM2M_PermutationFunctions.ttcn
@@ -14767,6 +14767,332 @@ module OneM2M_PermutationFunctions {
 	
 		}//end of group Response_Type
 	
+		group Transaction_Management{
+			
+			group Update{
+				
+				function f_CSE_TMG_UPD_003(ResourceType p_resourceType, template RequestPrimitive p_createRequestPrimitive, template RequestPrimitive p_updateRequestPrimitive) runs on AeSimu system CseSystem {
+    				
+					// Local variables
+					var MsgIn v_response;
+					var RequestPrimitive v_request;
+					var integer v_aeIndex := -1;
+					var integer v_resourceIndex := -1;
+					var integer v_ae2Index := -1;
+					var integer v_parentIndex := -1;
+    										   
+					// Test control
+    				
+					// Test component configuration
+					f_cf01Up(true);
+    				
+					// Test adapter configuration
+    				
+					// Preamble
+					v_aeIndex := f_cse_preamble_registerAe();//c_CRUDNDi);
+							
+					if(p_resourceType != int18) {
+						v_parentIndex := v_aeIndex;//For resources that can have AE resource as parent
+					}
+					
+					v_resourceIndex := f_cse_createResource(p_resourceType, p_createRequestPrimitive, v_parentIndex);
+																
+					// Test Body
+					v_request := f_getUpdateRequestPrimitive(p_resourceType, v_resourceIndex, p_updateRequestPrimitive);
+						
+					f_send(e_mcaPort, m_request(v_request));
+					tc_ac.start;
+					alt {
+						[] mcaPort.receive(mw_response(mw_responsePrimitive(int4123))) -> value v_response {
+							tc_ac.stop;
+							setverdict(pass, __SCOPE__ & ": ILLEGAL_TRANSACTION_STATE_TRANSITION_ATTEMPTED." & int2str(enum2int(p_resourceType)) );
+						}
+						[] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) -> value v_response {
+							tc_ac.stop;
+							setverdict(fail, __SCOPE__ & ": Wrong response status code");
+						}
+						[] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) {
+							tc_ac.stop;
+							setverdict(fail, __SCOPE__ & ": Updating Invalid transactionControl ");
+						}
+						[] tc_ac.timeout {
+							setverdict(fail, __SCOPE__ & ": No answer while updating resource type " & int2str(enum2int(p_resourceType)));
+						}
+					}
+    								
+					vc_primitiveContentRetrievedResource := f_cse_retrieveResource(v_resourceIndex);
+									
+					// Postamble
+					f_cse_postamble_deleteResources();
+						
+					// Tear down
+					f_cf01Down();
+    					    				
+				}//end f_CSE_TMG_UPD_003
+				
+				function f_CSE_TMG_UPD_004(ResourceType p_resourceType, template RequestPrimitive p_createRequestPrimitive, template RequestPrimitive p_updateRequestPrimitive) runs on AeSimu system CseSystem {
+    				
+					// Local variables
+					var MsgIn v_response;
+					var RequestPrimitive v_request;
+					var integer v_aeIndex := -1;
+					var integer v_resourceIndex := -1;
+					var integer v_ae2Index := -1;
+					var integer v_parentIndex := -1;
+    										   
+					// Test control
+    				
+					// Test component configuration
+					f_cf01Up(true);
+    				
+					// Test adapter configuration
+    				
+					// Preamble
+					v_aeIndex := f_cse_preamble_registerAe();//c_CRUDNDi);
+							
+					if(p_resourceType != int18) {
+						v_parentIndex := v_aeIndex;//For resources that can have AE resource as parent
+					}
+					
+					v_resourceIndex := f_cse_createResource(p_resourceType, p_createRequestPrimitive, v_parentIndex);
+																
+					// Test Body
+					v_request := f_getUpdateRequestPrimitive(p_resourceType, v_resourceIndex, p_updateRequestPrimitive);
+						
+					f_send(e_mcaPort, m_request(v_request));
+					tc_ac.start;
+					alt {
+						[] mcaPort.receive(mw_response(mw_responsePrimitive(int2004))) -> value vc_response {
+							tc_ac.stop;
+							setverdict(pass, __SCOPE__ & ": Attribute of resource type " & int2str(enum2int(p_resourceType)) & " updated successfully");
+						}
+						[] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value vc_response {
+							tc_ac.stop;
+							setverdict(fail, __SCOPE__ & ": Wrong response status code");
+						}
+						[] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) -> value vc_response {
+							tc_ac.stop;
+							setverdict(fail, __SCOPE__ & ": Error while updating resource type " & int2str(enum2int(p_resourceType)));
+						}
+						[] tc_ac.timeout {
+							setverdict(fail, __SCOPE__ & ": No answer while updating resource type " & int2str(enum2int(p_resourceType)));
+						}
+					}
+    								
+					vc_primitiveContentRetrievedResource := f_cse_retrieveResource(v_resourceIndex);
+									
+					// Postamble
+					f_cse_postamble_deleteResources();
+						
+					// Tear down
+					f_cf01Down();
+    					    				
+				}//end f_CSE_TMG_UPD_004
+				
+				
+				function f_CSE_TMG_UPD_006(ResourceType p_resourceType, template RequestPrimitive p_createRequestPrimitive, template RequestPrimitive p_updateRequestPrimitive) runs on AeSimu system CseSystem {
+    				
+					// Local variables
+					var MsgIn v_response;
+					var RequestPrimitive v_request;
+					var integer v_aeIndex := -1;
+					var integer v_resourceIndex := -1;
+					var integer v_ae2Index := -1;
+					var integer v_parentIndex := -1;
+    										   
+					// Test control
+    				
+					// Test component configuration
+					f_cf01Up(true);
+    				
+					// Test adapter configuration
+    				
+					// Preamble
+					v_aeIndex := f_cse_preamble_registerAe();//c_CRUDNDi);
+							
+					if(p_resourceType != int18) {
+						v_parentIndex := v_aeIndex;//For resources that can have AE resource as parent
+					}
+					
+					v_resourceIndex := f_cse_createResource(p_resourceType, p_createRequestPrimitive, v_parentIndex);
+																
+					// Test Body
+					v_request := f_getUpdateRequestPrimitive(p_resourceType, v_resourceIndex, p_updateRequestPrimitive);
+						
+					f_send(e_mcaPort, m_request(v_request));
+					tc_ac.start;
+					alt {
+						[] mcaPort.receive(mw_response(mw_responsePrimitive(int4123))) -> value v_response {
+							tc_ac.stop;
+							setverdict(pass, __SCOPE__ & ": ILLEGAL_TRANSACTION_STATE_TRANSITION_ATTEMPTED." & int2str(enum2int(p_resourceType)) );
+						}
+						[] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) -> value v_response {
+							tc_ac.stop;
+							setverdict(fail, __SCOPE__ & ": Wrong response status code");
+						}
+						[] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) {
+							tc_ac.stop;
+							setverdict(fail, __SCOPE__ & ": Updating Invalid transactionControl ");
+						}
+						[] tc_ac.timeout {
+							setverdict(fail, __SCOPE__ & ": No answer while updating resource type " & int2str(enum2int(p_resourceType)));
+						}
+					}
+    								
+					vc_primitiveContentRetrievedResource := f_cse_retrieveResource(v_resourceIndex);
+									
+					// Postamble
+					f_cse_postamble_deleteResources();
+						
+					// Tear down
+					f_cf01Down();
+    					    				
+				}//end f_CSE_TMG_UPD_006
+				
+				function f_CSE_TMG_UPD_007(ResourceType p_resourceType, template RequestPrimitive p_createRequestPrimitive, template RequestPrimitive p_updateRequestPrimitive) runs on AeSimu system CseSystem {
+    				
+					// Local variables
+					var MsgIn v_response;
+					var RequestPrimitive v_request;
+					var integer v_aeIndex := -1;
+					var integer v_resourceIndex := -1;
+					var integer v_ae2Index := -1;
+					var integer v_parentIndex := -1;
+    										   
+					// Test control
+    				
+					// Test component configuration
+					f_cf01Up(true);
+    				
+					// Test adapter configuration
+    				
+					// Preamble
+					v_aeIndex := f_cse_preamble_registerAe();//c_CRUDNDi);
+							
+					if(p_resourceType != int18) {
+						v_parentIndex := v_aeIndex;//For resources that can have AE resource as parent
+					}
+					
+					v_resourceIndex := f_cse_createResource(p_resourceType, p_createRequestPrimitive, v_parentIndex);
+																
+					// Test Body
+					v_request := f_getUpdateRequestPrimitive(p_resourceType, v_resourceIndex, p_updateRequestPrimitive);
+						
+					f_send(e_mcaPort, m_request(v_request));
+					tc_ac.start;
+					alt {
+						[] mcaPort.receive(mw_response(mw_responsePrimitive(int2004))) -> value vc_response {
+							tc_ac.stop;
+							setverdict(pass, __SCOPE__ & ": Attribute of resource type " & int2str(enum2int(p_resourceType)) & " updated successfully");
+						}
+						[] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value vc_response {
+							tc_ac.stop;
+							setverdict(fail, __SCOPE__ & ": Wrong response status code");
+						}
+						[] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) -> value vc_response {
+							tc_ac.stop;
+							setverdict(fail, __SCOPE__ & ": Error while updating resource type " & int2str(enum2int(p_resourceType)));
+						}
+						[] tc_ac.timeout {
+							setverdict(fail, __SCOPE__ & ": No answer while updating resource type " & int2str(enum2int(p_resourceType)));
+						}
+					}
+    								
+					vc_primitiveContentRetrievedResource := f_cse_retrieveResource(v_resourceIndex);
+									
+					// Postamble
+					f_cse_postamble_deleteResources();
+						
+					// Tear down
+					f_cf01Down();
+    					    				
+				}//end f_CSE_TMG_UPD_007
+			} // end of update
+			
+			
+			group Delete{
+				function f_CSE_TMG_DEL_001(ResourceType p_resourceType, template RequestPrimitive p_createRequestPrimitive) runs on AeSimu system CseSystem {
+					// Local variables
+					var MsgIn v_response;
+					var RequestPrimitive v_request;
+					var integer v_aeIndex := -1;
+					var integer v_parentIndex := -1;
+					var integer v_containerIndex := -1;
+					var integer v_resourceIndex := -1;
+					var integer v_ae2Index := -1;
+                							   
+					// Test control
+                
+					// Test component configuration
+					f_cf01Up(true);
+                
+					// Test adapter configuration
+                
+					// Preamble
+					v_aeIndex := f_cse_preamble_registerAe();//c_CRUDNDi)
+						
+					f_cse_preamble_subscriptionVerification(v_ae2Index, p_createRequestPrimitive, p_resourceType);
+                		
+					if(p_resourceType == int4) {
+						v_containerIndex := f_cse_createResource(int3, m_createContainerBase, v_aeIndex);
+						v_parentIndex := v_containerIndex;
+					} else if(p_resourceType != int18) {
+						v_parentIndex := v_aeIndex;//For resources that can have AE resource as parent
+					}
+                												
+					v_resourceIndex := f_cse_createResource(p_resourceType, p_createRequestPrimitive, v_parentIndex);
+                												
+					// Test Body
+					if(p_resourceType == int23) {
+						if (vc_ae2.running) {
+							vc_ae2.stop;
+						}
+						vc_ae2.start(f_cse_notifyProcedure_noNotificationHandler());
+					}
+						
+					v_request := valueof(m_delete(f_getResourceAddress(v_resourceIndex), f_getOriginator(v_resourceIndex)));
+						                		
+					f_send(e_mcaPort, m_request(v_request));
+					tc_ac.start;
+					alt {
+						[] mcaPort.receive(mw_response(mw_responsePrimitive(int2002))) -> value v_response {
+							tc_ac.stop;
+							setverdict(pass, __SCOPE__ & ": Resource" & int2str(enum2int(p_resourceType)) & " deleted successfully");
+						}
+						[] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value v_response {
+							tc_ac.stop;
+							setverdict(fail, __SCOPE__ & ": Wrong response status code");
+						}
+						[] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) -> value v_response {
+							tc_ac.stop;
+							setverdict(fail, __SCOPE__ & ": Error while deleting resource type " & int2str(enum2int(p_resourceType)));
+						}
+						[] tc_ac.timeout {
+							setverdict(fail, __SCOPE__ & ": No answer while deleting resource type " & int2str(enum2int(p_resourceType)));
+						}
+					}
+						
+					f_checkAeSimuStatus();
+    								
+					//Check to see if the resource is present or not
+					if (f_cse_isResourceNotPresent(v_aeIndex, f_getResourceName(vc_resourcesList[v_resourceIndex].resource))){
+						setverdict(pass, __SCOPE__ & ":INFO: Resource deleted");
+					} else {
+						setverdict(fail, __SCOPE__ & ":ERROR: Resource not deleted");
+					}
+                					
+					// Postamble
+					f_cse_postamble_deleteResources();
+                		
+					// Tear down
+					f_cf01Down();
+                							
+				};//end f_CSE_DMR_DEL_001
+				
+			
+			} // end of delete
+		}// end group Transaction_Management
+	
 	}//end group CSE
 
 	
diff --git a/OneM2M_Testcases_CSE_Release_4.ttcn b/OneM2M_Testcases_CSE_Release_4.ttcn
index e61c238442bf9ceb0012d613dcea74cfde923cc3..f46dd237a10ffd74a508c4f31e1973bcda9493f5 100644
--- a/OneM2M_Testcases_CSE_Release_4.ttcn
+++ b/OneM2M_Testcases_CSE_Release_4.ttcn
@@ -11787,6 +11787,2588 @@ module OneM2M_Testcases_CSE_Release_4 {
 
      // }  End group SoftwareManagement        
         
+		group Transaction_Management {
+			
+			group Create{
+				
+				/**
+				 * @desc Check that the IUT sets transactionControl to INITIAL during creation of TransactionMgmt resource
+				 *
+				 */
+				testcase TC_CSE_TMG_CRE_001() runs on Tester system CseSystem { //Create
+					// Local variables
+
+					
+					
+					
+					var AggregatedRequest.request_list[-] v_requestPrim;
+					
+					v_requestPrim := {int1, "", "", -, -, -};
+					
+					var AggregatedRequest v_aggregatedRequest:=
+					{
+						request_list :=
+						{
+							[0] := v_requestPrim
+						}
+					
+					};
+
+					
+					var template RequestPrimitive v_createRequest := m_createTransactionMgmtBase(v_aggregatedRequest);
+					var AeSimu v_ae1 := AeSimu.create("AE1") alive;
+
+					v_ae1.start(f_CSE_TMG_CRE_001(int50, v_createRequest));//TransactionMgmt
+					v_ae1.done;
+				}//end TC_CSE_TMG_CRE_001
+					
+				function f_CSE_TMG_CRE_001(ResourceType p_resourceType, template RequestPrimitive p_requestPrimitive) runs on AeSimu system CseSystem return ResponsePrimitive {
+    				
+					// Local variables
+					var MsgIn v_response;
+					var RequestPrimitive v_request;
+					var integer v_aeIndex := -1;
+					var integer v_resourceIndex := -1;
+					const TransactionControl transactionControl := int1; //INITIAL
+										   
+					// Test control
+				
+					// Test component configuration
+					f_cf01Up();
+				
+					// Test adapter configuration
+				
+					// Preamble
+					v_aeIndex := f_cse_preamble_registerAe();//c_CRUDNDi);
+					
+					// Test Body
+					v_request := f_getCreateRequestPrimitive(p_resourceType, p_requestPrimitive, v_aeIndex);
+					
+					f_send(e_mcaPort, m_request(v_request));
+					tc_ac.start;
+					alt {
+						[] mcaPort.receive(mw_response(mw_responsePrimitive(int2001))) -> value vc_response {
+							tc_ac.stop;
+							setverdict(pass, __SCOPE__ & ": Accepted creation rejected for resource type " & int2str(enum2int(p_resourceType)));
+							f_checkAttributesToBeSaved(p_resourceType, v_request, vc_response.primitive.responsePrimitive);
+							v_resourceIndex := f_setResource(vc_response.primitive.responsePrimitive.primitiveContent, p_resourceType, v_aeIndex);
+							if(not match(transactionControl , v_response.primitive.responsePrimitive.primitiveContent.transactionMgmt.transactionControl)){
+								setverdict(fail, __SCOPE__ & ": Error, transactionControl is not set to INITIAL ");
+							}
+						}
+						[] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value vc_response {
+							tc_ac.stop;
+							setverdict(fail, __SCOPE__ & ": Wrong response status code");
+						}
+						[] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) -> value vc_response {
+							tc_ac.stop;
+							setverdict(fail, __SCOPE__ & ": Creation rejected of resource type " & int2str(enum2int(p_resourceType)));
+						}
+						[] tc_ac.timeout {
+							setverdict(fail, __SCOPE__ & ": No answer while creating resource type " & int2str(enum2int(p_resourceType)));
+						}
+					}
+								
+					f_checkAeSimuStatus();
+						
+					//Check to see if the resource is present or not
+					if(f_cse_isResourcePresent(v_resourceIndex)){
+						setverdict(pass, __SCOPE__ & ":INFO: Resource created");
+					} else {
+						setverdict(fail, __SCOPE__ & ":ERROR: Resource not created");
+					}
+								
+					// Postamble
+					f_cse_postamble_deleteResources();
+						
+					// Tear down
+					f_cf01Down();
+					
+					return vc_response.primitive.responsePrimitive;
+					    				
+				}//end f_CSE_TMG_CRE_001
+					
+				/**
+				 * @desc Check that the IUT rejecet creation of <transactionMgmt> resource if from parameter of one of AggregatedRequest is not same as origitor			 *
+				 */
+				testcase TC_CSE_TMG_CRE_002() runs on Tester system CseSystem {
+					// Local variables
+					var AggregatedRequest.request_list[-] v_requestPrim;
+					
+					v_requestPrim := {int1, "", "", -, -, -};
+					
+					var AggregatedRequest v_aggregatedRequest:=
+					{
+						request_list :=
+						{
+							[0] := v_requestPrim
+						}
+					
+					};
+					var template RequestPrimitive v_createRequest := m_createTransactionMgmtBase(v_aggregatedRequest);
+					var AeSimu v_ae1 := AeSimu.create("AE1") alive;
+					v_createRequest.primitiveContent.transactionMgmt.resourceName := omit;
+					v_ae1.start(f_CSE_TMG_CRE_002(int50, v_createRequest));//TransactionMgmt
+					v_ae1.done;
+				}//end TC_CSE_TMG_CRE_002
+				
+				
+				function f_CSE_TMG_CRE_002(ResourceType p_resourceType, template RequestPrimitive p_requestPrimitive) runs on AeSimu system CseSystem return ResponsePrimitive {
+					// Local variables
+					var MsgIn v_response;
+					var RequestPrimitive v_request;
+					var integer v_aeIndex := -1;
+					var integer v_ae2Index := -1;
+					var integer v_resourceIndex := -1;
+					
+					// Test control
+				
+					// Test component configuration
+					f_cf01Up();
+				
+					// Test adapter configuration
+				
+					// Preamble
+					v_aeIndex := f_cse_preamble_registerAe();//c_CRUDNDi);
+					v_ae2Index := f_cse_preamble_registerAe();  //other AE
+				
+					// Test Body
+					v_request := f_getCreateRequestPrimitive(p_resourceType, p_requestPrimitive, v_aeIndex);
+					v_request.primitiveContent.transactionMgmt.requestPrimitives.request_list[0].from_ := f_getResourceId(vc_resourcesList[v_ae2Index].resource);//f_getResourceAddress(v_ae2Index);
+					f_send(e_mcaPort, m_request(v_request));
+					tc_ac.start;
+					
+					alt {
+						[] mcaPort.receive(mw_response(mw_responsePrimitive(int4000))) -> value v_response {
+							tc_ac.stop;
+							setverdict(pass, __SCOPE__ & ": Creation rejected for resource type " & int2str(enum2int(p_resourceType)));
+						}
+						[] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) -> value v_response {
+							tc_ac.stop;
+							setverdict(fail, __SCOPE__ & ": Wrong response status code");
+						}
+						[] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value v_response {
+							tc_ac.stop;
+							setverdict(fail, __SCOPE__ & ": Accepted creation of resource type " & int2str(enum2int(p_resourceType)));
+						}
+						[] tc_ac.timeout {
+							setverdict(fail, __SCOPE__ & ": No answer while creating resource type " & int2str(enum2int(p_resourceType)));
+						}
+					}
+								
+					f_checkAeSimuStatus();
+						
+					//Check to see if the resource is present or not
+					if(f_cse_isResourcePresent(v_resourceIndex)){
+						setverdict(pass, __SCOPE__ & ":INFO: Resource created");
+					} else {
+						setverdict(fail, __SCOPE__ & ":ERROR: Resource not created");
+					}
+								
+					// Postamble
+					f_cse_postamble_deleteResources();
+						
+					// Tear down
+					f_cf01Down();
+					
+					return vc_response.primitive.responsePrimitive;
+				}//end f_CSE_TMG_CRE_002
+				
+				/**
+				 * @desc Check that the IUT sets transactionControl to LOCK during creation of <transaction> resource
+				 *
+				 */
+				testcase TC_CSE_TMG_CRE_003() runs on Tester system CseSystem { //Create
+					// Local variables
+
+					var template RequestPrimitive v_createRequest := m_createTransactionBase(m_create);
+					//var ResponsePrimitive v_responsePrimitive;
+					var AeSimu v_ae1 := AeSimu.create("AE1") alive;
+						 
+					//v_createRequest.primitiveContent.transactionMgmt.resourceName := omit;
+					v_createRequest.primitiveContent.transaction.requestPrimitive := omit;
+
+
+					v_ae1.start(f_CSE_TMG_CRE_003(int51, v_createRequest));//Transaction
+					v_ae1.done;
+				}//end TC_CSE_TMG_CRE_003
+					
+				function f_CSE_TMG_CRE_003(ResourceType p_resourceType, template RequestPrimitive p_requestPrimitive) runs on AeSimu system CseSystem return ResponsePrimitive {
+					// Local variables
+					var MsgIn v_response;
+					var RequestPrimitive v_request;
+					var integer v_aeIndex := -1;
+					//var integer v_ae2Index := -1;
+					var integer v_resourceIndex := -1;
+					const TransactionControl transactionControl := int2; //LOCK
+					
+					// Test control
+				
+					// Test component configuration
+					f_cf01Up();
+				
+					// Test adapter configuration
+				
+					// Preamble
+					v_aeIndex := f_cse_preamble_registerAe();//c_CRUDNDi);
+					
+				
+					// Test Body
+					v_request := f_getCreateRequestPrimitive(p_resourceType, p_requestPrimitive, v_aeIndex);
+					
+					var RequestPrimitive v_createInnerRequestPrimitive := m_create;
+					v_createInnerRequestPrimitive.to_ := f_getResourceId(vc_resourcesList[v_aeIndex].resource);
+					v_createInnerRequestPrimitive.from_ := f_getResourceId(vc_resourcesList[v_aeIndex].resource);
+					
+					v_request.primitiveContent.transaction.requestPrimitive := v_createInnerRequestPrimitive;
+					
+					f_send(e_mcaPort, m_request(v_request));
+					tc_ac.start;
+					alt {
+						[] mcaPort.receive(mw_response(mw_responsePrimitive(int2001))) -> value vc_response {
+							tc_ac.stop;
+							setverdict(pass, __SCOPE__ & ": Accepted creation rejected for resource type " & int2str(enum2int(p_resourceType)));
+							f_checkAttributesToBeSaved(p_resourceType, v_request, vc_response.primitive.responsePrimitive);
+							v_resourceIndex := f_setResource(vc_response.primitive.responsePrimitive.primitiveContent, p_resourceType, v_aeIndex);
+							if(not match(transactionControl , v_response.primitive.responsePrimitive.primitiveContent.transactionMgmt.transactionControl)){
+								setverdict(fail, __SCOPE__ & ": Error, transactionControl is not set to INITIAL ");
+							}
+						}
+						[] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value vc_response {
+							tc_ac.stop;
+							setverdict(fail, __SCOPE__ & ": Wrong response status code");
+						}
+						[] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) -> value vc_response {
+							tc_ac.stop;
+							setverdict(fail, __SCOPE__ & ": Creation rejected of resource type " & int2str(enum2int(p_resourceType)));
+						}
+						[] tc_ac.timeout {
+							setverdict(fail, __SCOPE__ & ": No answer while creating resource type " & int2str(enum2int(p_resourceType)));
+						}
+					}
+								
+					f_checkAeSimuStatus();
+						
+					//Check to see if the resource is present or not
+					if(f_cse_isResourcePresent(v_resourceIndex)){
+						setverdict(pass, __SCOPE__ & ":INFO: Resource created");
+					} else {
+						setverdict(fail, __SCOPE__ & ":ERROR: Resource not created");
+					}
+								
+					// Postamble
+					f_cse_postamble_deleteResources();
+						
+					// Tear down
+					f_cf01Down();
+					
+					return vc_response.primitive.responsePrimitive;
+					
+					
+				}//end f_CSE_TMG_CRE_003
+					
+				/**
+				 * @desc Check that the IUT rejecets creation of <transaction> resource if from parameter of requestPrimitive is not same as origitor			 *
+				 */
+				testcase TC_CSE_TMG_CRE_004() runs on Tester system CseSystem { //Create
+					// Local variables
+
+					var template RequestPrimitive v_createRequest := m_createTransactionBase(m_create);
+					//var ResponsePrimitive v_responsePrimitive;
+					var AeSimu v_ae1 := AeSimu.create("AE1") alive;
+
+					v_ae1.start(f_CSE_TMG_CRE_004(int51, v_createRequest));//Transaction
+					v_ae1.done;
+				}//end TC_CSE_TMG_CRE_004
+					
+				function f_CSE_TMG_CRE_004(ResourceType p_resourceType, template RequestPrimitive p_requestPrimitive) runs on AeSimu system CseSystem return ResponsePrimitive {
+					// Local variables
+					var MsgIn v_response;
+					var RequestPrimitive v_request;
+					var integer v_aeIndex := -1;
+					var integer v_ae2Index := -1;
+					var integer v_resourceIndex := -1;
+					
+					// Test control
+				
+					// Test component configuration
+					f_cf01Up();
+				
+					// Test adapter configuration
+				
+					// Preamble
+					v_aeIndex := f_cse_preamble_registerAe();//c_CRUDNDi);
+					v_ae2Index := f_cse_preamble_registerAe();  //other AE
+					
+				
+					// Test Body
+					v_request := f_getCreateRequestPrimitive(p_resourceType, p_requestPrimitive, v_aeIndex);
+					v_request.primitiveContent.transaction.requestPrimitive.from_ := f_getResourceId(vc_resourcesList[v_ae2Index].resource);
+//					{f_getResourceAddress(v_ae2Index)}
+					f_send(e_mcaPort, m_request(v_request));
+					tc_ac.start;
+					
+					alt {
+						[] mcaPort.receive(mw_response(mw_responsePrimitive(int4000))) -> value v_response {
+							tc_ac.stop;
+							setverdict(pass, __SCOPE__ & ": Creation rejected for resource type " & int2str(enum2int(p_resourceType)));
+						}
+						[] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) -> value v_response {
+							tc_ac.stop;
+							setverdict(fail, __SCOPE__ & ": Wrong response status code");
+						}
+						[] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value v_response {
+							tc_ac.stop;
+							setverdict(fail, __SCOPE__ & ": Accepted creation of resource type " & int2str(enum2int(p_resourceType)));
+						}
+						[] tc_ac.timeout {
+							setverdict(fail, __SCOPE__ & ": No answer while creating resource type " & int2str(enum2int(p_resourceType)));
+						}
+					}
+								
+					f_checkAeSimuStatus();
+						
+					//Check to see if the resource is present or not
+					if(f_cse_isResourcePresent(v_resourceIndex)){
+						setverdict(pass, __SCOPE__ & ":INFO: Resource created");
+					} else {
+						setverdict(fail, __SCOPE__ & ":ERROR: Resource not created");
+					}
+								
+					// Postamble
+					f_cse_postamble_deleteResources();
+						
+					// Tear down
+					f_cf01Down();
+					
+					return vc_response.primitive.responsePrimitive;
+				} // end f_CSE_TMG_CRE_004
+					
+				testcase TC_CSE_TMG_CRE_005() runs on Tester system CseSystem { //Create
+					// Local variables
+
+					var AggregatedRequest.request_list[-] v_requestPrim;
+					
+					v_requestPrim := {int1, "", "", -, -, -};
+					
+					var AggregatedRequest v_aggregatedRequest:=
+					{
+						request_list :=
+						{
+							[0] := v_requestPrim
+						}
+					
+					};
+					
+					var template RequestPrimitive v_createRequest := m_createTransactionMgmtBase(v_aggregatedRequest);
+					//var ResponsePrimitive v_responsePrimitive;
+					var AeSimu v_ae1 := AeSimu.create("AE1") alive;
+
+					v_ae1.start(f_CSE_TMG_CRE_005(int50, v_createRequest));//TransactionMgmt
+					v_ae1.done;
+				}//end TC_CSE_TMG_CRE_005 //TODO
+				
+				function f_CSE_TMG_CRE_005(ResourceType p_resourceType, template RequestPrimitive p_requestPrimitive) runs on AeSimu system CseSystem return ResponsePrimitive {
+    				
+					// Local variables
+					var MsgIn v_response;
+					var RequestPrimitive v_request;
+					var integer v_aeIndex := -1;
+					var integer v_resourceIndex := -1;
+					const TransactionControl c_transactionControl := int1; //INITIAL
+										   
+					// Test control
+				
+					// Test component configuration
+					f_cf01Up();
+				
+					// Test adapter configuration
+				
+					// Preamble
+					v_aeIndex := f_cse_preamble_registerAe();//c_CRUDNDi);
+					
+					// Test Body
+					v_request := f_getCreateRequestPrimitive(p_resourceType, p_requestPrimitive, v_aeIndex);
+					
+					f_send(e_mcaPort, m_request(v_request));
+					tc_ac.start;
+					alt {
+						[] mcaPort.receive(mw_response(mw_responsePrimitive(int2001))) -> value vc_response {
+							tc_ac.stop;
+							setverdict(pass, __SCOPE__ & ": Accepted creation rejected for resource type " & int2str(enum2int(p_resourceType)));
+							f_checkAttributesToBeSaved(p_resourceType, v_request, vc_response.primitive.responsePrimitive);
+							v_resourceIndex := f_setResource(vc_response.primitive.responsePrimitive.primitiveContent, p_resourceType, v_aeIndex);
+							if(not match(c_transactionControl , v_response.primitive.responsePrimitive.primitiveContent.transactionMgmt.transactionControl)){
+								setverdict(fail, __SCOPE__ & ": Error, transactionControl is not set to INITIAL ");
+							}
+						}
+						[] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value vc_response {
+							tc_ac.stop;
+							setverdict(fail, __SCOPE__ & ": Wrong response status code");
+						}
+						[] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) -> value vc_response {
+							tc_ac.stop;
+							setverdict(fail, __SCOPE__ & ": Creation rejected of resource type " & int2str(enum2int(p_resourceType)));
+						}
+						[] tc_ac.timeout {
+							setverdict(fail, __SCOPE__ & ": No answer while creating resource type " & int2str(enum2int(p_resourceType)));
+						}
+					}
+								
+					f_checkAeSimuStatus();
+						
+					//Check to see if the resource is present or not
+					if(f_cse_isResourcePresent(v_resourceIndex)){
+						setverdict(pass, __SCOPE__ & ":INFO: Resource created");
+					} else {
+						setverdict(fail, __SCOPE__ & ":ERROR: Resource not created");
+					}
+								
+					// Postamble
+					f_cse_postamble_deleteResources();
+						
+					// Tear down
+					f_cf01Down();
+					
+					return vc_response.primitive.responsePrimitive;
+					    				
+				}//end f_CSE_TMG_CRE_005
+				
+				
+				
+			} // end group Create
+			
+			group Update{
+				
+				/**
+				 * @desc Check that the IUT rejecet update of transactionControl attribute of <transactionMgmt> resource if from parameter is not same as origitor
+				 *
+				 *
+				 */
+				
+				testcase TC_CSE_TMG_UPD_001() runs on Tester system CseSystem {
+					// Local variables
+						
+					var AeSimu v_ae1 := AeSimu.create("AE1") alive;
+					var template RequestPrimitive v_updateRequest := m_updateTransactionMgmtBase;
+					var PrimitiveContent v_primitiveContentRetrieveResource;
+					v_updateRequest.primitiveContent.transactionMgmt.transactionControl := int2;
+					var AggregatedRequest.request_list[-] v_requestPrim;
+					
+					v_requestPrim := {int1, "", "", -, -, -};
+					
+					var AggregatedRequest v_aggregatedRequest:=
+					{
+						request_list :=
+						{
+							[0] := v_requestPrim
+						}
+					
+					};
+					    
+					v_ae1.start(f_CSE_TMG_UPD_001(int50, m_createTransactionMgmtBase(v_aggregatedRequest), v_updateRequest));//Container
+					v_ae1.done;
+						
+					if(getverdict == pass){
+						v_primitiveContentRetrieveResource := f_getPrimitiveContentRetrievedResource(v_ae1);
+						//Check that the resource has NOT been udpated
+						if(ischosen(v_primitiveContentRetrieveResource.transactionMgmt)) {
+							if(v_primitiveContentRetrieveResource.transactionMgmt.transactionControl == int2){
+								setverdict(fail, __SCOPE__ & ": Error: transactionControl attribute updated")
+							}
+						}
+					}
+					
+				} // TC_CSE_TMG_UPD_001
+				
+				function f_CSE_TMG_UPD_001(ResourceType p_resourceType, template RequestPrimitive p_createRequestPrimitive, template RequestPrimitive p_updateRequestPrimitive) runs on AeSimu system CseSystem {
+    				
+					// Local variables
+					var MsgIn v_response;
+					var RequestPrimitive v_request;
+					var integer v_aeIndex := -1;
+					var integer v_resourceIndex := -1;
+					var integer v_ae2Index := -1;
+					var integer v_parentIndex := -1;
+    										   
+					// Test control
+    				
+					// Test component configuration
+					f_cf01Up(true);
+    				
+					// Test adapter configuration
+    				
+					// Preamble
+					v_aeIndex := f_cse_preamble_registerAe();//c_CRUDNDi);
+						
+					v_ae2Index := f_cse_preamble_registerAe();//c_CRUDNDi);
+					//f_cse_preamble_subscriptionVerification(v_ae2Index, p_createRequestPrimitive, p_resourceType);
+						
+					if(p_resourceType != int18) {
+						v_parentIndex := v_aeIndex;//For resources that can have AE resource as parent
+					}
+					
+					v_resourceIndex := f_cse_createResource(p_resourceType, p_createRequestPrimitive, v_parentIndex);
+																
+					// Test Body
+					v_request := f_getUpdateRequestPrimitive(p_resourceType, v_resourceIndex, p_updateRequestPrimitive);
+					v_request.from_ := f_getResourceId(vc_resourcesList[v_ae2Index].resource);
+						
+					f_send(e_mcaPort, m_request(v_request));
+					tc_ac.start;
+					alt {
+						[] mcaPort.receive(mw_response(mw_responsePrimitive(int4103))) -> value v_response {
+							tc_ac.stop;
+							setverdict(pass, __SCOPE__ & ": Originator has no privilege. Creator is not same as originator of request " & int2str(enum2int(p_resourceType)) );
+						}
+						[] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) -> value v_response {
+							tc_ac.stop;
+							setverdict(fail, __SCOPE__ & ": Wrong response status code");
+						}
+						[] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) {
+							tc_ac.stop;
+							setverdict(fail, __SCOPE__ & ": Updating transactionControl when originator is not creator");
+						}
+						[] tc_ac.timeout {
+							setverdict(fail, __SCOPE__ & ": No answer while updating resource type " & int2str(enum2int(p_resourceType)));
+						}
+					}
+    								
+					vc_primitiveContentRetrievedResource := f_cse_retrieveResource(v_resourceIndex);
+									
+					// Postamble
+					f_cse_postamble_deleteResources();
+						
+					// Tear down
+					f_cf01Down();
+    					    				
+				}//end f_CSE_TMG_UPD_001
+				
+				/**
+				/**
+				 * @desc Check that the IUT rejecet update of transactionControl attribute of <transactionMgmt> resource if
+				 *
+				 *
+				 */
+				testcase TC_CSE_TMG_UPD_002() runs on Tester system CseSystem {
+					// Local variables
+						
+					var AeSimu v_ae1 := AeSimu.create("AE1") alive;
+					var template RequestPrimitive v_updateRequest := m_updateTransactionMgmtBase;
+					var PrimitiveContent v_primitiveContentRetrieveResource;
+					v_updateRequest.primitiveContent.transactionMgmt.transactionControl := int2;
+					var AggregatedRequest.request_list[-] v_requestPrim;
+					
+					v_requestPrim := {int1, "", "", -, -, -};
+					
+					var AggregatedRequest v_aggregatedRequest:=
+					{
+						request_list :=
+						{
+							[0] := v_requestPrim
+						}
+					
+					};
+					    
+					v_ae1.start(f_CSE_TMG_UPD_002(int50, m_createTransactionMgmtBase(v_aggregatedRequest), v_updateRequest));//Container
+					v_ae1.done;
+						
+					if(getverdict == pass){
+						v_primitiveContentRetrieveResource := f_getPrimitiveContentRetrievedResource(v_ae1);
+						//Check that the resource has NOT been udpated
+						if(ischosen(v_primitiveContentRetrieveResource.transactionMgmt)) {
+							if(v_primitiveContentRetrieveResource.transactionMgmt.transactionControl == int2){
+								setverdict(fail, __SCOPE__ & ": Error: transactionControl attribute updated")
+							}
+						}
+					}
+					
+				} // TC_CSE_TMG_UPD_002
+				
+				function f_CSE_TMG_UPD_002(ResourceType p_resourceType, template RequestPrimitive p_createRequestPrimitive, template RequestPrimitive p_updateRequestPrimitive) runs on AeSimu system CseSystem {
+    				
+					// Local variables
+					var MsgIn v_response;
+					var RequestPrimitive v_request;
+					var integer v_aeIndex := -1;
+					var integer v_resourceIndex := -1;
+					//var integer v_ae2Index := -1;
+					var integer v_parentIndex := -1;
+    										   
+					// Test control
+    				
+					// Test component configuration
+					f_cf01Up(true);
+    				
+					// Test adapter configuration
+    				
+					// Preamble
+					v_aeIndex := f_cse_preamble_registerAe();//c_CRUDNDi);
+							
+					if(p_resourceType != int18) {
+						v_parentIndex := v_aeIndex;//For resources that can have AE resource as parent
+					}
+					
+					p_createRequestPrimitive.primitiveContent.transactionMgmt.transactionMode := int1;
+					v_resourceIndex := f_cse_createResource(p_resourceType, p_createRequestPrimitive, v_parentIndex);
+																
+					// Test Body
+					v_request := f_getUpdateRequestPrimitive(p_resourceType, v_resourceIndex, p_updateRequestPrimitive);
+						
+					f_send(e_mcaPort, m_request(v_request));
+					tc_ac.start;
+					alt {
+						[] mcaPort.receive(mw_response(mw_responsePrimitive(int4000))) -> value v_response {
+							tc_ac.stop;
+							setverdict(pass, __SCOPE__ & ": BAD_REQUEST. transactionMode is CSE_CONTROLLED " & int2str(enum2int(p_resourceType)) );
+						}
+						[] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) -> value v_response {
+							tc_ac.stop;
+							setverdict(fail, __SCOPE__ & ": Wrong response status code");
+						}
+						[] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) {
+							tc_ac.stop;
+							setverdict(fail, __SCOPE__ & ": Updating transactionControl when transactionMode is CSE_CONTROLLED");
+						}
+						[] tc_ac.timeout {
+							setverdict(fail, __SCOPE__ & ": No answer while updating resource type " & int2str(enum2int(p_resourceType)));
+						}
+					}
+    								
+					vc_primitiveContentRetrievedResource := f_cse_retrieveResource(v_resourceIndex);
+									
+					// Postamble
+					f_cse_postamble_deleteResources();
+						
+					// Tear down
+					f_cf01Down();
+    					    				
+				}//end f_CSE_TMG_UPD_002
+				/**
+				/**
+				 * @desc Check that the IUT rejecets update of transactionControl attribute of <transactionMgmt> resource if it does not transition to valid value
+				 *
+				 *
+				 */
+				
+				group TC_CSE_TMG_UPD_003{
+					
+					group TC_CSE_TMG_UPD_003_INI{
+				
+						testcase TC_CSE_TMG_UPD_003_INI_EXE() runs on Tester system CseSystem {
+							// Local variables
+						
+							var AeSimu v_ae1 := AeSimu.create("AE1") alive;
+							var template RequestPrimitive v_updateRequest := m_updateTransactionMgmtBase;
+							var PrimitiveContent v_primitiveContentRetrieveResource;
+							v_updateRequest.primitiveContent.transactionMgmt.transactionControl := int3; //EXECUTE
+							var AggregatedRequest.request_list[-] v_requestPrim;
+					
+							v_requestPrim := {int1, "", "", -, -, -};
+					
+							var AggregatedRequest v_aggregatedRequest:=
+							{
+								request_list :=
+								{
+									[0] := v_requestPrim
+								}
+					
+							};
+							var template RequestPrimitive v_createRequest := m_createTransactionMgmtBase(v_aggregatedRequest);
+							v_createRequest.primitiveContent.transactionMgmt.transactionState := int1; //INITIAL
+							v_createRequest.primitiveContent.transactionMgmt.transactionMode := int2; //CREATOR_CONTROLLED
+					    
+							v_ae1.start(f_CSE_TMG_UPD_003(int50, v_createRequest, v_updateRequest));//Container
+							v_ae1.done;
+						
+							if(getverdict == pass){
+								v_primitiveContentRetrieveResource := f_getPrimitiveContentRetrievedResource(v_ae1);
+								//Check that the resource has NOT been udpated
+								if(ischosen(v_primitiveContentRetrieveResource.transactionMgmt)) {
+									if(v_primitiveContentRetrieveResource.transactionMgmt.transactionControl == int3){
+										setverdict(fail, __SCOPE__ & ": Error: transactionControl attribute updated")
+									}
+								}
+							}
+					
+						} // TC_CSE_TMG_UPD_003_INI_EXE
+				
+						testcase TC_CSE_TMG_UPD_003_INI_ABT() runs on Tester system CseSystem {
+							// Local variables
+						
+							var AeSimu v_ae1 := AeSimu.create("AE1") alive;
+							var template RequestPrimitive v_updateRequest := m_updateTransactionMgmtBase;
+							var PrimitiveContent v_primitiveContentRetrieveResource;
+							v_updateRequest.primitiveContent.transactionMgmt.transactionControl := int5; //ABORT
+							var AggregatedRequest.request_list[-] v_requestPrim;
+					
+							v_requestPrim := {int1, "", "", -, -, -};
+					
+							var AggregatedRequest v_aggregatedRequest:=
+							{
+								request_list :=
+								{
+									[0] := v_requestPrim
+								}
+					
+							};
+							var template RequestPrimitive v_createRequest := m_createTransactionMgmtBase(v_aggregatedRequest);
+							v_createRequest.primitiveContent.transactionMgmt.transactionState := int1; //INITIAL
+							v_createRequest.primitiveContent.transactionMgmt.transactionMode := int2; //CREATOR_CONTROLLED
+					    
+							v_ae1.start(f_CSE_TMG_UPD_003(int50, v_createRequest, v_updateRequest));//Container
+							v_ae1.done;
+						
+							if(getverdict == pass){
+								v_primitiveContentRetrieveResource := f_getPrimitiveContentRetrievedResource(v_ae1);
+								//Check that the resource has NOT been udpated
+								if(ischosen(v_primitiveContentRetrieveResource.transactionMgmt)) {
+									if(v_primitiveContentRetrieveResource.transactionMgmt.transactionControl == int5){
+										setverdict(fail, __SCOPE__ & ": Error: transactionControl attribute updated")
+									}
+								}
+							}
+					
+						} // TC_CSE_TMG_UPD_003_INI_ABT
+				
+						testcase TC_CSE_TMG_UPD_003_INI_COM() runs on Tester system CseSystem {
+							// Local variables
+						
+							var AeSimu v_ae1 := AeSimu.create("AE1") alive;
+							var template RequestPrimitive v_updateRequest := m_updateTransactionMgmtBase;
+							var PrimitiveContent v_primitiveContentRetrieveResource;
+							v_updateRequest.primitiveContent.transactionMgmt.transactionControl := int4; //COMMIT
+							var AggregatedRequest.request_list[-] v_requestPrim;
+					
+							v_requestPrim := {int1, "", "", -, -, -};
+					
+							var AggregatedRequest v_aggregatedRequest:=
+							{
+								request_list :=
+								{
+									[0] := v_requestPrim
+								}
+					
+							};
+							var template RequestPrimitive v_createRequest := m_createTransactionMgmtBase(v_aggregatedRequest);
+							v_createRequest.primitiveContent.transactionMgmt.transactionState := int1; //INITIAL
+							v_createRequest.primitiveContent.transactionMgmt.transactionMode := int2; //CREATOR_CONTROLLED
+					    
+							v_ae1.start(f_CSE_TMG_UPD_003(int50, v_createRequest, v_updateRequest));//Container
+							v_ae1.done;
+						
+							if(getverdict == pass){
+								v_primitiveContentRetrieveResource := f_getPrimitiveContentRetrievedResource(v_ae1);
+								//Check that the resource has NOT been udpated
+								if(ischosen(v_primitiveContentRetrieveResource.transactionMgmt)) {
+									if(v_primitiveContentRetrieveResource.transactionMgmt.transactionControl == int4){
+										setverdict(fail, __SCOPE__ & ": Error: transactionControl attribute updated")
+									}
+								}
+							}
+					
+						} // TC_CSE_TMG_UPD_003_INI_COM
+				
+						testcase TC_CSE_TMG_UPD_003_INI_INI() runs on Tester system CseSystem {
+							// Local variables
+						
+							var AeSimu v_ae1 := AeSimu.create("AE1") alive;
+							var template RequestPrimitive v_updateRequest := m_updateTransactionMgmtBase;
+							var PrimitiveContent v_primitiveContentRetrieveResource;
+							v_updateRequest.primitiveContent.transactionMgmt.transactionControl := int1; //COMMIT
+							var AggregatedRequest.request_list[-] v_requestPrim;
+					
+							v_requestPrim := {int1, "", "", -, -, -};
+					
+							var AggregatedRequest v_aggregatedRequest:=
+							{
+								request_list :=
+								{
+									[0] := v_requestPrim
+								}
+					
+							};
+							var template RequestPrimitive v_createRequest := m_createTransactionMgmtBase(v_aggregatedRequest);
+							v_createRequest.primitiveContent.transactionMgmt.transactionState := int1; //INITIAL
+							v_createRequest.primitiveContent.transactionMgmt.transactionMode := int2; //CREATOR_CONTROLLED
+					    
+							v_ae1.start(f_CSE_TMG_UPD_003(int50, v_createRequest, v_updateRequest));//Container
+							v_ae1.done;
+						
+							if(getverdict == pass){
+								v_primitiveContentRetrieveResource := f_getPrimitiveContentRetrievedResource(v_ae1);
+								//Check that the resource has NOT been udpated
+								if(ischosen(v_primitiveContentRetrieveResource.transactionMgmt)) {
+									if(v_primitiveContentRetrieveResource.transactionMgmt.transactionControl == int1){
+										setverdict(fail, __SCOPE__ & ": Error: transactionControl attribute updated")
+									}
+								}
+							}
+					
+						} // TC_CSE_TMG_UPD_003_INI_INI
+				
+					} // end of TC_CSE_TMG_UPD_003_INI
+					
+					group TC_CSE_TMG_UPD_003_LOC{
+						testcase TC_CSE_TMG_UPD_003_LOC_INI() runs on Tester system CseSystem {
+							// Local variables
+						
+							var AeSimu v_ae1 := AeSimu.create("AE1") alive;
+							var template RequestPrimitive v_updateRequest := m_updateTransactionMgmtBase;
+							var PrimitiveContent v_primitiveContentRetrieveResource;
+							v_updateRequest.primitiveContent.transactionMgmt.transactionControl := int1; //INITIAL
+							var AggregatedRequest.request_list[-] v_requestPrim;
+					
+							v_requestPrim := {int1, "", "", -, -, -};
+					
+							var AggregatedRequest v_aggregatedRequest:=
+							{
+								request_list :=
+								{
+									[0] := v_requestPrim
+								}
+					
+							};
+							var template RequestPrimitive v_createRequest := m_createTransactionMgmtBase(v_aggregatedRequest);
+							v_createRequest.primitiveContent.transactionMgmt.transactionState := int2; //LOCKED
+							v_createRequest.primitiveContent.transactionMgmt.transactionMode := int2; //CREATOR_CONTROLLED
+					    
+							v_ae1.start(f_CSE_TMG_UPD_003(int50, v_createRequest, v_updateRequest));//Container
+							v_ae1.done;
+						
+							if(getverdict == pass){
+								v_primitiveContentRetrieveResource := f_getPrimitiveContentRetrievedResource(v_ae1);
+								//Check that the resource has NOT been udpated
+								if(ischosen(v_primitiveContentRetrieveResource.transactionMgmt)) {
+									if(v_primitiveContentRetrieveResource.transactionMgmt.transactionControl == int1){
+										setverdict(fail, __SCOPE__ & ": Error: transactionControl attribute updated")
+									}
+								}
+							}
+					
+						} // TC_CSE_TMG_UPD_003_LOC_INI
+				
+						testcase TC_CSE_TMG_UPD_003_LOC_LOC() runs on Tester system CseSystem {
+							// Local variables
+						
+							var AeSimu v_ae1 := AeSimu.create("AE1") alive;
+							var template RequestPrimitive v_updateRequest := m_updateTransactionMgmtBase;
+							var PrimitiveContent v_primitiveContentRetrieveResource;
+							v_updateRequest.primitiveContent.transactionMgmt.transactionControl := int2; //LOCK
+							var AggregatedRequest.request_list[-] v_requestPrim;
+					
+							v_requestPrim := {int1, "", "", -, -, -};
+					
+							var AggregatedRequest v_aggregatedRequest:=
+							{
+								request_list :=
+								{
+									[0] := v_requestPrim
+								}
+					
+							};
+							var template RequestPrimitive v_createRequest := m_createTransactionMgmtBase(v_aggregatedRequest);
+							v_createRequest.primitiveContent.transactionMgmt.transactionState := int2; //LOCKED
+							v_createRequest.primitiveContent.transactionMgmt.transactionMode := int2; //CREATOR_CONTROLLED
+					    
+							v_ae1.start(f_CSE_TMG_UPD_003(int50, v_createRequest, v_updateRequest));//Container
+							v_ae1.done;
+						
+							if(getverdict == pass){
+								v_primitiveContentRetrieveResource := f_getPrimitiveContentRetrievedResource(v_ae1);
+								//Check that the resource has NOT been udpated
+								if(ischosen(v_primitiveContentRetrieveResource.transactionMgmt)) {
+									if(v_primitiveContentRetrieveResource.transactionMgmt.transactionControl == int2){
+										setverdict(fail, __SCOPE__ & ": Error: transactionControl attribute updated")
+									}
+								}
+							}
+					
+						} // TC_CSE_TMG_UPD_003_LOC_LOC
+				
+						testcase TC_CSE_TMG_UPD_003_LOC_COM() runs on Tester system CseSystem {
+							// Local variables
+						
+							var AeSimu v_ae1 := AeSimu.create("AE1") alive;
+							var template RequestPrimitive v_updateRequest := m_updateTransactionMgmtBase;
+							var PrimitiveContent v_primitiveContentRetrieveResource;
+							v_updateRequest.primitiveContent.transactionMgmt.transactionControl := int4; //COMMIT
+							var AggregatedRequest.request_list[-] v_requestPrim;
+					
+							v_requestPrim := {int1, "", "", -, -, -};
+					
+							var AggregatedRequest v_aggregatedRequest:=
+							{
+								request_list :=
+								{
+									[0] := v_requestPrim
+								}
+					
+							};
+							var template RequestPrimitive v_createRequest := m_createTransactionMgmtBase(v_aggregatedRequest);
+							v_createRequest.primitiveContent.transactionMgmt.transactionState := int2; //LOCKED
+							v_createRequest.primitiveContent.transactionMgmt.transactionMode := int2; //CREATOR_CONTROLLED
+					    
+							v_ae1.start(f_CSE_TMG_UPD_003(int50, v_createRequest, v_updateRequest));//Container
+							v_ae1.done;
+						
+							if(getverdict == pass){
+								v_primitiveContentRetrieveResource := f_getPrimitiveContentRetrievedResource(v_ae1);
+								//Check that the resource has NOT been udpated
+								if(ischosen(v_primitiveContentRetrieveResource.transactionMgmt)) {
+									if(v_primitiveContentRetrieveResource.transactionMgmt.transactionControl == int4){
+										setverdict(fail, __SCOPE__ & ": Error: transactionControl attribute updated")
+									}
+								}
+							}
+					
+						} // TC_CSE_TMG_UPD_003_LOC_COM
+				
+					} // end of TC_CSE_TMG_UPD_003_LOC
+					
+					group TC_CSE_TMG_UPD_003_EXE{
+				
+						testcase TC_CSE_TMG_UPD_003_EXE_INI() runs on Tester system CseSystem {
+							// Local variables
+						
+							var AeSimu v_ae1 := AeSimu.create("AE1") alive;
+							var template RequestPrimitive v_updateRequest := m_updateTransactionMgmtBase;
+							var PrimitiveContent v_primitiveContentRetrieveResource;
+							v_updateRequest.primitiveContent.transactionMgmt.transactionControl := int1; // INITIAL
+							var AggregatedRequest.request_list[-] v_requestPrim;
+					
+							v_requestPrim := {int1, "", "", -, -, -};
+					
+							var AggregatedRequest v_aggregatedRequest:=
+							{
+								request_list :=
+								{
+									[0] := v_requestPrim
+								}
+					
+							};
+							var template RequestPrimitive v_createRequest := m_createTransactionMgmtBase(v_aggregatedRequest);
+							v_createRequest.primitiveContent.transactionMgmt.transactionState := int3; //EXECUTED
+							v_createRequest.primitiveContent.transactionMgmt.transactionMode := int2; //CREATOR_CONTROLLED
+					    
+							v_ae1.start(f_CSE_TMG_UPD_003(int50, v_createRequest, v_updateRequest));//Container
+							v_ae1.done;
+						
+							if(getverdict == pass){
+								v_primitiveContentRetrieveResource := f_getPrimitiveContentRetrievedResource(v_ae1);
+								//Check that the resource has NOT been udpated
+								if(ischosen(v_primitiveContentRetrieveResource.transactionMgmt)) {
+									if(v_primitiveContentRetrieveResource.transactionMgmt.transactionControl == int1){
+										setverdict(fail, __SCOPE__ & ": Error: transactionControl attribute updated")
+									}
+								}
+							}
+					
+						} // TC_CSE_TMG_UPD_003_EXE_INI
+				
+						testcase TC_CSE_TMG_UPD_003_EXE_LOC() runs on Tester system CseSystem {
+							// Local variables
+						
+							var AeSimu v_ae1 := AeSimu.create("AE1") alive;
+							var template RequestPrimitive v_updateRequest := m_updateTransactionMgmtBase;
+							var PrimitiveContent v_primitiveContentRetrieveResource;
+							v_updateRequest.primitiveContent.transactionMgmt.transactionControl := int2; // LOC
+							var AggregatedRequest.request_list[-] v_requestPrim;
+					
+							v_requestPrim := {int1, "", "", -, -, -};
+					
+							var AggregatedRequest v_aggregatedRequest:=
+							{
+								request_list :=
+								{
+									[0] := v_requestPrim
+								}
+					
+							};
+							var template RequestPrimitive v_createRequest := m_createTransactionMgmtBase(v_aggregatedRequest);
+							v_createRequest.primitiveContent.transactionMgmt.transactionState := int3; //EXECUTED
+							v_createRequest.primitiveContent.transactionMgmt.transactionMode := int2; //CREATOR_CONTROLLED
+					    
+							v_ae1.start(f_CSE_TMG_UPD_003(int50, v_createRequest, v_updateRequest));//Container
+							v_ae1.done;
+						
+							if(getverdict == pass){
+								v_primitiveContentRetrieveResource := f_getPrimitiveContentRetrievedResource(v_ae1);
+								//Check that the resource has NOT been udpated
+								if(ischosen(v_primitiveContentRetrieveResource.transactionMgmt)) {
+									if(v_primitiveContentRetrieveResource.transactionMgmt.transactionControl == int2){
+										setverdict(fail, __SCOPE__ & ": Error: transactionControl attribute updated")
+									}
+								}
+							}
+					
+						} // TC_CSE_TMG_UPD_003_EXE_LOC
+				
+						testcase TC_CSE_TMG_UPD_003_EXE_EXE() runs on Tester system CseSystem {
+							// Local variables
+						
+							var AeSimu v_ae1 := AeSimu.create("AE1") alive;
+							var template RequestPrimitive v_updateRequest := m_updateTransactionMgmtBase;
+							var PrimitiveContent v_primitiveContentRetrieveResource;
+							v_updateRequest.primitiveContent.transactionMgmt.transactionControl := int3; // EXECUTE
+							var AggregatedRequest.request_list[-] v_requestPrim;
+					
+							v_requestPrim := {int1, "", "", -, -, -};
+					
+							var AggregatedRequest v_aggregatedRequest:=
+							{
+								request_list :=
+								{
+									[0] := v_requestPrim
+								}
+					
+							};
+							var template RequestPrimitive v_createRequest := m_createTransactionMgmtBase(v_aggregatedRequest);
+							v_createRequest.primitiveContent.transactionMgmt.transactionState := int3; //EXECUTED
+							v_createRequest.primitiveContent.transactionMgmt.transactionMode := int2; //CREATOR_CONTROLLED
+					    
+							v_ae1.start(f_CSE_TMG_UPD_003(int50, v_createRequest, v_updateRequest));//Container
+							v_ae1.done;
+						
+							if(getverdict == pass){
+								v_primitiveContentRetrieveResource := f_getPrimitiveContentRetrievedResource(v_ae1);
+								//Check that the resource has NOT been udpated
+								if(ischosen(v_primitiveContentRetrieveResource.transactionMgmt)) {
+									if(v_primitiveContentRetrieveResource.transactionMgmt.transactionControl == int3){
+										setverdict(fail, __SCOPE__ & ": Error: transactionControl attribute updated")
+									}
+								}
+							}
+					
+						} // TC_CSE_TMG_UPD_003_EXE_EXE
+				
+					} // end of TC_CSE_TMG_UPD_003_EXE
+					
+					group TC_CSE_TMG_UPD_003_COM {
+				
+						testcase TC_CSE_TMG_UPD_003_COM_LOC() runs on Tester system CseSystem {
+							// Local variables
+						
+							var AeSimu v_ae1 := AeSimu.create("AE1") alive;
+							var template RequestPrimitive v_updateRequest := m_updateTransactionMgmtBase;
+							var PrimitiveContent v_primitiveContentRetrieveResource;
+							v_updateRequest.primitiveContent.transactionMgmt.transactionControl := int2; // LOC
+							var AggregatedRequest.request_list[-] v_requestPrim;
+					
+							v_requestPrim := {int1, "", "", -, -, -};
+					
+							var AggregatedRequest v_aggregatedRequest:=
+							{
+								request_list :=
+								{
+									[0] := v_requestPrim
+								}
+					
+							};
+							var template RequestPrimitive v_createRequest := m_createTransactionMgmtBase(v_aggregatedRequest);
+							v_createRequest.primitiveContent.transactionMgmt.transactionState := int4; //COMMITED
+							v_createRequest.primitiveContent.transactionMgmt.transactionMode := int2; //CREATOR_CONTROLLED
+					    
+							v_ae1.start(f_CSE_TMG_UPD_003(int50, v_createRequest, v_updateRequest));//Container
+							v_ae1.done;
+						
+							if(getverdict == pass){
+								v_primitiveContentRetrieveResource := f_getPrimitiveContentRetrievedResource(v_ae1);
+								//Check that the resource has NOT been udpated
+								if(ischosen(v_primitiveContentRetrieveResource.transactionMgmt)) {
+									if(v_primitiveContentRetrieveResource.transactionMgmt.transactionControl == int2){
+										setverdict(fail, __SCOPE__ & ": Error: transactionControl attribute updated")
+									}
+								}
+							}
+					
+						} // TC_CSE_TMG_UPD_003_COM_LOC
+				
+				
+						testcase TC_CSE_TMG_UPD_003_COM_EXE() runs on Tester system CseSystem {
+							// Local variables
+						
+							var AeSimu v_ae1 := AeSimu.create("AE1") alive;
+							var template RequestPrimitive v_updateRequest := m_updateTransactionMgmtBase;
+							var PrimitiveContent v_primitiveContentRetrieveResource;
+							v_updateRequest.primitiveContent.transactionMgmt.transactionControl := int3; // EXECUTE
+							var AggregatedRequest.request_list[-] v_requestPrim;
+					
+							v_requestPrim := {int1, "", "", -, -, -};
+					
+							var AggregatedRequest v_aggregatedRequest:=
+							{
+								request_list :=
+								{
+									[0] := v_requestPrim
+								}
+					
+							};
+							var template RequestPrimitive v_createRequest := m_createTransactionMgmtBase(v_aggregatedRequest);
+							v_createRequest.primitiveContent.transactionMgmt.transactionState := int4; //COMMITED
+							v_createRequest.primitiveContent.transactionMgmt.transactionMode := int2; //CREATOR_CONTROLLED
+					    
+							v_ae1.start(f_CSE_TMG_UPD_003(int50, v_createRequest, v_updateRequest));//Container
+							v_ae1.done;
+						
+							if(getverdict == pass){
+								v_primitiveContentRetrieveResource := f_getPrimitiveContentRetrievedResource(v_ae1);
+								//Check that the resource has NOT been udpated
+								if(ischosen(v_primitiveContentRetrieveResource.transactionMgmt)) {
+									if(v_primitiveContentRetrieveResource.transactionMgmt.transactionControl == int3){
+										setverdict(fail, __SCOPE__ & ": Error: transactionControl attribute updated")
+									}
+								}
+							}
+					
+						} // TC_CSE_TMG_UPD_003_COM_EXE
+				
+						testcase TC_CSE_TMG_UPD_003_COM_COM() runs on Tester system CseSystem {
+							// Local variables
+						
+							var AeSimu v_ae1 := AeSimu.create("AE1") alive;
+							var template RequestPrimitive v_updateRequest := m_updateTransactionMgmtBase;
+							var PrimitiveContent v_primitiveContentRetrieveResource;
+							v_updateRequest.primitiveContent.transactionMgmt.transactionControl := int4; // COMMIT
+							var AggregatedRequest.request_list[-] v_requestPrim;
+					
+							v_requestPrim := {int1, "", "", -, -, -};
+					
+							var AggregatedRequest v_aggregatedRequest:=
+							{
+								request_list :=
+								{
+									[0] := v_requestPrim
+								}
+					
+							};
+							var template RequestPrimitive v_createRequest := m_createTransactionMgmtBase(v_aggregatedRequest);
+							v_createRequest.primitiveContent.transactionMgmt.transactionState := int4; //COMMITED
+							v_createRequest.primitiveContent.transactionMgmt.transactionMode := int2; //CREATOR_CONTROLLED
+					    
+							v_ae1.start(f_CSE_TMG_UPD_003(int50, v_createRequest, v_updateRequest));//Container
+							v_ae1.done;
+						
+							if(getverdict == pass){
+								v_primitiveContentRetrieveResource := f_getPrimitiveContentRetrievedResource(v_ae1);
+								//Check that the resource has NOT been udpated
+								if(ischosen(v_primitiveContentRetrieveResource.transactionMgmt)) {
+									if(v_primitiveContentRetrieveResource.transactionMgmt.transactionControl == int4){
+										setverdict(fail, __SCOPE__ & ": Error: transactionControl attribute updated")
+									}
+								}
+							}
+					
+						} // TC_CSE_TMG_UPD_003_COM_COM
+				
+						testcase TC_CSE_TMG_UPD_003_COM_ABT() runs on Tester system CseSystem {
+							// Local variables
+						
+							var AeSimu v_ae1 := AeSimu.create("AE1") alive;
+							var template RequestPrimitive v_updateRequest := m_updateTransactionMgmtBase;
+							var PrimitiveContent v_primitiveContentRetrieveResource;
+							v_updateRequest.primitiveContent.transactionMgmt.transactionControl := int5; // ABORT
+							var AggregatedRequest.request_list[-] v_requestPrim;
+					
+							v_requestPrim := {int1, "", "", -, -, -};
+					
+							var AggregatedRequest v_aggregatedRequest:=
+							{
+								request_list :=
+								{
+									[0] := v_requestPrim
+								}
+					
+							};
+							var template RequestPrimitive v_createRequest := m_createTransactionMgmtBase(v_aggregatedRequest);
+							v_createRequest.primitiveContent.transactionMgmt.transactionState := int4; //COMMITED
+							v_createRequest.primitiveContent.transactionMgmt.transactionMode := int2; //CREATOR_CONTROLLED
+					    
+							v_ae1.start(f_CSE_TMG_UPD_003(int50, v_createRequest, v_updateRequest));//Container
+							v_ae1.done;
+						
+							if(getverdict == pass){
+								v_primitiveContentRetrieveResource := f_getPrimitiveContentRetrievedResource(v_ae1);
+								//Check that the resource has NOT been udpated
+								if(ischosen(v_primitiveContentRetrieveResource.transactionMgmt)) {
+									if(v_primitiveContentRetrieveResource.transactionMgmt.transactionControl == int5){
+										setverdict(fail, __SCOPE__ & ": Error: transactionControl attribute updated")
+									}
+								}
+							}
+					
+						} // TC_CSE_TMG_UPD_003_COM_ABT
+				
+					} // end of TC_CSE_TMG_UPD_003_COM
+					
+					group TC_CSE_TMG_UPD_003_ERR{
+				
+						testcase TC_CSE_TMG_UPD_003_ERR_LOC() runs on Tester system CseSystem {
+							// Local variables
+						
+							var AeSimu v_ae1 := AeSimu.create("AE1") alive;
+							var template RequestPrimitive v_updateRequest := m_updateTransactionMgmtBase;
+							var PrimitiveContent v_primitiveContentRetrieveResource;
+							v_updateRequest.primitiveContent.transactionMgmt.transactionControl := int2; // LOCK
+							var AggregatedRequest.request_list[-] v_requestPrim;
+					
+							v_requestPrim := {int1, "", "", -, -, -};
+					
+							var AggregatedRequest v_aggregatedRequest:=
+							{
+								request_list :=
+								{
+									[0] := v_requestPrim
+								}
+					
+							};
+							var template RequestPrimitive v_createRequest := m_createTransactionMgmtBase(v_aggregatedRequest);
+							v_createRequest.primitiveContent.transactionMgmt.transactionState := int5; //ERROR
+							v_createRequest.primitiveContent.transactionMgmt.transactionMode := int2; //CREATOR_CONTROLLED
+					    
+							v_ae1.start(f_CSE_TMG_UPD_003(int50, v_createRequest, v_updateRequest));//Container
+							v_ae1.done;
+						
+							if(getverdict == pass){
+								v_primitiveContentRetrieveResource := f_getPrimitiveContentRetrievedResource(v_ae1);
+								//Check that the resource has NOT been udpated
+								if(ischosen(v_primitiveContentRetrieveResource.transactionMgmt)) {
+									if(v_primitiveContentRetrieveResource.transactionMgmt.transactionControl == int2){
+										setverdict(fail, __SCOPE__ & ": Error: transactionControl attribute updated")
+									}
+								}
+							}
+					
+						} // TC_CSE_TMG_UPD_003_ERR_LOC
+				
+						testcase TC_CSE_TMG_UPD_003_ERR_EXE() runs on Tester system CseSystem {
+							// Local variables
+						
+							var AeSimu v_ae1 := AeSimu.create("AE1") alive;
+							var template RequestPrimitive v_updateRequest := m_updateTransactionMgmtBase;
+							var PrimitiveContent v_primitiveContentRetrieveResource;
+							v_updateRequest.primitiveContent.transactionMgmt.transactionControl := int3; // EXECUTE
+							var AggregatedRequest.request_list[-] v_requestPrim;
+					
+							v_requestPrim := {int1, "", "", -, -, -};
+					
+							var AggregatedRequest v_aggregatedRequest:=
+							{
+								request_list :=
+								{
+									[0] := v_requestPrim
+								}
+					
+							};
+							var template RequestPrimitive v_createRequest := m_createTransactionMgmtBase(v_aggregatedRequest);
+							v_createRequest.primitiveContent.transactionMgmt.transactionState := int5; //ERROR
+							v_createRequest.primitiveContent.transactionMgmt.transactionMode := int2; //CREATOR_CONTROLLED
+					    
+							v_ae1.start(f_CSE_TMG_UPD_003(int50, v_createRequest, v_updateRequest));//Container
+							v_ae1.done;
+						
+							if(getverdict == pass){
+								v_primitiveContentRetrieveResource := f_getPrimitiveContentRetrievedResource(v_ae1);
+								//Check that the resource has NOT been udpated
+								if(ischosen(v_primitiveContentRetrieveResource.transactionMgmt)) {
+									if(v_primitiveContentRetrieveResource.transactionMgmt.transactionControl == int3){
+										setverdict(fail, __SCOPE__ & ": Error: transactionControl attribute updated")
+									}
+								}
+							}
+					
+						} // TC_CSE_TMG_UPD_003_ERR_EXE
+				
+						testcase TC_CSE_TMG_UPD_003_ERR_COM() runs on Tester system CseSystem {
+							// Local variables
+						
+							var AeSimu v_ae1 := AeSimu.create("AE1") alive;
+							var template RequestPrimitive v_updateRequest := m_updateTransactionMgmtBase;
+							var PrimitiveContent v_primitiveContentRetrieveResource;
+							v_updateRequest.primitiveContent.transactionMgmt.transactionControl := int4; // COMMIT
+							var AggregatedRequest.request_list[-] v_requestPrim;
+					
+							v_requestPrim := {int1, "", "", -, -, -};
+					
+							var AggregatedRequest v_aggregatedRequest:=
+							{
+								request_list :=
+								{
+									[0] := v_requestPrim
+								}
+					
+							};
+							var template RequestPrimitive v_createRequest := m_createTransactionMgmtBase(v_aggregatedRequest);
+							v_createRequest.primitiveContent.transactionMgmt.transactionState := int5; //ERROR
+							v_createRequest.primitiveContent.transactionMgmt.transactionMode := int2; //CREATOR_CONTROLLED
+					    
+							v_ae1.start(f_CSE_TMG_UPD_003(int50, v_createRequest, v_updateRequest));//Container
+							v_ae1.done;
+						
+							if(getverdict == pass){
+								v_primitiveContentRetrieveResource := f_getPrimitiveContentRetrievedResource(v_ae1);
+								//Check that the resource has NOT been udpated
+								if(ischosen(v_primitiveContentRetrieveResource.transactionMgmt)) {
+									if(v_primitiveContentRetrieveResource.transactionMgmt.transactionControl == int4){
+										setverdict(fail, __SCOPE__ & ": Error: transactionControl attribute updated")
+									}
+								}
+							}
+					
+						} // TC_CSE_TMG_UPD_003_ERR_COM
+				
+					} // end of TC_CSE_TMG_UPD_003_ERR
+					
+					group TC_CSE_TMG_UPD_003_ABT {
+						testcase TC_CSE_TMG_UPD_003_ABT_LOC() runs on Tester system CseSystem {
+							// Local variables
+						
+							var AeSimu v_ae1 := AeSimu.create("AE1") alive;
+							var template RequestPrimitive v_updateRequest := m_updateTransactionMgmtBase;
+							var PrimitiveContent v_primitiveContentRetrieveResource;
+							v_updateRequest.primitiveContent.transactionMgmt.transactionControl := int2; // LOCK
+							var AggregatedRequest.request_list[-] v_requestPrim;
+					
+							v_requestPrim := {int1, "", "", -, -, -};
+					
+							var AggregatedRequest v_aggregatedRequest:=
+							{
+								request_list :=
+								{
+									[0] := v_requestPrim
+								}
+					
+							};
+							var template RequestPrimitive v_createRequest := m_createTransactionMgmtBase(v_aggregatedRequest);
+							v_createRequest.primitiveContent.transactionMgmt.transactionState := int6; //ABORTED
+							v_createRequest.primitiveContent.transactionMgmt.transactionMode := int2; //CREATOR_CONTROLLED
+					    
+							v_ae1.start(f_CSE_TMG_UPD_003(int50, v_createRequest, v_updateRequest));//Container
+							v_ae1.done;
+						
+							if(getverdict == pass){
+								v_primitiveContentRetrieveResource := f_getPrimitiveContentRetrievedResource(v_ae1);
+								//Check that the resource has NOT been udpated
+								if(ischosen(v_primitiveContentRetrieveResource.transactionMgmt)) {
+									if(v_primitiveContentRetrieveResource.transactionMgmt.transactionControl == int2){
+										setverdict(fail, __SCOPE__ & ": Error: transactionControl attribute updated")
+									}
+								}
+							}
+					
+						} // TC_CSE_TMG_UPD_003_ABT_LOC
+				
+						testcase TC_CSE_TMG_UPD_003_ABT_EXE() runs on Tester system CseSystem {
+							// Local variables
+						
+							var AeSimu v_ae1 := AeSimu.create("AE1") alive;
+							var template RequestPrimitive v_updateRequest := m_updateTransactionMgmtBase;
+							var PrimitiveContent v_primitiveContentRetrieveResource;
+							v_updateRequest.primitiveContent.transactionMgmt.transactionControl := int3; // EXECUTE
+							var AggregatedRequest.request_list[-] v_requestPrim;
+					
+							v_requestPrim := {int1, "", "", -, -, -};
+					
+							var AggregatedRequest v_aggregatedRequest:=
+							{
+								request_list :=
+								{
+									[0] := v_requestPrim
+								}
+					
+							};
+							var template RequestPrimitive v_createRequest := m_createTransactionMgmtBase(v_aggregatedRequest);
+							v_createRequest.primitiveContent.transactionMgmt.transactionState := int6; //ABORTED
+							v_createRequest.primitiveContent.transactionMgmt.transactionMode := int2; //CREATOR_CONTROLLED
+					    
+							v_ae1.start(f_CSE_TMG_UPD_003(int50, v_createRequest, v_updateRequest));//Container
+							v_ae1.done;
+						
+							if(getverdict == pass){
+								v_primitiveContentRetrieveResource := f_getPrimitiveContentRetrievedResource(v_ae1);
+								//Check that the resource has NOT been udpated
+								if(ischosen(v_primitiveContentRetrieveResource.transactionMgmt)) {
+									if(v_primitiveContentRetrieveResource.transactionMgmt.transactionControl == int3){
+										setverdict(fail, __SCOPE__ & ": Error: transactionControl attribute updated")
+									}
+								}
+							}
+					
+						} // TC_CSE_TMG_UPD_003_ABT_EXE
+				
+						testcase TC_CSE_TMG_UPD_003_ABT_COM() runs on Tester system CseSystem {
+							// Local variables
+						
+							var AeSimu v_ae1 := AeSimu.create("AE1") alive;
+							var template RequestPrimitive v_updateRequest := m_updateTransactionMgmtBase;
+							var PrimitiveContent v_primitiveContentRetrieveResource;
+							v_updateRequest.primitiveContent.transactionMgmt.transactionControl := int4; // COMMIT
+							var AggregatedRequest.request_list[-] v_requestPrim;
+					
+							v_requestPrim := {int1, "", "", -, -, -};
+					
+							var AggregatedRequest v_aggregatedRequest:=
+							{
+								request_list :=
+								{
+									[0] := v_requestPrim
+								}
+					
+							};
+							var template RequestPrimitive v_createRequest := m_createTransactionMgmtBase(v_aggregatedRequest);
+							v_createRequest.primitiveContent.transactionMgmt.transactionState := int6; //ABORTED
+							v_createRequest.primitiveContent.transactionMgmt.transactionMode := int2; //CREATOR_CONTROLLED
+					    
+							v_ae1.start(f_CSE_TMG_UPD_003(int50, v_createRequest, v_updateRequest));//Container
+							v_ae1.done;
+						
+							if(getverdict == pass){
+								v_primitiveContentRetrieveResource := f_getPrimitiveContentRetrievedResource(v_ae1);
+								//Check that the resource has NOT been udpated
+								if(ischosen(v_primitiveContentRetrieveResource.transactionMgmt)) {
+									if(v_primitiveContentRetrieveResource.transactionMgmt.transactionControl == int4){
+										setverdict(fail, __SCOPE__ & ": Error: transactionControl attribute updated")
+									}
+								}
+							}
+					
+						} // TC_CSE_TMG_UPD_003_ABT_COM
+				
+						testcase TC_CSE_TMG_UPD_003_ABT_ABT() runs on Tester system CseSystem {
+							// Local variables
+						
+							var AeSimu v_ae1 := AeSimu.create("AE1") alive;
+							var template RequestPrimitive v_updateRequest := m_updateTransactionMgmtBase;
+							var PrimitiveContent v_primitiveContentRetrieveResource;
+							v_updateRequest.primitiveContent.transactionMgmt.transactionControl := int5; // ABORT
+							var AggregatedRequest.request_list[-] v_requestPrim;
+					
+							v_requestPrim := {int1, "", "", -, -, -};
+					
+							var AggregatedRequest v_aggregatedRequest:=
+							{
+								request_list :=
+								{
+									[0] := v_requestPrim
+								}
+					
+							};
+							var template RequestPrimitive v_createRequest := m_createTransactionMgmtBase(v_aggregatedRequest);
+							v_createRequest.primitiveContent.transactionMgmt.transactionState := int6; //ABORTED
+							v_createRequest.primitiveContent.transactionMgmt.transactionMode := int2; //CREATOR_CONTROLLED
+					    
+							v_ae1.start(f_CSE_TMG_UPD_003(int50, v_createRequest, v_updateRequest));//Container
+							v_ae1.done;
+						
+							if(getverdict == pass){
+								v_primitiveContentRetrieveResource := f_getPrimitiveContentRetrievedResource(v_ae1);
+								//Check that the resource has NOT been udpated
+								if(ischosen(v_primitiveContentRetrieveResource.transactionMgmt)) {
+									if(v_primitiveContentRetrieveResource.transactionMgmt.transactionControl == int5){
+										setverdict(fail, __SCOPE__ & ": Error: transactionControl attribute updated")
+									}
+								}
+							}
+					
+						} // TC_CSE_TMG_UPD_003_ABT_ABT
+				
+					} // end of TC_CSE_TMG_UPD_003_ABT
+				}  // end of TC_CSE_TMG_UPD_003
+				
+				group TC_CSE_TMG_UPD_004{
+					testcase TC_CSE_TMG_UPD_004_INI() runs on Tester system CseSystem {
+						// Local variables
+						
+						var AeSimu v_ae1 := AeSimu.create("AE1") alive;
+						var template RequestPrimitive v_updateRequest := m_updateTransactionMgmtBase;
+						var PrimitiveContent v_primitiveContentRetrieveResource;
+						v_updateRequest.primitiveContent.transactionMgmt.transactionControl := int2; // ABORT
+						var AggregatedRequest.request_list[-] v_requestPrim;
+					
+						v_requestPrim := {int1, "", "", -, -, -};
+					
+						var AggregatedRequest v_aggregatedRequest:=
+						{
+							request_list :=
+							{
+								[0] := v_requestPrim
+							}
+					
+						};
+						var template RequestPrimitive v_createRequest := m_createTransactionMgmtBase(v_aggregatedRequest);
+						v_createRequest.primitiveContent.transactionMgmt.transactionState := int1; // INITIAL
+						v_createRequest.primitiveContent.transactionMgmt.transactionMode := int2; //CREATOR_CONTROLLED
+					    
+						v_ae1.start(f_CSE_TMG_UPD_004(int50, v_createRequest, v_updateRequest));//TransactionMgmt
+						v_ae1.done;
+						
+						if(getverdict == pass){
+							v_primitiveContentRetrieveResource := f_getPrimitiveContentRetrievedResource(v_ae1);
+							//Check that the resource has NOT been udpated
+							if(ischosen(v_primitiveContentRetrieveResource.transactionMgmt)) {
+								if(v_primitiveContentRetrieveResource.transactionMgmt.transactionControl != int2){
+									setverdict(fail, __SCOPE__ & ": Error: transactionControl attribute not updated")
+								}
+							}
+						}
+					
+					} // TC_CSE_TMG_UPD_004_INI
+						
+					group TC_CSE_TMG_UPD_004_LOC{
+						
+						testcase TC_CSE_TMG_UPD_004_LOC_EXE() runs on Tester system CseSystem {
+							// Local variables
+						
+							var AeSimu v_ae1 := AeSimu.create("AE1") alive;
+							var template RequestPrimitive v_updateRequest := m_updateTransactionMgmtBase;
+							var PrimitiveContent v_primitiveContentRetrieveResource;
+							v_updateRequest.primitiveContent.transactionMgmt.transactionControl := int3; // EXECUTE
+							var AggregatedRequest.request_list[-] v_requestPrim;
+					
+							v_requestPrim := {int1, "", "", -, -, -};
+					
+							var AggregatedRequest v_aggregatedRequest:=
+							{
+								request_list :=
+								{
+									[0] := v_requestPrim
+								}
+					
+							};
+							var template RequestPrimitive v_createRequest := m_createTransactionMgmtBase(v_aggregatedRequest);
+							v_createRequest.primitiveContent.transactionMgmt.transactionState := int2; // LOCKED
+							v_createRequest.primitiveContent.transactionMgmt.transactionMode := int2; //CREATOR_CONTROLLED
+					    
+							v_ae1.start(f_CSE_TMG_UPD_004(int50, v_createRequest, v_updateRequest));//TransactionMgmt
+							v_ae1.done;
+						
+							if(getverdict == pass){
+								v_primitiveContentRetrieveResource := f_getPrimitiveContentRetrievedResource(v_ae1);
+								//Check that the resource has NOT been udpated
+								if(ischosen(v_primitiveContentRetrieveResource.transactionMgmt)) {
+									if(v_primitiveContentRetrieveResource.transactionMgmt.transactionControl != int3){
+										setverdict(fail, __SCOPE__ & ": Error: transactionControl attribute not updated")
+									}
+								}
+							}
+					
+						} // TC_CSE_TMG_UPD_004_LOC_EXE
+						
+						testcase TC_CSE_TMG_UPD_004_LOC_ABT() runs on Tester system CseSystem {
+							// Local variables
+						
+							var AeSimu v_ae1 := AeSimu.create("AE1") alive;
+							var template RequestPrimitive v_updateRequest := m_updateTransactionMgmtBase;
+							var PrimitiveContent v_primitiveContentRetrieveResource;
+							v_updateRequest.primitiveContent.transactionMgmt.transactionControl := int5; // ABORT
+							var AggregatedRequest.request_list[-] v_requestPrim;
+					
+							v_requestPrim := {int1, "", "", -, -, -};
+					
+							var AggregatedRequest v_aggregatedRequest:=
+							{
+								request_list :=
+								{
+									[0] := v_requestPrim
+								}
+					
+							};
+							var template RequestPrimitive v_createRequest := m_createTransactionMgmtBase(v_aggregatedRequest);
+							v_createRequest.primitiveContent.transactionMgmt.transactionState := int2; // LOCKED
+							v_createRequest.primitiveContent.transactionMgmt.transactionMode := int2; //CREATOR_CONTROLLED
+					    
+							v_ae1.start(f_CSE_TMG_UPD_004(int50, v_createRequest, v_updateRequest));//TransactionMgmt
+							v_ae1.done;
+						
+							if(getverdict == pass){
+								v_primitiveContentRetrieveResource := f_getPrimitiveContentRetrievedResource(v_ae1);
+								//Check that the resource has NOT been udpated
+								if(ischosen(v_primitiveContentRetrieveResource.transactionMgmt)) {
+									if(v_primitiveContentRetrieveResource.transactionMgmt.transactionControl != int5){
+										setverdict(fail, __SCOPE__ & ": Error: transactionControl attribute not updated")
+									}
+								}
+							}
+					
+						} // TC_CSE_TMG_UPD_004_LOC_EXE
+						
+					} //end TC_CSE_TMG_UPD_004_LOC
+						
+					group TC_CSE_TMG_UPD_004_EXE{
+						testcase TC_CSE_TMG_UPD_004_EXE_COM() runs on Tester system CseSystem {
+							// Local variables
+						
+							var AeSimu v_ae1 := AeSimu.create("AE1") alive;
+							var template RequestPrimitive v_updateRequest := m_updateTransactionMgmtBase;
+							var PrimitiveContent v_primitiveContentRetrieveResource;
+							v_updateRequest.primitiveContent.transactionMgmt.transactionControl := int4; // COMMIT
+							var AggregatedRequest.request_list[-] v_requestPrim;
+					
+							v_requestPrim := {int1, "", "", -, -, -};
+					
+							var AggregatedRequest v_aggregatedRequest:=
+							{
+								request_list :=
+								{
+									[0] := v_requestPrim
+								}
+					
+							};
+							var template RequestPrimitive v_createRequest := m_createTransactionMgmtBase(v_aggregatedRequest);
+							v_createRequest.primitiveContent.transactionMgmt.transactionState := int3; // EXECUTED
+							v_createRequest.primitiveContent.transactionMgmt.transactionMode := int2; //CREATOR_CONTROLLED
+					    
+							v_ae1.start(f_CSE_TMG_UPD_004(int50, v_createRequest, v_updateRequest));//TransactionMgmt
+							v_ae1.done;
+						
+							if(getverdict == pass){
+								v_primitiveContentRetrieveResource := f_getPrimitiveContentRetrievedResource(v_ae1);
+								//Check that the resource has NOT been udpated
+								if(ischosen(v_primitiveContentRetrieveResource.transactionMgmt)) {
+									if(v_primitiveContentRetrieveResource.transactionMgmt.transactionControl != int4){
+										setverdict(fail, __SCOPE__ & ": Error: transactionControl attribute not updated")
+									}
+								}
+							}
+					
+						} // TC_CSE_TMG_UPD_004_EXE_COM
+						
+						testcase TC_CSE_TMG_UPD_004_EXE_ABT() runs on Tester system CseSystem {
+							// Local variables
+						
+							var AeSimu v_ae1 := AeSimu.create("AE1") alive;
+							var template RequestPrimitive v_updateRequest := m_updateTransactionMgmtBase;
+							var PrimitiveContent v_primitiveContentRetrieveResource;
+							v_updateRequest.primitiveContent.transactionMgmt.transactionControl := int5; // ABORTED
+							var AggregatedRequest.request_list[-] v_requestPrim;
+					
+							v_requestPrim := {int1, "", "", -, -, -};
+					
+							var AggregatedRequest v_aggregatedRequest:=
+							{
+								request_list :=
+								{
+									[0] := v_requestPrim
+								}
+					
+							};
+							var template RequestPrimitive v_createRequest := m_createTransactionMgmtBase(v_aggregatedRequest);
+							v_createRequest.primitiveContent.transactionMgmt.transactionState := int3; // EXECUTED
+							v_createRequest.primitiveContent.transactionMgmt.transactionMode := int2; //CREATOR_CONTROLLED
+					    
+							v_ae1.start(f_CSE_TMG_UPD_004(int50, v_createRequest, v_updateRequest));//TransactionMgmt
+							v_ae1.done;
+						
+							if(getverdict == pass){
+								v_primitiveContentRetrieveResource := f_getPrimitiveContentRetrievedResource(v_ae1);
+								//Check that the resource has NOT been udpated
+								if(ischosen(v_primitiveContentRetrieveResource.transactionMgmt)) {
+									if(v_primitiveContentRetrieveResource.transactionMgmt.transactionControl != int5){
+										setverdict(fail, __SCOPE__ & ": Error: transactionControl attribute not updated")
+									}
+								}
+							}
+					
+						} // TC_CSE_TMG_UPD_004_EXE_ABT
+						
+						
+					} // end TC_CSE_TMG_UPD_004_EXE
+						
+				
+					group TC_CSE_TMG_UPD_004_ERR{
+						testcase TC_CSE_TMG_UPD_004_ERR_ABT() runs on Tester system CseSystem {
+							// Local variables
+						
+							var AeSimu v_ae1 := AeSimu.create("AE1") alive;
+							var template RequestPrimitive v_updateRequest := m_updateTransactionMgmtBase;
+							var PrimitiveContent v_primitiveContentRetrieveResource;
+							v_updateRequest.primitiveContent.transactionMgmt.transactionControl := int5; // ABORTED
+							var AggregatedRequest.request_list[-] v_requestPrim;
+					
+							v_requestPrim := {int1, "", "", -, -, -};
+					
+							var AggregatedRequest v_aggregatedRequest:=
+							{
+								request_list :=
+								{
+									[0] := v_requestPrim
+								}
+					
+							};
+							var template RequestPrimitive v_createRequest := m_createTransactionMgmtBase(v_aggregatedRequest);
+							v_createRequest.primitiveContent.transactionMgmt.transactionState := int5; // ERROR
+							v_createRequest.primitiveContent.transactionMgmt.transactionMode := int2; //CREATOR_CONTROLLED
+					    
+							v_ae1.start(f_CSE_TMG_UPD_004(int50, v_createRequest, v_updateRequest));//TransactionMgmt
+							v_ae1.done;
+						
+							if(getverdict == pass){
+								v_primitiveContentRetrieveResource := f_getPrimitiveContentRetrievedResource(v_ae1);
+								//Check that the resource has NOT been udpated
+								if(ischosen(v_primitiveContentRetrieveResource.transactionMgmt)) {
+									if(v_primitiveContentRetrieveResource.transactionMgmt.transactionControl != int5){
+										setverdict(fail, __SCOPE__ & ": Error: transactionControl attribute not updated")
+									}
+								}
+							}
+					
+						} // TC_CSE_TMG_UPD_004_ERR_ABT
+						
+						testcase TC_CSE_TMG_UPD_004_ERR_INI() runs on Tester system CseSystem {
+							// Local variables
+						
+							var AeSimu v_ae1 := AeSimu.create("AE1") alive;
+							var template RequestPrimitive v_updateRequest := m_updateTransactionMgmtBase;
+							var PrimitiveContent v_primitiveContentRetrieveResource;
+							v_updateRequest.primitiveContent.transactionMgmt.transactionControl := int1; // INITIAL
+							var AggregatedRequest.request_list[-] v_requestPrim;
+					
+							v_requestPrim := {int1, "", "", -, -, -};
+					
+							var AggregatedRequest v_aggregatedRequest:=
+							{
+								request_list :=
+								{
+									[0] := v_requestPrim
+								}
+					
+							};
+							var template RequestPrimitive v_createRequest := m_createTransactionMgmtBase(v_aggregatedRequest);
+							v_createRequest.primitiveContent.transactionMgmt.transactionState := int5; // ERROR
+							v_createRequest.primitiveContent.transactionMgmt.transactionMode := int2; //CREATOR_CONTROLLED
+					    
+							v_ae1.start(f_CSE_TMG_UPD_004(int50, v_createRequest, v_updateRequest));//TransactionMgmt
+							v_ae1.done;
+						
+							if(getverdict == pass){
+								v_primitiveContentRetrieveResource := f_getPrimitiveContentRetrievedResource(v_ae1);
+								//Check that the resource has NOT been udpated
+								if(ischosen(v_primitiveContentRetrieveResource.transactionMgmt)) {
+									if(v_primitiveContentRetrieveResource.transactionMgmt.transactionControl != int1){
+										setverdict(fail, __SCOPE__ & ": Error: transactionControl attribute not updated")
+									}
+								}
+							}
+					
+						} // TC_CSE_TMG_UPD_004_ERR_INI
+					} // end TC_CSE_TMG_UPD_004_ERR
+						
+					testcase TC_CSE_TMG_UPD_004_COM() runs on Tester system CseSystem {
+						// Local variables
+						
+						var AeSimu v_ae1 := AeSimu.create("AE1") alive;
+						var template RequestPrimitive v_updateRequest := m_updateTransactionMgmtBase;
+						var PrimitiveContent v_primitiveContentRetrieveResource;
+						v_updateRequest.primitiveContent.transactionMgmt.transactionControl := int1; // INITIAL
+						var AggregatedRequest.request_list[-] v_requestPrim;
+					
+						v_requestPrim := {int1, "", "", -, -, -};
+					
+						var AggregatedRequest v_aggregatedRequest:=
+						{
+							request_list :=
+							{
+								[0] := v_requestPrim
+							}
+					
+						};
+						var template RequestPrimitive v_createRequest := m_createTransactionMgmtBase(v_aggregatedRequest);
+						v_createRequest.primitiveContent.transactionMgmt.transactionState := int4; // COMMITTED
+						v_createRequest.primitiveContent.transactionMgmt.transactionMode := int2; //CREATOR_CONTROLLED
+					    
+						v_ae1.start(f_CSE_TMG_UPD_004(int50, v_createRequest, v_updateRequest));//TransactionMgmt
+						v_ae1.done;
+						
+						if(getverdict == pass){
+							v_primitiveContentRetrieveResource := f_getPrimitiveContentRetrievedResource(v_ae1);
+							//Check that the resource has NOT been udpated
+							if(ischosen(v_primitiveContentRetrieveResource.transactionMgmt)) {
+								if(v_primitiveContentRetrieveResource.transactionMgmt.transactionControl != int1){
+									setverdict(fail, __SCOPE__ & ": Error: transactionControl attribute not updated")
+								}
+							}
+						}
+					
+					} // TC_CSE_TMG_UPD_004_COM
+						
+					testcase TC_CSE_TMG_UPD_004_ABT() runs on Tester system CseSystem {
+						// Local variables
+						
+						var AeSimu v_ae1 := AeSimu.create("AE1") alive;
+						var template RequestPrimitive v_updateRequest := m_updateTransactionMgmtBase;
+						var PrimitiveContent v_primitiveContentRetrieveResource;
+						v_updateRequest.primitiveContent.transactionMgmt.transactionControl := int1; // INITIAL
+						var AggregatedRequest.request_list[-] v_requestPrim;
+					
+						v_requestPrim := {int1, "", "", -, -, -};
+					
+						var AggregatedRequest v_aggregatedRequest:=
+						{
+							request_list :=
+							{
+								[0] := v_requestPrim
+							}
+					
+						};
+						var template RequestPrimitive v_createRequest := m_createTransactionMgmtBase(v_aggregatedRequest);
+						v_createRequest.primitiveContent.transactionMgmt.transactionState := int6; // ABORTED
+						v_createRequest.primitiveContent.transactionMgmt.transactionMode := int2; //CREATOR_CONTROLLED
+					    
+						v_ae1.start(f_CSE_TMG_UPD_004(int50, v_createRequest, v_updateRequest));//TransactionMgmt
+						v_ae1.done;
+						
+						if(getverdict == pass){
+							v_primitiveContentRetrieveResource := f_getPrimitiveContentRetrievedResource(v_ae1);
+							//Check that the resource has NOT been udpated
+							if(ischosen(v_primitiveContentRetrieveResource.transactionMgmt)) {
+								if(v_primitiveContentRetrieveResource.transactionMgmt.transactionControl != int1){
+									setverdict(fail, __SCOPE__ & ": Error: transactionControl attribute not updated")
+								}
+							}
+						}
+					
+					} // TC_CSE_TMG_UPD_004_ABT
+				} // end TC_CSE_TMG_UPD_004
+				
+				testcase TC_CSE_TMG_UPD_005() runs on Tester system CseSystem {
+						// Local variables
+						
+						var AeSimu v_ae1 := AeSimu.create("AE1") alive;
+						var template RequestPrimitive v_updateRequest := m_updateTransactionBase;
+						var PrimitiveContent v_primitiveContentRetrieveResource;
+						v_updateRequest.primitiveContent.transaction.transactionControl := int2; // LOCK
+						//var template RequestPrimitive v_createRequest := m_createTransactionBase(m_create);
+						//v_createRequest.primitiveContent.transactionMgmt.transactionState := int6; // ABORTED
+						//v_createRequest.primitiveContent.transactionMgmt.transactionMode := int2; //CREATOR_CONTROLLED
+					    
+						v_ae1.start(f_CSE_TMG_UPD_005(int51, m_createTransactionBase(m_create), v_updateRequest));//TransactionMgmt
+						v_ae1.done;
+						
+						if(getverdict == pass){
+							v_primitiveContentRetrieveResource := f_getPrimitiveContentRetrievedResource(v_ae1);
+							//Check that the resource has NOT been udpated
+							if(ischosen(v_primitiveContentRetrieveResource.transactionMgmt)) {
+								if(v_primitiveContentRetrieveResource.transactionMgmt.transactionControl == int2){
+									setverdict(fail, __SCOPE__ & ": Error: transactionControl attribute updated")
+								}
+							}
+						}
+					
+					} // TC_CSE_TMG_UPD_005
+					
+					
+				function f_CSE_TMG_UPD_005(ResourceType p_resourceType, template RequestPrimitive p_createRequestPrimitive, template RequestPrimitive p_updateRequestPrimitive) runs on AeSimu system CseSystem {
+    				
+					// Local variables
+					var MsgIn v_response;
+					var RequestPrimitive v_request;
+					var integer v_aeIndex := -1;
+					var integer v_resourceIndex := -1;
+					var integer v_ae2Index := -1;
+					var integer v_parentIndex := -1;
+    										   
+					// Test control
+    				
+					// Test component configuration
+					f_cf01Up(true);
+    				
+					// Test adapter configuration
+    				
+					// Preamble
+					v_aeIndex := f_cse_preamble_registerAe();//c_CRUDNDi);
+						
+					v_ae2Index := f_cse_preamble_registerAe();//c_CRUDNDi);
+					//f_cse_preamble_subscriptionVerification(v_ae2Index, p_createRequestPrimitive, p_resourceType);
+						
+					if(p_resourceType != int18) {
+						v_parentIndex := v_aeIndex;//For resources that can have AE resource as parent
+					}
+					
+					v_resourceIndex := f_cse_createResource(p_resourceType, p_createRequestPrimitive, v_parentIndex);
+																
+					// Test Body
+					v_request := f_getUpdateRequestPrimitive(p_resourceType, v_resourceIndex, p_updateRequestPrimitive);
+					v_request.from_ := f_getResourceAddress(v_ae2Index);
+						
+					f_send(e_mcaPort, m_request(v_request));
+					tc_ac.start;
+					alt {
+						[] mcaPort.receive(mw_response(mw_responsePrimitive(int4103))) -> value v_response {
+							tc_ac.stop;
+							setverdict(pass, __SCOPE__ & ": Originator has no privilege. Creator is not same as originator of request " & int2str(enum2int(p_resourceType)) );
+						}
+						[] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) -> value v_response {
+							tc_ac.stop;
+							setverdict(fail, __SCOPE__ & ": Wrong response status code");
+						}
+						[] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) {
+							tc_ac.stop;
+							setverdict(fail, __SCOPE__ & ": Updating transactionControl when originator is not creator");
+						}
+						[] tc_ac.timeout {
+							setverdict(fail, __SCOPE__ & ": No answer while updating resource type " & int2str(enum2int(p_resourceType)));
+						}
+					}
+    								
+					vc_primitiveContentRetrievedResource := f_cse_retrieveResource(v_resourceIndex);
+									
+					// Postamble
+					f_cse_postamble_deleteResources();
+						
+					// Tear down
+					f_cf01Down();
+    					    				
+				}//end f_CSE_TMG_UPD_005
+					
+					group TC_CSE_TMG_UPD_006{
+						
+						group TC_CSE_TMG_UPD_006_LOC{
+							testcase TC_CSE_TMG_UPD_006_LOC_LOC() runs on Tester system CseSystem {
+						// Local variables
+						
+						var AeSimu v_ae1 := AeSimu.create("AE1") alive;
+						var template RequestPrimitive v_updateRequest := m_updateTransactionBase;
+						var PrimitiveContent v_primitiveContentRetrieveResource;
+						v_updateRequest.primitiveContent.transaction.transactionControl := int2; // LOCK
+						var template RequestPrimitive v_createRequest := m_createTransactionBase(m_create);
+						v_createRequest.primitiveContent.transaction.transactionState := int2; // LOCKED
+					    
+						v_ae1.start(f_CSE_TMG_UPD_006(int51, v_createRequest, v_updateRequest));//Transaction
+						v_ae1.done;
+						
+						if(getverdict == pass){
+							v_primitiveContentRetrieveResource := f_getPrimitiveContentRetrievedResource(v_ae1);
+							//Check that the resource has NOT been udpated
+							if(ischosen(v_primitiveContentRetrieveResource.transactionMgmt)) {
+								if(v_primitiveContentRetrieveResource.transactionMgmt.transactionControl == int2){
+									setverdict(fail, __SCOPE__ & ": Error: transactionControl attribute updated")
+								}
+							}
+						}
+					
+					} // TC_CSE_TMG_UPD_006_LOC_LOC
+							
+					testcase TC_CSE_TMG_UPD_006_LOC_COM() runs on Tester system CseSystem {
+						// Local variables
+						
+						var AeSimu v_ae1 := AeSimu.create("AE1") alive;
+						var template RequestPrimitive v_updateRequest := m_updateTransactionBase;
+						var PrimitiveContent v_primitiveContentRetrieveResource;
+						v_updateRequest.primitiveContent.transaction.transactionControl := int4; // COMMIT
+						var template RequestPrimitive v_createRequest := m_createTransactionBase(m_create);
+						v_createRequest.primitiveContent.transaction.transactionState := int2; // LOCKED
+					    
+						v_ae1.start(f_CSE_TMG_UPD_006(int51, v_createRequest, v_updateRequest));//Transaction
+						v_ae1.done;
+						
+						if(getverdict == pass){
+							v_primitiveContentRetrieveResource := f_getPrimitiveContentRetrievedResource(v_ae1);
+							//Check that the resource has NOT been udpated
+							if(ischosen(v_primitiveContentRetrieveResource.transactionMgmt)) {
+								if(v_primitiveContentRetrieveResource.transactionMgmt.transactionControl == int4){
+									setverdict(fail, __SCOPE__ & ": Error: transactionControl attribute updated")
+								}
+							}
+						}
+					
+					} // TC_CSE_TMG_UPD_006_LOC_COM
+					
+					
+						} // end TC_CSE_TMG_UPD_006_LOC
+						
+						group TC_CSE_TMG_UPD_006_EXE{
+							testcase TC_CSE_TMG_UPD_006_EXE_INI() runs on Tester system CseSystem {
+						// Local variables
+						
+						var AeSimu v_ae1 := AeSimu.create("AE1") alive;
+						var template RequestPrimitive v_updateRequest := m_updateTransactionBase;
+						var PrimitiveContent v_primitiveContentRetrieveResource;
+						v_updateRequest.primitiveContent.transaction.transactionControl := int1; // INI
+						var template RequestPrimitive v_createRequest := m_createTransactionBase(m_create);
+						v_createRequest.primitiveContent.transaction.transactionState := int3; // LOCKED
+					    
+						v_ae1.start(f_CSE_TMG_UPD_006(int51, v_createRequest, v_updateRequest));//Transaction
+						v_ae1.done;
+						
+						if(getverdict == pass){
+							v_primitiveContentRetrieveResource := f_getPrimitiveContentRetrievedResource(v_ae1);
+							//Check that the resource has NOT been udpated
+							if(ischosen(v_primitiveContentRetrieveResource.transactionMgmt)) {
+								if(v_primitiveContentRetrieveResource.transactionMgmt.transactionControl == int1){
+									setverdict(fail, __SCOPE__ & ": Error: transactionControl attribute updated")
+								}
+							}
+						}
+					
+					} // TC_CSE_TMG_UPD_006_EXE_INI
+							
+					testcase TC_CSE_TMG_UPD_006_EXE_LOC() runs on Tester system CseSystem {
+						// Local variables
+						
+						var AeSimu v_ae1 := AeSimu.create("AE1") alive;
+						var template RequestPrimitive v_updateRequest := m_updateTransactionBase;
+						var PrimitiveContent v_primitiveContentRetrieveResource;
+						v_updateRequest.primitiveContent.transaction.transactionControl := int2; // LOCK
+						var template RequestPrimitive v_createRequest := m_createTransactionBase(m_create);
+						v_createRequest.primitiveContent.transaction.transactionState := int3; // LOCKED
+					    
+						v_ae1.start(f_CSE_TMG_UPD_006(int51, v_createRequest, v_updateRequest));//Transaction
+						v_ae1.done;
+						
+						if(getverdict == pass){
+							v_primitiveContentRetrieveResource := f_getPrimitiveContentRetrievedResource(v_ae1);
+							//Check that the resource has NOT been udpated
+							if(ischosen(v_primitiveContentRetrieveResource.transactionMgmt)) {
+								if(v_primitiveContentRetrieveResource.transactionMgmt.transactionControl == int2){
+									setverdict(fail, __SCOPE__ & ": Error: transactionControl attribute updated")
+								}
+							}
+						}
+					
+					} // TC_CSE_TMG_UPD_006_EXE_LOC
+					
+					testcase TC_CSE_TMG_UPD_006_EXE_EXE() runs on Tester system CseSystem {
+						// Local variables
+						
+						var AeSimu v_ae1 := AeSimu.create("AE1") alive;
+						var template RequestPrimitive v_updateRequest := m_updateTransactionBase;
+						var PrimitiveContent v_primitiveContentRetrieveResource;
+						v_updateRequest.primitiveContent.transaction.transactionControl := int3; // EXECUTE
+						var template RequestPrimitive v_createRequest := m_createTransactionBase(m_create);
+						v_createRequest.primitiveContent.transaction.transactionState := int3; // LOCKED
+					    
+						v_ae1.start(f_CSE_TMG_UPD_006(int51, v_createRequest, v_updateRequest));//Transaction
+						v_ae1.done;
+						
+						if(getverdict == pass){
+							v_primitiveContentRetrieveResource := f_getPrimitiveContentRetrievedResource(v_ae1);
+							//Check that the resource has NOT been udpated
+							if(ischosen(v_primitiveContentRetrieveResource.transactionMgmt)) {
+								if(v_primitiveContentRetrieveResource.transactionMgmt.transactionControl == int3){
+									setverdict(fail, __SCOPE__ & ": Error: transactionControl attribute updated")
+								}
+							}
+						}
+					
+					} // TC_CSE_TMG_UPD_006_EXE_EXE
+						
+						} // end TC_CSE_TMG_UPD_006_EXE
+						
+						group TC_CSE_TMG_UPD_006_ERR{
+							testcase TC_CSE_TMG_UPD_006_ERR_EXE() runs on Tester system CseSystem {
+						// Local variables
+						
+						var AeSimu v_ae1 := AeSimu.create("AE1") alive;
+						var template RequestPrimitive v_updateRequest := m_updateTransactionBase;
+						var PrimitiveContent v_primitiveContentRetrieveResource;
+						v_updateRequest.primitiveContent.transaction.transactionControl := int3; // EXECUTE
+						var template RequestPrimitive v_createRequest := m_createTransactionBase(m_create);
+						v_createRequest.primitiveContent.transaction.transactionState := int5; // ERROR
+					    
+						v_ae1.start(f_CSE_TMG_UPD_006(int51, v_createRequest, v_updateRequest));//Transaction
+						v_ae1.done;
+						
+						if(getverdict == pass){
+							v_primitiveContentRetrieveResource := f_getPrimitiveContentRetrievedResource(v_ae1);
+							//Check that the resource has NOT been udpated
+							if(ischosen(v_primitiveContentRetrieveResource.transactionMgmt)) {
+								if(v_primitiveContentRetrieveResource.transactionMgmt.transactionControl == int3){
+									setverdict(fail, __SCOPE__ & ": Error: transactionControl attribute updated")
+								}
+							}
+						}
+					
+					} // TC_CSE_TMG_UPD_006_ERR_EXE
+					
+					testcase TC_CSE_TMG_UPD_006_ERR_COM() runs on Tester system CseSystem {
+						// Local variables
+						
+						var AeSimu v_ae1 := AeSimu.create("AE1") alive;
+						var template RequestPrimitive v_updateRequest := m_updateTransactionBase;
+						var PrimitiveContent v_primitiveContentRetrieveResource;
+						v_updateRequest.primitiveContent.transaction.transactionControl := int4; // COMMIT
+						var template RequestPrimitive v_createRequest := m_createTransactionBase(m_create);
+						v_createRequest.primitiveContent.transaction.transactionState := int5; // ERROR
+					    
+						v_ae1.start(f_CSE_TMG_UPD_006(int51, v_createRequest, v_updateRequest));//Transaction
+						v_ae1.done;
+						
+						if(getverdict == pass){
+							v_primitiveContentRetrieveResource := f_getPrimitiveContentRetrievedResource(v_ae1);
+							//Check that the resource has NOT been udpated
+							if(ischosen(v_primitiveContentRetrieveResource.transactionMgmt)) {
+								if(v_primitiveContentRetrieveResource.transactionMgmt.transactionControl == int4){
+									setverdict(fail, __SCOPE__ & ": Error: transactionControl attribute updated")
+								}
+							}
+						}
+					
+					} // TC_CSE_TMG_UPD_006_ERR_COM
+						
+						} // end TC_CSE_TMG_UPD_006_ERR
+						
+						group TC_CSE_TMG_UPD_006_COM{
+						
+							testcase TC_CSE_TMG_UPD_006_COM_EXE() runs on Tester system CseSystem {
+						// Local variables
+						
+						var AeSimu v_ae1 := AeSimu.create("AE1") alive;
+						var template RequestPrimitive v_updateRequest := m_updateTransactionBase;
+						var PrimitiveContent v_primitiveContentRetrieveResource;
+						v_updateRequest.primitiveContent.transaction.transactionControl := int3; // EXECUTE
+						var template RequestPrimitive v_createRequest := m_createTransactionBase(m_create);
+						v_createRequest.primitiveContent.transaction.transactionState := int4; // COMMIT
+					    
+						v_ae1.start(f_CSE_TMG_UPD_006(int51, v_createRequest, v_updateRequest));//Transaction
+						v_ae1.done;
+						
+						if(getverdict == pass){
+							v_primitiveContentRetrieveResource := f_getPrimitiveContentRetrievedResource(v_ae1);
+							//Check that the resource has NOT been udpated
+							if(ischosen(v_primitiveContentRetrieveResource.transactionMgmt)) {
+								if(v_primitiveContentRetrieveResource.transactionMgmt.transactionControl == int3){
+									setverdict(fail, __SCOPE__ & ": Error: transactionControl attribute updated")
+								}
+							}
+						}
+					
+					} // TC_CSE_TMG_UPD_006_COM_EXE
+					
+					testcase TC_CSE_TMG_UPD_006_COM_ABT() runs on Tester system CseSystem {
+						// Local variables
+						
+						var AeSimu v_ae1 := AeSimu.create("AE1") alive;
+						var template RequestPrimitive v_updateRequest := m_updateTransactionBase;
+						var PrimitiveContent v_primitiveContentRetrieveResource;
+						v_updateRequest.primitiveContent.transaction.transactionControl := int5; // ABORT
+						var template RequestPrimitive v_createRequest := m_createTransactionBase(m_create);
+						v_createRequest.primitiveContent.transaction.transactionState := int4; // COMMIT
+					    
+						v_ae1.start(f_CSE_TMG_UPD_006(int51, v_createRequest, v_updateRequest));//Transaction
+						v_ae1.done;
+						
+						if(getverdict == pass){
+							v_primitiveContentRetrieveResource := f_getPrimitiveContentRetrievedResource(v_ae1);
+							//Check that the resource has NOT been udpated
+							if(ischosen(v_primitiveContentRetrieveResource.transactionMgmt)) {
+								if(v_primitiveContentRetrieveResource.transactionMgmt.transactionControl == int5){
+									setverdict(fail, __SCOPE__ & ": Error: transactionControl attribute updated")
+								}
+							}
+						}
+					
+					} // TC_CSE_TMG_UPD_006_COM_ABT
+					
+					testcase TC_CSE_TMG_UPD_006_COM_COM() runs on Tester system CseSystem {
+						// Local variables
+						
+						var AeSimu v_ae1 := AeSimu.create("AE1") alive;
+						var template RequestPrimitive v_updateRequest := m_updateTransactionBase;
+						var PrimitiveContent v_primitiveContentRetrieveResource;
+						v_updateRequest.primitiveContent.transaction.transactionControl := int4; // COMMIT
+						var template RequestPrimitive v_createRequest := m_createTransactionBase(m_create);
+						v_createRequest.primitiveContent.transaction.transactionState := int4; // COMMIT
+					    
+						v_ae1.start(f_CSE_TMG_UPD_006(int51, v_createRequest, v_updateRequest));//Transaction
+						v_ae1.done;
+						
+						if(getverdict == pass){
+							v_primitiveContentRetrieveResource := f_getPrimitiveContentRetrievedResource(v_ae1);
+							//Check that the resource has NOT been udpated
+							if(ischosen(v_primitiveContentRetrieveResource.transactionMgmt)) {
+								if(v_primitiveContentRetrieveResource.transactionMgmt.transactionControl == int4){
+									setverdict(fail, __SCOPE__ & ": Error: transactionControl attribute updated")
+								}
+							}
+						}
+					
+					} // TC_CSE_TMG_UPD_006_COM_COM
+						
+						} // end TC_CSE_TMG_UPD_006_COM
+						
+						group TC_CSE_TMG_UPD_006_ABT{
+						
+							testcase TC_CSE_TMG_UPD_006_ABT_EXE() runs on Tester system CseSystem {
+						// Local variables
+						
+						var AeSimu v_ae1 := AeSimu.create("AE1") alive;
+						var template RequestPrimitive v_updateRequest := m_updateTransactionBase;
+						var PrimitiveContent v_primitiveContentRetrieveResource;
+						v_updateRequest.primitiveContent.transaction.transactionControl := int3; // EXE
+						var template RequestPrimitive v_createRequest := m_createTransactionBase(m_create);
+						v_createRequest.primitiveContent.transaction.transactionState := int6; // ABORTED
+					    
+						v_ae1.start(f_CSE_TMG_UPD_006(int51, v_createRequest, v_updateRequest));//Transaction
+						v_ae1.done;
+						
+						if(getverdict == pass){
+							v_primitiveContentRetrieveResource := f_getPrimitiveContentRetrievedResource(v_ae1);
+							//Check that the resource has NOT been udpated
+							if(ischosen(v_primitiveContentRetrieveResource.transactionMgmt)) {
+								if(v_primitiveContentRetrieveResource.transactionMgmt.transactionControl == int3){
+									setverdict(fail, __SCOPE__ & ": Error: transactionControl attribute updated")
+								}
+							}
+						}
+					
+					} // TC_CSE_TMG_UPD_006_ABT_EXE
+					
+						testcase TC_CSE_TMG_UPD_006_ABT_COM() runs on Tester system CseSystem {
+						// Local variables
+						
+						var AeSimu v_ae1 := AeSimu.create("AE1") alive;
+						var template RequestPrimitive v_updateRequest := m_updateTransactionBase;
+						var PrimitiveContent v_primitiveContentRetrieveResource;
+						v_updateRequest.primitiveContent.transaction.transactionControl := int4; // COMMIT
+						var template RequestPrimitive v_createRequest := m_createTransactionBase(m_create);
+						v_createRequest.primitiveContent.transaction.transactionState := int6; // ABORTED
+					    
+						v_ae1.start(f_CSE_TMG_UPD_006(int51, v_createRequest, v_updateRequest));//Transaction
+						v_ae1.done;
+						
+						if(getverdict == pass){
+							v_primitiveContentRetrieveResource := f_getPrimitiveContentRetrievedResource(v_ae1);
+							//Check that the resource has NOT been udpated
+							if(ischosen(v_primitiveContentRetrieveResource.transactionMgmt)) {
+								if(v_primitiveContentRetrieveResource.transactionMgmt.transactionControl == int4){
+									setverdict(fail, __SCOPE__ & ": Error: transactionControl attribute updated")
+								}
+							}
+						}
+					
+					} // TC_CSE_TMG_UPD_006_ABT_COM
+					
+					testcase TC_CSE_TMG_UPD_006_ABT_ABT() runs on Tester system CseSystem {
+						// Local variables
+						
+						var AeSimu v_ae1 := AeSimu.create("AE1") alive;
+						var template RequestPrimitive v_updateRequest := m_updateTransactionBase;
+						var PrimitiveContent v_primitiveContentRetrieveResource;
+						v_updateRequest.primitiveContent.transaction.transactionControl := int5; // ABORT
+						var template RequestPrimitive v_createRequest := m_createTransactionBase(m_create);
+						v_createRequest.primitiveContent.transaction.transactionState := int6; // ABORTED
+					    
+						v_ae1.start(f_CSE_TMG_UPD_006(int51, v_createRequest, v_updateRequest));//Transaction
+						v_ae1.done;
+						
+						if(getverdict == pass){
+							v_primitiveContentRetrieveResource := f_getPrimitiveContentRetrievedResource(v_ae1);
+							//Check that the resource has NOT been udpated
+							if(ischosen(v_primitiveContentRetrieveResource.transactionMgmt)) {
+								if(v_primitiveContentRetrieveResource.transactionMgmt.transactionControl == int5){
+									setverdict(fail, __SCOPE__ & ": Error: transactionControl attribute updated")
+								}
+							}
+						}
+					
+					} // TC_CSE_TMG_UPD_006_ABT_ABT
+						
+						} // end TC_CSE_TMG_UPD_006_ABT
+					
+					}// end TC_CSE_TMG_UPD_006
+					
+					group TC_CSE_TMG_UPD_007{
+						
+						group TC_CSE_TMG_UPD_007_LOC{
+							testcase TC_CSE_TMG_UPD_007_LOC_EXE() runs on Tester system CseSystem {
+						// Local variables
+						
+						var AeSimu v_ae1 := AeSimu.create("AE1") alive;
+						var template RequestPrimitive v_updateRequest := m_updateTransactionBase;
+						var PrimitiveContent v_primitiveContentRetrieveResource;
+						v_updateRequest.primitiveContent.transaction.transactionControl := int3; // EXECUTE
+						var template RequestPrimitive v_createRequest := m_createTransactionBase(m_create);
+						v_createRequest.primitiveContent.transaction.transactionState := int2; // LOCKED
+					    
+						v_ae1.start(f_CSE_TMG_UPD_004(int51, v_createRequest, v_updateRequest));//Transaction
+						v_ae1.done;
+						
+						if(getverdict == pass){
+							v_primitiveContentRetrieveResource := f_getPrimitiveContentRetrievedResource(v_ae1);
+							//Check that the resource has NOT been udpated
+							if(ischosen(v_primitiveContentRetrieveResource.transactionMgmt)) {
+								if(v_primitiveContentRetrieveResource.transactionMgmt.transactionControl != int3){
+									setverdict(fail, __SCOPE__ & ": Error: transactionControl attribute not updated")
+								}
+							}
+						}
+					
+					} // TC_CSE_TMG_UPD_007_LOC_EXE
+					
+					testcase TC_CSE_TMG_UPD_007_LOC_ABT() runs on Tester system CseSystem {
+						// Local variables
+						
+						var AeSimu v_ae1 := AeSimu.create("AE1") alive;
+						var template RequestPrimitive v_updateRequest := m_updateTransactionBase;
+						var PrimitiveContent v_primitiveContentRetrieveResource;
+						v_updateRequest.primitiveContent.transaction.transactionControl := int5; // ABORT
+						var template RequestPrimitive v_createRequest := m_createTransactionBase(m_create);
+						v_createRequest.primitiveContent.transaction.transactionState := int2; // LOCKED
+					    
+						v_ae1.start(f_CSE_TMG_UPD_004(int51, v_createRequest, v_updateRequest));//Transaction
+						v_ae1.done;
+						
+						if(getverdict == pass){
+							v_primitiveContentRetrieveResource := f_getPrimitiveContentRetrievedResource(v_ae1);
+							//Check that the resource has NOT been udpated
+							if(ischosen(v_primitiveContentRetrieveResource.transactionMgmt)) {
+								if(v_primitiveContentRetrieveResource.transactionMgmt.transactionControl != int5){
+									setverdict(fail, __SCOPE__ & ": Error: transactionControl attribute not updated")
+								}
+							}
+						}
+					
+					} // TC_CSE_TMG_UPD_007_LOC_ABT
+							
+						
+						
+						} // end TC_CSE_TMG_UPD_007_LOC
+					
+					group TC_CSE_TMG_UPD_007_EXE{
+						testcase TC_CSE_TMG_UPD_007_EXE_COM() runs on Tester system CseSystem {
+						// Local variables
+						
+						var AeSimu v_ae1 := AeSimu.create("AE1") alive;
+						var template RequestPrimitive v_updateRequest := m_updateTransactionBase;
+						var PrimitiveContent v_primitiveContentRetrieveResource;
+						v_updateRequest.primitiveContent.transaction.transactionControl := int4; // ABORT
+						var template RequestPrimitive v_createRequest := m_createTransactionBase(m_create);
+						v_createRequest.primitiveContent.transaction.transactionState := int3; // LOCKED
+					    
+						v_ae1.start(f_CSE_TMG_UPD_004(int51, v_createRequest, v_updateRequest));//Transaction
+						v_ae1.done;
+						
+						if(getverdict == pass){
+							v_primitiveContentRetrieveResource := f_getPrimitiveContentRetrievedResource(v_ae1);
+							//Check that the resource has NOT been udpated
+							if(ischosen(v_primitiveContentRetrieveResource.transactionMgmt)) {
+								if(v_primitiveContentRetrieveResource.transactionMgmt.transactionControl != int4){
+									setverdict(fail, __SCOPE__ & ": Error: transactionControl attribute not updated")
+								}
+							}
+						}
+					
+					} // TC_CSE_TMG_UPD_007_EXE_COM
+					
+					testcase TC_CSE_TMG_UPD_007_EXE_ABT() runs on Tester system CseSystem {
+						// Local variables
+						
+						var AeSimu v_ae1 := AeSimu.create("AE1") alive;
+						var template RequestPrimitive v_updateRequest := m_updateTransactionBase;
+						var PrimitiveContent v_primitiveContentRetrieveResource;
+						v_updateRequest.primitiveContent.transaction.transactionControl := int5; // ABORT
+						var template RequestPrimitive v_createRequest := m_createTransactionBase(m_create);
+						v_createRequest.primitiveContent.transaction.transactionState := int3; // EXECUTE
+					    
+						v_ae1.start(f_CSE_TMG_UPD_004(int51, v_createRequest, v_updateRequest));//Transaction
+						v_ae1.done;
+						
+						if(getverdict == pass){
+							v_primitiveContentRetrieveResource := f_getPrimitiveContentRetrievedResource(v_ae1);
+							//Check that the resource has NOT been udpated
+							if(ischosen(v_primitiveContentRetrieveResource.transactionMgmt)) {
+								if(v_primitiveContentRetrieveResource.transactionMgmt.transactionControl != int5){
+									setverdict(fail, __SCOPE__ & ": Error: transactionControl attribute not updated")
+								}
+							}
+						}
+					
+					} // TC_CSE_TMG_UPD_007_EXE_COM
+					
+					} // end TC_CSE_TMG_UPD_007_EXE
+					
+					group TC_CSE_TMG_UPD_007_ERR{
+						testcase TC_CSE_TMG_UPD_007_ERR_ABT() runs on Tester system CseSystem {
+						// Local variables
+						
+						var AeSimu v_ae1 := AeSimu.create("AE1") alive;
+						var template RequestPrimitive v_updateRequest := m_updateTransactionBase;
+						var PrimitiveContent v_primitiveContentRetrieveResource;
+						v_updateRequest.primitiveContent.transaction.transactionControl := int5; // ABORT
+						var template RequestPrimitive v_createRequest := m_createTransactionBase(m_create);
+						v_createRequest.primitiveContent.transaction.transactionState := int5; // ERROR
+					    
+						v_ae1.start(f_CSE_TMG_UPD_004(int51, v_createRequest, v_updateRequest));//Transaction
+						v_ae1.done;
+						
+						if(getverdict == pass){
+							v_primitiveContentRetrieveResource := f_getPrimitiveContentRetrievedResource(v_ae1);
+							//Check that the resource has NOT been udpated
+							if(ischosen(v_primitiveContentRetrieveResource.transactionMgmt)) {
+								if(v_primitiveContentRetrieveResource.transactionMgmt.transactionControl != int5){
+									setverdict(fail, __SCOPE__ & ": Error: transactionControl attribute not updated")
+								}
+							}
+						}
+					
+					} // TC_CSE_TMG_UPD_007_ERR_ABT
+					
+					testcase TC_CSE_TMG_UPD_007_ERR_LOC() runs on Tester system CseSystem {
+						// Local variables
+						
+						var AeSimu v_ae1 := AeSimu.create("AE1") alive;
+						var template RequestPrimitive v_updateRequest := m_updateTransactionBase;
+						var PrimitiveContent v_primitiveContentRetrieveResource;
+						v_updateRequest.primitiveContent.transaction.transactionControl := int2; // LOC
+						var template RequestPrimitive v_createRequest := m_createTransactionBase(m_create);
+						v_createRequest.primitiveContent.transaction.transactionState := int5; // ERROR
+					    
+						v_ae1.start(f_CSE_TMG_UPD_004(int51, v_createRequest, v_updateRequest));//Transaction
+						v_ae1.done;
+						
+						if(getverdict == pass){
+							v_primitiveContentRetrieveResource := f_getPrimitiveContentRetrievedResource(v_ae1);
+							//Check that the resource has NOT been udpated
+							if(ischosen(v_primitiveContentRetrieveResource.transactionMgmt)) {
+								if(v_primitiveContentRetrieveResource.transactionMgmt.transactionControl != int2){
+									setverdict(fail, __SCOPE__ & ": Error: transactionControl attribute not updated")
+								}
+							}
+						}
+					
+					} // TC_CSE_TMG_UPD_007_ERR_LOC
+					
+					} // end TC_CSE_TMG_UPD_007_ERR
+					
+					testcase TC_CSE_TMG_UPD_007_COM() runs on Tester system CseSystem {
+						// Local variables
+						
+						var AeSimu v_ae1 := AeSimu.create("AE1") alive;
+						var template RequestPrimitive v_updateRequest := m_updateTransactionBase;
+						var PrimitiveContent v_primitiveContentRetrieveResource;
+						v_updateRequest.primitiveContent.transaction.transactionControl := int2; // LOC
+						var template RequestPrimitive v_createRequest := m_createTransactionBase(m_create);
+						v_createRequest.primitiveContent.transaction.transactionState := int4; // COMMITTED
+					    
+						v_ae1.start(f_CSE_TMG_UPD_004(int51, v_createRequest, v_updateRequest));//Transaction
+						v_ae1.done;
+						
+						if(getverdict == pass){
+							v_primitiveContentRetrieveResource := f_getPrimitiveContentRetrievedResource(v_ae1);
+							//Check that the resource has NOT been udpated
+							if(ischosen(v_primitiveContentRetrieveResource.transactionMgmt)) {
+								if(v_primitiveContentRetrieveResource.transactionMgmt.transactionControl != int2){
+									setverdict(fail, __SCOPE__ & ": Error: transactionControl attribute not updated")
+								}
+							}
+						}
+					
+					} // TC_CSE_TMG_UPD_007_COM
+					
+					testcase TC_CSE_TMG_UPD_007_ABT() runs on Tester system CseSystem {
+						// Local variables
+						
+						var AeSimu v_ae1 := AeSimu.create("AE1") alive;
+						var template RequestPrimitive v_updateRequest := m_updateTransactionBase;
+						var PrimitiveContent v_primitiveContentRetrieveResource;
+						v_updateRequest.primitiveContent.transaction.transactionControl := int2; // LOC
+						var template RequestPrimitive v_createRequest := m_createTransactionBase(m_create);
+						v_createRequest.primitiveContent.transaction.transactionState := int6; // ABORTED
+					    
+						v_ae1.start(f_CSE_TMG_UPD_004(int51, v_createRequest, v_updateRequest));//Transaction
+						v_ae1.done;
+						
+						if(getverdict == pass){
+							v_primitiveContentRetrieveResource := f_getPrimitiveContentRetrievedResource(v_ae1);
+							//Check that the resource has NOT been udpated
+							if(ischosen(v_primitiveContentRetrieveResource.transactionMgmt)) {
+								if(v_primitiveContentRetrieveResource.transactionMgmt.transactionControl != int2){
+									setverdict(fail, __SCOPE__ & ": Error: transactionControl attribute not updated")
+								}
+							}
+						}
+					
+					} // TC_CSE_TMG_UPD_007_ABT
+					
+					} // end TC_CSE_TMG_UPD_007
+				
+			} // end of Update
+			
+			group delete {
+				testcase TC_CSE_TMG_DEL_001_TRAM_COM() runs on Tester system CseSystem {
+						// Local variables
+						var AeSimu v_ae1 := AeSimu.create("AE1") alive;
+					var AggregatedRequest.request_list[-] v_requestPrim;
+					
+					v_requestPrim := {int1, "", "", -, -, -};
+					
+					var AggregatedRequest v_aggregatedRequest:=
+					{
+						request_list :=
+						{
+							[0] := v_requestPrim
+						}
+					
+					};
+						var template RequestPrimitive v_createRequest := m_createTransactionMgmtBase(v_aggregatedRequest);
+					    v_createRequest.primitiveContent.transactionMgmt.transactionState := int4; // COMMITTED
+                		
+					v_ae1.start(f_CSE_TMG_DEL_001(int50, v_createRequest));//TransactionMgmt
+						v_ae1.done;
+                		
+						if(getverdict == pass){ 
+							//check if "MyRessource" container resource isn't present in the IUT (for exemple attempt to update the resource)
+						};
+					};
+					
+				testcase TC_CSE_TMG_DEL_001_TRAM_ABT() runs on Tester system CseSystem {
+						// Local variables
+						var AeSimu v_ae1 := AeSimu.create("AE1") alive;
+					var AggregatedRequest.request_list[-] v_requestPrim;
+					
+					v_requestPrim := {int1, "", "", -, -, -};
+					
+					var AggregatedRequest v_aggregatedRequest:=
+					{
+						request_list :=
+						{
+							[0] := v_requestPrim
+						}
+					
+					};
+						var template RequestPrimitive v_createRequest := m_createTransactionMgmtBase(v_aggregatedRequest);
+						v_createRequest.primitiveContent.transactionMgmt.transactionState := int6; // ABORTED
+                		
+					v_ae1.start(f_CSE_TMG_DEL_001(int50, v_createRequest));//TransactionMgmt
+						v_ae1.done;
+                		
+						if(getverdict == pass){ 
+							//check if "MyRessource" container resource isn't present in the IUT (for exemple attempt to update the resource)
+						};
+					};
+					
+				testcase TC_CSE_TMG_DEL_001_TRAC_COM() runs on Tester system CseSystem {
+						// Local variables
+						var AeSimu v_ae1 := AeSimu.create("AE1") alive;
+						var template RequestPrimitive v_createRequest := m_createTransactionBase(m_create);
+						v_createRequest.primitiveContent.transactionMgmt.transactionState := int4; // COMMIT
+                		
+					v_ae1.start(f_CSE_TMG_DEL_001(int50, v_createRequest));//Transaction
+						v_ae1.done;
+                		
+						if(getverdict == pass){ 
+							//check if "MyRessource" container resource isn't present in the IUT (for exemple attempt to update the resource)
+						};
+					};
+					
+				testcase TC_CSE_TMG_DEL_001_TRAC_ABT() runs on Tester system CseSystem {
+						// Local variables
+						var AeSimu v_ae1 := AeSimu.create("AE1") alive;
+						var template RequestPrimitive v_createRequest := m_createTransactionBase(m_create);
+						v_createRequest.primitiveContent.transaction.transactionState := int6; // ABORTED
+                		
+					v_ae1.start(f_CSE_TMG_DEL_001(int50, v_createRequest));//Transaction
+						v_ae1.done;
+                		
+						if(getverdict == pass){ 
+							//check if "MyRessource" container resource isn't present in the IUT (for exemple attempt to update the resource)
+						};
+					};
+			
+			
+			} // end delete
+		} // end group Transaction_Management
+		
 	}//end group CSE
 
 }
\ No newline at end of file