Executive Summary
Moving SAP Datasphere content from development to quality assurance and production is often described as a transport activity. In practice, it is a controlled change-management process.
A package may contain views, tables, data flows, Analytic Models and other related objects. Those objects do not exist in isolation. They depend on one another, reference spaces and connections, and may need to be deployed in a specific order. The same logical solution may also use different physical connection names, shared spaces or external schemas in each lifecycle environment.
This becomes more complex when the landscape does not follow a simple one-tenant-per-stage model. A customer may operate DEV and QAS spaces inside a development tenant, then promote the approved package into a PRD space in a separate production tenant. Another customer may use dedicated DEV, QAS and PRD tenants. Some may also need several routes for different business domains or release streams.
ECMT handles lifecycle promotion both within a Datasphere tenant and across Datasphere tenants. It models the allowed transport route, applies environment-specific mappings, compares stored snapshots to discover change, validates the proposed package, analyses dependencies, manages review workflow where configured, and controls the import through to final reconciliation.
The important distinction is that ECMT does not treat a package as an arbitrary export file. A package is a governed release record containing the selected change, required dependencies, route, payload version, review outcome, import plan, execution evidence and audit history.
This article explains the engineering principles behind that process and shows how they are implemented in ECMT.

The Business Problem
A developer may make what appears to be a small change to a single Analytic Model. That model may depend on a fact view, several dimensions, calculated views, a remote table and a connection. A change to one object can therefore imply a much broader deployment scope than its technical name suggests.
A manual transport process typically asks someone to answer several questions:
- Which objects changed?
- Which dependencies must move with them?
- Are any referenced objects already aligned in the target?
- Are any objects missing from the target?
- Do the source and target environments use different connection identifiers?
- Does the target use a different shared space or external schema?
- Which objects can be imported in parallel?
- Which objects must wait for prerequisite deployments?
- Has someone independently reviewed the package?
- What happened if one object failed?
- Can the organisation prove who approved and imported the change?
These questions are manageable for a small proof of concept. They become increasingly difficult in a production landscape with multiple developers, many spaces and regular release cycles.
The main risk is not always a failed import. A more dangerous outcome is a package that imports successfully but is incomplete, references the wrong environment, deploys objects in an unsafe order or cannot later be reconstructed for support or audit purposes.
A governed transport process therefore needs to control four things at the same time:
- Scope — the objects that should be included.
- Context — the lifecycle route and environment-specific mappings.
- Sequence — the order in which objects should be imported and deployed.
- Evidence — the review, execution and audit information retained after the change.
ECMT brings these elements together in one package lifecycle.
Designing the Landscape
There is no single landscape topology that suits every SAP Datasphere customer.
Some organisations use one development tenant containing both DEV and QAS spaces. This can reduce administration and allow teams to separate lifecycle stages through space boundaries. The approved solution is then promoted into a production space in a separate production tenant.
Other organisations use dedicated DEV, QAS and PRD tenants. This provides stronger physical separation but requires more landscape administration and more cross-tenant configuration.
A third variation may include multiple development routes, such as separate finance and HR delivery streams, or routes into regional production tenants.
ECMT separates the logical lifecycle stage from the physical tenant and space. This allows the same transport process to support different deployment models without assuming that DEV, QAS and PRD must each be separate tenants.
In-tenant promotion
An in-tenant route moves content between lifecycle spaces in the same Datasphere tenant. A typical example is:
Development tenant
DEV space → QAS space
Although the source and target are in the same tenant, this should still be treated as a controlled promotion. Space identifiers, shared-space references and dependency availability may differ. The package should still be reviewed, validated, imported and audited.
Cross-tenant promotion
A cross-tenant route moves content from one Datasphere tenant to another. A common hybrid landscape is:
Development tenant Production tenant
DEV space → QAS space PRD space
└────────────→
The first hop remains inside the development tenant. The second crosses into production. ECMT uses the same package lifecycle across both hops while applying the mappings and controls required for each route.
This route-based approach avoids hard-coding a particular landscape design into the transport process. The package follows the configured lifecycle, whether the next destination is another space in the same tenant or a space in a different tenant.

