Docs / Reference

Discovery API

The Discovery API is a read-only OData V2 interface that exposes ASAPIO Integration Add-on configuration to external tools. It allows systems such as the Whitepaper.id Integration Cockpit and the ASAPIO Event Studio Landscape Explorer to discover installed connector types, configured connections, and inbound/outbound interfaces — including status flags and endpoint details.

The API runs directly on your SAP instance alongside the add-on. It provides no write capability; all configuration changes must be made through the standard add-on tools.

Availability

The Discovery API is included in ASAPIO Integration Add-on release 9.32607 (July 2026) and later. For earlier releases, a separate installation file is available — contact ASAPIO support to request it.

Enabling the OData Service

Prerequisites

Activation Steps

  1. Open transaction /IWFND/MAINT_SERVICE (Activate and Maintain Services).
  2. Click Add Service.
  3. Enter System Alias LOCAL (for embedded Gateway).
  4. Search for the Discovery API technical service name and select it.
  5. Click Add Selected Services, assign a package and transport request, and confirm.
  6. Verify the service is active in /IWFND/MAINT_SERVICE and SICF.

Test activation using the SAP Gateway Client or a browser:

GET /sap/opu/odata/<namespace>/<SERVICE_NAME>/$metadata

A 200 OK response with EDMX metadata confirms the service is reachable.

Authorization

All endpoints require display authorization for ASAPIO configuration: authorization object /ASADEV/CU, activity 03. A missing authorization returns a business error. Access restriction per user or per instance is handled externally — not within the service itself.

API Reference

Connectors

GET /ConnectorSet — List installed connectors

Returns all installed connector types. Non-installed connectors are excluded. Supports $filter by ConnectionId or InterfaceId, and $top / $skip for paging. Results are sorted by ConnectorId.

GET /ConnectorSet('{ConnectorId}') — Single connector

Returns a single connector by ID. Returns 404 Not Found if the connector is not present in any outbound or inbound source.

Connections

GET /ConnectionSet — List connections

Returns all configured connections. HTTP destinations are enriched with Hostname, Port, and SSL via RFC_READ_HTTP_DESTINATION. Returns a business error (not an empty list) if no connections exist.

GET /ConnectorSet('{ConnectorId}')/ToConnections — Connections by connector

Navigation property — returns all connections using a specific connector type.

Interfaces

GET /InterfaceSet — List all interfaces

Returns all inbound and outbound interfaces. Supports $filter by ConnectionId (recommended for large landscapes) or InterfaceId. Results are sorted by instance ASC, object ASC, direction DESC.

GET /ConnectionSet('{ConnectionId}')/ToInterfaces — Interfaces by connection (preferred)

Returns interfaces scoped to a single connection. Use this to reduce response size in landscapes with many interfaces.

GET /InterfaceSet(InterfaceId='{InterfaceId}',ConnectionId='{ConnectionId}') — Single interface

Returns a single interface by composite key. Returns 404 Not Found if the interface does not exist.

Example response:

{
  "d": {
    "InterfaceId": "SALESORDER_OUT",
    "ConnectionId": "PRD_AZURE",
    "Direction": "Outbound",
    "MessageType": "BUS2032",
    "lastRun": "2026-04-24T09:15:00Z",
    "isActive": true,
    "Events": "CREATED,CHANGED",
    "HeaderAttributes": "TOPIC=sales-orders",
    "LoadType": "I",
    "DataLayer": "ASAPIO Payload",
    "ASAPIOPayload": "ZACI_SALESORDER",
    "ASAPIOPayloadVersion": "0001",
    "TableView": ""
  }
}

isActive determination:

  1. Checks classic BOR event linkage via SWFDEVTYPSWFDEVENA; if enabled, returns true.
  2. If unmatched and /ASADEV/DATA_LOG exists, checks the Event Studio runtime log for an active record matching ConnectionId + InterfaceId.
  3. RAP linkages created outside Event Studio are not currently reflected in isActive.

Schema Reference

Connector (ConnectorSet)

FieldTypeNotes
ConnectorIdStringUnique connector type identifier
isInstalledBooleanAlways true; non-installed connectors are excluded from results
isActiveBooleantrue if at least one connection uses this connector type
HeaderAttributesStringComma-separated NAME=VALUE pairs
LoadTypeStringOutbound only: I (Incremental), P (Packed), F (Full load)
DataLayerStringOutbound only: ASAPIO Payload, Table/View, or Custom
ASAPIOPayloadString (32)Outbound: payload view name
ASAPIOPayloadVersionString (16)Outbound: payload version
TableViewString (32)Outbound: table or view name

Connection (ConnectionSet)

FieldTypeNotes
ConnectionIdString (15)ASAPIO instance identifier; primary navigation anchor
ConnectionTypeStringConnector type used by this connection
RFCDestStringRFC destination name
HostnameStringHTTP destinations only
PortStringHTTP destinations only
SSLBooleanHTTP destinations only

Interface (InterfaceSet)

FieldTypeNotes
InterfaceIdString (30)Interface identifier
ConnectionIdString (15)Parent connection; primary filter key
DirectionStringInbound or Outbound
MessageTypeStringSAP message or event type
lastRunStringTimestamp of last execution
isActiveBooleanActivation status (see determination logic above)
EventsStringComma-separated linked events; always populated regardless of isActive
HeaderAttributesStringComma-separated NAME=VALUE pairs; always populated
LoadTypeStringOutbound only: I, P, or F
DataLayerStringOutbound only: ASAPIO Payload, Table/View, or Custom
ASAPIOPayloadString (32)Outbound: payload view name
ASAPIOPayloadVersionString (16)Outbound: payload version
TableViewString (32)Outbound: table or view name

Usage Notes