--- name: manage-zerocopy-sapbdc description: >- 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. tools: - snowflake_sql_execute - snowflake_object_search - Bash - Read - Write - Edit - Glob - Grep --- # 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 PARTNER = SAP_BDC` | Create connector | | `SELECT CURRENT_ORGANIZATION_NAME() \|\| '-' \|\| CURRENT_ACCOUNT_NAME()` | Derive account URL for SAP for Me registration | | `ALTER ZEROCOPY CONNECTOR CONNECT WITH CONFIG = (INVITATION_LINK = '...')` | Establish connection | | `DESC ZEROCOPY CONNECTOR ` | Check connector state | | `SHOW ZEROCOPY CONNECTORS IN SCHEMA .` | List all connectors | | `SELECT SYSTEM$ZEROCOPY_CONNECTOR_LIST_SHARES('..')` | List available SAP data products | | `ALTER ZEROCOPY CONNECTOR SET SHARE_BACK = TRUE` | Enable publishing | | `ALTER ZEROCOPY CONNECTOR ADD SHARE ` | Associate share for publishing | | `ALTER ZEROCOPY CONNECTOR DISCONNECT` | Disconnect (disable share-back and drop CLDs first) | | `DROP ZEROCOPY CONNECTOR ` | 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.