cancel
Showing results for 
Search instead for 
Did you mean: 

custom workflow definition must be hidden for other sites and must appear on only specific site

ashitasaxena
Champ on-the-rise
Champ on-the-rise

Hi ,

How to show my custom workflow definition  in a dropdown of  of Select workflows only for specific site?

I want that custom workflow definition must not appear on any other Start Workflow's page of any other site  but only on specific site.

If anybody has ever implemented the solution then Please reply .

Thanks in advance#

2 REPLIES 2

douglascrp
World-Class Innovator
World-Class Innovator

Hello.

Share has a special configuration section only for this kind of configuration.

It's something like this:

<config condition="Workflow" evaluator="string-compare">
    <hidden-workflows>
        <workflow name="activiti$workflowId"></workflow>
    </hidden-workflows>
</config>

You have to put that inside share-config-custom.xml

The problem with this method is that it will be applied for all the sites.

In order to have this working selectively, you will have to use the extension modules configuration, as explained here Module dynamic configuration | Alfresco Documentation

Hello ,

Hiding of workflows through share-config-custom.xml  for general it already worked for me.

Thanks to DOUGLAS  ,Issue was for specific site that  get resolved by Using Surf Extension Modules  

as explained here  Module dynamic configuration | Alfresco Documentatio or you can find solution below

Extension modules are defined in form of Xml file .Create an Xml file under  alfresco/web-extension/site-data/extensions directory  as shown below

<extension>
   <modules>
      <module>
         <id>Site_Conditional_Workflow</id>
         <description>Applies config based on site id</description>
         <evaluator type="site.module.evaluator">
            <params>
               <sites>url of your own site</sites>
               <sitePresets>.*</sitePresets>
            </params>
         </evaluator>
         <configurations>
          <config evaluator="string-compare" condition="Workflow" replace="true">
        <!-- A list of workflow definitions that are NOT displayed in Share -->
        <hidden-workflows>
            <!-- Hide all WCM related workflows -->
            <workflow name="activiti$activitiAdhoc" />
            <workflow name="activiti$activitiInvitationModerated" />
            <workflow name="activiti$activitiInvitationNominated" />
            <workflow name="activiti$activitiInvitationNominatedAddDirect" />
            <workflow name="activiti$activitiParallelGroupReview" />
            <workflow name="activiti$activitiParallelReview" />
            <workflow name="activiti$activitiReview" />
            <workflow name="activiti$activitiReviewPooled" />
            <workflow name="activiti$dlMgmt" />
            <workflow name="activiti$helloWorldUI" />
            <workflow name="activiti$myProcess" />
            <workflow name="activiti$myTest" />
            <workflow name="activiti$publishWebContent" />

        </hidden-workflows>

        <!-- A list of workflow tasks that are NOT displayed in Share -->
        <hidden-tasks>
            <!-- Hide all WCM related tasks -->
            <task type="wcmwf:*" />
        </hidden-tasks>
    </config>
        
         </configurations>
      </module>
   </modules>
</extension> 

You have to give the url of your own site  in the parameters of evaluator  and  whichever workflows you want to hide from your site give those.

then deploy this module through  url  http://localhost:8080/share/page/modules/deploy  and  then check out the result .