The following example submits requests for new smart cards for multiple users by using the externalSubmitEnrollRequest procedure. The application can use the uuid returned in the @request_uuid parameter to Monitoring the Status of an Existing Request. This procedure is part of the Forefront Identity Manager Certificate Management (FIM CM) SQL API.

Submitting a bulk enroll request is a common procedure when smart cards are created in an external system such as a Human Resources (HR) system. The HR system generates a list of new users to enroll for smart cards. The smart card creation process can then be initiated by using this procedure. Typically, the list of users to enroll in smart cards is obtained from an external source such as a file.

  Copy Code
DECLARE @RC  int
DECLARE @user_nt4name  nvarchar(80)
DECLARE @profile_template_name nvarchar(254)
DECLARE @request_uuid   uniqueidentifier
DECLARE @RequestCount  int --requests counter
DECLARE @Priority  int

-- Set parameter values
SET @RequestCount = 0
SET @Priority = 1

	SET @profile_template_name = N'2.2 Bulk Client Test'

--In your application the list of users would come from an external
--source such as a file

	--Issue a request for User1
	SET @user_nt4name = N't5-CLM\user1'
	EXEC @RC = [CLM].[dbo].[externalSubmitEnrollRequest]
							@user_nt4name, 
							@profile_template_name, 
							NULL, 
							NULL, 
							@request_uuid OUTPUT, 
							@Priority
	SET @RequestCount = @RequestCount + 1


	--Issue a request for User2
	SET @user_nt4name = 't5-CLM\user2'
	EXEC @RC = [CLM].[dbo].[externalSubmitEnrollRequest] 
							@user_nt4name, 
							@profile_template_name, 
							NULL, 
							NULL, 
							@request_uuid OUTPUT, 
							@Priority
	SET @RequestCount = @RequestCount + 1


	--Issue a request for User3
	SET @user_nt4name = 't5-CLM\user3'
	EXEC @RC = [CLM].[dbo].[externalSubmitEnrollRequest] 
							@user_nt4name, 
							@profile_template_name, 
							NULL, 
							NULL, 
							@request_uuid OUTPUT, 
							@Priority
	SET @RequestCount = @RequestCount + 1


	--Issue a request for User4
	SET @user_nt4name = 't5-CLM\user4'
	EXEC @RC = [CLM].[dbo].[externalSubmitEnrollRequest] 
							@user_nt4name, 
							@profile_template_name, 
							NULL, 
							NULL, 
							@request_uuid OUTPUT, 
							@Priority
	SET @RequestCount = @RequestCount + 1


	--Issue a request for Manager1
	SET @user_nt4name = 't5-CLM\mgr1'
	EXEC @RC = [CLM].[dbo].[externalSubmitEnrollRequest] 
							@user_nt4name, 
							@profile_template_name, 
							NULL, 
							NULL, 
							@request_uuid OUTPUT, 
							@Priority
	SET @RequestCount = @RequestCount + 1

PRINT 'Total number of requests generated: ' + STR(@RequestCount) 
PRINT @RC

See Also