1<!doctype html> 2<html lang="en" dir="ltr" class="plugin-pages plugin-id-default" data-has-hydrated="false"> 3<head> 4<meta charset="UTF-8"> 5<meta name="generator" content="Docusaurus v3.9.2"> 6<title data-rh="true">ERPL â DuckDB for SAP, Microsoft 365, and Dynamics 365</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://erpl.io/img/erpl-social-card.png"><meta data-rh="true" name="twitter:image" content="https://erpl.io/img/erpl-social-card.png"><meta data-rh="true" property="og:url" content="https://erpl.io/"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docusaurus_tag" content="default"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docsearch:docusaurus_tag" content="default"><meta data-rh="true" property="og:title" content="ERPL â DuckDB for SAP, Microsoft 365, and Dynamics 365"><meta data-rh="true" name="description" content="ERPL is the DuckDB extension family for enterprise data integration â SAP, Microsoft 365, Dynamics 365, and open standards, all queryable from one SQL engine."><meta data-rh="true" property="og:description" content="ERPL is the DuckDB extension family for enterprise data integration â SAP, Microsoft 365, Dynamics 365, and open standards, all queryable from one SQL engine."><link data-rh="true" rel="icon" href="/img/favicon.ico"><link data-rh="true" rel="canonical" href="https://erpl.io/"><link data-rh="true" rel="alternate" href="https://erpl.io/" hreflang="en"><link data-rh="true" rel="alternate" href="https://erpl.io/" hreflang="x-default">
6<script data-rh="true">function insertBanner(){var n=document.createElement("div");n.id="__docusaurus-base-url-issue-banner-container";n.innerHTML='\n<div id="__docusaurus-base-url-issue-banner" style="border: thick solid red; background-color: rgb(255, 230, 179); margin: 20px; padding: 20px; font-size: 20px;">\n <p style="font-weight: bold; font-size: 30px;">Your Docusaurus site did not load properly.</p>\n <p>A very common reason is a wrong site <a href="https://docusaurus.io/docs/docusaurus.config.js/#baseUrl" style="font-weight: bold;">baseUrl configuration</a>.</p>\n <p>Current configured baseUrl = <span style="font-weight: bold; color: red;">/</span> (default value)</p>\n <p>We suggest trying baseUrl = <span id="__docusaurus-base-url-issue-banner-suggestion-container" style="font-weight: bold; color: green;"></span></p>\n</div>\n',document.body.prepend(n);var e=document.getElementById("__docusaurus-base-url-issue-banner-suggestion-container"),s=window.location.pathname,o="/"===s.substr(-1)?s:s+"/";e.innerHTML=o}document.addEventListener("DOMContentLoaded",function(){void 0===window.docusaurus&&insertBanner()})</script>
6<link rel="alternate" type="application/rss+xml" href="/blog/rss.xml" title="ERPL â DuckDB for SAP, Microsoft 365, and Dynamics 365 RSS Feed"> 7<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="ERPL â DuckDB for SAP, Microsoft 365, and Dynamics 365 Atom Feed"> 8 9 10 11 12 13
14<script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],window.gtag=gtag,gtag("consent","default",{analytics_storage:"denied",ad_storage:"denied",ad_user_data:"denied",ad_personalization:"denied"})</script>
vendor: 71 bytes, lines 14-15
14 15<script async="true" src="https://www.googletagmanager.com/gtag/js?id=
15G-70FZ251V4L
vendor: 12 bytes, line 15
15"></script>
16<script>gtag("js",new Date),gtag("config","G-70FZ251V4L",{anonymize_ip:!0})</script>
16<link rel="stylesheet" href="/assets/css/styles.d9309d31.css">
17<script src="/assets/js/runtime~main.2808449f.js" defer="defer"></script>
vendor: 1 bytes, line 17
17
18<script src="/assets/js/main.02f44c4e.js" defer="defer"></script>
18 19</head> 20<body class="navigation-with-keyboard"> 21<svg style="display: none;"><defs> 22<symbol id="theme-svg-external-link" viewBox="0 0 24 24"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></symbol> 23</defs></svg>
24<script>document.documentElement.setAttribute("data-theme","light"),document.documentElement.setAttribute("data-theme-choice","light"),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.setAttribute(a,e)}}catch(t){}}()</script>
24<div id="__docusaurus"><link rel="preload" as="image" href="/img/erpl-logo.png"><link rel="preload" as="image" href="/images/icons/rfc.png"><link rel="preload" as="image" href="/images/icons/bics.png"><link rel="preload" as="image" href="/images/icons/odp.png"><link rel="preload" as="image" href="/images/icons/delta.png"><link rel="preload" as="image" href="/images/icons/ecosystem.png"><link rel="preload" as="image" href="/images/icons/insight.png"><link rel="preload" as="image" href="/images/icons/idoc.png"><link rel="preload" as="image" href="/images/icons/engineering.png"><link rel="preload" as="image" href="/images/icons/m365-sharepoint.png"><link rel="preload" as="image" href="/images/icons/m365-excel.png"><link rel="preload" as="image" href="/images/icons/m365-teams.png"><link rel="preload" as="image" href="/images/icons/m365-outlook.png"><link rel="preload" as="image" href="/images/icons/m365-planner.png"><link rel="preload" as="image" href="/images/icons/m365-entra.png"><link rel="preload" as="image" href="/images/icons/dyn365-bc.png"><link rel="preload" as="image" href="/images/icons/dyn365-dataverse.png"><link rel="preload" as="image" href="/images/icons/stream.png"><link rel="preload" as="image" href="/images/icons/replicate.png"><link rel="preload" as="image" href="/images/icons/table.png"><link rel="preload" as="image" href="/images/icons/query.png"><div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Skip to main content</a></div><nav aria-label="Main" class="theme-layout-navbar navbar navbar--fixed-top"><div class="navbar__inner"><div class="theme-layout-navbar-left navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/"><div class="navbar__logo"><img src="/img/erpl-logo.png" alt="ERPL Logo" class="themedComponent_mlkZ themedComponent--light_NVdE"><img src="/img/erpl-logo.png" alt="ERPL Logo" class="themedComponent_mlkZ themedComponent--dark_xIcU"></div><b class="navbar__title text--truncate">ERPL</b></a><a class="navbar__item navbar__link" href="/docs/start_here">Documentation</a><a class="navbar__item navbar__link" href="/blog">Blog</a></div><div class="theme-layout-navbar-right navbar__items navbar__items--right"><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">GitHub</a><ul class="dropdown__menu"><li><a href="https://github.com/datazoode/erpl" target="_blank" rel="noopener noreferrer" class="dropdown__link">erpl<svg width="12" height="12" aria-label="(opens in new tab)" class="iconExternalLink_nPIU"><use href="#theme-svg-external-link"></use></svg></a></li><li><a href="https://github.com/DataZooDE/erpl-idoc" target="_blank" rel="noopener noreferrer" class="dropdown__link">erpl-idoc<svg width="12" height="12" aria-label="(opens in new tab)" class="iconExternalLink_nPIU"><use href="#theme-svg-external-link"></use></svg></a></li><li><a href="https://github.com/datazoode/erpl-odata" target="_blank" rel="noopener noreferrer" class="dropdown__link">erpl-odata<svg width="12" height="12" aria-label="(opens in new tab)" class="iconExternalLink_nPIU"><use href="#theme-svg-external-link"></use></svg></a></li><li><a href="https://github.com/datazoode/erpl-adt" target="_blank" rel="noopener noreferrer" class="dropdown__link">erpl-adt<svg width="12" height="12" aria-label="(opens in new tab)" class="iconExternalLink_nPIU"><use href="#theme-svg-external-link"></use></svg></a></li></ul></div><a class="navbar__item navbar__link navbar-cta-button" href="/forms/demo">Book Demo</a><div class="navbarSearchContainer_Bca1"></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="theme-layout-main main-wrapper mainWrapper_z2l0"><header class="hero hero--primary heroBanner_qdFl"><div class="heroContent_mKPX"><div class="heroIntro__lSt"><div class="claimsContainer_Wc1G"><h1 class="claimsText_BSUP"><div class="line__z3_"></div></h1></div><p class="mainSubtitle_LHwl">DuckDB extensions for SAP, Microsoft 365, Dynamics 365, and beyond</p></div><div class="productSelector_Rm3U" role="tablist" aria-label="ERPL extensions"><button type="button" role="tab" aria-selected="false" class="productTile_mliB accentYellow_DNEa"><span class="tileIcon_jS7v">ð¢</span><span class="tileText_ptoc"><span class="tileTitle_RBaM">ERPL</span><span class="tileSubtitle_Wr3N">On-Premise SAP</span></span></button><button type="button" role="tab" aria-selected="false" class="productTile_mliB accentBlue_bsJd"><span class="tileIcon_jS7v">ð</span><span class="tileText_ptoc"><span class="tileTitle_RBaM">ERPL-IDoc</span><span class="tileSubtitle_Wr3N">SAP IDoc Files</span></span></button><button type="button" role="tab" aria-selected="true" class="productTile_mliB accentTeal_mBUf tileActive_npsO"><span class="tileIcon_jS7v">âï¸</span><span class="tileText_ptoc"><span class="tileTitle_RBaM">ERPL-OData</span><span class="tileSubtitle_Wr3N">Cloud & Enterprise SaaS</span></span></button><button type="button" role="tab" aria-selected="false" class="productTile_mliB accentPurple_OjbZ"><span class="tileIcon_jS7v">ð¤</span><span class="tileText_ptoc"><span class="tileTitle_RBaM">ERPL-ADT</span><span class="tileSubtitle_Wr3N">AI Toolkit for ABAP</span></span></button></div><div class="stage_l0lb accentTeal_mBUf"><div class="stageInfo_E0PW"><h2 class="stageTitle_jU9x"><span class="stageTitleIcon_tcb2">âï¸</span>ERPL-OData</h2><p class="stageSubtitle_RDL_">Cloud & Enterprise SaaS</p><p class="stageDescription_telS">One extension for SAP cloud, Microsoft 365, Dynamics 365, and Delta Sharing.</p><div class="featureTags_AAUD"><span class="tag_Gyxr">SAP Cloud</span><span class="tag_Gyxr">M365</span><span class="tag_Gyxr">Dyn365</span><span class="tag_Gyxr">Delta</span></div><a class="button button--primary button--lg stageButton_zg2k" href="/docs/get_started/quickstart-erpl-odata">Install ERPL-OData</a></div><div class="terminalBlock_ZEG8"><div class="terminalHeader_SpCi"><span class="terminalDot_eiCh"></span><span class="terminalDot_eiCh"></span><span class="terminalDot_eiCh"></span><span class="terminalTitle_S68H">terminal</span><span class="frameLabel_MnYW">Installation</span></div><div class="terminalContent_gpgf"><pre class="terminalCode_gcsG prism-code language-sql" style="color:#9CDCFE;background-color:#1E1E1E;background:transparent"><div class="token-line" style="color:#9CDCFE"><span class="token plain">INSTALL </span><span class="token string" style="color:rgb(206, 145, 120)">'erpl_odata'</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(86, 156, 214)">FROM</span><span class="token plain"> </span><span class="token string" style="color:rgb(206, 145, 120)">'http://get.erpl.io'</span><span class="token punctuation" style="color:rgb(212, 212, 212)">;</span><span class="token plain"></span></div><div class="token-line" style="color:#9CDCFE"><span class="token plain"></span><span class="token keyword" style="color:rgb(86, 156, 214)">LOAD</span><span class="token plain"> </span><span class="token string" style="color:rgb(206, 145, 120)">'erpl_odata'</span><span class="token punctuation" style="color:rgb(212, 212, 212)">;</span></div></pre></div><div class="progressDots_ipj0"><button class="progressDot_x1gx activeDot_D9oQ" aria-label="Frame 1"></button><button class="progressDot_x1gx" aria-label="Frame 2"></button><button class="progressDot_x1gx" aria-label="Frame 3"></button><button class="progressDot_x1gx" aria-label="Frame 4"></button></div></div></div></div></header><main>
24<section class="featured_dlyx"><div class="container"><a class="card_v2mS" href="/blog/sap-rfc-over-websockets"><div class="badge_jjpT">New · From the blog</div><div class="body_Kgkv"><h2 class="title_Bp46">SAP RFC over WebSockets (wsRFC)</h2><p class="desc_zRWd">Part 2: the same pure-Rust RFC, now over a TLS WebSocket â the wire protocol, the HTTP upgrade, and client authentication (X.509 certificate, password, or SSO2 logon ticket), with no SAP SDK, no ICU, and no CommonCryptoLib in the path.</p></div><span class="cta_uQyt">Read the post â</span></a></div></section><section class="features_t9lD"><div class="container"><div class="row"><div class="col col--12"><div class="text--center margin-bottom--lg"><h2>One DuckDB, every enterprise system</h2><p class="sectionSubtitle_KlzO">Four ecosystems, one extension family â read, write, attach, and replicate from SQL.</p></div></div></div><div class="row"><div class="col col--12"><div class="extensionSection_m6SI sapSection_DnmS"><div class="extensionHeader_IcjV"><div class="extensionIcon_m8HC">ð¢</div><h3>SAP</h3><p>ECC, S/4HANA, BW, Datasphere, SAC, and ABAP</p></div></div></div></div><div class="row featureRow_DEue"><div class="col col--4"><div class="featureCard_QAQr sapCard_KS3r"><div class="text--center"><img src="/images/icons/rfc.png" alt="RFC (Remote Function Call)" class="featureIcon_GA8l"></div><div class="text--center padding-horiz--md"><h3>RFC (Remote Function Call)</h3><p>Read <strong>SAP tables</strong> or call any <strong>RFC function module</strong> from DuckDB SQL â KNA1, MARA, BAPI_*, custom Z-modules, everything your system exposes.</p><div class="capabilityTags_ckZB"><span class="capabilityTag_VWgp">Read</span><span class="capabilityTag_VWgp">Discover</span></div></div></div></div><div class="col col--4"><div class="featureCard_QAQr sapCard_KS3r"><div class="text--center"><img src="/images/icons/bics.png" alt="BICS (BI Consumer Services)" class="featureIcon_GA8l"></div><div class="text--center padding-horiz--md"><h3>BICS (BI Consumer Services)</h3><p>Execute <strong>SAP BW queries</strong> end-to-end: filter variables, drill characteristics, pull key figures, and trace lineage from BEx back to the source cube.</p><div class="capabilityTags_ckZB"><span class="capabilityTag_VWgp">Read</span><span class="capabilityTag_VWgp">Discover</span></div></div></div></div><div class="col col--4"><div class="featureCard_QAQr sapCard_KS3r"><div class="text--center"><img src="/images/icons/odp.png" alt="ODP â Operational Data Provisioning" class="featureIcon_GA8l"></div><div class="text--center padding-horiz--md"><h3>ODP â Operational Data Provisioning</h3><p><strong>Delta and full extraction</strong> with native subscription management across every ODP context: BW, SAPI, ABAP CDS, and classic extractors.</p><div class="capabilityTags_ckZB"><span class="capabilityTag_VWgp">Read</span><span class="capabilityTag_VWgp">CDC</span></div></div></div></div><div class="col col--4"><div class="featureCard_QAQr sapCard_KS3r"><div class="text--center"><img src="/images/icons/delta.png" alt="APE â ABAP Pipeline Engine" class="featureIcon_GA8l"></div><div class="text--center padding-horiz--md"><h3>APE â ABAP Pipeline Engine</h3><p>Extract <strong>CDS entities</strong> through SAP's own pipeline engine, with delta that reports <strong>deletes</strong> â the case ODP's CDS delta cannot cover. No ABAP installed; the SAP-side role is agreed per engagement.</p><div class="capabilityTags_ckZB"><span class="capabilityTag_VWgp">Read</span><span class="capabilityTag_VWgp">CDC</span></div></div></div></div><div class="col col--4"><div class="featureCard_QAQr sapCard_KS3r"><div class="text--center"><img src="/images/icons/ecosystem.png" alt="SAP Datasphere" class="featureIcon_GA8l"></div><div class="text--center padding-horiz--md"><h3>SAP Datasphere</h3><p>First-class Datasphere integration. <strong>OAuth2</strong> secrets, discover spaces and assets, query both <strong>relational and analytical</strong> models with metric/dimension pushdown.</p><div class="capabilityTags_ckZB"><span class="capabilityTag_VWgp">Read</span><span class="capabilityTag_VWgp">Discover</span></div></div></div></div><div class="col col--4"><div class="featureCard_QAQr sapCard_KS3r"><div class="text--center"><img src="/images/icons/insight.png" alt="SAP Analytics Cloud" class="featureIcon_GA8l"></div><div class="text--center padding-horiz--md"><h3>SAP Analytics Cloud</h3><p>Read SAC <strong>models, stories, and planning data</strong> with full metadata. <code>ATTACH ... TYPE sac</code> for catalog-style access to your analytics layer.</p><div class="capabilityTags_ckZB"><span class="capabilityTag_VWgp">Read</span><span class="capabilityTag_VWgp">ATTACH</span></div></div></div></div><div class="col col--4"><div class="featureCard_QAQr sapCard_KS3r"><div class="text--center"><img src="/images/icons/idoc.png" alt="IDoc Files (ERPL-IDoc)" class="featureIcon_GA8l"></div><div class="text--center padding-horiz--md"><h3>IDoc Files (ERPL-IDoc)</h3><p>Read & write <strong>SAP IDoc files</strong> as SQL tables â decode the opaque <code>SDATA</code> into typed columns, generate byte-valid IDocs, and convert <strong>flat â IDoc-XML</strong>. Pure, offline, no SAP connection.</p><div class="capabilityTags_ckZB"><span class="capabilityTag_VWgp">Read</span><span class="capabilityTag_VWgp">Write</span></div></div></div></div><div class="col col--4"><div class="featureCard_QAQr sapCard_KS3r"><div class="text--center"><img src="/images/icons/engineering.png" alt="ABAP via ERPL-ADT" class="featureIcon_GA8l"></div><div class="text--center padding-horiz--md"><h3>ABAP via ERPL-ADT</h3><p>A CLI and <strong>MCP server</strong> for the SAP ADT REST API. Search ABAP objects, read source, run unit tests, and let AI coding agents write and activate fixes back to SAP.</p><div class="capabilityTags_ckZB"><span class="capabilityTag_VWgp">Read</span><span class="capabilityTag_VWgp">Write</span></div></div></div></div></div><div class="row"><div class="col col--12"><div class="extensionSection_m6SI m365Section_tW_z"><div class="extensionHeader_IcjV"><div class="extensionIcon_m8HC">ðª</div><h3>Microsoft 365</h3><p>
24SharePoint, Excel, Teams, Outlook, Planner, Entra ID</p></div></div></div></div><div class="row featureRow_DEue"><div class="col col--4"><div class="featureCard_QAQr m365Card_fd6e"><div class="text--center"><img src="/images/icons/m365-sharepoint.png" alt="SharePoint Lists" class="featureIcon_GA8l"></div><div class="text--center padding-horiz--md"><h3>SharePoint Lists</h3><p>Query SharePoint lists like SQL tables â typed columns, predicate pushdown, and full <strong>create / update / delete</strong> support. <code>ATTACH ... TYPE sharepoint_lists</code> for catalog-style access.</p><div class="capabilityTags_ckZB"><span class="capabilityTag_VWgp">Read</span><span class="capabilityTag_VWgp">Write</span><span class="capabilityTag_VWgp">ATTACH</span></div></div></div></div><div class="col col--4"><div class="featureCard_QAQr m365Card_fd6e"><div class="text--center"><img src="/images/icons/m365-excel.png" alt="Excel Workbooks" class="featureIcon_GA8l"></div><div class="text--center padding-horiz--md"><h3>Excel Workbooks</h3><p>Read and write Excel tables and ranges in OneDrive / SharePoint. <code>ATTACH</code> a workbook <strong>by site and file name</strong> â no GUIDs needed.</p><div class="capabilityTags_ckZB"><span class="capabilityTag_VWgp">Read</span><span class="capabilityTag_VWgp">Write</span><span class="capabilityTag_VWgp">ATTACH</span></div></div></div></div><div class="col col--4"><div class="featureCard_QAQr m365Card_fd6e"><div class="text--center"><img src="/images/icons/m365-teams.png" alt="Microsoft Teams" class="featureIcon_GA8l"></div><div class="text--center padding-horiz--md"><h3>Microsoft Teams</h3><p>Pull team rosters, channels, and channel messages by their <strong>human-readable names</strong>. Analyze collaboration patterns without leaving SQL.</p><div class="capabilityTags_ckZB"><span class="capabilityTag_VWgp">Read</span><span class="capabilityTag_VWgp">Discover</span></div></div></div></div><div class="col col--4"><div class="featureCard_QAQr m365Card_fd6e"><div class="text--center"><img src="/images/icons/m365-outlook.png" alt="Outlook (Mail, Calendar, Contacts)" class="featureIcon_GA8l"></div><div class="text--center padding-horiz--md"><h3>Outlook (Mail, Calendar, Contacts)</h3><p>The complete <strong>Outlook trio</strong> â emails, calendar events, and contacts â with folder pagination and lazy streaming for tenant-scale reads.</p><div class="capabilityTags_ckZB"><span class="capabilityTag_VWgp">Read</span></div></div></div></div><div class="col col--4"><div class="featureCard_QAQr m365Card_fd6e"><div class="text--center"><img src="/images/icons/m365-planner.png" alt="Microsoft Planner" class="featureIcon_GA8l"></div><div class="text--center padding-horiz--md"><h3>Microsoft Planner</h3><p>Read plans, buckets, and tasks. <strong>Bulk-create tasks</strong> with lateral joins and resolve bucket names automatically â perfect for backfilling work from a CSV.</p><div class="capabilityTags_ckZB"><span class="capabilityTag_VWgp">Read</span><span class="capabilityTag_VWgp">Write</span></div></div></div></div><div class="col col--4"><div class="featureCard_QAQr m365Card_fd6e"><div class="text--center"><img src="/images/icons/m365-entra.png" alt="Entra ID (Azure AD)" class="featureIcon_GA8l"></div><div class="text--center padding-horiz--md"><h3>Entra ID (Azure AD)</h3><p>Query <strong>users and sign-in logs</strong> through Microsoft Graph. Audit access, build user dashboards, or join identities against your SAP master data.</p><div class="capabilityTags_ckZB"><span class="capabilityTag_VWgp">Read</span></div></div></div></div></div><div class="row"><div class="col col--12"><div class="extensionSection_m6SI dyn365Section_Nql0"><div class="extensionHeader_IcjV"><div class="extensionIcon_m8HC">ð§©</div><h3>Microsoft Dynamics 365</h3><p>Business Central and Dataverse / CRM</p></div></div></div></div><div class="row featureRow_DEue"><div class="col col--4"><div class="featureCard_QAQr dyn365Card_l6Fs"><div class="text--center"><img src="/images/icons/dyn365-bc.png" alt="Business Central" class="featureIcon_GA8l"></div><div class="text--center padding-horiz--md"><h3>Business Central</h3><p><code>ATTACH ... TYPE business_central</code> turns a BC company into a DuckDB catalog. Companies by <strong>name</strong>, entities as tables, predicate and <code>$expand</code> pushdown.</p><div class="capabilityTags_ckZB"><span class="capabilityTag_VWgp">Read</span><span class="capabilityTag_VWgp">ATTACH</span></div></div></div></div><div class="col col--4"><div class="featureCard_QAQr dyn365Card_l6Fs"><div class="text--center"><img src="/images/icons/dyn365-dataverse.png" alt="Dataverse / Dynamics CRM" class="featureIcon_GA8l"></div><div class="text--center padding-horiz--md"><h3>Dataverse / Dynamics CRM</h3><p>Read accounts, contacts, opportunities, and custom entities. Full <strong>$expand support</strong> for related records and predicate pushdown for fast scans.</p><div class="capabilityTags_ckZB"><span class="capabilityTag_VWgp">Read</span></div></div></div></div></div><div class="row"><div class="col col--12"><div class="extensionSection_m6SI openSection_KGmY"><div class="extensionHeader_IcjV"><div class="extensionIcon_m8HC">ð</div><h3>Open Standards & Cloud</h3><p>HTTP, OData, and Delta Sharing</p></div></div></div></div><div class="row featureRow_DEue"><div class="col col--4"><div class="featureCard_QAQr openCard_GpHT"><div class="text--center"><img src="/images/icons/stream.png" alt="HTTP & REST" class="featureIcon_GA8l"></div><div class="text--center padding-horiz--md"><h3>HTTP & REST</h3><p>Call any HTTP API from SQL â <code>GET, POST, PUT, PATCH, DELETE</code> with headers, basic/bearer auth, and automatic character-set detection.</p><div class="capabilityTags_ckZB"><span class="capabilityTag_VWgp">Read</span><span class="capabilityTag_VWgp">Write</span></div></div></div></div><div class="col col--4"><div class="featureCard_QAQr openCard_GpHT"><div class="text--center"><img src="/images/icons/ecosystem.png" alt="OData V2 / V4" class="featureIcon_GA8l"></div><div class="text--center padding-horiz--md"><h3>OData V2 / V4</h3><p>Universal OData reader with auto version detection, <code>ATTACH</code> support, and <strong>predicate pushdown</strong> on <code>$filter / $select / $top / $skip</code>.</p><div class="capabilityTags_ckZB"><span class="capabilityTag_VWgp">Read</span><span class="capabilityTag_VWgp">ATTACH</span></div></div></div></div><div class="col col--4"><div class="featureCard_QAQr openCard_GpHT"><div class="text--center"><img src="/images/icons/replicate.png" alt="Delta Sharing" class="featureIcon_GA8l"></div><div class="text--center padding-horiz--md"><h3>Delta Sharing</h3><p>Consume <strong>Delta Sharing</strong> feeds from Databricks, SAP, S3, or Azure â bearer-token profiles, schema discovery, and direct Parquet scan.</p><div class="capabilityTags_ckZB"><span class="capabilityTag_VWgp">Read</span><span class="capabilityTag_VWgp">Discover</span></div></div></div></div></div></div></section><section class="useCases_ibvJ"><div class="container"><div class="row"><div class="col col--12"><div class="text--center margin-bottom--lg"><h2>Real problems, solved across your enterprise stack</h2></div></div></div><div class="row"><div class="col col--4"><div class="useCaseCard_uS8t"><div class="text--center"><img src="/images/icons/table.png" alt="Load SAP ERP master data" class="useCaseIcon_rwQK"></div><div class="text--center padding-horiz--md"><h3>Load SAP ERP master data</h3><p>Pull <strong>customer master data</strong> from <code>KNA1</code> and <code>ADRC</code> straight into DuckDB via RFC. Pair it with<!-- --> <a href="https://github.com/GoogleCloudPlatform/cortex-reporting/tree/main" target="_blank" rel="noopener noreferrer">Google Cortex</a> <!-- -->to spin up a reporting layer across many SAP tables in minutes â no staging area, no middleware.</p><div class="useCaseButton_VqoI"><a class="button button--secondary button--sm" href="/docs/key_tasks/erp_table">See the example</a></div></div></div></div><div class="col col--4"><div class="useCaseCard_uS8t"><div class="text--center"><img src="/images/icons/query.png" alt="Build a Microsoft 365 reporting layer" class="useCaseIcon_rwQK"></div><div class="text--center padding-horiz--md"><h3>Build a Microsoft 365 reporting layer</h3><p><code>ATTACH</code> an <strong>Excel workbook</strong> by site name, read a SharePoint list of contracts, and join them against your SAP customers â all in one SQL query. Export the result to Parquet for your lakehouse.</p><div class="useCaseButton_VqoI"><a class="button button--secondary button--sm" href="/docs/erpl-odata/m365/">M365 quick start</a></div></div></div></div><div class="col col--4"><div class="useCaseCard_uS8t"><div class="text--center"><img src="/images/icons/replicate.png" alt="Sync Dynamics 365 Business Central" class="useCaseIcon_rwQK"></div><div class="text--center padding-horiz--md"><h3>Sync Dynamics 365 Business Central</h3><p>Turn a Business Central company into a DuckDB catalog with <code>ATTACH ... TYPE business_central</code>. Query items, vendors, and ledger entries directly â then <code>COPY TO</code> Parquet for downstream analytics.</p><div class="useCaseButton_VqoI"><a class="button button--secondary button--sm" href="/docs/erpl-odata/dyn365/">Dynamics 365 docs</a></div></div></div></div></div></div></section><section class="offerings_qaTm"><div class="container"><h2 class="sectionTitle_GaUe">Built for Everyone, Supported for Enterprises</h2><div class="freeForeverBanner_O9DC"><div class="bannerIcon_NuSD">â¨</div><div class="bannerContent_wVMh"><h3 class="bannerTitle_LtMV">ERPL Extensions are Free Forever for End Users</h3><p class="bannerText_gB8E">Use ERPL and ERPL-OData internally at any scale, for any purpose. No usage limits, no hidden fees, no vend
24or lock-in.</p></div></div><div class="twoColumnGrid_lFVh"><div class="offeringCard_vici"><div class="cardHeader_whi8"><div class="cardIcon_LINC">ð</div><h3 class="cardTitle_Lw5h">Enterprise Support & Consulting</h3></div><p class="cardSubtitle__K6V">Scale with confidence. Get expert help when you need it most.</p><div class="offeringContent_GZY3"><h4 class="benefitsTitle_NmAE">What's Included:</h4><ul class="benefitsList_rq9U"><li><span class="checkIcon_Opmb">â</span><div><strong>Architecture & Design</strong><p>Expert consultation on SAP integration patterns, data modeling, and pipeline architecture</p></div></li><li><span class="checkIcon_Opmb">â</span><div><strong>Implementation Support</strong><p>Hands-on help deploying ERPL for complex enterprise SAP landscapes</p></div></li><li><span class="checkIcon_Opmb">â</span><div><strong>Training & Enablement</strong><p>Custom workshops and training for your data engineering team</p></div></li><li><span class="checkIcon_Opmb">â</span><div><strong>Priority Support</strong><p>Direct access to engineering team with guaranteed response SLAs</p></div></li></ul><div class="eligibility_NG_2"><strong>Perfect for:</strong> Companies scaling ERPL in production, complex SAP architectures, mission-critical deployments</div></div><div class="cardFooter_H5tz"><a class="button button--primary button--lg" href="/forms/demo">Schedule Consultation</a></div></div><div class="offeringCard_vici"><div class="cardHeader_whi8"><div class="cardIcon_LINC">ð¼</div><h3 class="cardTitle_Lw5h">Commercial Licensing for Product Builders</h3></div><p class="cardSubtitle__K6V">Building a product on ERPL? Let's partner on your success.</p><div class="offeringContent_GZY3"><h4 class="benefitsTitle_NmAE">Our Approach:</h4><ul class="benefitsList_rq9U"><li><span class="checkIcon_Opmb">â</span><div><strong>Fair Share Model</strong><p>We believe in mutual successâget the licensing terms that work for your business</p></div></li><li><span class="checkIcon_Opmb">â</span><div><strong>Flexible Licensing</strong><p>Revenue share, per-seat, or custom arrangementsâwe adapt to your model</p></div></li><li><span class="checkIcon_Opmb">â</span><div><strong>Partnership Benefits</strong><p>Priority feature requests, dedicated support, and go-to-market collaboration</p></div></li><li><span class="checkIcon_Opmb">â</span><div><strong>Legal Clarity</strong><p>Clear licensing terms under BSL, with straightforward commercial agreements</p></div></li></ul><div class="eligibility_NG_2"><strong>Required for:</strong> SaaS products embedding ERPL, commercial products using ERPL as core infrastructure, redistributing ERPL as part of your offering</div></div><div class="cardFooter_H5tz"><a class="button button--primary button--lg" href="/forms/contact">Discuss Licensing</a></div></div></div><div class="clarification_JC07"><p><strong>Questions about licensing?</strong> If you're using ERPL internally (even at enterprise scale), building open source projects, or creating free toolsâyou don't need a commercial license. Only companies building commercial products on top of ERPL need licensing terms.</p></div></div></section><section class="finalCTA_WCYs"><div class="container"><div class="row"><div class="col col--12"><div class="text--center"><h2 class="title_kHLe">Ready to unify your enterprise data in DuckDB?</h2><p class="subtitle_qsa2">Install the extensions today and query SAP, Microsoft 365, and Dynamics 365 with one SQL engine.</p><div class="buttons_JiUk"><a class="button button--primary button--lg" href="/docs/get_started/install">Install Now</a><a class="button button--secondary button--lg" href="/forms/demo">Schedule a Demo</a></div><div class="stats_ObEW"><div class="statItem_P6EN"><div class="statNumber_Iqh4">10+</div><div class="statLabel_G3ng">Enterprise Systems</div></div><div class="statItem_P6EN"><div class="statNumber_Iqh4">100+</div><div class="statLabel_G3ng">Production Users</div></div><div class="statItem_P6EN"><div class="statNumber_Iqh4">60+</div><div class="statLabel_G3ng">SQL Functions</div></div></div></div></div></div></div></section></main></div><footer class="theme-layout-footer footer footer--dark"><div class="container container-fluid"><div class="row footer__links">
24<div class="theme-layout-footer-column col footer__col"><div class="footer__title">Docs</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/docs/start_here">Start</a></li><li class="footer__item"><a class="footer__link-item" href="/docs/get_started/install">Installation</a></li></ul></div><div class="theme-layout-footer-column col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://github.com/datazoode/erpl" target="_blank" rel="noopener noreferrer" class="footer__link-item">GitHub<svg width="13.5" height="13.5" aria-label="(opens in new tab)" class="iconExternalLink_nPIU"><use href="#theme-svg-external-link"></use></svg></a></li><li class="footer__item"><a href="https://www.linkedin.com/company/datazoo/" target="_blank" rel="noopener noreferrer" class="footer__link-item">LinkedIn<svg width="13.5" height="13.5" aria-label="(opens in new tab)" class="iconExternalLink_nPIU"><use href="#theme-svg-external-link"></use></svg></a></li><li class="footer__item"><a href="https://twitter.com/datazoode" target="_blank" rel="noopener noreferrer" class="footer__link-item">Twitter<svg width="13.5" height="13.5" aria-label="(opens in new tab)" class="iconExternalLink_nPIU"><use href="#theme-svg-external-link"></use></svg></a></li></ul></div><div class="theme-layout-footer-column col footer__col"><div class="footer__title">Legal</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/imprint">Imprint</a></li><li class="footer__item"><a class="footer__link-item" href="/privacy">Privacy Policy</a></li><li class="footer__item"><a class="footer__link-item" href="/contact">Contact</a></li><li class="footer__item"><a href="#" class="footer__link-item footer-cookie-settings">Cookie Settings</a></li></ul></div></div><div class="footer__bottom text--center"><div class="footer__copyright"> 25 <div style="margin-bottom: 0.5rem;"> 26 Copyright © 2026 <a href="https://data-zoo.de" target="_blank" rel="noopener noreferrer" style="color: #fff100; font-weight: 600;">DataZoo GmbH</a>. All rights reserved. 27 </div> 28 <div style="font-size: 0.8rem; color: var(--ifm-footer-color); opacity: 0.8; margin-top: 0.5rem; line-height: 1.5;"> 29 DataZoo GmbH is not affiliated with DuckDB Labs or the DuckDB Foundation. DuckDB is a registered trademark of the DuckDB Foundation. 30 </div> 31 </div></div></div></footer></div> 32</body> 33</html>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.