Connect to RabbitMQ Data Using the Script Function in Claris FileMaker Pro
Claris FileMaker is a low-code database application development tool that enables users to create custom apps for managing and organizing data. It combines a powerful relational database engine with an intuitive interface, allowing both technical and non-technical users to design and deploy applications across desktop, web, and mobile platforms.
In this article, we'll explore how to use the CData API Driver for ODBC and FileMaker scripting to connect to RabbitMQ data.
Create an ODBC Data Source for RabbitMQ
If you have not already, first specify connection properties in an ODBC DSN (data source name). This is the last step of the driver installation. You can use the Microsoft ODBC Data Source Administrator to create and configure ODBC DSNs.
About RabbitMQ Management HTTP API
RabbitMQ is an open-source message broker that supports multiple messaging protocols. The RabbitMQ Management HTTP API provides HTTP-based access to management and monitoring data for a RabbitMQ server. The API exposes information about virtual hosts, exchanges, queues, bindings, connections, channels, consumers, users, permissions, policies, and cluster-wide statistics.
The Management plugin must be enabled on the RabbitMQ server for the HTTP API to be available. By default, the management interface listens on port 15672.
Using Basic Authentication
RabbitMQ Management HTTP API uses HTTP Basic authentication. You must supply the username and password of a RabbitMQ management user.
To enable access to the management API:
- Ensure the RabbitMQ Management plugin is enabled on your server (rabbitmq-plugins enable rabbitmq_management).
- Use an existing management user or create one with the appropriate management tag (management, policymaker, monitoring, or administrator).
- Note the full base URL of your RabbitMQ Management HTTP API (e.g., http://localhost:15672).
After configuring your RabbitMQ server, set the following connection properties to connect:
- AuthScheme: Set this to Basic.
- URL: Set this to the base URL of your RabbitMQ Management HTTP API (e.g., http://localhost:15672).
- User: Set this to your RabbitMQ management username (e.g., guest).
- Password: Set this to your RabbitMQ management password.
Example connection string:
Profile=C:\profiles\RabbitMQ.apip;AuthScheme=Basic;URL=http://localhost:15672;User=guest;Password=guest;
Available Tables
The RabbitMQ profile provides access to the following tables:
- Overview - Cluster-wide statistics and information about the RabbitMQ node
- Nodes - Information about individual nodes in the RabbitMQ cluster
- NodeMemory - Detailed memory usage breakdown for a specific cluster node
- Connections - List of all open AMQP connections to the broker
- Channels - List of all open AMQP channels across all connections
- Consumers - List of all consumers registered across all queues
- Exchanges - List of exchanges declared across all virtual hosts
- Queues - List of queues declared across all virtual hosts
- Bindings - List of all bindings between exchanges and queues
- VirtualHosts - List of virtual hosts configured on the broker
- VhostPermissions - User permissions within a specific virtual host
- Users - List of all RabbitMQ users
- Permissions - Permission records for all users across all virtual hosts
- TopicPermissions - Topic-level permission records for all users
- Policies - List of policies applied to queues and exchanges in virtual hosts
- OperatorPolicies - List of operator policies applied to queues in virtual hosts
- Parameters - List of component parameters (e.g., federation, shovel) per virtual host
- GlobalParameters - List of global parameters that apply across all virtual hosts
- VhostLimits - Resource limits configured for specific virtual hosts
- UserLimits - Resource limits configured for specific users
- FeatureFlags - List of feature flags and their enabled/disabled state on the node
- DeprecatedFeatures - List of deprecated features and their usage state
- AuthAttempts - Authentication attempt statistics for the node
- ClusterName - The name of the RabbitMQ cluster
- WhoAmI - Information about the currently authenticated management user
- ExchangeBindingsSource - Bindings for which a specific exchange is the source
- ExchangeBindingsDestination - Bindings for which a specific exchange is the destination
- QueueBindings - Bindings for a specific queue within a virtual host
When you configure the DSN, you may also want to set the Max Rows connection property. This will limit the number of rows returned, which is especially helpful for improving performance when designing reports and visualizations.
Connect and Sync RabbitMQ data with FileMaker Using Scripts
In this section, we walk through the steps to connect live RabbitMQ data to FileMaker using the CData API Driver for ODBC and the Script function. During the initial import, FileMaker brings in all data from the external data source. From the second import onward, it updates only the data that has changed in the external source (a differential update). You can also replace the data in the current record order and schedule these differential updates for automated syncing.
You can download and install the latest version of FileMaker Pro for your Mac/Windows/Linux systems from this link.
Connect and sync RabbitMQ data with FileMaker using scripts
Scripting in FileMaker automates complex tasks and workflows by running a sequence of actions with a single command. By using scripting to integrate with RabbitMQ, you can automatically connect to, import, update, and replace RabbitMQ data within your FileMaker applications, streamlining data management and improving efficiency.
First-time importing and adding RabbitMQ data using script
In this section, we'll use scripts to import RabbitMQ data into FileMaker by following these steps:
- Open FileMaker Pro. Navigate to Create from the left panel and select Blank > Create.
- Enter a filename of your choice and click Save.
- In the Manage Database window, go to the Tables tab and create or rename the table where you want to display the RabbitMQ data.
- In the Fields tab, create and add the fields you want to use in the table.
- In the Relationships tab, add table relationships if there are multiple tables, then click OK.
- To reopen and modify the table structure, go to File > Manage > Database.
- Navigate to Scripts > Script Workspace.
- Select New Script to open a new script workspace.
- From the Steps panel on the right, select Records > Import Records > Insert into Script.
- In the Specify Data Source dropdown, choose ODBC Data.
- Select CData API Sys from the Select ODBC Data Source window, and click Continue. Enter your RabbitMQ credentials and click OK.
- In the Specify ODBC SQL Query dialog, enter the SQL query in the SQL text editor to import the desired RabbitMQ data.
- Alternatively, select Query Builder to open the SQL Query Builder window. Choose the target table from the Tables section and relevant columns from the Columns section. Click Insert into SQL Query after each selection to auto-generate the query. You can also manually edit the query using WHERE and ORDER BY clauses or the designated tabs. Click OK to finalize the query.
- Click OK.
- In the Specify import order option, click Specify and enter the RabbitMQ credentials.
- In the Specify Import Order window, define the import order for the target fields you added earlier. Select Add between the source and target fields to insert the RabbitMQ data as new records in the table. Click Import.
- The script now appears in the workspace. Click Run to execute the script and process the import.
- FileMaker imports the RabbitMQ data as a table.
Update or Replace Imported RabbitMQ data Using a Script
After importing the RabbitMQ data into FileMaker, use scripts to update or replace any changes made in RabbitMQ by following this process:
- Go back to the Script Workspace by following the steps mentioned in the earlier section.
- Select the existing script, click the settings button, choose Specify under Specify Import Order, and re-enter the RabbitMQ credentials to authenticate.
- In the Specify Import Order window, choose Update between source and target to update the imported RabbitMQ data. This updates the target's found set with RabbitMQ data values from selected fields when the match fields have the same values. You must define at least one match field in the mapping and select the checkbox Add remaining data as new records. Click Import.
- Alternatively, choose the Replace option instead of Update, based on your use case. This replaces the selected fields in the target's found set with RabbitMQ data in the current record order. Click Import.
- FileMaker adds the script to the workspace. Click Run to execute the script and process the import query.
- FileMaker imports the updated or replaced RabbitMQ data as a table.
Get Started Today
Download a free 30-day trial of CData API Driver for ODBC to integrate RabbitMQ data into Claris FileMaker and work with RabbitMQ data in your FileMaker applications.
Reach out to our Support Team if you have any questions.