[{"data":1,"prerenderedAt":4040},["ShallowReactive",2],{"nav-docs-de":3,"page-/de/docs/webspace/examples/my-own-system":1155,"surround-/de/docs/webspace/examples/my-own-system":4034,"raw-/de/docs/webspace/examples/my-own-system":4037},[4,67,374,775,902,1073,1083,1108],{"title":5,"tags":6,"slug":6,"path":7,"stem":8,"children":9,"page":66,"sourcePath":7},"Erste Schritte mit SpaceBuilder",null,"/getting-started","00.getting-started",[10,15,20,27,34,39,45,50,55,60],{"title":11,"path":12,"stem":13,"tags":6,"slug":14,"sourcePath":12},"Einführung in SpaceBuilder","/getting-started/overview","00.getting-started/00.overview","/getting-started/overview/",{"title":16,"path":17,"stem":18,"tags":6,"slug":19,"sourcePath":17},"SetFN-Konto erstellen","/getting-started/create-setfn-account","00.getting-started/05.create-setfn-account","/getting-started/create-setfn-account/",{"title":21,"path":22,"stem":23,"tags":24,"slug":26,"sourcePath":22},"Installation unter Linux","/getting-started/install-linux","00.getting-started/10.install-linux",[25],"recommended","/getting-started/install-linux/",{"title":28,"path":29,"stem":30,"tags":31,"slug":33,"sourcePath":29},"Installation mit Docker","/getting-started/install-docker","00.getting-started/12.install-docker",[32],"preparing","/getting-started/install-docker/",{"title":35,"path":36,"stem":37,"tags":6,"slug":38,"sourcePath":36},"Installation unter Windows","/getting-started/install-windows","00.getting-started/14.install-windows","/getting-started/install-windows/",{"title":40,"path":41,"stem":42,"tags":43,"slug":44,"sourcePath":41},"Installation unter macOS","/getting-started/install-macos","00.getting-started/16.install-macos",[32],"/getting-started/install-macos/",{"title":46,"path":47,"stem":48,"tags":6,"slug":49,"sourcePath":47},"Ersteinrichtung","/getting-started/initial-setup","00.getting-started/20.initial-setup","/getting-started/initial-setup/",{"title":51,"path":52,"stem":53,"tags":6,"slug":54,"sourcePath":52},"Lizenzaktivierung","/getting-started/license-activation","00.getting-started/30.license-activation","/getting-started/license-activation/",{"title":56,"path":57,"stem":58,"tags":6,"slug":59,"sourcePath":57},"Zugriffsadresse ermitteln (lokal/internes Netzwerk)","/getting-started/access-url","00.getting-started/35.access-url","/getting-started/access-url/",{"title":61,"path":62,"stem":63,"tags":64,"slug":65,"sourcePath":62},"Methode für den externen Zugriff auswählen","/getting-started/access-domain","00.getting-started/40.access-domain",[25],"/getting-started/access-domain/",false,{"title":68,"tags":6,"slug":6,"path":69,"stem":70,"children":71,"page":66,"sourcePath":69},"Space verwalten","/admin","10.admin",[72,92,162,197,249,274,289,299,339],{"title":73,"tags":6,"slug":6,"path":74,"stem":75,"children":76,"page":66,"sourcePath":74},"Admin-Startseite","/admin/home","10.admin/00.home",[77,82,87],{"title":78,"path":79,"stem":80,"tags":6,"slug":81,"sourcePath":79},"Zugriff auf die Administrationsseite","/admin/home/admin-page-access","10.admin/00.home/00.admin-page-access","/admin/home/admin-page-access/",{"title":83,"path":69,"stem":84,"tags":6,"slug":85,"sourcePath":86},"Überblick über die Administratormenüs","10.admin/00.home/00.overview","/admin/","/admin/home/overview",{"title":88,"path":89,"stem":90,"tags":6,"slug":91,"sourcePath":89},"Lizenzverwaltung","/admin/home/license","10.admin/00.home/20.license","/admin/home/license/",{"title":93,"tags":6,"slug":6,"path":94,"stem":95,"children":96,"page":66,"sourcePath":94},"Benutzerverwaltung","/admin/user-management","10.admin/10.user-management",[97,102,107,112,117,122,127,132,137,142,147,152,157],{"title":98,"path":99,"stem":100,"tags":6,"slug":101,"sourcePath":99},"Registrierungsrichtlinie und Standardberechtigungen festlegen","/admin/user-management/signup-policy","10.admin/10.user-management/02.signup-policy","/admin/user-management/signup-policy/",{"title":103,"path":104,"stem":105,"tags":6,"slug":106,"sourcePath":104},"Registrierungsbedingungen hinterlegen","/admin/user-management/signup-terms","10.admin/10.user-management/04.signup-terms","/admin/user-management/signup-terms/",{"title":108,"path":109,"stem":110,"tags":6,"slug":111,"sourcePath":109},"Benutzerkonto erstellen","/admin/user-management/invite-new-member","10.admin/10.user-management/10.invite-new-member","/admin/user-management/invite-new-member/",{"title":113,"path":114,"stem":115,"tags":6,"slug":116,"sourcePath":114},"Benutzerkonto bearbeiten","/admin/user-management/edit-member","10.admin/10.user-management/11.edit-member","/admin/user-management/edit-member/",{"title":118,"path":119,"stem":120,"tags":6,"slug":121,"sourcePath":119},"Administrator hinzufügen","/admin/user-management/add-new-admin","10.admin/10.user-management/12.add-new-admin","/admin/user-management/add-new-admin/",{"title":123,"path":124,"stem":125,"tags":6,"slug":126,"sourcePath":124},"Teamverwaltung","/admin/user-management/team","10.admin/10.user-management/22.team","/admin/user-management/team/",{"title":128,"path":129,"stem":130,"tags":6,"slug":131,"sourcePath":129},"Stufenverwaltung","/admin/user-management/level","10.admin/10.user-management/24.level","/admin/user-management/level/",{"title":133,"path":134,"stem":135,"tags":6,"slug":136,"sourcePath":134},"Zugangsprotokolle einsehen","/admin/user-management/access-log","10.admin/10.user-management/30.access-log","/admin/user-management/access-log/",{"title":138,"path":139,"stem":140,"tags":6,"slug":141,"sourcePath":139},"Aktive Geräte verwalten","/admin/user-management/active-devices","10.admin/10.user-management/31.active-devices","/admin/user-management/active-devices/",{"title":143,"path":144,"stem":145,"tags":6,"slug":146,"sourcePath":144},"Konto- und Sicherheitsrichtlinien festlegen","/admin/user-management/account-security","10.admin/10.user-management/32.account-security","/admin/user-management/account-security/",{"title":148,"path":149,"stem":150,"tags":6,"slug":151,"sourcePath":149},"Roboterprüfung (CAPTCHA) einrichten","/admin/user-management/captcha","10.admin/10.user-management/33.captcha","/admin/user-management/captcha/",{"title":153,"path":154,"stem":155,"tags":6,"slug":156,"sourcePath":154},"Mitgliederhinweise einrichten","/admin/user-management/notice-settings","10.admin/10.user-management/34.notice-settings","/admin/user-management/notice-settings/",{"title":158,"path":159,"stem":160,"tags":6,"slug":161,"sourcePath":159},"Rundmail an Mitglieder senden","/admin/user-management/bulk-mail","10.admin/10.user-management/36.bulk-mail","/admin/user-management/bulk-mail/",{"title":163,"tags":6,"slug":6,"path":164,"stem":165,"children":166,"page":66,"sourcePath":164},"Dienstkonfiguration","/admin/service-config","10.admin/20.service-config",[167,172,177,182,187,192],{"title":168,"path":169,"stem":170,"tags":6,"slug":171,"sourcePath":169},"Dateibereich-Einstellungen","/admin/service-config/file-area","10.admin/20.service-config/10.file-area","/admin/service-config/file-area/",{"title":173,"path":174,"stem":175,"tags":6,"slug":176,"sourcePath":174},"Webhook-Einstellungen","/admin/service-config/webhook-settings","10.admin/20.service-config/16.webhook-settings","/admin/service-config/webhook-settings/",{"title":178,"path":179,"stem":180,"tags":6,"slug":181,"sourcePath":179},"Community-Einstellungen","/admin/service-config/community-space","10.admin/20.service-config/22.community-space","/admin/service-config/community-space/",{"title":183,"path":184,"stem":185,"tags":6,"slug":186,"sourcePath":184},"KI-Chatbot-Richtlinie festlegen","/admin/service-config/community-ai-chatbot","10.admin/20.service-config/24.community-ai-chatbot","/admin/service-config/community-ai-chatbot/",{"title":188,"path":189,"stem":190,"tags":6,"slug":191,"sourcePath":189},"E-Mail-Einstellungen","/admin/service-config/email-settings","10.admin/20.service-config/30.email-settings","/admin/service-config/email-settings/",{"title":193,"path":194,"stem":195,"tags":6,"slug":196,"sourcePath":194},"Branding-Einstellungen","/admin/service-config/brand","10.admin/20.service-config/40.brand","/admin/service-config/brand/",{"title":198,"tags":6,"slug":6,"path":199,"stem":200,"children":201,"page":66,"sourcePath":199},"Wissensdienste","/admin/knowledge","10.admin/30.knowledge",[202,207,214,219,224,229,234,239,244],{"title":203,"path":199,"stem":204,"tags":6,"slug":205,"sourcePath":206},"Überblick über die Wissensdienste","10.admin/30.knowledge/00.overview","/admin/knowledge/","/admin/knowledge/overview",{"title":208,"path":209,"stem":210,"children":211,"tags":6,"slug":213,"sourcePath":209},"Erfassung & Indexierung","/admin/knowledge/indexing","10.admin/30.knowledge/10.indexing",[212],{"title":208,"path":209,"stem":210,"tags":6,"slug":213,"sourcePath":209},"/admin/knowledge/indexing/",{"title":215,"path":216,"stem":217,"tags":6,"slug":218,"sourcePath":216},"Suchqualität & Sprachen","/admin/knowledge/search","10.admin/30.knowledge/20.search","/admin/knowledge/search/",{"title":220,"path":221,"stem":222,"tags":6,"slug":223,"sourcePath":221},"Wissensspeicher","/admin/knowledge/storage","10.admin/30.knowledge/30.storage","/admin/knowledge/storage/",{"title":225,"path":226,"stem":227,"tags":6,"slug":228,"sourcePath":226},"Wissensspeicher betreiben","/admin/knowledge/storage-operations","10.admin/30.knowledge/32.storage-operations","/admin/knowledge/storage-operations/",{"title":230,"path":231,"stem":232,"tags":6,"slug":233,"sourcePath":231},"Qdrant verbinden","/admin/knowledge/qdrant","10.admin/30.knowledge/34.qdrant","/admin/knowledge/qdrant/",{"title":235,"path":236,"stem":237,"tags":6,"slug":238,"sourcePath":236},"Qdrant-Server vorbereiten","/admin/knowledge/qdrant-server-setup","10.admin/30.knowledge/35.qdrant-server-setup","/admin/knowledge/qdrant-server-setup/",{"title":240,"path":241,"stem":242,"tags":6,"slug":243,"sourcePath":241},"Milvus verbinden","/admin/knowledge/milvus","10.admin/30.knowledge/36.milvus","/admin/knowledge/milvus/",{"title":245,"path":246,"stem":247,"tags":6,"slug":248,"sourcePath":246},"Externe Suche & Quellen","/admin/knowledge/web-search","10.admin/30.knowledge/40.web-search","/admin/knowledge/web-search/",{"title":250,"tags":6,"slug":6,"path":251,"stem":252,"children":253,"page":66,"sourcePath":251},"KI-Dienste","/admin/ai","10.admin/35.ai",[254,259,264,269],{"title":255,"path":251,"stem":256,"tags":6,"slug":257,"sourcePath":258},"KI-Dienste verwalten","10.admin/35.ai/00.overview","/admin/ai/","/admin/ai/overview",{"title":260,"path":261,"stem":262,"tags":6,"slug":263,"sourcePath":261},"Modelle & Laufzeitumgebung einrichten","/admin/ai/models","10.admin/35.ai/10.models","/admin/ai/models/",{"title":265,"path":266,"stem":267,"tags":6,"slug":268,"sourcePath":266},"Werkzeuge & Integrationen einrichten","/admin/ai/integrations","10.admin/35.ai/20.integrations","/admin/ai/integrations/",{"title":270,"path":271,"stem":272,"tags":6,"slug":273,"sourcePath":271},"MCP-Server verwalten","/admin/ai/mcp","10.admin/35.ai/30.mcp","/admin/ai/mcp/",{"title":275,"tags":6,"slug":6,"path":276,"stem":277,"children":278,"page":66,"sourcePath":276},"Plugins","/admin/plugin","10.admin/40.plugin",[279,284],{"title":280,"path":281,"stem":282,"tags":6,"slug":283,"sourcePath":281},"Plugins verwalten","/admin/plugin/overview","10.admin/40.plugin/00.overview","/admin/plugin/overview/",{"title":285,"path":286,"stem":287,"tags":6,"slug":288,"sourcePath":286},"Einstellungen der Erweiterungs-Plugins","/admin/plugin/settings","10.admin/40.plugin/10.settings","/admin/plugin/settings/",{"title":290,"path":291,"stem":292,"children":293,"page":66,"sourcePath":291},"Operations","/admin/operations","10.admin/45.operations",[294],{"title":295,"path":291,"stem":296,"tags":6,"slug":297,"sourcePath":298},"Betriebs- und Auditprotokolle prüfen","10.admin/45.operations/00.overview","/admin/operations/","/admin/operations/overview",{"title":300,"tags":6,"slug":6,"path":301,"stem":302,"children":303,"page":66,"sourcePath":301},"Sicherheitsverwaltung","/admin/security","10.admin/50.security",[304,309,314,319,324,329,334],{"title":305,"path":306,"stem":307,"tags":6,"slug":308,"sourcePath":306},"Sicherheitsübersicht","/admin/security/overview","10.admin/50.security/00.overview","/admin/security/overview/",{"title":310,"path":311,"stem":312,"tags":6,"slug":313,"sourcePath":311},"Auditprotokoll einsehen","/admin/security/audit-log","10.admin/50.security/05.audit-log","/admin/security/audit-log/",{"title":315,"path":316,"stem":317,"tags":6,"slug":318,"sourcePath":316},"Blockierungsverwaltung","/admin/security/block-management","10.admin/50.security/10.block-management","/admin/security/block-management/",{"title":320,"path":321,"stem":322,"tags":6,"slug":323,"sourcePath":321},"Sicherheitseinstellungen","/admin/security/security-setting","10.admin/50.security/12.security-setting","/admin/security/security-setting/",{"title":325,"path":326,"stem":327,"tags":6,"slug":328,"sourcePath":326},"Geräte mit ausstehender Freigabe bearbeiten","/admin/security/device-approvals","10.admin/50.security/14.device-approvals","/admin/security/device-approvals/",{"title":330,"path":331,"stem":332,"tags":6,"slug":333,"sourcePath":331},"IP-Zugriffsbeschränkung","/admin/security/ip-restriction","10.admin/50.security/16.ip-restriction","/admin/security/ip-restriction/",{"title":335,"path":336,"stem":337,"tags":6,"slug":338,"sourcePath":336},"Zwei-Faktor-Authentifizierung für Administratoren einrichten","/admin/security/two-factor-auth","10.admin/50.security/18.two-factor-auth","/admin/security/two-factor-auth/",{"title":340,"tags":6,"slug":6,"path":341,"stem":342,"children":343,"page":66,"sourcePath":341},"Systemverwaltung","/admin/system-admin","10.admin/60.system-admin",[344,349,354,359,364,369],{"title":345,"path":346,"stem":347,"tags":6,"slug":348,"sourcePath":346},"Geräteinformationen","/admin/system-admin/device-info","10.admin/60.system-admin/10.device-info","/admin/system-admin/device-info/",{"title":350,"path":351,"stem":352,"tags":6,"slug":353,"sourcePath":351},"Serverneustart und Systemwartung","/admin/system-admin/server-restart","10.admin/60.system-admin/12.server-restart","/admin/system-admin/server-restart/",{"title":355,"path":356,"stem":357,"tags":6,"slug":358,"sourcePath":356},"Hintergrunddienste","/admin/system-admin/background-service","10.admin/60.system-admin/14.background-service","/admin/system-admin/background-service/",{"title":360,"path":361,"stem":362,"tags":6,"slug":363,"sourcePath":361},"SpaceBuilder aktualisieren","/admin/system-admin/update","10.admin/60.system-admin/16.update","/admin/system-admin/update/",{"title":365,"path":366,"stem":367,"tags":6,"slug":368,"sourcePath":366},"SpaceBuilder deinstallieren","/admin/system-admin/uninstall","10.admin/60.system-admin/18.uninstall","/admin/system-admin/uninstall/",{"title":370,"path":371,"stem":372,"tags":6,"slug":373,"sourcePath":371},"Server umziehen","/admin/system-admin/server-migration","10.admin/60.system-admin/20.server-migration","/admin/system-admin/server-migration/",{"title":375,"tags":6,"slug":6,"path":376,"stem":377,"children":378,"page":66,"sourcePath":376},"Arbeitsbereich verwenden","/workspace","20.workspace",[379,419,439,523,662,718,754],{"title":380,"tags":6,"slug":6,"path":381,"stem":382,"children":383,"page":66,"sourcePath":381},"Menü","/workspace/menu","20.workspace/05.menu",[384,389,394,399,404,409,414],{"title":385,"path":386,"stem":387,"tags":6,"slug":388,"sourcePath":386},"Einführung in den Arbeitsbereich","/workspace/menu/overview","20.workspace/05.menu/00.overview","/workspace/menu/overview/",{"title":390,"path":391,"stem":392,"tags":6,"slug":393,"sourcePath":391},"Teambereich","/workspace/menu/team-space","20.workspace/05.menu/05.team-space","/workspace/menu/team-space/",{"title":395,"path":396,"stem":397,"tags":6,"slug":398,"sourcePath":396},"Client-Bereich","/workspace/menu/client-space","20.workspace/05.menu/06.client-space","/workspace/menu/client-space/",{"title":400,"path":401,"stem":402,"tags":6,"slug":403,"sourcePath":401},"Favoriten","/workspace/menu/favorites","20.workspace/05.menu/10.favorites","/workspace/menu/favorites/",{"title":405,"path":406,"stem":407,"tags":6,"slug":408,"sourcePath":406},"Zuletzt verwendete Dokumente","/workspace/menu/recent","20.workspace/05.menu/20.recent","/workspace/menu/recent/",{"title":410,"path":411,"stem":412,"tags":6,"slug":413,"sourcePath":411},"Externe Freigabe","/workspace/menu/external-share","20.workspace/05.menu/30.external-share","/workspace/menu/external-share/",{"title":415,"path":416,"stem":417,"tags":6,"slug":418,"sourcePath":416},"Papierkorb","/workspace/menu/trash","20.workspace/05.menu/40.trash","/workspace/menu/trash/",{"title":420,"tags":6,"slug":6,"path":421,"stem":422,"children":423,"page":66,"sourcePath":421},"Konto","/workspace/account","20.workspace/10.account",[424,429,434],{"title":425,"path":426,"stem":427,"tags":6,"slug":428,"sourcePath":426},"Registrierung und Anmeldung","/workspace/account/signup","20.workspace/10.account/10.signup","/workspace/account/signup/",{"title":430,"path":431,"stem":432,"tags":6,"slug":433,"sourcePath":431},"Passwort zurücksetzen","/workspace/account/reset-password","20.workspace/10.account/20.reset-password","/workspace/account/reset-password/",{"title":435,"path":436,"stem":437,"tags":6,"slug":438,"sourcePath":436},"Kontoeinstellungen","/workspace/account/account-settings","20.workspace/10.account/30.account-settings","/workspace/account/account-settings/",{"title":440,"tags":6,"slug":6,"path":441,"stem":442,"children":443,"page":66,"sourcePath":441},"Ordner","/workspace/folder","20.workspace/20.folder",[444,449,454,459,464,471,476,481,486,491,496,501,506,511,518],{"title":445,"path":446,"stem":447,"tags":6,"slug":448,"sourcePath":446},"Grundfunktionen für Ordner","/workspace/folder/basic","20.workspace/20.folder/10.basic","/workspace/folder/basic/",{"title":450,"path":451,"stem":452,"tags":6,"slug":453,"sourcePath":451},"Mehrere Ordner auf einmal erstellen","/workspace/folder/bulk-folder-creation","20.workspace/20.folder/12.bulk-folder-creation","/workspace/folder/bulk-folder-creation/",{"title":455,"path":456,"stem":457,"tags":6,"slug":458,"sourcePath":456},"Filter","/workspace/folder/filter","20.workspace/20.folder/13.filter","/workspace/folder/filter/",{"title":460,"path":461,"stem":462,"tags":6,"slug":463,"sourcePath":461},"Ordneransichtsoptionen festlegen","/workspace/folder/folder-view-options","20.workspace/20.folder/14.folder-view-options","/workspace/folder/folder-view-options/",{"title":465,"path":466,"stem":467,"tags":468,"slug":470,"sourcePath":466},"Ordner als Pinnwand verwenden","/workspace/folder/board-view","20.workspace/20.folder/15.board-view",[469],"hot","/workspace/folder/board-view/",{"title":472,"path":473,"stem":474,"tags":6,"slug":475,"sourcePath":473},"Webansicht für Ordner","/workspace/folder/folder-web-view","20.workspace/20.folder/16.folder-web-view","/workspace/folder/folder-web-view/",{"title":477,"path":478,"stem":479,"tags":6,"slug":480,"sourcePath":478},"Ordner organisieren","/workspace/folder/folder-organize","20.workspace/20.folder/17.folder-organize","/workspace/folder/folder-organize/",{"title":482,"path":483,"stem":484,"tags":6,"slug":485,"sourcePath":483},"Ordnerhinweis (README)","/workspace/folder/folder-readme","20.workspace/20.folder/18.folder-readme","/workspace/folder/folder-readme/",{"title":487,"path":488,"stem":489,"tags":6,"slug":490,"sourcePath":488},"Ordner-/Dateiliste exportieren","/workspace/folder/folder-export","20.workspace/20.folder/20.folder-export","/workspace/folder/folder-export/",{"title":492,"path":493,"stem":494,"tags":6,"slug":495,"sourcePath":493},"Zugriffsberechtigungen nach Stufe festlegen","/workspace/folder/level-access-permissions","20.workspace/20.folder/24.level-access-permissions","/workspace/folder/level-access-permissions/",{"title":497,"path":498,"stem":499,"tags":6,"slug":500,"sourcePath":498},"Zugriffsberechtigungen nach Team festlegen","/workspace/folder/team-access-permissions","20.workspace/20.folder/26.team-access-permissions","/workspace/folder/team-access-permissions/",{"title":502,"path":503,"stem":504,"tags":6,"slug":505,"sourcePath":503},"Dateiregeln festlegen","/workspace/folder/file-rules","20.workspace/20.folder/28.file-rules","/workspace/folder/file-rules/",{"title":507,"path":508,"stem":509,"tags":6,"slug":510,"sourcePath":508},"Ordner-Webhooks","/workspace/folder/webhook","20.workspace/20.folder/30.webhook","/workspace/folder/webhook/",{"title":512,"path":513,"stem":514,"children":515,"tags":6,"slug":517,"sourcePath":513},"Wissensindex für Ordner festlegen","/workspace/folder/knowledge-index","20.workspace/20.folder/32.knowledge-index",[516],{"title":512,"path":513,"stem":514,"tags":6,"slug":517,"sourcePath":513},"/workspace/folder/knowledge-index/",{"title":519,"path":520,"stem":521,"tags":6,"slug":522,"sourcePath":520},"Ordner für Aufgabenautomatisierung","/workspace/folder/automation","20.workspace/20.folder/40.automation","/workspace/folder/automation/",{"title":524,"tags":6,"slug":6,"path":525,"stem":526,"children":527,"page":66,"sourcePath":525},"Dateien","/workspace/file","20.workspace/30.file",[528,533,538,543,548,553,558,563,568,573,578,583,588,593,598,603,608,613,618,623,628,633,637,642,647,652,657],{"title":529,"path":530,"stem":531,"tags":6,"slug":532,"sourcePath":530},"Grundfunktionen der Dateiverwaltung","/workspace/file/overview","20.workspace/30.file/00.overview","/workspace/file/overview/",{"title":534,"path":535,"stem":536,"tags":6,"slug":537,"sourcePath":535},"Dateiliste beim Betrachten anzeigen","/workspace/file/list-in-file","20.workspace/30.file/05.list-in-file","/workspace/file/list-in-file/",{"title":539,"path":540,"stem":541,"tags":6,"slug":542,"sourcePath":540},"Markdown- und Textdateien anzeigen und bearbeiten","/workspace/file/text-file-viewer","20.workspace/30.file/10.text-file-viewer","/workspace/file/text-file-viewer/",{"title":544,"path":545,"stem":546,"tags":6,"slug":547,"sourcePath":545},"HTML-Dateien anzeigen","/workspace/file/html-viewer","20.workspace/30.file/11.html-viewer","/workspace/file/html-viewer/",{"title":549,"path":550,"stem":551,"tags":6,"slug":552,"sourcePath":550},"CSV-Dateien anzeigen und bearbeiten","/workspace/file/csv-viewer","20.workspace/30.file/12.csv-viewer","/workspace/file/csv-viewer/",{"title":554,"path":555,"stem":556,"tags":6,"slug":557,"sourcePath":555},"Bild-/Videodateien anzeigen","/workspace/file/image-file-viewer","20.workspace/30.file/13.image-file-viewer","/workspace/file/image-file-viewer/",{"title":559,"path":560,"stem":561,"tags":6,"slug":562,"sourcePath":560},"Office-/PDF-Dateien anzeigen","/workspace/file/office-viewer","20.workspace/30.file/14.office-viewer","/workspace/file/office-viewer/",{"title":564,"path":565,"stem":566,"tags":6,"slug":567,"sourcePath":565},"Webseite einfügen (HTML)","/workspace/file/paste-html","20.workspace/30.file/20.paste-html","/workspace/file/paste-html/",{"title":569,"path":570,"stem":571,"tags":6,"slug":572,"sourcePath":570},"Screenshot einfügen","/workspace/file/paste-screenshot","20.workspace/30.file/21.paste-screenshot","/workspace/file/paste-screenshot/",{"title":574,"path":575,"stem":576,"tags":6,"slug":577,"sourcePath":575},"Markdown einfügen (MD)","/workspace/file/paste-md","20.workspace/30.file/22.paste-md","/workspace/file/paste-md/",{"title":579,"path":580,"stem":581,"tags":6,"slug":582,"sourcePath":580},"Bildschirm aufnehmen","/workspace/file/screen-recording","20.workspace/30.file/23.screen-recording","/workspace/file/screen-recording/",{"title":584,"path":585,"stem":586,"tags":6,"slug":587,"sourcePath":585},"Schnellnotiz","/workspace/file/quick-note","20.workspace/30.file/24.quick-note","/workspace/file/quick-note/",{"title":589,"path":590,"stem":591,"tags":6,"slug":592,"sourcePath":590},"Datei-Tags","/workspace/file/file-tag","20.workspace/30.file/33.file-tag","/workspace/file/file-tag/",{"title":594,"path":595,"stem":596,"tags":6,"slug":597,"sourcePath":595},"Mehrere Dateien auf einmal umbenennen","/workspace/file/bulk-name-revise","20.workspace/30.file/34.bulk-name-revise","/workspace/file/bulk-name-revise/",{"title":599,"path":600,"stem":601,"tags":6,"slug":602,"sourcePath":600},"Dateikonvertierung","/workspace/file/file-convert-overview","20.workspace/30.file/40.file-convert-overview","/workspace/file/file-convert-overview/",{"title":604,"path":605,"stem":606,"tags":6,"slug":607,"sourcePath":605},"Vorlagendateien","/workspace/file/templates","20.workspace/30.file/41.templates","/workspace/file/templates/",{"title":609,"path":610,"stem":611,"tags":6,"slug":612,"sourcePath":610},"Aufgabenliste (Todo)","/workspace/file/template-todo","20.workspace/30.file/42.template-todo","/workspace/file/template-todo/",{"title":614,"path":615,"stem":616,"tags":6,"slug":617,"sourcePath":615},"Genehmigungsformular","/workspace/file/template-approval","20.workspace/30.file/43.template-approval","/workspace/file/template-approval/",{"title":619,"path":620,"stem":621,"tags":6,"slug":622,"sourcePath":620},"Kanban-Board","/workspace/file/template-kanban","20.workspace/30.file/44.template-kanban","/workspace/file/template-kanban/",{"title":624,"path":625,"stem":626,"tags":6,"slug":627,"sourcePath":625},"Zeitleiste","/workspace/file/template-timeline","20.workspace/30.file/45.template-timeline","/workspace/file/template-timeline/",{"title":629,"path":630,"stem":631,"tags":6,"slug":632,"sourcePath":630},"Notizblock","/workspace/file/template-memo","20.workspace/30.file/46.template-memo","/workspace/file/template-memo/",{"title":634,"path":635,"stem":636,"tags":6,"slug":635,"sourcePath":635},"KI-Chat-Datei","/workspace/file/ai-chat-file","20.workspace/30.file/47.ai-chat-file",{"title":638,"path":639,"stem":640,"tags":6,"slug":641,"sourcePath":639},"Änderungsverlauf von Dateien einsehen","/workspace/file/audit-trail","20.workspace/30.file/50.audit-trail","/workspace/file/audit-trail/",{"title":643,"path":644,"stem":645,"tags":6,"slug":646,"sourcePath":644},"Versionsverwaltung für Dateien","/workspace/file/version-trail","20.workspace/30.file/51.version-trail","/workspace/file/version-trail/",{"title":648,"path":649,"stem":650,"tags":6,"slug":651,"sourcePath":649},"Bearbeitungssperre","/workspace/file/file-lock","20.workspace/30.file/52.file-lock","/workspace/file/file-lock/",{"title":653,"path":654,"stem":655,"tags":6,"slug":656,"sourcePath":654},"Dateiverschlüsselung","/workspace/file/file-encrypt","20.workspace/30.file/53.file-encrypt","/workspace/file/file-encrypt/",{"title":658,"path":659,"stem":660,"tags":6,"slug":661,"sourcePath":659},"Dateien von der Festplatte registrieren","/workspace/file/disk-file-registration","20.workspace/30.file/60.disk-file-registration","/workspace/file/disk-file-registration/",{"title":663,"tags":6,"slug":6,"path":664,"stem":665,"children":666,"page":66,"sourcePath":664},"Zusammenarbeit","/workspace/cooperation","20.workspace/35.cooperation",[667,672,677,682,687,692,697,702,707,713],{"title":668,"path":669,"stem":670,"tags":6,"slug":671,"sourcePath":669},"Kommentare zu Dateien und Ordnern","/workspace/cooperation/file-comments","20.workspace/35.cooperation/00.file-comments","/workspace/cooperation/file-comments/",{"title":673,"path":674,"stem":675,"tags":6,"slug":676,"sourcePath":674},"Chat","/workspace/cooperation/chat","20.workspace/35.cooperation/10.chat","/workspace/cooperation/chat/",{"title":678,"path":679,"stem":680,"tags":6,"slug":681,"sourcePath":679},"Gemeinsamer Chat und Bearbeitungssperre","/workspace/cooperation/collaboration-chat","20.workspace/35.cooperation/11.collaboration-chat","/workspace/cooperation/collaboration-chat/",{"title":683,"path":684,"stem":685,"tags":6,"slug":686,"sourcePath":684},"Teammitgliedern an ihren Arbeitsort folgen","/workspace/cooperation/follow-team-location","20.workspace/35.cooperation/12.follow-team-location","/workspace/cooperation/follow-team-location/",{"title":688,"path":689,"stem":690,"tags":6,"slug":691,"sourcePath":689},"Erwähnungen","/workspace/cooperation/mention","20.workspace/35.cooperation/14.mention","/workspace/cooperation/mention/",{"title":693,"path":694,"stem":695,"tags":6,"slug":696,"sourcePath":694},"Direktnachrichten","/workspace/cooperation/dm","20.workspace/35.cooperation/16.dm","/workspace/cooperation/dm/",{"title":698,"path":699,"stem":700,"tags":6,"slug":701,"sourcePath":699},"Benachrichtigungsarchiv","/workspace/cooperation/notification-inbox","20.workspace/35.cooperation/18.notification-inbox","/workspace/cooperation/notification-inbox/",{"title":703,"path":704,"stem":705,"tags":6,"slug":706,"sourcePath":704},"Teamaktivitäten einsehen","/workspace/cooperation/file-activity","20.workspace/35.cooperation/30.file-activity","/workspace/cooperation/file-activity/",{"title":708,"path":709,"stem":710,"tags":711,"slug":712,"sourcePath":709},"Externen Freigabelink erstellen","/workspace/cooperation/share-link-creation","20.workspace/35.cooperation/40.share-link-creation",[469],"/workspace/cooperation/share-link-creation/",{"title":714,"path":715,"stem":716,"tags":6,"slug":717,"sourcePath":715},"Externen Freigabelink per E-Mail senden","/workspace/cooperation/share-link-email","20.workspace/35.cooperation/42.share-link-email","/workspace/cooperation/share-link-email/",{"title":719,"tags":6,"slug":6,"path":720,"stem":721,"children":722,"page":66,"sourcePath":720},"Suche","/workspace/search","20.workspace/40.search",[723,728,734,739,744,749],{"title":724,"path":725,"stem":726,"tags":6,"slug":727,"sourcePath":725},"Dateisuche","/workspace/search/search","20.workspace/40.search/00.search","/workspace/search/search/",{"title":729,"path":730,"stem":731,"tags":732,"slug":733,"sourcePath":730},"Kontextsuche (KI-Suche)","/workspace/search/context-search","20.workspace/40.search/10.context-search",[469],"/workspace/search/context-search/",{"title":735,"path":736,"stem":737,"tags":6,"slug":738,"sourcePath":736},"Bildsuche","/workspace/search/image-search","20.workspace/40.search/20.image-search","/workspace/search/image-search/",{"title":740,"path":741,"stem":742,"tags":6,"slug":743,"sourcePath":741},"Chatsuche","/workspace/search/chat-search","20.workspace/40.search/30.chat-search","/workspace/search/chat-search/",{"title":745,"path":746,"stem":747,"tags":6,"slug":748,"sourcePath":746},"Kommentarsuche","/workspace/search/comment-search","20.workspace/40.search/40.comment-search","/workspace/search/comment-search/",{"title":750,"path":751,"stem":752,"tags":6,"slug":753,"sourcePath":751},"Synonymsuche","/workspace/search/synonym-search","20.workspace/40.search/50.synonym-search","/workspace/search/synonym-search/",{"title":755,"tags":6,"slug":6,"path":756,"stem":757,"children":758,"page":66,"sourcePath":756},"KI","/workspace/ai","20.workspace/50.ai",[759,764,770],{"title":760,"path":761,"stem":762,"tags":6,"slug":763,"sourcePath":761},"KI-Funktionen im Überblick","/workspace/ai/overview","20.workspace/50.ai/00.overview","/workspace/ai/overview/",{"title":765,"path":766,"stem":767,"tags":768,"slug":769,"sourcePath":766},"Lokale KI mit Aufgaben beauftragen","/workspace/ai/ai-work","20.workspace/50.ai/10.ai-work",[469],"/workspace/ai/ai-work/",{"title":771,"path":772,"stem":773,"tags":6,"slug":774,"sourcePath":772},"Externe KI nutzen","/workspace/ai/external-ai","20.workspace/50.ai/20.external-ai","/workspace/ai/external-ai/",{"title":776,"tags":6,"slug":6,"path":777,"stem":778,"children":779,"page":66,"sourcePath":777},"Webspace","/webspace","40.webspace",[780,785,790,795,800,805,811,816,821,826,831,866],{"title":781,"path":782,"stem":783,"tags":6,"slug":784,"sourcePath":782},"Was ist Webspace?","/webspace/overview","40.webspace/00.overview","/webspace/overview/",{"title":786,"path":787,"stem":788,"tags":6,"slug":789,"sourcePath":787},"Website bereitstellen","/webspace/website-release","40.webspace/10.website-release","/webspace/website-release/",{"title":791,"path":792,"stem":793,"tags":6,"slug":794,"sourcePath":792},"Schemadatei (.sfn) erstellen","/webspace/create-database","40.webspace/20.create-database","/webspace/create-database/",{"title":796,"path":797,"stem":798,"tags":6,"slug":799,"sourcePath":797},"APIs erstellen und Datenbank bereitstellen","/webspace/api-overview","40.webspace/24.api-overview","/webspace/api-overview/",{"title":801,"path":802,"stem":803,"tags":6,"slug":804,"sourcePath":802},"Frontend-Beispiel ansehen","/webspace/frontend-example","40.webspace/26.frontend-example","/webspace/frontend-example/",{"title":806,"path":807,"stem":808,"tags":809,"slug":810,"sourcePath":807},"Internen Webservice für das Team erstellen","/webspace/internal-webservice","40.webspace/32.internal-webservice",[469],"/webspace/internal-webservice/",{"title":812,"path":813,"stem":814,"tags":6,"slug":815,"sourcePath":813},"Öffentlich zugänglichen Webservice erstellen","/webspace/external-webservice","40.webspace/34.external-webservice","/webspace/external-webservice/",{"title":817,"path":818,"stem":819,"tags":6,"slug":820,"sourcePath":818},"SQL importieren und exportieren","/webspace/sql-converter","40.webspace/42.sql-converter","/webspace/sql-converter/",{"title":822,"path":823,"stem":824,"tags":6,"slug":825,"sourcePath":823},"Schema in Code umwandeln","/webspace/code-converter","40.webspace/44.code-converter","/webspace/code-converter/",{"title":827,"path":828,"stem":829,"tags":6,"slug":830,"sourcePath":828},"Leistung und Skalierung","/webspace/performance","40.webspace/48.performance","/webspace/performance/",{"title":832,"tags":6,"slug":6,"path":833,"stem":834,"children":835,"page":66,"sourcePath":833},"Webspace verwalten","/webspace/admin","40.webspace/50.admin",[836,841,846,851,856,861],{"title":837,"path":838,"stem":839,"tags":6,"slug":840,"sourcePath":838},"Erste Schritte mit der Webspace-Verwaltung","/webspace/admin/overview","40.webspace/50.admin/00.overview","/webspace/admin/overview/",{"title":842,"path":843,"stem":844,"tags":6,"slug":845,"sourcePath":843},"Betriebsübersicht","/webspace/admin/operations","40.webspace/50.admin/10.operations","/webspace/admin/operations/",{"title":847,"path":848,"stem":849,"tags":6,"slug":850,"sourcePath":848},"Arbeitsbereichszugriff","/webspace/admin/workspace-access","40.webspace/50.admin/20.workspace-access","/webspace/admin/workspace-access/",{"title":852,"path":853,"stem":854,"tags":6,"slug":855,"sourcePath":853},"API- und Site-Sicherheit","/webspace/admin/api-site-security","40.webspace/50.admin/30.api-site-security","/webspace/admin/api-site-security/",{"title":857,"path":858,"stem":859,"tags":6,"slug":860,"sourcePath":858},"Dienste und Kapazität","/webspace/admin/service-capacity","40.webspace/50.admin/40.service-capacity","/webspace/admin/service-capacity/",{"title":862,"path":863,"stem":864,"tags":6,"slug":865,"sourcePath":863},"Bereitstellungsverwaltung und Frontend-Releases","/webspace/admin/deployments","40.webspace/50.admin/50.deployments","/webspace/admin/deployments/",{"title":867,"tags":868,"slug":6,"path":869,"stem":870,"children":871,"page":66,"sourcePath":869},"Webspace-Tutorials",[469],"/webspace/examples","40.webspace/60.examples",[872,876,881,887,892,897],{"title":867,"path":869,"stem":873,"tags":6,"slug":874,"sourcePath":875},"40.webspace/60.examples/00.overview","/webspace/examples/","/webspace/examples/overview",{"title":877,"path":878,"stem":879,"tags":6,"slug":880,"sourcePath":878},"Eigenes Geschäftssystem erstellen","/webspace/examples/my-own-system","40.webspace/60.examples/10.my-own-system","/webspace/examples/my-own-system/",{"title":882,"path":883,"stem":884,"tags":885,"slug":886,"sourcePath":883},"Echtzeit-Gomoku-Spiel erstellen","/webspace/examples/realtime-gomoku","40.webspace/60.examples/20.realtime-gomoku",[469],"/webspace/examples/realtime-gomoku/",{"title":888,"path":889,"stem":890,"tags":6,"slug":891,"sourcePath":889},"Material-Pinnwand aus Ordnerdateien erstellen","/webspace/examples/folder-board","40.webspace/60.examples/30.folder-board","/webspace/examples/folder-board/",{"title":893,"path":894,"stem":895,"tags":6,"slug":896,"sourcePath":894},"Gemeinsamen Monster-Raid erstellen","/webspace/examples/monster-raid","40.webspace/60.examples/40.monster-raid","/webspace/examples/monster-raid/",{"title":898,"path":899,"stem":900,"tags":6,"slug":901,"sourcePath":899},"Beispiel für einen KI-Support-Chat bereitstellen","/webspace/examples/ai-support-chat","40.webspace/60.examples/50.ai-support-chat","/webspace/examples/ai-support-chat/",{"title":903,"tags":6,"slug":6,"path":904,"stem":905,"children":906,"page":66,"sourcePath":904},"Plugins verwenden","/plugin","50.plugin",[907,912,932,992,1013,1048],{"title":908,"path":909,"stem":910,"tags":6,"slug":911,"sourcePath":909},"Plugin-Überblick","/plugin/overview","50.plugin/00.overview","/plugin/overview/",{"title":913,"tags":6,"slug":6,"path":914,"stem":915,"children":916,"page":66,"sourcePath":914},"Kalender","/plugin/calendar","50.plugin/10.calendar",[917,922,927],{"title":918,"path":919,"stem":920,"tags":6,"slug":921,"sourcePath":919},"Kalender im Überblick","/plugin/calendar/overview","50.plugin/10.calendar/00.overview","/plugin/calendar/overview/",{"title":923,"path":924,"stem":925,"tags":6,"slug":926,"sourcePath":924},"Termine erstellen, bearbeiten und löschen","/plugin/calendar/create-event","50.plugin/10.calendar/10.create-event","/plugin/calendar/create-event/",{"title":928,"path":929,"stem":930,"tags":6,"slug":931,"sourcePath":929},"Aktivitätsprotokolle prüfen","/plugin/calendar/file-activity","50.plugin/10.calendar/40.file-activity","/plugin/calendar/file-activity/",{"title":933,"tags":6,"slug":6,"path":934,"stem":935,"children":936,"page":66,"sourcePath":934},"E-Mail","/plugin/email","50.plugin/20.email",[937,942,946,951,956,962,967,972,977,982,987],{"title":938,"path":939,"stem":940,"tags":6,"slug":941,"sourcePath":939},"E-Mail im Überblick","/plugin/email/overview","50.plugin/20.email/00.overview","/plugin/email/overview/",{"title":188,"path":943,"stem":944,"tags":6,"slug":945,"sourcePath":943},"/plugin/email/setfn-email-setting","50.plugin/20.email/05.setfn-email-setting","/plugin/email/setfn-email-setting/",{"title":947,"path":948,"stem":949,"tags":6,"slug":950,"sourcePath":948},"Externes E-Mail-Konto verbinden","/plugin/email/external-email","50.plugin/20.email/07.external-email","/plugin/email/external-email/",{"title":952,"path":953,"stem":954,"tags":6,"slug":955,"sourcePath":953},"E-Mail-Grundfunktionen","/plugin/email/email-basic","50.plugin/20.email/10.email-basic","/plugin/email/email-basic/",{"title":957,"path":958,"stem":959,"tags":6,"slug":960,"sourcePath":961},"KI-Assistenten für E-Mails verwenden","/plugin/email/ai-assistant","50.plugin/20.email/15.email-ai-assistant","/plugin/email/ai-assistant/","/plugin/email/email-ai-assistant",{"title":963,"path":964,"stem":965,"tags":6,"slug":966,"sourcePath":964},"E-Mails verfassen und senden","/plugin/email/email-compose","50.plugin/20.email/20.email-compose","/plugin/email/email-compose/",{"title":968,"path":969,"stem":970,"tags":6,"slug":971,"sourcePath":969},"Dateien anhängen","/plugin/email/email-attachment","50.plugin/20.email/30.email-attachment","/plugin/email/email-attachment/",{"title":973,"path":974,"stem":975,"tags":6,"slug":976,"sourcePath":974},"E-Mail-Ordner verwalten","/plugin/email/email-folders","50.plugin/20.email/40.email-folders","/plugin/email/email-folders/",{"title":978,"path":979,"stem":980,"tags":6,"slug":981,"sourcePath":979},"E-Mails automatisch sortieren","/plugin/email/email-auto-classify","50.plugin/20.email/50.email-auto-classify","/plugin/email/email-auto-classify/",{"title":983,"path":984,"stem":985,"tags":6,"slug":986,"sourcePath":984},"E-Mail-Dateien aufbewahren und teilen","/plugin/email/email-open-in-space","50.plugin/20.email/60.email-open-in-space","/plugin/email/email-open-in-space/",{"title":988,"path":989,"stem":990,"tags":6,"slug":991,"sourcePath":989},"E-Mail-Sicherheit","/plugin/email/email-security","50.plugin/20.email/70.email-security","/plugin/email/email-security/",{"title":993,"tags":6,"slug":6,"path":994,"stem":995,"children":996,"page":66,"sourcePath":994},"Workflow (Automatisierung)","/plugin/workflow","50.plugin/30.workflow",[997,1002,1008],{"title":998,"path":999,"stem":1000,"tags":6,"slug":1001,"sourcePath":999},"Workflow im Überblick","/plugin/workflow/overview","50.plugin/30.workflow/00.overview","/plugin/workflow/overview/",{"title":1003,"path":1004,"stem":1005,"tags":1006,"slug":1007,"sourcePath":1004},"Neuen Workflow erstellen","/plugin/workflow/new-workflow","50.plugin/30.workflow/10.new-workflow",[469],"/plugin/workflow/new-workflow/",{"title":1009,"path":1010,"stem":1011,"tags":6,"slug":1012,"sourcePath":1010},"Ausführungsverlauf prüfen","/plugin/workflow/execution-history","50.plugin/30.workflow/20.execution-history","/plugin/workflow/execution-history/",{"title":1014,"tags":6,"slug":6,"path":1015,"stem":1016,"children":1017,"page":66,"sourcePath":1015},"Fine-Tuning (KI-Training)","/plugin/fine-tuning","50.plugin/40.fine-tuning",[1018,1023,1028,1033,1038,1043],{"title":1019,"path":1020,"stem":1021,"tags":6,"slug":1022,"sourcePath":1020},"Einführung in das Fine-Tuning","/plugin/fine-tuning/overview","50.plugin/40.fine-tuning/00.overview","/plugin/fine-tuning/overview/",{"title":1024,"path":1025,"stem":1026,"tags":6,"slug":1027,"sourcePath":1025},"Trainingsdaten vorverarbeiten","/plugin/fine-tuning/pre-processing","50.plugin/40.fine-tuning/10.pre-processing","/plugin/fine-tuning/pre-processing/",{"title":1029,"path":1030,"stem":1031,"tags":6,"slug":1032,"sourcePath":1030},"Training","/plugin/fine-tuning/training","50.plugin/40.fine-tuning/20.training","/plugin/fine-tuning/training/",{"title":1034,"path":1035,"stem":1036,"tags":6,"slug":1037,"sourcePath":1035},"Evaluierung","/plugin/fine-tuning/evaluation","50.plugin/40.fine-tuning/30.evaluation","/plugin/fine-tuning/evaluation/",{"title":1039,"path":1040,"stem":1041,"tags":6,"slug":1042,"sourcePath":1040},"Chat-Test","/plugin/fine-tuning/chat-test","50.plugin/40.fine-tuning/40.chat-test","/plugin/fine-tuning/chat-test/",{"title":1044,"path":1045,"stem":1046,"tags":6,"slug":1047,"sourcePath":1045},"Exportieren","/plugin/fine-tuning/export","50.plugin/40.fine-tuning/50.export","/plugin/fine-tuning/export/",{"title":1049,"tags":6,"slug":6,"path":1050,"stem":1051,"children":1052,"page":66,"sourcePath":1050},"EDC (Datenerfassung)","/plugin/edc","50.plugin/50.edc",[1053,1058,1063,1068],{"title":1054,"path":1055,"stem":1056,"tags":6,"slug":1057,"sourcePath":1055},"Einführung in EDC","/plugin/edc/overview","50.plugin/50.edc/00.overview","/plugin/edc/overview/",{"title":1059,"path":1060,"stem":1061,"tags":6,"slug":1062,"sourcePath":1060},"Dateneingabe, Audit Trail","/plugin/edc/data-entry","50.plugin/50.edc/10.data-entry","/plugin/edc/data-entry/",{"title":1064,"path":1065,"stem":1066,"tags":6,"slug":1067,"sourcePath":1065},"Builder","/plugin/edc/builder","50.plugin/50.edc/20.builder","/plugin/edc/builder/",{"title":1069,"path":1070,"stem":1071,"tags":6,"slug":1072,"sourcePath":1070},"Benutzer und Studienzentren einrichten","/plugin/edc/account","50.plugin/50.edc/30.account","/plugin/edc/account/",{"title":1074,"tags":6,"slug":6,"path":1075,"stem":1076,"children":1077,"page":66,"sourcePath":1075},"Befehlszeilentools","/cli","90.cli",[1078],{"title":1079,"path":1080,"stem":1081,"tags":6,"slug":1082,"sourcePath":1080},"Server über Befehle verwalten","/cli/commands","90.cli/10.commands","/cli/commands/",{"title":1084,"tags":6,"slug":6,"path":1085,"stem":1086,"children":1087,"page":66,"sourcePath":1085},"Sicherheitsupdates","/security-updates","95.security-updates",[1088,1093,1098,1103],{"title":1089,"path":1090,"stem":1091,"tags":6,"slug":1092,"sourcePath":1090},"Sicherheitsprüfungen und Update-Verfahren kennenlernen","/security-updates/overview","95.security-updates/00.overview","/security-updates/overview/",{"title":1094,"path":1095,"stem":1096,"tags":6,"slug":1097,"sourcePath":1095},"Protokoll der Sicherheitsprüfungen","/security-updates/review-log","95.security-updates/10.review-log","/security-updates/review-log/",{"title":1099,"path":1100,"stem":1101,"tags":6,"slug":1102,"sourcePath":1100},"Prüfstatus wichtiger Schwachstellen","/security-updates/vulnerability-status","95.security-updates/20.vulnerability-status","/security-updates/vulnerability-status/",{"title":1104,"path":1105,"stem":1106,"tags":6,"slug":1107,"sourcePath":1105},"Sicherheitsupdates des Servers prüfen","/security-updates/server-checklist","95.security-updates/30.server-checklist","/security-updates/server-checklist/",{"title":1109,"tags":6,"slug":6,"path":1110,"stem":1111,"children":1112,"page":66,"sourcePath":1110},"FAQ","/faq","99.FAQ",[1113,1119,1125,1131,1137,1143,1149],{"title":1114,"path":1115,"stem":1116,"tags":6,"slug":1117,"sourcePath":1118},"SetFN vs. Cloud-Dienste im Vergleich","/FAQ/comparison-cloud","99.FAQ/10.comparison-cloud","/FAQ/comparison-cloud/","/faq/comparison-cloud",{"title":1120,"path":1121,"stem":1122,"tags":6,"slug":1123,"sourcePath":1124},"SetFN vs. NAS im Vergleich","/FAQ/comparison-nas","99.FAQ/20.comparison-nas","/FAQ/comparison-nas/","/faq/comparison-nas",{"title":1126,"path":1127,"stem":1128,"tags":6,"slug":1129,"sourcePath":1130},"Sicherheitsrichtlinie","/FAQ/security-policy","99.FAQ/30.security-policy","/FAQ/security-policy/","/faq/security-policy",{"title":1132,"path":1133,"stem":1134,"tags":6,"slug":1135,"sourcePath":1136},"Warum SetFN so schnell ist","/FAQ/why-fast","99.FAQ/40.why-fast","/FAQ/why-fast/","/faq/why-fast",{"title":1138,"path":1139,"stem":1140,"tags":6,"slug":1141,"sourcePath":1142},"Lizenz-FAQ","/FAQ/license-faq","99.FAQ/50.license-faq","/FAQ/license-faq/","/faq/license-faq",{"title":1144,"path":1145,"stem":1146,"tags":6,"slug":1147,"sourcePath":1148},"FAQ zu KI-Funktionen","/FAQ/ai-faq","99.FAQ/60.ai-faq","/FAQ/ai-faq/","/faq/ai-faq",{"title":1150,"path":1151,"stem":1152,"tags":6,"slug":1153,"sourcePath":1154},"Leitfaden zur Fehlerbehebung","/FAQ/troubleshooting","99.FAQ/70.troubleshooting","/FAQ/troubleshooting/","/faq/troubleshooting",{"id":1156,"title":877,"body":1157,"cover":6,"description":4019,"extension":4020,"image":6,"meta":4021,"navigation":4022,"path":878,"reviewSummary":6,"reviewedAt":6,"seo":4023,"slug":880,"stem":879,"tags":6,"thumbnail":6,"thumbnailPosition":6,"thumbnailScale":6,"__hash__":4033},"docs_de/40.webspace/60.examples/10.my-own-system.md",{"type":1158,"value":1159,"toc":4013},"minimal",[1160,1164,1168,1186,1189,1194,1204,1207,1217,1228,3799,3812,3819,3822,3828,3835,3841,3848,3853,3872,3876,3882,3898,3901,3907,3910,3915,3918,3922,3925,3931,3934,3937,3940,3946,3952,3958,3964,3968,3971,4004,4006,4009],[1161,1162,877],"h1",{"id":1163},"eigenes-geschäftssystem-erstellen",[1165,1166,1167],"p",{},"Im SetFN-Arbeitsbereich können Sie Systeme wie eine firmeneigene Groupware oder ein ERP selbst erstellen.\nDen Entwurf der Datenbankstruktur und die Erstellung der Ansichten überlassen Sie der KI; Sie müssen die Ergebnisse nur erzeugen und in den Arbeitsbereich hochladen.\nZu erstellen sind 2 Dateien. Zu tun bleibt: hochladen und auf 'Bereitstellen' klicken.\nAls Beispiel erstellen wir ein 'Bestandsverwaltungsprogramm für die Fertigung'.",[1165,1169,1170,1171,1176,1177,1181,1182,1185],{},"Wenn Sie die fertigen Dateien ohne KI-Prompts direkt ausprobieren möchten, erhalten Sie über ",[1172,1173,1175],"a",{"href":1174},"/examples/webspace/inventory-management/setfn-inventory-management-sample.zip","Vollständiges Beispiel als ZIP herunterladen"," das Schema, ",[1178,1179,1180],"code",{},"index.html",", ",[1178,1183,1184],{},"mock-db-upload.html"," und die README auf einmal.",[1187,1188],"hr",{},[1190,1191,1193],"h2",{"id":1192},"_1-sfn-datei-zum-erstellen-der-datenbank-anlegen","1. .sfn-Datei zum Erstellen der Datenbank anlegen",[1165,1195,1196,1197,1200,1201,1203],{},"Im SetFN-Arbeitsbereich erstellen Sie eine DB mit einer Datei namens ",[1178,1198,1199],{},".sfn",". Geben Sie einer KI wie Claude, GPT oder Gemini ein kopiertes Beispiel einer ",[1178,1202,1199],{},"-Datei und beschreiben Sie Ihre Anforderungen, etwa 'Ich möchte den Bestand von Teilen und Produkten verwalten'. Die KI erstellt dann die Datei.",[1165,1205,1206],{},"Kopieren Sie den folgenden Inhalt, passen Sie im unteren Teil den Anforderungsentwurf an und übergeben Sie ihn der KI.",[1208,1209,1214],"pre",{"className":1210,"code":1212,"language":1213},[1211],"language-text","Du bist ein Engineer, der Schemadateien (.sfn) für SetFN, eine No-Code-Backend-Plattform, entwirft.\nEine .sfn-Datei ist eine JSON-Datei mit der folgenden Struktur. \n\n{\n  \"content-type\": \"application/setfn-schema\",\n  \"dbType\": \"sqlite3\",\n  \"apiBuild\": {\n    \"dbName\": \"db_name_klein_mit_unterstrichen\",\n    \"dbEngine\": \"sqlite\",\n    \"includeClient\": false,\n    \"features\": {\n      \"realtime\": { \"enabled\": false },\n      \"upload\": { \"enabled\": false },\n      \"ai-chat\": { \"enabled\": false }\n    }\n  },\n  \"data\": [\n    {\n      \"table\": { \"name\": \"tabellenname\", \"cmt\": \"Beschreibung dieser Tabelle\" },\n      \"columns\": [\n        { \"name\": \"id\", \"type\": \"serial4\", \"primary\": true, \"default\": \"auto_increment\" },\n        { \"name\": \"spaltenname\", \"type\": \"text\", \"notnull\": true, \"cmt\": \"Spaltenbeschreibung\" },\n        { \"name\": \"zahlenspalte\", \"type\": \"int4\", \"notnull\": true, \"default\": \"0\" },\n        { \"name\": \"_created_at\", \"type\": \"timestamp\", \"default\": \"now()\" }\n      ],\n      \"permissions\": {\n        \"security\": { \"login\": true },\n        \"ops\": {\n          \"list\": { \"login\": true },\n          \"view\": { \"login\": true },\n          \"create\": { \"login\": true },\n          \"update\": { \"login\": true },\n          \"delete\": { \"login\": true, \"roles\": [\"admin\"] }\n        }\n      }\n    }\n  ]\n}\n\nVerwende als Spaltentyp (type) nur serial4 (Auto-Increment-PK) / text / int4 (Ganzzahl) / timestamp.\nErgänze Spalten nach Bedarf um notnull, default, unique, index und cmt.\n\nEntwirf nun in diesem Format die DB eines \"Bestandsverwaltungssystems\" für einen Fertigungsbetrieb. Die Anforderungen lauten:\n\n- Teile werden registriert, und der aktuelle Lagerbestand jedes Teils wird verwaltet.\n- Produkte werden registriert, und der aktuelle Lagerbestand jedes Produkts wird verwaltet.\n- Ein Produkt wird aus mehreren Teilen montiert. Es wird verwaltet, welche Teile in welcher Menge für welches Produkt benötigt werden (BOM, Stückliste).\n- Wareneingänge und Warenausgänge von Teilen/Produkten werden protokolliert. Insbesondere müssen beim Ereignis \"Teile montieren und ein Produkt produzieren\" die in diesem Moment verbrauchten Teile und die Menge der produzierten Produkte gemeinsam als ein Vorgang nachverfolgt werden (später muss abfragbar sein, \"wie viele Teile in die Herstellung dieses Produkts eingeflossen sind\").\n\nSetze den DB-Namen (dbName) auf \"inventory_management\".\nEntwirf höchstens 4 Tabellen, und zwar so praxisnah, dass sie sofort im Arbeitsalltag einsetzbar sind.\nGib ohne weitere Erklärung nur den fertigen .sfn-JSON-Code aus.\n","text",[1178,1215,1212],{"__ignoreMap":1216},"",[1165,1218,1219,1220,1223,1224,1227],{},"Nachfolgend ein Beispiel für eine so erzeugte KI-Antwort. Das tatsächliche Ergebnis kann je nach KI und je Durchlauf etwas abweichen — es muss nicht genau diesem Inhalt entsprechen, eine ähnliche Struktur genügt. Es muss jedoch ohne weitere Erklärung mit ",[1178,1221,1222],{},"{"," beginnen und mit ",[1178,1225,1226],{},"}"," enden, damit Sie das Ergebnis unverändert in den Editor einfügen können.",[1208,1229,1233],{"className":1230,"code":1231,"language":1232,"meta":1216,"style":1216},"language-json shiki shiki-themes github-light github-dark monokai","{\n  \"content-type\": \"application/setfn-schema\",\n  \"dbType\": \"sqlite3\",\n  \"apiBuild\": {\n    \"dbName\": \"inventory_management\",\n    \"dbEngine\": \"sqlite\",\n    \"includeClient\": false,\n    \"features\": {\n      \"realtime\": { \"enabled\": false },\n      \"upload\": { \"enabled\": false },\n      \"ai-chat\": { \"enabled\": false }\n    }\n  },\n  \"data\": [\n    {\n      \"table\": { \"name\": \"parts\", \"cmt\": \"Teilestamm. Anzeigen/Registrieren/Bearbeiten für alle Mitglieder, Löschen nur für Administratoren\" },\n      \"columns\": [\n        { \"name\": \"id\", \"type\": \"serial4\", \"primary\": true, \"default\": \"auto_increment\" },\n        { \"name\": \"part_code\", \"type\": \"text\", \"notnull\": true, \"unique\": true, \"cmt\": \"Teilecode\" },\n        { \"name\": \"name\", \"type\": \"text\", \"notnull\": true, \"cmt\": \"Teilename\" },\n        { \"name\": \"spec\", \"type\": \"text\", \"cmt\": \"Spezifikation (z. B. M2, 220V/50Hz). Bei gleichem Namen, aber abweichender Spezifikation als separater part_code registrieren\" },\n        { \"name\": \"category\", \"type\": \"text\", \"cmt\": \"Teilekategorie (Elektronikteile/Mechanikteile/Verpackungsmaterial usw.)\" },\n        { \"name\": \"unit\", \"type\": \"text\", \"notnull\": true, \"default\": \"EA\", \"cmt\": \"Einheit\" },\n        { \"name\": \"unit_cost\", \"type\": \"int4\", \"notnull\": true, \"default\": \"0\", \"cmt\": \"Stückpreis\" },\n        { \"name\": \"current_stock\", \"type\": \"int4\", \"notnull\": true, \"default\": \"0\", \"cmt\": \"Aktueller Bestand\" },\n        { \"name\": \"safety_stock\", \"type\": \"int4\", \"notnull\": true, \"default\": \"0\", \"cmt\": \"Sicherheitsbestand (Bestellpunkt)\" },\n        { \"name\": \"supplier\", \"type\": \"text\", \"cmt\": \"Lieferant\" },\n        { \"name\": \"_user_id\", \"type\": \"int4\", \"notnull\": true, \"index\": true },\n        { \"name\": \"_nick\", \"type\": \"text\", \"cmt\": \"Anzeigename des Mitglieds, das zuletzt registriert/bearbeitet hat\" },\n        { \"name\": \"_created_at\", \"type\": \"timestamp\", \"default\": \"now()\" }\n      ],\n      \"permissions\": {\n        \"security\": { \"login\": true, \"ownerColumn\": \"_user_id\" },\n        \"ops\": {\n          \"list\": { \"login\": true },\n          \"view\": { \"login\": true },\n          \"create\": { \"login\": true },\n          \"update\": { \"login\": true },\n          \"delete\": { \"login\": true, \"roles\": [\"admin\"] }\n        }\n      }\n    },\n    {\n      \"table\": { \"name\": \"products\", \"cmt\": \"Produktstamm. Anzeigen/Registrieren/Bearbeiten für alle Mitglieder, Löschen nur für Administratoren\" },\n      \"columns\": [\n        { \"name\": \"id\", \"type\": \"serial4\", \"primary\": true, \"default\": \"auto_increment\" },\n        { \"name\": \"product_code\", \"type\": \"text\", \"notnull\": true, \"unique\": true, \"cmt\": \"Produktcode\" },\n        { \"name\": \"name\", \"type\": \"text\", \"notnull\": true, \"cmt\": \"Produktname\" },\n        { \"name\": \"category\", \"type\": \"text\", \"cmt\": \"Produktkategorie\" },\n        { \"name\": \"unit\", \"type\": \"text\", \"notnull\": true, \"default\": \"EA\", \"cmt\": \"Einheit\" },\n        { \"name\": \"price\", \"type\": \"int4\", \"notnull\": true, \"default\": \"0\", \"cmt\": \"Verkaufspreis\" },\n        { \"name\": \"current_stock\", \"type\": \"int4\", \"notnull\": true, \"default\": \"0\", \"cmt\": \"Aktueller Bestand\" },\n        { \"name\": \"_user_id\", \"type\": \"int4\", \"notnull\": true, \"index\": true },\n        { \"name\": \"_nick\", \"type\": \"text\", \"cmt\": \"Anzeigename des Mitglieds, das zuletzt registriert/bearbeitet hat\" },\n        { \"name\": \"_created_at\", \"type\": \"timestamp\", \"default\": \"now()\" }\n      ],\n      \"permissions\": {\n        \"security\": { \"login\": true, \"ownerColumn\": \"_user_id\" },\n        \"ops\": {\n          \"list\": { \"login\": true },\n          \"view\": { \"login\": true },\n          \"create\": { \"login\": true },\n          \"update\": { \"login\": true },\n          \"delete\": { \"login\": true, \"roles\": [\"admin\"] }\n        }\n      }\n    },\n    {\n      \"table\": { \"name\": \"bom\", \"cmt\": \"Stückliste je Produkt (einstufig). Eine Unique-Beschränkung auf bom_key (product_id:part_id) verhindert, dass dasselbe Teil für dasselbe Produkt doppelt registriert wird\" },\n      \"columns\": [\n        { \"name\": \"id\", \"type\": \"serial4\", \"primary\": true, \"default\": \"auto_increment\" },\n        { \"name\": \"product_id\", \"type\": \"int4\", \"notnull\": true, \"index\": true },\n        { \"name\": \"part_id\", \"type\": \"int4\", \"notnull\": true, \"index\": true },\n        { \"name\": \"qty_per_unit\", \"type\": \"int4\", \"notnull\": true, \"default\": \"1\", \"cmt\": \"Benötigte Teilemenge für 1 Produkteinheit\" },\n        { \"name\": \"bom_key\", \"type\": \"text\", \"notnull\": true, \"unique\": true, \"cmt\": \"Kombination product_id:part_id. Verhindert doppelte Registrierung\" },\n        { \"name\": \"_user_id\", \"type\": \"int4\", \"notnull\": true, \"index\": true },\n        { \"name\": \"_nick\", \"type\": \"text\", \"cmt\": \"Anzeigename des registrierenden Mitglieds\" },\n        { \"name\": \"_created_at\", \"type\": \"timestamp\", \"default\": \"now()\" }\n      ],\n      \"permissions\": {\n        \"security\": { \"login\": true, \"ownerColumn\": \"_user_id\" },\n        \"ops\": {\n          \"list\": { \"login\": true },\n          \"view\": { \"login\": true },\n          \"create\": { \"login\": true },\n          \"update\": { \"login\": true },\n          \"delete\": { \"login\": true, \"roles\": [\"admin\"] }\n        }\n      }\n    },\n    {\n      \"table\": { \"name\": \"stock_transactions\", \"cmt\": \"Gemeinsamer Verlauf für Ein-/Ausgänge und Montage. item_type=part|product, tx_type=입고|출고|조립사용|조립생산 (Wareneingang|Warenausgang|Montageverbrauch|Montageproduktion). Ein Montageproduktionsereignis besteht aus mehreren Montageverbrauch-Einträgen (Teileverbrauch) + 1 Montageproduktion-Eintrag (Produktzugang), die dieselbe batch_id teilen, sodass nachvollziehbar ist, welche Teile in welcher Menge für ein Produkt verwendet wurden\" },\n      \"columns\": [\n        { \"name\": \"id\", \"type\": \"serial4\", \"primary\": true, \"default\": \"auto_increment\" },\n        { \"name\": \"item_type\", \"type\": \"text\", \"notnull\": true, \"cmt\": \"part | product\" },\n        { \"name\": \"item_id\", \"type\": \"int4\", \"notnull\": true, \"index\": true, \"cmt\": \"parts.id oder products.id\" },\n        { \"name\": \"item_name\", \"type\": \"text\", \"notnull\": true, \"cmt\": \"Momentaufnahme des Artikelnamens zum Zeitpunkt der Registrierung\" },\n        { \"name\": \"tx_type\", \"type\": \"text\", \"notnull\": true, \"cmt\": \"입고 (Wareneingang) | 출고 (Warenausgang) | 조립사용 (Montageverbrauch) | 조립생산 (Montageproduktion)\" },\n        { \"name\": \"reason\", \"type\": \"text\", \"cmt\": \"Grund des Ein-/Ausgangs. Bei Montageverbrauch/Montageproduktion leer, da tx_type selbst der Grund ist\" },\n        { \"name\": \"qty\", \"type\": \"int4\", \"notnull\": true, \"cmt\": \"Immer positiv. Die Richtung ergibt sich aus tx_type\" },\n        { \"name\": \"batch_id\", \"type\": \"text\", \"index\": true, \"cmt\": \"ID zur Bündelung eines Montageproduktionsereignisses. Bei einfachen Ein-/Ausgängen leer\" },\n        { \"name\": \"note\", \"type\": \"text\", \"cmt\": \"Notiz\" },\n        { \"name\": \"_user_id\", \"type\": \"int4\", \"notnull\": true, \"index\": true },\n        { \"name\": \"_nick\", \"type\": \"text\", \"cmt\": \"Anzeigename des registrierenden Mitglieds\" },\n        { \"name\": \"_created_at\", \"type\": \"timestamp\", \"default\": \"now()\" }\n      ],\n      \"permissions\": {\n        \"security\": { \"login\": true, \"ownerColumn\": \"_user_id\" },\n        \"ops\": {\n          \"list\": { \"login\": true },\n          \"view\": { \"login\": true },\n          \"create\": { \"login\": true },\n          \"update\": { \"login\": true, \"roles\": [\"admin\"] },\n          \"delete\": { \"login\": true, \"roles\": [\"admin\"] }\n        }\n      }\n    }\n  ]\n}\n","json",[1178,1234,1235,1244,1261,1274,1283,1296,1309,1323,1331,1350,1366,1383,1389,1395,1404,1410,1438,1446,1491,1541,1579,1610,1641,1689,1738,1785,1832,1863,1902,1933,1965,1971,1979,2005,2013,2029,2045,2061,2077,2105,2111,2117,2123,2128,2153,2160,2197,2244,2282,2312,2357,2404,2449,2486,2515,2544,2549,2556,2579,2586,2601,2616,2631,2646,2669,2674,2679,2684,2689,2714,2721,2758,2796,2834,2882,2929,2966,2996,3025,3030,3037,3060,3067,3082,3097,3112,3127,3150,3155,3160,3165,3170,3195,3202,3239,3278,3325,3364,3403,3434,3473,3512,3543,3580,3609,3638,3643,3650,3673,3680,3695,3710,3725,3749,3772,3777,3782,3787,3793],{"__ignoreMap":1216},[1236,1237,1240],"span",{"class":1238,"line":1239},"line",1,[1236,1241,1243],{"class":1242},"sMOD_","{\n",[1236,1245,1247,1251,1254,1258],{"class":1238,"line":1246},2,[1236,1248,1250],{"class":1249},"s-m8C","  \"content-type\"",[1236,1252,1253],{"class":1242},": ",[1236,1255,1257],{"class":1256},"sCZoN","\"application/setfn-schema\"",[1236,1259,1260],{"class":1242},",\n",[1236,1262,1264,1267,1269,1272],{"class":1238,"line":1263},3,[1236,1265,1266],{"class":1249},"  \"dbType\"",[1236,1268,1253],{"class":1242},[1236,1270,1271],{"class":1256},"\"sqlite3\"",[1236,1273,1260],{"class":1242},[1236,1275,1277,1280],{"class":1238,"line":1276},4,[1236,1278,1279],{"class":1249},"  \"apiBuild\"",[1236,1281,1282],{"class":1242},": {\n",[1236,1284,1286,1289,1291,1294],{"class":1238,"line":1285},5,[1236,1287,1288],{"class":1249},"    \"dbName\"",[1236,1290,1253],{"class":1242},[1236,1292,1293],{"class":1256},"\"inventory_management\"",[1236,1295,1260],{"class":1242},[1236,1297,1299,1302,1304,1307],{"class":1238,"line":1298},6,[1236,1300,1301],{"class":1249},"    \"dbEngine\"",[1236,1303,1253],{"class":1242},[1236,1305,1306],{"class":1256},"\"sqlite\"",[1236,1308,1260],{"class":1242},[1236,1310,1312,1315,1317,1321],{"class":1238,"line":1311},7,[1236,1313,1314],{"class":1249},"    \"includeClient\"",[1236,1316,1253],{"class":1242},[1236,1318,1320],{"class":1319},"s7F3e","false",[1236,1322,1260],{"class":1242},[1236,1324,1326,1329],{"class":1238,"line":1325},8,[1236,1327,1328],{"class":1249},"    \"features\"",[1236,1330,1282],{"class":1242},[1236,1332,1334,1337,1340,1343,1345,1347],{"class":1238,"line":1333},9,[1236,1335,1336],{"class":1249},"      \"realtime\"",[1236,1338,1339],{"class":1242},": { ",[1236,1341,1342],{"class":1249},"\"enabled\"",[1236,1344,1253],{"class":1242},[1236,1346,1320],{"class":1319},[1236,1348,1349],{"class":1242}," },\n",[1236,1351,1353,1356,1358,1360,1362,1364],{"class":1238,"line":1352},10,[1236,1354,1355],{"class":1249},"      \"upload\"",[1236,1357,1339],{"class":1242},[1236,1359,1342],{"class":1249},[1236,1361,1253],{"class":1242},[1236,1363,1320],{"class":1319},[1236,1365,1349],{"class":1242},[1236,1367,1369,1372,1374,1376,1378,1380],{"class":1238,"line":1368},11,[1236,1370,1371],{"class":1249},"      \"ai-chat\"",[1236,1373,1339],{"class":1242},[1236,1375,1342],{"class":1249},[1236,1377,1253],{"class":1242},[1236,1379,1320],{"class":1319},[1236,1381,1382],{"class":1242}," }\n",[1236,1384,1386],{"class":1238,"line":1385},12,[1236,1387,1388],{"class":1242},"    }\n",[1236,1390,1392],{"class":1238,"line":1391},13,[1236,1393,1394],{"class":1242},"  },\n",[1236,1396,1398,1401],{"class":1238,"line":1397},14,[1236,1399,1400],{"class":1249},"  \"data\"",[1236,1402,1403],{"class":1242},": [\n",[1236,1405,1407],{"class":1238,"line":1406},15,[1236,1408,1409],{"class":1242},"    {\n",[1236,1411,1413,1416,1418,1421,1423,1426,1428,1431,1433,1436],{"class":1238,"line":1412},16,[1236,1414,1415],{"class":1249},"      \"table\"",[1236,1417,1339],{"class":1242},[1236,1419,1420],{"class":1249},"\"name\"",[1236,1422,1253],{"class":1242},[1236,1424,1425],{"class":1256},"\"parts\"",[1236,1427,1181],{"class":1242},[1236,1429,1430],{"class":1249},"\"cmt\"",[1236,1432,1253],{"class":1242},[1236,1434,1435],{"class":1256},"\"Teilestamm. Anzeigen/Registrieren/Bearbeiten für alle Mitglieder, Löschen nur für Administratoren\"",[1236,1437,1349],{"class":1242},[1236,1439,1441,1444],{"class":1238,"line":1440},17,[1236,1442,1443],{"class":1249},"      \"columns\"",[1236,1445,1403],{"class":1242},[1236,1447,1449,1452,1454,1456,1459,1461,1464,1466,1469,1471,1474,1476,1479,1481,1484,1486,1489],{"class":1238,"line":1448},18,[1236,1450,1451],{"class":1242},"        { ",[1236,1453,1420],{"class":1249},[1236,1455,1253],{"class":1242},[1236,1457,1458],{"class":1256},"\"id\"",[1236,1460,1181],{"class":1242},[1236,1462,1463],{"class":1249},"\"type\"",[1236,1465,1253],{"class":1242},[1236,1467,1468],{"class":1256},"\"serial4\"",[1236,1470,1181],{"class":1242},[1236,1472,1473],{"class":1249},"\"primary\"",[1236,1475,1253],{"class":1242},[1236,1477,1478],{"class":1319},"true",[1236,1480,1181],{"class":1242},[1236,1482,1483],{"class":1249},"\"default\"",[1236,1485,1253],{"class":1242},[1236,1487,1488],{"class":1256},"\"auto_increment\"",[1236,1490,1349],{"class":1242},[1236,1492,1494,1496,1498,1500,1503,1505,1507,1509,1512,1514,1517,1519,1521,1523,1526,1528,1530,1532,1534,1536,1539],{"class":1238,"line":1493},19,[1236,1495,1451],{"class":1242},[1236,1497,1420],{"class":1249},[1236,1499,1253],{"class":1242},[1236,1501,1502],{"class":1256},"\"part_code\"",[1236,1504,1181],{"class":1242},[1236,1506,1463],{"class":1249},[1236,1508,1253],{"class":1242},[1236,1510,1511],{"class":1256},"\"text\"",[1236,1513,1181],{"class":1242},[1236,1515,1516],{"class":1249},"\"notnull\"",[1236,1518,1253],{"class":1242},[1236,1520,1478],{"class":1319},[1236,1522,1181],{"class":1242},[1236,1524,1525],{"class":1249},"\"unique\"",[1236,1527,1253],{"class":1242},[1236,1529,1478],{"class":1319},[1236,1531,1181],{"class":1242},[1236,1533,1430],{"class":1249},[1236,1535,1253],{"class":1242},[1236,1537,1538],{"class":1256},"\"Teilecode\"",[1236,1540,1349],{"class":1242},[1236,1542,1544,1546,1548,1550,1552,1554,1556,1558,1560,1562,1564,1566,1568,1570,1572,1574,1577],{"class":1238,"line":1543},20,[1236,1545,1451],{"class":1242},[1236,1547,1420],{"class":1249},[1236,1549,1253],{"class":1242},[1236,1551,1420],{"class":1256},[1236,1553,1181],{"class":1242},[1236,1555,1463],{"class":1249},[1236,1557,1253],{"class":1242},[1236,1559,1511],{"class":1256},[1236,1561,1181],{"class":1242},[1236,1563,1516],{"class":1249},[1236,1565,1253],{"class":1242},[1236,1567,1478],{"class":1319},[1236,1569,1181],{"class":1242},[1236,1571,1430],{"class":1249},[1236,1573,1253],{"class":1242},[1236,1575,1576],{"class":1256},"\"Teilename\"",[1236,1578,1349],{"class":1242},[1236,1580,1582,1584,1586,1588,1591,1593,1595,1597,1599,1601,1603,1605,1608],{"class":1238,"line":1581},21,[1236,1583,1451],{"class":1242},[1236,1585,1420],{"class":1249},[1236,1587,1253],{"class":1242},[1236,1589,1590],{"class":1256},"\"spec\"",[1236,1592,1181],{"class":1242},[1236,1594,1463],{"class":1249},[1236,1596,1253],{"class":1242},[1236,1598,1511],{"class":1256},[1236,1600,1181],{"class":1242},[1236,1602,1430],{"class":1249},[1236,1604,1253],{"class":1242},[1236,1606,1607],{"class":1256},"\"Spezifikation (z. B. M2, 220V/50Hz). Bei gleichem Namen, aber abweichender Spezifikation als separater part_code registrieren\"",[1236,1609,1349],{"class":1242},[1236,1611,1613,1615,1617,1619,1622,1624,1626,1628,1630,1632,1634,1636,1639],{"class":1238,"line":1612},22,[1236,1614,1451],{"class":1242},[1236,1616,1420],{"class":1249},[1236,1618,1253],{"class":1242},[1236,1620,1621],{"class":1256},"\"category\"",[1236,1623,1181],{"class":1242},[1236,1625,1463],{"class":1249},[1236,1627,1253],{"class":1242},[1236,1629,1511],{"class":1256},[1236,1631,1181],{"class":1242},[1236,1633,1430],{"class":1249},[1236,1635,1253],{"class":1242},[1236,1637,1638],{"class":1256},"\"Teilekategorie (Elektronikteile/Mechanikteile/Verpackungsmaterial usw.)\"",[1236,1640,1349],{"class":1242},[1236,1642,1644,1646,1648,1650,1653,1655,1657,1659,1661,1663,1665,1667,1669,1671,1673,1675,1678,1680,1682,1684,1687],{"class":1238,"line":1643},23,[1236,1645,1451],{"class":1242},[1236,1647,1420],{"class":1249},[1236,1649,1253],{"class":1242},[1236,1651,1652],{"class":1256},"\"unit\"",[1236,1654,1181],{"class":1242},[1236,1656,1463],{"class":1249},[1236,1658,1253],{"class":1242},[1236,1660,1511],{"class":1256},[1236,1662,1181],{"class":1242},[1236,1664,1516],{"class":1249},[1236,1666,1253],{"class":1242},[1236,1668,1478],{"class":1319},[1236,1670,1181],{"class":1242},[1236,1672,1483],{"class":1249},[1236,1674,1253],{"class":1242},[1236,1676,1677],{"class":1256},"\"EA\"",[1236,1679,1181],{"class":1242},[1236,1681,1430],{"class":1249},[1236,1683,1253],{"class":1242},[1236,1685,1686],{"class":1256},"\"Einheit\"",[1236,1688,1349],{"class":1242},[1236,1690,1692,1694,1696,1698,1701,1703,1705,1707,1710,1712,1714,1716,1718,1720,1722,1724,1727,1729,1731,1733,1736],{"class":1238,"line":1691},24,[1236,1693,1451],{"class":1242},[1236,1695,1420],{"class":1249},[1236,1697,1253],{"class":1242},[1236,1699,1700],{"class":1256},"\"unit_cost\"",[1236,1702,1181],{"class":1242},[1236,1704,1463],{"class":1249},[1236,1706,1253],{"class":1242},[1236,1708,1709],{"class":1256},"\"int4\"",[1236,1711,1181],{"class":1242},[1236,1713,1516],{"class":1249},[1236,1715,1253],{"class":1242},[1236,1717,1478],{"class":1319},[1236,1719,1181],{"class":1242},[1236,1721,1483],{"class":1249},[1236,1723,1253],{"class":1242},[1236,1725,1726],{"class":1256},"\"0\"",[1236,1728,1181],{"class":1242},[1236,1730,1430],{"class":1249},[1236,1732,1253],{"class":1242},[1236,1734,1735],{"class":1256},"\"Stückpreis\"",[1236,1737,1349],{"class":1242},[1236,1739,1741,1743,1745,1747,1750,1752,1754,1756,1758,1760,1762,1764,1766,1768,1770,1772,1774,1776,1778,1780,1783],{"class":1238,"line":1740},25,[1236,1742,1451],{"class":1242},[1236,1744,1420],{"class":1249},[1236,1746,1253],{"class":1242},[1236,1748,1749],{"class":1256},"\"current_stock\"",[1236,1751,1181],{"class":1242},[1236,1753,1463],{"class":1249},[1236,1755,1253],{"class":1242},[1236,1757,1709],{"class":1256},[1236,1759,1181],{"class":1242},[1236,1761,1516],{"class":1249},[1236,1763,1253],{"class":1242},[1236,1765,1478],{"class":1319},[1236,1767,1181],{"class":1242},[1236,1769,1483],{"class":1249},[1236,1771,1253],{"class":1242},[1236,1773,1726],{"class":1256},[1236,1775,1181],{"class":1242},[1236,1777,1430],{"class":1249},[1236,1779,1253],{"class":1242},[1236,1781,1782],{"class":1256},"\"Aktueller Bestand\"",[1236,1784,1349],{"class":1242},[1236,1786,1788,1790,1792,1794,1797,1799,1801,1803,1805,1807,1809,1811,1813,1815,1817,1819,1821,1823,1825,1827,1830],{"class":1238,"line":1787},26,[1236,1789,1451],{"class":1242},[1236,1791,1420],{"class":1249},[1236,1793,1253],{"class":1242},[1236,1795,1796],{"class":1256},"\"safety_stock\"",[1236,1798,1181],{"class":1242},[1236,1800,1463],{"class":1249},[1236,1802,1253],{"class":1242},[1236,1804,1709],{"class":1256},[1236,1806,1181],{"class":1242},[1236,1808,1516],{"class":1249},[1236,1810,1253],{"class":1242},[1236,1812,1478],{"class":1319},[1236,1814,1181],{"class":1242},[1236,1816,1483],{"class":1249},[1236,1818,1253],{"class":1242},[1236,1820,1726],{"class":1256},[1236,1822,1181],{"class":1242},[1236,1824,1430],{"class":1249},[1236,1826,1253],{"class":1242},[1236,1828,1829],{"class":1256},"\"Sicherheitsbestand (Bestellpunkt)\"",[1236,1831,1349],{"class":1242},[1236,1833,1835,1837,1839,1841,1844,1846,1848,1850,1852,1854,1856,1858,1861],{"class":1238,"line":1834},27,[1236,1836,1451],{"class":1242},[1236,1838,1420],{"class":1249},[1236,1840,1253],{"class":1242},[1236,1842,1843],{"class":1256},"\"supplier\"",[1236,1845,1181],{"class":1242},[1236,1847,1463],{"class":1249},[1236,1849,1253],{"class":1242},[1236,1851,1511],{"class":1256},[1236,1853,1181],{"class":1242},[1236,1855,1430],{"class":1249},[1236,1857,1253],{"class":1242},[1236,1859,1860],{"class":1256},"\"Lieferant\"",[1236,1862,1349],{"class":1242},[1236,1864,1866,1868,1870,1872,1875,1877,1879,1881,1883,1885,1887,1889,1891,1893,1896,1898,1900],{"class":1238,"line":1865},28,[1236,1867,1451],{"class":1242},[1236,1869,1420],{"class":1249},[1236,1871,1253],{"class":1242},[1236,1873,1874],{"class":1256},"\"_user_id\"",[1236,1876,1181],{"class":1242},[1236,1878,1463],{"class":1249},[1236,1880,1253],{"class":1242},[1236,1882,1709],{"class":1256},[1236,1884,1181],{"class":1242},[1236,1886,1516],{"class":1249},[1236,1888,1253],{"class":1242},[1236,1890,1478],{"class":1319},[1236,1892,1181],{"class":1242},[1236,1894,1895],{"class":1249},"\"index\"",[1236,1897,1253],{"class":1242},[1236,1899,1478],{"class":1319},[1236,1901,1349],{"class":1242},[1236,1903,1905,1907,1909,1911,1914,1916,1918,1920,1922,1924,1926,1928,1931],{"class":1238,"line":1904},29,[1236,1906,1451],{"class":1242},[1236,1908,1420],{"class":1249},[1236,1910,1253],{"class":1242},[1236,1912,1913],{"class":1256},"\"_nick\"",[1236,1915,1181],{"class":1242},[1236,1917,1463],{"class":1249},[1236,1919,1253],{"class":1242},[1236,1921,1511],{"class":1256},[1236,1923,1181],{"class":1242},[1236,1925,1430],{"class":1249},[1236,1927,1253],{"class":1242},[1236,1929,1930],{"class":1256},"\"Anzeigename des Mitglieds, das zuletzt registriert/bearbeitet hat\"",[1236,1932,1349],{"class":1242},[1236,1934,1936,1938,1940,1942,1945,1947,1949,1951,1954,1956,1958,1960,1963],{"class":1238,"line":1935},30,[1236,1937,1451],{"class":1242},[1236,1939,1420],{"class":1249},[1236,1941,1253],{"class":1242},[1236,1943,1944],{"class":1256},"\"_created_at\"",[1236,1946,1181],{"class":1242},[1236,1948,1463],{"class":1249},[1236,1950,1253],{"class":1242},[1236,1952,1953],{"class":1256},"\"timestamp\"",[1236,1955,1181],{"class":1242},[1236,1957,1483],{"class":1249},[1236,1959,1253],{"class":1242},[1236,1961,1962],{"class":1256},"\"now()\"",[1236,1964,1382],{"class":1242},[1236,1966,1968],{"class":1238,"line":1967},31,[1236,1969,1970],{"class":1242},"      ],\n",[1236,1972,1974,1977],{"class":1238,"line":1973},32,[1236,1975,1976],{"class":1249},"      \"permissions\"",[1236,1978,1282],{"class":1242},[1236,1980,1982,1985,1987,1990,1992,1994,1996,1999,2001,2003],{"class":1238,"line":1981},33,[1236,1983,1984],{"class":1249},"        \"security\"",[1236,1986,1339],{"class":1242},[1236,1988,1989],{"class":1249},"\"login\"",[1236,1991,1253],{"class":1242},[1236,1993,1478],{"class":1319},[1236,1995,1181],{"class":1242},[1236,1997,1998],{"class":1249},"\"ownerColumn\"",[1236,2000,1253],{"class":1242},[1236,2002,1874],{"class":1256},[1236,2004,1349],{"class":1242},[1236,2006,2008,2011],{"class":1238,"line":2007},34,[1236,2009,2010],{"class":1249},"        \"ops\"",[1236,2012,1282],{"class":1242},[1236,2014,2016,2019,2021,2023,2025,2027],{"class":1238,"line":2015},35,[1236,2017,2018],{"class":1249},"          \"list\"",[1236,2020,1339],{"class":1242},[1236,2022,1989],{"class":1249},[1236,2024,1253],{"class":1242},[1236,2026,1478],{"class":1319},[1236,2028,1349],{"class":1242},[1236,2030,2032,2035,2037,2039,2041,2043],{"class":1238,"line":2031},36,[1236,2033,2034],{"class":1249},"          \"view\"",[1236,2036,1339],{"class":1242},[1236,2038,1989],{"class":1249},[1236,2040,1253],{"class":1242},[1236,2042,1478],{"class":1319},[1236,2044,1349],{"class":1242},[1236,2046,2048,2051,2053,2055,2057,2059],{"class":1238,"line":2047},37,[1236,2049,2050],{"class":1249},"          \"create\"",[1236,2052,1339],{"class":1242},[1236,2054,1989],{"class":1249},[1236,2056,1253],{"class":1242},[1236,2058,1478],{"class":1319},[1236,2060,1349],{"class":1242},[1236,2062,2064,2067,2069,2071,2073,2075],{"class":1238,"line":2063},38,[1236,2065,2066],{"class":1249},"          \"update\"",[1236,2068,1339],{"class":1242},[1236,2070,1989],{"class":1249},[1236,2072,1253],{"class":1242},[1236,2074,1478],{"class":1319},[1236,2076,1349],{"class":1242},[1236,2078,2080,2083,2085,2087,2089,2091,2093,2096,2099,2102],{"class":1238,"line":2079},39,[1236,2081,2082],{"class":1249},"          \"delete\"",[1236,2084,1339],{"class":1242},[1236,2086,1989],{"class":1249},[1236,2088,1253],{"class":1242},[1236,2090,1478],{"class":1319},[1236,2092,1181],{"class":1242},[1236,2094,2095],{"class":1249},"\"roles\"",[1236,2097,2098],{"class":1242},": [",[1236,2100,2101],{"class":1256},"\"admin\"",[1236,2103,2104],{"class":1242},"] }\n",[1236,2106,2108],{"class":1238,"line":2107},40,[1236,2109,2110],{"class":1242},"        }\n",[1236,2112,2114],{"class":1238,"line":2113},41,[1236,2115,2116],{"class":1242},"      }\n",[1236,2118,2120],{"class":1238,"line":2119},42,[1236,2121,2122],{"class":1242},"    },\n",[1236,2124,2126],{"class":1238,"line":2125},43,[1236,2127,1409],{"class":1242},[1236,2129,2131,2133,2135,2137,2139,2142,2144,2146,2148,2151],{"class":1238,"line":2130},44,[1236,2132,1415],{"class":1249},[1236,2134,1339],{"class":1242},[1236,2136,1420],{"class":1249},[1236,2138,1253],{"class":1242},[1236,2140,2141],{"class":1256},"\"products\"",[1236,2143,1181],{"class":1242},[1236,2145,1430],{"class":1249},[1236,2147,1253],{"class":1242},[1236,2149,2150],{"class":1256},"\"Produktstamm. Anzeigen/Registrieren/Bearbeiten für alle Mitglieder, Löschen nur für Administratoren\"",[1236,2152,1349],{"class":1242},[1236,2154,2156,2158],{"class":1238,"line":2155},45,[1236,2157,1443],{"class":1249},[1236,2159,1403],{"class":1242},[1236,2161,2163,2165,2167,2169,2171,2173,2175,2177,2179,2181,2183,2185,2187,2189,2191,2193,2195],{"class":1238,"line":2162},46,[1236,2164,1451],{"class":1242},[1236,2166,1420],{"class":1249},[1236,2168,1253],{"class":1242},[1236,2170,1458],{"class":1256},[1236,2172,1181],{"class":1242},[1236,2174,1463],{"class":1249},[1236,2176,1253],{"class":1242},[1236,2178,1468],{"class":1256},[1236,2180,1181],{"class":1242},[1236,2182,1473],{"class":1249},[1236,2184,1253],{"class":1242},[1236,2186,1478],{"class":1319},[1236,2188,1181],{"class":1242},[1236,2190,1483],{"class":1249},[1236,2192,1253],{"class":1242},[1236,2194,1488],{"class":1256},[1236,2196,1349],{"class":1242},[1236,2198,2200,2202,2204,2206,2209,2211,2213,2215,2217,2219,2221,2223,2225,2227,2229,2231,2233,2235,2237,2239,2242],{"class":1238,"line":2199},47,[1236,2201,1451],{"class":1242},[1236,2203,1420],{"class":1249},[1236,2205,1253],{"class":1242},[1236,2207,2208],{"class":1256},"\"product_code\"",[1236,2210,1181],{"class":1242},[1236,2212,1463],{"class":1249},[1236,2214,1253],{"class":1242},[1236,2216,1511],{"class":1256},[1236,2218,1181],{"class":1242},[1236,2220,1516],{"class":1249},[1236,2222,1253],{"class":1242},[1236,2224,1478],{"class":1319},[1236,2226,1181],{"class":1242},[1236,2228,1525],{"class":1249},[1236,2230,1253],{"class":1242},[1236,2232,1478],{"class":1319},[1236,2234,1181],{"class":1242},[1236,2236,1430],{"class":1249},[1236,2238,1253],{"class":1242},[1236,2240,2241],{"class":1256},"\"Produktcode\"",[1236,2243,1349],{"class":1242},[1236,2245,2247,2249,2251,2253,2255,2257,2259,2261,2263,2265,2267,2269,2271,2273,2275,2277,2280],{"class":1238,"line":2246},48,[1236,2248,1451],{"class":1242},[1236,2250,1420],{"class":1249},[1236,2252,1253],{"class":1242},[1236,2254,1420],{"class":1256},[1236,2256,1181],{"class":1242},[1236,2258,1463],{"class":1249},[1236,2260,1253],{"class":1242},[1236,2262,1511],{"class":1256},[1236,2264,1181],{"class":1242},[1236,2266,1516],{"class":1249},[1236,2268,1253],{"class":1242},[1236,2270,1478],{"class":1319},[1236,2272,1181],{"class":1242},[1236,2274,1430],{"class":1249},[1236,2276,1253],{"class":1242},[1236,2278,2279],{"class":1256},"\"Produktname\"",[1236,2281,1349],{"class":1242},[1236,2283,2285,2287,2289,2291,2293,2295,2297,2299,2301,2303,2305,2307,2310],{"class":1238,"line":2284},49,[1236,2286,1451],{"class":1242},[1236,2288,1420],{"class":1249},[1236,2290,1253],{"class":1242},[1236,2292,1621],{"class":1256},[1236,2294,1181],{"class":1242},[1236,2296,1463],{"class":1249},[1236,2298,1253],{"class":1242},[1236,2300,1511],{"class":1256},[1236,2302,1181],{"class":1242},[1236,2304,1430],{"class":1249},[1236,2306,1253],{"class":1242},[1236,2308,2309],{"class":1256},"\"Produktkategorie\"",[1236,2311,1349],{"class":1242},[1236,2313,2315,2317,2319,2321,2323,2325,2327,2329,2331,2333,2335,2337,2339,2341,2343,2345,2347,2349,2351,2353,2355],{"class":1238,"line":2314},50,[1236,2316,1451],{"class":1242},[1236,2318,1420],{"class":1249},[1236,2320,1253],{"class":1242},[1236,2322,1652],{"class":1256},[1236,2324,1181],{"class":1242},[1236,2326,1463],{"class":1249},[1236,2328,1253],{"class":1242},[1236,2330,1511],{"class":1256},[1236,2332,1181],{"class":1242},[1236,2334,1516],{"class":1249},[1236,2336,1253],{"class":1242},[1236,2338,1478],{"class":1319},[1236,2340,1181],{"class":1242},[1236,2342,1483],{"class":1249},[1236,2344,1253],{"class":1242},[1236,2346,1677],{"class":1256},[1236,2348,1181],{"class":1242},[1236,2350,1430],{"class":1249},[1236,2352,1253],{"class":1242},[1236,2354,1686],{"class":1256},[1236,2356,1349],{"class":1242},[1236,2358,2360,2362,2364,2366,2369,2371,2373,2375,2377,2379,2381,2383,2385,2387,2389,2391,2393,2395,2397,2399,2402],{"class":1238,"line":2359},51,[1236,2361,1451],{"class":1242},[1236,2363,1420],{"class":1249},[1236,2365,1253],{"class":1242},[1236,2367,2368],{"class":1256},"\"price\"",[1236,2370,1181],{"class":1242},[1236,2372,1463],{"class":1249},[1236,2374,1253],{"class":1242},[1236,2376,1709],{"class":1256},[1236,2378,1181],{"class":1242},[1236,2380,1516],{"class":1249},[1236,2382,1253],{"class":1242},[1236,2384,1478],{"class":1319},[1236,2386,1181],{"class":1242},[1236,2388,1483],{"class":1249},[1236,2390,1253],{"class":1242},[1236,2392,1726],{"class":1256},[1236,2394,1181],{"class":1242},[1236,2396,1430],{"class":1249},[1236,2398,1253],{"class":1242},[1236,2400,2401],{"class":1256},"\"Verkaufspreis\"",[1236,2403,1349],{"class":1242},[1236,2405,2407,2409,2411,2413,2415,2417,2419,2421,2423,2425,2427,2429,2431,2433,2435,2437,2439,2441,2443,2445,2447],{"class":1238,"line":2406},52,[1236,2408,1451],{"class":1242},[1236,2410,1420],{"class":1249},[1236,2412,1253],{"class":1242},[1236,2414,1749],{"class":1256},[1236,2416,1181],{"class":1242},[1236,2418,1463],{"class":1249},[1236,2420,1253],{"class":1242},[1236,2422,1709],{"class":1256},[1236,2424,1181],{"class":1242},[1236,2426,1516],{"class":1249},[1236,2428,1253],{"class":1242},[1236,2430,1478],{"class":1319},[1236,2432,1181],{"class":1242},[1236,2434,1483],{"class":1249},[1236,2436,1253],{"class":1242},[1236,2438,1726],{"class":1256},[1236,2440,1181],{"class":1242},[1236,2442,1430],{"class":1249},[1236,2444,1253],{"class":1242},[1236,2446,1782],{"class":1256},[1236,2448,1349],{"class":1242},[1236,2450,2452,2454,2456,2458,2460,2462,2464,2466,2468,2470,2472,2474,2476,2478,2480,2482,2484],{"class":1238,"line":2451},53,[1236,2453,1451],{"class":1242},[1236,2455,1420],{"class":1249},[1236,2457,1253],{"class":1242},[1236,2459,1874],{"class":1256},[1236,2461,1181],{"class":1242},[1236,2463,1463],{"class":1249},[1236,2465,1253],{"class":1242},[1236,2467,1709],{"class":1256},[1236,2469,1181],{"class":1242},[1236,2471,1516],{"class":1249},[1236,2473,1253],{"class":1242},[1236,2475,1478],{"class":1319},[1236,2477,1181],{"class":1242},[1236,2479,1895],{"class":1249},[1236,2481,1253],{"class":1242},[1236,2483,1478],{"class":1319},[1236,2485,1349],{"class":1242},[1236,2487,2489,2491,2493,2495,2497,2499,2501,2503,2505,2507,2509,2511,2513],{"class":1238,"line":2488},54,[1236,2490,1451],{"class":1242},[1236,2492,1420],{"class":1249},[1236,2494,1253],{"class":1242},[1236,2496,1913],{"class":1256},[1236,2498,1181],{"class":1242},[1236,2500,1463],{"class":1249},[1236,2502,1253],{"class":1242},[1236,2504,1511],{"class":1256},[1236,2506,1181],{"class":1242},[1236,2508,1430],{"class":1249},[1236,2510,1253],{"class":1242},[1236,2512,1930],{"class":1256},[1236,2514,1349],{"class":1242},[1236,2516,2518,2520,2522,2524,2526,2528,2530,2532,2534,2536,2538,2540,2542],{"class":1238,"line":2517},55,[1236,2519,1451],{"class":1242},[1236,2521,1420],{"class":1249},[1236,2523,1253],{"class":1242},[1236,2525,1944],{"class":1256},[1236,2527,1181],{"class":1242},[1236,2529,1463],{"class":1249},[1236,2531,1253],{"class":1242},[1236,2533,1953],{"class":1256},[1236,2535,1181],{"class":1242},[1236,2537,1483],{"class":1249},[1236,2539,1253],{"class":1242},[1236,2541,1962],{"class":1256},[1236,2543,1382],{"class":1242},[1236,2545,2547],{"class":1238,"line":2546},56,[1236,2548,1970],{"class":1242},[1236,2550,2552,2554],{"class":1238,"line":2551},57,[1236,2553,1976],{"class":1249},[1236,2555,1282],{"class":1242},[1236,2557,2559,2561,2563,2565,2567,2569,2571,2573,2575,2577],{"class":1238,"line":2558},58,[1236,2560,1984],{"class":1249},[1236,2562,1339],{"class":1242},[1236,2564,1989],{"class":1249},[1236,2566,1253],{"class":1242},[1236,2568,1478],{"class":1319},[1236,2570,1181],{"class":1242},[1236,2572,1998],{"class":1249},[1236,2574,1253],{"class":1242},[1236,2576,1874],{"class":1256},[1236,2578,1349],{"class":1242},[1236,2580,2582,2584],{"class":1238,"line":2581},59,[1236,2583,2010],{"class":1249},[1236,2585,1282],{"class":1242},[1236,2587,2589,2591,2593,2595,2597,2599],{"class":1238,"line":2588},60,[1236,2590,2018],{"class":1249},[1236,2592,1339],{"class":1242},[1236,2594,1989],{"class":1249},[1236,2596,1253],{"class":1242},[1236,2598,1478],{"class":1319},[1236,2600,1349],{"class":1242},[1236,2602,2604,2606,2608,2610,2612,2614],{"class":1238,"line":2603},61,[1236,2605,2034],{"class":1249},[1236,2607,1339],{"class":1242},[1236,2609,1989],{"class":1249},[1236,2611,1253],{"class":1242},[1236,2613,1478],{"class":1319},[1236,2615,1349],{"class":1242},[1236,2617,2619,2621,2623,2625,2627,2629],{"class":1238,"line":2618},62,[1236,2620,2050],{"class":1249},[1236,2622,1339],{"class":1242},[1236,2624,1989],{"class":1249},[1236,2626,1253],{"class":1242},[1236,2628,1478],{"class":1319},[1236,2630,1349],{"class":1242},[1236,2632,2634,2636,2638,2640,2642,2644],{"class":1238,"line":2633},63,[1236,2635,2066],{"class":1249},[1236,2637,1339],{"class":1242},[1236,2639,1989],{"class":1249},[1236,2641,1253],{"class":1242},[1236,2643,1478],{"class":1319},[1236,2645,1349],{"class":1242},[1236,2647,2649,2651,2653,2655,2657,2659,2661,2663,2665,2667],{"class":1238,"line":2648},64,[1236,2650,2082],{"class":1249},[1236,2652,1339],{"class":1242},[1236,2654,1989],{"class":1249},[1236,2656,1253],{"class":1242},[1236,2658,1478],{"class":1319},[1236,2660,1181],{"class":1242},[1236,2662,2095],{"class":1249},[1236,2664,2098],{"class":1242},[1236,2666,2101],{"class":1256},[1236,2668,2104],{"class":1242},[1236,2670,2672],{"class":1238,"line":2671},65,[1236,2673,2110],{"class":1242},[1236,2675,2677],{"class":1238,"line":2676},66,[1236,2678,2116],{"class":1242},[1236,2680,2682],{"class":1238,"line":2681},67,[1236,2683,2122],{"class":1242},[1236,2685,2687],{"class":1238,"line":2686},68,[1236,2688,1409],{"class":1242},[1236,2690,2692,2694,2696,2698,2700,2703,2705,2707,2709,2712],{"class":1238,"line":2691},69,[1236,2693,1415],{"class":1249},[1236,2695,1339],{"class":1242},[1236,2697,1420],{"class":1249},[1236,2699,1253],{"class":1242},[1236,2701,2702],{"class":1256},"\"bom\"",[1236,2704,1181],{"class":1242},[1236,2706,1430],{"class":1249},[1236,2708,1253],{"class":1242},[1236,2710,2711],{"class":1256},"\"Stückliste je Produkt (einstufig). Eine Unique-Beschränkung auf bom_key (product_id:part_id) verhindert, dass dasselbe Teil für dasselbe Produkt doppelt registriert wird\"",[1236,2713,1349],{"class":1242},[1236,2715,2717,2719],{"class":1238,"line":2716},70,[1236,2718,1443],{"class":1249},[1236,2720,1403],{"class":1242},[1236,2722,2724,2726,2728,2730,2732,2734,2736,2738,2740,2742,2744,2746,2748,2750,2752,2754,2756],{"class":1238,"line":2723},71,[1236,2725,1451],{"class":1242},[1236,2727,1420],{"class":1249},[1236,2729,1253],{"class":1242},[1236,2731,1458],{"class":1256},[1236,2733,1181],{"class":1242},[1236,2735,1463],{"class":1249},[1236,2737,1253],{"class":1242},[1236,2739,1468],{"class":1256},[1236,2741,1181],{"class":1242},[1236,2743,1473],{"class":1249},[1236,2745,1253],{"class":1242},[1236,2747,1478],{"class":1319},[1236,2749,1181],{"class":1242},[1236,2751,1483],{"class":1249},[1236,2753,1253],{"class":1242},[1236,2755,1488],{"class":1256},[1236,2757,1349],{"class":1242},[1236,2759,2761,2763,2765,2767,2770,2772,2774,2776,2778,2780,2782,2784,2786,2788,2790,2792,2794],{"class":1238,"line":2760},72,[1236,2762,1451],{"class":1242},[1236,2764,1420],{"class":1249},[1236,2766,1253],{"class":1242},[1236,2768,2769],{"class":1256},"\"product_id\"",[1236,2771,1181],{"class":1242},[1236,2773,1463],{"class":1249},[1236,2775,1253],{"class":1242},[1236,2777,1709],{"class":1256},[1236,2779,1181],{"class":1242},[1236,2781,1516],{"class":1249},[1236,2783,1253],{"class":1242},[1236,2785,1478],{"class":1319},[1236,2787,1181],{"class":1242},[1236,2789,1895],{"class":1249},[1236,2791,1253],{"class":1242},[1236,2793,1478],{"class":1319},[1236,2795,1349],{"class":1242},[1236,2797,2799,2801,2803,2805,2808,2810,2812,2814,2816,2818,2820,2822,2824,2826,2828,2830,2832],{"class":1238,"line":2798},73,[1236,2800,1451],{"class":1242},[1236,2802,1420],{"class":1249},[1236,2804,1253],{"class":1242},[1236,2806,2807],{"class":1256},"\"part_id\"",[1236,2809,1181],{"class":1242},[1236,2811,1463],{"class":1249},[1236,2813,1253],{"class":1242},[1236,2815,1709],{"class":1256},[1236,2817,1181],{"class":1242},[1236,2819,1516],{"class":1249},[1236,2821,1253],{"class":1242},[1236,2823,1478],{"class":1319},[1236,2825,1181],{"class":1242},[1236,2827,1895],{"class":1249},[1236,2829,1253],{"class":1242},[1236,2831,1478],{"class":1319},[1236,2833,1349],{"class":1242},[1236,2835,2837,2839,2841,2843,2846,2848,2850,2852,2854,2856,2858,2860,2862,2864,2866,2868,2871,2873,2875,2877,2880],{"class":1238,"line":2836},74,[1236,2838,1451],{"class":1242},[1236,2840,1420],{"class":1249},[1236,2842,1253],{"class":1242},[1236,2844,2845],{"class":1256},"\"qty_per_unit\"",[1236,2847,1181],{"class":1242},[1236,2849,1463],{"class":1249},[1236,2851,1253],{"class":1242},[1236,2853,1709],{"class":1256},[1236,2855,1181],{"class":1242},[1236,2857,1516],{"class":1249},[1236,2859,1253],{"class":1242},[1236,2861,1478],{"class":1319},[1236,2863,1181],{"class":1242},[1236,2865,1483],{"class":1249},[1236,2867,1253],{"class":1242},[1236,2869,2870],{"class":1256},"\"1\"",[1236,2872,1181],{"class":1242},[1236,2874,1430],{"class":1249},[1236,2876,1253],{"class":1242},[1236,2878,2879],{"class":1256},"\"Benötigte Teilemenge für 1 Produkteinheit\"",[1236,2881,1349],{"class":1242},[1236,2883,2885,2887,2889,2891,2894,2896,2898,2900,2902,2904,2906,2908,2910,2912,2914,2916,2918,2920,2922,2924,2927],{"class":1238,"line":2884},75,[1236,2886,1451],{"class":1242},[1236,2888,1420],{"class":1249},[1236,2890,1253],{"class":1242},[1236,2892,2893],{"class":1256},"\"bom_key\"",[1236,2895,1181],{"class":1242},[1236,2897,1463],{"class":1249},[1236,2899,1253],{"class":1242},[1236,2901,1511],{"class":1256},[1236,2903,1181],{"class":1242},[1236,2905,1516],{"class":1249},[1236,2907,1253],{"class":1242},[1236,2909,1478],{"class":1319},[1236,2911,1181],{"class":1242},[1236,2913,1525],{"class":1249},[1236,2915,1253],{"class":1242},[1236,2917,1478],{"class":1319},[1236,2919,1181],{"class":1242},[1236,2921,1430],{"class":1249},[1236,2923,1253],{"class":1242},[1236,2925,2926],{"class":1256},"\"Kombination product_id:part_id. Verhindert doppelte Registrierung\"",[1236,2928,1349],{"class":1242},[1236,2930,2932,2934,2936,2938,2940,2942,2944,2946,2948,2950,2952,2954,2956,2958,2960,2962,2964],{"class":1238,"line":2931},76,[1236,2933,1451],{"class":1242},[1236,2935,1420],{"class":1249},[1236,2937,1253],{"class":1242},[1236,2939,1874],{"class":1256},[1236,2941,1181],{"class":1242},[1236,2943,1463],{"class":1249},[1236,2945,1253],{"class":1242},[1236,2947,1709],{"class":1256},[1236,2949,1181],{"class":1242},[1236,2951,1516],{"class":1249},[1236,2953,1253],{"class":1242},[1236,2955,1478],{"class":1319},[1236,2957,1181],{"class":1242},[1236,2959,1895],{"class":1249},[1236,2961,1253],{"class":1242},[1236,2963,1478],{"class":1319},[1236,2965,1349],{"class":1242},[1236,2967,2969,2971,2973,2975,2977,2979,2981,2983,2985,2987,2989,2991,2994],{"class":1238,"line":2968},77,[1236,2970,1451],{"class":1242},[1236,2972,1420],{"class":1249},[1236,2974,1253],{"class":1242},[1236,2976,1913],{"class":1256},[1236,2978,1181],{"class":1242},[1236,2980,1463],{"class":1249},[1236,2982,1253],{"class":1242},[1236,2984,1511],{"class":1256},[1236,2986,1181],{"class":1242},[1236,2988,1430],{"class":1249},[1236,2990,1253],{"class":1242},[1236,2992,2993],{"class":1256},"\"Anzeigename des registrierenden Mitglieds\"",[1236,2995,1349],{"class":1242},[1236,2997,2999,3001,3003,3005,3007,3009,3011,3013,3015,3017,3019,3021,3023],{"class":1238,"line":2998},78,[1236,3000,1451],{"class":1242},[1236,3002,1420],{"class":1249},[1236,3004,1253],{"class":1242},[1236,3006,1944],{"class":1256},[1236,3008,1181],{"class":1242},[1236,3010,1463],{"class":1249},[1236,3012,1253],{"class":1242},[1236,3014,1953],{"class":1256},[1236,3016,1181],{"class":1242},[1236,3018,1483],{"class":1249},[1236,3020,1253],{"class":1242},[1236,3022,1962],{"class":1256},[1236,3024,1382],{"class":1242},[1236,3026,3028],{"class":1238,"line":3027},79,[1236,3029,1970],{"class":1242},[1236,3031,3033,3035],{"class":1238,"line":3032},80,[1236,3034,1976],{"class":1249},[1236,3036,1282],{"class":1242},[1236,3038,3040,3042,3044,3046,3048,3050,3052,3054,3056,3058],{"class":1238,"line":3039},81,[1236,3041,1984],{"class":1249},[1236,3043,1339],{"class":1242},[1236,3045,1989],{"class":1249},[1236,3047,1253],{"class":1242},[1236,3049,1478],{"class":1319},[1236,3051,1181],{"class":1242},[1236,3053,1998],{"class":1249},[1236,3055,1253],{"class":1242},[1236,3057,1874],{"class":1256},[1236,3059,1349],{"class":1242},[1236,3061,3063,3065],{"class":1238,"line":3062},82,[1236,3064,2010],{"class":1249},[1236,3066,1282],{"class":1242},[1236,3068,3070,3072,3074,3076,3078,3080],{"class":1238,"line":3069},83,[1236,3071,2018],{"class":1249},[1236,3073,1339],{"class":1242},[1236,3075,1989],{"class":1249},[1236,3077,1253],{"class":1242},[1236,3079,1478],{"class":1319},[1236,3081,1349],{"class":1242},[1236,3083,3085,3087,3089,3091,3093,3095],{"class":1238,"line":3084},84,[1236,3086,2034],{"class":1249},[1236,3088,1339],{"class":1242},[1236,3090,1989],{"class":1249},[1236,3092,1253],{"class":1242},[1236,3094,1478],{"class":1319},[1236,3096,1349],{"class":1242},[1236,3098,3100,3102,3104,3106,3108,3110],{"class":1238,"line":3099},85,[1236,3101,2050],{"class":1249},[1236,3103,1339],{"class":1242},[1236,3105,1989],{"class":1249},[1236,3107,1253],{"class":1242},[1236,3109,1478],{"class":1319},[1236,3111,1349],{"class":1242},[1236,3113,3115,3117,3119,3121,3123,3125],{"class":1238,"line":3114},86,[1236,3116,2066],{"class":1249},[1236,3118,1339],{"class":1242},[1236,3120,1989],{"class":1249},[1236,3122,1253],{"class":1242},[1236,3124,1478],{"class":1319},[1236,3126,1349],{"class":1242},[1236,3128,3130,3132,3134,3136,3138,3140,3142,3144,3146,3148],{"class":1238,"line":3129},87,[1236,3131,2082],{"class":1249},[1236,3133,1339],{"class":1242},[1236,3135,1989],{"class":1249},[1236,3137,1253],{"class":1242},[1236,3139,1478],{"class":1319},[1236,3141,1181],{"class":1242},[1236,3143,2095],{"class":1249},[1236,3145,2098],{"class":1242},[1236,3147,2101],{"class":1256},[1236,3149,2104],{"class":1242},[1236,3151,3153],{"class":1238,"line":3152},88,[1236,3154,2110],{"class":1242},[1236,3156,3158],{"class":1238,"line":3157},89,[1236,3159,2116],{"class":1242},[1236,3161,3163],{"class":1238,"line":3162},90,[1236,3164,2122],{"class":1242},[1236,3166,3168],{"class":1238,"line":3167},91,[1236,3169,1409],{"class":1242},[1236,3171,3173,3175,3177,3179,3181,3184,3186,3188,3190,3193],{"class":1238,"line":3172},92,[1236,3174,1415],{"class":1249},[1236,3176,1339],{"class":1242},[1236,3178,1420],{"class":1249},[1236,3180,1253],{"class":1242},[1236,3182,3183],{"class":1256},"\"stock_transactions\"",[1236,3185,1181],{"class":1242},[1236,3187,1430],{"class":1249},[1236,3189,1253],{"class":1242},[1236,3191,3192],{"class":1256},"\"Gemeinsamer Verlauf für Ein-/Ausgänge und Montage. item_type=part|product, tx_type=입고|출고|조립사용|조립생산 (Wareneingang|Warenausgang|Montageverbrauch|Montageproduktion). Ein Montageproduktionsereignis besteht aus mehreren Montageverbrauch-Einträgen (Teileverbrauch) + 1 Montageproduktion-Eintrag (Produktzugang), die dieselbe batch_id teilen, sodass nachvollziehbar ist, welche Teile in welcher Menge für ein Produkt verwendet wurden\"",[1236,3194,1349],{"class":1242},[1236,3196,3198,3200],{"class":1238,"line":3197},93,[1236,3199,1443],{"class":1249},[1236,3201,1403],{"class":1242},[1236,3203,3205,3207,3209,3211,3213,3215,3217,3219,3221,3223,3225,3227,3229,3231,3233,3235,3237],{"class":1238,"line":3204},94,[1236,3206,1451],{"class":1242},[1236,3208,1420],{"class":1249},[1236,3210,1253],{"class":1242},[1236,3212,1458],{"class":1256},[1236,3214,1181],{"class":1242},[1236,3216,1463],{"class":1249},[1236,3218,1253],{"class":1242},[1236,3220,1468],{"class":1256},[1236,3222,1181],{"class":1242},[1236,3224,1473],{"class":1249},[1236,3226,1253],{"class":1242},[1236,3228,1478],{"class":1319},[1236,3230,1181],{"class":1242},[1236,3232,1483],{"class":1249},[1236,3234,1253],{"class":1242},[1236,3236,1488],{"class":1256},[1236,3238,1349],{"class":1242},[1236,3240,3242,3244,3246,3248,3251,3253,3255,3257,3259,3261,3263,3265,3267,3269,3271,3273,3276],{"class":1238,"line":3241},95,[1236,3243,1451],{"class":1242},[1236,3245,1420],{"class":1249},[1236,3247,1253],{"class":1242},[1236,3249,3250],{"class":1256},"\"item_type\"",[1236,3252,1181],{"class":1242},[1236,3254,1463],{"class":1249},[1236,3256,1253],{"class":1242},[1236,3258,1511],{"class":1256},[1236,3260,1181],{"class":1242},[1236,3262,1516],{"class":1249},[1236,3264,1253],{"class":1242},[1236,3266,1478],{"class":1319},[1236,3268,1181],{"class":1242},[1236,3270,1430],{"class":1249},[1236,3272,1253],{"class":1242},[1236,3274,3275],{"class":1256},"\"part | product\"",[1236,3277,1349],{"class":1242},[1236,3279,3281,3283,3285,3287,3290,3292,3294,3296,3298,3300,3302,3304,3306,3308,3310,3312,3314,3316,3318,3320,3323],{"class":1238,"line":3280},96,[1236,3282,1451],{"class":1242},[1236,3284,1420],{"class":1249},[1236,3286,1253],{"class":1242},[1236,3288,3289],{"class":1256},"\"item_id\"",[1236,3291,1181],{"class":1242},[1236,3293,1463],{"class":1249},[1236,3295,1253],{"class":1242},[1236,3297,1709],{"class":1256},[1236,3299,1181],{"class":1242},[1236,3301,1516],{"class":1249},[1236,3303,1253],{"class":1242},[1236,3305,1478],{"class":1319},[1236,3307,1181],{"class":1242},[1236,3309,1895],{"class":1249},[1236,3311,1253],{"class":1242},[1236,3313,1478],{"class":1319},[1236,3315,1181],{"class":1242},[1236,3317,1430],{"class":1249},[1236,3319,1253],{"class":1242},[1236,3321,3322],{"class":1256},"\"parts.id oder products.id\"",[1236,3324,1349],{"class":1242},[1236,3326,3328,3330,3332,3334,3337,3339,3341,3343,3345,3347,3349,3351,3353,3355,3357,3359,3362],{"class":1238,"line":3327},97,[1236,3329,1451],{"class":1242},[1236,3331,1420],{"class":1249},[1236,3333,1253],{"class":1242},[1236,3335,3336],{"class":1256},"\"item_name\"",[1236,3338,1181],{"class":1242},[1236,3340,1463],{"class":1249},[1236,3342,1253],{"class":1242},[1236,3344,1511],{"class":1256},[1236,3346,1181],{"class":1242},[1236,3348,1516],{"class":1249},[1236,3350,1253],{"class":1242},[1236,3352,1478],{"class":1319},[1236,3354,1181],{"class":1242},[1236,3356,1430],{"class":1249},[1236,3358,1253],{"class":1242},[1236,3360,3361],{"class":1256},"\"Momentaufnahme des Artikelnamens zum Zeitpunkt der Registrierung\"",[1236,3363,1349],{"class":1242},[1236,3365,3367,3369,3371,3373,3376,3378,3380,3382,3384,3386,3388,3390,3392,3394,3396,3398,3401],{"class":1238,"line":3366},98,[1236,3368,1451],{"class":1242},[1236,3370,1420],{"class":1249},[1236,3372,1253],{"class":1242},[1236,3374,3375],{"class":1256},"\"tx_type\"",[1236,3377,1181],{"class":1242},[1236,3379,1463],{"class":1249},[1236,3381,1253],{"class":1242},[1236,3383,1511],{"class":1256},[1236,3385,1181],{"class":1242},[1236,3387,1516],{"class":1249},[1236,3389,1253],{"class":1242},[1236,3391,1478],{"class":1319},[1236,3393,1181],{"class":1242},[1236,3395,1430],{"class":1249},[1236,3397,1253],{"class":1242},[1236,3399,3400],{"class":1256},"\"입고 (Wareneingang) | 출고 (Warenausgang) | 조립사용 (Montageverbrauch) | 조립생산 (Montageproduktion)\"",[1236,3402,1349],{"class":1242},[1236,3404,3406,3408,3410,3412,3415,3417,3419,3421,3423,3425,3427,3429,3432],{"class":1238,"line":3405},99,[1236,3407,1451],{"class":1242},[1236,3409,1420],{"class":1249},[1236,3411,1253],{"class":1242},[1236,3413,3414],{"class":1256},"\"reason\"",[1236,3416,1181],{"class":1242},[1236,3418,1463],{"class":1249},[1236,3420,1253],{"class":1242},[1236,3422,1511],{"class":1256},[1236,3424,1181],{"class":1242},[1236,3426,1430],{"class":1249},[1236,3428,1253],{"class":1242},[1236,3430,3431],{"class":1256},"\"Grund des Ein-/Ausgangs. Bei Montageverbrauch/Montageproduktion leer, da tx_type selbst der Grund ist\"",[1236,3433,1349],{"class":1242},[1236,3435,3437,3439,3441,3443,3446,3448,3450,3452,3454,3456,3458,3460,3462,3464,3466,3468,3471],{"class":1238,"line":3436},100,[1236,3438,1451],{"class":1242},[1236,3440,1420],{"class":1249},[1236,3442,1253],{"class":1242},[1236,3444,3445],{"class":1256},"\"qty\"",[1236,3447,1181],{"class":1242},[1236,3449,1463],{"class":1249},[1236,3451,1253],{"class":1242},[1236,3453,1709],{"class":1256},[1236,3455,1181],{"class":1242},[1236,3457,1516],{"class":1249},[1236,3459,1253],{"class":1242},[1236,3461,1478],{"class":1319},[1236,3463,1181],{"class":1242},[1236,3465,1430],{"class":1249},[1236,3467,1253],{"class":1242},[1236,3469,3470],{"class":1256},"\"Immer positiv. Die Richtung ergibt sich aus tx_type\"",[1236,3472,1349],{"class":1242},[1236,3474,3476,3478,3480,3482,3485,3487,3489,3491,3493,3495,3497,3499,3501,3503,3505,3507,3510],{"class":1238,"line":3475},101,[1236,3477,1451],{"class":1242},[1236,3479,1420],{"class":1249},[1236,3481,1253],{"class":1242},[1236,3483,3484],{"class":1256},"\"batch_id\"",[1236,3486,1181],{"class":1242},[1236,3488,1463],{"class":1249},[1236,3490,1253],{"class":1242},[1236,3492,1511],{"class":1256},[1236,3494,1181],{"class":1242},[1236,3496,1895],{"class":1249},[1236,3498,1253],{"class":1242},[1236,3500,1478],{"class":1319},[1236,3502,1181],{"class":1242},[1236,3504,1430],{"class":1249},[1236,3506,1253],{"class":1242},[1236,3508,3509],{"class":1256},"\"ID zur Bündelung eines Montageproduktionsereignisses. Bei einfachen Ein-/Ausgängen leer\"",[1236,3511,1349],{"class":1242},[1236,3513,3515,3517,3519,3521,3524,3526,3528,3530,3532,3534,3536,3538,3541],{"class":1238,"line":3514},102,[1236,3516,1451],{"class":1242},[1236,3518,1420],{"class":1249},[1236,3520,1253],{"class":1242},[1236,3522,3523],{"class":1256},"\"note\"",[1236,3525,1181],{"class":1242},[1236,3527,1463],{"class":1249},[1236,3529,1253],{"class":1242},[1236,3531,1511],{"class":1256},[1236,3533,1181],{"class":1242},[1236,3535,1430],{"class":1249},[1236,3537,1253],{"class":1242},[1236,3539,3540],{"class":1256},"\"Notiz\"",[1236,3542,1349],{"class":1242},[1236,3544,3546,3548,3550,3552,3554,3556,3558,3560,3562,3564,3566,3568,3570,3572,3574,3576,3578],{"class":1238,"line":3545},103,[1236,3547,1451],{"class":1242},[1236,3549,1420],{"class":1249},[1236,3551,1253],{"class":1242},[1236,3553,1874],{"class":1256},[1236,3555,1181],{"class":1242},[1236,3557,1463],{"class":1249},[1236,3559,1253],{"class":1242},[1236,3561,1709],{"class":1256},[1236,3563,1181],{"class":1242},[1236,3565,1516],{"class":1249},[1236,3567,1253],{"class":1242},[1236,3569,1478],{"class":1319},[1236,3571,1181],{"class":1242},[1236,3573,1895],{"class":1249},[1236,3575,1253],{"class":1242},[1236,3577,1478],{"class":1319},[1236,3579,1349],{"class":1242},[1236,3581,3583,3585,3587,3589,3591,3593,3595,3597,3599,3601,3603,3605,3607],{"class":1238,"line":3582},104,[1236,3584,1451],{"class":1242},[1236,3586,1420],{"class":1249},[1236,3588,1253],{"class":1242},[1236,3590,1913],{"class":1256},[1236,3592,1181],{"class":1242},[1236,3594,1463],{"class":1249},[1236,3596,1253],{"class":1242},[1236,3598,1511],{"class":1256},[1236,3600,1181],{"class":1242},[1236,3602,1430],{"class":1249},[1236,3604,1253],{"class":1242},[1236,3606,2993],{"class":1256},[1236,3608,1349],{"class":1242},[1236,3610,3612,3614,3616,3618,3620,3622,3624,3626,3628,3630,3632,3634,3636],{"class":1238,"line":3611},105,[1236,3613,1451],{"class":1242},[1236,3615,1420],{"class":1249},[1236,3617,1253],{"class":1242},[1236,3619,1944],{"class":1256},[1236,3621,1181],{"class":1242},[1236,3623,1463],{"class":1249},[1236,3625,1253],{"class":1242},[1236,3627,1953],{"class":1256},[1236,3629,1181],{"class":1242},[1236,3631,1483],{"class":1249},[1236,3633,1253],{"class":1242},[1236,3635,1962],{"class":1256},[1236,3637,1382],{"class":1242},[1236,3639,3641],{"class":1238,"line":3640},106,[1236,3642,1970],{"class":1242},[1236,3644,3646,3648],{"class":1238,"line":3645},107,[1236,3647,1976],{"class":1249},[1236,3649,1282],{"class":1242},[1236,3651,3653,3655,3657,3659,3661,3663,3665,3667,3669,3671],{"class":1238,"line":3652},108,[1236,3654,1984],{"class":1249},[1236,3656,1339],{"class":1242},[1236,3658,1989],{"class":1249},[1236,3660,1253],{"class":1242},[1236,3662,1478],{"class":1319},[1236,3664,1181],{"class":1242},[1236,3666,1998],{"class":1249},[1236,3668,1253],{"class":1242},[1236,3670,1874],{"class":1256},[1236,3672,1349],{"class":1242},[1236,3674,3676,3678],{"class":1238,"line":3675},109,[1236,3677,2010],{"class":1249},[1236,3679,1282],{"class":1242},[1236,3681,3683,3685,3687,3689,3691,3693],{"class":1238,"line":3682},110,[1236,3684,2018],{"class":1249},[1236,3686,1339],{"class":1242},[1236,3688,1989],{"class":1249},[1236,3690,1253],{"class":1242},[1236,3692,1478],{"class":1319},[1236,3694,1349],{"class":1242},[1236,3696,3698,3700,3702,3704,3706,3708],{"class":1238,"line":3697},111,[1236,3699,2034],{"class":1249},[1236,3701,1339],{"class":1242},[1236,3703,1989],{"class":1249},[1236,3705,1253],{"class":1242},[1236,3707,1478],{"class":1319},[1236,3709,1349],{"class":1242},[1236,3711,3713,3715,3717,3719,3721,3723],{"class":1238,"line":3712},112,[1236,3714,2050],{"class":1249},[1236,3716,1339],{"class":1242},[1236,3718,1989],{"class":1249},[1236,3720,1253],{"class":1242},[1236,3722,1478],{"class":1319},[1236,3724,1349],{"class":1242},[1236,3726,3728,3730,3732,3734,3736,3738,3740,3742,3744,3746],{"class":1238,"line":3727},113,[1236,3729,2066],{"class":1249},[1236,3731,1339],{"class":1242},[1236,3733,1989],{"class":1249},[1236,3735,1253],{"class":1242},[1236,3737,1478],{"class":1319},[1236,3739,1181],{"class":1242},[1236,3741,2095],{"class":1249},[1236,3743,2098],{"class":1242},[1236,3745,2101],{"class":1256},[1236,3747,3748],{"class":1242},"] },\n",[1236,3750,3752,3754,3756,3758,3760,3762,3764,3766,3768,3770],{"class":1238,"line":3751},114,[1236,3753,2082],{"class":1249},[1236,3755,1339],{"class":1242},[1236,3757,1989],{"class":1249},[1236,3759,1253],{"class":1242},[1236,3761,1478],{"class":1319},[1236,3763,1181],{"class":1242},[1236,3765,2095],{"class":1249},[1236,3767,2098],{"class":1242},[1236,3769,2101],{"class":1256},[1236,3771,2104],{"class":1242},[1236,3773,3775],{"class":1238,"line":3774},115,[1236,3776,2110],{"class":1242},[1236,3778,3780],{"class":1238,"line":3779},116,[1236,3781,2116],{"class":1242},[1236,3783,3785],{"class":1238,"line":3784},117,[1236,3786,1388],{"class":1242},[1236,3788,3790],{"class":1238,"line":3789},118,[1236,3791,3792],{"class":1242},"  ]\n",[1236,3794,3796],{"class":1238,"line":3795},119,[1236,3797,3798],{"class":1242},"}\n",[1165,3800,3801,3802,3805,3806,3805,3808,3811],{},"Kopieren Sie dieses Ergebnis und erstellen Sie im Arbeitsbereich über ",[1178,3803,3804],{},"Erstellen"," → ",[1178,3807,604],{},[1178,3809,3810],{},"Neues Schema (DB)"," eine leere Schemadatei.",[1165,3813,3814],{},[3815,3816],"img",{"alt":3817,"src":3818},"Auswahl von Erstellen > Vorlagendateien > Neues Schema (DB)","./_screenshots/new-schema_en.png",[1165,3820,3821],{},"Geben Sie einen Dateinamen ein und speichern Sie. Damit ist die leere Schemadatei angelegt.",[1165,3823,3824],{},[3815,3825],{"alt":3826,"src":3827},"Neu erstellte leere Schemadatei","./_screenshots/schema-file-first_en.png",[1165,3829,3830,3831,3834],{},"Klicken Sie oben rechts auf die Registerkarte ",[1178,3832,3833],{},"Editor"," und fügen Sie die KI-Antwort von eben unverändert ein.",[1165,3836,3837],{},[3815,3838],{"alt":3839,"src":3840},"Schema-Editor","./_screenshots/schema-editor_en.png",[1165,3842,3843,3844,3847],{},"Wechseln Sie nach dem Speichern zur Registerkarte ",[1178,3845,3846],{},"API-Erstellung"," oben. Dort sehen Sie die automatisch generierte API-Liste je Tabelle.",[1165,3849,3850],{},[3815,3851],{"alt":3846,"src":3852},"./_screenshots/schema-api-build_de.png",[1165,3854,3855,3856,3859,3860,3863,3864,3866,3867,3871],{},"Klicken Sie auf ",[1178,3857,3858],{},"Bereitstellen",", um die Einstellungen aufzuklappen, prüfen Sie die ",[1178,3861,3862],{},"Datenbankkennung"," und klicken Sie erneut auf ",[1178,3865,3858],{},". Nach einigen Sekunden erscheint die Meldung 'Bereitstellung abgeschlossen!'. Speichern Sie abschließend über die Diskettenschaltfläche oben. ",[3868,3869,3870],"strong",{},"Damit ist die DB-Konfiguration abgeschlossen"," — die 4 Tabellen für Teile, Produkte, Stückliste und Ein-/Ausgangsverlauf sowie die REST-APIs für diese Tabellen sind tatsächlich erstellt und sofort einsatzbereit. Als Nächstes erstellen Sie die Ansicht, die mit dieser DB verbunden wird.",[1190,3873,3875],{"id":3874},"_2-html-datei-für-die-ansicht-erstellen","2. .html-Datei für die Ansicht erstellen",[1165,3877,3878,3879,3881],{},"Auch diesmal bitten Sie die KI. Planen und ordnen Sie, was Sie erstellen möchten, und übergeben Sie es der KI. Geben Sie dabei den Inhalt der zuvor erstellten ",[1178,3880,1199],{},"-Datei als Referenzmaterial mit.",[3883,3884,3885,3889,3892,3895],"ul",{},[3886,3887,3888],"li",{},"Ein Eingabeformular zum Registrieren von Teilen und Produkten",[3886,3890,3891],{},"Ein Formular zum Erfassen von Wareneingängen und Warenausgängen",[3886,3893,3894],{},"Wenn Sie erfassen, dass 'von diesem Produkt so viele Stück produziert wurden', werden die benötigten Teilemengen automatisch berechnet und auf den Bestand angewendet",[3886,3896,3897],{},"Der aktuelle Bestand wird in einer Tabelle angezeigt, und Werte lassen sich direkt in der Tabelle ändern und speichern",[1165,3899,3900],{},"Fügen Sie den folgenden Inhalt anschließend in den KI-Chat ein. (Fügen Sie ganz oben das Ergebnis aus Schritt 1 mit ein.)",[1208,3902,3905],{"className":3903,"code":3904,"language":1213},[1211],"[Hier das Ergebnis aus Schritt 1 einfügen]\n\nDas obige Schema ist bereits bereitgestellt. Erstelle eine Webansicht (index.html), die dieses Schema verwendet.\n\nWenn die Ansicht Daten lädt oder speichert, sendet sie Anfragen nach den folgenden Regeln an den Server.\n\n1. So erhältst du das API-Token des angemeldeten Benutzers:\n   POST /api/auth/bootstrap  (credentials: \"include\")\n   Antwort: { data: { access_token, user: { id, nick } } }\n\n2. Alle weiteren Anfragen erhalten diesen Header: Authorization: Bearer \u003Caccess_token>\n\n3. Tabellen-CRUD:\n   Abfragen   GET  /api/web/{dbName}/{table}/list?spalte=wert   → Antwort { rows: [...] } (rows kann null sein, wenn es keine Ergebnisse gibt, daher immer als rows || [] behandeln)\n   Erstellen  POST /api/web/{dbName}/{table}/create          → Body: JSON, Antwort { lastInsertId }\n   Ändern     PUT  /api/web/{dbName}/{table}/update/{id}     → Body: JSON (es reicht, nur die geänderten Spalten zu senden)\n   Löschen    DELETE /api/web/{dbName}/{table}/delete/{id}\n\nDie Ansicht benötigt folgende Funktionen:\n\n- Ein Eingabeformular zum Neuanlegen von Teilen und Produkten\n- Ein Formular zum Erfassen von Wareneingängen und Warenausgängen für Teile/Produkte (beim Erfassen wird auch der aktuelle Bestand aktualisiert)\n- Eine Funktion, die beim Erfassen von \"von diesem Produkt wurden so viele Stück produziert\" anhand der registrierten Stückliste die benötigten Teilemengen automatisch berechnet, den Teilebestand abzieht und den Produktbestand erhöht. Reicht der Teilebestand nicht aus, blockiere die Erfassung und weise darauf hin.\n- Eine Ansicht, die den aktuellen Bestand von Teilen/Produkten in einer Tabelle zeigt. Ein Klick auf eine Zelle soll den Wert direkt an Ort und Stelle bearbeitbar und speicherbar machen.\n- Eine Liste, die den Verlauf von Eingängen/Ausgängen/Montagen in zeitlicher Reihenfolge zeigt.\n\nPacke alles in eine einzige HTML/CSS/JS-Datei. Gestalte ein Kartenlayout auf sauberem weißem Hintergrund.\nGib ohne weitere Erklärung nur den fertigen index.html-Code aus.\n",[1178,3906,3904],{"__ignoreMap":1216},[1165,3908,3909],{},"Nachfolgend ein Beispiel für eine so erzeugte HTML-Datei. Das tatsächliche Ergebnis kann je nach KI etwas abweichen.",[3911,3912],"html-sandbox",{"height":3913,"src":3914},"640px","/examples/webspace/inventory-management/index.html",[1165,3916,3917],{},"Wenn Sie diese Datei in den Arbeitsbereich hochladen, ist die Ansicht fertig, die Ihre Teammitglieder tatsächlich nutzen können.",[1190,3919,3921],{"id":3920},"_3-testdaten-einfüllen","3. Testdaten einfüllen",[1165,3923,3924],{},"Um das System tatsächlich in Aktion zu sehen, brauchen Sie Daten. Auch eine Ansicht, die per Knopfdruck Beispieldaten einfüllt, können Sie die KI direkt erstellen lassen.",[1208,3926,3929],{"className":3927,"code":3928,"language":1213},[1211],"[Hier das Ergebnis aus Schritt 1 einfügen]\n\nDas obige Schema ist bereits bereitgestellt, und die index.html, die dieses Schema verwendet, ist ebenfalls bereits erstellt.\nErstelle eine Ansicht (mock-db-upload.html), die per Klick auf eine einzige Schaltfläche automatisch Testdaten einfüllt.\n\nSchreibe die Daten auf dieselbe Weise wie die Ansicht aus Schritt 2 in den echten Server (Token per POST /api/auth/bootstrap holen, Datensätze per POST /api/web/{dbName}/{table}/create anlegen).\n\n- Lege tatsächlich 10–15 Teile, 3–5 Produkte, die Teilezusammensetzung jedes Produkts und einige Ein-/Ausgangseinträge an.\n- Fülle Namen und Mengen von Teilen/Produkten mit Werten, wie sie in einem Fertigungsbetrieb tatsächlich vorkommen.\n- Wenn bereits Daten mit demselben Code vorhanden sind, überspringe nur diesen Eintrag und fahre fort.\n- Zeige den Fortschritt zeilenweise als Protokoll auf dem Bildschirm an und zeige am Ende \"Fertig\" an.\nGib ohne weitere Erklärung nur den fertigen mock-db-upload.html-Code aus.\n",[1178,3930,3928],{"__ignoreMap":1216},[1165,3932,3933],{},"Nachfolgend ein Beispiel für eine so erzeugte HTML-Datei. Das tatsächliche Ergebnis kann je nach KI etwas abweichen. Diese Ansicht wird nicht bereitgestellt, sondern nur geöffnet, wenn Sie eine Demo vorbereiten müssen.",[3911,3935],{"height":3913,"src":3936},"/examples/webspace/inventory-management/mock-db-upload.html",[1165,3938,3939],{},"Mit eingetragenen Daten sieht die Nutzung so aus.",[1165,3941,3942],{},[3815,3943],{"alt":3944,"src":3945},"Teilebestand — ein Doppelklick auf eine Zelle bearbeitet und speichert sie direkt","./_screenshots/inventory-parts-status_en.jpg",[1165,3947,3948],{},[3815,3949],{"alt":3950,"src":3951},"Stücklistenerfassung — eine Teilekarte von rechts nach links ziehen und ablegen, um sie zur Zusammensetzung hinzuzufügen","./_screenshots/inventory-bom-dnd_en.jpg",[1165,3953,3954],{},[3815,3955],{"alt":3956,"src":3957},"Erfassung der Montageproduktion — nach Auswahl von Produkt und Produktionsmenge werden benötigte Teilemengen und aktueller Bestand automatisch angezeigt","./_screenshots/inventory-assembly-production_en.jpg",[1165,3959,3960],{},[3815,3961],{"alt":3962,"src":3963},"Transaktionsverlauf — Montageproduktion und Montageverbrauch werden je Chargennummer gemeinsam protokolliert","./_screenshots/inventory-transaction-history_en.jpg",[1190,3965,3967],{"id":3966},"_4-wiederholt-anpassen","4. Wiederholt anpassen",[1165,3969,3970],{},"Sie müssen nicht alles auf einmal fertigstellen. Wenn Ihnen bei der Nutzung der Ansicht fehlende Funktionen oder Änderungswünsche auffallen, bitten Sie die KI einfach weiter. Je nachdem, was Sie ändern, unterscheiden sich jedoch die nächsten Schritte.",[3883,3972,3973,3988,3997],{},[3886,3974,3975,3978,3979,3981,3982,3984,3985,3987],{},[3868,3976,3977],{},"Änderungen an der DB-Struktur (Tabellen/Spalten)"," — z. B. neue Spalte, neue Tabelle — erfordern, dass Sie die geänderte ",[1178,3980,1199],{}," erneut holen, in den ",[1178,3983,3833],{}," einfügen und unter ",[1178,3986,3846],{}," erneut bereitstellen.",[3886,3989,3990,3993,3994,3996],{},[3868,3991,3992],{},"Änderungen nur an der Ansicht bei unveränderter DB-Struktur"," — z. B. Design, Texte, Position von Schaltflächen — erfordern nur, dass Sie ",[1178,3995,1180],{}," erneut holen und die bestehende Datei überschreiben. Die API muss nicht erneut bereitgestellt werden.",[3886,3998,3999,4000,4003],{},"Wenn Sie die Struktur einer Tabelle ändern, die bereits Daten enthält, prüfen Sie in den Bereitstellungseinstellungen die Option ",[1178,4001,4002],{},"Vorhandene Daten überschreiben",". Bei aktiviertem Überschreiben werden bestehende Daten dauerhaft gelöscht.",[1187,4005],{},[1165,4007,4008],{},"Mit nur diesen vier Schritten erstellt die KI alles: den Datenbankentwurf, die fertigen Ansichten, die Testdaten und die späteren Anpassungen. Danach verfeinern Sie Design und Details der Ansicht nach Belieben weiter.",[4010,4011,4012],"style",{},"html pre.shiki code .sMOD_, html code.shiki .sMOD_{--shiki-default:#24292E;--shiki-dark:#E1E4E8;--shiki-sepia:#F8F8F2}html pre.shiki code .s-m8C, html code.shiki .s-m8C{--shiki-default:#005CC5;--shiki-default-font-style:inherit;--shiki-dark:#79B8FF;--shiki-dark-font-style:inherit;--shiki-sepia:#66D9EF;--shiki-sepia-font-style:italic}html pre.shiki code .sCZoN, html code.shiki .sCZoN{--shiki-default:#032F62;--shiki-dark:#9ECBFF;--shiki-sepia:#CFCFC2}html pre.shiki code .s7F3e, html code.shiki .s7F3e{--shiki-default:#005CC5;--shiki-dark:#79B8FF;--shiki-sepia:#AE81FF}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html .sepia .shiki span {color: var(--shiki-sepia);background: var(--shiki-sepia-bg);font-style: var(--shiki-sepia-font-style);font-weight: var(--shiki-sepia-font-weight);text-decoration: var(--shiki-sepia-text-decoration);}html.sepia .shiki span {color: var(--shiki-sepia);background: var(--shiki-sepia-bg);font-style: var(--shiki-sepia-font-style);font-weight: var(--shiki-sepia-font-weight);text-decoration: var(--shiki-sepia-text-decoration);}",{"title":1216,"searchDepth":1246,"depth":1263,"links":4014},[4015,4016,4017,4018],{"id":1192,"depth":1246,"text":1193},{"id":3874,"depth":1246,"text":3875},{"id":3920,"depth":1246,"text":3921},{"id":3966,"depth":1246,"text":3967},"Zeigt am Beispiel eines Bestandsverwaltungssystems, wie vom Datenbankentwurf bis zur fertigen Ansicht alles entsteht, wenn Sie der KI nur die Anforderungen beschreiben.","md",{},true,{"title":4024,"description":4019,"ogType":4025,"twitterCard":4026,"keywords":4027},"Eigenes Geschäftssystem erstellen | Webspace-Tutorials","article","summary_large_image",[4028,4029,4030,4031,4032],"Eigenes Geschäftssystem","Bestandsverwaltungssystem","DB-Konfiguration","KI-Prompt","SetFN-Arbeitsbereich","fAJ_Dmrf0m7t6IfOtScyU0xLtQoIQ3IMFUUxRSIyMc8",[4035,4036],{"title":867,"path":875,"stem":873,"slug":874,"children":-1},{"title":882,"path":883,"stem":884,"slug":886,"children":-1},{"title":877,"filename":4038,"content":4039},"my-own-system","# Eigenes Geschäftssystem erstellen\n\nIm SetFN-Arbeitsbereich können Sie Systeme wie eine firmeneigene Groupware oder ein ERP selbst erstellen.\nDen Entwurf der Datenbankstruktur und die Erstellung der Ansichten überlassen Sie der KI; Sie müssen die Ergebnisse nur erzeugen und in den Arbeitsbereich hochladen.\nZu erstellen sind 2 Dateien. Zu tun bleibt: hochladen und auf 'Bereitstellen' klicken.\nAls Beispiel erstellen wir ein 'Bestandsverwaltungsprogramm für die Fertigung'.\n\nWenn Sie die fertigen Dateien ohne KI-Prompts direkt ausprobieren möchten, erhalten Sie über [Vollständiges Beispiel als ZIP herunterladen](/examples/webspace/inventory-management/setfn-inventory-management-sample.zip) das Schema, `index.html`, `mock-db-upload.html` und die README auf einmal.\n\n---\n\n## 1. .sfn-Datei zum Erstellen der Datenbank anlegen\n\nIm SetFN-Arbeitsbereich erstellen Sie eine DB mit einer Datei namens `.sfn`. Geben Sie einer KI wie Claude, GPT oder Gemini ein kopiertes Beispiel einer `.sfn`-Datei und beschreiben Sie Ihre Anforderungen, etwa 'Ich möchte den Bestand von Teilen und Produkten verwalten'. Die KI erstellt dann die Datei.\n\nKopieren Sie den folgenden Inhalt, passen Sie im unteren Teil den Anforderungsentwurf an und übergeben Sie ihn der KI.\n\n```\nDu bist ein Engineer, der Schemadateien (.sfn) für SetFN, eine No-Code-Backend-Plattform, entwirft.\nEine .sfn-Datei ist eine JSON-Datei mit der folgenden Struktur. \n\n{\n  \"content-type\": \"application/setfn-schema\",\n  \"dbType\": \"sqlite3\",\n  \"apiBuild\": {\n    \"dbName\": \"db_name_klein_mit_unterstrichen\",\n    \"dbEngine\": \"sqlite\",\n    \"includeClient\": false,\n    \"features\": {\n      \"realtime\": { \"enabled\": false },\n      \"upload\": { \"enabled\": false },\n      \"ai-chat\": { \"enabled\": false }\n    }\n  },\n  \"data\": [\n    {\n      \"table\": { \"name\": \"tabellenname\", \"cmt\": \"Beschreibung dieser Tabelle\" },\n      \"columns\": [\n        { \"name\": \"id\", \"type\": \"serial4\", \"primary\": true, \"default\": \"auto_increment\" },\n        { \"name\": \"spaltenname\", \"type\": \"text\", \"notnull\": true, \"cmt\": \"Spaltenbeschreibung\" },\n        { \"name\": \"zahlenspalte\", \"type\": \"int4\", \"notnull\": true, \"default\": \"0\" },\n        { \"name\": \"_created_at\", \"type\": \"timestamp\", \"default\": \"now()\" }\n      ],\n      \"permissions\": {\n        \"security\": { \"login\": true },\n        \"ops\": {\n          \"list\": { \"login\": true },\n          \"view\": { \"login\": true },\n          \"create\": { \"login\": true },\n          \"update\": { \"login\": true },\n          \"delete\": { \"login\": true, \"roles\": [\"admin\"] }\n        }\n      }\n    }\n  ]\n}\n\nVerwende als Spaltentyp (type) nur serial4 (Auto-Increment-PK) / text / int4 (Ganzzahl) / timestamp.\nErgänze Spalten nach Bedarf um notnull, default, unique, index und cmt.\n\nEntwirf nun in diesem Format die DB eines \"Bestandsverwaltungssystems\" für einen Fertigungsbetrieb. Die Anforderungen lauten:\n\n- Teile werden registriert, und der aktuelle Lagerbestand jedes Teils wird verwaltet.\n- Produkte werden registriert, und der aktuelle Lagerbestand jedes Produkts wird verwaltet.\n- Ein Produkt wird aus mehreren Teilen montiert. Es wird verwaltet, welche Teile in welcher Menge für welches Produkt benötigt werden (BOM, Stückliste).\n- Wareneingänge und Warenausgänge von Teilen/Produkten werden protokolliert. Insbesondere müssen beim Ereignis \"Teile montieren und ein Produkt produzieren\" die in diesem Moment verbrauchten Teile und die Menge der produzierten Produkte gemeinsam als ein Vorgang nachverfolgt werden (später muss abfragbar sein, \"wie viele Teile in die Herstellung dieses Produkts eingeflossen sind\").\n\nSetze den DB-Namen (dbName) auf \"inventory_management\".\nEntwirf höchstens 4 Tabellen, und zwar so praxisnah, dass sie sofort im Arbeitsalltag einsetzbar sind.\nGib ohne weitere Erklärung nur den fertigen .sfn-JSON-Code aus.\n```\n\nNachfolgend ein Beispiel für eine so erzeugte KI-Antwort. Das tatsächliche Ergebnis kann je nach KI und je Durchlauf etwas abweichen — es muss nicht genau diesem Inhalt entsprechen, eine ähnliche Struktur genügt. Es muss jedoch ohne weitere Erklärung mit `{` beginnen und mit `}` enden, damit Sie das Ergebnis unverändert in den Editor einfügen können.\n\n```json\n{\n  \"content-type\": \"application/setfn-schema\",\n  \"dbType\": \"sqlite3\",\n  \"apiBuild\": {\n    \"dbName\": \"inventory_management\",\n    \"dbEngine\": \"sqlite\",\n    \"includeClient\": false,\n    \"features\": {\n      \"realtime\": { \"enabled\": false },\n      \"upload\": { \"enabled\": false },\n      \"ai-chat\": { \"enabled\": false }\n    }\n  },\n  \"data\": [\n    {\n      \"table\": { \"name\": \"parts\", \"cmt\": \"Teilestamm. Anzeigen/Registrieren/Bearbeiten für alle Mitglieder, Löschen nur für Administratoren\" },\n      \"columns\": [\n        { \"name\": \"id\", \"type\": \"serial4\", \"primary\": true, \"default\": \"auto_increment\" },\n        { \"name\": \"part_code\", \"type\": \"text\", \"notnull\": true, \"unique\": true, \"cmt\": \"Teilecode\" },\n        { \"name\": \"name\", \"type\": \"text\", \"notnull\": true, \"cmt\": \"Teilename\" },\n        { \"name\": \"spec\", \"type\": \"text\", \"cmt\": \"Spezifikation (z. B. M2, 220V/50Hz). Bei gleichem Namen, aber abweichender Spezifikation als separater part_code registrieren\" },\n        { \"name\": \"category\", \"type\": \"text\", \"cmt\": \"Teilekategorie (Elektronikteile/Mechanikteile/Verpackungsmaterial usw.)\" },\n        { \"name\": \"unit\", \"type\": \"text\", \"notnull\": true, \"default\": \"EA\", \"cmt\": \"Einheit\" },\n        { \"name\": \"unit_cost\", \"type\": \"int4\", \"notnull\": true, \"default\": \"0\", \"cmt\": \"Stückpreis\" },\n        { \"name\": \"current_stock\", \"type\": \"int4\", \"notnull\": true, \"default\": \"0\", \"cmt\": \"Aktueller Bestand\" },\n        { \"name\": \"safety_stock\", \"type\": \"int4\", \"notnull\": true, \"default\": \"0\", \"cmt\": \"Sicherheitsbestand (Bestellpunkt)\" },\n        { \"name\": \"supplier\", \"type\": \"text\", \"cmt\": \"Lieferant\" },\n        { \"name\": \"_user_id\", \"type\": \"int4\", \"notnull\": true, \"index\": true },\n        { \"name\": \"_nick\", \"type\": \"text\", \"cmt\": \"Anzeigename des Mitglieds, das zuletzt registriert/bearbeitet hat\" },\n        { \"name\": \"_created_at\", \"type\": \"timestamp\", \"default\": \"now()\" }\n      ],\n      \"permissions\": {\n        \"security\": { \"login\": true, \"ownerColumn\": \"_user_id\" },\n        \"ops\": {\n          \"list\": { \"login\": true },\n          \"view\": { \"login\": true },\n          \"create\": { \"login\": true },\n          \"update\": { \"login\": true },\n          \"delete\": { \"login\": true, \"roles\": [\"admin\"] }\n        }\n      }\n    },\n    {\n      \"table\": { \"name\": \"products\", \"cmt\": \"Produktstamm. Anzeigen/Registrieren/Bearbeiten für alle Mitglieder, Löschen nur für Administratoren\" },\n      \"columns\": [\n        { \"name\": \"id\", \"type\": \"serial4\", \"primary\": true, \"default\": \"auto_increment\" },\n        { \"name\": \"product_code\", \"type\": \"text\", \"notnull\": true, \"unique\": true, \"cmt\": \"Produktcode\" },\n        { \"name\": \"name\", \"type\": \"text\", \"notnull\": true, \"cmt\": \"Produktname\" },\n        { \"name\": \"category\", \"type\": \"text\", \"cmt\": \"Produktkategorie\" },\n        { \"name\": \"unit\", \"type\": \"text\", \"notnull\": true, \"default\": \"EA\", \"cmt\": \"Einheit\" },\n        { \"name\": \"price\", \"type\": \"int4\", \"notnull\": true, \"default\": \"0\", \"cmt\": \"Verkaufspreis\" },\n        { \"name\": \"current_stock\", \"type\": \"int4\", \"notnull\": true, \"default\": \"0\", \"cmt\": \"Aktueller Bestand\" },\n        { \"name\": \"_user_id\", \"type\": \"int4\", \"notnull\": true, \"index\": true },\n        { \"name\": \"_nick\", \"type\": \"text\", \"cmt\": \"Anzeigename des Mitglieds, das zuletzt registriert/bearbeitet hat\" },\n        { \"name\": \"_created_at\", \"type\": \"timestamp\", \"default\": \"now()\" }\n      ],\n      \"permissions\": {\n        \"security\": { \"login\": true, \"ownerColumn\": \"_user_id\" },\n        \"ops\": {\n          \"list\": { \"login\": true },\n          \"view\": { \"login\": true },\n          \"create\": { \"login\": true },\n          \"update\": { \"login\": true },\n          \"delete\": { \"login\": true, \"roles\": [\"admin\"] }\n        }\n      }\n    },\n    {\n      \"table\": { \"name\": \"bom\", \"cmt\": \"Stückliste je Produkt (einstufig). Eine Unique-Beschränkung auf bom_key (product_id:part_id) verhindert, dass dasselbe Teil für dasselbe Produkt doppelt registriert wird\" },\n      \"columns\": [\n        { \"name\": \"id\", \"type\": \"serial4\", \"primary\": true, \"default\": \"auto_increment\" },\n        { \"name\": \"product_id\", \"type\": \"int4\", \"notnull\": true, \"index\": true },\n        { \"name\": \"part_id\", \"type\": \"int4\", \"notnull\": true, \"index\": true },\n        { \"name\": \"qty_per_unit\", \"type\": \"int4\", \"notnull\": true, \"default\": \"1\", \"cmt\": \"Benötigte Teilemenge für 1 Produkteinheit\" },\n        { \"name\": \"bom_key\", \"type\": \"text\", \"notnull\": true, \"unique\": true, \"cmt\": \"Kombination product_id:part_id. Verhindert doppelte Registrierung\" },\n        { \"name\": \"_user_id\", \"type\": \"int4\", \"notnull\": true, \"index\": true },\n        { \"name\": \"_nick\", \"type\": \"text\", \"cmt\": \"Anzeigename des registrierenden Mitglieds\" },\n        { \"name\": \"_created_at\", \"type\": \"timestamp\", \"default\": \"now()\" }\n      ],\n      \"permissions\": {\n        \"security\": { \"login\": true, \"ownerColumn\": \"_user_id\" },\n        \"ops\": {\n          \"list\": { \"login\": true },\n          \"view\": { \"login\": true },\n          \"create\": { \"login\": true },\n          \"update\": { \"login\": true },\n          \"delete\": { \"login\": true, \"roles\": [\"admin\"] }\n        }\n      }\n    },\n    {\n      \"table\": { \"name\": \"stock_transactions\", \"cmt\": \"Gemeinsamer Verlauf für Ein-/Ausgänge und Montage. item_type=part|product, tx_type=입고|출고|조립사용|조립생산 (Wareneingang|Warenausgang|Montageverbrauch|Montageproduktion). Ein Montageproduktionsereignis besteht aus mehreren Montageverbrauch-Einträgen (Teileverbrauch) + 1 Montageproduktion-Eintrag (Produktzugang), die dieselbe batch_id teilen, sodass nachvollziehbar ist, welche Teile in welcher Menge für ein Produkt verwendet wurden\" },\n      \"columns\": [\n        { \"name\": \"id\", \"type\": \"serial4\", \"primary\": true, \"default\": \"auto_increment\" },\n        { \"name\": \"item_type\", \"type\": \"text\", \"notnull\": true, \"cmt\": \"part | product\" },\n        { \"name\": \"item_id\", \"type\": \"int4\", \"notnull\": true, \"index\": true, \"cmt\": \"parts.id oder products.id\" },\n        { \"name\": \"item_name\", \"type\": \"text\", \"notnull\": true, \"cmt\": \"Momentaufnahme des Artikelnamens zum Zeitpunkt der Registrierung\" },\n        { \"name\": \"tx_type\", \"type\": \"text\", \"notnull\": true, \"cmt\": \"입고 (Wareneingang) | 출고 (Warenausgang) | 조립사용 (Montageverbrauch) | 조립생산 (Montageproduktion)\" },\n        { \"name\": \"reason\", \"type\": \"text\", \"cmt\": \"Grund des Ein-/Ausgangs. Bei Montageverbrauch/Montageproduktion leer, da tx_type selbst der Grund ist\" },\n        { \"name\": \"qty\", \"type\": \"int4\", \"notnull\": true, \"cmt\": \"Immer positiv. Die Richtung ergibt sich aus tx_type\" },\n        { \"name\": \"batch_id\", \"type\": \"text\", \"index\": true, \"cmt\": \"ID zur Bündelung eines Montageproduktionsereignisses. Bei einfachen Ein-/Ausgängen leer\" },\n        { \"name\": \"note\", \"type\": \"text\", \"cmt\": \"Notiz\" },\n        { \"name\": \"_user_id\", \"type\": \"int4\", \"notnull\": true, \"index\": true },\n        { \"name\": \"_nick\", \"type\": \"text\", \"cmt\": \"Anzeigename des registrierenden Mitglieds\" },\n        { \"name\": \"_created_at\", \"type\": \"timestamp\", \"default\": \"now()\" }\n      ],\n      \"permissions\": {\n        \"security\": { \"login\": true, \"ownerColumn\": \"_user_id\" },\n        \"ops\": {\n          \"list\": { \"login\": true },\n          \"view\": { \"login\": true },\n          \"create\": { \"login\": true },\n          \"update\": { \"login\": true, \"roles\": [\"admin\"] },\n          \"delete\": { \"login\": true, \"roles\": [\"admin\"] }\n        }\n      }\n    }\n  ]\n}\n```\n\nKopieren Sie dieses Ergebnis und erstellen Sie im Arbeitsbereich über `Erstellen` → `Vorlagendateien` → `Neues Schema (DB)` eine leere Schemadatei.\n\n![Auswahl von Erstellen > Vorlagendateien > Neues Schema (DB)](./_screenshots/new-schema_en.png)\n\nGeben Sie einen Dateinamen ein und speichern Sie. Damit ist die leere Schemadatei angelegt.\n\n![Neu erstellte leere Schemadatei](./_screenshots/schema-file-first_en.png)\n\nKlicken Sie oben rechts auf die Registerkarte `Editor` und fügen Sie die KI-Antwort von eben unverändert ein.\n\n![Schema-Editor](./_screenshots/schema-editor_en.png)\n\nWechseln Sie nach dem Speichern zur Registerkarte `API-Erstellung` oben. Dort sehen Sie die automatisch generierte API-Liste je Tabelle.\n\n![API-Erstellung](./_screenshots/schema-api-build_de.png)\n\nKlicken Sie auf `Bereitstellen`, um die Einstellungen aufzuklappen, prüfen Sie die `Datenbankkennung` und klicken Sie erneut auf `Bereitstellen`. Nach einigen Sekunden erscheint die Meldung 'Bereitstellung abgeschlossen!'. Speichern Sie abschließend über die Diskettenschaltfläche oben. **Damit ist die DB-Konfiguration abgeschlossen** — die 4 Tabellen für Teile, Produkte, Stückliste und Ein-/Ausgangsverlauf sowie die REST-APIs für diese Tabellen sind tatsächlich erstellt und sofort einsatzbereit. Als Nächstes erstellen Sie die Ansicht, die mit dieser DB verbunden wird.\n\n## 2. .html-Datei für die Ansicht erstellen\n\nAuch diesmal bitten Sie die KI. Planen und ordnen Sie, was Sie erstellen möchten, und übergeben Sie es der KI. Geben Sie dabei den Inhalt der zuvor erstellten `.sfn`-Datei als Referenzmaterial mit.\n\n- Ein Eingabeformular zum Registrieren von Teilen und Produkten\n- Ein Formular zum Erfassen von Wareneingängen und Warenausgängen\n- Wenn Sie erfassen, dass 'von diesem Produkt so viele Stück produziert wurden', werden die benötigten Teilemengen automatisch berechnet und auf den Bestand angewendet\n- Der aktuelle Bestand wird in einer Tabelle angezeigt, und Werte lassen sich direkt in der Tabelle ändern und speichern\n\nFügen Sie den folgenden Inhalt anschließend in den KI-Chat ein. (Fügen Sie ganz oben das Ergebnis aus Schritt 1 mit ein.)\n\n```\n[Hier das Ergebnis aus Schritt 1 einfügen]\n\nDas obige Schema ist bereits bereitgestellt. Erstelle eine Webansicht (index.html), die dieses Schema verwendet.\n\nWenn die Ansicht Daten lädt oder speichert, sendet sie Anfragen nach den folgenden Regeln an den Server.\n\n1. So erhältst du das API-Token des angemeldeten Benutzers:\n   POST /api/auth/bootstrap  (credentials: \"include\")\n   Antwort: { data: { access_token, user: { id, nick } } }\n\n2. Alle weiteren Anfragen erhalten diesen Header: Authorization: Bearer \u003Caccess_token>\n\n3. Tabellen-CRUD:\n   Abfragen   GET  /api/web/{dbName}/{table}/list?spalte=wert   → Antwort { rows: [...] } (rows kann null sein, wenn es keine Ergebnisse gibt, daher immer als rows || [] behandeln)\n   Erstellen  POST /api/web/{dbName}/{table}/create          → Body: JSON, Antwort { lastInsertId }\n   Ändern     PUT  /api/web/{dbName}/{table}/update/{id}     → Body: JSON (es reicht, nur die geänderten Spalten zu senden)\n   Löschen    DELETE /api/web/{dbName}/{table}/delete/{id}\n\nDie Ansicht benötigt folgende Funktionen:\n\n- Ein Eingabeformular zum Neuanlegen von Teilen und Produkten\n- Ein Formular zum Erfassen von Wareneingängen und Warenausgängen für Teile/Produkte (beim Erfassen wird auch der aktuelle Bestand aktualisiert)\n- Eine Funktion, die beim Erfassen von \"von diesem Produkt wurden so viele Stück produziert\" anhand der registrierten Stückliste die benötigten Teilemengen automatisch berechnet, den Teilebestand abzieht und den Produktbestand erhöht. Reicht der Teilebestand nicht aus, blockiere die Erfassung und weise darauf hin.\n- Eine Ansicht, die den aktuellen Bestand von Teilen/Produkten in einer Tabelle zeigt. Ein Klick auf eine Zelle soll den Wert direkt an Ort und Stelle bearbeitbar und speicherbar machen.\n- Eine Liste, die den Verlauf von Eingängen/Ausgängen/Montagen in zeitlicher Reihenfolge zeigt.\n\nPacke alles in eine einzige HTML/CSS/JS-Datei. Gestalte ein Kartenlayout auf sauberem weißem Hintergrund.\nGib ohne weitere Erklärung nur den fertigen index.html-Code aus.\n```\n\nNachfolgend ein Beispiel für eine so erzeugte HTML-Datei. Das tatsächliche Ergebnis kann je nach KI etwas abweichen.\n\n::html-sandbox{src=\"/examples/webspace/inventory-management/index.html\" height=\"640px\"}\n::\n\nWenn Sie diese Datei in den Arbeitsbereich hochladen, ist die Ansicht fertig, die Ihre Teammitglieder tatsächlich nutzen können.\n\n## 3. Testdaten einfüllen\n\nUm das System tatsächlich in Aktion zu sehen, brauchen Sie Daten. Auch eine Ansicht, die per Knopfdruck Beispieldaten einfüllt, können Sie die KI direkt erstellen lassen.\n\n```\n[Hier das Ergebnis aus Schritt 1 einfügen]\n\nDas obige Schema ist bereits bereitgestellt, und die index.html, die dieses Schema verwendet, ist ebenfalls bereits erstellt.\nErstelle eine Ansicht (mock-db-upload.html), die per Klick auf eine einzige Schaltfläche automatisch Testdaten einfüllt.\n\nSchreibe die Daten auf dieselbe Weise wie die Ansicht aus Schritt 2 in den echten Server (Token per POST /api/auth/bootstrap holen, Datensätze per POST /api/web/{dbName}/{table}/create anlegen).\n\n- Lege tatsächlich 10–15 Teile, 3–5 Produkte, die Teilezusammensetzung jedes Produkts und einige Ein-/Ausgangseinträge an.\n- Fülle Namen und Mengen von Teilen/Produkten mit Werten, wie sie in einem Fertigungsbetrieb tatsächlich vorkommen.\n- Wenn bereits Daten mit demselben Code vorhanden sind, überspringe nur diesen Eintrag und fahre fort.\n- Zeige den Fortschritt zeilenweise als Protokoll auf dem Bildschirm an und zeige am Ende \"Fertig\" an.\nGib ohne weitere Erklärung nur den fertigen mock-db-upload.html-Code aus.\n```\n\nNachfolgend ein Beispiel für eine so erzeugte HTML-Datei. Das tatsächliche Ergebnis kann je nach KI etwas abweichen. Diese Ansicht wird nicht bereitgestellt, sondern nur geöffnet, wenn Sie eine Demo vorbereiten müssen.\n\n::html-sandbox{src=\"/examples/webspace/inventory-management/mock-db-upload.html\" height=\"640px\"}\n::\n\nMit eingetragenen Daten sieht die Nutzung so aus.\n\n![Teilebestand — ein Doppelklick auf eine Zelle bearbeitet und speichert sie direkt](./_screenshots/inventory-parts-status_en.jpg)\n\n![Stücklistenerfassung — eine Teilekarte von rechts nach links ziehen und ablegen, um sie zur Zusammensetzung hinzuzufügen](./_screenshots/inventory-bom-dnd_en.jpg)\n\n![Erfassung der Montageproduktion — nach Auswahl von Produkt und Produktionsmenge werden benötigte Teilemengen und aktueller Bestand automatisch angezeigt](./_screenshots/inventory-assembly-production_en.jpg)\n\n![Transaktionsverlauf — Montageproduktion und Montageverbrauch werden je Chargennummer gemeinsam protokolliert](./_screenshots/inventory-transaction-history_en.jpg)\n\n## 4. Wiederholt anpassen\n\nSie müssen nicht alles auf einmal fertigstellen. Wenn Ihnen bei der Nutzung der Ansicht fehlende Funktionen oder Änderungswünsche auffallen, bitten Sie die KI einfach weiter. Je nachdem, was Sie ändern, unterscheiden sich jedoch die nächsten Schritte.\n\n- **Änderungen an der DB-Struktur (Tabellen/Spalten)** — z. B. neue Spalte, neue Tabelle — erfordern, dass Sie die geänderte `.sfn` erneut holen, in den `Editor` einfügen und unter `API-Erstellung` erneut bereitstellen.\n- **Änderungen nur an der Ansicht bei unveränderter DB-Struktur** — z. B. Design, Texte, Position von Schaltflächen — erfordern nur, dass Sie `index.html` erneut holen und die bestehende Datei überschreiben. Die API muss nicht erneut bereitgestellt werden.\n- Wenn Sie die Struktur einer Tabelle ändern, die bereits Daten enthält, prüfen Sie in den Bereitstellungseinstellungen die Option `Vorhandene Daten überschreiben`. Bei aktiviertem Überschreiben werden bestehende Daten dauerhaft gelöscht.\n\n---\n\nMit nur diesen vier Schritten erstellt die KI alles: den Datenbankentwurf, die fertigen Ansichten, die Testdaten und die späteren Anpassungen. Danach verfeinern Sie Design und Details der Ansicht nach Belieben weiter.\n",1793056575905]