Quickstart & Basic Usage
Relevant source files
The following files were used as context for generating this wiki page:
Introduction
The FLEXT Tap Oracle WMS is a Singer-compliant tap designed to extract data from Oracle Warehouse Management Systems. It leverages the FLEXT ecosystem to provide a typed, validated, and performance-optimized interface for WMS data extraction. The tap is built on the Singer SDK and integrates with flext-oracle-wms for core API client functionality.
Sources: src/flext_tap_oracle_wms/README.md:12-16, src/flext_tap_oracle_wms/tap.py:32-34
The primary use case involves initializing the FlextTapOracleWms class with a configuration object, validating that configuration, and then performing discovery to generate a Singer-compliant catalog of available WMS entities such as inventory, locations, and orders.
Sources: examples/01_basic_usage.py:21-41, src/flext_tap_oracle_wms/README.md:112-124
Environment Setup
Before executing the tap or running examples, specific environment variables must be configured to point to a valid Oracle WMS instance.
| Variable | Description |
|---|---|
ORACLE_WMS_BASE_URL | The full URL of the Oracle WMS instance (e.g., https://tenant.wms.ocs.oraclecloud.com/env) |
ORACLE_WMS_USERNAME | The username for WMS authentication |
ORACLE_WMS_PASSWORD | The password associated with the WMS user |
Sources: examples/README.md:11-16, examples/01_basic_usage.py:22-26
Programmatic Usage Flow
For developers integrating the tap directly into Python applications, the workflow follows a sequence of initialization, validation, and discovery.
The diagram above illustrates the standard execution flow for programmatically utilizing the Oracle WMS tap.
Sources: examples/01_basic_usage.py:21-48, src/flext_tap_oracle_wms/tap.py:236-241
Configuration Parameters
The FlextTapOracleWmsSettings class manages the configuration and applies business rules.
| Parameter | Type | Default | Description |
|---|---|---|---|
base_url | string | (Required) | Oracle WMS instance URL |
username | string | (Required) | WMS username |
password | string | (Required) | WMS password |
api_version | string | "v1" | WMS API version (e.g., "v10") |
page_size | integer | 100 | Number of records per API request |
verify_ssl | boolean | True | Whether to verify SSL certificates |
include_entities | array | None | Specific entities to discover/extract |
Sources: src/flext_tap_oracle_wms/tap.py:38-55, meltano.yml:104-110, examples/01_basic_usage.py:21-30
Implementation Details
The Tap Class
The FlextTapOracleWms class inherits from SingerTapBase. It acts as a facade for the FlextOracleWms API client.
- Initialization: Accepts either a
FlextTapOracleWmsSettingsobject or a raw dictionary. - Client Lifecycle: The
wms_clientproperty lazily initializes aFlextOracleWmsUtilities.OracleWms.Clientusing the provided settings. - Discovery: The
discover_streams()method calls the WMS API to find available entities and converts them intoFlextTapOracleWmsStreamobjects.
Sources: src/flext_tap_oracle_wms/tap.py:32-34, src/flext_tap_oracle_wms/tap.py:161-180, src/flext_tap_oracle_wms/tap.py:219-234
Sequence of Discovery
The discovery process translates WMS entities into the Singer Protocol.
This sequence diagram shows how the tap coordinates with the underlying API client to perform entity discovery.
Sources: src/flext_tap_oracle_wms/tap.py:186-217, src/flext_tap_oracle_wms/README.md:126-130
Running via CLI
The tap can be executed via the command line using either flext-tap-oracle-wms or tap-oracle-wms.
Basic Discovery Command
To output a Singer catalog to a file:
tap-oracle-wms --config config.json --discover > catalog.json
Sources: pyproject.toml:79-80, src/flext_tap_oracle_wms/README.md:32
Integration with Meltano
The project includes a meltano.yml configuration allowing it to be managed as a Meltano extractor. It supports capabilities such as catalog, discover, and state.
plugins:
extractors:
- name: tap-oracle-wms
namespace: tap_oracle_wms
capabilities:
- catalog
- discover
- state
Sources: meltano.yml:43-52
Conclusion
The Quickstart process for FLEXT Tap Oracle WMS involves setting up environment credentials and utilizing the typed FlextTapOracleWms interface to discover and sync WMS entities. By leveraging the FLEXT core patterns, the tap ensures that data extraction is both strictly typed and compliant with the Singer protocol for seamless integration into ETL pipelines.
Sources: src/flext_tap_oracle_wms/README.md:12-16, examples/01_basic_usage.py:21-48