Lifecycle Models, Routes and Governance
A transport route defines an approved movement between a source lifecycle stage and a target lifecycle stage. It establishes where the package starts, where it is allowed to go next, and which configuration should be applied during that promotion.
This matters because a package should not be able to move arbitrarily between environments. A DEV package may be allowed to move to QAS, but not directly to PRD. A separate route may govern the QAS-to-PRD hop, with different reviewers, mappings and controls.
Routes also provide context for validation. ECMT can evaluate the package against the actual source and destination rather than treating the payload as a generic export. That context is used when checking mappings, preparing the hop and creating the import plan.
A well-designed route therefore performs several functions:
- It defines the allowed lifecycle progression.
- It identifies the source and target tenant, stage and space.
- It supplies the environment mappings needed for the hop.
- It provides the context for review and notification.
- It creates an auditable record of how the package moved through the landscape.
The practical recommendation is to configure routes before teams begin building release packages. This exposes missing landscape decisions early rather than discovering them during a production import.
Landscape Mapping
Objects frequently contain references that are correct in development but should not be copied unchanged into quality assurance or production.
A development view may reference a connection called S4DEV. The equivalent production connection may be S4PRD. A model may reference a shared development space that has a different technical identifier in the target environment. An external schema or HDI container may also have a different target name.
ECMT uses mappings associated with the transport route to translate these references during package preparation.
Connection mapping
Connection mapping links a source connection to its destination equivalent. The logical data source remains the same, but the physical identifier changes for the target environment.
This avoids two common problems: importing an object with a development connection reference into production, or requiring developers to maintain separate manually edited versions of the same object.
Shared Space mapping
Shared Space mapping is required when an object in one space depends on content exposed by another space. The source shared space and the destination shared space may not use identical technical identifiers, especially when the route crosses tenants.
ECMT preserves the relationship by replacing the source reference with the mapped destination reference during transport preparation.
External schema mapping
The same principle applies to external schemas and other environment-specific resources. The package remains logically consistent while its destination-specific references are resolved for the selected route.
Mapping is therefore not a cosmetic renaming step. It is part of making the transported object executable in its destination context.

Discovering and Building a Safe Package
The first challenge in package creation is deciding what has actually changed.
ECMT uses stored landscape snapshots to provide a consistent comparison point. The source snapshot represents the state from which the package is built, while the target snapshot provides the baseline against which promotion requirements can be assessed.
This is preferable to building directly from live metadata.
Consider a package build that begins while developers are still working. If ECMT read every object live throughout the build, one object could be changed after another had already been captured. The package would then contain definitions from different points in time. Re-running the same process might produce a different result even though the package name had not changed.
A snapshot provides a stable boundary. It records the source state used for selection and package generation. This supports:
- deterministic package contents
- repeatable build behaviour
- historical comparison
- controlled change discovery
- traceability back to a known landscape state
The comparison can distinguish objects that are new, changed, missing or already aligned. Instead of asking a developer to remember every technical object touched during a change, ECMT presents the observed differences between the source and target baselines.
The user can then filter and review the candidate changes before creating the package.
This does not remove engineering judgement. A changed object may be intentionally excluded from a release, and an unchanged dependency may already be present in the target. The value of snapshot-based discovery is that the decision starts from evidence rather than memory.

Selecting the Initial Package Scope
The Package Builder allows the user to select the objects intended for promotion. The selected objects form the initial scope, not necessarily the final safe package.
This distinction is important. A developer may select an Analytic Model because that is the visible business change. ECMT may determine that the model also requires a changed fact view and a new dimension. Conversely, a related object may not need to move because the target already contains an aligned version.
The initial selection therefore expresses release intent. Validation then tests whether that intent can produce a deployable package.
The Package Builder screenshots show this as a progressive process:
- Discover objects requiring import.
- Select the intended changes.
- Review the selection.
- Validate dependencies and package scope.
- Build the package from the selected snapshot.
This is more reliable than manually assembling a list of technical names in a spreadsheet or relying on a developer to remember the full dependency chain.

