Skip to end of banner
Go to start of banner

Customize Modules Metadata

Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 30 Current »

Modules XML file is used for defining the modules of the system along with their features, related modules, left menu items, and skins.


What does this section cover?

Modules Metadata File

Custom modules and features are declared in modules.xml file, which must be created under <custom_project>/web/WebContent/metadata directory.

All custom modules', features', processes', dashboards', reports', printouts' and Web APIs' IDs should begin with the word CUSTOM. All custom feature menu option IDs should begin with the word CUSTOM as well.

Create Custom Features

In the following example, two new features are added to Subscriptions module. To add a new feature to an existing module, you simply have to use the existing module's ID, extending this way the system's release functionality.

 Custom Feature Example
modules.xml
<moduleconfig xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../xsd/modules.xsd">
	<modules>
		...
		<module>
			<moduleid>SUBSCRIPTIONS</moduleid>
			<features>
				<feature>
					<featureid>CUSTOM_SUBSCRIPTIONS</featureid>
					<reports>
						<report>
				      		<id>CUSTOM_ACTIVATION_BY_MONTH</id>
				      		<name>key_activations_by_month</name>
				      		<description>key_view_the_monthly_activations_report</description>
				      		<reportfilename>Subscriptions/subscriptionActivationsByMonth.crxml</reportfilename>
				    	</report>
					</reports>
				</feature>
				<feature>
					<featureid>CUSTOM_IMPORT_SUBSCRIPTIONS</featureid>
					<featurename>key_import_subscriptions</featurename>
					<featuredescription>key_import_subscriptions</featuredescription>
					<featuremenuoptionid>CUSTOM_IMPORT_SUBSCRIPTIONS</featuremenuoptionid>
					<additionalprocesses>
						<process>
							<id>IMPORT_SUBSCRIPTIONS</id>
							<name>key_import_subscriptions</name>
							<description>key_import_subscriptions</description>
							<methods>
								<method>
									<ejbname>COMPANYCRMImportSubscription</ejbname>
									<methodname>importSubscription</methodname>
								</method>
							</methods>
						</process>
					</additionalprocesses>
				</feature>
			</features>
			<leftmenuoptions>
				<id>CUSTOM_IMPORT_SUBSCRIPTIONS</id> <!-- Billing > Subscriptions > Import Subscriptions -->
			</leftmenuoptions>
 
		...
 
	</modules>
</moduleconfig>

Create Custom Modules

In the following example, a custom module is added to Billing Application. To add a new module to an existing application, you simply have to use the existing application's ID, extending this way the system's release functionality. You can add a new module, which is not related to a release module. applicationid and modulemainmenuoptionid are optional for the second scenario.

 Custom Module Example
modules.xml
<moduleconfig xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../xsd/modules.xsd">
	<modules>
		...
		<module>
			<moduleid>CUSTOM_LOCAL_SMS_PROVIDER</moduleid>
			<modulemainmenuoptionid>CUSTOM_LOCAL_SMS_PROVIDER</modulemainmenuoptionid>
			<modulename>key_local_sms_provider</modulename>
			<applicationid>BILLING</applicationid>
					<features>
						<feature>
							<featureid>CUSTOM_MANAGE_LOCAL_SMS_PROVIDER_SETTINGS</featureid>
							<featurename>key_manage_sms_settings</featurename>
							<featuredescription>key_manage_sms_settings</featuredescription>
							<featuremenuoptionid>CUSTOM_MANAGE_LOCAL_SMS_PROVIDER_SETTINGS</featuremenuoptionid>
							<commonprocesses>
								<process>
									<id>CUSTOM_CREATE_SMS_SETTINGS</id>
									<name>key_create_sms_settings</name>
									<description>key_create_a_new_sms_settings_definition.</description>
									<methods>
										<method>
											<ejbname>COMPANYCRMUISmsSettingsDefinition</ejbname>
											<methodname>loadForm</methodname>
										</method>
									</methods>
							</process>
							...
						</commonprocesses>
					</feature>
				</features>
				<leftmenuoptions>
					<id>CUSTOM_LOCAL_SMS_PROVIDER</id>  <!-- Billing > Local SMS Provider -->
					<id>CUSTOM_MANAGE_LOCAL_SMS_PROVIDER_SETTINGS</id> <!-- Billing > Local SMS Provider > Manage SMS Settings -->
				</leftmenuoptions>
			</module>
		<module>
 
        <module>
        	<moduleid>CUSTOM_PRICE</moduleid>
            <modulemainmenuoptionid></modulemainmenuoptionid>
            <modulename>key_price</modulename>
            <applicationid></applicationid>
            	<features>
		        
               	</features>
                <leftmenuoptions>
                   <id>CUSTOM_PRICE</id>
                   <id>CUSTOM_PRICE_LIMIT</id>
                </leftmenuoptions>
                <settingmenuoptions>
                	<id>CUSTOM_PRICE_SETTINGS</id>
				</settingmenuoptions>
		</module>
		...
 
	</modules>
	<loginmodules>
		<moduleid>CUSTOM_PRICE</moduleid>
	</loginmodules>
</moduleconfig>


For a full list of metadata module attributes, go to Modules metadata


  • No labels