diff --git a/LibOneM2M/OneM2M_Functions.ttcn b/LibOneM2M/OneM2M_Functions.ttcn
index 37ab4373cde7206043fabe103bfa73de40ad8fc1..f2d9381698b9aff8668102e79c77a20dcbc256bf 100644
--- a/LibOneM2M/OneM2M_Functions.ttcn
+++ b/LibOneM2M/OneM2M_Functions.ttcn
@@ -7,7 +7,7 @@
  *  
  *  @author     ETSI
  *  @version    $URL: https://forge.etsi.org/svn/oneM2M/trunk/ttcn/LibOneM2M/OneM2M_Functions.ttcn $
- *              $Id: OneM2M_Functions.ttcn 214 2017-01-19 10:04:34Z reinaortega $
+ *              $Id: OneM2M_Functions.ttcn 218 2017-02-07 09:36:53Z carres $
  *  @desc       Module containing functions for oneM2M
  *
  */
@@ -1338,6 +1338,254 @@ module OneM2M_Functions {
 			p_list := result;
 		}
 		
+		function f_getTemplateFromPrimitiveContent (in template PrimitiveContent p_primitiveContent) return template PrimitiveContent{
+			var template PrimitiveContent v_primitiveContent := omit;
+			
+			if(ischosen(p_primitiveContent.any_1[0].Container_optional)){ // Container
+				v_primitiveContent.any_1 := {{Container_optional := mw_contentContainerBase}};
+				
+				if(ispresent(p_primitiveContent.any_1[0].Container_optional.labels)){
+					v_primitiveContent.any_1[0].Container_optional.labels := ?;
+				}
+    			if(ispresent(p_primitiveContent.any_1[0].Container_optional.accessControlPolicyIDs)){
+    				v_primitiveContent.any_1[0].Container_optional.accessControlPolicyIDs := ?;
+    			}
+    			if(ispresent(p_primitiveContent.any_1[0].Container_optional.dynamicAuthorizationConsultationIDs)){
+    				v_primitiveContent.any_1[0].Container_optional.dynamicAuthorizationConsultationIDs := ?;
+    			}
+    			if(ispresent(p_primitiveContent.any_1[0].Container_optional.announceTo)){
+    				v_primitiveContent.any_1[0].Container_optional.announceTo := ?;
+    			}
+    			if(ispresent(p_primitiveContent.any_1[0].Container_optional.announcedAttribute)){
+    				v_primitiveContent.any_1[0].Container_optional.announcedAttribute := ?;
+    			}
+    			if(ispresent(p_primitiveContent.any_1[0].Container_optional.creator)){
+    				v_primitiveContent.any_1[0].Container_optional.creator := ?;
+    			}
+    			if(ispresent(p_primitiveContent.any_1[0].Container_optional.maxNrOfInstances)){
+    				v_primitiveContent.any_1[0].Container_optional.maxNrOfInstances := ?;
+    			}
+    			if(ispresent(p_primitiveContent.any_1[0].Container_optional.maxByteSize)){
+    				v_primitiveContent.any_1[0].Container_optional.maxByteSize := ?;
+    			}
+    			if(ispresent(p_primitiveContent.any_1[0].Container_optional.maxInstanceAge)){
+    				v_primitiveContent.any_1[0].Container_optional.maxInstanceAge := ?;
+    			}
+				if(ispresent(p_primitiveContent.any_1[0].Container_optional.locationID)){
+					v_primitiveContent.any_1[0].Container_optional.locationID := ?;
+				}
+				if(ispresent(p_primitiveContent.any_1[0].Container_optional.ontologyRef)){
+					v_primitiveContent.any_1[0].Container_optional.ontologyRef := ?;
+				}
+				if(ispresent(p_primitiveContent.any_1[0].Container_optional.disableRetrieval)){
+					v_primitiveContent.any_1[0].Container_optional.disableRetrieval := ?;
+				}
+			}
+			
+			else if(ischosen(p_primitiveContent.any_1[0].AE_optional)){ // AE
+				v_primitiveContent.any_1 := {{AE_optional := mw_contentAeBase}};
+				
+				if(ispresent(p_primitiveContent.any_1[0].AE_optional.labels)){
+					v_primitiveContent.any_1[0].AE_optional.labels := ?;
+				}
+				if(ispresent(p_primitiveContent.any_1[0].AE_optional.accessControlPolicyIDs)){
+					v_primitiveContent.any_1[0].AE_optional.accessControlPolicyIDs := ?;
+				}
+				if(ispresent(p_primitiveContent.any_1[0].AE_optional.dynamicAuthorizationConsultationIDs)){
+					v_primitiveContent.any_1[0].AE_optional.dynamicAuthorizationConsultationIDs := ?;
+				}
+				if(ispresent(p_primitiveContent.any_1[0].AE_optional.announceTo)){
+					v_primitiveContent.any_1[0].AE_optional.announceTo := ?;
+				}
+				if(ispresent(p_primitiveContent.any_1[0].AE_optional.announcedAttribute)){
+					v_primitiveContent.any_1[0].AE_optional.announcedAttribute := ?;
+				}
+				if(ispresent(p_primitiveContent.any_1[0].AE_optional.appName)){
+					v_primitiveContent.any_1[0].AE_optional.appName := ?;
+				}
+				if(ispresent(p_primitiveContent.any_1[0].AE_optional.pointOfAccess)){
+					v_primitiveContent.any_1[0].AE_optional.pointOfAccess := ?;
+				}
+				if(ispresent(p_primitiveContent.any_1[0].AE_optional.ontologyRef)){
+					v_primitiveContent.any_1[0].AE_optional.ontologyRef := ?;
+				}
+				if(ispresent(p_primitiveContent.any_1[0].AE_optional.nodeLink)){
+					v_primitiveContent.any_1[0].AE_optional.nodeLink := ?;
+				}
+				if(ispresent(p_primitiveContent.any_1[0].AE_optional.contentSerialization)){
+					v_primitiveContent.any_1[0].AE_optional.contentSerialization := ?;
+				}
+				if(ispresent(p_primitiveContent.any_1[0].AE_optional.e2eSecInfo)){
+					v_primitiveContent.any_1[0].AE_optional.e2eSecInfo := ?;
+				}	
+			}
+			
+			else if(ischosen(p_primitiveContent.any_1[0].AccessControlPolicy_optional)){ // ACP
+				v_primitiveContent.any_1 := {{AccessControlPolicy_optional := mw_contentAcpBase}};
+	
+				if(ispresent(p_primitiveContent.any_1[0].AccessControlPolicy_optional.labels)){
+					v_primitiveContent.any_1[0].AccessControlPolicy_optional.labels := ?;
+				}
+				if(ispresent(p_primitiveContent.any_1[0].AccessControlPolicy_optional.announceTo)){
+					v_primitiveContent.any_1[0].AccessControlPolicy_optional.announceTo := ?;
+				}
+			}
+			
+			else if(ischosen(p_primitiveContent.any_1[0].ContentInstance_optional)){ // ContentInstance
+				v_primitiveContent.any_1 := {{ContentInstance_optional := mw_contentContentInstanceBase}};
+
+				if(ispresent(p_primitiveContent.any_1[0].ContentInstance_optional.labels)){
+					v_primitiveContent.any_1[0].ContentInstance_optional.labels := ?;
+				}
+				if(ispresent(p_primitiveContent.any_1[0].ContentInstance_optional.announceTo)){
+					v_primitiveContent.any_1[0].ContentInstance_optional.announceTo := ?;
+				}
+				if(ispresent(p_primitiveContent.any_1[0].ContentInstance_optional.announcedAttribute)){
+					v_primitiveContent.any_1[0].ContentInstance_optional.announcedAttribute := ?;
+				}
+				if(ispresent(p_primitiveContent.any_1[0].ContentInstance_optional.creator)){
+					v_primitiveContent.any_1[0].ContentInstance_optional.creator := ?;
+				}
+				if(ispresent(p_primitiveContent.any_1[0].ContentInstance_optional.contentInfo)){
+					v_primitiveContent.any_1[0].ContentInstance_optional.contentInfo := ?;
+				}
+				if(ispresent(p_primitiveContent.any_1[0].ContentInstance_optional.contentRef)){
+					v_primitiveContent.any_1[0].ContentInstance_optional.contentRef := ?;
+				}
+				if(ispresent(p_primitiveContent.any_1[0].ContentInstance_optional.ontologyRef)){
+					v_primitiveContent.any_1[0].ContentInstance_optional.ontologyRef := ?;
+				}
+			}
+			
+			else if(ischosen(p_primitiveContent.any_1[0].Group_optional)){ // Group
+				v_primitiveContent.any_1 := {{Group_optional := mw_contentGroupBase}};
+
+				if(ispresent(p_primitiveContent.any_1[0].Group_optional.labels)){
+					v_primitiveContent.any_1[0].Group_optional.labels := ?;
+				}
+				if(ispresent(p_primitiveContent.any_1[0].Group_optional.accessControlPolicyIDs)){
+					v_primitiveContent.any_1[0].Group_optional.accessControlPolicyIDs := ?;
+				}
+				if(ispresent(p_primitiveContent.any_1[0].Group_optional.dynamicAuthorizationConsultationIDs)){
+					v_primitiveContent.any_1[0].Group_optional.dynamicAuthorizationConsultationIDs := ?;
+				}
+				if(ispresent(p_primitiveContent.any_1[0].Group_optional.announceTo)){
+					v_primitiveContent.any_1[0].Group_optional.announceTo := ?;
+				}
+				if(ispresent(p_primitiveContent.any_1[0].Group_optional.announcedAttribute)){
+					v_primitiveContent.any_1[0].Group_optional.announcedAttribute := ?;
+				}
+				if(ispresent(p_primitiveContent.any_1[0].Group_optional.creator)){
+					v_primitiveContent.any_1[0].Group_optional.creator := ?;
+				}
+				if(ispresent(p_primitiveContent.any_1[0].Group_optional.membersAccessControlPolicyIDs)){
+					v_primitiveContent.any_1[0].Group_optional.membersAccessControlPolicyIDs := ?;
+				}
+				if(ispresent(p_primitiveContent.any_1[0].Group_optional.memberTypeValidated)){
+					v_primitiveContent.any_1[0].Group_optional.memberTypeValidated := ?;
+				}
+				if(ispresent(p_primitiveContent.any_1[0].Group_optional.consistencyStrategy)){
+					v_primitiveContent.any_1[0].Group_optional.consistencyStrategy := ?;
+				}
+				if(ispresent(p_primitiveContent.any_1[0].Group_optional.groupName)){
+					v_primitiveContent.any_1[0].Group_optional.groupName := ?;
+				}
+			}
+			
+			else if(ischosen(p_primitiveContent.any_1[0].PollingChannel_optional)){ // PollingChannel
+				v_primitiveContent.any_1 := {{PollingChannel_optional := mw_contentPollingChannelBase}};
+
+				if(ispresent(p_primitiveContent.any_1[0].PollingChannel_optional.labels)){
+					v_primitiveContent.any_1[0].PollingChannel_optional.labels := ?;
+				}
+			}
+			
+			else if(ischosen(p_primitiveContent.any_1[0].Schedule_optional)){ // Schedule
+				v_primitiveContent.any_1 := {{Schedule_optional := mw_contentScheduleBase}};
+
+				if(ispresent(p_primitiveContent.any_1[0].Schedule_optional.labels)){
+					v_primitiveContent.any_1[0].Schedule_optional.labels := ?;
+				}
+				if(ispresent(p_primitiveContent.any_1[0].Schedule_optional.announceTo)){
+					v_primitiveContent.any_1[0].Schedule_optional.announceTo := ?;
+				}
+				if(ispresent(p_primitiveContent.any_1[0].Schedule_optional.announcedAttribute)){
+					v_primitiveContent.any_1[0].Schedule_optional.announcedAttribute := ?;
+				}
+			}
+			
+			else if(ischosen(p_primitiveContent.any_1[0].Subscription_optional)){ // Schedule
+				v_primitiveContent.any_1 := {{Subscription_optional := mw_contentSubscriptionBase}};
+
+				if(ispresent(p_primitiveContent.any_1[0].Subscription_optional.labels)){
+					v_primitiveContent.any_1[0].Subscription_optional.labels := ?;
+				}
+				if(ispresent(p_primitiveContent.any_1[0].Subscription_optional.accessControlPolicyIDs)){
+					v_primitiveContent.any_1[0].Subscription_optional.accessControlPolicyIDs := ?;
+				}
+				if(ispresent(p_primitiveContent.any_1[0].Subscription_optional.dynamicAuthorizationConsultationIDs)){
+					v_primitiveContent.any_1[0].Subscription_optional.dynamicAuthorizationConsultationIDs := ?;
+				}
+				if(ispresent(p_primitiveContent.any_1[0].Subscription_optional.creator)){
+					v_primitiveContent.any_1[0].Subscription_optional.creator := ?;
+				}
+				if(ispresent(p_primitiveContent.any_1[0].Subscription_optional.eventNotificationCriteria)){
+					v_primitiveContent.any_1[0].Subscription_optional.eventNotificationCriteria := ?;
+				}
+				if(ispresent(p_primitiveContent.any_1[0].Subscription_optional.expirationCounter)){
+					v_primitiveContent.any_1[0].Subscription_optional.expirationCounter := ?;
+				}
+				if(ispresent(p_primitiveContent.any_1[0].Subscription_optional.groupID)){
+					v_primitiveContent.any_1[0].Subscription_optional.groupID := ?;
+				}
+				if(ispresent(p_primitiveContent.any_1[0].Subscription_optional.notificationForwardingURI)){
+					v_primitiveContent.any_1[0].Subscription_optional.notificationForwardingURI := ?;
+				}
+				if(ispresent(p_primitiveContent.any_1[0].Subscription_optional.batchNotify)){
+					v_primitiveContent.any_1[0].Subscription_optional.batchNotify := ?;
+				}
+				if(ispresent(p_primitiveContent.any_1[0].Subscription_optional.rateLimit)){
+					v_primitiveContent.any_1[0].Subscription_optional.rateLimit := ?;
+				}
+				if(ispresent(p_primitiveContent.any_1[0].Subscription_optional.preSubscriptionNotify)){
+					v_primitiveContent.any_1[0].Subscription_optional.preSubscriptionNotify := ?;
+				}
+				if(ispresent(p_primitiveContent.any_1[0].Subscription_optional.pendingNotification)){
+					v_primitiveContent.any_1[0].Subscription_optional.pendingNotification := ?;
+				}
+				if(ispresent(p_primitiveContent.any_1[0].Subscription_optional.notificationStoragePriority)){
+					v_primitiveContent.any_1[0].Subscription_optional.notificationStoragePriority := ?;
+				}
+				if(ispresent(p_primitiveContent.any_1[0].Subscription_optional.latestNotify)){
+					v_primitiveContent.any_1[0].Subscription_optional.latestNotify := ?;
+				}
+				if(ispresent(p_primitiveContent.any_1[0].Subscription_optional.notificationContentType)){
+					v_primitiveContent.any_1[0].Subscription_optional.notificationContentType := ?;
+				}
+				if(ispresent(p_primitiveContent.any_1[0].Subscription_optional.notificationEventCat)){
+					v_primitiveContent.any_1[0].Subscription_optional.notificationEventCat := ?;
+				}
+				if(ispresent(p_primitiveContent.any_1[0].Subscription_optional.subscriberURI)){
+					v_primitiveContent.any_1[0].Subscription_optional.subscriberURI := ?;
+				}
+			}
+			log("Etape0");
+			return v_primitiveContent;
+		}
+		
+		function f_match2PrimitiveContent (in PrimitiveContent p_responsePrimitiveContent, in template PrimitiveContent p_requestPrimitiveContent) runs on CseTester {
+			var template PrimitiveContent v_primitiveContent;
+			var PrimitiveContent v_response;
+			v_response := p_responsePrimitiveContent;
+			v_primitiveContent := f_getTemplateFromPrimitiveContent(p_requestPrimitiveContent);
+			log("Etape1");
+				if(not(match(v_response, v_primitiveContent))){
+					setverdict(inconc, "Preamble: Error resource incomplete, some attribute missing ");
+				}
+
+		}
+		
+		
 	}//end of commonFunctions
 	
 	group externalFunctions {
diff --git a/LibOneM2M/OneM2M_Templates.ttcn b/LibOneM2M/OneM2M_Templates.ttcn
index 39a346f00e855a56268500b5dc9628cf7106a4e1..cd87e06ee3b3f214dbbffb8cbe049a84be1ef8a6 100644
--- a/LibOneM2M/OneM2M_Templates.ttcn
+++ b/LibOneM2M/OneM2M_Templates.ttcn
@@ -7,7 +7,7 @@
  *  
  *  @author     ETSI
  *  @version    $URL: https://forge.etsi.org/svn/oneM2M/trunk/ttcn/LibOneM2M/OneM2M_Templates.ttcn $
- *              $Id: OneM2M_Templates.ttcn 202 2016-12-15 15:08:33Z reinaortega $
+ *              $Id: OneM2M_Templates.ttcn 219 2017-02-07 11:06:26Z reinaortega $
  *  @desc       Module containing templates for oneM2M
  *
  */
@@ -1483,7 +1483,7 @@ module OneM2M_Templates {
 			expirationTime := ?,//M
     		dynamicAuthorizationConsultationIDs := *, //O
 			announceTo := *,//O
-			announcedAttribute := ?,//M
+			announcedAttribute := *,//O
 			appName := *,//O
 			app_ID := ?,//M
 			aE_ID := ?,//M
@@ -1508,7 +1508,7 @@ module OneM2M_Templates {
 			expirationTime := omit,//M
 			dynamicAuthorizationConsultationIDs := omit, //O
 			announceTo := omit,//O
-			announcedAttribute := omit,//M
+			announcedAttribute := omit,//O
 			appName := omit,//O
 			app_ID := omit,//M
 			aE_ID := omit,//M
@@ -1533,7 +1533,7 @@ module OneM2M_Templates {
 			expirationTime := *,//M
 			dynamicAuthorizationConsultationIDs := *, //O
 			announceTo := *,//O
-			announcedAttribute := *,//M
+			announcedAttribute := *,//O
 			appName := *,//O
 			app_ID := *,//M
 			aE_ID := *,//M
diff --git a/OneM2M_Testcases.ttcn b/OneM2M_Testcases.ttcn
index fd84691495b62c3b45af25c2b481e1043215e3d6..bd83eaa6522700d0be8a73a7eb578652d6beb1e9 100644
--- a/OneM2M_Testcases.ttcn
+++ b/OneM2M_Testcases.ttcn
@@ -7,7 +7,7 @@
  *  
  *  @author     ETSI
  *  @version    $URL: https://forge.etsi.org/svn/oneM2M/trunk/ttcn/OneM2M_Testcases.ttcn $
- *              $Id: OneM2M_Testcases.ttcn 217 2017-01-20 10:18:57Z reinaortega $
+ *              $Id: OneM2M_Testcases.ttcn 218 2017-02-07 09:36:53Z carres $
  *  @desc       Module containing test cases for oneM2M
  *
  */
@@ -3002,7 +3002,9 @@ module OneM2M_Testcases {
 						f_cse_preamble_subscriptionVerification(v_notifyHandler, v_aeIndex, v_ae2Index, p_createRequestPrimitive, p_resourceType);
 						
 						v_resourceIndex := f_cse_createResource(p_resourceType, p_createRequestPrimitive, v_aeIndex); 				
-    									
+						
+						//f_match2PrimitiveContent(vc_resourcesList[v_resourceIndex].resource, p_createRequestPrimitive.primitiveContent); TODO fix the match problem
+    						
 						// Test Body
 						v_request := f_getUpdateRequestPrimitive(p_resourceType, v_resourceIndex, p_updateRequestPrimitive);