Validating the Proposed Package
After selection, ECMT analyses the package to determine whether additional objects are required.
A useful way to think about this process is:
Selected objects
↓
Dependency and target-state analysis
↓
Validated package proposal
The proposal can identify mandatory upstream dependencies that must be included to keep the package deployable. It can also distinguish between objects already aligned in the target and objects that genuinely require promotion.
This reduces two forms of transport error.
The first is under-packaging, where a changed consumer object is moved without a required source or dependency.
The second is over-packaging, where large numbers of unrelated or already aligned objects are included “just to be safe”. Over-packaging increases import duration, review effort and the risk of introducing unintended change.
Package validation should therefore aim for the smallest complete package, not simply the smallest selected list or the largest possible export.
The validation stage also provides the opportunity to identify missing route mappings, naming deviations, destructive changes, dependency gaps and manual checks before the payload is frozen.
Once the package is built, it should represent a stable revision of the proposed change. Subsequent execution should operate against that frozen package rather than a moving development environment.

Preparing a Transport Hop
A package may move through more than one lifecycle hop. The DEV-to-QAS hop and QAS-to-PRD hop can have different targets, mappings, reviewers and execution evidence.
During hop preparation, ECMT creates the destination-specific payload for that route. This is where the package definition is combined with the route context.
Preparation includes activities such as:
- resolving the source and destination for the current hop
- applying connection and Shared Space mappings
- checking required dependencies
- analysing object naming and manual checks
- generating the import sequence
- recording the prepared payload version
- producing a reviewable summary before release
The prepared hop is therefore not merely the original package copied to a new folder. It is a route-specific, versioned deployment payload.
Versioning matters because reviewers need to know exactly what they are accepting. If preparation is repeated after a mapping or dependency issue is corrected, the new payload can be treated as a new version rather than silently replacing the reviewed content.
Dependency-Aware Transport
SAP Datasphere object deployment is fundamentally a graph problem.
If Object B depends on Object A, then A generally needs to exist before B can be successfully deployed. A multi-object package may contain several independent branches, shared prerequisites and multiple levels of dependency.
A simple alphabetical import order cannot represent this structure.
ECMT analyses the dependency graph and derives an execution plan. Objects with no unresolved prerequisites can be made eligible for execution. Objects that depend on unfinished work remain blocked until those prerequisites complete.
This supports a more efficient import model:
- independent objects can execute in parallel
- dependent objects wait for their prerequisites
- serial blockers protect the integrity of the deployment sequence
- failed prerequisites prevent dependent objects from being treated as successfully deployable
Parallel execution is therefore not the same as starting every object at once. It is controlled concurrency within the dependency rules of the package.
This distinction matters for both speed and reliability. A fully sequential import may be unnecessarily slow. Unrestricted parallelism may produce avoidable failures. Dependency-aware execution balances the two.
Cycle Handling
Some deployment cycles occur inside the definition of a single object rather than between several separate objects. A typical example is an SQL View that contains an association back to itself. The association cannot be activated until the target view already exists, but the complete view definition cannot be deployed in one step because that same target is not yet active.
ECMT handles this as a staged deployment condition. It does not endlessly recurse through the self-reference, and it does not simply ignore the association. Instead, it separates the deployable base definition from the part of the definition that must be deferred.
The sequence is:
- Detect the self-reference. ECMT identifies the association or relationship that points back to the object being created.
- Create the base definition. The SQL View is prepared without the circular association so that a valid initial object can be imported.
- Deploy and activate the base view. The object now exists in the target environment and can be referenced.
- Reapply the deferred association. ECMT updates the object definition with the association once its target is available.
- Redeploy and validate the complete definition. The finished view is checked with both its base logic and association active.
This is particularly relevant where a view also acts as a dimension or hierarchy target. The base object must be activated before the relationship that depends on it can be applied. Treating the cycle as a planned multi-stage operation prevents an otherwise valid package from failing merely because the platform cannot create the object and its self-reference simultaneously.

