Now accepting guest editorial from SAP, Oracle, Workday and ServiceNow practitioners.Pitch a guide
The Sign-Off Table

Lesson 4 of 5

Content types: moving apps and integration content

10 min

SAP Cloud Transport Management transports content of different kinds, which SAP calls content types. The content type is chosen on each target node and tells the service how the import will be deployed. SAP's documentation lists four.

Content typeWhat it isExample at Contoso
Multitarget Application (MTA)A .mtar archive moved between Cloud Foundry spaces in BTP subaccounts. Content created in some cloud applications is also packaged as MTA.The fleet order status app; the Lakeside purchase order integration flow
BTP ABAPA reference to ABAP objects in a Git repository (software component, commit, branch or tag), pulled into a target SAP BTP ABAP environmentA future warranty app built in the ABAP environment
Application ContentAn archive in an application-specific format, deployable only if the target application's deployment service can handle itAnalytics or launchpad content
SAP HANA XS classic delivery unitsDelivery units between SAP HANA instances assigned to cloud subaccountsNot used; legacy

Content types supported by SAP Cloud Transport Management.

Ways content enters the service

Content reaches the first node in one of three ways: directly from the application's design-time tool, uploaded from a continuous integration pipeline, or uploaded by hand from a local file system (which is why Allow Upload to Node exists). SAP's supported-content table lists, per service, whether transport can be triggered from the design-time tool, whether the SAP Content Agent service is used, and whether a pipeline upload is available. A few examples from that table: MTAs from Cloud Foundry Java, Node.js and HTML5 apps are transported as part of the application and can come from a pipeline; SAP Build Apps and SAP Build Process Automation projects are MTAs; SAP Analytics Cloud content network packages, SAP Build Work Zone content and SAP Datasphere packages are Application Content.

Integration content

SAP Cloud Integration content is packaged and transported as an MTA. In Cloud Foundry, the SAP Content Agent service assembles the integration content and exports it to the transport service, and transports can be started from the Cloud Integration interface once it is enabled for transport. One detail trips people up: when exporting through the Content Agent service, the name of the source node must match the source system ID set in the destination used for export, and it is case-sensitive.

  1. Change the integration flowIn the development Cloud Integration tenant, adjust the Lakeside purchase order flow
  2. Transport the packageStart the transport; the Content Agent service assembles an MTA
  3. Export to the source nodeThe MTA arrives at the source node, which must allow uploads and match the source system ID
  4. Import into testThe test node's destination deploys the content to the test Cloud Integration tenant
  5. Test end to endA purchase order from CMQ client 100 reaches the Lakeside test endpoint
  6. Forward and import into productionAfter sign-off, the same request moves to production
Transporting an integration flow from development to production.
The Sign-Off Table · thesignofftable.com/academy/sap-rel-203

Reading import statuses

StatusMeaningWhat to do
InitialAdded to the node; import not startedWait for the scheduled or manual import
RunningImport in progressMonitor
Succeeded / WarningImported; warnings occurred for WarningRead warnings, then test
SkippedIntentionally skipped, for example on a virtual node; treated as successConfirm it was expected
ErrorImported, but errors for one or more objects; partially imported. Reimporting the same content will not fix it. Excluded from Import All until reset.Fix in development, export a new request; reset only for a deliberate retry
FatalNothing imported, for example wrong destination or failed authentication, or a rollbackFix the setup, then reimport; included in Import All
RepeatableWas Error, Skipped or Succeeded and was manually reset to import againImport deliberately, with a reason

Import statuses in a node queue, as documented by SAP (abridged).

  1. Did anything get imported?No (Fatal) → fix the destination, authentication or target, then reimport · Yes → continue
  2. Did errors occur for some objects (Error)?Yes → read the log; if the content is at fault, fix it in development and export a new request · No → continue
  3. Were there only warnings (Warning)?Yes → read them, record why they are acceptable, then test · No → Succeeded or Skipped: test
What to do after an import, by status.
The Sign-Off Table · thesignofftable.com/academy/sap-rel-203

Stage-specific configuration

The same archive must work in test and in production, yet some values differ by stage: URLs, destinations, memory sizes. For MTAs, SAP lets you upload MTA extension descriptors to a node so that stage-specific parameters are applied at import without changing the archive. Credentials are another matter: plan for them to be maintained in each target, not carried in the transported content. Priya's test cases include a check that the test import used the test values, and the production smoke test checks the production ones.

What would you do?

The Lakeside purchase order flow is imported into the test node with status Error. A colleague suggests resetting it and importing again. What is the right response?

Key points
  • Content types: Multitarget Application, BTP ABAP references, Application Content, SAP HANA XS classic delivery units.
  • Content enters from design-time tools, CI pipelines or manual upload.
  • SAP Cloud Integration content travels as MTA, assembled by the SAP Content Agent service in Cloud Foundry.
  • Error means a content problem (fix and re-export); Fatal means nothing was imported (fix setup, reimport).
  • Use MTA extension descriptors for stage-specific parameters; manage credentials per target.

Check your understanding · not graded

Lesson check

  1. 1. How is SAP Cloud Integration content transported with CTMS?

  2. 2. What does a BTP ABAP content type carry?

  3. 3. Which status means a partial import caused by the content itself?

  4. 4. What are MTA extension descriptors used for?