Examples - Create/Run a Temporary Task Based on an Existing Template Task

This VBScript example shows how to use the programmatic API to download "templates" for task and host configuration elements, modify them and resubmit/run them as a temporary task.

However, you would first likely want to spend a few moments setting up one or two "template tasks" and at least one "template host" to use. This requires the use of MOVEit Automation Admin and is described below.

Step 1: Set up a MOVEit Automation "template host"

First, create a new "template host" of the appropriate type on MOVEit DMZ. If you are unsure which type to use (because you may be switching between different types of hosts at runtime), create a host of type "FTP".

For detailed instructions, see the "Creating a Template Host" section below."

Step 2: Set up one or two MOVEit Automation "template tasks"

Next you should create one or two "template tasks" that reference your template host. You may find it easier to use two template tasks (one for uploading and one for downloading) if one of your endpoints is a Windows file system (including UNCs) because Windows sources and destinations are treated a little differently than non-Windows sources.

For detailed instructions, see the "Creating Template Tasks" section below."

Step 3: Set up a MOVEit Automation API user with appropriate permissions

To gain access to MOVEit Automation, MOVEit Automation API will need to authenticate with the proper credentials.

If you plan to submit temporary tasks involving existing hosts, your MOVEit Automation API user only needs "View/Select" permission to those existing hosts but "View/Select/Run/Add/Edit/Delete" permission on the template tasks. If you plan to submit temporary tasks involving ad hoc hosts, your MOVEit Automation API user needs "View/Select/Add/Edit/Delete" permission on your template host and "View/Select/Run/Add/Edit/Delete" permission on the template tasks.

Alternatively, you can just grant your MOVEit Automation API full access to MOVEit Automation and avoid a task/host permission structure.

For detailed instructions, see the "Creating Appropriate Permissions for MOVEit Automation API" section below."

Step 4: Write your MOVEit Automation API application

Finally, you are ready to write your own MOVEit Automation API application. This can be done in any language that supports Windows COM components (or Java if you are using the Java classes).

Generally, MOVEit Automation API applications that download template configurations, make changes to them and resubmit/run them as "temporary tasks" will perform the same set of general operations:

The two examples provided below perform similar operations, but one references existing host definitions while the other accesses remote servers for which no host definition exists.

VBScript Code (Reference Existing Hosts)

Option Explicit

'  Echo a message to the console
Sub ShowMsg(MyText)
  Dim TheSplit
  TheSplit = Split(Now()," ")
  WScript.Echo TheSplit(1) & " - " & MyText
End Sub

'  Echo a message to the console along with last API error (if any)
Sub ShowMsg2(MyText,oAPI)
  Dim TheSplit
  TheSplit = Split(Now()," ")
  if oAPI.GetErrorCode = 0 then
    WScript.Echo TheSplit(1) & " - " & MyText
  else
    WScript.Echo TheSplit(1) & " - " & MyText & " Error#" & oAPI.GetErrorCode & ": " & oAPI.GetErrorDescription
  end if
End Sub

' Display the contents of a WaitResult object
Sub DumpWaitResult(oAPI,oWaitResult)
  Dim TaskRunInfoXML
  ShowMsg   "Task Run Results:"
  ShowMsg   "  Name:  " & oWaitResult.TaskName
  ShowMsg   "  ID:    " & oWaitResult.TaskID
  ShowMsg   "  Time:  " & oWaitResult.TaskNominalStartTime & " to "  & oWaitResult.TaskTimeEnded
  if oWaitResult.TaskErrorCode = 0 then
    ShowMsg "  Error: (none)"
  else
    ShowMsg "  Error: " & oWaitResult.TaskErrorCode & ": " & oWaitResult.TaskErrorDescription
  end if
  TaskRunInfoXML = oAPI.GetTaskRunInfoXML(oWaitResult)
   ShowMsg "  Xfer:  " & oAPI.GetValue(TaskRunInfoXML, "FilesSent", 1) & _
      " files, " & _
      oAPI.GetValue(TaskRunInfoXML, "TotalBytesSent", 1) & _
      " bytes"
  'ShowMsg "-= GetTaskRunInfoXML =-"
  'ShowMsg TaskRunInfoXML
  'ShowMsg "-= GetTaskRunXfersXML =-"
  'ShowMsg oAPI.GetTaskRunXfersXML(oWaitResult)