Governing the Release
Technical validation does not replace governance.
Where workflow is configured, ECMT allows the prepared package hop to be sent for review before it can progress to import. The reviewer assesses the frozen payload rather than a general description of the change.
The review can include:
- package contents
- dependencies
- mappings
- naming checks
- destructive changes
- import sequence
- manual acknowledgements
- route and destination
- supporting notes or attachments
The reviewer can accept the package or decline it with a reason. A declined package returns to the team for correction rather than proceeding as though approval had been granted.
This workflow is directly connected to the package import cycle:
Prepare hop
↓
Send for review
↓
Accept or decline
↓
Release for import
↓
Execute import
↓
Finalise
Because the review belongs to the prepared hop and payload version, the decision is tied to the content that will actually be imported. If the package is materially changed and prepared again, the new version should be reviewed in its own context.
Notifications support this process by informing the relevant users when action is required or a lifecycle transition has completed. Reviewers can receive a review request, and package participants can be notified when a package is accepted, declined, imported or finalised.
The benefit is not simply convenience. Notifications reduce the risk that a package sits unnoticed between lifecycle steps, while the package history retains the decision and actor for audit purposes.

Reviewing the Prepared Import
The review stage should allow a technical reviewer to understand the package without reconstructing it from separate tools.
The prepared summary should present the important risks and decisions in one place. This includes what will change, which dependencies have been included, what mappings will be applied, whether any destructive change has been detected and how the objects are expected to execute.
This is also the right point to make manual checks explicit. Not every release condition can be inferred from metadata. A project may require confirmation that a business owner has approved a semantic change, that a source system cutover is complete or that a manual production dependency is available.
Capturing these checks in the package is stronger than leaving them in email or meeting notes because the evidence remains associated with the release record.
Executing the Import
Once the prepared hop is accepted and released, ECMT creates the import run.
The import plan is based on the frozen payload and dependency analysis. The user can select the supported execution mode, such as sequential or parallel, while ECMT continues to enforce dependency constraints.
Sequential execution
Sequential execution processes eligible objects one at a time. This is simple to understand and may be appropriate for small packages, diagnostic imports or environments where controlled pacing is preferred.
Parallel execution
Parallel execution allows multiple independent objects to be processed concurrently. The effective concurrency is still governed by readiness. An object whose prerequisite has not completed does not become eligible merely because another worker is available.
The import screen can therefore show several states at the same time:
- running
- completed
- queued
- blocked
- failed
- awaiting final check
This gives the operator a clear view of what the engine is doing rather than presenting the import as one opaque long-running task.

Import Execution and Exception Handling
A controlled import process needs to make failure visible at object level.
If an object fails, the operator should be able to identify the failed step, understand which dependent objects are blocked and decide whether the run can be resumed after correction. A package should not be marked complete simply because most objects succeeded.
The transport process should distinguish between:
- an object that imported and deployed successfully
- an object that imported but requires deployment
- an object blocked by an unresolved dependency
- an object skipped because a prerequisite failed
- an object requiring manual intervention
- an object that failed during import or deployment
This detail is essential for support. A single package-level “failed” message is not enough to explain the state of the target environment.
ECMT records the progress and result of each object while retaining the package and hop context. This allows the import to be paused, resumed or investigated without losing the relationship between the execution event and the approved package.
Post-Import Reconciliation and Finalisation
An import is not complete merely because the last API request returned successfully.
ECMT performs a final check to reconcile the intended package against the actual execution result. This verifies whether the package objects reached the expected state and identifies any blocked dependencies or outstanding deployment activity.
Finalisation then closes the lifecycle hop and locks the completed package state. The purpose of locking is to preserve the evidence of what was approved and executed. A completed release should not be silently edited after the fact.
An optimised destination snapshot can then be triggered automatically. This is an important operational step because it establishes the newly imported environment as the next comparison baseline.
Without that refresh, a subsequent package comparison could continue to use stale destination metadata and incorrectly report objects as still requiring import.
The completed sequence becomes:
Import execution
↓
Object-level final check
↓
Dependency reconciliation
↓
Package finalisation and lock
↓
Optimised destination snapshot
↓
New comparison baseline

