Frank!Framework Documentation
website·Indexed 32 days ago
https://docs.frankframework.orgDocumentation for Frank!Framework, a Java-based integration framework. Covers XML configuration, pipeline flow control, database access, Docker deployment, and operational tools like Frank!Flow graphical editor, Larva and Ladybug testing, and Quartz scheduling.
What's inside Frank!Framework
- Frank!Flow is a browser-based graphical editor for Frank configurations. It provides a drag-and-drop interface to build and edit adapter pipelines visually as an alternative to writing XML directly. It can render existing XML configurations as diagrams and generate valid configuration XML from visual representations.
Overview of Larva adapter testing
Larva is used to test Frank!Framework adapters in isolation (unit tests). It avoids the resource-intensive setup of full integration environments by replacing external system interfaces with direct Java call stubs. Tests are defined using a properties-based scripting language where scenarios send input messages to an adapter and verify the output against expected values.Overview of Ladybug Report Capture and Replay
Ladybug captures adapter executions as reports containing checkpoints (input/output at each processing step). These reports can be used for regression testing by capturing them as test reports and replaying them. Access Ladybug via Testing → Ladybug in the Frank!Console.
- Debug Tab: Displays live reports of adapter executions and provides tree views of report contents.
- Test Tab: Manages captured test reports, including running, organizing, and comparing results.
Overview of Frank!Framework Credential Factories
Credential factories manage secrets (usernames and passwords) by storing them outside of Frank configurations and log files. Credentials are referenced in the system by alias names. Available factories include:Factory Class Additional Properties Property File org.frankframework.credentialprovider.PropertyFileCredentialFactorycredentialFactory.map.propertiesFile System org.frankframework.credentialprovider.FileSystemCredentialFactorycredentialFactory.filesystem.root,credentialFactory.filesystem.usernamefile,credentialFactory.filesystem.passwordfileAnsible Vault org.frankframework.credentialprovider.AnsibleVaultCredentialFactorycredentialFactory.ansibleVault.vaultFile,credentialFactory.keyFileUnderstand Frank!Framework error response behavior
Error message formatters determine the structure and content of the response sent back to a caller when a pipeline finishes with a state other thanSUCCESSor when an unhandled exception occurs. By default, the framework wraps error information (error message, adapter name, and message ID) in an XML envelope, with the exact format depending on the listener type that received the request.Understand message flow and default input behavior in pipelines
In a Frank!Framework pipeline, a message flows sequentially from one pipe to the next. By default, the first pipe receives the pipeline's initial input message, and every subsequent pipe receives the output message of the previous pipe as its input. The framework automatically stores the initial pipeline input message in a session key namedoriginalMessage.Understand Frank!Framework core architectural concepts
Frank!Framework is a low-code integration framework that uses XML configuration to build message-based adapters. The core components are:
- Adapter: A self-contained integration flow consisting of a receiver and a pipeline.
- Receiver: The entry point that listens for incoming messages (e.g., HTTP, JMS, file polling, or scheduling).
- Pipeline: A sequence of pipes that process a message step-by-step.
- Pipe: An individual processing unit, such as an XSLT transformation, database query, API call, or validation.
- Sender: The component that delivers the processed message to an external system or resource.
Suppress framework warnings
Use these properties to silence specific warnings:
warnings.suppress.defaultvalue: Suppresses warnings about redundant default value assignments. Default:false.warnings.suppress.sqlInjections.ManageDatabase: Suppresses SQL injection warnings specifically for the ManageDatabase adapter. Default:false.warnings.suppress.sqlInjections.<adapter>: Suppresses SQL injection warnings for a specific adapter that intentionally uses dynamic SQL.
Understand Frank!Framework monitoring core concepts
The monitoring system uses the following components to manage operational alerts:
- Monitor: A named state that is either raised or not raised, scoped to a single configuration.
- Trigger: Changes the monitor state. There are two types: Alarm (raises the monitor) and Clearing (clears the monitor).
- Event: A framework occurrence (e.g., Pipe Exception, Receiver Shutdown) that fires a trigger.
- Threshold: The number of events required before a trigger fires.
- Period: The time window (in seconds) within which the threshold must be reached.
- Destination: The action performed when a monitor is raised.
- Tags: Visual classifications including TECHNICAL, FUNCTIONAL, HEARTBEAT, and CLEARING.
Capture and run test reports in Ladybug
To capture a test report:
- In the Debug tab, select a report row.
- Select the uppermost "Pipeline" node in the tree view.
- Choose a stub strategy (e.g., "Never" or "Always").
- Press Copy to capture the report to the Test tab.
To run captured tests:
- Go to the Test tab and press Refresh.
- Select the desired tests and press Run.
- Press Refresh to view results (Green = Pass, Red = Fail).
Use the Compare feature to investigate failures by viewing expected vs. actual results side-by-side with differences highlighted in red.
Manage failed messages using the Error Store
The Error Store uses
<JdbcErrorStorage>to store messages that failed processing, preventing message loss in 'Fire and Forget' patterns. When a message fails, the transaction rolls back and the message is moved to the error store.To manage failed messages in the Frank!Console:
- Navigate to Adapter Status.
- Click the red error store icon (with count badge) next to the adapter's receiver.
- Review the Message ID, Correlation ID, timestamp, and error reason.
- Select messages and click Resend to reprocess them or Delete to remove them.
- Use Resend all or Delete all for bulk operations.
Setup requirements for database-backed storage
To enable the creation of theIBISSTOREtable, the propertyjdbc.migrator.active=truemust be set as an environment or application property. The table is created in the database defined byjdbc.datasource.default.