End Sub

'  This main routine does all the work for the script.
Sub Main

   Dim bOK, TryTasks, MaxTasks
   Dim TaskHnd, TaskHndPipe, StartedTasks
   Dim WaitResult, TaskName, WaitSecs
   Dim TaskXML, iii, HostXML, HostID, TaskLimit, TaskID
   Dim oAPI

   Set oAPI = CreateObject("MICentralAPICOM.MICentralAPI")
   ShowMsg("Starting demonstration using existing hosts.")
   MaxTasks = 3
   TryTasks = 5

   'On Error Resume Next

   ' Sign on and connect
   oAPI.SetHost("192.168.3.178")
   oAPI.SetUser("API1")
   oAPI.SetPassword("password")
   bOK = oAPI.Connect()
   if NOT bOK then
     ShowMsg2 "Could not sign on to MOVEit Automation!",oAPI
     Exit Sub
   end if
   ShowMsg("Running API version " & oAPI.GetAPIVersion() & _
     " on Central version " & oAPI.GetCentralVersion() )

  ' Use the ".GetItemXML" method to get a local copy of a template task configuration.
  TaskXML = oAPI.GetItemXML("Task", "Template Task - Download from FTP", True)
  if TaskXML="" then
    ShowMsg2 "Failed to read template task configuration! ", oAPI
    Exit Sub
  else
    ShowMsg "Read template task configuration; " & Len(TaskXML) & " bytes."
  end if

  ' Look up the HostID of a named FTP site
  HostXML = oAPI.GetItemXML("Host", "Hewlett Packard Public FTP Site", True)
  if HostXML="" then
    ShowMsg2 "Failed to read target host configuration! ", oAPI
    Exit Sub
  else
    ShowMsg "Read target host configuration; " & Len(HostXML) & " bytes."
  end if
  HostID = oAPI.GetAttribute(HostXML, "FTP", 1, "ID")

  ' Use the ".SetAttribute" method to override the hostID, path, filenames, etc. in the
  ' template task. This will yield an XML string containing a "temporary task" definition.
  TaskID = "9824524"  ' 8-digit values (10,000,000-99,999,999) are safe (we'll add the 8th later)
  TaskXML = oAPI.SetAttribute(TaskXML, "Source", 1, "HostID", HostID)
  TaskXML = oAPI.SetAttribute(TaskXML, "Source", 1, "Type", "FTP")
  TaskXML = oAPI.SetAttribute(TaskXML, "Source", 1, "Path", "/pub/visualize")
  TaskXML = oAPI.SetAttribute(TaskXML, "Source", 1, "FileMask", "TopTools*.*")
  TaskXML = oAPI.SetAttribute(TaskXML, "Source", 1, "DeleteOrig", "0")  'Turn off attempt to delete
  TaskXML = oAPI.SetAttribute(TaskXML, "Destination", 1, "Path", "D:\temp\hpdump")
  TaskXML = oAPI.SetAttribute(TaskXML, "Destination", 1, "FileName", "[yyyy][mm][dd]-[OrigName]")
  TaskXML = oAPI.SetAttribute(TaskXML, "Task", 1, "Name", _
    "Download from HP FTP site using existing host")
  TaskXML = oAPI.SetAttribute(TaskXML, "Task", 1, "ID", TaskID & "0")

  ' Submit one task and wait for results
  ShowMsg "Temporary task configuration contains " & Len(TaskXML) & " bytes."
  TaskHnd = oAPI.StartNewTask(TaskXML)
  If "" = TaskHnd Then
     ShowMsg2 "Temporary task failed to start", oAPI
     Exit Sub
  Else
     ShowMsg "Task " & TaskHnd & " has started"
  End If
  WaitSecs = 120
  Set WaitResult = oAPI.WaitForTasks(TaskHnd, WaitSecs)
  DumpWaitResult oAPI, WaitResult

  ' Now set a limit of 3 tasks in the mix and try to submit 5 in quick succession
  TaskLimit = oAPI.SetMaxTasks(MaxTasks)
  StartedTasks = 0
  ShowMsg "Current Task Limit is " & oAPI.GetMaxTasks()
  TaskHndPipe = ""
  For iii = 1 to TryTasks
    TaskXML = oAPI.SetAttribute(TaskXML, "Task", 1, "Name", _
      "Download from HP FTP site using existing host (" & iii & " of " & TryTasks & ")")
    TaskXML = oAPI.SetAttribute(TaskXML, "Task", 1, "ID", TaskID & iii)
    TaskHnd = oAPI.StartNewTask(TaskXML)
    If "" = TaskHnd Then
      ShowMsg2 "Temporary task (" & iii & " of " & TryTasks & ") failed to start", oAPI
    Else
      ShowMsg "Temporary task (" & iii & " of " & TryTasks & ") has started"
      StartedTasks = StartedTasks + 1
      TaskHndPipe = TaskHndPipe & TaskHnd & "|"
    End If
  Next 'iii

  ' Check on the tasks we put into the mix
  Dim LastWaitResult
  LastWaitResult = "NotBlank"   ' Otherwise it matches too soon!
  ShowMsg "TaskHndPipe = " & TaskHndPipe
  For iii = 1 to StartedTasks
    Set WaitResult = oAPI.WaitForTasks(TaskHndPipe, WaitSecs)
    if LastWaitResult = WaitResult.TaskID then
      ' Ignore it and wait for the next one
      iii = iii - 1
      WScript.Sleep(250)
    else
      DumpWaitResult oAPI, WaitResult
      LastWaitResult = WaitResult.TaskID
      ' Take result found out of list we're looking for
      TaskHndPipe = Replace(Replace(TaskHndPipe, WaitResult.TaskID & "^" & _
        WaitResult.TaskNominalStartTime, ""), "||","|")
      'ShowMsg "TaskHndPipe = " & TaskHndPipe
    end if
  Next 'iii

  ShowMsg("Ending demonstration using existing hosts.")

  set oAPI = Nothing

