Troubleshooting SAP OData V4 CDS Views Missing from Package Studio
Use this guide when an SAP CDS extraction source expected through the CDI_CDS OData V4 service cannot be found or selected in Nexus Package Studio. The SAP-side setup differs between S/4HANA Cloud Public Edition and customer-managed Private Edition or on-premise systems, so first confirm the SAP product, edition, release, and target tenant/client. If you are unsure which one you have, ask your SAP administrator; the Fiori launchpad by itself does not identify the SAP edition.
This guide covers CDS-based extraction through CDI_CDS. A CDS view exposed as a separate External API or another custom OData service is a different source and is not automatically listed by CDI_CDS.
Understand the two discovery layers
Think of discovery as checking two different lists:
- The OData service catalog is a directory of published OData V4 services. In Public Edition, the
SAP_COM_0181arrangement provides catalog access. It does not grant access to the CDS data. - The CDI provider directory is the list of CDS extraction sources available through CDI. It lists providers, not necessarily every view as a separate catalog service.
In Package Studio, Nexus organizes OData sources as service group → service → version → entity set. An entity set is the collection of rows Nexus can add to a package, and is handled like a table. For a CDI provider, its name is often Facts; always use the entity set actually shown in the provider's metadata.
Start here
Follow these checks in order. Stop when one fails; that tells you which SAP or Nexus administrator to contact.
- How was the view created? In Fiori's Custom CDS Views app, or in ABAP Development Tools (ADT) as a developer-authored
Z*view? Start with the matching instructions in Step 2. - Is the CDI service available? If Package Studio cannot show the CDI service group, follow Step 1.
- Does SAP list the view? Test the CDI
Providersrequest in Step 3 with the same technical user Nexus uses. - Does SAP list the view but Package Studio still cannot add it? Check the entity set and metadata in Step 4, then follow Step 5.
Have this information ready
- The CDS/extractor technical name exactly as SAP shows it. A business label like “Orders for Reporting” is not enough. The extractor name depends on the CDS view type; see Step 3.
- The SAP edition and the exact system/tenant you are checking (development, test, or production).
- The technical communication identity configured for Nexus. This is not necessarily your personal Fiori or SAP Logon user.
- Your Nexus version, shown under Settings → License & Support.
Do not put passwords, private keys, or certificate files in a support ticket.
1. Check the catalog and CDI service availability
SAP Fiori: Public Edition
- In the Fiori launchpad, open Communication Arrangements.
- Find the arrangement for
SAP_COM_0181. Open it and check that it is active, uses the Communication System created for Nexus, and shows an inbound service for the OData V4 catalog. This arrangement lets Nexus list available services; it does not grant permission to read a CDS view. - Find the separate arrangement for
SAP_COM_0531. Open Inbound Services and copy the CDI URLs shown there. These are the URLs to test—do not copy the host from the Communication System's Host Name field, which represents the Nexus side. - In the
SAP_COM_0531arrangement, note the Authorization Group ID. You will compare it with the group and allowlist in the next section. - Confirm the view and its allowlist are deployed in the same target tenant you are testing. A view visible in a development tenant is not automatically available in a test or production tenant.
For the full Public Edition arrangement and allowlist setup, see Connecting to S/4HANA Cloud Public Edition via OData V4.
SAP Logon: customer-managed systems
In SAP S/4HANA Private Edition or on-premise systems where you administer SAP Gateway:
- Sign in to the correct SAP system and client in SAP Logon.
- In the command field, enter
/n/IWFND/V4_ADMINand press Enter. This opens SAP Gateway's OData V4 administration screen. - Choose Publish Service Groups, then Get Service Groups. Find
/IWFND/CONFIG(the catalog service) andCDI_CDS(the CDS extraction service group). If either is not published, follow your SAP administrator's procedure to publish it and verify the system alias/routing. SAP's Gateway example uses aliasLOCAL; for a local Gateway, verify its Local GW setting too. - Follow the SAP instructions for your release about whether the
CDIgroup must also be published. If SAP reports that repositoryCDI_CDSis not assigned to groupCDI_CDS, see SAP KBA 3339952 in SAP for Me.
Do not use /IWFND/V4_ADMIN to administer Public Edition tenants. In Public Edition, use the communication arrangements and inbound service URLs shown in Fiori. For request testing, use an HTTP client with the Communication User and the authentication method configured for that user.
Test catalog access
Use the catalog URL supplied by SAP or by the communication arrangement; do not guess a catalog path. For example, an SAP Gateway V4 catalog URL has this form:
https://<SAP-API-Host>/sap/opu/odata4/iwfnd/config/default/iwfnd/catalog/0002/ServiceGroups?$expand=DefaultSystem($expand=Services)&$top=5
The catalog version (0002 here) can differ by SAP release. In Public Edition, copy the exact URL from SAP_COM_0181 Inbound Services. In customer-managed systems, the catalog service group /IWFND/CONFIG must be published for this endpoint to work; this is separate from publishing CDI_CDS.
In a customer-managed SAP Gateway system, test with /IWFND/GW_CLIENT:
- Enter the relative request path supplied by SAP in the request field.
- Choose HTTP method
GET, then execute the request (usually F8). - Read the HTTP status and response body. Test the catalog first, then the CDI
Providersrequest, and finally the$metadataURL copied from a provider. - Repeat an HTTP test with the Nexus integration identity where possible. A successful call as your own SAP GUI user does not prove that Nexus's technical identity has the same access.
In Public Edition, you usually do not have SAP Logon access to these Gateway transactions. Use the URLs from the Fiori communication arrangements in a browser or an HTTP client with the Communication User's credentials.
If CDI_CDS itself is missing, resolve catalog access or service-group publication before troubleshooting the individual CDS definition.
2. Check whether SAP exposes the CDS view for extraction
SAP Fiori: verify the view and authorization
- In View Browser, search by the technical CDS name. Where available, filter for Data Extraction Enabled Views or the
Analytics.dataExtraction.enabledannotation. - For a view created in Custom CDS Views, open that app and confirm its scenario is Data Extraction, run the check, and publish the view. A draft or unpublished version is not ready for extraction.
- In the target configuration environment, search for and open Define Allowlists for CDS View Extraction. Open the authorization group whose ID you noted in the
SAP_COM_0531arrangement. Check that the technical CDS name is listed. For example, if the arrangement says groupNEXUS_READ, adding the view to some other group does not grant Nexus access. - Check the arrangement's Authorization Group ID character-for-character. If configuration is transported between tenants, confirm both the group and its entries arrived in the target tenant.
If SAP shows Authorization Group must be maintained, see SAP KBA 3118974 in SAP for Me. If the allowlist configuration activity is missing in Public Edition, SAP says inactive scope item Data Protection and Privacy (5LE) can be a cause; see SAP KBA 3781796 in SAP for Me.
Developer-authored Z* CDS views
For a developer-authored ABAP CDS view, the extraction annotation is:
@Analytics.dataExtraction.enabled: true
Inspect the definition in ABAP Development Tools (ADT), activate it, and check that the annotation is permitted for the system's ABAP language version. This annotation means “SAP may expose this view for data extraction”; it does not publish an OData service or guarantee that Nexus can discover it.
Public Edition caveat: do not assume a developer can add this annotation to any custom Z* object. ABAP language-version and released-API restrictions can reject it. For key-user custom views, use the supported Custom CDS Views → Data Extraction scenario instead. SAP documents annotation-release errors for custom ABAP CDS views in KBA 3404120 in SAP for Me.
For example, a developer may create and activate a view named ZC_ORDER_EXTRACT, but Nexus will not find it merely because its name begins with Z. The view must be eligible for SAP extraction, exposed through CDI_CDS, and accessible to the integration identity. In Public Edition, a key user instead creates the extraction view in the Custom CDS Views app; they do not necessarily edit the ABAP annotation directly.
3. Query CDI provider discovery directly
Use the CDI endpoint from the SAP arrangement or system configuration and authenticate as the Nexus integration identity. For Public Edition, SAP documents this provider-directory pattern:
https://<SAP-API-Host>/sap/opu/odata4/sap/cdi/default/sap/cdi/0001/Providers
Identify the extractor name first
The CDS definition name, ODP extractor name, CDI provider URL, and OData entity set are different identifiers. Search for the technical extractor name SAP assigns, not only the business label:
- Classic CDS view (
DEFINE VIEW): the ODP extractor name is the generated SQL view name from@AbapCatalog.sqlViewName, plus a suffix for the data category. - CDS view entity (
DEFINE VIEW ENTITY): use the CDS entity name; view entities do not have a generated SQL view name. - Key-user CDS view: use the technical name shown in the Custom CDS Views app or View Browser.
For example, SQL view CMMPURORDHIST with category #FACT has the ODP extractor name CMMPURORDHIST$F (fact/transaction data). Other category suffixes include $P (master-data attributes), $T (text), $H (hierarchy), and $E (other data categories). SAP's CDS extraction naming guidance describes these suffixes.
For a CDS view entity named ZI_OrderItem, SAP's extraction name is the entity name because there is no generated SQL view name.
For an SAP-delivered example, the CDI path illustrates another naming layer:
| Identifier | Example |
|---|---|
| CDS view name shown in SAP documentation | C_BillingDocItemBasicDEX_1 |
| Provider path segment returned by CDI | c_billingdocitembasicdex_1 |
| OData entity set inside the provider | Facts |
The lower-case provider segment is part of the provider URL; Facts is the table-like entity set you select in Package Studio. The CDS name, extractor name, provider path, and entity set are not interchangeable.
The $ in an ODP category suffix is unrelated to OData system paths such as $metadata and query options such as $expand.
Send the Providers request
Use the Providers URL from the pattern above. In a customer-managed system, you can send the request in /IWFND/GW_CLIENT by entering the path after the host, choosing GET, and pressing F8. In Public Edition, use the full URL in Postman or another approved HTTP client:
- Create a request and choose GET.
- Paste the full
ProvidersURL, replacing<SAP-API-Host>with the host from theSAP_COM_0531Inbound Services. - Under Authorization, use the method configured for the Communication User (for example, Basic Auth with that user's name and password, or the assigned client certificate).
- Choose Send. Search the response for the extractor name identified above. A
200 OKresponse means the request worked; it does not mean that every CDS view is available.
Never use your personal Fiori password unless it is explicitly the configured Communication User credential, and never include credentials or certificate material in a screenshot or support ticket.
If the response contains @odata.nextLink, request that URL too and repeat until there are no more pages. If the extractor is absent from all pages, SAP has not offered it to this user through CDI; revisit extraction eligibility, activation/publication, target tenant/client, authorization group/allowlist, release support, and service-group availability. When SAP returns the provider, use its exact URL in the following steps. If SAP returns an ODP/provider error, record the exact error and timestamp for the SAP administrator; that may be an extraction-provider problem rather than a Nexus catalog problem.
4. Inspect the provider's $metadata
Request the service root and its $metadata using the provider URL returned by SAP. $metadata is the service's schema: it tells Nexus which entity sets and fields exist and what operations the service advertises. Confirm it contains the expected service version, fields, keys, and entity set. CDI extraction providers commonly expose the Facts entity set; use the name actually declared by the target service.
For example, if Providers returns this service root:
https://<SAP-API-Host>/sap/opu/odata4/sap/cdi_cds/cdi_cds/sap/c_billingdocitembasicdex_1/0001/
append /$metadata to get the metadata URL:
https://<SAP-API-Host>/sap/opu/odata4/sap/cdi_cds/cdi_cds/sap/c_billingdocitembasicdex_1/0001/$metadata
The entity data URL in this example is the same service root followed by /Facts. $metadata returns the schema; it is not the provider or the data entity set.
Check read access on the entity set:
Org.OData.Capabilities.V1.ReadRestrictionsmust not declareReadableasfalse; if the restriction or property is omitted, OData defines the default as readable.
For Nexus to identify the entity set as CDC-capable, check for Org.OData.Capabilities.V1.ChangeTracking with Supported=true. If change tracking is absent or false, the entity may still be selectable for a full extraction, but Package Studio will not identify it as CDC-capable.
Schematic example of the relevant metadata annotations. Do not paste the Target value literally; use the target name shown in the service's own $metadata:
<Annotations Target=".../Facts">
<Annotation Term="Org.OData.Capabilities.V1.ReadRestrictions">
<Record>
<PropertyValue Property="Readable" Bool="true" />
</Record>
</Annotation>
<Annotation Term="Org.OData.Capabilities.V1.ChangeTracking">
<Record>
<PropertyValue Property="Supported" Bool="true" />
</Record>
</Annotation>
</Annotations>
Metadata advertises a capability; it does not prove that a delta run succeeds. For runtime validation, complete the initial request/run and confirm SAP returns an @odata.deltaLink. The key-user Data Extraction scenario in the Custom CDS Views app supports full extraction only; do not expect CDC for that view type.
5. Check Package Studio and SAP Gateway errors
If the provider appears in SAP's Providers response and its $metadata is readable:
- Confirm the Nexus connection points to the correct SAP host and OData V4 setup.
- In Package Studio, expand the service group, service, and version, then select the entity set. Search by the entity-set name or use the full provider/entity-set path returned by SAP rather than searching only for the business label or
Z*name. - Confirm the deployed Nexus version supports SAP OData extraction. OData extraction support was introduced in Nexus
1.20.425; SAP S/4HANA Cloud Public Edition is supported starting with Nexus1.21. - If SAP responds with errors, use
/IWFND/ERROR_LOGand, where applicable,/IWBEP/ERROR_LOGin SAP Logon to inspect Gateway/backend failures./IWFND/GW_CLIENTcan reproduce metadata and provider requests. These logs are for customer-managed systems; Public Edition users should provide SAP support with the request URL, timestamp, response, tenant, and communication arrangement details.
If the service and metadata work with the integration identity but Package Studio still omits the entity set, capture the exact service root, entity-set path, Nexus version, and response metadata for Nexus support.
References
- SAP Help: Integrating CDI
- SAP Help: Integrating OData Metadata (
SAP_COM_0181) - SAP Community: OData V4 Service Catalog and catalog URL example
- SAP Help: Publish an OData V4 Service Group
- SAP Help: SAP Gateway Client
- SAP Help:
Analytics.dataExtraction.enabled - SAP Community: Finding the right CDS Extractor in SAP S/4HANA
- SAP Community: Data Extraction via the Custom CDS Views app
- OData Capabilities Vocabulary