cancel
Showing results for 
Search instead for 
Did you mean: 

Solution: tag multiple files at once

zbennett
Champ in-the-making
Champ in-the-making
Hi all,

I've developed a very simple process for tagging multiple files at once. It relies on repository actions/rules and a couple lines of JavaScript, and it's all described below. Once you're all set up, you will be able to make a file inherit tags from a folder you move it into. My example is used for an Image Gallery, so my rule also moves files out of the tagged folders and back into the Image Gallery Document Library.

I am running Alfresco Community Edition v3.3 on my local machine and I am using the Alfresco Share interface.

——————————————-

First, we need to create a JavaScript file with a couple lines of code in it. This is easy, even for people who know nothing about JavaScript. How is it easy, you ask? It's easy because I'm going to tell you exactly what you need to do!

Open Notepad and copy the following code into your blank text file:
//Alfresco auto-tagger
//compliments of Zach Bennett, Eagle Productivity Solutions
//two lines of code
//free for anyone to use
//no license, no strings attached

//get tags from parent (folder) node
var tagArray = document.parent.getTags();

//add the tags to the document node
document.addTags(tagArray);

Now go to File -> Save As… Name your file "tagger.js" and save it to your desktop (or wherever you feel is appropriate). That's all there is to creating the JavaScript file, now we just need to upload it to Alfresco.

Go to your Repository
[img]http://zandadev.com/zach/alfresco_auto_tag_guide/add_script/1_go_to_repo.jpg[/img]

Dive into the Data Dictionary
[img]http://zandadev.com/zach/alfresco_auto_tag_guide/add_script/2_go_to_data_dict.jpg[/img]

And then into Scripts
[img]http://zandadev.com/zach/alfresco_auto_tag_guide/add_script/3_go_to_scripts.jpg[/img]

Then just select Upload and browse to tagger.js (that JavaScript file you created)
[img]http://zandadev.com/zach/alfresco_auto_tag_guide/add_script/4_click_upload.jpg[/img]

Now your script is ready to use! All that is left do is create a couple folders and a rule.

In this example, I created a folder called "auto-tagger" in my Image Gallery's Document Library. I then created a rule that runs the JavaScript code I wrote. My intention was to put temporary folders inside the auto-tagger folder, each with a set of tags that I could reuse over and over.

On the auto-tagger folder, select Manage Rules
[img]http://zandadev.com/zach/alfresco_auto_tag_guide/create_rule/1_select_manage_rules.jpg[/img]

Click Create Rules
[img]http://zandadev.com/zach/alfresco_auto_tag_guide/create_rule/2_click_create_rules.jpg[/img]

Give the rule a name, and make sure the check the 'Rule applies to subfolders' check box
[img]http://zandadev.com/zach/alfresco_auto_tag_guide/create_rule/3_name_and_rule_applies_to_subfolders.j...[/img]



*** Very important edit ***

You need to set the criteria so this rule only applies to Content items and NOT Folders (unless you want to make the same mistake I made!)
[img]http://zandadev.com/zach/alfresco_auto_tag_guide/create_rule/3andahalf_set_criteria.jpg[/img]


Under Perform Action, select Execute script
[img]http://zandadev.com/zach/alfresco_auto_tag_guide/create_rule/4_select_execute_script.jpg[/img]

And in the drop-down box that appears, you can now select tagger.js, which is the JavaScript file we created earlier
[img]http://zandadev.com/zach/alfresco_auto_tag_guide/create_rule/5_select_tagger.jpg[/img]

To make sure this folder stays empty (which was important for my purpose of an Image Gallery), we will add another action to the rule.

Click the plus symbol (+) to the right side of this rule
[img]http://zandadev.com/zach/alfresco_auto_tag_guide/create_rule/6_add_action.jpg[/img]

For this action, select Move
[img]http://zandadev.com/zach/alfresco_auto_tag_guide/create_rule/7_select_move.jpg[/img]

Then select where you want files to be moved to. I wanted files to be moved to the main Document Library of my Image Gallery site, but you may want to do things differently
[img]http://zandadev.com/zach/alfresco_auto_tag_guide/create_rule/8_select_location.jpg[/img]

And finally, click Create
[img]http://zandadev.com/zach/alfresco_auto_tag_guide/create_rule/9_click_create.jpg[/img]


Now that the rule is created (and applied to subfolders of auto-tagger), you can create folders inside of the auto-tagger folder and add tags to them. Once you do that, can can move files into (or upload directly to) those subfolders to make them inherit the appropriate tags. Any files created in or added to those subfolders will automatically be moved to the location you selected above (like my Image Gallery Document Library).


I hope this helps - happy tagging!
34 REPLIES 34

abhashree
Champ in-the-making
Champ in-the-making
hi
i am also using alfresco3.3..i dont know how it is reflecting version 3.2 in my alfresco profile.
i have also created my own rule and applied to it..
i have followed each steps described by you but didnt get the result..

zbennett
Champ in-the-making
Champ in-the-making
Do you see anything in the Execute Script drop-down?  For example - Alfresco Lucene Search; Append Copyright to File; Backup Script; etc…

cristinamr
World-Class Innovator
World-Class Innovator
Thank you very much zbennett for this tutorial!  :wink:
--
VenziaIT: helping companies since 2005! Our ECM products: AQuA & Seidoc

mboyd
Champ in-the-making
Champ in-the-making
Great Tutorial!

After I upload all of my documents into the auto-tag subfolders, the tag counts are incorrect. Is there a way to update the tag counts?

Could this be because of this issue? https://issues.alfresco.com/jira/browse/ALF-1328

chapeaurouge
Champ in-the-making
Champ in-the-making
hi
sorry to say i followed all the instructions but one point i stopped and  couldn't move on..
in the step of perform action within auto-tagger  when i selected execute script then in the select field i didnt find tagger.js
i don't know where is the mistake …i followed before steps clearly…

Did you input a Title to your script when you created it?

The selection box in Share doesn't take the name of the script, but its title. So you may see what appears as a blank line in the selection box.. it'd be in fact your script.

alarocca
Champ in-the-making
Champ in-the-making
Followed the instructions and specified a title. Unfortunately I do not find the new script while creating a rule from Share.

If I try to create the rule from Alfresco Explorer, the script is available.

My Alfresco version is 3.4.d CE.

zbennett
Champ in-the-making
Champ in-the-making
Hi alarocca,

Early in my testing, I found that I sometimes needed to restart Tomcat or just wait it out before new scripts would appear in the list.  You might also try clearing your browser cache.  I don't even know if clearing your cache *could* solve the problem, but that's typically the first thing I do when a web page isn't updating as I expect it to.

Also, have you tried creating these rules through Alfresco and then testing them in Share?

kirit
Champ on-the-rise
Champ on-the-rise
Working perfectly for me. Thanks.

jbfromlb
Champ in-the-making
Champ in-the-making
Does anyone have an updated version of the script with will work with 4.0x ?

chops88
Champ in-the-making
Champ in-the-making
Ditto - trying the script on Community 4.0 doesnt do anything. Is the syntax correct in the script for 4.0?