diff --git a/OneM2M_Testcases_CSE_Release_4.ttcn b/OneM2M_Testcases_CSE_Release_4.ttcn
index 245de822f175f5d9b5e657c5466453f6985ab41c..808258a18fd2eca51cc71445fc8691e9cfb37d55 100644
--- a/OneM2M_Testcases_CSE_Release_4.ttcn
+++ b/OneM2M_Testcases_CSE_Release_4.ttcn
@@ -7706,7 +7706,22 @@ module OneM2M_Testcases_CSE_Release_4 {
 				testcase TC_CSE_TMG_CRE_001() runs on Tester system CseSystem { //Create
 					// Local variables
 
-					var AggregatedRequest v_aggregatedRequest; //:= {request_list := {operation := int1; to_ := ""; from_ := ""}};
+					
+					
+					
+					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;
@@ -7715,12 +7730,89 @@ module OneM2M_Testcases_CSE_Release_4 {
 					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 v_aggregatedRequest; //:= {request_list := {operation := int1; to_ := ""; from_ := ""}};
+					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;
@@ -7728,6 +7820,68 @@ module OneM2M_Testcases_CSE_Release_4 {
 					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
 				 *
@@ -7736,7 +7890,7 @@ module OneM2M_Testcases_CSE_Release_4 {
 					// Local variables
 
 					var template RequestPrimitive v_createRequest := m_createTransactionBase(m_create);
-					var ResponsePrimitive v_responsePrimitive;
+					//var ResponsePrimitive v_responsePrimitive;
 					var AeSimu v_ae1 := AeSimu.create("AE1") alive;
 						 
 					//v_createRequest.primitiveContent.transactionMgmt.resourceName := omit;
@@ -7747,6 +7901,80 @@ module OneM2M_Testcases_CSE_Release_4 {
 					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			 *
 				 */
@@ -7754,25 +7982,168 @@ module OneM2M_Testcases_CSE_Release_4 {
 					// Local variables
 
 					var template RequestPrimitive v_createRequest := m_createTransactionBase(m_create);
-					var ResponsePrimitive v_responsePrimitive;
+					//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 v_aggregatedRequest; //:= {request_list := {operation := int1; to_ := ""; from_ := ""}};
+					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 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{
@@ -7790,22 +8161,96 @@ module OneM2M_Testcases_CSE_Release_4 {
 					var template RequestPrimitive v_updateRequest := m_updateTransactionMgmtBase;
 					var PrimitiveContent v_primitiveContentRetrieveResource;
 					v_updateRequest.primitiveContent.transactionMgmt.transactionControl := int2;
-					var AggregatedRequest v_aggregatedRequest;
+					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")
-							}
-						}
+					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
 					}
 					
-				} // TC_CSE_TMG_UPD_001
+					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
 				
 				/**
 				/**
@@ -7820,7 +8265,18 @@ module OneM2M_Testcases_CSE_Release_4 {
 					var template RequestPrimitive v_updateRequest := m_updateTransactionMgmtBase;
 					var PrimitiveContent v_primitiveContentRetrieveResource;
 					v_updateRequest.primitiveContent.transactionMgmt.transactionControl := int2;
-					var AggregatedRequest v_aggregatedRequest;
+					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;
@@ -7837,6 +8293,65 @@ module OneM2M_Testcases_CSE_Release_4 {
 					
 				} // 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
@@ -7855,7 +8370,18 @@ module OneM2M_Testcases_CSE_Release_4 {
 							var template RequestPrimitive v_updateRequest := m_updateTransactionMgmtBase;
 							var PrimitiveContent v_primitiveContentRetrieveResource;
 							v_updateRequest.primitiveContent.transactionMgmt.transactionControl := int3; //EXECUTE
-							var AggregatedRequest v_aggregatedRequest;
+							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
@@ -7882,7 +8408,18 @@ module OneM2M_Testcases_CSE_Release_4 {
 							var template RequestPrimitive v_updateRequest := m_updateTransactionMgmtBase;
 							var PrimitiveContent v_primitiveContentRetrieveResource;
 							v_updateRequest.primitiveContent.transactionMgmt.transactionControl := int5; //ABORT
-							var AggregatedRequest v_aggregatedRequest;
+							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
@@ -7909,7 +8446,18 @@ module OneM2M_Testcases_CSE_Release_4 {
 							var template RequestPrimitive v_updateRequest := m_updateTransactionMgmtBase;
 							var PrimitiveContent v_primitiveContentRetrieveResource;
 							v_updateRequest.primitiveContent.transactionMgmt.transactionControl := int4; //COMMIT
-							var AggregatedRequest v_aggregatedRequest;
+							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
@@ -7936,7 +8484,18 @@ module OneM2M_Testcases_CSE_Release_4 {
 							var template RequestPrimitive v_updateRequest := m_updateTransactionMgmtBase;
 							var PrimitiveContent v_primitiveContentRetrieveResource;
 							v_updateRequest.primitiveContent.transactionMgmt.transactionControl := int1; //COMMIT
-							var AggregatedRequest v_aggregatedRequest;
+							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
@@ -7966,7 +8525,18 @@ module OneM2M_Testcases_CSE_Release_4 {
 							var template RequestPrimitive v_updateRequest := m_updateTransactionMgmtBase;
 							var PrimitiveContent v_primitiveContentRetrieveResource;
 							v_updateRequest.primitiveContent.transactionMgmt.transactionControl := int1; //INITIAL
-							var AggregatedRequest v_aggregatedRequest;
+							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
@@ -7993,7 +8563,18 @@ module OneM2M_Testcases_CSE_Release_4 {
 							var template RequestPrimitive v_updateRequest := m_updateTransactionMgmtBase;
 							var PrimitiveContent v_primitiveContentRetrieveResource;
 							v_updateRequest.primitiveContent.transactionMgmt.transactionControl := int2; //LOCK
-							var AggregatedRequest v_aggregatedRequest;
+							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
@@ -8020,7 +8601,18 @@ module OneM2M_Testcases_CSE_Release_4 {
 							var template RequestPrimitive v_updateRequest := m_updateTransactionMgmtBase;
 							var PrimitiveContent v_primitiveContentRetrieveResource;
 							v_updateRequest.primitiveContent.transactionMgmt.transactionControl := int4; //COMMIT
-							var AggregatedRequest v_aggregatedRequest;
+							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
@@ -8051,7 +8643,18 @@ module OneM2M_Testcases_CSE_Release_4 {
 							var template RequestPrimitive v_updateRequest := m_updateTransactionMgmtBase;
 							var PrimitiveContent v_primitiveContentRetrieveResource;
 							v_updateRequest.primitiveContent.transactionMgmt.transactionControl := int1; // INITIAL
-							var AggregatedRequest v_aggregatedRequest;
+							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
@@ -8078,7 +8681,18 @@ module OneM2M_Testcases_CSE_Release_4 {
 							var template RequestPrimitive v_updateRequest := m_updateTransactionMgmtBase;
 							var PrimitiveContent v_primitiveContentRetrieveResource;
 							v_updateRequest.primitiveContent.transactionMgmt.transactionControl := int2; // LOC
-							var AggregatedRequest v_aggregatedRequest;
+							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
@@ -8105,7 +8719,18 @@ module OneM2M_Testcases_CSE_Release_4 {
 							var template RequestPrimitive v_updateRequest := m_updateTransactionMgmtBase;
 							var PrimitiveContent v_primitiveContentRetrieveResource;
 							v_updateRequest.primitiveContent.transactionMgmt.transactionControl := int3; // EXECUTE
-							var AggregatedRequest v_aggregatedRequest;
+							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
@@ -8136,7 +8761,18 @@ module OneM2M_Testcases_CSE_Release_4 {
 							var template RequestPrimitive v_updateRequest := m_updateTransactionMgmtBase;
 							var PrimitiveContent v_primitiveContentRetrieveResource;
 							v_updateRequest.primitiveContent.transactionMgmt.transactionControl := int2; // LOC
-							var AggregatedRequest v_aggregatedRequest;
+							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
@@ -8164,7 +8800,18 @@ module OneM2M_Testcases_CSE_Release_4 {
 							var template RequestPrimitive v_updateRequest := m_updateTransactionMgmtBase;
 							var PrimitiveContent v_primitiveContentRetrieveResource;
 							v_updateRequest.primitiveContent.transactionMgmt.transactionControl := int3; // EXECUTE
-							var AggregatedRequest v_aggregatedRequest;
+							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
@@ -8191,7 +8838,18 @@ module OneM2M_Testcases_CSE_Release_4 {
 							var template RequestPrimitive v_updateRequest := m_updateTransactionMgmtBase;
 							var PrimitiveContent v_primitiveContentRetrieveResource;
 							v_updateRequest.primitiveContent.transactionMgmt.transactionControl := int4; // COMMIT
-							var AggregatedRequest v_aggregatedRequest;
+							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
@@ -8218,7 +8876,18 @@ module OneM2M_Testcases_CSE_Release_4 {
 							var template RequestPrimitive v_updateRequest := m_updateTransactionMgmtBase;
 							var PrimitiveContent v_primitiveContentRetrieveResource;
 							v_updateRequest.primitiveContent.transactionMgmt.transactionControl := int5; // ABORT
-							var AggregatedRequest v_aggregatedRequest;
+							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
@@ -8249,7 +8918,18 @@ module OneM2M_Testcases_CSE_Release_4 {
 							var template RequestPrimitive v_updateRequest := m_updateTransactionMgmtBase;
 							var PrimitiveContent v_primitiveContentRetrieveResource;
 							v_updateRequest.primitiveContent.transactionMgmt.transactionControl := int2; // LOCK
-							var AggregatedRequest v_aggregatedRequest;
+							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
@@ -8276,7 +8956,18 @@ module OneM2M_Testcases_CSE_Release_4 {
 							var template RequestPrimitive v_updateRequest := m_updateTransactionMgmtBase;
 							var PrimitiveContent v_primitiveContentRetrieveResource;
 							v_updateRequest.primitiveContent.transactionMgmt.transactionControl := int3; // EXECUTE
-							var AggregatedRequest v_aggregatedRequest;
+							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
@@ -8303,7 +8994,18 @@ module OneM2M_Testcases_CSE_Release_4 {
 							var template RequestPrimitive v_updateRequest := m_updateTransactionMgmtBase;
 							var PrimitiveContent v_primitiveContentRetrieveResource;
 							v_updateRequest.primitiveContent.transactionMgmt.transactionControl := int4; // COMMIT
-							var AggregatedRequest v_aggregatedRequest;
+							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
@@ -8333,7 +9035,18 @@ module OneM2M_Testcases_CSE_Release_4 {
 							var template RequestPrimitive v_updateRequest := m_updateTransactionMgmtBase;
 							var PrimitiveContent v_primitiveContentRetrieveResource;
 							v_updateRequest.primitiveContent.transactionMgmt.transactionControl := int2; // LOCK
-							var AggregatedRequest v_aggregatedRequest;
+							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
@@ -8360,7 +9073,18 @@ module OneM2M_Testcases_CSE_Release_4 {
 							var template RequestPrimitive v_updateRequest := m_updateTransactionMgmtBase;
 							var PrimitiveContent v_primitiveContentRetrieveResource;
 							v_updateRequest.primitiveContent.transactionMgmt.transactionControl := int3; // EXECUTE
-							var AggregatedRequest v_aggregatedRequest;
+							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
@@ -8387,7 +9111,18 @@ module OneM2M_Testcases_CSE_Release_4 {
 							var template RequestPrimitive v_updateRequest := m_updateTransactionMgmtBase;
 							var PrimitiveContent v_primitiveContentRetrieveResource;
 							v_updateRequest.primitiveContent.transactionMgmt.transactionControl := int4; // COMMIT
-							var AggregatedRequest v_aggregatedRequest;
+							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
@@ -8414,7 +9149,18 @@ module OneM2M_Testcases_CSE_Release_4 {
 							var template RequestPrimitive v_updateRequest := m_updateTransactionMgmtBase;
 							var PrimitiveContent v_primitiveContentRetrieveResource;
 							v_updateRequest.primitiveContent.transactionMgmt.transactionControl := int5; // ABORT
-							var AggregatedRequest v_aggregatedRequest;
+							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
@@ -8445,7 +9191,18 @@ module OneM2M_Testcases_CSE_Release_4 {
 						var template RequestPrimitive v_updateRequest := m_updateTransactionMgmtBase;
 						var PrimitiveContent v_primitiveContentRetrieveResource;
 						v_updateRequest.primitiveContent.transactionMgmt.transactionControl := int2; // ABORT
-						var AggregatedRequest v_aggregatedRequest;
+						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
@@ -8474,7 +9231,18 @@ module OneM2M_Testcases_CSE_Release_4 {
 							var template RequestPrimitive v_updateRequest := m_updateTransactionMgmtBase;
 							var PrimitiveContent v_primitiveContentRetrieveResource;
 							v_updateRequest.primitiveContent.transactionMgmt.transactionControl := int3; // EXECUTE
-							var AggregatedRequest v_aggregatedRequest;
+							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
@@ -8501,7 +9269,18 @@ module OneM2M_Testcases_CSE_Release_4 {
 							var template RequestPrimitive v_updateRequest := m_updateTransactionMgmtBase;
 							var PrimitiveContent v_primitiveContentRetrieveResource;
 							v_updateRequest.primitiveContent.transactionMgmt.transactionControl := int5; // ABORT
-							var AggregatedRequest v_aggregatedRequest;
+							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
@@ -8531,7 +9310,18 @@ module OneM2M_Testcases_CSE_Release_4 {
 							var template RequestPrimitive v_updateRequest := m_updateTransactionMgmtBase;
 							var PrimitiveContent v_primitiveContentRetrieveResource;
 							v_updateRequest.primitiveContent.transactionMgmt.transactionControl := int4; // COMMIT
-							var AggregatedRequest v_aggregatedRequest;
+							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
@@ -8558,7 +9348,18 @@ module OneM2M_Testcases_CSE_Release_4 {
 							var template RequestPrimitive v_updateRequest := m_updateTransactionMgmtBase;
 							var PrimitiveContent v_primitiveContentRetrieveResource;
 							v_updateRequest.primitiveContent.transactionMgmt.transactionControl := int5; // ABORTED
-							var AggregatedRequest v_aggregatedRequest;
+							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
@@ -8590,7 +9391,18 @@ module OneM2M_Testcases_CSE_Release_4 {
 							var template RequestPrimitive v_updateRequest := m_updateTransactionMgmtBase;
 							var PrimitiveContent v_primitiveContentRetrieveResource;
 							v_updateRequest.primitiveContent.transactionMgmt.transactionControl := int5; // ABORTED
-							var AggregatedRequest v_aggregatedRequest;
+							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
@@ -8617,7 +9429,18 @@ module OneM2M_Testcases_CSE_Release_4 {
 							var template RequestPrimitive v_updateRequest := m_updateTransactionMgmtBase;
 							var PrimitiveContent v_primitiveContentRetrieveResource;
 							v_updateRequest.primitiveContent.transactionMgmt.transactionControl := int1; // INITIAL
-							var AggregatedRequest v_aggregatedRequest;
+							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
@@ -8645,7 +9468,18 @@ module OneM2M_Testcases_CSE_Release_4 {
 						var template RequestPrimitive v_updateRequest := m_updateTransactionMgmtBase;
 						var PrimitiveContent v_primitiveContentRetrieveResource;
 						v_updateRequest.primitiveContent.transactionMgmt.transactionControl := int1; // INITIAL
-						var AggregatedRequest v_aggregatedRequest;
+						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
@@ -8672,7 +9506,18 @@ module OneM2M_Testcases_CSE_Release_4 {
 						var template RequestPrimitive v_updateRequest := m_updateTransactionMgmtBase;
 						var PrimitiveContent v_primitiveContentRetrieveResource;
 						v_updateRequest.primitiveContent.transactionMgmt.transactionControl := int1; // INITIAL
-						var AggregatedRequest v_aggregatedRequest;
+						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
@@ -8719,6 +9564,70 @@ module OneM2M_Testcases_CSE_Release_4 {
 					
 					} // 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{
@@ -9287,11 +10196,22 @@ module OneM2M_Testcases_CSE_Release_4 {
 				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 v_aggregatedRequest; //:= {request_list := {operation := int1; to_ := ""; from_ := ""}};
+					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_DMR_DEL_001(int50, v_createRequest));//TransactionMgmt
+					v_ae1.start(f_CSE_TMG_DEL_001(int50, v_createRequest));//TransactionMgmt
 						v_ae1.done;
                 		
 						if(getverdict == pass){ 
@@ -9302,11 +10222,22 @@ module OneM2M_Testcases_CSE_Release_4 {
 				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 v_aggregatedRequest; //:= {request_list := {operation := int1; to_ := ""; from_ := ""}};
+					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_DMR_DEL_001(int50, v_createRequest));//TransactionMgmt
+					v_ae1.start(f_CSE_TMG_DEL_001(int50, v_createRequest));//TransactionMgmt
 						v_ae1.done;
                 		
 						if(getverdict == pass){ 
@@ -9320,7 +10251,7 @@ module OneM2M_Testcases_CSE_Release_4 {
 						var template RequestPrimitive v_createRequest := m_createTransactionBase(m_create);
 						v_createRequest.primitiveContent.transactionMgmt.transactionState := int4; // COMMIT
                 		
-						v_ae1.start(f_CSE_DMR_DEL_001(int50, v_createRequest));//Transaction
+					v_ae1.start(f_CSE_TMG_DEL_001(int50, v_createRequest));//Transaction
 						v_ae1.done;
                 		
 						if(getverdict == pass){ 
@@ -9334,7 +10265,7 @@ module OneM2M_Testcases_CSE_Release_4 {
 						var template RequestPrimitive v_createRequest := m_createTransactionBase(m_create);
 						v_createRequest.primitiveContent.transaction.transactionState := int6; // ABORTED
                 		
-						v_ae1.start(f_CSE_DMR_DEL_001(int50, v_createRequest));//Transaction
+					v_ae1.start(f_CSE_TMG_DEL_001(int50, v_createRequest));//Transaction
 						v_ae1.done;
                 		
 						if(getverdict == pass){