Skip to main content
Version: 2.0.0

Transport Across Environments

This document explains the process of transporting CRUD configurations across environments such as DEV, QA and PROD.

Overview

The CRUD Framework is configuration-driven and uses Spring Config Server, YAML named object configurations, XML CRUD mapping files, and environment-specific datasource entries.

The transport process mainly involves moving CRUD YAML files, updating environment-specific URLs and datasource/schema values, updating Config Server paths, and deploying refreshed configurations.

CRUD Configuration Structure

The CRUD Framework configurations are typically maintained under a folder per environment. Example:

itm-java-dev-btp/
├── application.properties
├── crud-named-objects-dev.yml
├── crudConfig-dev.xml
└── customer-crud-dev/
├── crud-named-objects-bpo-dev.yml
└── crud-named-objects-mdg-dev.yml

Purpose of Each File

FilePurpose
application.propertiesDatasource and application configuration
crud-named-objects-*.ymlMain CRUD query configurations
crudConfig-*.xmlRegisters YAML named object files
customer-crud-*/Customer-specific CRUD configurations

Understanding CRUD Named Objects

Example YAML snippet:

namedObjects:

- !!com.crud.loader.model.CrudNamedObjectModel
name: fetchUsers
type: QUERY
query: Select USER_LOGIN_NAME from user_idp_mapping
arguments:

Properties:

  • name: CRUD query identifier
  • type: Query type
  • query: SQL query
  • arguments: Input arguments for the query

CRUD Transport Flow

DEV Configuration
|
v
Copy YAML / XML configurations
|
v
Update environment-specific values
|
v
Commit changes
|
v
Deploy to QA
|
v
Validate queries
|
v
Transport to PROD

DEV to QA Transport

Step 1 — Copy CRUD Files

Copy files from itm-java-dev-btp/ to itm-java-qa/ including:

  • crud-named-objects-*.yml
  • crudConfig-*.xml
  • customer-crud-* folder

Step 2 — Rename Files for QA

Update filenames and XML entries to use QA naming,

e.g. crud-named-objects-dev.ymlcrud-named-objects-qa.yml and crudConfig-dev.xmlcrudConfig-qa.xml.

Step 3 — Update Config Server URLs

Update Config Server references in XML or properties to point to the QA config server and paths. Example DEV entry:

<crudCfg>
<namedObject isReloadable="false">
<namedObjects>
https://cherryworkproducts-config-server.cfapps.eu10-004.hana.ondemand.com/application/default/main/itm-java-dev-btp/crud-named-objects-dev.yml?useDefaultLabel
</namedObjects>
</namedObject>
</crudCfg>

QA example:

<crudCfg>
<namedObject isReloadable="false">
<namedObjects>
https://cherryworkproducts-config-server-qa.cfapps.eu10-004.hana.ondemand.com/application/default/main/itm-java-qa/crud-named-objects-qa.yml?useDefaultLabel
</namedObjects>
</namedObject>
</crudCfg>

Update Customer CRUD Paths

Update customer-named object URLs similarly, e.g. replace .../itm-java-dev-btp/customer-crud-dev/...-dev.yml with the QA path .../itm-java-qa/customer-crud-qa/...-qa.yml.

Update Datasource Configuration

Ensure environment-specific datasource values in application.properties are updated. Example:

DEV:

datasource.list[0].env=itm
datasource.list[0].url=jdbc:sap://<hana-host>:443?currentschema=CW-IWM-DEV
datasource.list[0].username=CW-IWM-DEV

QA:

datasource.list[0].env=itm_qa
datasource.list[0].url=jdbc:sap://<hana-host>:443?currentschema=CW-IWM-QA
datasource.list[0].username=CW-IWM-QA

Database Values to Update

Common values to update during transport:

  • Schema (e.g. CW-IWM-DEVCW-IWM-QA → Production schema)
  • Environment identifier (e.g. itm, itm_qa, itm_prod)
  • Config server paths and CRUD filenames (*-dev.yml*-qa.yml*-prod.yml)

Update Application Properties

Set environment-appropriate properties, for example:

spring.application.name=crud-api-dev-btp

for QA/PROD use crud-api-qa-btp and crud-api-prod-btp respectively.

Validate Query Compatibility

Before transport, validate:

  • Schema and table names
  • Column names
  • HANA-specific SQL compatibility
  • Query syntax and authorization/access

Transport Customer CRUD Configurations

Maintain customer-specific files under separate folders per environment, e.g. customer-crud-dev/, customer-crud-qa/, customer-crud-prod/ with corresponding *-bpo-*.yml and *-mdg-*.yml files.

Common Issues During Transport

  • Incorrect Config Server Path: YAML not loaded — verify URLs, branch names, and filenames.
  • Wrong Schema Name: SQL failures — update current schema and validate DB access.
  • Missing Customer CRUD Files: Named object not found — ensure files are transported and XML mappings updated.
  • Environment Value Not Updated: Wrong datasource selection — update datasource.list[x].env correctly.
  • Use environment-specific naming (e.g. crud-named-objects-dev.yml, *-qa.yml, *-prod.yml).
  • Keep configurations modular: separate common CRUDs, customer CRUDs, and environment-specific CRUDs.
  • Validate thoroughly in DEV, QA, UAT before promoting to PROD.

Summary

The CRUD Framework transport process is configuration-based. Key activities include copying YAML/XML configurations, updating environment-specific URLs and datasource/schema values, updating Config Server references, validating CRUD queries, and deploying refreshed configurations. Proper environment segregation and configuration management improves maintainability, onboarding, and release safety.