End Sub

Main

Sample Output

4:30:47 - Starting demonstration using existing hosts.
4:30:47 - Running API version 4.9.1.0 on Central version 4.9.2.5
4:30:47 - Read template task configuration; 469 bytes.
4:30:47 - Read target host configuration; 392 bytes.
4:30:47 - Temporary task configuration contains 488 bytes.
4:30:47 - Task 98245240^2007-10-16 16:30:47 has started
4:30:51 - Task Run Results:
4:30:51 -   Name:  Download from HP FTP site using existing host
4:30:51 -   ID:    98245240
4:30:51 -   Time:  2007-10-16 16:30:47 to 2007-10-16 16:30:50
4:30:51 -   Error: (none)
4:30:51 -   Xfer:  2 files, 170952 bytes
4:30:51 - Current Task Limit is 3
4:30:51 - Temporary task (1 of 5) has started
4:30:52 - Temporary task (2 of 5) has started
4:30:52 - Temporary task (3 of 5) has started
4:30:53 - Temporary task (4 of 5) failed to start Error#5120: Running this task
would exceed the maximum simultaneous tasks specified in the command.
4:30:53 - Temporary task (5 of 5) failed to start Error#5120: Running this task
would exceed the maximum simultaneous tasks specified in the command.
4:30:53 - TaskHndPipe = 98245241^2007-10-16 16:30:51|98245242^2007-10-16 16:30:5
2|98245243^2007-10-16 16:30:52|
4:31:01 - Task Run Results:
4:31:01 -   Name:  Download from HP FTP site using existing host (1 of 5)
4:31:01 -   ID:    98245241
4:31:01 -   Time:  2007-10-16 16:30:51 to 2007-10-16 16:30:59
4:31:01 -   Error: (none)
4:31:01 -   Xfer:  2 files, 170952 bytes
4:31:05 - Task Run Results:
4:31:05 -   Name:  Download from HP FTP site using existing host (3 of 5)
4:31:05 -   ID:    98245243
4:31:05 -   Time:  2007-10-16 16:30:52 to 2007-10-16 16:31:05
4:31:05 -   Error: (none)
4:31:05 -   Xfer:  2 files, 170952 bytes
4:31:21 - Task Run Results:
4:31:21 -   Name:  Download from HP FTP site using existing host (2 of 5)
4:31:21 -   ID:    98245242
4:31:21 -   Time:  2007-10-16 16:30:52 to 2007-10-16 16:31:20
4:31:21 -   Error: (none)
4:31:21 -   Xfer:  2 files, 170952 bytes
4:31:21 - Ending demonstration using existing hosts.

