Configuring ChangeMan ZDD for a New User
To simplify the setup of ChangeMan ZDD for multiple desktops, you can write a script to automate many of the configuration tasks. Then, a new user can configure ChangeMan ZDD for their own desktop simply by executing the script.
The following scripts illustrate how the configuration tasks can be performed.
VBScript Example
'********************************************************************
' VBScript Example
'
' File Name: NewConfig.vbs
'
' Description: Sample for creating a new configuration.
'
' Usage: NewConfig.vbs <userid>
'
' Copyright ©2003-2011, Serena Software. Licensed material. All rights reserved.
'********************************************************************
Dim userID
Dim network
Dim servers
Dim server
Dim fileFormats
Dim libTypes
Dim fileExtensions
Dim dsProfiles
Dim folders
Dim folder
Dim subfolders
Dim subfolder
Dim filters
Dim members
Dim prefixes
'----------------------------
' Get command line arguments
'----------------------------
If WScript.Arguments.Count < 1 Then
    WScript.Echo "Usage: NewConfig.vbs <userid>"
    WScript.Quit(1)
End If
userID = WScript.Arguments(0)
...
'---------------------------
' Update network properties
'---------------------------
Set network = CreateObject("ZosCom.ZosNetwork")
network.CacheFolder = "C:\Temp"
network.CacheDays = 3
network.NotifyPort = 8000
network.NotifyMessageBox = True
'---------------------
' Add the new servers
'---------------------
Set servers = network.Servers
servers.Add "Server1", "172.20.20.1", 5000, 1140, "Description1"
servers.Add "Server2", "172.20.20.2", 5000, 1140, "Description2"
servers.Add "Server3", "172.20.20.3", 5000, 1140, "Description3"
'---------------------------------------
' Update the properties for each server
'---------------------------------------
For Each server In servers
    '---------------------------
    ' Add the data type entries
    '---------------------------
    Set fileFormats = server.DataSetFileFormats
    fileFormats.Add -1, "**.ASCII.TEXT",   "AT"
    fileFormats.Add -1, "**.ASCII.DATA",   "AD"
    fileFormats.Add -1, "**.UNICODE.TEXT", "UT"
    fileFormats.Add -1, "**.EBCDIC.TEXT",  "ET"
    fileFormats.Add -1, "**.EBCDIC.DATA",  "ED"
    fileFormats.Add -1, "**.BINARY",       "BT"
    '-----------------------------------------------------------
    ' Add the Unix file format entries
    ' This is supported on version 7.1+ servers only.
    ' The lines below should be removed for back level servers.
    '-----------------------------------------------------------
    Set fileFormats = server.UnixFileFormats
    fileFormats.Add -1, "*.TEXT",  "AT"
    fileFormats.Add -1, "*.UTEXT", "UT"
    fileFormats.Add -1, "*.BIN",   "B"
    '------------------------------
    ' Add the library type entries
    '------------------------------
    Set libTypes = server.LibTypes
    libTypes.Add -1, "**.LIBRARY",  "L"
    libTypes.Add -1, "**.PANVALET", "P"
    '--------------------------------
    ' Add the file extension entries
    '--------------------------------
    Set fileExtensions = server.FileExtensions
    fileExtensions.Add -1, "**.CNTL",  "jcl"
    fileExtensions.Add -1, "**.COBOL", "cbl"
    fileExtensions.Add -1, "**.LIST",  "txt"
    fileExtensions.Add -1, "**.WORD",  "doc"
    fileExtensions.Add -1, "**.EXCEL", "xls"
    '------------------------------------
    ' Add the profiles for new data sets
    '------------------------------------
    Set dsProfiles = server.DataSetProfiles
    dsProfiles.Add -1, "**.DATA", "SEQ", "FB", 80, 0, "DATACLS1",
    "STORCLS1", "MGMTCLS1", "TRK", 2, 1, 5, "SYSDA", "VOL001"
    dsProfiles.Add -1, "**.TEMP", "SEQ", "FB", 80, 0, "DATACLS2",
    "STORCLS2", "MGMTCLS2", "CYL", 2, 1, 5, "SYSDA", "VOL002"
    dsProfiles.Add -1, "**.LIST", "SEQ", "VB", 80, 0, "", "",
    "", "BLK", 500, 50, 5, "SYSDA", ""
    '----------------------
    ' Add data set folders
    '----------------------
    Set folder = server.DataSetFolder
    Set subfolders = folder.Subfolders
    '-----------------------------------------------
    ' "My DataSets" folder for all user's data sets
    '-----------------------------------------------
    Set subfolder = subfolders.Add("My DataSets")
    Set filters = subfolder.Filters
    Set prefixes = subfolder.Prefixes
    filters.Add userID & ".**"
    prefixes.Add -1, "**", userID
    '------------------------------------------------
    ' "My Source" folder for user's source libraries
    '------------------------------------------------
    Set subfolder = subfolders.Add("My Source")
    Set filters = subfolder.Filters
    Set members = subfolder.MemberFilters
    Set prefixes = subfolder.Prefixes
    filters.Add userID & ".**.COBOL"
    filters.Add userID & ".**.ASM"
    members.Add "ABC*"
    members.Add "X*"
    prefixes.Add -1, "**", userID
    '-----------------
    ' Add job folders
    '-----------------
    Set folder = server.JobFolder
    Set subfolders = folder.Subfolders
    '----------------------------------------
    ' "My Jobs" folder for jobs owned by user
    '----------------------------------------
    subfolders.Add "My Jobs", "QU", userID
    '-----------------------------------------------------
    ' "ChangeMan" folder for job names prefixed with "CMN"
    '-----------------------------------------------------
    subfolders.Add "ChangeMan", "QN", "CMN*"
    '-------------------------------------
    ' "Active" folder for all active jobs
    '-------------------------------------
    subfolders.Add "Active", "A"
    '-----------------------
    ' Add ChangeMan folders
    '-----------------------
    Set folders = server.ChangeManInstances
    folders.Add "ChangeMan-Prod", 3000, "Production ChangeMan"
    folders.Add "ChangeMan-Test", 3001, "Test ChangeMan"
    For Each folder In folders
        '--------------------------------------
        ' Add the ChangeMan file format entries
        '--------------------------------------
        Set fileFormats = folder.FileFormats
        fileFormats.Add -1, "SRC", "AT"
        fileFormats.Add -1, "DOC", "UT"
        fileFormats.Add -1, "BIN", "BT"
    Next
