PageSourceSearch

https://erpl.io/assets/js/375cd495.8917227b.js

js erpl.io collected 2026-10-03 23:23:27 UTC 18,378 bytes, 1 lines download raw bytes

1"use strict";(self.webpackChunkerpl_docusaurus=self.webpackChunkerpl_docusaurus||[]).push([[5783],{5460:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>c,contentTitle:()=>t,default:()=>h,frontMatter:()=>o,metadata:()=>i,toc:()=>d});const i=JSON.parse('{"id":"get_started/troubleshooting","title":"Troubleshooting","description":"Common issues and solutions for ERPL","source":"@site/docs/get_started/troubleshooting.md","sourceDirName":"get_started","slug":"/get_started/troubleshooting","permalink":"/docs/get_started/troubleshooting","draft":false,"unlisted":false,"editUrl":"https://github.com/datazoode/erpl-landingpage/tree/main/docs/get_started/troubleshooting.md","tags":[],"version":"current","sidebarPosition":3,"frontMatter":{"sidebar_position":3,"title":"Troubleshooting","description":"Common issues and solutions for ERPL"},"sidebar":"docs","previous":{"title":"ERPL-ADT Quick Start (CLI + MCP)","permalink":"/docs/get_started/quickstart-erpl-adt"},"next":{"title":"ERPL Overview","permalink":"/docs/erpl/"}}');var r=s(74848),l=s(28453);const o={sidebar_position:3,title:"Troubleshooting",description:"Common issues and solutions for ERPL"},t="Troubleshooting Guide",c={},d=[{value:"Installation Issues",id:"installation-issues",level:2},{value:"Extension Installation Fails",id:"extension-installation-fails",level:3},{value:"Extension Not Found After Installation",id:"extension-not-found-after-installation",level:3},{value:"Connection Issues",id:"connection-issues",level:2},{value:"SAP Connection Fails",id:"sap-connection-fails",level:3},{value:"Permission Denied Errors",id:"permission-denied-errors",level:3},{value:"Performance Issues",id:"performance-issues",level:2},{value:"Slow Query Performance",id:"slow-query-performance",level:3},{value:"Memory Issues",id:"memory-issues",level:3},{value:"SAP-Specific Issues",id:"sap-specific-issues",level:2},{value:"Table Not Found",id:"table-not-found",level:3},{value:"Function Module Errors",id:"function-module-errors",level:3},{value:"Debugging Tips",id:"debugging-tips",level:2},{value:"Enable Verbose Logging",id:"enable-verbose-logging",level:3},{value:"Test Basic Connectivity",id:"test-basic-connectivity",level:3},{value:"Check SAP System Status",id:"check-sap-system-status",level:3},{value:"Getting Additional Help",id:"getting-additional-help",level:2},{value:"Self-Service Resources",id:"self-service-resources",level:3},{value:"Community Support",id:"community-support",level:3},{value:"Professional Support",id:"professional-support",level:3},{value:"Error Code Reference",id:"error-code-reference",level:2},{value:"Common Error Codes",id:"common-error-codes",level:3},{value:"Log Analysis",id:"log-analysis",level:3}];function a(e){const n={a:"a",code:"code",h1:"h1",h2:"h2",h3:"h3",header:"header",li:"li",ol:"ol",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,l.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(n.header,{children:(0,r.jsx)(n.h1,{id:"troubleshooting-guide",children:"Troubleshooting Guide"})}),"\n",(0,r.jsx)(n.p,{children:"This guide helps you resolve common issues when using ERPL with DuckDB and SAP systems."}),"\n",(0,r.jsx)(n.h2,{id:"installation-issues",children:"Installation Issues"}),"\n",(0,r.jsx)(n.h3,{id:"extension-installation-fails",children:"Extension Installation Fails"}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Problem"}),": ",(0,r.jsx)(n.code,{children:"INSTALL 'erpl'"})," command fails with an error."]}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Solutions"}),":"]}),"\n",(0,r.jsxs)(n.ol,{children:["\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Check DuckDB Version"}),": Ensure you're using DuckDB 0.10.1"]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-sql",children:"SELECT version();\n"})}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Verify Internet Connection"}),": The extension is downloaded from the internet"]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",children:"curl -I http://get.erpl.io\n"})}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Try Manual Installation"}),": Download and install manually"]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-sql",children:"INSTALL '/path/to/erpl.duckdb_extension';\nLOAD 'erpl';\n"})}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(n.h3,{id:"extension-not-found-after-installation",children:"Extension Not Found After Installation"}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Problem"}),": ",(0,r.jsx)(n.code,{children:"LOAD 'erpl'"}),' returns "Extension not found".']}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Solutions"}),":"]}),"\n",(0,r.jsxs)(n.ol,{children:["\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Check Installation"}),": Verify the extension was installed"]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-sql",children:"SELECT * FROM duckdb_extensions() WHERE extension_name = 'erpl';\n"})}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Restart DuckDB"}),": Close and reopen your DuckDB session"]}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Check File Permissions"}),": Ensure DuckDB can access the extension directory"]}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(n.h2,{id:"connection-issues",children:"Connection Issues"}),"\n",(0,r.jsx)(n.h3,{id:"sap-connection-fails",children:"SAP Connection Fails"}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Problem"}),": ERPL fails to reach your SAP system."]}),"\n",(0,r.jsx)(n.p,{children:"Credentials live in a DuckDB secret and the connection is established lazily on the first RFC call. Verify your secret and ping the system."}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Common Causes and Solutions"}),":"]}),"\n",(0,r.jsxs)(n.ol,{children:["\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Invalid Host or System Number"})," \u2014 re-create the secret with correct values"]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-sql",children:"CREATE OR REPLACE SECRET my_sap (\n  TYPE sap_rfc,\n  ASHOST 'correct-sap-server.com',  -- Hostname or IP\n  SYSNR '00',                       -- System number\n  CLIENT '100',                     -- SAP client\n  USER 'your-username',\n  PASSWD 'your-password',\n  LANG 'EN'\n);\n\n-- Validate the connection\nPRAGMA sap_rfc_ping;\n"})}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"Network Connectivity Issues"})}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",children:"# Test network connectivity\nping your-sap-server.com\ntelnet your-sap-server.com 3200  # Default SAP port\n"})}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"SAP User Account Issues"})}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsx)(n.li,{children:"Verify username and password"}),"\n",(0,r.jsx)(n.li,{children:"Check if account is locked"}),"\n",(0,r.jsx)(n.li,{children:"Ensure account has RFC authorizations"}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(n.h3,{id:"permission-denied-errors",children:"Permission Denied Errors"}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Problem"}),": ",(0,r.jsx)(n.code,{children:"sap_read_table()"})," returns permission errors."]}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Solutions"}),":"]}),"\n",(0,r.jsxs)(n.ol,{children:["\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Check RFC Authorizations"}),": Contact your SAP administrator"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Verify Table Access"}),": Ensure your user can access the specific table"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Test with Different Table"}),": Try a table you know you have access to"]}),"\n"]}),"\n",(0,r.jsx)(n.h2,{id:"performance-issues",children:"Performance Issues"}),"\n",(0,r.jsx)(n.h3,{id:"slow-query-performance",children:"Slow Query Performance"}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Problem"}),": SAP queries are running slowly."]}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Optimization Tips"}),":"]}),"\n",(0,r.jsxs)(n.ol,{children:["\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Use Filters"}),": Limit data with WHERE clauses"]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-sql",children:"SELECT * FROM sap_read_table('KNA1') \nWHERE LAND1 = 'DE'  -- Filter by country\nLIMIT 1000;\n"})}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Select Specific Columns"}),": Only retrieve needed fields"]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-sql",children:"SELECT KUNNR, NAME1 FROM sap_read_table('KNA1');\n"})}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Use Pagination"}),": Process data in chunks"]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-sql",children:"SELECT * FROM sap_read_table('KNA1') \nLI
1MIT 1000 OFFSET 0;\n"})}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(n.h3,{id:"memory-issues",children:"Memory Issues"}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Problem"}),": DuckDB runs out of memory with large SAP tables."]}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Solutions"}),":"]}),"\n",(0,r.jsxs)(n.ol,{children:["\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Increase Memory Limit"}),": Set higher memory limit for DuckDB"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Process in Batches"}),": Use LIMIT and OFFSET for large tables"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Optimize Queries"}),": Use more selective WHERE clauses"]}),"\n"]}),"\n",(0,r.jsx)(n.h2,{id:"sap-specific-issues",children:"SAP-Specific Issues"}),"\n",(0,r.jsx)(n.h3,{id:"table-not-found",children:"Table Not Found"}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Problem"}),": ",(0,r.jsx)(n.code,{children:"sap_read_table('TABLENAME')"}),' returns "Table not found".']}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Solutions"}),":"]}),"\n",(0,r.jsxs)(n.ol,{children:["\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Check Table Name"}),": Verify the exact table name (case-sensitive)"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"List Available Tables"}),": Use ",(0,r.jsx)(n.code,{children:"sap_show_tables()"})," to see what's available"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Check Client"}),": Ensure you're connected to the correct SAP client"]}),"\n"]}),"\n",(0,r.jsx)(n.h3,{id:"function-module-errors",children:"Function Module Errors"}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Problem"}),": Calling SAP function modules fails."]}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Common Issues"}),":"]}),"\n",(0,r.jsxs)(n.ol,{children:["\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Function Not Remote-Enabled"}),": Verify the function module is RFC-enabled"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Parameter Mismatch"}),": Check function module interface"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Authorization Issues"}),": Ensure you have permission to call the function"]}),"\n"]}),"\n",(0,r.jsx)(n.h2,{id:"debugging-tips",children:"Debugging Tips"}),"\n",(0,r.jsx)(n.h3,{id:"enable-verbose-logging",children:"Enable Verbose Logging"}),"\n",(0,r.jsx)(n.p,{children:"Enable detailed logging to diagnose issues:"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-sql",children:"SET erpl_trace_enabled = TRUE;\nSET erpl_trace_level   = 'DEBUG';   -- TRACE | DEBUG | INFO | WARN | ERROR\nSET erpl_trace_output  = 'console'; -- console | file | both\n"})}),"\n",(0,r.jsx)(n.h3,{id:"test-basic-connectivity",children:"Test Basic Connectivity"}),"\n",(0,r.jsx)(n.p,{children:"Start with simple tests:"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-sql",children:"-- Ping the SAP system (raises an error if the connection is broken)\nPRAGMA sap_rfc_ping;\n\n-- List available tables\nSELECT * FROM sap_show_tables() LIMIT 5;\n\n-- Try a simple table read\nSELECT * FROM sap_read_table('T000', MAX_ROWS => 1);\n"})}),"\n",(0,r.jsx)(n.h3,{id:"check-sap-system-status",children:"Check SAP System Status"}),"\n",(0,r.jsx)(n.p,{children:"Verify your SAP system is accessible:"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",children:"# Check if SAP system is running\nping your-sap-server.com\n\n# Test RFC port (usually 3200 + system number)\ntelnet your-sap-server.com 3200\n"})}),"\n",(0,r.jsx)(n.h2,{id:"getting-additional-help",children:"Getting Additional Help"}),"\n",(0,r.jsx)(n.h3,{id:"self-service-resources",children:"Self-Service Resources"}),"\n",(0,r.jsxs)(n.ol,{children:["\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Documentation"}),": Check our ",(0,r.jsx)(n.a,{href:"/docs/start_here",children:"complete documentation"})]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Examples"}),": Review ",(0,r.jsx)(n.a,{href:"/docs/key_tasks/",children:"key tasks"}
1)," for common scenarios"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"GitHub Issues"}),": Search existing ",(0,r.jsx)(n.a,{href:"https://github.com/datazoode/erpl/issues",children:"issues"})]}),"\n"]}),"\n",(0,r.jsx)(n.h3,{id:"community-support",children:"Community Support"}),"\n",(0,r.jsxs)(n.ol,{children:["\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"GitHub Discussions"}),": Ask questions in ",(0,r.jsx)(n.a,{href:"https://github.com/datazoode/erpl/discussions",children:"GitHub Discussions"})]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Stack Overflow"}),": Tag questions with ",(0,r.jsx)(n.code,{children:"erpl"})," and ",(0,r.jsx)(n.code,{children:"duckdb"})]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"LinkedIn"}),": Connect with other users on ",(0,r.jsx)(n.a,{href:"https://www.linkedin.com/company/datazoo/",children:"LinkedIn"})]}),"\n"]}),"\n",(0,r.jsx)(n.h3,{id:"professional-support",children:"Professional Support"}),"\n",(0,r.jsx)(n.p,{children:"For enterprise support and consulting:"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Email"}),": ",(0,r.jsx)(n.a,{href:"mailto:[email protected]",children:"[email protected]"})]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Contact Form"}),": ",(0,r.jsx)(n.a,{href:"/contact",children:"Contact us"})]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Consulting"}),": ",(0,r.jsx)(n.a,{href:"https://calendly.com/datazoo",children:"Schedule a call"})]}),"\n"]}),"\n",(0,r.jsx)(n.h2,{id:"error-code-reference",children:"Error Code Reference"}),"\n",(0,r.jsx)(n.h3,{id:"common-error-codes",children:"Common Error Codes"}),"\n",(0,r.jsxs)(n.table,{children:[(0,r.jsx)(n.thead,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.th,{children:"Error Code"}),(0,r.jsx)(n.th,{children:"Description"}),(0,r.jsx)(n.th,{children:"Solution"})]})}),(0,r.jsxs)(n.tbody,{children:[(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:"RFC_ERROR"})}),(0,r.jsx)(n.td,{children:"General RFC communication error"}),(0,r.jsx)(n.td,{children:"Check network connectivity and SAP system status"})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:"AUTH_FAILED"})}),(0,r.jsx)(n.td,{children:"Authentication failed"}),(0,r.jsx)(n.td,{children:"Verify username and password"})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:"PERMISSION_DENIED"})}),(0,r.jsx)(n.td,{children:"Insufficient permissions"}),(0,r.jsx)(n.td,{children:"Contact SAP administrator for RFC authorizations"})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:"TABLE_NOT_FOUND"})}),(0,r.jsx)(n.td,{children:"SAP table doesn't exist"}),(0,r.jsx)(n.td,{children:"Verify table name and client"})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:"FUNCTION_NOT_FOUND"})}),(0,r.jsx)(n.td,{children:"Function module not found"}),(0,r.jsx)(n.td,{children:"Check function name and RFC enablement"})]})]})]}),"\n",(0,r.jsx)(n.h3,{id:"log-analysis",children:"Log Analysis"}),"\n",(0,r.jsx)(n.p,{children:"When reporting issues, include:"}),"\n",(0,r.jsxs)(n.ol,{children:["\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"DuckDB Version"}),": ",(0,r.jsx)(n.code,{children:"SELECT version();"})]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"ERPL Version"}),": ",(0,r.jsx)(n.code,{children:"SELECT * FROM duckdb_extensions() WHERE extension_name = 'erpl';"})]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Error Message"}),": Complete error text"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"SAP System Info"}),": Version, client, system number"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Query"}),": The exact SQL query that failed"]}),"\n"]}),"\n",(0,r.jsx)(n.p,{children:"This information helps us provide faster and more accurate support."})]})}function h(e={}){const{wrapper:n}={...(0,l.R)(),...e.components};return n?(0,r.jsx)(n,{...e,children:(0,r.jsx)(a,{...e})}):a(e)}},28453:(e,n,s)=>{s.d(n,{R:()=>o,x:()=>t});var i=s(96540);const r={},l=i.createContext(r);function o(e){const n=i.useContext(l);return i.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function t(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:o(e.components),i.createElement(l.Provider,{value:n},e.children)}}}]);

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.