VBScript Code (Reference Ad Hoc Hosts)

Option Explicit

'  Echo a message to the console
Sub ShowMsg(MyText)
  Dim TheSplit
  TheSplit = Split(Now()," ")
  WScript.Echo TheSplit(1) & " - " & MyText
End Sub

'  Echo a message to the console along with last API error (if any)
Sub ShowMsg2(MyText,oAPI)
  Dim TheSplit
  TheSplit = Split(Now()," ")
  if oAPI.GetErrorCode = 0 then
    WScript.Echo TheSplit(1) & " - " & MyText
  else
    WScript.Echo TheSplit(1) & " - " & MyText & " Error#" & oAPI.GetErrorCode & ": " & oAPI.GetErrorDescription
  end if
End Sub

' Display the contents of a WaitResult object
Sub DumpWaitResult(oAPI,oWaitResult)
  Dim TaskRunInfoXML
  ShowMsg   "Task Run Results:"
  ShowMsg   "  Name:  " & oWaitResult.TaskName
  ShowMsg   "  ID:    " & oWaitResult.TaskID
  ShowMsg   "  Time:  " & oWaitResult.TaskNominalStartTime & " to "  & oWaitResult.TaskTimeEnded
  if oWaitResult.TaskErrorCode = 0 then
    ShowMsg "  Error: (none)"
  else
    ShowMsg "  Error: " & oWaitResult.TaskErrorCode & ": " & oWaitResult.TaskErrorDescription
  end if
  TaskRunInfoXML = oAPI.GetTaskRunInfoXML(oWaitResult)
   ShowMsg "  Xfer:  " & oAPI.GetValue(TaskRunInfoXML, "FilesSent", 1) & _
      " files, " & _
      oAPI.GetValue(TaskRunInfoXML, "TotalBytesSent", 1) & _
      " bytes"
  'ShowMsg "-= GetTaskRunInfoXML =-"
  'ShowMsg TaskRunInfoXML
  'ShowMsg "-= GetTaskRunXfersXML =-"
  'ShowMsg oAPI.GetTaskRunXfersXML(oWaitResult)
End Sub

