Author: jdoyle
Date: 2009-06-24 12:07:46 -0400 (Wed, 24 Jun 2009)
New Revision: 1075
Added:
trunk/documentation/salesforce-connector-guide/pom.xml
trunk/documentation/salesforce-connector-guide/src/
trunk/documentation/salesforce-connector-guide/src/main/
trunk/documentation/salesforce-connector-guide/src/main/docbook/
trunk/documentation/salesforce-connector-guide/src/main/docbook/en-US/
trunk/documentation/salesforce-connector-guide/src/main/docbook/en-US/content/
trunk/documentation/salesforce-connector-guide/src/main/docbook/en-US/content/appendix.xml
trunk/documentation/salesforce-connector-guide/src/main/docbook/en-US/content/connector.xml
trunk/documentation/salesforce-connector-guide/src/main/docbook/en-US/content/importing.xml
trunk/documentation/salesforce-connector-guide/src/main/docbook/en-US/content/preface.xml
trunk/documentation/salesforce-connector-guide/src/main/docbook/en-US/images/
trunk/documentation/salesforce-connector-guide/src/main/docbook/en-US/images/credentials.png
trunk/documentation/salesforce-connector-guide/src/main/docbook/en-US/images/import.png
trunk/documentation/salesforce-connector-guide/src/main/docbook/en-US/images/logo.png
trunk/documentation/salesforce-connector-guide/src/main/docbook/en-US/images/objects.png
trunk/documentation/salesforce-connector-guide/src/main/docbook/en-US/images/options.png
trunk/documentation/salesforce-connector-guide/src/main/docbook/en-US/legal_notice.xml
trunk/documentation/salesforce-connector-guide/src/main/docbook/en-US/salesforce_connector_guide.xml
Log:
Initial import
Added: trunk/documentation/salesforce-connector-guide/pom.xml
===================================================================
--- trunk/documentation/salesforce-connector-guide/pom.xml (rev
0)
+++ trunk/documentation/salesforce-connector-guide/pom.xml 2009-06-24 16:07:46 UTC (rev
1075)
@@ -0,0 +1,70 @@
+<project
xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <parent>
+ <groupId>org.jboss.teiid.documentation</groupId>
+ <artifactId>documentation</artifactId>
+ <version>6.2.0-SNAPSHOT</version>
+ </parent>
+ <modelVersion>4.0.0</modelVersion>
+ <artifactId>salesforce-connector-guide</artifactId>
+ <packaging>jdocbook</packaging>
+ <name>Salesforce Connector Guide</name>
+ <description>The Salesforce Connector Guide</description>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.jboss.maven.plugins</groupId>
+ <artifactId>maven-jdocbook-plugin</artifactId>
+ <version>2.1.2</version>
+ <extensions>true</extensions>
+ <dependencies>
+ <dependency>
+ <groupId>org.jboss</groupId>
+ <artifactId>jbossorg-docbook-xslt</artifactId>
+ <version>1.1.0</version>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss</groupId>
+ <artifactId>jbossorg-jdocbook-style</artifactId>
+ <version>1.1.0</version>
+ <type>jdocbook-style</type>
+ </dependency>
+ </dependencies>
+ <configuration>
+
<sourceDocumentName>salesforce_connector_guide.xml</sourceDocumentName>
+ <imageResource>
+ <directory>${basedir}/src/main/docbook/en-US</directory>
+ <excludes>
+ <exclude>*.xml</exclude>
+ <exclude>**/*.xml</exclude>
+ <exclude>*.zargo</exclude>
+ <exclude>**/*.zargo</exclude>
+ </excludes>
+ </imageResource>
+ <formats>
+ <format>
+ <formatName>pdf</formatName>
+
<stylesheetResource>classpath:/xslt/org/jboss/pdf.xsl</stylesheetResource>
+ <finalName>salesforce_connector_guide.pdf</finalName>
+ </format>
+ <!-- <format>
+ <formatName>html_single</formatName>
+
<stylesheetResource>classpath:/xslt/org/jboss/xhtml-single.xsl</stylesheetResource>
+ <finalName>index.html</finalName>
+ </format> -->
+ <format>
+ <formatName>html</formatName>
+
<stylesheetResource>classpath:/xslt/org/jboss/xhtml.xsl</stylesheetResource>
+ <finalName>index.html</finalName>
+ </format>
+ </formats>
+ <options>
+ <xincludeSupported>true</xincludeSupported>
+ <localeSeparator>-</localeSeparator>
+ <useRelativeImageUris>false</useRelativeImageUris>
+ </options>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+</project>
Added:
trunk/documentation/salesforce-connector-guide/src/main/docbook/en-US/content/appendix.xml
===================================================================
---
trunk/documentation/salesforce-connector-guide/src/main/docbook/en-US/content/appendix.xml
(rev 0)
+++
trunk/documentation/salesforce-connector-guide/src/main/docbook/en-US/content/appendix.xml 2009-06-24
16:07:46 UTC (rev 1075)
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
+<chapter id="appendix">
+ <title>Appendix</title>
+ <sect1>
+ <title>Supported Capabilities</title>
+ <para>The following are the the connector capabilities supported by
+ the Salesforce Connector. These SQL constructs will be pushed down to
+ Salesforce.</para>
+ <itemizedlist mark='opencircle'>
+ <listitem><para>
+ SELECT command
+ </para></listitem>
+ <listitem><para>
+ INSERT Command
+ </para></listitem>
+ <listitem><para>
+ UPDATE Command
+ </para></listitem>
+ <listitem><para>
+ DELETE Command
+ </para></listitem>
+ <listitem><para>
+ CompareCriteriaEquals
+ </para></listitem>
+ <listitem><para>
+ InCriteria
+ </para></listitem>
+ <listitem><para>
+ LikeCriteria - Supported for String fields only.
+ </para></listitem>
+ <listitem><para>
+ RowLimit
+ </para></listitem>
+ <listitem><para>
+ AggregatesCountStar
+ </para></listitem>
+ <listitem><para>
+ NotCriteria
+ </para></listitem>
+ <listitem><para>
+ OrCriteria
+ </para></listitem>
+ <listitem><para>
+ CompareCriteriaOrdered
+ </para></listitem>
+ </itemizedlist>
+ </sect1>
+
+</chapter>
\ No newline at end of file
Added:
trunk/documentation/salesforce-connector-guide/src/main/docbook/en-US/content/connector.xml
===================================================================
---
trunk/documentation/salesforce-connector-guide/src/main/docbook/en-US/content/connector.xml
(rev 0)
+++
trunk/documentation/salesforce-connector-guide/src/main/docbook/en-US/content/connector.xml 2009-06-24
16:07:46 UTC (rev 1075)
@@ -0,0 +1,277 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
+<chapter id="connector">
+ <title>Using the Connector</title>
+ <para>The Salesforce Connector supports the SELECT, DELETE, INSERT
+ and UPDATE operations.
+ </para>
+ <sect1>
+ <title>Binding the Salesforce Connector</title>
+ <para>Once you have created the model of the Salesforce instance
+ and added that model to a VDB, you must bind the VDB to an instance
+ of a Salesforce Connector. On the Execute tab of the VDB click the
+ Edit button in the Connector Bindings panel. The Connector Binding
+ Wizard is displayed.
+ </para>
+ <!-- screenshot -->
+ <para>The Salesforce Importer generates a connector binding with
+ the correct credentials and URL when generating a new model. You
+ select that binding by clicking the Loaded Bindings tab and selecting
+ the binding with the name that corresponds to the model you are
+ binding.
+ </para>
+ <para>A binding can also be created manually. Select Salesforce
+ Connector from the Connector Types dropdown and enter a username and
+ password into the appropriate binding properties.
+ </para>
+ <para>
+ If you are connecting to a Sandbox instance of a Salesforce
+ application rather than a live instance, you can check the Show
+ Advance Properties checkbox, and change the Salesforce URL binding
+ property that is revealed to contain the URL to your sandbox
+ instance. For more information see the
+ <ulink
+
url="http://www.salesforce.com/platform/application-development/deve...
Sandbox
+ </ulink>
+ information.
+ </para>
+ <para>You can now execute the VDB
+ and begin to query your Salesforce
+ instance.
+ </para>
+ </sect1>
+ <sect1>
+ <title>SQL Processing</title>
+ <para>Salesforce does not provide the same set of
+ functionality as a relational database. For example, Salesforce does
+ not support arbitrary joins between tables. However, working in
+ combination with the Teiid Query Planner, the Salesforce
+ connector
+ supports nearly all of the SQL syntax supported by the
+ Teiid.
+ </para>
+ <para>The Salesforce Connector executes SQL commands by “pushing
+ down” the command to Salesforce whenever possible, based on the
+ supported capabilities. Teiid will automatically provide
+ additional database functionality when the Salesforce Connector does
+ not explicitly provide support for a given SQL construct. In these
+ cases, the SQL construct cannot be “pushed down” to the data source,
+ so it will be evaluated in Teiid, in order to ensure that the
+ operation is performed.
+ </para>
+ <para>In cases where certain SQL capabilities cannot be pushed down
+ to Salesforce, Teiid will push down the capabilities that are
+ supported, and fetch a set of data from Salesforce. Then, Teiid
+ will
+ evaluate the additional capabilities, creating a subset of the
+ original data set. Finally, Teiid will pass the result to the
+ client.
+ </para>
+
+ <programlisting><![CDATA[
+ SELECT sum(Reports) FROM Supervisor where Division = 'customer support';
+ ]]>
+ </programlisting>
+ <para>Neither Salesforce nor the Salesforce Connector support
+ the sum() scalar function, but they do support CompareCriteriaEquals,
+ so the query that is passed to Salesforce by the connector will be
+ transformed to this query.
+ </para>
+ <programlisting><![CDATA[
+ SELECT Reports FROM Supervisor where Division = 'customer support';
+ ]]>
+ </programlisting>
+ <para>The sum() scalar function will be applied by the Teiid
+ Query
+ Engine to the result set returned by the connector.
+ </para>
+ <para>In some cases multiple calls to the Salesforce application
+ will be made to support the SQL passed to the connector.
+ </para>
+ <programlisting><![CDATA[
+ DELETE From Case WHERE Status = 'Closed';
+ ]]>
+ </programlisting>
+ <para>The API in Salesforce to delete objects only supports
+ deleting by ID. In order to accomplish this the Salesforce connector
+ will first execute a query to get the IDs of the correct objects, and
+ then delete those objects. So the above DELETE command will result in
+ the following two commands.
+ </para>
+ <programlisting><![CDATA[
+ SELECT ID From Case WHERE Status = 'Closed';
+ DELETE From Case where ID IN (<result of query>);*
+ ]]>
+ </programlisting>
+ <para>*The Salesforce API DELETE call is not expressed in SQL, but
+ the above is an SQL equivalent expression.
+ </para>
+ <para>It's useful to be aware of unsupported capabilities, in
+ order
+ to avoid fetching large data sets from Salesforce and making you
+ queries as performant as possible. See the Supported Capabilities
+ section in the appendix.
+ </para>
+ </sect1>
+ <sect1>
+ <title>Selecting from Multi-Select Picklists</title>
+ <para>
+ A multi-select picklist is a field type in Salesforce that can
+ contain multiple values in a single field. Query criteria operators
+ for fields of this type in SOQL are limited to EQ, NE, includes and
+ excludes. The full Salesforce documentation for selecting from
+ mullti-select picklists can be found at the following link.
+ <ulink
+
url="http://www.salesforce.com/us/developer/docs/api/index_Left.htm#...
Mulit-select Picklists
+ </ulink>
+ </para>
+ <para>Teiid SQL does not support the includes or
+ excludes
+ operators, but the Salesforce connector provides user
+ defined function
+ definitions for these operators that provided
+ equivalent functionality
+ for fields of type multi-select. The
+ definition for the functions is:
+ </para>
+ <programlisting><![CDATA[
+ boolean includes(Column column, String param)
+ boolean excludes(Column column, String param)
+ ]]>
+ </programlisting>
+ <para>For example, take a single multi-select picklist column
+ called Status that contains all of these values.
+ </para>
+ <itemizedlist mark='opencircle'>
+ <listitem>
+ <para>
+ current
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ working
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ critical
+ </para>
+ </listitem>
+ </itemizedlist>
+ <para>For that column, all of the below are valid queries:</para>
+ <programlisting><![CDATA[
+ SELECT * FROM Issue WHERE true = includes (Status, 'current, working' );
+ SELECT * FROM Issue WHERE true = excludes (Status, 'current, working' );
+ SELECT * FROM Issue WHERE true = includes (Status, 'current;working, critical'
);
+ ]]>
+ </programlisting>
+ <para>EQ and NE criteria will pass to Salesforce as supplied. For
+ example, these queries will not be modified by the connector.
+ </para>
+ <programlisting><![CDATA[
+ SELECT * FROM Issue WHERE Status = 'current';
+ SELECT * FROM Issue WHERE Status = 'current;critical';
+ SELECT * FROM Issue WHERE Status != 'current;working';
+ ]]>
+ </programlisting>
+ </sect1>
+ <sect1>
+ <title>Selecting All Objects</title>
+ <para>
+ The Salesforce connector supports the calling the queryAll operation
+ from the Salesforce API. The queryAll operation is equivalent
+ to the
+ query operation with the exception that it returns data about
+ <emphasis role="strong">all current and
deleted</emphasis>
+ objects in the system.
+ </para>
+ <para>The connector determines if it will call the
+ query or queryAll
+ operation via reference to the isDeleted property
+ present on each
+ Salesforce object, and modeled as a column on
+ each table generated by
+ the importer. By default this value is set to
+ False when the model is
+ generated and thus the connector calls
+ query. Users are free to change
+ the value in the model to True,
+ changing the default behavior of the
+ connector to be queryAll.
+ </para>
+ <para>The behavior is different if isDeleted is used as a parameter
+ in the query. If the isDeleted column is used as a parameter
+ in the
+ query, and the value
+ is 'true' the connector will call queryAll.
+ </para>
+ <programlisting><![CDATA[
+ select * from Contact where isDeleted = true;
+ ]]>
+ </programlisting>
+ <para>If the
+ isDeleted column is used as a parameter in the query,
+ and the value
+ is 'false' the connector perform the default behavior
+ will call query.
+ </para>
+ <programlisting><![CDATA[
+ select * from Contact where isDeleted = false;
+ ]]>
+ </programlisting>
+ </sect1>
+
+ <sect1>
+ <title>Selecting Updated Objects</title>
+ <para>If the option is selected when importing metadata from
+ Salesforce, a GetUpdated procedure is generated in the model with
+ the
+ following sturcture:
+ </para>
+ <programlisting><![CDATA[
+ GetUpdated (ObjectName IN string,
+ StartDate IN datetime,
+ EndDate IN datetime,
+ LatestDateCovered OUT datetime)
+ returns
+ ID string
+ ]]>
+ </programlisting>
+ <para>
+ See the description of the
+ <ulink
+
url="http://www.salesforce.com/us/developer/docs/api/Content/sforce_...
+ </ulink>
+ operation in the Salesforce documentation for usage details.
+ </para>
+ </sect1>
+ <sect1>
+ <title>Selecting Deleted Objects</title>
+ <para>If the option is selected when importing metadata from
+ Salesforce, a GetDeleted procedure is generated in the model with
+ the
+ following sturcture:
+ </para>
+ <programlisting><![CDATA[
+ GetDeleted (ObjectName IN string,
+ StartDate IN datetime,
+ EndDate IN datetime,
+ EarliestDateAvailable OUT datetime,
+ LatestDateCovered OUT datetime)
+ returns
+ ID string,
+ DeletedDate datetime
+ ]]>
+ </programlisting>
+ <para>
+ See the description of the
+ <ulink
+
url="http://www.salesforce.com/us/developer/docs/api/Content/sforce_...
+ </ulink>
+ operation in the Salesforce documentation for usage details.
+ </para>
+
+ </sect1>
+</chapter>
+
Added:
trunk/documentation/salesforce-connector-guide/src/main/docbook/en-US/content/importing.xml
===================================================================
---
trunk/documentation/salesforce-connector-guide/src/main/docbook/en-US/content/importing.xml
(rev 0)
+++
trunk/documentation/salesforce-connector-guide/src/main/docbook/en-US/content/importing.xml 2009-06-24
16:07:46 UTC (rev 1075)
@@ -0,0 +1,187 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
+<chapter id="importing">
+ <title>Importing Metadata</title>
+ <sect1>
+ <title>Overview</title>
+ <para>
+ Salesforce metadata is structured relationally. Salesforce
+ Objects and the fields on those objects are analogous to relational
+ tables and columns. Because of this similarity, the modeling of
+ Salesforce metadata and interaction with the data through standard SQL
+ is easily accomplished within Teiid. However, the
+ properties of the objects in a Salesforce application are not an exact
+ match to the properties that are available on the standard Teiid
+ Relational Table and Column. In order to bridge the gap between
+ these metadata properties, integration with Salesforce requires
+ extensions to the standard Teiid Relational Base Table and Column.
+ The extensions required are created within the Model Project by the
+ Salesforce Importer and appropriate values are set into these
+ properties by the importer.
+ </para>
+ <para>
+ The Salesforce Importer will model the unique metadata that is
+ exposed to it by the Salesforce API as determined by the credentials
+ used in the importer. Users with different profiles within the same
+ Salesforce instance may be authorized to see different subsets of the
+ applications metadata and data. Keep this in mind when binding a
+ connector to the model. You must ensure that the credentials used in
+ the binding have access to all of the data that is exposed in the
+ model, or exceptions will occur. The importer also understands
+ customizations that have been made to applications and will model
+ them as well.
+ </para>
+ </sect1>
+ <sect1>
+ <title>Running the Importer</title>
+ <para>Select File->Import to display the Wizard Selection
+ Dialog.
+ </para>
+ <mediaobject>
+ <imageobject role="fo">
+ <imagedata fileref="../images/import.png" align="center"
/>
+ </imageobject>
+ <imageobject role="html">
+ <imagedata fileref="../images/import.png"
contentwidth="8.5cm"
+ depth="3cm" />
+ </imageobject>
+ </mediaobject>
+
+ <para>Select Salesforce as Relational Source Model from in the
+ list displayed and click Next. The Salesforce Importer is displayed.
+ </para>
+ <mediaobject>
+ <imageobject role="fo">
+ <imagedata fileref="../images/credentials.png" align="center"
/>
+ </imageobject>
+ <imageobject role="html">
+ <imagedata fileref="../images/credentials.png"
+ contentwidth="8.5cm" depth="3cm" />
+ </imageobject>
+ </mediaobject>
+ <para>Enter a valid Username and Password into the text fields
+ and click Validate Credentials. If you are connecting to a sandbox
+ instance of a Salesforce application, enable the Override Connection
+ URL textbox and enter the URL to the sandbox instance. The default
+ value will probably be correct in most instances. After the Username
+ and Password are supplied, the Validate Credentials button will be
+ come active and you click this button to validate the connection
+ parameters and enable the Next Button. After clicking Next the
+ Salesforce Objects page is displayed.</para>
+ <mediaobject>
+ <imageobject role="fo">
+ <imagedata fileref="../images/objects.png" align="center"
/>
+ </imageobject>
+ <imageobject role="html">
+ <imagedata fileref="../images/objects.png"
contentwidth="8.5cm"
+ depth="3cm" />
+ </imageobject>
+ </mediaobject>
+ <para>In the left column the Salesforce objects in the system are
+ listed and can be selected for modeling. Each object selected will be
+ modeled as a Table. In the Column Details table metadata from the
+ fields on the currently selected object are displayed, and these will
+ be modeled as columns on the tables.</para>
+ <para>When you have selected all of the Salesforce objects that
+ you wish to model, click Next. The Target Model Selection page will
+ be displayed. </para>
+ <mediaobject>
+ <imageobject role="fo">
+ <imagedata fileref="../images/options.png" align="center"
/>
+ </imageobject>
+ <imageobject role="html">
+ <imagedata fileref="../images/options.png"
contentwidth="8.5cm"
+ depth="3cm" />
+ </imageobject>
+ </mediaobject>
+ <para>Select the model name, location, and options.</para>
+ <itemizedlist mark='opencircle'>
+ <listitem>
+ <para>
+ <emphasis role="strong">Model Name: </emphasis>
+ type the name of the new model to be created, or browse to select
+ an preexisting model to update.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <emphasis role="strong">Location: </emphasis>
+ type or browse to the location of the
+ model project to create the model in.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <emphasis role="strong">Model audit fields: </emphasis>
+ each Salesforce object has fields that track changes to
+ the object, such as LastModifiedDate and CreateById. These fields are
+ know as audit fields. Because each object in the application has
+ these fields, and some of these fields have relations to other
+ Salesforce objects, modeling these fields can cause a model to be
+ congested with relations. If you do not plan to use a model to query
+ audit data, you probably want to suppress modeling of these fields.
+ Checking this box will override the default behavior and will model
+ the audit fields.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <emphasis role="strong">Do not gather Cardinalities:
</emphasis>
+ by default the importer will calculate the table cardinalites.
+ Cardinality metadata can greatly improve query performance, but it
+ may take the importer some time calculate this information.
+ Checking this box will suppress the calculation of cardinalities.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <emphasis role="strong">
+ Gather Column Distinct Value Count: </emphasis>by default the importer does
+ not calculate column distinct value counts. Checking this box will
+ cause the importer to calculate these values. This can be an
+ <emphasis role="strong">extremely long</emphasis>
+ running operation.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <emphasis role="strong">Set name to Salesforce Label:
</emphasis>
+ each Salesforce object has a label (user visible name) that can be
+ modified, and names (the fixed internal name). By default the
+ importer will use the name when modeling objects. Checking this box
+ will cause the importer to use the label as the table name.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <emphasis role="strong">Create a procedure for the GetUpdated
operation: </emphasis>checking this box will cause the importer to create a
procedure for the getUpdated operation in the generated model.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <emphasis role="strong">Create a procedure for the GetDeleted
operation: </emphasis>checking this box will cause the importer to create a
procedure for the getDeleted operation in the generated model.
+ </para>
+ </listitem>
+ </itemizedlist>
+ <para>Click Finish.</para>
+ <para>After the Salesforce Importer has finished, you will find
+ two new models created in your model project. One will have the name
+ you supplied in the last page of the importer, and the other will be
+ named SalesforceExtensions.xmi.</para>
+ <para>The SalesforceExtensions.xmi model contains the extensions
+ to the standard relational model. These extensions enable the model to
+ provided enhanced data to the Salesforce Connector at query time.
+ For example, some objects in Salesforce do not support the query
+ operation. In order to enforce this limitation the extension model
+ defined a Supports Query property, and the Salesforce Importer enters
+ the correct value into this property for each Table. The Salesforce
+ Connector validates that each table included in a query operation
+ has the value true for this property before executing a query and will
+ throw and exception in the event that the table is not querable.
+ </para>
+ <para>The other model created by the importer contains the model
+ of the data in the Salesforce instance that you selected in the
+ importer. This is the model you will execute your SQL statements
+ against.</para>
+ </sect1>
+</chapter>
\ No newline at end of file
Added:
trunk/documentation/salesforce-connector-guide/src/main/docbook/en-US/content/preface.xml
===================================================================
---
trunk/documentation/salesforce-connector-guide/src/main/docbook/en-US/content/preface.xml
(rev 0)
+++
trunk/documentation/salesforce-connector-guide/src/main/docbook/en-US/content/preface.xml 2009-06-24
16:07:46 UTC (rev 1075)
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE preface PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
+<preface>
+ <title>Preface</title>
+ <para> This document shows how to model the metadata of an hosted
+ Salesforce application with Teiid Designer, and details the SQL semantics
+ supported by the connector in Teiid Embedded. This document contains
+ an overview of the process, including:</para>
+ <itemizedlist>
+ <listitem>
+ <para>Using the Salesforce Importer to create relational models
+ representing your Salesforce application.</para>
+ </listitem>
+ <listitem>
+ <para>Querying the Salesforce application.</para>
+ </listitem>
+ </itemizedlist>
+ <para> Commercial development support, production support, and training
+ for Teiid is available through JBoss.
+ Teiid is a Professional Open
+ Source project and a critical component of the
+ JBoss Enterprise Data
+ Services
+ Platform.</para>
+ <note>
+ <para>
+ Please read
+ <ulink
url="http://www.jboss.org/teiid/basics.html">Federation
Basics</ulink>
+ and understand different terminologies used, resources needed and
+ artifacts that need to be generated before
+ developing a successful
+ application. This example takes advantage of only a
+ minimal set of
+ features from
+ Teiid Embedded for the sake of simplicity and time.
+ </para>
+ </note>
+</preface>
\ No newline at end of file
Added:
trunk/documentation/salesforce-connector-guide/src/main/docbook/en-US/images/credentials.png
===================================================================
(Binary files differ)
Property changes on:
trunk/documentation/salesforce-connector-guide/src/main/docbook/en-US/images/credentials.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added:
trunk/documentation/salesforce-connector-guide/src/main/docbook/en-US/images/import.png
===================================================================
(Binary files differ)
Property changes on:
trunk/documentation/salesforce-connector-guide/src/main/docbook/en-US/images/import.png
___________________________________________________________________
Name: svn:executable
+ *
Name: svn:mime-type
+ application/octet-stream
Added:
trunk/documentation/salesforce-connector-guide/src/main/docbook/en-US/images/logo.png
===================================================================
(Binary files differ)
Property changes on:
trunk/documentation/salesforce-connector-guide/src/main/docbook/en-US/images/logo.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added:
trunk/documentation/salesforce-connector-guide/src/main/docbook/en-US/images/objects.png
===================================================================
(Binary files differ)
Property changes on:
trunk/documentation/salesforce-connector-guide/src/main/docbook/en-US/images/objects.png
___________________________________________________________________
Name: svn:executable
+ *
Name: svn:mime-type
+ application/octet-stream
Added:
trunk/documentation/salesforce-connector-guide/src/main/docbook/en-US/images/options.png
===================================================================
(Binary files differ)
Property changes on:
trunk/documentation/salesforce-connector-guide/src/main/docbook/en-US/images/options.png
___________________________________________________________________
Name: svn:executable
+ *
Name: svn:mime-type
+ application/octet-stream
Added:
trunk/documentation/salesforce-connector-guide/src/main/docbook/en-US/legal_notice.xml
===================================================================
---
trunk/documentation/salesforce-connector-guide/src/main/docbook/en-US/legal_notice.xml
(rev 0)
+++
trunk/documentation/salesforce-connector-guide/src/main/docbook/en-US/legal_notice.xml 2009-06-24
16:07:46 UTC (rev 1075)
@@ -0,0 +1,58 @@
+<?xml version='1.0' encoding="UTF-8"?>
+<!--
+
+ JBoss, Home of Professional Open Source.
+ Copyright (C) 2008 Red Hat, Inc.
+ Licensed to Red Hat, Inc. under one or more contributor
+ license agreements. See the copyright.txt file in the
+ distribution for a full listing of individual contributors.
+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ This library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with this library; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+ 02110-1301 USA.
+
+-->
+<!DOCTYPE legalnotice PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
+
+<legalnotice id="Legal_Notice">
+ <title>Legal Notice</title>
+ <para>
+ <address>
+ <street>1801 Varsity Drive</street>
+ <city>Raleigh</city>,
<state>NC</state><postcode>27606-2072</postcode><country>USA</country>
+ <phone>Phone: +1 919 754 3700</phone>
+ <phone>Phone: 888 733 4281</phone>
+ <fax>Fax: +1 919 754 3701</fax>
+ <pob>PO Box 13588</pob><city>Research Triangle
Park</city>,
<state>NC</state><postcode>27709</postcode><country>USA</country>
+ </address>
+ </para>
+ <para>
+ Copyright <trademark class="copyright"/> 2009 by Red Hat, Inc.
This copyrighted material is made available to
+ anyone wishing to use, modify, copy, or redistribute it subject to the terms and
conditions of the
+ GNU <ulink
url="http://www.gnu.org/licenses/lgpl-2.1.html">Lesser
General Public License</ulink>, as published
+ by the Free Software Foundation.
+ </para>
+ <para>
+ Red Hat and the Red Hat "Shadow Man" logo are registered trademarks of
Red Hat, Inc. in the United States and other countries.
+ </para>
+ <para>
+ All other trademarks referenced herein are the property of their respective
owners.
+ </para>
+ <para>
+ The GPG fingerprint of the security(a)redhat.com key is:
+ </para>
+ <para>
+ CA 20 86 86 2B D6 9D FC 65 F6 EC C4 21 91 80 CD DB 42 A6 0E
+ </para>
+</legalnotice>
Added:
trunk/documentation/salesforce-connector-guide/src/main/docbook/en-US/salesforce_connector_guide.xml
===================================================================
---
trunk/documentation/salesforce-connector-guide/src/main/docbook/en-US/salesforce_connector_guide.xml
(rev 0)
+++
trunk/documentation/salesforce-connector-guide/src/main/docbook/en-US/salesforce_connector_guide.xml 2009-06-24
16:07:46 UTC (rev 1075)
@@ -0,0 +1,60 @@
+<?xml version='1.0' encoding="UTF-8"?>
+<!--
+
+ JBoss, Home of Professional Open Source.
+ Copyright (C) 2008 Red Hat, Inc.
+ Licensed to Red Hat, Inc. under one or more contributor
+ license agreements. See the copyright.txt file in the
+ distribution for a full listing of individual contributors.
+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ This library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with this library; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+ 02110-1301 USA.
+
+-->
+<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+ <!ENTITY versionNumber "6.1.0">
+ <!ENTITY copyrightYear "2009">
+ <!ENTITY copyrightHolder "Red Hat, Inc.">
+]>
+<book>
+ <bookinfo>
+ <title>Teiid - Salesforce Connector Guide</title>
+ <releaseinfo>&versionNumber;
+ </releaseinfo>
+ <productnumber>&versionNumber;
+ </productnumber>
+ <issuenum>1</issuenum>
+ <mediaobject>
+ <imageobject role="fo">
+ <imagedata fileref="images/logo.png" align="center" />
+ </imageobject>
+ <imageobject role="html">
+ <imagedata fileref="images/logo.png" depth="3cm" />
+ </imageobject>
+ </mediaobject>
+ <copyright>
+ <year>©rightYear;
+ </year>
+ <holder>©rightHolder;
+ </holder>
+ </copyright>
+ <xi:include href="legal_notice.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />
+ </bookinfo>
+ <toc />
+ <xi:include href="content/preface.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />
+ <xi:include href="content/importing.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />
+ <xi:include href="content/connector.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />
+ <xi:include href="content/appendix.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />
+</book>
\ No newline at end of file