SAP BDC <=> Snowflake Zero-Copy Integration
Manages the full lifecycle of the SAP BDC <=> Snowflake zero-copy integration and connector: setup, consume, publish, analyze, and troubleshoot.
When to Use
- User asks to create, connect, or enroll an SAP BDC zero-copy connector
- User wants to consume or mount SAP BDC shared data products in Snowflake
- User wants to publish Snowflake data back to SAP BDC as a data product
- User asks to explore, query, or join data from mounted SAP data products
- User needs to troubleshoot SAP BDC connector states, privileges, or connectivity
- Do NOT use for: general Snowflake data sharing (non-SAP), SAP HANA direct connections, or SAP BTP non-BDC services
Prerequisites
- An ORGADMIN must have accepted the SAP® BDC Connect for Snowflake Terms (Admin » Terms » Snowflake Marketplace section in Snowsight). This only needs to be done once per Snowflake organization.
- SAP Business Data Cloud (BDC) setup must be complete
- Role must have
CREATE ZEROCOPY CONNECTOR on the target schema
- For publishing:
CREATE SHARE privilege on the account
Workflow
Step 1: Ask User Intent
Every time this skill is invoked, present this menu:
What would you like to do with the SAP BDC <=> Snowflake zero-copy connector?
1. Create a new zero-copy connector - Set up a new connector and enroll it with SAP BDC
2. Consume shared data products - Mount shared SAP BDC data products as catalog-linked databases in Snowflake
3. Publish a data product - Share a Snowflake database back to SAP BDC as a new data product
4. Analyze shared data - Explore, query, and join data from SAP BDC data products already mounted in Snowflake
5. Troubleshoot - Diagnose and fix connector state errors, privilege issues, and connectivity problems
Route based on selection:
- Option 1 -> Load
create-connector/INSTRUCTIONS.md
- Option 2 -> Load
consume/INSTRUCTIONS.md
- Option 3 -> Load
publish/INSTRUCTIONS.md
- Option 4 -> Load
analyze/INSTRUCTIONS.md
- Option 5 -> Load
troubleshoot/INSTRUCTIONS.md
Connector Quick Reference
Connector States
| State |
Description |
Allowed Actions |
| NEW |
Just created, no connection attempted |
CONNECT, DROP |
| CONNECTING |
Connection in progress (async) |
Wait |
| CONNECTED |
Active connection |
DISCONNECT (must disable share-back and drop CLDs first), create CLDs, publish |
| CONNECT_ERROR |
Connection failed |
CONNECT (retry), DROP |
| DISCONNECTING |
Disconnection in progress (async) |
Wait |
| DISCONNECTED |
Connection dropped |
CONNECT (reconnect), DROP |
| DISCONNECT_ERROR |
Disconnection failed |
DISCONNECT (retry), DROP |
| DELETED |
Connector has been dropped (permanent, no UNDROP) |
None |
Key SQL Commands
| Command |
Purpose |
CREATE ZEROCOPY CONNECTOR <name> PARTNER = SAP_BDC |
Create connector |
SELECT CURRENT_ORGANIZATION_NAME() || '-' || CURRENT_ACCOUNT_NAME() |
Derive account URL for SAP for Me registration |
ALTER ZEROCOPY CONNECTOR <name> CONNECT WITH CONFIG = (INVITATION_LINK = '...') |
Establish connection |
DESC ZEROCOPY CONNECTOR <name> |
Check connector state |
SHOW ZEROCOPY CONNECTORS IN SCHEMA <db>.<schema> |
List all connectors |
SELECT SYSTEM$ZEROCOPY_CONNECTOR_LIST_SHARES('<db>.<schema>.<connector>') |
List available SAP data products |
ALTER ZEROCOPY CONNECTOR <name> SET SHARE_BACK = TRUE |
Enable publishing |
ALTER ZEROCOPY CONNECTOR <name> ADD SHARE <share> |
Associate share for publishing |
ALTER ZEROCOPY CONNECTOR <name> DISCONNECT |
Disconnect (disable share-back and drop CLDs first) |
DROP ZEROCOPY CONNECTOR <name> |
Drop connector (must be NEW/CONNECT_ERROR/DISCONNECT_ERROR/DISCONNECTED) |
Required Privileges
| Privilege |
Scope |
Purpose |
| CREATE ZEROCOPY CONNECTOR |
Schema |
Create connector |
| OPERATE |
Connector |
Connect, disconnect, and publish data product (SYSTEM$SAP_PUBLISH_DATA_PRODUCT) |
| USAGE |
Connector |
Create CLD (also requires CREATE DATABASE on account), add/remove share (also requires OWNERSHIP on share) |
| MODIFY |
Connector |
Set/unset properties (comment, share_back, etc.) |
| MONITOR |
Connector |
Describe connector, show connectors, list shares (any privilege on the connector is sufficient) |
| OWNERSHIP |
Connector |
Rename or drop the connector |
| CREATE DATABASE |
Account |
Create catalog-linked database (also requires USAGE on connector) |
| CREATE SHARE |
Account |
Publish data back to SAP BDC |
Examples
Example 1: Create and enroll a connector
User: $manage-zerocopy-sapbdc create a new zero-copy connector and enroll it with SAP BDC
Assistant: Asks for database/schema/connector name, runs CREATE ZEROCOPY CONNECTOR, provides the account URL for SAP for Me registration, then connects with invitation link.
Example 2: Consume a data product
User: $manage-zerocopy-sapbdc mount the Workforce Persons data product from SAP
Assistant: Lists available shares, creates a catalog-linked database, confirms tables are accessible and semantic views are generated.
Example 3: Publish Snowflake data to SAP
User: $manage-zerocopy-sapbdc publish my ANALYTICS_DB.SALES schema to SAP BDC
Assistant: Enables share-back, validates Iceberg V3 tables, generates MINIMAL CSN Interop v1.0 (SDK-compatible, no options, no reviews), creates share, publishes data product.
Example 4: Troubleshoot
User: $manage-zerocopy-sapbdc my connector is stuck in CONNECT_ERROR
Assistant: Runs DESC ZEROCOPY CONNECTOR, checks privileges, validates invitation link, provides remediation steps.
Stopping Points
- After Step 1: Route to selected sub-skill
Output
Depends on selected use case — see sub-skill outputs.
1---2name: manage-zerocopy-sapbdc3description: Manage the end-to-end lifecycle of the Snowflake and SAP BDC Zero-Copy Integration and connector. Use when: consuming SAP data products in Snowflake, publishing Snowflake databases to SAP BDC with minimal CSN (v1.0, SDK-compatible), analyzing shared SAP data, or troubleshooting SAP BDC connector issues. This version uses MINIMAL CSN generation only (no options, no reviews, no validation loops). Triggers: SAP BDC, SAP connector, minimal CSN, SDK CSN, zerocopy connector, SAP data product, SAP BDC Connect, SAP publish, SAP share, SAP troubleshoot.4---56# SAP BDC <=> Snowflake Zero-Copy Integration78Manages the full lifecycle of the SAP BDC <=> Snowflake zero-copy integration and connector: setup, consume, publish, analyze, and troubleshoot.910## When to Use1112- User asks to create, connect, or enroll an SAP BDC zero-copy connector13- User wants to consume or mount SAP BDC shared data products in Snowflake14- User wants to publish Snowflake data back to SAP BDC as a data product15- User asks to explore, query, or join data from mounted SAP data products16- User needs to troubleshoot SAP BDC connector states, privileges, or connectivity17- Do NOT use for: general Snowflake data sharing (non-SAP), SAP HANA direct connections, or SAP BTP non-BDC services1819## Prerequisites2021- An ORGADMIN must have accepted the SAP® BDC Connect for Snowflake Terms (Admin » Terms » Snowflake Marketplace section in Snowsight). This only needs to be done once per Snowflake organization.22- SAP Business Data Cloud (BDC) setup must be complete23- Role must have `CREATE ZEROCOPY CONNECTOR` on the target schema24- For publishing: `CREATE SHARE` privilege on the account2526## Workflow2728### Step 1: Ask User Intent2930**Every time this skill is invoked**, present this menu:3132```33What would you like to do with the SAP BDC <=> Snowflake zero-copy connector?34351. Create a new zero-copy connector - Set up a new connector and enroll it with SAP BDC362. Consume shared data products - Mount shared SAP BDC data products as catalog-linked databases in Snowflake373. Publish a data product - Share a Snowflake database back to SAP BDC as a new data product384. Analyze shared data - Explore, query, and join data from SAP BDC data products already mounted in Snowflake395. Troubleshoot - Diagnose and fix connector state errors, privilege issues, and connectivity problems40```4142**Route based on selection:**43- Option 1 -> **Load** `create-connector/INSTRUCTIONS.md`44- Option 2 -> **Load** `consume/INSTRUCTIONS.md`45- Option 3 -> **Load** `publish/INSTRUCTIONS.md`46- Option 4 -> **Load** `analyze/INSTRUCTIONS.md`47- Option 5 -> **Load** `troubleshoot/INSTRUCTIONS.md`4849## Connector Quick Reference5051### Connector States52| State | Description | Allowed Actions |53|-------|-------------|-----------------|54| NEW | Just created, no connection attempted | CONNECT, DROP |55| CONNECTING | Connection in progress (async) | Wait |56| CONNECTED | Active connection | DISCONNECT (must disable share-back and drop CLDs first), create CLDs, publish |57| CONNECT_ERROR | Connection failed | CONNECT (retry), DROP |58| DISCONNECTING | Disconnection in progress (async) | Wait |59| DISCONNECTED | Connection dropped | CONNECT (reconnect), DROP |60| DISCONNECT_ERROR | Disconnection failed | DISCONNECT (retry), DROP |61| DELETED | Connector has been dropped (permanent, no UNDROP) | None |6263### Key SQL Commands64| Command | Purpose |65|---------|---------|66| `CREATE ZEROCOPY CONNECTOR <name> PARTNER = SAP_BDC` | Create connector |67| `SELECT CURRENT_ORGANIZATION_NAME() \|\| '-' \|\| CURRENT_ACCOUNT_NAME()` | Derive account URL for SAP for Me registration |68| `ALTER ZEROCOPY CONNECTOR <name> CONNECT WITH CONFIG = (INVITATION_LINK = '...')` | Establish connection |69| `DESC ZEROCOPY CONNECTOR <name>` | Check connector state |70| `SHOW ZEROCOPY CONNECTORS IN SCHEMA <db>.<schema>` | List all connectors |71| `SELECT SYSTEM$ZEROCOPY_CONNECTOR_LIST_SHARES('<db>.<schema>.<connector>')` | List available SAP data products |72| `ALTER ZEROCOPY CONNECTOR <name> SET SHARE_BACK = TRUE` | Enable publishing |73| `ALTER ZEROCOPY CONNECTOR <name> ADD SHARE <share>` | Associate share for publishing |74| `ALTER ZEROCOPY CONNECTOR <name> DISCONNECT` | Disconnect (disable share-back and drop CLDs first) |75| `DROP ZEROCOPY CONNECTOR <name>` | Drop connector (must be NEW/CONNECT_ERROR/DISCONNECT_ERROR/DISCONNECTED) |7677### Required Privileges78| Privilege | Scope | Purpose |79|-----------|-------|---------|80| CREATE ZEROCOPY CONNECTOR | Schema | Create connector |81| OPERATE | Connector | Connect, disconnect, and publish data product (SYSTEM$SAP_PUBLISH_DATA_PRODUCT) |82| USAGE | Connector | Create CLD (also requires CREATE DATABASE on account), add/remove share (also requires OWNERSHIP on share) |83| MODIFY | Connector | Set/unset properties (comment, share_back, etc.) |84| MONITOR | Connector | Describe connector, show connectors, list shares (any privilege on the connector is sufficient) |85| OWNERSHIP | Connector | Rename or drop the connector |86| CREATE DATABASE | Account | Create catalog-linked database (also requires USAGE on connector) |87| CREATE SHARE | Account | Publish data back to SAP BDC |8889## Examples9091### Example 1: Create and enroll a connector92User: `$manage-zerocopy-sapbdc create a new zero-copy connector and enroll it with SAP BDC`93Assistant: Asks for database/schema/connector name, runs CREATE ZEROCOPY CONNECTOR, provides the account URL for SAP for Me registration, then connects with invitation link.9495### Example 2: Consume a data product96User: `$manage-zerocopy-sapbdc mount the Workforce Persons data product from SAP`97Assistant: Lists available shares, creates a catalog-linked database, confirms tables are accessible and semantic views are generated.9899### Example 3: Publish Snowflake data to SAP100User: `$manage-zerocopy-sapbdc publish my ANALYTICS_DB.SALES schema to SAP BDC`101Assistant: Enables share-back, validates Iceberg V3 tables, generates MINIMAL CSN Interop v1.0 (SDK-compatible, no options, no reviews), creates share, publishes data product.102103### Example 4: Troubleshoot104User: `$manage-zerocopy-sapbdc my connector is stuck in CONNECT_ERROR`105Assistant: Runs DESC ZEROCOPY CONNECTOR, checks privileges, validates invitation link, provides remediation steps.106107## Stopping Points108109- After Step 1: Route to selected sub-skill110111## Output112113Depends on selected use case — see sub-skill outputs.