Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Panel
id0

This section describes how a provisioning provider plugin can be created.

What does this section cover?

Table of Contents

Create a provisioning provider plugin

In order to create a provisioning provider plugin, you need to:

  1. Define the provider in provisioning providers metadata file.
  2. Create a process class extending com.crm.process.provisioning.CRMProcessProvisioningProviderBean.
  3. Create a data entry view class and a java class implementing com.crm.process.provisioning.CustomProvisioningAction for each of the provisioning provider related processes.
  4. Set up the provider through the provisioning providers page.

For this example we assume that the provisioning provider is Example.

...

  • the provproviderprotocol, this which is the protocol of the provisioning provider
  • the provprovidername, this which is the name of the provider and it will appear on the provider's data entry screen
  • and the provider process name, this which must be the same as the custom process class that will be created for the provider.

Also, in this file, you can define the following:

  • generalparameters, these which are the provider parameters,
  • hardwaretypes, these which are the supported hardware types
  • relatedpages, which are the data entry or summary pages that are implemented to cover the custom provider's processes
  • regionmapping. , which is a boolean value indicating whether there should be region mapping configured for the provider
  • usedbyusageservicecatalog, which is a boolean value indicating whether the provider can be used by a usage service catalog
  • testconnectionavailable, a  which is a boolean value indicating whether the "Test Connection" button should be available for the provider

...

Ui expand
titleProvisioning providers metadata file


Code Block
languagexml
titleprovisioningproviders.xml
collapsetrue
<provisioningprovidersconfig>
	<provisioningproviders>
		<provisioningprovider>
			<provproviderprotocol>EXAMPLE</provproviderprotocol>
			<provprovidername>Example Provider</provprovidername>
			<provproviderprocessejbname>ejb/CRMProcessExampleProvider</provproviderprocessejbname>
			<generalparameters>
				<generalparameter>
					<generalparameterid>...</generalparameterid>
					<generalparametername>...</generalparametername>
					<generalparametertype>...</generalparametertype>
				<generalparameter>
				...
			</generalparameters>
			<hardwaretypes>
				<hardwaretype>
					<hardwaretypeid>...</hardwaretypeid>
					<hardwaretypename>...</hardwaretypename>					
				</hardwaretype>	
				...						
			</hardwaretypes>			
			<relatedpages>
				<relatedpage>
					<label>...</label>
					<url>...</url>
				</relatedpage>
				...
			</relatedpages>
			<regionmapping>true</regionmapping>
			<usedbyusageservicecatalog>true</usedbyusageservicecatalog>
			<testconnectionavailable>true</testconnectionavailable>
		</provisioningprovider>
		...
	</provisioningproviders>
</provisioningprovidersconfig>

Once the provider is defined in the provisioning providers metadata file, it can be added as a plugin through the provisioning providers data entry view page, which can be found under Settings & Admin > Billing Application > Subscription & Billing Settings > Set up Provisioning Providers. By selecting "Set Up New Plug In Provider", you can add the custom provider to the list of provisioning providers and set it up, manage the provider's provisioning requests, perform reset subscription runs, reset a single subscription of the provider or execute the processes defined in the related pages of the provisioning provider's definition (in the provisioningproviders.xml file). 

...

titleProvisioning Providers

Provisioning ProvidersImage Removed

2. Provisioning Provider Process Class

a. Create Process Class and Implement a Method for Each Action

Use @Stateless(mappedName = "ejb/CRMProcessExampleProvider") to define the mapped name of the provisioning provider EJB. The mapped name should match the one defined in provisioningproviders.xml metadata file and the new process class must extend com.crm.process.provisioning.CRMProcessProvisioningProviderBean.

...

languagejava
titleCRMProcessExampleProviderBean.java
linenumberstrue
collapsetrue

...



2. Provisioning Provider Process Class

Create a Process Class for the provisioning provider that extends com.crm.process.provisioning.CRMProcessProvisioningProviderBean.

You must use @Stateless(mappedName = "ejb/CRMProcessExampleProvider") to define the mapped name of the provisioning provider EJB. The mapped name should match the one defined in provisioningproviders.xml metadata file.


Code Block
languagejava
titleCRMProcessExampleProviderBean.java
linenumberstrue
collapsetrue
@Stateless(mappedName = "ejb/CRMProcessExampleProvider")
@LocalBean
public class CrmProcessExampleProviderBean extends CRMProcessProvisioningProviderBean {
		
    /**
     * Default constructor. 
     */
	public CrmProcessExampleProviderBean() {
        super();
    }
	...
}


The new process class must implement the following methods, which are defined as abstract in CRMProcessProvisioningProviderBean parent class:

...

Code Block
languagejava
titleSetPinCodeView.java
linenumberstrue
collapsetrue
@ManagedBean(name = "setPinCodeView", eager = true)
@ViewScoped
public class SetPinCodeView extends DataEntryView {

@EJB private CRMProcessExampleProviderBean processExampleProvider;

...

public void submitButton() throws Exception {
		
		...

		SetPinCodeAction setPinCodeAction = new SetPinCodeAction();		
		setPinCodeAction.setProvProvider(provider);
		setPinCodeAction.setPINCode(getPINCode());
		
		processExampleProvider.sendCustomProvisioningCommandsToHandler(setPinCodeAction, provider.getProtocol());		
		...
	}

...

}


On clicking the submit button, the submitButton() method of the SetPinCodeView class will be called and the custom provisioning request will be sent to the provisioning provider handler.

Ui expand
titleSet Pin Code Action Page

Image Added



4. Set up the plugin provider through CRM.COM

The plugin provider can be set up through CRM.COM from the Provisioning Providers data entry view page, which can be found under Settings & Admin > Billing Application > Subscription & Billing Settings > Set up Provisioning Providers. 

Once the provider is defined in the provisioning providers metadata file, it can be added as a plugin through the Provisioning Providers data entry view page. By selecting "Set Up a Provisioning Provider", you can add the plugin provider to the list of provisioning providers. After adding it, you will be able to set it up, manage the provider's provisioning requests, perform reset subscription runs, reset a single subscription of the provider and execute the processes defined in the related pages of the provisioning provider's definition (in the provisioningproviders.xml file). 


Image Removed
Ui expand
titleSet Pin Code Action Page
Provisioning Providers

Provisioning ProvidersImage Added