 
					
				
		
07-16-2019 10:36 AM
i am passing node from UI to Back end to fetch node property based on node id and set property value .
String nodeId = req.getParameter(ID);
 logger.info(nodeId);
 NodeRef node = serviceRegistry.getNodeService().getNodeRef(Long.valueOf(nodeId));
 if(node!= null) {
 serviceRegistry.getNodeService().setProperty(node, NOTIFICATION_IS_EMAIL_SENT, true);
}
Is it correct ?
07-16-2019 12:32 PM
Its correct, but better to wrap as system user to avoid any permission issues. Refer the below code sample:
String nodeId = request.getParamater("nodeId"); //You can get the param from request for example
if (StringUtils.isNumeric(nodeId)) {
		final NodeRef nodeReference = AuthenticationUtil.runAs(new AuthenticationUtil.RunAsWork<NodeRef>() {
			@Override
			public NodeRef doWork() {
				return nodeService.getNodeRef(Long.valueOf(nodeId));
			}
		}, AuthenticationUtil.getSystemUserName());
				
		if (nodeReference !=null){
//Get all properties from the node
			final Map<QName, Serializable> properties = nodeService.getProperties(nodeReference); 
			
//OR
//Get A property from the node. Example: ContentModel.PROP_TITLE
final QName aProp = nodeService.getProperty(nodeReference, propQName); 
//OR
nodeService.setProperty(actionedUponNodeRef, propQName, "A value");
		}
} 
					
				
				
			
		
Explore our Alfresco products with the links below. Use labels to filter content by product module.