How a procedure works

Procedures in Microsoft Provisioning System work in the following way. First, a request is submitted to Microsoft Provisioning Framework (MPF) by a client. Each request contains an XML procedure that invokes either the functionality of an underlying provider or another procedure. Each procedure implemented in Microsoft Provisioning System must be part of a namespace registered in MPF and must define a schema for an XSL transformation. Each request submitted to MPF must conform to the XML schema and must contain the data required to implement the procedure.

Example of procedure

The following example shows a definition of a procedure:

  <procedure name="New Request" type="write" access="public">
	<execute namespace="Test Namespace" procedure="Write Request">
	<forEach name="organization" root="data" 
	<before source="organization" destination="executeData">
		<xsl:template match="organization[@type='primary']">
			<xsl:value-of select="@name"/>
		<xsl:template match="organization[@type='secondary']">
			<xsl:value-of select="@name"/>
	<after source="executeData" destination="data" 
		destinationPath="orgSignup" mode="merge"/>

This example works as follows:

For more information about procedures and how they are implemented in Microsoft Provisioning System, see What a procedure is and Procedure implementation in Microsoft Provisioning System. For information on requests, see Request architecture. For information on namespaces, see Namespace architecture. The Microsoft Provisioning Framework Software Development Kit (SDK) also contains additional resources that can help you implement procedures, requests, and namespaces. This includes the complete XML schema for all elements and information on how to implement providers. For more information on the SDK and how to use it, see Microsoft Provisioning Framework SDK.