// for all items in Folder { do something } /* This template provides a starting point for a new script where you wish to scan items in a folder, project or database and perform some action according to the items encountered. Unmodified, this script simply prints the full name of all items found below the current folder. smartDXL.com */ /****************************************************************************** processDescriptive Do something with the given descriptive module. ******************************************************************************/ void processDescriptive(string mName) { print("Descriptive Module: " mName "\n") } /****************************************************************************** processFormal Do something with the given formal module. ******************************************************************************/ void processFormal(string mName) { print("Formal Module: " mName "\n") } /****************************************************************************** processLink Do something with the given link module. ******************************************************************************/ void processLink(string mName) { print("Link Module: " mName "\n") } /****************************************************************************** processFolder Do something with the given folder. ******************************************************************************/ void processFolder(Folder f) { print("Folder: " fullName(f) "\n") } /****************************************************************************** processProject Do something with the given project. ******************************************************************************/ void processProject(Project f) { print("Project: " fullName(f) "\n") } /****************************************************************************** scanFolder This function scans all items in the given folder, recursing through sub-projects and folders. One of the process functions, defined above, is called according to the type of the item. ******************************************************************************/ void scanFolder(Folder f) { Item itm if (null f) { print("NULL Folder parameter passed") return } // loop through items at top level of folder for itm in f do { // sensible checks to avoid run-time errors if (null itm) continue if (isDeleted(itm)) continue // take action according to type of the item if (type (itm) == "Project") { // do something with project processProject(project(itm)) // scan items in the project scanFolder(folder(itm)) } else if (type (itm) == "Folder") { // do something with folder processFolder(folder(itm)) // scan items in the folder scanFolder(folder(itm)) } else if (type (itm) == "Formal") { // do something with formal module processFormal(fullName(itm)) } else if (type (itm) == "Link") { // do something with link module processLink(fullName(itm)) } else if (type (itm) == "Descriptive") { // do something with descriptive module processDescriptive(fullName(itm)) } } } /****************************************************************************** MAIN ******************************************************************************/ scanFolder(current Folder)