'  This main routine does all the work for the script.
Sub Main

   Dim bOK, TryTasks, MaxTasks
   Dim TaskHnd, TaskHndPipe, StartedTasks
   Dim WaitResult, TaskName, WaitSecs
   Dim TaskXML, iii, HostXML, HostID, TaskLimit, TaskID, ReadyXML
   Dim oAPI

   ShowMsg("Starting demonstration using ad hoc hosts.")
   Set oAPI = CreateObject("MICentralAPICOM.MICentralAPI")
   MaxTasks = 3
   TryTasks = 5

   'On Error Resume Next

   ' Sign on and connect
   oAPI.SetHost("192.168.3.178")
   oAPI.SetUser("API1")
   oAPI.SetPassword("password")
   bOK = oAPI.Connect()
   if NOT bOK then
     ShowMsg2 "Could not sign on to MOVEit Automation!",oAPI
     Exit Sub
   end if
   ShowMsg("Running API version " & oAPI.GetAPIVersion() & _
     " on Central version " & oAPI.GetCentralVersion() )

  ' Use the ".GetItemXML" method to get a local copy of a template task configuration.
  TaskXML = oAPI.GetItemXML("Task", "Template Task - Download from FTP", True)
  if TaskXML="" then
    ShowMsg2 "Failed to read template task configuration! ", oAPI
    Exit Sub
  else
    ShowMsg "Read template task configuration; " & Len(TaskXML) & " bytes."
  end if

  ' Use the ".GetItemXML" method to get a local copy of a template host configuration.
  HostXML = oAPI.GetItemXML("Host", "Template FTP Host", True)
  if HostXML="" then
    ShowMsg2 "Failed to read target host configuration! ", oAPI
    Exit Sub
  else
    ShowMsg "Read target host configuration; " & Len(HostXML) & " bytes."
  end if

  ' Use the ".SetAttribute" method to override the hostname/IP, path, filenames, etc. in the
  ' template host and task. 
  ' This will yield XML strings containing a "temporary task" definition.
  TaskID = "9824524"  ' 8-digit values (10,000,000-99,999,999) are safe (we'll add the 8th later)
  HostID = "41243513"  ' 8-digit values (10,000,000-99,999,999) are safe
  HostXML = oAPI.SetAttribute(HostXML, "FTP", 1, "ID", HostID)
  HostXML = oAPI.SetAttribute(HostXML, "FTP", 1, "Host", "ftp.hp.com")
  HostXML = oAPI.SetAttribute(HostXML, "FTP", 1, "DefRetryCount", "0")  'For instant response
  HostXML = oAPI.SetAttribute(HostXML, "FTP", 1, "DefUsername", "anonymous")
  HostXML = oAPI.SetAttribute(HostXML, "FTP", 1, "DefPassword", _
    oAPI.EncryptPW("sample@ipswitch.com"))      'Plaintext password will not work
  TaskXML = oAPI.SetAttribute(TaskXML, "Source", 1, "HostID", HostID)
  TaskXML = oAPI.SetAttribute(TaskXML, "Source", 1, "Path", "/pub/visualize")
  TaskXML = oAPI.SetAttribute(TaskXML, "Source", 1, "FileMask", "TopTools*.*")
  TaskXML = oAPI.SetAttribute(TaskXML, "Source", 1, "DeleteOrig", "0")  'Turn off attempt to delete
  TaskXML = oAPI.SetAttribute(TaskXML, "Destination", 1, "Path", "D:\temp\hpdump")
  TaskXML = oAPI.SetAttribute(TaskXML, "Destination", 1, "FileName", "[yyyy][mm][dd]-[OrigName]")
  TaskXML = oAPI.SetAttribute(TaskXML, "Task", 1, "Name", _
    "Download from HP FTP site using ad hoc host")
  TaskXML = oAPI.SetAttribute(TaskXML, "Task", 1, "ID", TaskID & "0")
  'Append related host XML to temporary task (needs surrounding "Hosts" tag)
  ReadyXML = TaskXML & "<Hosts>" & HostXML & "</Hosts>"

  ' Submit one task and wait for results
  ShowMsg "Temporary task configuration contains " & Len(ReadyXML) & " bytes."
  TaskHnd = oAPI.StartNewTask(ReadyXML)
  If TaskHnd = "" Then
     ShowMsg2 "Temporary task failed to start", oAPI
     Exit Sub
  Else
     ShowMsg "Task " & TaskHnd & " has started"
  End If
  WaitSecs = 120
  Set WaitResult = oAPI.WaitForTasks(TaskHnd, WaitSecs)
  DumpWaitResult oAPI, WaitResult

  ' Now set a limit of 3 tasks in the mix and try to submit 5 in quick succession
  TaskLimit = oAPI.SetMaxTasks(MaxTasks)
  StartedTasks = 0
  ShowMsg "Current Task Limit is " & oAPI.GetMaxTasks()
  TaskHndPipe = ""
  For iii = 1 to TryTasks
    TaskXML = oAPI.SetAttribute(TaskXML, "Task", 1, "Name", _
      "Download from HP FTP site using ad hoc host (" & iii & " of " & TryTasks & ")")
    TaskXML = oAPI.SetAttribute(TaskXML, "Task", 1, "ID", TaskID & iii)
    ReadyXML = TaskXML & ">Hosts<" & HostXML & ">/Hosts<"
    TaskHnd = oAPI.StartNewTask(ReadyXML)
    If TaskHnd = "" Then
      ShowMsg2 "Temporary task (" & iii & " of " & TryTasks & ") failed to start", oAPI
    Else
      ShowMsg "Temporary task (" & iii & " of " & TryTasks & ") has started"
      StartedTasks = StartedTasks + 1
      TaskHndPipe = TaskHndPipe & TaskHnd & "|"
    End If
  Next 'iii

  ' Check on the tasks we put into the mix
  Dim LastWaitResult
  LastWaitResult = "NotBlank"   ' Otherwise it matches too soon!
  ShowMsg "TaskHndPipe = " & TaskHndPipe
  For iii = 1 to StartedTasks
    Set WaitResult = oAPI.WaitForTasks(TaskHndPipe, WaitSecs)
    if LastWaitResult = WaitResult.TaskID then
      ' Ignore it and wait for the next one
      iii = iii - 1
      WScript.Sleep(250)
    else
      DumpWaitResult oAPI, WaitResult
      LastWaitResult = WaitResult.TaskID
      ' Take result found out of list we're looking for
      TaskHndPipe = Replace(Replace(TaskHndPipe, WaitResult.TaskID & "^" & _
        WaitResult.TaskNominalStartTime, ""), "||","|")
      'ShowMsg "TaskHndPipe = " & TaskHndPipe
    end if
  Next 'iii

  ShowMsg("Ending demonstration using ad hoc hosts.")

  set oAPI = Nothing

