Script: Move a root folder

Moves a folder from the root

Product line

Standard

|

Expert

Operating mode

CLOUD ABO

|

ON-PREMISES

Modules

Services & CRM

Budget & Phases

Purchases

Resource Planning

Business Intelligence

Created: 09.10.2006
Machine translated
Updated: 19.07.2019 | Removed references to classic app and desktop app from article (script unchanged).

Removes a root folder from the root and subordinates it to another folder.

Execute

On the root folder to be moved. The new parent folder must be specified by the ID. You can view the ID by right-clicking Eigenschaften on the folder.

Since scripts cannot be registered on root folders, execution must be done in a different way: On the corresponding root folder, go to the Script Editor via the Settings menu, paste the code and click Run.

Scripting

Moverootfolder.py

Script Text

# coding: windows-1252
#
#---Bezeichnung: Root-Ordner verschieben
#   Klassen:
#   ObjectScript: No
#   ContainerScript: No
#   EventType: Kein
#   EventClass:
#   EventMembers:
#   ExtendedRights: No
#---Verschiebt einen Rootordner in einen anderen Ordner.
#   Er erscheint dann als Unterordner dieses anderen Ordners.
#   Alle Unterordner / Einträge des Root-Ordners werden ebenfalls verschoben.
#---09.10.2006, Vertec AG: erstellt.
#---20.04.2009, sr: Header eingefügt.
#---03.03.2017, sr: Script in Python erstellt

def main():
    #Setzt und prüft den zu verschiebenden Ordner
    ordner = argobject
    if ordner.eval('oclisKindOf(AbstractOrdner)'):
        #Neuen Parentordner bestimmen
        parentid = vtcapp.inputbox('Vertec','Geben Sie die ID des neuen Parentordners an','')
        try:
            parentord = vtcapp.getobjectbyid(parentid)
        except:
            vtcapp.msgbox('Kein Ordner mit dieser ID gefunden')
        else:
            try:
                ordner.parentordner = parentord
            except:
                vtcapp.msgbox('Expression-, Abfrage- oder SQL-Ordner sind als Zielordner nicht erlaubt')
            else:
                #Entfernt den Root-Status
                for user in list(ordner.abstractuserasroot):
                    ordner.abstractuserasroot.remove(user)
    else:    
        vtcapp.msgbox('Dieses Script muss auf einer Benutzergruppe ausgeführt werden.')

main()