Script: Copy SQL folder

Duplicates an SQL folder incl. queries

Copies the current SQL folder including all queries and pastes it into a parent folder to be selected.

The list settings are not copied. If you want to apply them as well, use the Copy Copy list settings script.

Version

Version Description Script
6.6

Script for Vertec versions before 6.7.0.12 and for running in Script Editor for all versions.
The new parent folder will be Internal id indicated.

Copysqlordnerargobject.py
6.7.0.12

Used selectedobjects. The new parent folder is queried in a selection dialog.

Copysqlordner.py
6.8.0.7 Uses English class and member names as well as the new fields isExpandable, openInNavigationView,  assignedDimensionDisplays and visibleExpression. Copysqlfolder.py

Script Text

#---Designation: Copy SQL folder
#   Classes: SQLFolder
#   Selectedobjectsscript: Yes
#   Condexpression: self->size = 1
#---The script copies the current folder and appends it to a parent folder 
#   to be selected in a selection dialog
#---15.09.2025, sth: Adapted to version 6.8, English, new fields
#   Requires Vertec version 6.8.0.7.

def main(folderlist):
    for folder in folderlist:
        parentfolder = None
        # Evaluate new parent folder
        parentfolder = vtcapp.selectobjectintree("Select parent folder for new folder", [], browsefilter="", selectfilter="AbstractFolder")
        if parentfolder:
            try:
                newfolder = vtcapp.createobject("SqlFolder")
                newfolder.parentfolder = parentfolder
                # copy all members
                newfolder.allowShowAll = folder.allowShowAll
                newfolder.orderClause = folder.orderClause
                newfolder.showDialog = folder.showDialog
                newfolder.whereClause = folder.whereClause
                newfolder.classname = folder.classname
                newfolder.creatorClasses = folder.creatorClasses
                newfolder.dialogParamsInitialized = folder.dialogParamsInitialized
                newfolder.expression = folder.expression
                newfolder.searchConfiguration = folder.searchConfiguration
                newfolder.designation = folder.designation
                newfolder.tabsPerClass = folder.tabsPerClass
                newfolder.idx = folder.idx
                newfolder.persistentIcon = folder.persistentIcon
                newfolder.remarks = folder.remarks
                newfolder.controllerClassname = folder.controllerClassname
                newfolder.isExpandable = folder.isExpandable
                newfolder.openInNavigationView = folder.openInNavigationView
                newfolder.visibleExpression = folder.visibleExpression
                for biview in folder.assignedDimensionDisplays:
                    newfolder.assignedDimensionDisplays.append(biview)                
                vtcapp.msgbox("Copying process completed")
            except Exception as e:
                vtcapp.msgbox('There was a problem creating the new folder. The copying process was aborted.\nThe error is: {}'.format(e))
                continue

main(selectedobjects)

Netherlands

United Kingdom