<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: Advanced search authority association in Alfresco Archive</title>
    <link>https://connect.hyland.com/t5/alfresco-archive/advanced-search-authority-association/m-p/306250#M259380</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Hello! &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;1) As I understood such types of associations are not indexed by search engine (e.g. lucene) somehow, so you can't search anything by it.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;2) To use authority picker on an association property in adv search you have to implement custom field component based on association.ftl which fills search field with authority credentials after selection. I must say, it's tricky enough.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;3) You should read about policies in alfresco (&lt;/SPAN&gt;&lt;A href="http://wiki.alfresco.com/wiki/Policy_Component" rel="nofollow noopener noreferrer"&gt;http://wiki.alfresco.com/wiki/Policy_Component&lt;/A&gt;&lt;SPAN&gt;). The point is, you can implement a piece of Java code, which is executed every time somethings happens with node (in your case - authority). Look at this, for example:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;lt;java&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;public class MyAuthorityPolicy implements OnUpdatePropertiesPolicy{&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;private PolicyComponent policyComponent;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;private NodeService nodeService;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;private Behaviour onUpdatePropertiesPolicy;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;public void init() {&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;this.onUpdatePropertiesPolicy = new JavaBehaviour(this, OnUpdatePropertiesPolicy.QNAME.getLocalName(), NotificationFrequency.EVERY_EVENT); &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;policyComponent.bindClassBehaviour(OnUpdatePropertiesPolicy.QNAME, ContentModel.TYPE_AUTHORITY, this.onUpdatePropertiesPolicy);&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;void onUpdateProperties(NodeRef nodeRef, Map&amp;lt;QName, Serializable&amp;gt; before, Map&amp;lt;QName, Serializable&amp;gt; after) {&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;List&amp;lt;AssociationRef&amp;gt; myTypeSourceAssocs = nodeService.getSourceAssocs(nodeRef, MY_TYPE_ASSOC_QNAME);&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;for(AssociationRef myTypeNodeAssoc : myTypeSourceAssocs){&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;NodeRef myTypeNodeRef = myTypeNodeAssoc.getSourceRef();&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;nodeService.setProperty(myTypeNodeRef, MY_FIELD_QNAME, after.get(ContentModel.PROP_FIRSTNAME) + " " + after.get(ContentModel.PROP_LASTNAME));&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;…&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;lt;/java&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Explanation:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Every time user node properties updated, all nodes authority being attached to by your association are retrieved and thier respective field values are changed to new ones. You can check which fields of authority are actually changed by comparing before and after items.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Tue, 15 Oct 2013 10:47:00 GMT</pubDate>
    <dc:creator>alhol</dc:creator>
    <dc:date>2013-10-15T10:47:00Z</dc:date>
    <item>
      <title>Advanced search authority association</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/advanced-search-authority-association/m-p/306249#M259379</link>
      <description>As the title suggests, I have a custom type that includes an authority type association. I want this to be visible in advanced search.I have read another post stating this is not by default possible, the suggested workaround being one my co-worker and I came up with ourselves as well: adding a new p</description>
      <pubDate>Wed, 07 Aug 2013 14:15:24 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/advanced-search-authority-association/m-p/306249#M259379</guid>
      <dc:creator>mtielemans</dc:creator>
      <dc:date>2013-08-07T14:15:24Z</dc:date>
    </item>
    <item>
      <title>Re: Advanced search authority association</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/advanced-search-authority-association/m-p/306250#M259380</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Hello! &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;1) As I understood such types of associations are not indexed by search engine (e.g. lucene) somehow, so you can't search anything by it.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;2) To use authority picker on an association property in adv search you have to implement custom field component based on association.ftl which fills search field with authority credentials after selection. I must say, it's tricky enough.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;3) You should read about policies in alfresco (&lt;/SPAN&gt;&lt;A href="http://wiki.alfresco.com/wiki/Policy_Component" rel="nofollow noopener noreferrer"&gt;http://wiki.alfresco.com/wiki/Policy_Component&lt;/A&gt;&lt;SPAN&gt;). The point is, you can implement a piece of Java code, which is executed every time somethings happens with node (in your case - authority). Look at this, for example:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;lt;java&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;public class MyAuthorityPolicy implements OnUpdatePropertiesPolicy{&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;private PolicyComponent policyComponent;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;private NodeService nodeService;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;private Behaviour onUpdatePropertiesPolicy;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;public void init() {&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;this.onUpdatePropertiesPolicy = new JavaBehaviour(this, OnUpdatePropertiesPolicy.QNAME.getLocalName(), NotificationFrequency.EVERY_EVENT); &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;policyComponent.bindClassBehaviour(OnUpdatePropertiesPolicy.QNAME, ContentModel.TYPE_AUTHORITY, this.onUpdatePropertiesPolicy);&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;void onUpdateProperties(NodeRef nodeRef, Map&amp;lt;QName, Serializable&amp;gt; before, Map&amp;lt;QName, Serializable&amp;gt; after) {&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;List&amp;lt;AssociationRef&amp;gt; myTypeSourceAssocs = nodeService.getSourceAssocs(nodeRef, MY_TYPE_ASSOC_QNAME);&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;for(AssociationRef myTypeNodeAssoc : myTypeSourceAssocs){&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;NodeRef myTypeNodeRef = myTypeNodeAssoc.getSourceRef();&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;nodeService.setProperty(myTypeNodeRef, MY_FIELD_QNAME, after.get(ContentModel.PROP_FIRSTNAME) + " " + after.get(ContentModel.PROP_LASTNAME));&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;…&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;lt;/java&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Explanation:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Every time user node properties updated, all nodes authority being attached to by your association are retrieved and thier respective field values are changed to new ones. You can check which fields of authority are actually changed by comparing before and after items.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 15 Oct 2013 10:47:00 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/advanced-search-authority-association/m-p/306250#M259380</guid>
      <dc:creator>alhol</dc:creator>
      <dc:date>2013-10-15T10:47:00Z</dc:date>
    </item>
    <item>
      <title>Re: Advanced search authority association</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/advanced-search-authority-association/m-p/306251#M259381</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;As this post still hasn't been answered: &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;1. I have found an association of type cm&lt;img id="smileytongue" class="emoticon emoticon-smileytongue" src="https://connect.hyland.com/i/smilies/16x16_smiley-tongue.png" alt="Smiley Tongue" title="Smiley Tongue" /&gt;erson searchable in Alfresco 5.0.d.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;2. You can make this work simply by using the authority.ftl form control, as long as your datatype is cm&lt;img id="smileytongue" class="emoticon emoticon-smileytongue" src="https://connect.hyland.com/i/smilies/16x16_smiley-tongue.png" alt="Smiley Tongue" title="Smiley Tongue" /&gt;erson.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;3. Unfortunately, the authority.ftl's picker layout is messed up in search forms in 5.0.d.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Also, thanks for your take on it, Alhol, if you're still out there.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 25 Jan 2016 20:31:00 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/advanced-search-authority-association/m-p/306251#M259381</guid>
      <dc:creator>mtielemans</dc:creator>
      <dc:date>2016-01-25T20:31:00Z</dc:date>
    </item>
  </channel>
</rss>

