OIC Lookup tables let you store key-value mappings that your integrations can reference at runtime — without hard-coding values in your mappings or storing them in a database. Used well, they make integrations significantly more maintainable.
What lookup tables are good for
- Code translations — mapping source system status codes to target system equivalents (e.g.
ACTIVE → A,CLOSED → C) - Environment configuration — storing environment-specific values (endpoint URLs, business unit IDs) that differ between dev, test, and production
- Reference data — currency codes, country codes, business unit names
- Feature flags — lightweight toggles for enabling/disabling integration behaviour without code changes
Creating and managing lookup tables
In OIC: Designer → Lookups → Create
Structure your lookup with meaningful domain names (the category) and columns (the lookup dimensions). A currency mapping lookup might have domains per source system and columns SourceCode and FusionCode.
Using lookups in mappings
Reference a lookup in the XSLT mapper using the lookupValue() function:
lookupValue("StatusMap", "SourceStatus", $sourceStatus, "FusionStatus", "UNKNOWN")
Parameters:
- Lookup table name
- Column to search in
- Value to search for
- Column to return
- Default value (critical — always provide one)
Environment-specific configuration pattern
Create a lookup called EnvConfig with a single domain. Store values like:
| Domain | Key | Value |
|---|---|---|
| EnvConfig | NotificationEmail | ops-team@company.com |
| EnvConfig | MaxBatchSize | 500 |
| EnvConfig | TargetBUName | Vision Operations |
Swap the values between environments without touching the integration. This is the cleanest way to manage environment-specific configuration in OIC without separate integration versions.
Limitations to know
- Lookup values are strings only — no native support for numeric or boolean types (cast in your mapper)
- Changes take effect immediately on save — no versioning or rollback
- There’s no audit log of changes — for business-critical lookups, document changes externally
- Large lookup tables (thousands of rows) may have performance implications when referenced in loops