Next
...
JScript Example
/******************************************************************
*
* File Name: NewConfig.js
**
Description: Sample for creating a new configuration.
**
Usage:       NewConfig.js <userid>
**
Copyright ©2003-2011, Serena Software. Licensed material. All rights
reserved.
*******************************************************************/
var userID;
var network;
var servers;
var server;
var fileFormats;
var libTypes;
var fileExtensions;
var dsProfiles;
var folders;
var folder;
var subfolders;
var subfolder;
var filters;
var members;
var prefixes;
var enumerator;
//////////////////////////////
// Get command line arguments
//////////////////////////////
if (WScript.Arguments.Count() < 1)
{
    WScript.Echo("Usage: NewConfig.js <userid>");
    WScript.Quit(1);
}
...
userID = WScript.Arguments(0);
/////////////////////////////
// Update network properties
/////////////////////////////
network = new ActiveXObject("ZosCom.ZosNetwork");
network.CacheFolder = "C:\\Temp";
network.CacheDays = 3;
network.NotifyPort = 8000;
network.NotifyMessageBox = true;
///////////////////////
// Add the new servers
///////////////////////
servers = network.Servers;
servers.Add("Server1", "172.20.20.1", 5000, 1140, "Description1");
servers.Add("Server2", "172.20.20.2", 5000, 1140, "Description2");
servers.Add("Server3", "172.20.20.3", 5000, 1140, "Description3");
/////////////////////////////////////////
// Update the properties for each server
/////////////////////////////////////////
serverEnum = new Enumerator(servers);
for (; !serverEnum.atEnd(); serverEnum.moveNext())
{
    server = serverEnum.item();
    ////////////////////////////////////////
    // Add the data set file format entries
    ////////////////////////////////////////
    fileFormats = server.DataSetFileFormats;
    fileFormats.Add(-1, "**.ASCII.TEXT",   "AT");
    fileFormats.Add(-1, "**.ASCII.DATA",   "AD");
    fileFormats.Add(-1, "**.UNICODE.TEXT", "UT");
    fileFormats.Add(-1, "**.EBCDIC.TEXT",  "ET");
    fileFormats.Add(-1, "**.EBCDIC.DATA",  "ED");
    fileFormats.Add(-1, "**.BINARY",       "BT");
    //////////////////////////////////////////////////////////////
    // Add the Unix file format entries
    // This is supported on version 7.1+ servers only.
    // The lines below should be removed for back level servers.
    //////////////////////////////////////////////////////////////
    fileFormats = server.UnixFileFormats;
    fileFormats.Add(-1, "*.TEXT",  "AT");
    fileFormats.Add(-1, "*.UTEXT", "UT");
    fileFormats.Add(-1, "*.BIN",   "B" );
    ////////////////////////////////
    // Add the library type entries
    ////////////////////////////////
    libTypes = server.LibTypes;
    libTypes.Add(-1, "**.LIBRARY",  "L");
    libTypes.Add(-1, "**.PANVALET", "P");
    //////////////////////////////////
    // Add the file extension entries
    //////////////////////////////////
    fileExtensions = server.FileExtensions;
    fileExtensions.Add(-1, "**.CNTL",  "jcl");
    fileExtensions.Add(-1, "**.COBOL", "cbl");
    fileExtensions.Add(-1, "**.LIST",  "txt");
    fileExtensions.Add(-1, "**.WORD",  "doc");
    fileExtensions.Add(-1, "**.EXCEL", "xls");
    //////////////////////////////////////
    // Add the profiles for new data sets
    //////////////////////////////////////
    dsProfiles = server.DataSetProfiles;
    dsProfiles.Add(-1, "**.DATA", "SEQ", "FB", 80, 0, "DATACLS1",
    "STORCLS1", "MGMTCLS1", "TRK", 2, 1, 5, "SYSDA", "VOL001");
    dsProfiles.Add(-1, "**.TEMP", "SEQ", "FB", 80, 0, "DATACLS2",
    "STORCLS2", "MGMTCLS2", "CYL", 2, 1, 5, "SYSDA", "VOL002");
    dsProfiles.Add(-1, "**.LIST", "SEQ", "VB", 80, 0, "", "",
    "", "BLK", 500, 50, 5, "SYSDA", "");
    ////////////////////////
    // Add data set folders
    ////////////////////////
    folder = server.DataSetFolder;
    subfolders = folder.Subfolders;
    /////////////////////////////////////////////////
    // "My DataSets" folder for all user's data sets
    /////////////////////////////////////////////////
    subfolder = subfolders.Add("My DataSets");
    filters = subfolder.Filters;
    prefixes = subfolder.Prefixes;
    filters.Add(userID + ".**");
    prefixes.Add(-1, "**", userID);
    //////////////////////////////////////////////////
    // "My Source" folder for user's source libraries
    //////////////////////////////////////////////////
    subfolder = subfolders.Add("Source");
    filters = subfolder.Filters;
    members = subfolder.MemberFilters;
    prefixes = subfolder.Prefixes;
    filters.Add(userID + ".**.COBOL");
    filters.Add(userID + ".**.ASM");
    members.Add("ABC*");
    members.Add("X*");
    prefixes.Add(-1, "**", userID);
    ///////////////////
    // Add job folders
    ///////////////////
    folder = server.JobFolder;
    subfolders = folder.Subfolders;
    ///////////////////////////////////////////
    // "My Jobs" folder for jobs owned by user
    ///////////////////////////////////////////
    subfolder = subfolders.Add("My Jobs", "QU", userID);
    ////////////////////////////////////////////////////////
    // "ChangeMan" folder for job names prefixed with "CMN"
    ////////////////////////////////////////////////////////
    subfolder = subfolders.Add("ChangeMan", "QN", "CMN*");
    ///////////////////////////////////////
    // "Active" folder for all active jobs
    ///////////////////////////////////////
    subfolder = subfolders.Add("Active", "A");
    /////////////////////////
    // Add ChangeMan folders
    /////////////////////////
    folders = server.ChangeManInstances;
    folders.Add("ChangeMan-Prod", 3000, "Production ChangeMan");
    folders.Add("ChangeMan-Test", 3001, "Test ChangeMan");
    folderEnum = new Enumerator(folders);
    for (; !folderEnum.atEnd(); folderEnum.moveNext())
    {
        folder = folderEnum.item();
        /////////////////////////////////////////
        // Add the ChangeMan file format entries
        /////////////////////////////////////////
        fileFormats = folder.FileFormats;
        fileFormats.Add(-1, "SRC", "AT");
        fileFormats.Add(-1, "DOC", "UT");
        fileFormats.Add(-1, "BIN", "B");
    }
}
...