README.TXT


Sample: newjob
==============

This sample illustrates the use of the SMS APIs in order to view,
create, and delete job folders.
There are four types of job folders:
Run command on Workstation job
Share package on Server job
Remove package from Server job
System job
All of these except system jobs can be created and deleted.


After logging on to a datasource, a job container is opened and populated.
No filtering is done since we want to see all the jobs that exist in the
system.
The program then enters a loop asking whether the user wants to view the
next job folder, delete the currently viewed folder, or create a new folder.

Both deletion and creation are two-stage processes. Only when the
SmsCommitFolder API is called will the folder be either deleted from or
inserted into the datasource.

Folder creation is handled in the CreateNewFolder function.
This creates an empty folder in the context of the parent which in this
case is the job container. The function then retrieves a description of
the folder via the SmsDescribeFolder API. This returns a FOLDER_INFO
structure which describes the folder in terms of its capabilities, see
the objectty.h header file (or the help file) for a full description of
this structure.

Included in FOLDER_INFO is a pointer to an array of SCALAR_INFO structures.
Each SCALAR_INFO describes one of the folder's scalars. The information
contained here is:
the scalar's name,
its type,
its access mode.
CreateNewFolder loops through this array, for each scalar that has modify or
create access, it displays the name and asks the user to fill in the value.
Only nominal checking is done on the values, a real application would have
to go into much greater detail since job creation is a non-trivial task.
If there are any errors in the date/time fields they are set to the current
date and time.

This is a sample of a created workstation install job:


JS200009 (Workstation install job) contains 33 scalars
Job ID: JS200009
Job type: microsoft\SMS\workstation_script
Job comment: a descriptive comment
Activate time: Thu Jun 22 15:12:00 1995
Left icon: Package
Center icon: Machinegroup
Right icon: Site
Priority: 1
Repeat mode: 1
Cancel mode: 0
Job status: 1
Sending status: 1
Working status: 1
Cancel status: 1
Package ID: JS200049
Job target: 2
Distribute phase: 1
Send phase: 1
Limit to sites: 2
Include subsites: 1
Site limit name: jonshu2site
Distribution servers: me
WCL name: Audit software
Query ID:
Machine group name: My machine group
Machine path: *|*|*
Offer time: Thu Jun 22 15:15:00 1995
Mandatory time: Thu Jun 22 15:15:00 1995
Use mandatory time: 0
Force over slow link: 0
Expire time: Thu Jun 22 15:15:00 1995
Use expire time: 0
Run workstation command: 1
============== JS200009 ===========