1"use strict";(self.webpackChunkerpl_docusaurus=self.webpackChunkerpl_docusaurus||[]).push([[1387],{28453:(e,n,s)=>{s.d(n,{R:()=>l,x:()=>a});var i=s(96540);const r={},t=i.createContext(r);function l(e){const n=i.useContext(t);return i.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function a(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:l(e.components),i.createElement(t.Provider,{value:n},e.children)}},88233:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>d,contentTitle:()=>a,default:()=>h,frontMatter:()=>l,metadata:()=>i,toc:()=>o});const i=JSON.parse('{"id":"start_here","title":"Welcome to ERPL","description":"Connect DuckDB to the SAP ecosystem with ERPL and ERPL-Web extensions","source":"@site/docs/start_here.md","sourceDirName":".","slug":"/start_here","permalink":"/docs/start_here","draft":false,"unlisted":false,"editUrl":"https://github.com/datazoode/erpl-landingpage/tree/main/docs/start_here.md","tags":[],"version":"current","sidebarPosition":1,"frontMatter":{"sidebar_position":1,"title":"Welcome to ERPL","description":"Connect DuckDB to the SAP ecosystem with ERPL and ERPL-Web extensions","keywords":["erpl","erpl-web","sap","duckdb","
1integration","getting started"]},"sidebar":"docs","next":{"title":"Which Extension Should I Use?","permalink":"/docs/get_started/"}}');var r=s(74848),t=s(28453);const l={sidebar_position:1,title:"Welcome to ERPL",description:"Connect DuckDB to the SAP ecosystem with ERPL and ERPL-Web extensions",keywords:["erpl","erpl-web","sap","duckdb","integration","getting started"]},a="Welcome to ERPL",d={},o=[{value:"Which Extension Do I Need?",id:"which-extension-do-i-need",level:2},{value:"\ud83c\udfe2 ERPL (On-Premise SAP)",id:"-erpl-on-premise-sap",level:3},{value:"\u2601\ufe0f ERPL-Web (Cloud/Web SAP)",id:"\ufe0f-erpl-web-cloudweb-sap",level:3},{value:"Quick Start",id:"quick-start",level:2},{value:"For On-Premise SAP (ERPL)",id:"for-on-premise-sap-erpl",level:3},{value:"For Cloud/Web SAP (ERPL-Web)",id:"for-cloudweb-sap-erpl-web",level:3},{value:"Architecture Overview",id:"architecture-overview",level:2},{value:"Common Use Cases",id:"common-use-cases",level:2},{value:"\ud83d\udcca Data Analysis",id:"-data-analysis",level:3},{value:"\ud83d\udd04 Data Integration",id:"-data-integration",level:3},{value:"\ud83d\udcc8 Reporting",id:"-reporting",level:3},{value:"What's Next?",id:"whats-next",level:2},{value:"\ud83d\ude80 Getting Started",id:"-getting-started",level:3},{value:"\ud83d\udcda Learn by Doing",id:"-learn-by-doing",level:3},{value:"\ud83d\udca1 Examples",id:"-examples",level:3},{value:"\ud83d\udcd6 Reference",id:"-reference",level:3},{value:"Need Help?",id:"need-help",level:2}];function c(e){const n={a:"a",admonition:"admonition",code:"code",h1:"h1",h2:"h2",h3:"h3",header:"header",hr:"hr",li:"li",mermaid:"mermaid",ol:"ol",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,t.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(n.header,{children:(0,r.jsx)(n.h1,{id:"welcome-to-erpl",children:"Welcome to ERPL"})}),"\n",(0,r.jsx)(n.p,{children:"ERPL is a DuckDB extension that connects your analytics workflow directly to SAP systems.\nBy the end of this guide, you'll know which extension to use and how to get started."}),"\n",(0,r.jsx)(n.admonition,{title:"What is ERPL?",type:"info",children:(0,r.jsxs)(n.p,{children:["ERPL (Enterprise Resource Planning Loader) is a DuckDB extension that provides native connectivity to SAP systems. It comes in two flavors: ",(0,r.jsx)(n.strong,{children:"ERPL"})," for on-premise SAP and ",(0,r.jsx)(n.strong,{children:"ERPL-Web"})," for cloud/web-based SAP services."]})}),"\n",(0,r.jsx)(n.h2,{id:"which-extension-do-i-need",children:"Which Extension Do I Need?"}),"\n",(0,r.jsx)(n.mermaid,{value:"flowchart TD\n A[I need to connect to SAP] --\x3e B{Where is your SAP system?}\n B --\x3e|On-premise<br/>Behind firewall| C[Use ERPL]\n B --\x3e|Cloud/Web<br/>HTTP/HTTPS APIs| D[Use ERPL-Web]\n \n C --\x3e E[Protocols: RFC, BICS, ODP, APE]\n D --\x3e F[Protocols: OData, Datasphere, ODP Web]\n \n E --\x3e G[Install ERPL]\n F --\x3e H[Install ERPL-Web]\n \n style C fill:#fff100,stroke:#000,stroke-width:3px\n style D fill:#1a9988,stroke:#000,stroke-width:3px\n style G fill:#fff100,stroke:#000,stroke-width:2px\n style H fill:#1a9988,stroke:#000,stroke-width:2px"}),"\n",(0,r.jsx)(n.h3,{id:"-erpl-on-premise-sap",children:"\ud83c\udfe2 ERPL (On-Premise SAP)"}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Use when:"})," Your SAP system is behind a firewall and requires SSH tunneling or direct network access."]}),"\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"Protocols supported:"})}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"RFC"})," - Read SAP tables and call function modules"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"BICS"})," - Execute SAP BW queries"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"ODP"})," - Delta replication from SAP systems"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"APE"})," - CDS entity extraction via the ABAP Pipeline Engine, delta including deletes"]}),"\n"]}),"\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"Example:"})}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-sql",children:"-- Read customer master data via RFC\nSELECT * FROM sap_read_table('KNA1', MAX_ROWS => 100);\n"})}),"\n",(0,r.jsx)(n.h3,{id:"\ufe0f-erpl-web-cloudweb-sap",children:"\u2601\ufe0f ERPL-Web (Cloud/Web SAP)"}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Use when:"})," Your SAP system exposes web APIs or you're using SAP cloud services."]}),"\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"Protocols supported:"})}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"OData"})," - Query SAP services via HTTP/HTTPS"]}
1),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Datasphere"})," - Connect to SAP Datasphere"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"ODP Web"})," - ODP via OData protocol"]}),"\n"]}),"\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"Example:"})}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-sql",children:"-- Query OData service\nSELECT * FROM odata_read(\n 'https://api.sap.com/Orders',\n filter => 'year eq 2024'\n);\n"})}),"\n",(0,r.jsx)(n.h2,{id:"quick-start",children:"Quick Start"}),"\n",(0,r.jsx)(n.h3,{id:"for-on-premise-sap-erpl",children:"For On-Premise SAP (ERPL)"}),"\n",(0,r.jsxs)(n.ol,{children:["\n",(0,r.jsx)(n.li,{children:(0,r.jsx)(n.a,{href:"/docs/get_started/install",children:"Install ERPL extension"})}),"\n",(0,r.jsx)(n.li,{children:(0,r.jsx)(n.a,{href:"/docs/get_started/quickstart-erpl",children:"5-minute quickstart guide"})}),"\n",(0,r.jsx)(n.li,{children:(0,r.jsx)(n.a,{href:"/docs/guides/simple/read-sap-table",children:"Read your first SAP table"})}),"\n"]}),"\n",(0,r.jsx)(n.h3,{id:"for-cloudweb-sap-erpl-web",children:"For Cloud/Web SAP (ERPL-Web)"}),"\n",(0,r.jsxs)(n.ol,{children:["\n",(0,r.jsx)(n.li,{children:(0,r.jsx)(n.a,{href:"/docs/get_started/install",children:"Install ERPL-Web extension"})}),"\n",(0,r.jsx)(n.li,{children:(0,r.jsx)(n.a,{href:"/docs/get_started/quickstart-erpl-web",children:"5-minute quickstart guide"})}),"\n",(0,r.jsx)(n.li,{children:(0,r.jsx)(n.a,{href:"/docs/guides/simple/query-odata",children:"Query your first OData service"})}),"\n"]}),"\n",(0,r.jsx)(n.h2,{id:"architecture-overview",children:"Architecture Overview"}),"\n",(0,r.jsx)(n.mermaid,{value:'graph TB\n subgraph "Your Analytics Environment"\n A[DuckDB]\n B[Python/R Notebooks]\n C[Power BI/Tableau]\n D[Data Scientists]\n end\n \n subgraph "ERPL Extensions"\n E[ERPL Extension]\n F[ERPL-Web Extension]\n end\n \n subgraph "SAP Systems"\n G[SAP ERP<br/>On-Premise]\n H[SAP BW<br/>On-Premise]\n I[SAP Datasphere<br/>Cloud]\n J[SAP OData Services<br/>Cloud]\n end\n \n A --\x3e E\n A --\x3e F\n E --\x3e G\n E --\x3e H\n F --\x3e I\n F --\x3e J\n \n B --\x3e A\n C --\x3e A\n D --\x3e A\n \n style E fill:#fff100,stroke:#000,stroke-width:2px\n style F fill:#1a9988,stroke:#000,stroke-width:2px\n style A fill:#e1f5fe,stroke:#01579b,stroke-width:2px'}),"\n",(0,r.jsx)(n.h2,{id:"common-use-cases",children:"Common Use Cases"}),"\n",(0,r.jsx)(n.h3,{id:"-data-analysis",children:"\ud83d\udcca Data Analysis"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsx)(n.li,{children:"Extract SAP data for analysis in Python/R"}),"\n",(0,r.jsx)(n.li,{children:"Create dashboards in Power BI/Tableau"}),"\n",(0,r.jsx)(n.li,{children:"Build machine learning models with SAP data"}),"\n"]}),"\n",(0,r.jsx)(n.h3,{id:"-data-integration",children:"\ud83d\udd04 Data Integration"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsx)(n.li,{children:"Replicate SAP data to data lakes"}),"\n",(0,r.jsx)(n.li,{children:"Real-time data streaming from SAP"}),"\n",(0,r.jsx)(n.li,{children:"ETL pipelines with SAP as source"}),"\n"]}),"\n",(0,r.jsx)(n.h3,{id:"-reporting",children:"\ud83d\udcc8 Reporting"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsx)(n.li,{children:"Automated reports from SAP data"}),"\n",(0,r.jsx)(n.li,{children:"Cross-system analytics"}),"\n",(0,r.jsx)(n.li,{children:"Historical data analysis"}),"\n"]}),"\n",(0,r.jsx)(n.h2,{id:"whats-next",children:"What's Next?"}),"\n",(0,r.jsx)(n.h3,{id:"-getting-started",children:"\ud83d\ude80 Getting Started"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.a,{href:"/docs/get_started/install",children:"Installation Guide"})," - Install the right extension"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.a,{href:"/docs/get_started/",children:"Quick Start Guides"})," - Get up and running in 5 minutes"]}),"\n"]}),"\n",(0,r.jsx)(n.h3,{id:"-learn-by-doing",children:"\ud83d\udcda Learn by Doing"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.a,{href:"/docs/guides/simple/read-sap-table",children:"Simple Guides"})," - For data analysts and beginners"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.a,{href:"/docs/guides/advanced/rfc-metadata",children:"Advanced Guides"})," - For SAP experts"]}
1),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.a,{href:"/docs/guides/integration/python-pandas",children:"Integration Guides"})," - Connect with your favorite tools"]}),"\n"]}),"\n",(0,r.jsx)(n.h3,{id:"-examples",children:"\ud83d\udca1 Examples"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.a,{href:"/docs/examples/erpl-examples",children:"ERPL Examples"})," - On-premise SAP examples"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.a,{href:"/docs/examples/erpl-web-examples",children:"ERPL-Web Examples"})," - Cloud SAP examples"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.a,{href:"/docs/examples/real-world-use-cases",children:"Real-World Use Cases"})," - Complete scenarios"]}),"\n"]}),"\n",(0,r.jsx)(n.h3,{id:"-reference",children:"\ud83d\udcd6 Reference"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.a,{href:"/docs/reference/",children:"Function Reference"})," - Complete API documentation"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.a,{href:"/docs/reference/configuration",children:"Configuration"})," - Advanced configuration options"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.a,{href:"/docs/reference/troubleshooting",children:"Troubleshooting"})," - Common issues and solutions"]}),"\n"]}),"\n",(0,r.jsx)(n.h2,{id:"need-help",children:"Need Help?"}),"\n",(0,r.jsx)(n.admonition,{title:"Getting Stuck?",type:"tip",children:(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:["Check our ",(0,r.jsx)(n.a,{href:"/docs/reference/troubleshooting",children:"troubleshooting guide"})]}),"\n",(0,r.jsxs)(n.li,{children:["Browse ",(0,r.jsx)(n.a,{href:"/docs/examples/real-world-use-cases",children:"real-world examples"})]}),"\n",(0,r.jsx)(n.li,{children:"Join our community discussions"}),"\n"]})}),"\n",(0,r.jsx)(n.admonition,{title:"For SAP Experts",type:"info",children:(0,r.jsxs)(n.p,{children:["Looking for advanced topics? Check out our ",(0,r.jsx)(n.a,{href:"/docs/guides/advanced/rfc-metadata",children:"advanced guides"})," covering RFC internals, ODP delta replication, and performance optimization."]})}),"\n",(0,r.jsx)(n.hr,{}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Ready to get started?"})," Choose your path:"]}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsx)(n.li,{children:(0,r.jsx)(n.a,{href:"/docs/get_started/install",children:"\ud83c\udfe2 On-premise SAP \u2192 Install ERPL"})}),"\n",(0,r.jsx)(n.li,{children:(0,r.jsx)(n.a,{href:"/docs/get_started/install",children:"\u2601\ufe0f Cloud/Web SAP \u2192 Install ERPL-Web"})}),"\n"]})]})}function h(e={}){const{wrapper:n}={...(0,t.R)(),...e.components};return n?(0,r.jsx)(n,{...e,children:(0,r.jsx)(c,{...e})}):c(e)}}}]);
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.