|Version 5 (modified by chriswolf, 3 years ago) (diff)|
Trac Ticket to Salesforce ticket synchronization
Maintain synchronization if Trac tickets in Salesforce. Trac tickets are reflected by the Salesforce custom object, 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's 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.
You need the "tracrpc" component installed and enabled for this plugin to work. You also need to add a custom field, "case_number", as shown below.
This file gets copied to the "plugins" directory of the trac project.
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
You will need to install the following Salesforce project artifacts using either the Eclipse SForce plugin or the ant-based migration tool.
src/layouts/Case-Case Layout.layout src/layouts/Commentc-Comment Layout.layout src/layouts/Ticketc-Ticket Layout.layout src/layouts/TicketCommentLinkc-TicketCommentLink Leyout.layout src/objects/Ticketc.object src/objects/Commentc.object src/objects/CaseTicketLinkc.object src/objects/TicketCommentLinkc.object
If you have any issues, create a new ticket.
Download the zipped source from here.
- Install the custom objects and custom page layouts into your Salesforce org.
- Generate the partner WSDL and copy it into your trac/projects/<yourproj>/conf directory
- Edit trac.ini to enable the tick2sforce component as well as setting the web service API credentials.
-  by chriswolf on 2011-02-08 14:19:26
Refactored code to consolidate two classes, Ticket2Case and CaseNumberValidator
into a single class, Ticket2SForce. This obviates the need for "caseId" global
and connection static method to share connection between two classs.
-  by chriswolf on 2011-02-08 13:38:01
Add debug stmnt to show sessionId
-  by chriswolf on 2011-02-07 10:47:43