End Sub

Main

Sample Output

4:46:10 - Starting demonstration using ad hoc hosts.
4:46:10 - Running API version 4.9.1.0 on Central version 4.9.2.5
4:46:10 - Read template task configuration; 469 bytes.
4:46:10 - Read target host configuration; 478 bytes.
4:46:10 - Temporary task configuration contains 1014 bytes.
4:46:10 - Task 98245240^2007-10-16 16:46:10 has started
4:46:14 - Task Run Results:
4:46:14 -   Name:  Download from HP FTP site using ad hoc host
4:46:14 -   ID:    98245240
4:46:14 -   Time:  2007-10-16 16:46:10 to 2007-10-16 16:46:13
4:46:14 -   Error: (none)
4:46:14 -   Xfer:  2 files, 170952 bytes
4:46:14 - Current Task Limit is 3
4:46:14 - Temporary task (1 of 5) has started
4:46:15 - Temporary task (2 of 5) has started
4:46:15 - Temporary task (3 of 5) has started
4:46:15 - Temporary task (4 of 5) failed to start Error#5120: Running this task
would exceed the maximum simultaneous tasks specified in the command.
4:46:16 - Temporary task (5 of 5) failed to start Error#5120: Running this task
would exceed the maximum simultaneous tasks specified in the command.
4:46:16 - TaskHndPipe = 98245241^2007-10-16 16:46:14|98245242^2007-10-16 16:46:1
5|98245243^2007-10-16 16:46:15|
4:46:20 - Task Run Results:
4:46:20 -   Name:  Download from HP FTP site using ad hoc host (3 of 5)
4:46:20 -   ID:    98245243
4:46:20 -   Time:  2007-10-16 16:46:15 to 2007-10-16 16:46:19
4:46:20 -   Error: (none)
4:46:20 -   Xfer:  2 files, 170952 bytes
4:46:24 - Task Run Results:
4:46:24 -   Name:  Download from HP FTP site using ad hoc host (1 of 5)
4:46:24 -   ID:    98245241
4:46:24 -   Time:  2007-10-16 16:46:14 to 2007-10-16 16:46:22
4:46:24 -   Error: (none)
4:46:24 -   Xfer:  2 files, 170952 bytes
4:46:24 - Task Run Results:
4:46:24 -   Name:  Download from HP FTP site using ad hoc host (2 of 5)
4:46:24 -   ID:    98245242
4:46:24 -   Time:  2007-10-16 16:46:15 to 2007-10-16 16:46:21
4:46:24 -   Error: (none)
4:46:24 -   Xfer:  2 files, 170952 bytes
4:46:24 - Ending demonstration using ad hoc hosts.

