Previous Topic: Creating a Software Package VolumeNext Topic: Sealing a Software Package


Creating a Software Package Procedure

Create a software package procedure (install, configure, activate or uninstall) associated with the software package and its volume. Many properties are required be set for a procedure to execute correctly.

Example 7: Creating a Simple Software Package Procedure

//This method creates a simple software installation procedure
//using the one file from the volume
//If you were defining a non-install software job, you would also need to // define an install procedure as well as your non-install procedure
private int createSimpleSoftwareProcedure() throws Exception
{
	CreateSoftwarePackageProcedureProperties props =
	new CreateSoftwarePackageProcedureProperties();
		
	props.setComment(cfg.getProcedureToRun());
	props.setCommentSupplied(true);
	props.setSoftwarePackageProcedureName(cfg.getProcedureToRun());
	props.setSoftwarePackageProcedureNameSupplied(true);
	SoftwarePackageProcedureBootMask mask =
	new SoftwarePackageProcedureBootMask();
	mask.setNoReboot(true);
	props.setBootAfterMask(mask);
	props.setBootAfterMaskSupplied(true);
	props.setBootBeforeMask(mask);
	props.setBootBeforeMaskSupplied(true);
	//set the management mask
	SoftwarePackageProcedureManagementTypeMask mgmtMsk =
	new SoftwarePackageProcedureManagementTypeMask();
	mgmtMsk.setSd(true);
	mgmtMsk.setSm(true);
	props.setManagementTypeMask(mgmtMsk);
	//set the operation mask
	SoftwarePackageProcedureOperationMask opMsk =
	new SoftwarePackageProcedureOperationMask();
	opMsk.setAutoDeliverItem(true);
	opMsk.setBackground(false);
	opMsk.setOffline(false);
	props.setOperationMask(opMsk);
	props.setOperationMaskSupplied(true);
	//set this to be an install task
	props.setSoftwarePackageProcedureTask (SoftwarePackageProcedureTask.INSTALL);
	props.setSoftwarePackageProcedureTaskSupplied(true);
	//set this to show that the task is an executable file
	props.setSoftwarePackageProcedureType (SoftwarePackageProcedureType.EXEFILE);
	props.setSoftwarePackageProcedureTypeSupplied(true);
	//link to the volume and the package
	props.setSoftwarePackageVolumeId(volumeID);
	props.setSoftwarePackageVolumeIdSupplied(true);
	props.setSoftwarePackageId(packageID);
	props.setSoftwarePackageIdSupplied(true);
		
	//values that represent the procedure itself
	props.setProcToRun(cfg.getProcedureToRun());
	props.setProcToRunSupplied(true);
	props.setSoftwarePackageProcedureName(cfg.getProcedureName());
	props.setSoftwarePackageProcedureNameSupplied(true);
	props.setComment(cfg.getProcedureComment());
	props.setCommentSupplied(true);
	//additional parameters
	//the procedure can run on any OS
	// for the set of possible values see operatingSystemType
	props.setOperatingSystemType(196608);
	props.setOperatingSystemTypeSupplied(true);
	//create the procedure
	procID = wsAPIconnector.createSoftwarePackageProcedure (
	getSessionId(), props);
	if(procID.equals(""))
		return UDSMWebService.PROCEDURE_CREATION_ERROR;
	else
		return UDSMWebService.RESULT_OK;
}