org.mule.modules

mule-module-zuora

config

Namespacehttp://www.mulesoft.org/schema/mule/zuora
Schema Locationhttp://www.mulesoft.org/schema/mule/zuora/current/mule-zuora.xsd  (View Schema)
Schema Version1.0
Minimum Mule Version3.5

Module Overview

Zuora is the leader in online recurring billing and payment solutions for SaaS and subscription businesses.

This connector provides full access to the Z-Commerce platform API.

Summary

Configuration
<zuora:config>
Configure an instance of this module
Message Processors
<zuora:amend>
Amends subscriptions

<zuora:create>
Batch creation of ZObjects

<zuora:delete>
Batch delete of ZObjects

<zuora:find>
Lazily retrieves ZObject that match a given query, written in Zuora native query language

If you expect more than 2000 results to be returned, remember that you have to enable queryMore for your zuora account (as documented: http://knowledgecenter.zuora.com/D_Using_the_Zuora_API/C_API_Reference/E_API_Calls/queryMore())

<zuora:generate>
Batch creation of invoices for accounts

<zuora:get-export-file-content>
Retrieve an exported file from Zuora, and return its content as a String
<zuora:get-export-file-stream>
Retrieve an exported file from Zuora and return an InputStream to it
<zuora:get-user-info>
Answers user information

<zuora:subscribe>
Batch creation of ZObjects associated to Subscriptions

<zuora:update>
Batch update of ZObjects

Configuration

To use the this module within a flow the namespace to the module must be included. The resulting flow will look similar to the following:

<mule xmlns="http://www.mulesoft.org/schema/mule/core"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xmlns:zuora="http://www.mulesoft.org/schema/mule/zuora"
      xsi:schemaLocation="
               http://www.mulesoft.org/schema/mule/core
               http://www.mulesoft.org/schema/mule/core/current/mule.xsd
               http://www.mulesoft.org/schema/mule/zuora
               http://www.mulesoft.org/schema/mule/zuora/current/mule-zuora.xsd">

      <!-- here goes your flows and configuration elements -->

</mule>

This module is configured using the config element. This element must be placed outside of your flows and at the root of your Mule application. You can create as many configurations as you deem necessary as long as each carries its own name.

Each message processor, message source or transformer carries a config-ref attribute that allows the invoker to specify which configuration to use.

Attributes
TypeNameDefault ValueDescriptionJava TypeMIME TypeEncoding
xs:string name Optional. Give a name to this configuration so it can be later referenced.
client Optional. The client to use.
xs:string endpoint https://apisandbox.zuora.com Optional. Target URI to connect to

Connection Pool

This connector offers automatic connection management via the use of a connection pool. The pool will act a storage mechanism for all the connections that are in-use by the user of this connector.

Prior to execution of a processor, the connector will attempt to lookup an already established connection and if one doesn't exists it will create one. That lookup mechanism is done in the connection pool via the use of connection variables declared as keys.

The user of the connector can configure the pool by adding a connection-pooling-profile to the connector configuration like this:

    <zuora:connection-pooling-profile maxActive="10" maxIdle="10"
                             exhaustedAction="WHEN_EXHAUSTED_GROW" maxWait="120" minEvictionMillis="60000" evictionCheckIntervalMillis="30000"/>

The following is a list of connection attributes, each connection attribute can be configured at the config element level or they can also be added to each processor. If they are used at the processor level they get the benefit of full expression resolution.

Connection Attributes
NameDefault ValueDescriptionJava TypeMIME TypeEncoding
config-ref Optional. Specify which configuration to use.
username Username to identify the user String */* UTF-8
password Password to authenticate the username String */* UTF-8

Reconnection Strategies

Reconnection Strategies specify how a connector behaves when its connection fails. You can control how Mule attempts to reconnect by specifying a number of criteria:

With a reconnection strategy, you can better control the behavior of a failed connection, by configuring it, for example, to re-attempt the connection only once every 15 minutes, and to give up after 30 attempts. You can also send an automatic notification to your IT administrator whenever this reconnection strategy goes into effect. You can even define a strategy that attempts to reconnect only during business hours. Such a setting can prove useful if your server is frequently shut down for nightly maintenance.

Configuration

A reconnection strategy that allows the user to configure how many times a reconnection should be attempted and how long to wait between attempts.

    <zuora:config>
         <reconnect count="5" frequency="1000"/>
    </zuora:config>
Reconnect Attributes
NameDefault ValueDescription
frequency 2000 Optional. How often (in ms) to reconnect
count 2 Optional. How many reconnection attempts to make

For more information about reconnection strategies in Mule, or even how to write your own custom reconnection strategy please check this section.

Message Processors

<zuora:amend>

Amends subscriptions

XML Sample
INCLUDE_ERROR

Attributes
NameDefault ValueDescriptionJava TypeMIME TypeEncoding
config-ref Optional. Specify which configuration to use.
Connection Parameters
This are only required if you didn't specified them at the configuration element. They are also useful for overriding the values of the configurations or even if you need to extract them from the Mule message since they support expression evaluation.
username Optional. Username to identify the user String */* UTF-8
password Optional. Password to authenticate the username String */* UTF-8
Child Elements
NameDefault ValueDescriptionJava Type
<zuora:amendaments> The list of amendments to perform List<AmendRequest>
Returns
Return Type Description
List<AmendResult> a list of AmendResult, one for each amendment
Exception Payloads
Payload ClassDescription
Exception if amend fails

<zuora:create>

Batch creation of ZObjects

XML Sample
INCLUDE_ERROR

Attributes
NameDefault ValueDescriptionJava TypeMIME TypeEncoding
config-ref Optional. Specify which configuration to use.
type The type of zobject passed String */* UTF-8
Connection Parameters
This are only required if you didn't specified them at the configuration element. They are also useful for overriding the values of the configurations or even if you need to extract them from the Mule message since they support expression evaluation.
username Optional. Username to identify the user String */* UTF-8
password Optional. Password to authenticate the username String */* UTF-8
Child Elements
NameDefault ValueDescriptionJava Type
<zuora:zobjects> The zobjects to create List<Map<String, Object>>
Returns
Return Type Description
List<SaveResult> a list of SaveResult, one for each ZObject
Exception Payloads
Payload ClassDescription
Exception If creation fails

<zuora:delete>

Batch delete of ZObjects

XML Sample
INCLUDE_ERROR

Attributes
NameDefault ValueDescriptionJava TypeMIME TypeEncoding
config-ref Optional. Specify which configuration to use.
type The type of ZObjects to delete String */* UTF-8
Connection Parameters
This are only required if you didn't specified them at the configuration element. They are also useful for overriding the values of the configurations or even if you need to extract them from the Mule message since they support expression evaluation.
username Optional. Username to identify the user String */* UTF-8
password Optional. Password to authenticate the username String */* UTF-8
Child Elements
NameDefault ValueDescriptionJava Type
<zuora:ids> The list of ids to delete List<String>
Returns
Return Type Description
List<DeleteResult> a list of DeleteResult, one for each id
Exception Payloads
Payload ClassDescription
Exception if deletion fails

<zuora:find>

Lazily retrieves ZObject that match a given query, written in Zuora native query language

If you expect more than 2000 results to be returned, remember that you have to enable queryMore for your zuora account (as documented: http://knowledgecenter.zuora.com/D_Using_the_Zuora_API/C_API_Reference/E_API_Calls/queryMore())

This operation can potentially return a large amount of records that might exceed memory capacity.

To prevent this from being a problem, the output of this operation is automatically paginated into an iterable collection of objects. Regardless of the page-size, the iterator will be pushing out registries one at a time and fetching next pages on demand. If you wish to take advantage of the pagination, you must process the output through elements that can handle collections, such as a ForEach scope or DataMapper. In this way, Mule will execute the entire set of registries one at a time, but processing only a batch at a time and thus keeping memory usage from going over limits.

XML Sample
INCLUDE_ERROR

Attributes
NameDefault ValueDescriptionJava TypeMIME TypeEncoding
config-ref Optional. Specify which configuration to use.
query The query, using the SQL-Like Zuora Query Language String */* UTF-8
fetchSize 100 Specify the number of objects that will be returned in each iteration int    
Connection Parameters
This are only required if you didn't specified them at the configuration element. They are also useful for overriding the values of the configurations or even if you need to extract them from the Mule message since they support expression evaluation.
username Optional. Username to identify the user String */* UTF-8
password Optional. Password to authenticate the username String */* UTF-8
Returns
Return Type Description
Iterator < Map<String, Object> > A collection: each index contains a list of objects, each object with its own set of properties. It is possible to process it in parts thanks to its pagination.
Exception Payloads
Payload ClassDescription
Exception if find fails

<zuora:generate>

Batch creation of invoices for accounts

XML Sample
INCLUDE_ERROR

Attributes
NameDefault ValueDescriptionJava TypeMIME TypeEncoding
config-ref Optional. Specify which configuration to use.
type The type of zobject passed String */* UTF-8
Connection Parameters
This are only required if you didn't specified them at the configuration element. They are also useful for overriding the values of the configurations or even if you need to extract them from the Mule message since they support expression evaluation.
username Optional. Username to identify the user String */* UTF-8
password Optional. Password to authenticate the username String */* UTF-8
Child Elements
NameDefault ValueDescriptionJava Type
<zuora:zobjects> The zobjects to generate, as a list of string-object maps . Zuora attribute names, unlike java beans, are CamelCase. List<Map<String, Object>>
Returns
Return Type Description
List<SaveResult> a list of SaveResult, one for each ZObject
Exception Payloads
Payload ClassDescription
Exception if generation fails

<zuora:get-export-file-content>

Retrieve an exported file from Zuora, and return its content as a String

XML Sample
INCLUDE_ERROR

Attributes
NameDefault ValueDescriptionJava TypeMIME TypeEncoding
config-ref Optional. Specify which configuration to use.
exportId Id of the Zuora exported file to retrieve String */* UTF-8
Connection Parameters
This are only required if you didn't specified them at the configuration element. They are also useful for overriding the values of the configurations or even if you need to extract them from the Mule message since they support expression evaluation.
username Optional. Username to identify the user String */* UTF-8
password Optional. Password to authenticate the username String */* UTF-8
Returns
Return Type Description
String the file's content as a String
Exception Payloads
Payload ClassDescription
IOException if can't access the exported file
ZuoraException if the exported file doesn't exist

<zuora:get-export-file-stream>

Retrieve an exported file from Zuora and return an InputStream to it

XML Sample
INCLUDE_ERROR

Attributes
NameDefault ValueDescriptionJava TypeMIME TypeEncoding
config-ref Optional. Specify which configuration to use.
exportId Id of the Zuora exported file to retrieve String */* UTF-8
Connection Parameters
This are only required if you didn't specified them at the configuration element. They are also useful for overriding the values of the configurations or even if you need to extract them from the Mule message since they support expression evaluation.
username Optional. Username to identify the user String */* UTF-8
password Optional. Password to authenticate the username String */* UTF-8
Returns
Return Type Description
InputStream an InputStream to read from the exported file
Exception Payloads
Payload ClassDescription
IOException if can't access the exported file
ZuoraException if the exported file doesn't exist

<zuora:get-user-info>

Answers user information

XML Sample
INCLUDE_ERROR

Attributes
NameDefault ValueDescriptionJava TypeMIME TypeEncoding
config-ref Optional. Specify which configuration to use.
Connection Parameters
This are only required if you didn't specified them at the configuration element. They are also useful for overriding the values of the configurations or even if you need to extract them from the Mule message since they support expression evaluation.
username Optional. Username to identify the user String */* UTF-8
password Optional. Password to authenticate the username String */* UTF-8
Returns
Return Type Description
User a User
Exception Payloads
Payload ClassDescription
Exception if request fails

<zuora:subscribe>

Batch creation of ZObjects associated to Subscriptions

XML Sample
INCLUDE_ERROR

Attributes
NameDefault ValueDescriptionJava TypeMIME TypeEncoding
config-ref Optional. Specify which configuration to use.
Connection Parameters
This are only required if you didn't specified them at the configuration element. They are also useful for overriding the values of the configurations or even if you need to extract them from the Mule message since they support expression evaluation.
username Optional. Username to identify the user String */* UTF-8
password Optional. Password to authenticate the username String */* UTF-8
Child Elements
NameDefault ValueDescriptionJava Type
<zuora:subscriptions> The list of subscriptions to perform List<SubscribeRequest>
Returns
Return Type Description
List<SubscribeResult> a subscription results list, one for each subscription
Exception Payloads
Payload ClassDescription
Exception If subscription fails

<zuora:update>

Batch update of ZObjects

XML Sample
INCLUDE_ERROR

Attributes
NameDefault ValueDescriptionJava TypeMIME TypeEncoding
config-ref Optional. Specify which configuration to use.
type The type of zobject passed String */* UTF-8
Connection Parameters
This are only required if you didn't specified them at the configuration element. They are also useful for overriding the values of the configurations or even if you need to extract them from the Mule message since they support expression evaluation.
username Optional. Username to identify the user String */* UTF-8
password Optional. Password to authenticate the username String */* UTF-8
Child Elements
NameDefault ValueDescriptionJava Type
<zuora:zobjects> The zobjects to update, as a list of string-object maps . Zuora attribute names, unlike java beans, are CamelCase. List<Map<String, Object>>
Returns
Return Type Description
List<SaveResult> a list of SaveResult, one for each ZObject
Exception Payloads
Payload ClassDescription
Exception If update fails

Message Sources

Transformers