For example, the following access definition filters content based on
		both the organization and project ownership:
	 
 
	 policy "VPLM_SMB"
    state "WAITAPP"
        user "VPLMCreator" read,show,changeowner,checkout,toconnect,todisconnect
            filter "(organization.ancestor match context.user.assignment[$CHECKEDUSER].org) &&
               (project ==	context.user.assignment [$CHECKEDUSER].project)" 
	 The filter checks whether the organization of the object
		(organization) or that of its parent
		(organization.ancestor) matches the organization component of
		the security component granting the access definition
		(context.user.assignment[$CHECKEDUSER].org. For example, 
		Company Name if the user is assigned context 
		VPLMDesign.Company
		  Name.Engineering). 
	 
 
	 The filter also checks whether the project of the object
		(project) matches the collaborative space component of the credentials granting the access definition
		(context.user.assignment[$CHECKEDUSER].project. For example, 
		Engineering if the user is assigned context 
		VPLMDesign.Company
		  Name.Engineering). 
	 
 
	 In most cases, filters can be replaced with matching options to simplify
		the syntax. For the 
		owner or 
		public users, you might still need to use the 
		[filter EXPRESSION].
	 
	 Organization and collaborative space (project) filtering is the main
		recurring pattern in most access definitions. When defining or modifying a
		policy, you include a 
		STATE_ITEM or 
		STATE_MOD_ITEM as part of the access definition. For a
		rule, you include a 
		USER_ITEM. These items provide matching filters for the
		organization or collaborative space. For more information, see 
		State Clause for the Add Policy Command
		or 
		rule Command.
		
		 
	 
	 MQL
		allows you to specify organization and collaborative space (project) access in
		commands that have a State clause, such as Modify Businessobject and Add
		Policy. This table lists the supported organization and project matching
		options:
	 
			 
				| Matching Option | Description | 
			 
				| any org | The value of organizationis not checked. | 
			 
				| single org | The object organization must exactly match
				  the organization of the credentials granting the access. The value of 
					 organizationmust match the login role or
					 assigned credentials. | 
			 
				| ancestor org 
				   | The object organization must be an ancestor
				  (parent organization) of the organization of the credentials granting
				  access. The ancestor of 
					 organizationmust match the login role or
					 assigned credentials. | 
 
			  
				| descendant org 
				   | The object organization must be a descendant (child
				  organization) of the organization of the credentials granting the access. | 
 
			  
				| any project 
				   | The value of projectis not checked. | 
 
			  
				| single project 
				   | The object project must exactly match the project of the
				  credentials granting the access.  The value of 
					 projectmust match login role or assigned
					 credentials | 
 
			  
				| ancestor project 
				   | The object project must be an ancestor (parent object) of
				  the project of the credentials granting the access.  The ancestor of 
					 project 
					 must match login role or assigned credentials. | 
 
			  
				| descendant project 
				   | The object project must be a descendant (child project) of
				  the project of the credentials granting the access. | 
 
		  
	 
	 Taking advantage of the matching options, the access definition is
		implemented as follows:
		
policy "VPLM_SMB"
     state "WAITAPP"
          user "VPLMCreator" read,show,changeowner,checkout,toconnect,todisconnect
             descendant org single project
	  
	 The filter expression: 
		
organization.ancestor match context.user.assignment [$CHECKERUSER].org
	 
	  has been replaced with the option 
		descendant org to specify that the organization of the
		object must match the organization of the credentials
		(org) or any of its descendants (descendant).
	 
	  Similarly, the filter expression: 
		
project == context.user.assignment[$CHECKEDUSER].project
	 
	  has been replaced with the option 
		single project to specify that the collaborative space
		of the object must exactly match that of the credentials.
	 
	  Ultimately, all of the contents of the filter expression of the
		original access definition are defined using the new options, so the new access
		definition has no filter at all.
	 
 
	 You can also use these keywords when defining access:
	 
			 
				| Keyword | Description | 
			 
				| login 
				   | Used in place of userto represent anACCESS_ITEMassociated with the user's login
				  role, as opposed to their assignment list. | 
			 
				| key 
				   | Used to distinguish between multiple ACCESS_ITEMswith the sameUSER_NAME(such as owner or public). |