Audit and Operational Evidence
A transport platform should be able to answer questions long after the release has completed.
For example:
- Who created the package?
- Which snapshot was used?
- Which objects were selected manually?
- Which dependencies were added by validation?
- Which route and payload version were used?
- What mappings were applied?
- Who reviewed the package?
- Was it accepted or declined?
- Who started the import?
- Which objects succeeded, failed or were blocked?
- Was the package finalised?
- When was the destination baseline refreshed?
ECMT retains the package history, lifecycle transitions and import evidence so that these questions can be answered from the release record.
This supports project governance, production support, internal controls and formal audit requirements. It also improves handover. A support team receiving an incident does not need to rely solely on the memory of the developer who performed the release.
Auditability is therefore not an additional reporting feature. It is part of the transport design.
Best Practices
A governed transport process still depends on good landscape and modelling discipline.
First, lifecycle stages and routes should be designed before production release activity begins. Retrofitting route governance after many ad-hoc transports can make baseline reconciliation more difficult.
Second, mapping ownership should be clear. Connection and Shared Space mappings are configuration decisions with production impact. They should be reviewed when landscapes change.
Third, package scope should remain focused. A package containing every object in a space may be easier to select, but it is harder to review, slower to import and more difficult to troubleshoot.
Fourth, circular dependencies should be treated as a design signal. ECMT can detect and handle cycles safely, but recurring cycles may indicate that the modelling architecture should be simplified.
Fifth, workflow should reflect the organisation’s actual governance needs. Requiring formal review for every small development hop may create unnecessary delay, while allowing unrestricted production imports may create unacceptable risk. ECMT allows workflow to be configured so the control level can match the route.
Finally, the post-import snapshot should be part of the operating model. Change discovery is only reliable when the target baseline remains current.
Common Mistakes
A common mistake is to assume that exporting the changed object is sufficient. The visible object may depend on several underlying artefacts that also changed.
Another mistake is to use identical technical references in every environment without explicitly managing them. This may work initially but becomes fragile when connection names, spaces or external resources diverge.
A third mistake is to rely on package names and emails as the audit trail. Names describe intent, but they do not prove the exact payload, reviewer decision or object-level execution result.
Teams also sometimes use parallel import as a simple performance switch. Safe concurrency must remain dependency-aware. Starting every object simultaneously can create avoidable deployment failures.
Finally, do not treat a successful import request as the end of the process. Final reconciliation and a refreshed destination snapshot are needed to establish a trustworthy new baseline.
Black Barn Recommendation
Treat SAP Datasphere transport management as an engineering and governance capability, not as an administrative export task.
Start by defining the lifecycle model. Decide which stages exist, which spaces or tenants represent them, and which promotion routes are allowed. Configure connection, Shared Space and external mappings for every route before relying on them during a release.
Build packages from stable snapshots so that release contents remain deterministic. Use change discovery to identify the candidate scope, then allow validation to add required dependencies and remove unnecessary objects.
Where production governance requires independent review, connect workflow directly to the prepared payload version. The reviewer should approve the content that will actually be imported, not a general change description.
Use dependency-aware parallel execution to improve throughput without weakening deployment order. Treat cycles and serial blockers as explicit conditions and retain object-level results for support.
Finally, make final reconciliation and destination snapshot refresh part of the release definition of done.
This creates a transport process that can scale from a simple DEV-to-QAS space promotion to a controlled cross-tenant production release without changing the underlying governance model.
Conclusion
Enterprise SAP Datasphere transport is not fundamentally about moving files. It is about promoting a known and reviewable state through a controlled lifecycle.
The process must understand landscape topology, environment mappings, object dependencies, circular references, workflow decisions and import evidence. It must work whether DEV and QAS are spaces inside one tenant or whether each lifecycle stage resides in a different tenant.
ECMT brings these requirements together through transport routes, snapshot-based change discovery, validated package building, dependency-aware preparation, optional workflow, controlled import execution and final reconciliation.
The result is a repeatable release process in which the organisation can understand what changed, why it moved, how it was transformed, who approved it and what happened in the destination.
That is the difference between performing a transport and managing a release.
Further Reading
SAP documentation
ECMT
Need expert help with SAP Datasphere or SAP Business Data Cloud?
Black Barn provides independent architecture, implementation, training and advisory services for SAP Datasphere, SAP Analytics Cloud and SAP Business Data Cloud.