What is Groovy scripting used for in Exalate?

    Groovy scripting controls how data transforms and moves between connected systems, handling both outgoing and incoming synchronization logic independently on each side. The scripting engine lets you define which fields to share, how to map values between different platforms, and what rules govern the synchronization process.

    Outgoing Scripts: Control What You Send

    Outgoing scripts determine what information to send from your system by populating the replica object with specific field values. You can script logic to exclude certain custom fields, apply data masking for sensitive information, or transform field formats before sharing with external partners. This gives you complete control over what data leaves your system and how it's formatted.

    Incoming Scripts: Define How You Receive Data

    Incoming scripts define how to apply received data to local work items, including field mappings, status translations, and conditional logic based on work item properties. You control exactly how external data integrates with your system, ensuring it matches your workflow requirements and business processes.

    Advanced Use Cases Beyond Basic Mapping

    Complex requirements that basic field mapping cannot handle include:

    • Conditional Synchronization: Share work items only when they meet specific criteria, such as priority level or status.
    • Calculated Fields: Derive values from multiple source fields, like combining fields or performing calculations.
    • Data Transformations: Convert priority levels, status values, or custom field formats between different systems.
    • Parent-Child Relationships: Maintain hierarchical structures and dependencies across platforms.

    Organizations with specialized workflows, extensive custom fields, or intricate business logic rely on Groovy scripting to accommodate these scenarios while maintaining full operational control over their sync.

    Helper Functions Simplify Common Operations

    The scripting environment includes helper functions for standard synchronization patterns:

    • commentHelper.mergeComments for synchronizing comment threads
    • attachmentHelper.mergeAttachments for handling file attachments
    • nodeHelper methods for mapping users, statuses, and other entities between systems

    These helpers reduce the code needed for common operations, making script development faster and more reliable.

    Script Management for Complex Implementations

    For teams managing complex scripts, Exalate supports external script libraries where you can store reusable code outside the sync rules interface. This approach makes maintenance easier, enables version control through Git, and allows sharing script components across multiple connections. The platform provides API auto-completion and custom field suggestions as you write scripts, improving development efficiency.