public abstract class

BaseDynamicsCRMConnector

extends Object
java.lang.Object
   ↳ org.mule.module.dynamicscrm.BaseDynamicsCRMConnector

Class Overview

Microsoft Dynamics CRM 2011 Ondemand version

This connector allow the integration with MS Dynamics CRM 2011 Ondemand version.

The service of MS Dynamics CRM provide a few operations that are extensible for all the entities (default and custom) created. A list of the default entities can be found in the MSDN documentation link: "http://msdn.microsoft.com/en-us/library/bb959317.aspx

The connector uses Windows Live ID for Authentication.

To use this connector you need a Windows Live ID Account and a Microsoft Dynamics CRM (2011) Online Account

Summary

Fields
private final Map<String, EntityMetadata> cachedMetadata
protected IOrganizationService client
protected final Log logger
Public Constructors
BaseDynamicsCRMConnector()
Public Methods
void associate(String entityName, String entityId, Boolean relationshipEntityRoleIsReferenced, String relationshipSchemaName, List<Map<String, Object>> relatedEntitiesAttributes)
Associate a set of entities

String create(String logicalName, Map<String, Object> entity)
Create entity

void delete(String logicalName, String guid)
Delete entity

void disassociate(String entityName, String entityId, Boolean relationshipEntityRoleIsReferenced, String relationshipSchemaName, List<Map<String, Object>> relatedEntitiesAttributes)
Disassociate a set of entities

Map<String, Object> execute(String requestName, String requestGuid, Map<String, Object> requestParameters)
Execute a business logic method

MetaData getMetadata(MetaDataKey key)
List<MetaDataKey> getMetadataKeys()
Map<String, Object> retrieve(String logicalName, String guid, List<String> attributes)
Retrieve entity

List<Map<String, Object>> retrieveMultipleByAttributes(String entityName, List<String> columns, List<String> attributes, List<String> values, Map<String, String> orders, Integer count, Integer pageNumber, String pagingCookie, Boolean returnTotalRecordCount)
This method is deprecated. Use retrieveMultipleByQuery instead
PagingDelegate<Map<String, Object>> retrieveMultipleByQuery(DsqlQuery queryXml, PagingConfiguration pagingConfiguration)
Retrieve multiple entities by a query described by and XML

The definition of the Microsoft XML Query Language can be found in the Schema Definition in this link: http://msdn.microsoft.com/en-us/library/bb930489.aspx

The aggregation examples can be found in this link: http://msdn.microsoft.com/en-us/library/gg309565.aspx

void update(String logicalName, String guid, Map<String, Object> attributesToUpdate)
Update entity

Protected Methods
String buildFetchXmlWithPages(DsqlQuery query, Integer fetchSize)
KeyValuePairOfstringanyType createPair(String name, Object value)
EntityMetadata getCachedMetadata(String logicalName)
EntityMetadata getMetadata(String logicalName)
[Expand]
Inherited Methods
From class java.lang.Object

Fields

private final Map<String, EntityMetadata> cachedMetadata

protected IOrganizationService client

protected final Log logger

Public Constructors

public BaseDynamicsCRMConnector ()

Public Methods

public void associate (String entityName, String entityId, Boolean relationshipEntityRoleIsReferenced, String relationshipSchemaName, List<Map<String, Object>> relatedEntitiesAttributes)

Associate a set of entities

Parameters
entityName Logical name of entity
entityId Guid of entity in string form
relationshipEntityRoleIsReferenced If the role of the entity is "Referenced" (true) of "Referencing" (false)
relationshipSchemaName The type of relationship
relatedEntitiesAttributes List of the attributes of related entities

public String create (String logicalName, Map<String, Object> entity)

Create entity

Parameters
logicalName A logical name
entity An entity object represented as a map
Returns
  • The GUID of the created entity.

public void delete (String logicalName, String guid)

Delete entity

Parameters
logicalName Logical name of the entity to be updated
guid The guid of the entity to be retrieved

public void disassociate (String entityName, String entityId, Boolean relationshipEntityRoleIsReferenced, String relationshipSchemaName, List<Map<String, Object>> relatedEntitiesAttributes)

Disassociate a set of entities

Parameters
entityName Logical name of entity
entityId Guid of entity in string form
relationshipEntityRoleIsReferenced If the role of the entity is "Referenced" (true) of "Referencing" (false)
relationshipSchemaName The type of relationship
relatedEntitiesAttributes List of the attributes of related entities

public Map<String, Object> execute (String requestName, String requestGuid, Map<String, Object> requestParameters)

Execute a business logic method

Parameters
requestName Logical name of request to be made
requestGuid The guid of the request to me made
requestParameters A collection of parameters to the request in Map form
Returns
  • organization response to execute request

public MetaData getMetadata (MetaDataKey key)

public List<MetaDataKey> getMetadataKeys ()

public Map<String, Object> retrieve (String logicalName, String guid, List<String> attributes)

Retrieve entity

Parameters
logicalName Name od the entity to be retrieved
guid The guid of the entity to be retrieved
attributes Attributes that will be retrieved from the entity specified
Returns
  • attributes of specified entity in Map form

public List<Map<String, Object>> retrieveMultipleByAttributes (String entityName, List<String> columns, List<String> attributes, List<String> values, Map<String, String> orders, Integer count, Integer pageNumber, String pagingCookie, Boolean returnTotalRecordCount)

This method is deprecated.
Use retrieveMultipleByQuery instead

Retrieve multiple entities by attributes values and sorting options

Parameters
entityName Name of the entity type
columns Columns to retrieve
attributes Attributes to filter by
values Values of the attributes
orders Ordering fields, key is the name, value is "Ascending" or "Descending"
count Number of rows to retrieve
pageNumber Number of page to retrieve
pagingCookie Paging cookie
returnTotalRecordCount If total record count should be returned
Returns
  • entities retrieved

public PagingDelegate<Map<String, Object>> retrieveMultipleByQuery (DsqlQuery queryXml, PagingConfiguration pagingConfiguration)

Retrieve multiple entities by a query described by and XML

The definition of the Microsoft XML Query Language can be found in the Schema Definition in this link: http://msdn.microsoft.com/en-us/library/bb930489.aspx

The aggregation examples can be found in this link: http://msdn.microsoft.com/en-us/library/gg309565.aspx

Parameters
queryXml Query XML
pagingConfiguration
Returns
  • A paging delegate with all the entities. This handles pagination internally on-demand.

public void update (String logicalName, String guid, Map<String, Object> attributesToUpdate)

Update entity

Parameters
logicalName Logical name of the entity to be updated
guid The guid of the entity to be retrieved
attributesToUpdate The attributes that will be updated, in Map form

Protected Methods

protected String buildFetchXmlWithPages (DsqlQuery query, Integer fetchSize)

Parameters
query
fetchSize

protected KeyValuePairOfstringanyType createPair (String name, Object value)

Parameters
name
value

protected EntityMetadata getCachedMetadata (String logicalName)

protected EntityMetadata getMetadata (String logicalName)