|Version 28 (modified by 6 years ago) (diff),|
Trac Ticket to Salesforce ticket synchronization
Maintain synchronization of Trac tickets in Salesforce. Trac tickets are reflected by the Salesforce custom objects, Ticket and Comment. Ticket objects are linked to Cases via M2M relationship provided by the CaseTicketLink custom object. Even though this is a M2M relation, Trac uses a custom text field for the Case number, so it's essentially many-to-one.
Comment objects are related to Ticket objects via the link custom object, TicketCommentLink. The related lists layouts are modified to display the related object fields rather then the object id.
See the Module Dependencies required.
This plugin comes with some Salesforce artifacts that are installed
to your Salesforce org via an Ant script, using custom Ant tasks from Salesforce.
There are four custom objects -
and four custom layouts -
Comment Layout and
TicketCommentLink Layout. The
Case Layout is the default, out-of-the-box
Case Layout with an additional related list - "Tickets" appended; so if you already
have a customized
Case Layout, you may want to modify the included
to omit the
Case Layout and manually add the
Tickets related list to your
The three other layouts are completely new and can be safely added regardless of
The "migration tool" is just a set of Salesforce-specific Ant tasks which use the metadata API to upload/download artifacts, such as custom objects, etc.
I provide an Ant script to perform the deployment. You need to acquire the ant-salesforce.jar by following these steps:
- Log into a Salesforce.com org on your deployment machine.
- Click Your Name ➤ Setup ➤ Develop ➤ Tools, and then click Force.com Migration Tool.
- Save the .zip file locally and extract the contents to the directory of your choice.
- Copy ant-salesforce.jar into your Ant installation's lib directory. The lib directory is located in the root folder of your Ant installation. You could also just copy this jar to the same directory as build.xml
- Install the custom objects and custom page layouts into your Salesforce org.
- Generate the partner WSDL and copy it into your
- Edit trac.ini to enable the ticket2sforce component as well as setting the web service API credentials.
To install the custom objects and page layouts:
$ cd trunk/src $ ant deploy
If you have any issues, create a new ticket.
Download the zipped source from [download:tickettosalesforceplugin here].
- sforce, salesforce-python-toolkit, http://code.google.com/p/salesforce-python-toolkit/
- suds, versions 0.3.6 to 0.3.9 ONLY (i.e. 0.4.0 WON'T WORK) Python SOAP API, https://fedorahosted.org/suds
- XML-RPC Plugin
Example settings in trac.ini are:
[components] tracrpc.* = enabled ticket2sforce.* = enabled ticketvalidator.* = enabled [ticket2sforce] username = yourSFusername password = yourSFpasswd sectoken = yourSFsecurityToken wsdl = partner.wsdl [ticket-custom] case_number = text case_number.label = Case Number [ticketvalidator] new.required = case_number
- Even though the case number is numerical, you must enter it with whatever leading zeros are configured in Salesforce for this field, since the query treats this as a string
This plugin comes with a
TicketValidator which checks if the entered case number actually
exists in Saleforce, but also if case number is blank - so if you are using the TicketValidatorPlugin you will !get two warning messages, "case number required" upon attempting to submit a ticket without a case number.