Creating a Template Host

A template host is useful if you plan on connecting to servers not already defined as hosts in MOVEit Automation (i.e., "ad hoc hosts"). If you plan on connecting only to servers that are defined as hosts in MOVEit Automation, you do not need a template host.

To create a template host, start by creating an ordinary host of the type you will be using most often; for example, "FTP".

To minimize programming effort, set options on your temporary host to mostly closely match those needed to connect to those servers.

You can reference/download host definitions in MOVEit Automation API using either HostID (available in the host definition dialog through MOVEit Automation Admin) or name. The advantage of using a HostID reference is that the host can be renamed without losing the reference. The advantage of using a name reference is that the host can be "switched" with another host simply by renaming one of the hosts through MOVEit Automation Admin.

Creating Template Tasks

To create template tasks, set up simple tasks (source and destination only) that reference your template host.

Do NOT include a schedule with these tasks: at best, schedules will be ignored; at worst, schedules will leave a confusing error regarding your template tasks in your logs.

You can override any of your source values later, but you may find it handy to use obviously incomplete values such as "SourceMaskTBA" in your template definitions to make it clear what you need to later.

You may also want to make a "how to handle the source files after download" choice here too. Generally people opt to only download new files, delete originals or rename originals. If you are downloading specific files or are still testing your operation, you may not need one of these selections. If you want to use the "new files only" option, you must take care to use the same TaskID on subsequent temporary task submissions. The delete/rename options are safe to use in any situation.

You can also override any of your destination values later. However, you should UNCHECK the "Use Original Filename" box (even if you leave the "[OrigName]" macro untouched) to make it perfectly clear that you reserve the right to override the destination filename value too.

Creating Appropriate Permissions for MOVEit Automation API

To work with permissions, sign on to MOVEit Automation Admin as a MOVEit Automation administrator and open the "Settings | Permissions" dialog.

If you want to give your MOVEit Automation API application FULL access to MOVEit Automation, simply add a new user to the "MOVEit Admin" Windows group and use that user's credentials in your MOVEit Automation API application.

Otherwise, continue with these instructions...

First, add a new Windows group called something like "MOVEit Users-API1".

Open your new task group and use the "Add" button in the top section to add a new user called something like "API1". Then use the "Create" button in the bottom section to create a new task group called something like "API1 Task Group". This will open a new dialog from which you can add other elements to the task group.

First go to the "Tasks" tab and add in all your template tasks.

Then go to the "Hosts" tab and...

Also add any other elements (such as scripts or certs) that your MOVEit Automation API application will need to access. (You can also change this later if your are unsure.)

When you click the "OK" button at the bottom of this dialog, you will be asked about permissions. Enable both "Run" and "Add/Edit/Delete" permissions on Tasks.

When complete, your Windows group should look like something like the following picture.

Click "OK" until you have been returned to the regular MOVEit Automation Admin interface to save your settings.