[{"data":1,"prerenderedAt":4041},["ShallowReactive",2],{"nav-docs-ja":3,"page-/ja/docs/webspace/examples/my-own-system":1156,"surround-/ja/docs/webspace/examples/my-own-system":4035,"raw-/ja/docs/webspace/examples/my-own-system":4038},[4,67,374,775,903,1074,1084,1109],{"title":5,"tags":6,"slug":6,"path":7,"stem":8,"children":9,"page":66,"sourcePath":7},"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},"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アカウントの作成","/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},"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},"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},"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},"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},"初期設定","/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},"ライセンスの有効化","/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},"接続アドレスの確認（ローカル/内部ネットワーク）","/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},"外部接続方式の選択","/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},"スペースを管理する","/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/home","10.admin/00.home",[77,82,87],{"title":78,"path":79,"stem":80,"tags":6,"slug":81,"sourcePath":79},"管理者ページにアクセスする","/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},"管理者メニューを確認する","10.admin/00.home/00.overview","/admin/","/admin/home/overview",{"title":88,"path":89,"stem":90,"tags":6,"slug":91,"sourcePath":89},"ライセンス管理","/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},"ユーザー管理","/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},"登録ポリシーと既定の権限を設定する","/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},"登録時の規約を登録する","/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},"ユーザーアカウントの作成","/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},"ユーザーアカウントを編集する","/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},"管理者を追加する","/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},"チーム管理","/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},"レベル管理","/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},"接続記録を確認する","/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},"アクティブなデバイスを管理する","/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},"アカウント・セキュリティのポリシーを設定する","/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},"ロボット確認（CAPTCHA）を設定する","/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},"案内送信を設定する","/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},"会員へ一斉案内メールを送信する","/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},"サービス構成","/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},"ファイルエリアの設定","/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の設定","/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},"コミュニティ設定","/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},"AIチャットボットポリシー設定","/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},"メール設定","/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},"ブランディング設定","/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},"ナレッジサービス","/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},"ナレッジサービスの概要","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},"収集・インデックス作成","/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},"検索品質・言語","/admin/knowledge/search","10.admin/30.knowledge/20.search","/admin/knowledge/search/",{"title":220,"path":221,"stem":222,"tags":6,"slug":223,"sourcePath":221},"ナレッジストレージ","/admin/knowledge/storage","10.admin/30.knowledge/30.storage","/admin/knowledge/storage/",{"title":225,"path":226,"stem":227,"tags":6,"slug":228,"sourcePath":226},"ナレッジストレージを運用する","/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を接続する","/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サーバーを準備する","/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を接続する","/admin/knowledge/milvus","10.admin/30.knowledge/36.milvus","/admin/knowledge/milvus/",{"title":245,"path":246,"stem":247,"tags":6,"slug":248,"sourcePath":246},"外部検索・根拠","/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},"AIサービス","/admin/ai","10.admin/35.ai",[254,259,264,269],{"title":255,"path":251,"stem":256,"tags":6,"slug":257,"sourcePath":258},"AIサービスを管理する","10.admin/35.ai/00.overview","/admin/ai/","/admin/ai/overview",{"title":260,"path":261,"stem":262,"tags":6,"slug":263,"sourcePath":261},"モデル・ランタイムを設定する","/admin/ai/models","10.admin/35.ai/10.models","/admin/ai/models/",{"title":265,"path":266,"stem":267,"tags":6,"slug":268,"sourcePath":266},"ツール・連携を設定する","/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サーバーを管理する","/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},"プラグイン","/admin/plugin","10.admin/40.plugin",[279,284],{"title":280,"path":281,"stem":282,"tags":6,"slug":283,"sourcePath":281},"プラグインを管理する","/admin/plugin/overview","10.admin/40.plugin/00.overview","/admin/plugin/overview/",{"title":285,"path":286,"stem":287,"tags":6,"slug":288,"sourcePath":286},"拡張プラグインの設定","/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},"運用・監査の記録を確認する","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},"セキュリティ管理","/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},"セキュリティの概要","/admin/security/overview","10.admin/50.security/00.overview","/admin/security/overview/",{"title":310,"path":311,"stem":312,"tags":6,"slug":313,"sourcePath":311},"監査ログを確認する","/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},"ブロック管理","/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},"セキュリティ設定","/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},"承認待ちの端末を処理する","/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アクセス制限","/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},"管理者の2段階認証を設定する","/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},"システム管理","/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},"デバイス情報","/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},"サーバーの再起動とシステムメンテナンス","/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},"バックグラウンドサービス","/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をアップデートする","/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をアンインストールする","/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},"サーバーを移行する","/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},"ワークスペースを使用する","/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},"メニュー","/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},"ワークスペースの紹介","/workspace/menu/overview","20.workspace/05.menu/00.overview","/workspace/menu/overview/",{"title":390,"path":391,"stem":392,"tags":6,"slug":393,"sourcePath":391},"チームスペース","/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},"クライアントスペース","/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},"お気に入り","/workspace/menu/favorites","20.workspace/05.menu/10.favorites","/workspace/menu/favorites/",{"title":405,"path":406,"stem":407,"tags":6,"slug":408,"sourcePath":406},"最近のドキュメント","/workspace/menu/recent","20.workspace/05.menu/20.recent","/workspace/menu/recent/",{"title":410,"path":411,"stem":412,"tags":6,"slug":413,"sourcePath":411},"外部共有","/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},"ゴミ箱","/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},"アカウント","/workspace/account","20.workspace/10.account",[424,429,434],{"title":425,"path":426,"stem":427,"tags":6,"slug":428,"sourcePath":426},"新規登録とログイン","/workspace/account/signup","20.workspace/10.account/10.signup","/workspace/account/signup/",{"title":430,"path":431,"stem":432,"tags":6,"slug":433,"sourcePath":431},"パスワードの再設定","/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},"アカウント設定","/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},"フォルダ","/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},"フォルダの基本機能","/workspace/folder/basic","20.workspace/20.folder/10.basic","/workspace/folder/basic/",{"title":450,"path":451,"stem":452,"tags":6,"slug":453,"sourcePath":451},"複数のフォルダを一度に作成する","/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},"フィルター","/workspace/folder/filter","20.workspace/20.folder/13.filter","/workspace/folder/filter/",{"title":460,"path":461,"stem":462,"tags":6,"slug":463,"sourcePath":461},"フォルダの表示オプション設定","/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},"フォルダを掲示板として使う","/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},"フォルダWebビュー","/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},"フォルダ整理","/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},"フォルダのお知らせ (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},"フォルダ/ファイルリストのエクスポート","/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},"レベル別のアクセス権限設定","/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},"チーム別のアクセス権限設定","/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},"ファイルルールを設定する","/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},"フォルダWebhook","/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},"フォルダのナレッジインデックスを設定する","/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},"業務自動化フォルダ","/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},"ファイル","/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},"ファイル管理の基本機能","/workspace/file/overview","20.workspace/30.file/00.overview","/workspace/file/overview/",{"title":534,"path":535,"stem":536,"tags":6,"slug":537,"sourcePath":535},"ファイルを見ながら一覧を確認する","/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},"マークダウン、テキストファイルの表示と編集","/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ファイルの表示","/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ファイルの表示と編集","/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},"画像/動画ファイルの表示","/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ファイルの表示","/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},"Webページの貼り付け(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},"スクリーンショットを貼り付ける","/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(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},"スクリーン録画","/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},"クイックノート","/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},"ファイルタグ","/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},"ファイル名を一括変更する","/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},"ファイル変換","/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},"テンプレートファイル","/workspace/file/templates","20.workspace/30.file/41.templates","/workspace/file/templates/",{"title":609,"path":610,"stem":611,"tags":6,"slug":612,"sourcePath":610},"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},"決裁書式","/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},"カンバンボード","/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},"タイムライン","/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},"メモ帳","/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},"AIチャットファイル","/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},"ファイル変更記録の確認","/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},"ファイルバージョン管理","/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},"編集ロック","/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},"ファイル暗号化","/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},"ディスク上のファイルを登録","/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},"コラボレーション","/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},"ファイル/フォルダコメント","/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},"チャット","/workspace/cooperation/chat","20.workspace/35.cooperation/10.chat","/workspace/cooperation/chat/",{"title":678,"path":679,"stem":680,"tags":6,"slug":681,"sourcePath":679},"コラボレーションチャットと編集ロック","/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},"チームメンバーの作業位置を追う","/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},"メンション","/workspace/cooperation/mention","20.workspace/35.cooperation/14.mention","/workspace/cooperation/mention/",{"title":693,"path":694,"stem":695,"tags":6,"slug":696,"sourcePath":694},"DM","/workspace/cooperation/dm","20.workspace/35.cooperation/16.dm","/workspace/cooperation/dm/",{"title":698,"path":699,"stem":700,"tags":6,"slug":701,"sourcePath":699},"通知アーカイブ","/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},"チーム活動を確認する","/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},"外部共有リンクの作成","/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},"外部共有のメール送信","/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},"検索","/workspace/search","20.workspace/40.search",[723,728,734,739,744,749],{"title":724,"path":725,"stem":726,"tags":6,"slug":727,"sourcePath":725},"ファイル検索","/workspace/search/search","20.workspace/40.search/00.search","/workspace/search/search/",{"title":729,"path":730,"stem":731,"tags":732,"slug":733,"sourcePath":730},"文脈検索（AI検索）","/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},"画像検索","/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},"チャット検索","/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},"コメント検索","/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},"類義語検索","/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},"AI","/workspace/ai","20.workspace/50.ai",[759,764,770],{"title":760,"path":761,"stem":762,"tags":6,"slug":763,"sourcePath":761},"AI機能のまとめ","/workspace/ai/overview","20.workspace/50.ai/00.overview","/workspace/ai/overview/",{"title":765,"path":766,"stem":767,"tags":768,"slug":769,"sourcePath":766},"ローカルAIに作業を依頼する","/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},"外部AIの利用","/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},"WebSpaceとは","/webspace/overview","40.webspace/00.overview","/webspace/overview/",{"title":786,"path":787,"stem":788,"tags":6,"slug":789,"sourcePath":787},"Webサイトをデプロイする","/webspace/website-release","40.webspace/10.website-release","/webspace/website-release/",{"title":791,"path":792,"stem":793,"tags":6,"slug":794,"sourcePath":792},"スキーマファイル（.sfn）を作成する","/webspace/create-database","40.webspace/20.create-database","/webspace/create-database/",{"title":796,"path":797,"stem":798,"tags":6,"slug":799,"sourcePath":797},"APIをビルドしてデータベースをデプロイする","/webspace/api-overview","40.webspace/24.api-overview","/webspace/api-overview/",{"title":801,"path":802,"stem":803,"tags":6,"slug":804,"sourcePath":802},"フロントエンドのサンプルを確認する","/webspace/frontend-example","40.webspace/26.frontend-example","/webspace/frontend-example/",{"title":806,"path":807,"stem":808,"tags":809,"slug":810,"sourcePath":807},"チーム内向けWebサービスを作る","/webspace/internal-webservice","40.webspace/32.internal-webservice",[469],"/webspace/internal-webservice/",{"title":812,"path":813,"stem":814,"tags":6,"slug":815,"sourcePath":813},"外部公開用Webサービスを作る","/webspace/external-webservice","40.webspace/34.external-webservice","/webspace/external-webservice/",{"title":817,"path":818,"stem":819,"tags":6,"slug":820,"sourcePath":818},"SQLをインポート・エクスポートする","/webspace/sql-converter","40.webspace/42.sql-converter","/webspace/sql-converter/",{"title":822,"path":823,"stem":824,"tags":6,"slug":825,"sourcePath":823},"スキーマをコードに変換する","/webspace/code-converter","40.webspace/44.code-converter","/webspace/code-converter/",{"title":827,"path":828,"stem":829,"tags":6,"slug":830,"sourcePath":828},"パフォーマンスとスケーリング","/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管理","/webspace/admin","40.webspace/50.admin",[836,841,846,851,856,861],{"title":837,"path":838,"stem":839,"tags":6,"slug":840,"sourcePath":838},"WebSpace管理を始める","/webspace/admin/overview","40.webspace/50.admin/00.overview","/webspace/admin/overview/",{"title":842,"path":843,"stem":844,"tags":6,"slug":845,"sourcePath":843},"運用状況","/webspace/admin/operations","40.webspace/50.admin/10.operations","/webspace/admin/operations/",{"title":847,"path":848,"stem":849,"tags":6,"slug":850,"sourcePath":848},"ワークスペースアクセス","/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・サイトセキュリティ","/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},"サービスと容量","/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},"デプロイ管理とフロントエンドリリース","/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を試してみる",[469],"/webspace/examples","40.webspace/60.examples",[872,877,882,888,893,898],{"title":873,"path":869,"stem":874,"tags":6,"slug":875,"sourcePath":876},"WebSpace応用編","40.webspace/60.examples/00.overview","/webspace/examples/","/webspace/examples/overview",{"title":878,"path":879,"stem":880,"tags":6,"slug":881,"sourcePath":879},"自分だけの業務システムを作る","/webspace/examples/my-own-system","40.webspace/60.examples/10.my-own-system","/webspace/examples/my-own-system/",{"title":883,"path":884,"stem":885,"tags":886,"slug":887,"sourcePath":884},"リアルタイム五目並べゲームを作る","/webspace/examples/realtime-gomoku","40.webspace/60.examples/20.realtime-gomoku",[469],"/webspace/examples/realtime-gomoku/",{"title":889,"path":890,"stem":891,"tags":6,"slug":892,"sourcePath":890},"フォルダ内のファイルで資料掲示板を作成する","/webspace/examples/folder-board","40.webspace/60.examples/30.folder-board","/webspace/examples/folder-board/",{"title":894,"path":895,"stem":896,"tags":6,"slug":897,"sourcePath":895},"共同モンスターレイドを作成する","/webspace/examples/monster-raid","40.webspace/60.examples/40.monster-raid","/webspace/examples/monster-raid/",{"title":899,"path":900,"stem":901,"tags":6,"slug":902,"sourcePath":900},"AI相談チャットのサンプルをデプロイする","/webspace/examples/ai-support-chat","40.webspace/60.examples/50.ai-support-chat","/webspace/examples/ai-support-chat/",{"title":904,"tags":6,"slug":6,"path":905,"stem":906,"children":907,"page":66,"sourcePath":905},"プラグインを使用する","/plugin","50.plugin",[908,913,933,993,1014,1049],{"title":909,"path":910,"stem":911,"tags":6,"slug":912,"sourcePath":910},"プラグインの概要","/plugin/overview","50.plugin/00.overview","/plugin/overview/",{"title":914,"tags":6,"slug":6,"path":915,"stem":916,"children":917,"page":66,"sourcePath":915},"カレンダー","/plugin/calendar","50.plugin/10.calendar",[918,923,928],{"title":919,"path":920,"stem":921,"tags":6,"slug":922,"sourcePath":920},"カレンダーの紹介","/plugin/calendar/overview","50.plugin/10.calendar/00.overview","/plugin/calendar/overview/",{"title":924,"path":925,"stem":926,"tags":6,"slug":927,"sourcePath":925},"イベントの作成・編集・削除","/plugin/calendar/create-event","50.plugin/10.calendar/10.create-event","/plugin/calendar/create-event/",{"title":929,"path":930,"stem":931,"tags":6,"slug":932,"sourcePath":930},"アクティビティ履歴の確認","/plugin/calendar/file-activity","50.plugin/10.calendar/40.file-activity","/plugin/calendar/file-activity/",{"title":934,"tags":6,"slug":6,"path":935,"stem":936,"children":937,"page":66,"sourcePath":935},"メール","/plugin/email","50.plugin/20.email",[938,943,947,952,957,963,968,973,978,983,988],{"title":939,"path":940,"stem":941,"tags":6,"slug":942,"sourcePath":940},"メールの紹介","/plugin/email/overview","50.plugin/20.email/00.overview","/plugin/email/overview/",{"title":188,"path":944,"stem":945,"tags":6,"slug":946,"sourcePath":944},"/plugin/email/setfn-email-setting","50.plugin/20.email/05.setfn-email-setting","/plugin/email/setfn-email-setting/",{"title":948,"path":949,"stem":950,"tags":6,"slug":951,"sourcePath":949},"外部メールの接続","/plugin/email/external-email","50.plugin/20.email/07.external-email","/plugin/email/external-email/",{"title":953,"path":954,"stem":955,"tags":6,"slug":956,"sourcePath":954},"メールの基本機能","/plugin/email/email-basic","50.plugin/20.email/10.email-basic","/plugin/email/email-basic/",{"title":958,"path":959,"stem":960,"tags":6,"slug":961,"sourcePath":962},"メールAIアシスタントを使用する","/plugin/email/ai-assistant","50.plugin/20.email/15.email-ai-assistant","/plugin/email/ai-assistant/","/plugin/email/email-ai-assistant",{"title":964,"path":965,"stem":966,"tags":6,"slug":967,"sourcePath":965},"メールの作成と送信","/plugin/email/email-compose","50.plugin/20.email/20.email-compose","/plugin/email/email-compose/",{"title":969,"path":970,"stem":971,"tags":6,"slug":972,"sourcePath":970},"ファイルを添付する","/plugin/email/email-attachment","50.plugin/20.email/30.email-attachment","/plugin/email/email-attachment/",{"title":974,"path":975,"stem":976,"tags":6,"slug":977,"sourcePath":975},"メールフォルダ管理","/plugin/email/email-folders","50.plugin/20.email/40.email-folders","/plugin/email/email-folders/",{"title":979,"path":980,"stem":981,"tags":6,"slug":982,"sourcePath":980},"メールを自動分類する","/plugin/email/email-auto-classify","50.plugin/20.email/50.email-auto-classify","/plugin/email/email-auto-classify/",{"title":984,"path":985,"stem":986,"tags":6,"slug":987,"sourcePath":985},"メールファイルの保管と共有","/plugin/email/email-open-in-space","50.plugin/20.email/60.email-open-in-space","/plugin/email/email-open-in-space/",{"title":989,"path":990,"stem":991,"tags":6,"slug":992,"sourcePath":990},"メールセキュリティ","/plugin/email/email-security","50.plugin/20.email/70.email-security","/plugin/email/email-security/",{"title":994,"tags":6,"slug":6,"path":995,"stem":996,"children":997,"page":66,"sourcePath":995},"ワークフロー (業務自動化)","/plugin/workflow","50.plugin/30.workflow",[998,1003,1009],{"title":999,"path":1000,"stem":1001,"tags":6,"slug":1002,"sourcePath":1000},"ワークフローの紹介","/plugin/workflow/overview","50.plugin/30.workflow/00.overview","/plugin/workflow/overview/",{"title":1004,"path":1005,"stem":1006,"tags":1007,"slug":1008,"sourcePath":1005},"新規ワークフローの作成","/plugin/workflow/new-workflow","50.plugin/30.workflow/10.new-workflow",[469],"/plugin/workflow/new-workflow/",{"title":1010,"path":1011,"stem":1012,"tags":6,"slug":1013,"sourcePath":1011},"実行履歴を確認する","/plugin/workflow/execution-history","50.plugin/30.workflow/20.execution-history","/plugin/workflow/execution-history/",{"title":1015,"tags":6,"slug":6,"path":1016,"stem":1017,"children":1018,"page":66,"sourcePath":1016},"ファインチューニング (AI学習)","/plugin/fine-tuning","50.plugin/40.fine-tuning",[1019,1024,1029,1034,1039,1044],{"title":1020,"path":1021,"stem":1022,"tags":6,"slug":1023,"sourcePath":1021},"ファインチューニングの紹介","/plugin/fine-tuning/overview","50.plugin/40.fine-tuning/00.overview","/plugin/fine-tuning/overview/",{"title":1025,"path":1026,"stem":1027,"tags":6,"slug":1028,"sourcePath":1026},"トレーニングデータの前処理","/plugin/fine-tuning/pre-processing","50.plugin/40.fine-tuning/10.pre-processing","/plugin/fine-tuning/pre-processing/",{"title":1030,"path":1031,"stem":1032,"tags":6,"slug":1033,"sourcePath":1031},"トレーニング","/plugin/fine-tuning/training","50.plugin/40.fine-tuning/20.training","/plugin/fine-tuning/training/",{"title":1035,"path":1036,"stem":1037,"tags":6,"slug":1038,"sourcePath":1036},"評価","/plugin/fine-tuning/evaluation","50.plugin/40.fine-tuning/30.evaluation","/plugin/fine-tuning/evaluation/",{"title":1040,"path":1041,"stem":1042,"tags":6,"slug":1043,"sourcePath":1041},"チャットテスト","/plugin/fine-tuning/chat-test","50.plugin/40.fine-tuning/40.chat-test","/plugin/fine-tuning/chat-test/",{"title":1045,"path":1046,"stem":1047,"tags":6,"slug":1048,"sourcePath":1046},"エクスポート","/plugin/fine-tuning/export","50.plugin/40.fine-tuning/50.export","/plugin/fine-tuning/export/",{"title":1050,"tags":6,"slug":6,"path":1051,"stem":1052,"children":1053,"page":66,"sourcePath":1051},"EDC (データ収集)","/plugin/edc","50.plugin/50.edc",[1054,1059,1064,1069],{"title":1055,"path":1056,"stem":1057,"tags":6,"slug":1058,"sourcePath":1056},"EDCの紹介","/plugin/edc/overview","50.plugin/50.edc/00.overview","/plugin/edc/overview/",{"title":1060,"path":1061,"stem":1062,"tags":6,"slug":1063,"sourcePath":1061},"データ入力、Audit Trail","/plugin/edc/data-entry","50.plugin/50.edc/10.data-entry","/plugin/edc/data-entry/",{"title":1065,"path":1066,"stem":1067,"tags":6,"slug":1068,"sourcePath":1066},"ビルダー","/plugin/edc/builder","50.plugin/50.edc/20.builder","/plugin/edc/builder/",{"title":1070,"path":1071,"stem":1072,"tags":6,"slug":1073,"sourcePath":1071},"ユーザー/サイトの設定","/plugin/edc/account","50.plugin/50.edc/30.account","/plugin/edc/account/",{"title":1075,"tags":6,"slug":6,"path":1076,"stem":1077,"children":1078,"page":66,"sourcePath":1076},"コマンドラインツール","/cli","90.cli",[1079],{"title":1080,"path":1081,"stem":1082,"tags":6,"slug":1083,"sourcePath":1081},"コマンドでサーバーを管理する","/cli/commands","90.cli/10.commands","/cli/commands/",{"title":1085,"tags":6,"slug":6,"path":1086,"stem":1087,"children":1088,"page":66,"sourcePath":1086},"セキュリティアップデート","/security-updates","95.security-updates",[1089,1094,1099,1104],{"title":1090,"path":1091,"stem":1092,"tags":6,"slug":1093,"sourcePath":1091},"セキュリティ点検とアップデートの仕組みを知る","/security-updates/overview","95.security-updates/00.overview","/security-updates/overview/",{"title":1095,"path":1096,"stem":1097,"tags":6,"slug":1098,"sourcePath":1096},"セキュリティ点検記録","/security-updates/review-log","95.security-updates/10.review-log","/security-updates/review-log/",{"title":1100,"path":1101,"stem":1102,"tags":6,"slug":1103,"sourcePath":1101},"主要な脆弱性の点検状況","/security-updates/vulnerability-status","95.security-updates/20.vulnerability-status","/security-updates/vulnerability-status/",{"title":1105,"path":1106,"stem":1107,"tags":6,"slug":1108,"sourcePath":1106},"サーバーのセキュリティアップデートを点検する","/security-updates/server-checklist","95.security-updates/30.server-checklist","/security-updates/server-checklist/",{"title":1110,"tags":6,"slug":6,"path":1111,"stem":1112,"children":1113,"page":66,"sourcePath":1111},"FAQ","/faq","99.FAQ",[1114,1120,1126,1132,1138,1144,1150],{"title":1115,"path":1116,"stem":1117,"tags":6,"slug":1118,"sourcePath":1119},"SetFNとクラウドサービスの比較","/FAQ/comparison-cloud","99.FAQ/10.comparison-cloud","/FAQ/comparison-cloud/","/faq/comparison-cloud",{"title":1121,"path":1122,"stem":1123,"tags":6,"slug":1124,"sourcePath":1125},"SetFNとNASの比較","/FAQ/comparison-nas","99.FAQ/20.comparison-nas","/FAQ/comparison-nas/","/faq/comparison-nas",{"title":1127,"path":1128,"stem":1129,"tags":6,"slug":1130,"sourcePath":1131},"セキュリティポリシー","/FAQ/security-policy","99.FAQ/30.security-policy","/FAQ/security-policy/","/faq/security-policy",{"title":1133,"path":1134,"stem":1135,"tags":6,"slug":1136,"sourcePath":1137},"SetFNはなぜ速いのか","/FAQ/why-fast","99.FAQ/40.why-fast","/FAQ/why-fast/","/faq/why-fast",{"title":1139,"path":1140,"stem":1141,"tags":6,"slug":1142,"sourcePath":1143},"ライセンスFAQ","/FAQ/license-faq","99.FAQ/50.license-faq","/FAQ/license-faq/","/faq/license-faq",{"title":1145,"path":1146,"stem":1147,"tags":6,"slug":1148,"sourcePath":1149},"AI機能FAQ","/FAQ/ai-faq","99.FAQ/60.ai-faq","/FAQ/ai-faq/","/faq/ai-faq",{"title":1151,"path":1152,"stem":1153,"tags":6,"slug":1154,"sourcePath":1155},"トラブルシューティングガイド","/FAQ/troubleshooting","99.FAQ/70.troubleshooting","/FAQ/troubleshooting/","/faq/troubleshooting",{"id":1157,"title":878,"body":1158,"cover":6,"description":4020,"extension":4021,"image":6,"meta":4022,"navigation":4023,"path":879,"reviewSummary":6,"reviewedAt":6,"seo":4024,"slug":881,"stem":880,"tags":6,"thumbnail":6,"thumbnailPosition":6,"thumbnailScale":6,"__hash__":4034},"docs_ja/40.webspace/60.examples/10.my-own-system.md",{"type":1159,"value":1160,"toc":4014},"minimal",[1161,1164,1168,1186,1189,1194,1204,1207,1217,1228,3800,3813,3820,3823,3829,3836,3842,3849,3855,3873,3877,3883,3899,3902,3908,3911,3916,3919,3923,3926,3932,3935,3938,3941,3947,3953,3959,3965,3969,3972,4005,4007,4010],[1162,1163,878],"h1",{"id":878},[1165,1166,1167],"p",{},"SetFNワークスペースでは、自社専用のグループウェアやERPのようなシステムを自分で作ることができます。\nデータベース構造の設計と画面の制作はAIに任せ、その成果物をファイルにしてワークスペースにアップロードするだけです。\n作成するファイルは2つ。行う作業は、アップロードと「配布する」ボタンのクリックです。\nここでは、「製造現場の在庫管理プログラム」を例に作成します。",[1165,1169,1170,1171,1176,1177,1181,1182,1185],{},"AIプロンプトを使わずに、完成済みのファイルをすぐに試したい場合は、",[1172,1173,1175],"a",{"href":1174},"/examples/webspace/inventory-management/setfn-inventory-management-sample.zip","サンプル一式のZIPをダウンロード","から、スキーマ、",[1178,1179,1180],"code",{},"index.html","、",[1178,1183,1184],{},"mock-db-upload.html","、READMEをまとめて入手できます。",[1187,1188],"hr",{},[1190,1191,1193],"h2",{"id":1192},"_1-データベースを作成するためのsfnファイルを作る","1. データベースを作成するための.sfnファイルを作る",[1165,1195,1196,1197,1200,1201,1203],{},"SetFNワークスペースでは、",[1178,1198,1199],{},".sfn","というファイルでDBを作成できます。Claude、GPT、GeminiなどのAIに",[1178,1202,1199],{},"ファイルの例をコピーして渡し、「部品と製品の在庫を管理したい」のように要件を説明すると、AIがファイルを作成します。",[1165,1205,1206],{},"次の内容をコピーし、下の部分の要件を書き換えてAIに渡してみてください。",[1208,1209,1214],"pre",{"className":1210,"code":1212,"language":1213},[1211],"language-text","あなたは、SetFNというノーコードのバックエンドプラットフォームのスキーマファイル（.sfn）を設計するエンジニアです。\n.sfnは、次の構造を持つJSONファイルです。\n\n{\n  \"content-type\": \"application/setfn-schema\",\n  \"dbType\": \"sqlite3\",\n  \"apiBuild\": {\n    \"dbName\": \"英小文字_アンダースコア_DB名\",\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\": \"テーブル名\", \"cmt\": \"このテーブルの説明\" },\n      \"columns\": [\n        { \"name\": \"id\", \"type\": \"serial4\", \"primary\": true, \"default\": \"auto_increment\" },\n        { \"name\": \"カラム名\", \"type\": \"text\", \"notnull\": true, \"cmt\": \"カラムの説明\" },\n        { \"name\": \"数値カラム\", \"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\nカラムのtypeは、serial4（自動増分のPK）/ text / int4（整数）/ timestampだけを使用してください。\nカラムには、notnull、default、unique、index、cmtを必要に応じて付けてください。\n\nでは、この形式で、製造業の会社が使う「在庫管理システム」のDBを設計してください。要件は次のとおりです。\n\n- 部品を登録し、部品ごとの現在の在庫数量を管理する。\n- 製品を登録し、製品ごとの現在の在庫数量を管理する。\n- 1つの製品は、複数の部品を組み立てて作られる。どの製品にどの部品がいくつ必要か（BOM、部品表）を管理する。\n- 部品/製品の入庫・出庫の履歴を残す。特に「部品を組み立てて製品を生産する」イベントが発生したときは、その時点で使用された部品と生産された製品の数量を、1つの出来事としてまとめて追跡できなければならない（後から「この製品を作るのに部品がどれだけ使われたか」を照会できる必要がある）。\n\nDB名（dbName）は \"inventory_management\" にしてください。\nテーブルは4つ以内で、実務ですぐに使えるくらい実用的に設計してください。\nほかの説明は付けず、完成した.sfnのJSONコードだけを出力してください。\n","text",[1178,1215,1212],{"__ignoreMap":1216},"",[1165,1218,1219,1220,1223,1224,1227],{},"次は、このようにして作成されたAIの応答の例です。実際の結果は、AIによって、また実行するたびに少しずつ異なる場合があります。この内容と完全に同じである必要はなく、似た構造になっていれば問題ありません。ただし、ほかの説明がなく、",[1178,1221,1222],{},"{","で始まり",[1178,1225,1226],{},"}","で終わる形式でなければ、出力された結果をそのままエディタに貼り付けることができません。",[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\": \"部品マスター。照会/登録/変更はメンバーなら誰でも可能、削除は管理者のみ\" },\n      \"columns\": [\n        { \"name\": \"id\", \"type\": \"serial4\", \"primary\": true, \"default\": \"auto_increment\" },\n        { \"name\": \"part_code\", \"type\": \"text\", \"notnull\": true, \"unique\": true, \"cmt\": \"部品コード\" },\n        { \"name\": \"name\", \"type\": \"text\", \"notnull\": true, \"cmt\": \"部品名\" },\n        { \"name\": \"spec\", \"type\": \"text\", \"cmt\": \"規格（例：M2、220V/50Hz）。同じ名前でも規格が異なる場合は、別のpart_codeで登録\" },\n        { \"name\": \"category\", \"type\": \"text\", \"cmt\": \"部品の分類（電子部品/機構部品/梱包材など）\" },\n        { \"name\": \"unit\", \"type\": \"text\", \"notnull\": true, \"default\": \"EA\", \"cmt\": \"単位\" },\n        { \"name\": \"unit_cost\", \"type\": \"int4\", \"notnull\": true, \"default\": \"0\", \"cmt\": \"単価\" },\n        { \"name\": \"current_stock\", \"type\": \"int4\", \"notnull\": true, \"default\": \"0\", \"cmt\": \"現在庫\" },\n        { \"name\": \"safety_stock\", \"type\": \"int4\", \"notnull\": true, \"default\": \"0\", \"cmt\": \"安全在庫（再発注点）\" },\n        { \"name\": \"supplier\", \"type\": \"text\", \"cmt\": \"仕入先\" },\n        { \"name\": \"_user_id\", \"type\": \"int4\", \"notnull\": true, \"index\": true },\n        { \"name\": \"_nick\", \"type\": \"text\", \"cmt\": \"最後に登録/変更したメンバーの表示名\" },\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\": \"製品マスター。照会/登録/変更はメンバーなら誰でも可能、削除は管理者のみ\" },\n      \"columns\": [\n        { \"name\": \"id\", \"type\": \"serial4\", \"primary\": true, \"default\": \"auto_increment\" },\n        { \"name\": \"product_code\", \"type\": \"text\", \"notnull\": true, \"unique\": true, \"cmt\": \"製品コード\" },\n        { \"name\": \"name\", \"type\": \"text\", \"notnull\": true, \"cmt\": \"製品名\" },\n        { \"name\": \"category\", \"type\": \"text\", \"cmt\": \"製品の分類\" },\n        { \"name\": \"unit\", \"type\": \"text\", \"notnull\": true, \"default\": \"EA\", \"cmt\": \"単位\" },\n        { \"name\": \"price\", \"type\": \"int4\", \"notnull\": true, \"default\": \"0\", \"cmt\": \"販売価格\" },\n        { \"name\": \"current_stock\", \"type\": \"int4\", \"notnull\": true, \"default\": \"0\", \"cmt\": \"現在庫\" },\n        { \"name\": \"_user_id\", \"type\": \"int4\", \"notnull\": true, \"index\": true },\n        { \"name\": \"_nick\", \"type\": \"text\", \"cmt\": \"最後に登録/変更したメンバーの表示名\" },\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\": \"製品ごとの部品構成表（単一階層）。bom_key(product_id:part_id)にunique制約を設定し、同じ製品に同じ部品が重複して登録されないようにする\" },\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\": \"製品1個を作るのに必要な部品の数量\" },\n        { \"name\": \"bom_key\", \"type\": \"text\", \"notnull\": true, \"unique\": true, \"cmt\": \"product_id:part_idの組み合わせ。重複登録の防止用\" },\n        { \"name\": \"_user_id\", \"type\": \"int4\", \"notnull\": true, \"index\": true },\n        { \"name\": \"_nick\", \"type\": \"text\", \"cmt\": \"登録したメンバーの表示名\" },\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\": \"入出庫/組立の統合履歴。item_type=part|product、tx_type=입고|출고|조립사용|조립생산（入庫|出庫|組立使用|組立生産）。1つの組立生産イベントは、同じbatch_idを共有する複数件の組立使用（部品の消費）と1件の組立生産（製品の増加）で構成され、製品にどの部品がどれだけ使われたかを追跡できる\" },\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 または products.id\" },\n        { \"name\": \"item_name\", \"type\": \"text\", \"notnull\": true, \"cmt\": \"登録時点の品目名のスナップショット\" },\n        { \"name\": \"tx_type\", \"type\": \"text\", \"notnull\": true, \"cmt\": \"입고（入庫） | 출고（出庫） | 조립사용（組立使用） | 조립생산（組立生産）\" },\n        { \"name\": \"reason\", \"type\": \"text\", \"cmt\": \"入出庫の理由。組立使用/組立生産はtx_type自体が理由であるため空欄にする\" },\n        { \"name\": \"qty\", \"type\": \"int4\", \"notnull\": true, \"cmt\": \"常に正の数。方向はtx_typeで判断\" },\n        { \"name\": \"batch_id\", \"type\": \"text\", \"index\": true, \"cmt\": \"組立生産イベントをまとめるid。単純な入出庫の場合は空\" },\n        { \"name\": \"note\", \"type\": \"text\", \"cmt\": \"メモ\" },\n        { \"name\": \"_user_id\", \"type\": \"int4\", \"notnull\": true, \"index\": true },\n        { \"name\": \"_nick\", \"type\": \"text\", \"cmt\": \"登録したメンバーの表示名\" },\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,1439,1447,1492,1542,1580,1611,1642,1690,1739,1786,1833,1864,1903,1934,1966,1972,1980,2006,2014,2030,2046,2062,2078,2106,2112,2118,2124,2129,2154,2161,2198,2245,2283,2313,2358,2405,2450,2487,2516,2545,2550,2557,2580,2587,2602,2617,2632,2647,2670,2675,2680,2685,2690,2715,2722,2759,2797,2835,2883,2930,2967,2997,3026,3031,3038,3061,3068,3083,3098,3113,3128,3151,3156,3161,3166,3171,3196,3203,3240,3279,3326,3365,3404,3435,3474,3513,3544,3581,3610,3639,3644,3651,3674,3681,3696,3711,3726,3750,3773,3778,3783,3788,3794],{"__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,1429,1432,1434,1437],{"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,1428],{"class":1242},", ",[1236,1430,1431],{"class":1249},"\"cmt\"",[1236,1433,1253],{"class":1242},[1236,1435,1436],{"class":1256},"\"部品マスター。照会/登録/変更はメンバーなら誰でも可能、削除は管理者のみ\"",[1236,1438,1349],{"class":1242},[1236,1440,1442,1445],{"class":1238,"line":1441},17,[1236,1443,1444],{"class":1249},"      \"columns\"",[1236,1446,1403],{"class":1242},[1236,1448,1450,1453,1455,1457,1460,1462,1465,1467,1470,1472,1475,1477,1480,1482,1485,1487,1490],{"class":1238,"line":1449},18,[1236,1451,1452],{"class":1242},"        { ",[1236,1454,1420],{"class":1249},[1236,1456,1253],{"class":1242},[1236,1458,1459],{"class":1256},"\"id\"",[1236,1461,1428],{"class":1242},[1236,1463,1464],{"class":1249},"\"type\"",[1236,1466,1253],{"class":1242},[1236,1468,1469],{"class":1256},"\"serial4\"",[1236,1471,1428],{"class":1242},[1236,1473,1474],{"class":1249},"\"primary\"",[1236,1476,1253],{"class":1242},[1236,1478,1479],{"class":1319},"true",[1236,1481,1428],{"class":1242},[1236,1483,1484],{"class":1249},"\"default\"",[1236,1486,1253],{"class":1242},[1236,1488,1489],{"class":1256},"\"auto_increment\"",[1236,1491,1349],{"class":1242},[1236,1493,1495,1497,1499,1501,1504,1506,1508,1510,1513,1515,1518,1520,1522,1524,1527,1529,1531,1533,1535,1537,1540],{"class":1238,"line":1494},19,[1236,1496,1452],{"class":1242},[1236,1498,1420],{"class":1249},[1236,1500,1253],{"class":1242},[1236,1502,1503],{"class":1256},"\"part_code\"",[1236,1505,1428],{"class":1242},[1236,1507,1464],{"class":1249},[1236,1509,1253],{"class":1242},[1236,1511,1512],{"class":1256},"\"text\"",[1236,1514,1428],{"class":1242},[1236,1516,1517],{"class":1249},"\"notnull\"",[1236,1519,1253],{"class":1242},[1236,1521,1479],{"class":1319},[1236,1523,1428],{"class":1242},[1236,1525,1526],{"class":1249},"\"unique\"",[1236,1528,1253],{"class":1242},[1236,1530,1479],{"class":1319},[1236,1532,1428],{"class":1242},[1236,1534,1431],{"class":1249},[1236,1536,1253],{"class":1242},[1236,1538,1539],{"class":1256},"\"部品コード\"",[1236,1541,1349],{"class":1242},[1236,1543,1545,1547,1549,1551,1553,1555,1557,1559,1561,1563,1565,1567,1569,1571,1573,1575,1578],{"class":1238,"line":1544},20,[1236,1546,1452],{"class":1242},[1236,1548,1420],{"class":1249},[1236,1550,1253],{"class":1242},[1236,1552,1420],{"class":1256},[1236,1554,1428],{"class":1242},[1236,1556,1464],{"class":1249},[1236,1558,1253],{"class":1242},[1236,1560,1512],{"class":1256},[1236,1562,1428],{"class":1242},[1236,1564,1517],{"class":1249},[1236,1566,1253],{"class":1242},[1236,1568,1479],{"class":1319},[1236,1570,1428],{"class":1242},[1236,1572,1431],{"class":1249},[1236,1574,1253],{"class":1242},[1236,1576,1577],{"class":1256},"\"部品名\"",[1236,1579,1349],{"class":1242},[1236,1581,1583,1585,1587,1589,1592,1594,1596,1598,1600,1602,1604,1606,1609],{"class":1238,"line":1582},21,[1236,1584,1452],{"class":1242},[1236,1586,1420],{"class":1249},[1236,1588,1253],{"class":1242},[1236,1590,1591],{"class":1256},"\"spec\"",[1236,1593,1428],{"class":1242},[1236,1595,1464],{"class":1249},[1236,1597,1253],{"class":1242},[1236,1599,1512],{"class":1256},[1236,1601,1428],{"class":1242},[1236,1603,1431],{"class":1249},[1236,1605,1253],{"class":1242},[1236,1607,1608],{"class":1256},"\"規格（例：M2、220V/50Hz）。同じ名前でも規格が異なる場合は、別のpart_codeで登録\"",[1236,1610,1349],{"class":1242},[1236,1612,1614,1616,1618,1620,1623,1625,1627,1629,1631,1633,1635,1637,1640],{"class":1238,"line":1613},22,[1236,1615,1452],{"class":1242},[1236,1617,1420],{"class":1249},[1236,1619,1253],{"class":1242},[1236,1621,1622],{"class":1256},"\"category\"",[1236,1624,1428],{"class":1242},[1236,1626,1464],{"class":1249},[1236,1628,1253],{"class":1242},[1236,1630,1512],{"class":1256},[1236,1632,1428],{"class":1242},[1236,1634,1431],{"class":1249},[1236,1636,1253],{"class":1242},[1236,1638,1639],{"class":1256},"\"部品の分類（電子部品/機構部品/梱包材など）\"",[1236,1641,1349],{"class":1242},[1236,1643,1645,1647,1649,1651,1654,1656,1658,1660,1662,1664,1666,1668,1670,1672,1674,1676,1679,1681,1683,1685,1688],{"class":1238,"line":1644},23,[1236,1646,1452],{"class":1242},[1236,1648,1420],{"class":1249},[1236,1650,1253],{"class":1242},[1236,1652,1653],{"class":1256},"\"unit\"",[1236,1655,1428],{"class":1242},[1236,1657,1464],{"class":1249},[1236,1659,1253],{"class":1242},[1236,1661,1512],{"class":1256},[1236,1663,1428],{"class":1242},[1236,1665,1517],{"class":1249},[1236,1667,1253],{"class":1242},[1236,1669,1479],{"class":1319},[1236,1671,1428],{"class":1242},[1236,1673,1484],{"class":1249},[1236,1675,1253],{"class":1242},[1236,1677,1678],{"class":1256},"\"EA\"",[1236,1680,1428],{"class":1242},[1236,1682,1431],{"class":1249},[1236,1684,1253],{"class":1242},[1236,1686,1687],{"class":1256},"\"単位\"",[1236,1689,1349],{"class":1242},[1236,1691,1693,1695,1697,1699,1702,1704,1706,1708,1711,1713,1715,1717,1719,1721,1723,1725,1728,1730,1732,1734,1737],{"class":1238,"line":1692},24,[1236,1694,1452],{"class":1242},[1236,1696,1420],{"class":1249},[1236,1698,1253],{"class":1242},[1236,1700,1701],{"class":1256},"\"unit_cost\"",[1236,1703,1428],{"class":1242},[1236,1705,1464],{"class":1249},[1236,1707,1253],{"class":1242},[1236,1709,1710],{"class":1256},"\"int4\"",[1236,1712,1428],{"class":1242},[1236,1714,1517],{"class":1249},[1236,1716,1253],{"class":1242},[1236,1718,1479],{"class":1319},[1236,1720,1428],{"class":1242},[1236,1722,1484],{"class":1249},[1236,1724,1253],{"class":1242},[1236,1726,1727],{"class":1256},"\"0\"",[1236,1729,1428],{"class":1242},[1236,1731,1431],{"class":1249},[1236,1733,1253],{"class":1242},[1236,1735,1736],{"class":1256},"\"単価\"",[1236,1738,1349],{"class":1242},[1236,1740,1742,1744,1746,1748,1751,1753,1755,1757,1759,1761,1763,1765,1767,1769,1771,1773,1775,1777,1779,1781,1784],{"class":1238,"line":1741},25,[1236,1743,1452],{"class":1242},[1236,1745,1420],{"class":1249},[1236,1747,1253],{"class":1242},[1236,1749,1750],{"class":1256},"\"current_stock\"",[1236,1752,1428],{"class":1242},[1236,1754,1464],{"class":1249},[1236,1756,1253],{"class":1242},[1236,1758,1710],{"class":1256},[1236,1760,1428],{"class":1242},[1236,1762,1517],{"class":1249},[1236,1764,1253],{"class":1242},[1236,1766,1479],{"class":1319},[1236,1768,1428],{"class":1242},[1236,1770,1484],{"class":1249},[1236,1772,1253],{"class":1242},[1236,1774,1727],{"class":1256},[1236,1776,1428],{"class":1242},[1236,1778,1431],{"class":1249},[1236,1780,1253],{"class":1242},[1236,1782,1783],{"class":1256},"\"現在庫\"",[1236,1785,1349],{"class":1242},[1236,1787,1789,1791,1793,1795,1798,1800,1802,1804,1806,1808,1810,1812,1814,1816,1818,1820,1822,1824,1826,1828,1831],{"class":1238,"line":1788},26,[1236,1790,1452],{"class":1242},[1236,1792,1420],{"class":1249},[1236,1794,1253],{"class":1242},[1236,1796,1797],{"class":1256},"\"safety_stock\"",[1236,1799,1428],{"class":1242},[1236,1801,1464],{"class":1249},[1236,1803,1253],{"class":1242},[1236,1805,1710],{"class":1256},[1236,1807,1428],{"class":1242},[1236,1809,1517],{"class":1249},[1236,1811,1253],{"class":1242},[1236,1813,1479],{"class":1319},[1236,1815,1428],{"class":1242},[1236,1817,1484],{"class":1249},[1236,1819,1253],{"class":1242},[1236,1821,1727],{"class":1256},[1236,1823,1428],{"class":1242},[1236,1825,1431],{"class":1249},[1236,1827,1253],{"class":1242},[1236,1829,1830],{"class":1256},"\"安全在庫（再発注点）\"",[1236,1832,1349],{"class":1242},[1236,1834,1836,1838,1840,1842,1845,1847,1849,1851,1853,1855,1857,1859,1862],{"class":1238,"line":1835},27,[1236,1837,1452],{"class":1242},[1236,1839,1420],{"class":1249},[1236,1841,1253],{"class":1242},[1236,1843,1844],{"class":1256},"\"supplier\"",[1236,1846,1428],{"class":1242},[1236,1848,1464],{"class":1249},[1236,1850,1253],{"class":1242},[1236,1852,1512],{"class":1256},[1236,1854,1428],{"class":1242},[1236,1856,1431],{"class":1249},[1236,1858,1253],{"class":1242},[1236,1860,1861],{"class":1256},"\"仕入先\"",[1236,1863,1349],{"class":1242},[1236,1865,1867,1869,1871,1873,1876,1878,1880,1882,1884,1886,1888,1890,1892,1894,1897,1899,1901],{"class":1238,"line":1866},28,[1236,1868,1452],{"class":1242},[1236,1870,1420],{"class":1249},[1236,1872,1253],{"class":1242},[1236,1874,1875],{"class":1256},"\"_user_id\"",[1236,1877,1428],{"class":1242},[1236,1879,1464],{"class":1249},[1236,1881,1253],{"class":1242},[1236,1883,1710],{"class":1256},[1236,1885,1428],{"class":1242},[1236,1887,1517],{"class":1249},[1236,1889,1253],{"class":1242},[1236,1891,1479],{"class":1319},[1236,1893,1428],{"class":1242},[1236,1895,1896],{"class":1249},"\"index\"",[1236,1898,1253],{"class":1242},[1236,1900,1479],{"class":1319},[1236,1902,1349],{"class":1242},[1236,1904,1906,1908,1910,1912,1915,1917,1919,1921,1923,1925,1927,1929,1932],{"class":1238,"line":1905},29,[1236,1907,1452],{"class":1242},[1236,1909,1420],{"class":1249},[1236,1911,1253],{"class":1242},[1236,1913,1914],{"class":1256},"\"_nick\"",[1236,1916,1428],{"class":1242},[1236,1918,1464],{"class":1249},[1236,1920,1253],{"class":1242},[1236,1922,1512],{"class":1256},[1236,1924,1428],{"class":1242},[1236,1926,1431],{"class":1249},[1236,1928,1253],{"class":1242},[1236,1930,1931],{"class":1256},"\"最後に登録/変更したメンバーの表示名\"",[1236,1933,1349],{"class":1242},[1236,1935,1937,1939,1941,1943,1946,1948,1950,1952,1955,1957,1959,1961,1964],{"class":1238,"line":1936},30,[1236,1938,1452],{"class":1242},[1236,1940,1420],{"class":1249},[1236,1942,1253],{"class":1242},[1236,1944,1945],{"class":1256},"\"_created_at\"",[1236,1947,1428],{"class":1242},[1236,1949,1464],{"class":1249},[1236,1951,1253],{"class":1242},[1236,1953,1954],{"class":1256},"\"timestamp\"",[1236,1956,1428],{"class":1242},[1236,1958,1484],{"class":1249},[1236,1960,1253],{"class":1242},[1236,1962,1963],{"class":1256},"\"now()\"",[1236,1965,1382],{"class":1242},[1236,1967,1969],{"class":1238,"line":1968},31,[1236,1970,1971],{"class":1242},"      ],\n",[1236,1973,1975,1978],{"class":1238,"line":1974},32,[1236,1976,1977],{"class":1249},"      \"permissions\"",[1236,1979,1282],{"class":1242},[1236,1981,1983,1986,1988,1991,1993,1995,1997,2000,2002,2004],{"class":1238,"line":1982},33,[1236,1984,1985],{"class":1249},"        \"security\"",[1236,1987,1339],{"class":1242},[1236,1989,1990],{"class":1249},"\"login\"",[1236,1992,1253],{"class":1242},[1236,1994,1479],{"class":1319},[1236,1996,1428],{"class":1242},[1236,1998,1999],{"class":1249},"\"ownerColumn\"",[1236,2001,1253],{"class":1242},[1236,2003,1875],{"class":1256},[1236,2005,1349],{"class":1242},[1236,2007,2009,2012],{"class":1238,"line":2008},34,[1236,2010,2011],{"class":1249},"        \"ops\"",[1236,2013,1282],{"class":1242},[1236,2015,2017,2020,2022,2024,2026,2028],{"class":1238,"line":2016},35,[1236,2018,2019],{"class":1249},"          \"list\"",[1236,2021,1339],{"class":1242},[1236,2023,1990],{"class":1249},[1236,2025,1253],{"class":1242},[1236,2027,1479],{"class":1319},[1236,2029,1349],{"class":1242},[1236,2031,2033,2036,2038,2040,2042,2044],{"class":1238,"line":2032},36,[1236,2034,2035],{"class":1249},"          \"view\"",[1236,2037,1339],{"class":1242},[1236,2039,1990],{"class":1249},[1236,2041,1253],{"class":1242},[1236,2043,1479],{"class":1319},[1236,2045,1349],{"class":1242},[1236,2047,2049,2052,2054,2056,2058,2060],{"class":1238,"line":2048},37,[1236,2050,2051],{"class":1249},"          \"create\"",[1236,2053,1339],{"class":1242},[1236,2055,1990],{"class":1249},[1236,2057,1253],{"class":1242},[1236,2059,1479],{"class":1319},[1236,2061,1349],{"class":1242},[1236,2063,2065,2068,2070,2072,2074,2076],{"class":1238,"line":2064},38,[1236,2066,2067],{"class":1249},"          \"update\"",[1236,2069,1339],{"class":1242},[1236,2071,1990],{"class":1249},[1236,2073,1253],{"class":1242},[1236,2075,1479],{"class":1319},[1236,2077,1349],{"class":1242},[1236,2079,2081,2084,2086,2088,2090,2092,2094,2097,2100,2103],{"class":1238,"line":2080},39,[1236,2082,2083],{"class":1249},"          \"delete\"",[1236,2085,1339],{"class":1242},[1236,2087,1990],{"class":1249},[1236,2089,1253],{"class":1242},[1236,2091,1479],{"class":1319},[1236,2093,1428],{"class":1242},[1236,2095,2096],{"class":1249},"\"roles\"",[1236,2098,2099],{"class":1242},": [",[1236,2101,2102],{"class":1256},"\"admin\"",[1236,2104,2105],{"class":1242},"] }\n",[1236,2107,2109],{"class":1238,"line":2108},40,[1236,2110,2111],{"class":1242},"        }\n",[1236,2113,2115],{"class":1238,"line":2114},41,[1236,2116,2117],{"class":1242},"      }\n",[1236,2119,2121],{"class":1238,"line":2120},42,[1236,2122,2123],{"class":1242},"    },\n",[1236,2125,2127],{"class":1238,"line":2126},43,[1236,2128,1409],{"class":1242},[1236,2130,2132,2134,2136,2138,2140,2143,2145,2147,2149,2152],{"class":1238,"line":2131},44,[1236,2133,1415],{"class":1249},[1236,2135,1339],{"class":1242},[1236,2137,1420],{"class":1249},[1236,2139,1253],{"class":1242},[1236,2141,2142],{"class":1256},"\"products\"",[1236,2144,1428],{"class":1242},[1236,2146,1431],{"class":1249},[1236,2148,1253],{"class":1242},[1236,2150,2151],{"class":1256},"\"製品マスター。照会/登録/変更はメンバーなら誰でも可能、削除は管理者のみ\"",[1236,2153,1349],{"class":1242},[1236,2155,2157,2159],{"class":1238,"line":2156},45,[1236,2158,1444],{"class":1249},[1236,2160,1403],{"class":1242},[1236,2162,2164,2166,2168,2170,2172,2174,2176,2178,2180,2182,2184,2186,2188,2190,2192,2194,2196],{"class":1238,"line":2163},46,[1236,2165,1452],{"class":1242},[1236,2167,1420],{"class":1249},[1236,2169,1253],{"class":1242},[1236,2171,1459],{"class":1256},[1236,2173,1428],{"class":1242},[1236,2175,1464],{"class":1249},[1236,2177,1253],{"class":1242},[1236,2179,1469],{"class":1256},[1236,2181,1428],{"class":1242},[1236,2183,1474],{"class":1249},[1236,2185,1253],{"class":1242},[1236,2187,1479],{"class":1319},[1236,2189,1428],{"class":1242},[1236,2191,1484],{"class":1249},[1236,2193,1253],{"class":1242},[1236,2195,1489],{"class":1256},[1236,2197,1349],{"class":1242},[1236,2199,2201,2203,2205,2207,2210,2212,2214,2216,2218,2220,2222,2224,2226,2228,2230,2232,2234,2236,2238,2240,2243],{"class":1238,"line":2200},47,[1236,2202,1452],{"class":1242},[1236,2204,1420],{"class":1249},[1236,2206,1253],{"class":1242},[1236,2208,2209],{"class":1256},"\"product_code\"",[1236,2211,1428],{"class":1242},[1236,2213,1464],{"class":1249},[1236,2215,1253],{"class":1242},[1236,2217,1512],{"class":1256},[1236,2219,1428],{"class":1242},[1236,2221,1517],{"class":1249},[1236,2223,1253],{"class":1242},[1236,2225,1479],{"class":1319},[1236,2227,1428],{"class":1242},[1236,2229,1526],{"class":1249},[1236,2231,1253],{"class":1242},[1236,2233,1479],{"class":1319},[1236,2235,1428],{"class":1242},[1236,2237,1431],{"class":1249},[1236,2239,1253],{"class":1242},[1236,2241,2242],{"class":1256},"\"製品コード\"",[1236,2244,1349],{"class":1242},[1236,2246,2248,2250,2252,2254,2256,2258,2260,2262,2264,2266,2268,2270,2272,2274,2276,2278,2281],{"class":1238,"line":2247},48,[1236,2249,1452],{"class":1242},[1236,2251,1420],{"class":1249},[1236,2253,1253],{"class":1242},[1236,2255,1420],{"class":1256},[1236,2257,1428],{"class":1242},[1236,2259,1464],{"class":1249},[1236,2261,1253],{"class":1242},[1236,2263,1512],{"class":1256},[1236,2265,1428],{"class":1242},[1236,2267,1517],{"class":1249},[1236,2269,1253],{"class":1242},[1236,2271,1479],{"class":1319},[1236,2273,1428],{"class":1242},[1236,2275,1431],{"class":1249},[1236,2277,1253],{"class":1242},[1236,2279,2280],{"class":1256},"\"製品名\"",[1236,2282,1349],{"class":1242},[1236,2284,2286,2288,2290,2292,2294,2296,2298,2300,2302,2304,2306,2308,2311],{"class":1238,"line":2285},49,[1236,2287,1452],{"class":1242},[1236,2289,1420],{"class":1249},[1236,2291,1253],{"class":1242},[1236,2293,1622],{"class":1256},[1236,2295,1428],{"class":1242},[1236,2297,1464],{"class":1249},[1236,2299,1253],{"class":1242},[1236,2301,1512],{"class":1256},[1236,2303,1428],{"class":1242},[1236,2305,1431],{"class":1249},[1236,2307,1253],{"class":1242},[1236,2309,2310],{"class":1256},"\"製品の分類\"",[1236,2312,1349],{"class":1242},[1236,2314,2316,2318,2320,2322,2324,2326,2328,2330,2332,2334,2336,2338,2340,2342,2344,2346,2348,2350,2352,2354,2356],{"class":1238,"line":2315},50,[1236,2317,1452],{"class":1242},[1236,2319,1420],{"class":1249},[1236,2321,1253],{"class":1242},[1236,2323,1653],{"class":1256},[1236,2325,1428],{"class":1242},[1236,2327,1464],{"class":1249},[1236,2329,1253],{"class":1242},[1236,2331,1512],{"class":1256},[1236,2333,1428],{"class":1242},[1236,2335,1517],{"class":1249},[1236,2337,1253],{"class":1242},[1236,2339,1479],{"class":1319},[1236,2341,1428],{"class":1242},[1236,2343,1484],{"class":1249},[1236,2345,1253],{"class":1242},[1236,2347,1678],{"class":1256},[1236,2349,1428],{"class":1242},[1236,2351,1431],{"class":1249},[1236,2353,1253],{"class":1242},[1236,2355,1687],{"class":1256},[1236,2357,1349],{"class":1242},[1236,2359,2361,2363,2365,2367,2370,2372,2374,2376,2378,2380,2382,2384,2386,2388,2390,2392,2394,2396,2398,2400,2403],{"class":1238,"line":2360},51,[1236,2362,1452],{"class":1242},[1236,2364,1420],{"class":1249},[1236,2366,1253],{"class":1242},[1236,2368,2369],{"class":1256},"\"price\"",[1236,2371,1428],{"class":1242},[1236,2373,1464],{"class":1249},[1236,2375,1253],{"class":1242},[1236,2377,1710],{"class":1256},[1236,2379,1428],{"class":1242},[1236,2381,1517],{"class":1249},[1236,2383,1253],{"class":1242},[1236,2385,1479],{"class":1319},[1236,2387,1428],{"class":1242},[1236,2389,1484],{"class":1249},[1236,2391,1253],{"class":1242},[1236,2393,1727],{"class":1256},[1236,2395,1428],{"class":1242},[1236,2397,1431],{"class":1249},[1236,2399,1253],{"class":1242},[1236,2401,2402],{"class":1256},"\"販売価格\"",[1236,2404,1349],{"class":1242},[1236,2406,2408,2410,2412,2414,2416,2418,2420,2422,2424,2426,2428,2430,2432,2434,2436,2438,2440,2442,2444,2446,2448],{"class":1238,"line":2407},52,[1236,2409,1452],{"class":1242},[1236,2411,1420],{"class":1249},[1236,2413,1253],{"class":1242},[1236,2415,1750],{"class":1256},[1236,2417,1428],{"class":1242},[1236,2419,1464],{"class":1249},[1236,2421,1253],{"class":1242},[1236,2423,1710],{"class":1256},[1236,2425,1428],{"class":1242},[1236,2427,1517],{"class":1249},[1236,2429,1253],{"class":1242},[1236,2431,1479],{"class":1319},[1236,2433,1428],{"class":1242},[1236,2435,1484],{"class":1249},[1236,2437,1253],{"class":1242},[1236,2439,1727],{"class":1256},[1236,2441,1428],{"class":1242},[1236,2443,1431],{"class":1249},[1236,2445,1253],{"class":1242},[1236,2447,1783],{"class":1256},[1236,2449,1349],{"class":1242},[1236,2451,2453,2455,2457,2459,2461,2463,2465,2467,2469,2471,2473,2475,2477,2479,2481,2483,2485],{"class":1238,"line":2452},53,[1236,2454,1452],{"class":1242},[1236,2456,1420],{"class":1249},[1236,2458,1253],{"class":1242},[1236,2460,1875],{"class":1256},[1236,2462,1428],{"class":1242},[1236,2464,1464],{"class":1249},[1236,2466,1253],{"class":1242},[1236,2468,1710],{"class":1256},[1236,2470,1428],{"class":1242},[1236,2472,1517],{"class":1249},[1236,2474,1253],{"class":1242},[1236,2476,1479],{"class":1319},[1236,2478,1428],{"class":1242},[1236,2480,1896],{"class":1249},[1236,2482,1253],{"class":1242},[1236,2484,1479],{"class":1319},[1236,2486,1349],{"class":1242},[1236,2488,2490,2492,2494,2496,2498,2500,2502,2504,2506,2508,2510,2512,2514],{"class":1238,"line":2489},54,[1236,2491,1452],{"class":1242},[1236,2493,1420],{"class":1249},[1236,2495,1253],{"class":1242},[1236,2497,1914],{"class":1256},[1236,2499,1428],{"class":1242},[1236,2501,1464],{"class":1249},[1236,2503,1253],{"class":1242},[1236,2505,1512],{"class":1256},[1236,2507,1428],{"class":1242},[1236,2509,1431],{"class":1249},[1236,2511,1253],{"class":1242},[1236,2513,1931],{"class":1256},[1236,2515,1349],{"class":1242},[1236,2517,2519,2521,2523,2525,2527,2529,2531,2533,2535,2537,2539,2541,2543],{"class":1238,"line":2518},55,[1236,2520,1452],{"class":1242},[1236,2522,1420],{"class":1249},[1236,2524,1253],{"class":1242},[1236,2526,1945],{"class":1256},[1236,2528,1428],{"class":1242},[1236,2530,1464],{"class":1249},[1236,2532,1253],{"class":1242},[1236,2534,1954],{"class":1256},[1236,2536,1428],{"class":1242},[1236,2538,1484],{"class":1249},[1236,2540,1253],{"class":1242},[1236,2542,1963],{"class":1256},[1236,2544,1382],{"class":1242},[1236,2546,2548],{"class":1238,"line":2547},56,[1236,2549,1971],{"class":1242},[1236,2551,2553,2555],{"class":1238,"line":2552},57,[1236,2554,1977],{"class":1249},[1236,2556,1282],{"class":1242},[1236,2558,2560,2562,2564,2566,2568,2570,2572,2574,2576,2578],{"class":1238,"line":2559},58,[1236,2561,1985],{"class":1249},[1236,2563,1339],{"class":1242},[1236,2565,1990],{"class":1249},[1236,2567,1253],{"class":1242},[1236,2569,1479],{"class":1319},[1236,2571,1428],{"class":1242},[1236,2573,1999],{"class":1249},[1236,2575,1253],{"class":1242},[1236,2577,1875],{"class":1256},[1236,2579,1349],{"class":1242},[1236,2581,2583,2585],{"class":1238,"line":2582},59,[1236,2584,2011],{"class":1249},[1236,2586,1282],{"class":1242},[1236,2588,2590,2592,2594,2596,2598,2600],{"class":1238,"line":2589},60,[1236,2591,2019],{"class":1249},[1236,2593,1339],{"class":1242},[1236,2595,1990],{"class":1249},[1236,2597,1253],{"class":1242},[1236,2599,1479],{"class":1319},[1236,2601,1349],{"class":1242},[1236,2603,2605,2607,2609,2611,2613,2615],{"class":1238,"line":2604},61,[1236,2606,2035],{"class":1249},[1236,2608,1339],{"class":1242},[1236,2610,1990],{"class":1249},[1236,2612,1253],{"class":1242},[1236,2614,1479],{"class":1319},[1236,2616,1349],{"class":1242},[1236,2618,2620,2622,2624,2626,2628,2630],{"class":1238,"line":2619},62,[1236,2621,2051],{"class":1249},[1236,2623,1339],{"class":1242},[1236,2625,1990],{"class":1249},[1236,2627,1253],{"class":1242},[1236,2629,1479],{"class":1319},[1236,2631,1349],{"class":1242},[1236,2633,2635,2637,2639,2641,2643,2645],{"class":1238,"line":2634},63,[1236,2636,2067],{"class":1249},[1236,2638,1339],{"class":1242},[1236,2640,1990],{"class":1249},[1236,2642,1253],{"class":1242},[1236,2644,1479],{"class":1319},[1236,2646,1349],{"class":1242},[1236,2648,2650,2652,2654,2656,2658,2660,2662,2664,2666,2668],{"class":1238,"line":2649},64,[1236,2651,2083],{"class":1249},[1236,2653,1339],{"class":1242},[1236,2655,1990],{"class":1249},[1236,2657,1253],{"class":1242},[1236,2659,1479],{"class":1319},[1236,2661,1428],{"class":1242},[1236,2663,2096],{"class":1249},[1236,2665,2099],{"class":1242},[1236,2667,2102],{"class":1256},[1236,2669,2105],{"class":1242},[1236,2671,2673],{"class":1238,"line":2672},65,[1236,2674,2111],{"class":1242},[1236,2676,2678],{"class":1238,"line":2677},66,[1236,2679,2117],{"class":1242},[1236,2681,2683],{"class":1238,"line":2682},67,[1236,2684,2123],{"class":1242},[1236,2686,2688],{"class":1238,"line":2687},68,[1236,2689,1409],{"class":1242},[1236,2691,2693,2695,2697,2699,2701,2704,2706,2708,2710,2713],{"class":1238,"line":2692},69,[1236,2694,1415],{"class":1249},[1236,2696,1339],{"class":1242},[1236,2698,1420],{"class":1249},[1236,2700,1253],{"class":1242},[1236,2702,2703],{"class":1256},"\"bom\"",[1236,2705,1428],{"class":1242},[1236,2707,1431],{"class":1249},[1236,2709,1253],{"class":1242},[1236,2711,2712],{"class":1256},"\"製品ごとの部品構成表（単一階層）。bom_key(product_id:part_id)にunique制約を設定し、同じ製品に同じ部品が重複して登録されないようにする\"",[1236,2714,1349],{"class":1242},[1236,2716,2718,2720],{"class":1238,"line":2717},70,[1236,2719,1444],{"class":1249},[1236,2721,1403],{"class":1242},[1236,2723,2725,2727,2729,2731,2733,2735,2737,2739,2741,2743,2745,2747,2749,2751,2753,2755,2757],{"class":1238,"line":2724},71,[1236,2726,1452],{"class":1242},[1236,2728,1420],{"class":1249},[1236,2730,1253],{"class":1242},[1236,2732,1459],{"class":1256},[1236,2734,1428],{"class":1242},[1236,2736,1464],{"class":1249},[1236,2738,1253],{"class":1242},[1236,2740,1469],{"class":1256},[1236,2742,1428],{"class":1242},[1236,2744,1474],{"class":1249},[1236,2746,1253],{"class":1242},[1236,2748,1479],{"class":1319},[1236,2750,1428],{"class":1242},[1236,2752,1484],{"class":1249},[1236,2754,1253],{"class":1242},[1236,2756,1489],{"class":1256},[1236,2758,1349],{"class":1242},[1236,2760,2762,2764,2766,2768,2771,2773,2775,2777,2779,2781,2783,2785,2787,2789,2791,2793,2795],{"class":1238,"line":2761},72,[1236,2763,1452],{"class":1242},[1236,2765,1420],{"class":1249},[1236,2767,1253],{"class":1242},[1236,2769,2770],{"class":1256},"\"product_id\"",[1236,2772,1428],{"class":1242},[1236,2774,1464],{"class":1249},[1236,2776,1253],{"class":1242},[1236,2778,1710],{"class":1256},[1236,2780,1428],{"class":1242},[1236,2782,1517],{"class":1249},[1236,2784,1253],{"class":1242},[1236,2786,1479],{"class":1319},[1236,2788,1428],{"class":1242},[1236,2790,1896],{"class":1249},[1236,2792,1253],{"class":1242},[1236,2794,1479],{"class":1319},[1236,2796,1349],{"class":1242},[1236,2798,2800,2802,2804,2806,2809,2811,2813,2815,2817,2819,2821,2823,2825,2827,2829,2831,2833],{"class":1238,"line":2799},73,[1236,2801,1452],{"class":1242},[1236,2803,1420],{"class":1249},[1236,2805,1253],{"class":1242},[1236,2807,2808],{"class":1256},"\"part_id\"",[1236,2810,1428],{"class":1242},[1236,2812,1464],{"class":1249},[1236,2814,1253],{"class":1242},[1236,2816,1710],{"class":1256},[1236,2818,1428],{"class":1242},[1236,2820,1517],{"class":1249},[1236,2822,1253],{"class":1242},[1236,2824,1479],{"class":1319},[1236,2826,1428],{"class":1242},[1236,2828,1896],{"class":1249},[1236,2830,1253],{"class":1242},[1236,2832,1479],{"class":1319},[1236,2834,1349],{"class":1242},[1236,2836,2838,2840,2842,2844,2847,2849,2851,2853,2855,2857,2859,2861,2863,2865,2867,2869,2872,2874,2876,2878,2881],{"class":1238,"line":2837},74,[1236,2839,1452],{"class":1242},[1236,2841,1420],{"class":1249},[1236,2843,1253],{"class":1242},[1236,2845,2846],{"class":1256},"\"qty_per_unit\"",[1236,2848,1428],{"class":1242},[1236,2850,1464],{"class":1249},[1236,2852,1253],{"class":1242},[1236,2854,1710],{"class":1256},[1236,2856,1428],{"class":1242},[1236,2858,1517],{"class":1249},[1236,2860,1253],{"class":1242},[1236,2862,1479],{"class":1319},[1236,2864,1428],{"class":1242},[1236,2866,1484],{"class":1249},[1236,2868,1253],{"class":1242},[1236,2870,2871],{"class":1256},"\"1\"",[1236,2873,1428],{"class":1242},[1236,2875,1431],{"class":1249},[1236,2877,1253],{"class":1242},[1236,2879,2880],{"class":1256},"\"製品1個を作るのに必要な部品の数量\"",[1236,2882,1349],{"class":1242},[1236,2884,2886,2888,2890,2892,2895,2897,2899,2901,2903,2905,2907,2909,2911,2913,2915,2917,2919,2921,2923,2925,2928],{"class":1238,"line":2885},75,[1236,2887,1452],{"class":1242},[1236,2889,1420],{"class":1249},[1236,2891,1253],{"class":1242},[1236,2893,2894],{"class":1256},"\"bom_key\"",[1236,2896,1428],{"class":1242},[1236,2898,1464],{"class":1249},[1236,2900,1253],{"class":1242},[1236,2902,1512],{"class":1256},[1236,2904,1428],{"class":1242},[1236,2906,1517],{"class":1249},[1236,2908,1253],{"class":1242},[1236,2910,1479],{"class":1319},[1236,2912,1428],{"class":1242},[1236,2914,1526],{"class":1249},[1236,2916,1253],{"class":1242},[1236,2918,1479],{"class":1319},[1236,2920,1428],{"class":1242},[1236,2922,1431],{"class":1249},[1236,2924,1253],{"class":1242},[1236,2926,2927],{"class":1256},"\"product_id:part_idの組み合わせ。重複登録の防止用\"",[1236,2929,1349],{"class":1242},[1236,2931,2933,2935,2937,2939,2941,2943,2945,2947,2949,2951,2953,2955,2957,2959,2961,2963,2965],{"class":1238,"line":2932},76,[1236,2934,1452],{"class":1242},[1236,2936,1420],{"class":1249},[1236,2938,1253],{"class":1242},[1236,2940,1875],{"class":1256},[1236,2942,1428],{"class":1242},[1236,2944,1464],{"class":1249},[1236,2946,1253],{"class":1242},[1236,2948,1710],{"class":1256},[1236,2950,1428],{"class":1242},[1236,2952,1517],{"class":1249},[1236,2954,1253],{"class":1242},[1236,2956,1479],{"class":1319},[1236,2958,1428],{"class":1242},[1236,2960,1896],{"class":1249},[1236,2962,1253],{"class":1242},[1236,2964,1479],{"class":1319},[1236,2966,1349],{"class":1242},[1236,2968,2970,2972,2974,2976,2978,2980,2982,2984,2986,2988,2990,2992,2995],{"class":1238,"line":2969},77,[1236,2971,1452],{"class":1242},[1236,2973,1420],{"class":1249},[1236,2975,1253],{"class":1242},[1236,2977,1914],{"class":1256},[1236,2979,1428],{"class":1242},[1236,2981,1464],{"class":1249},[1236,2983,1253],{"class":1242},[1236,2985,1512],{"class":1256},[1236,2987,1428],{"class":1242},[1236,2989,1431],{"class":1249},[1236,2991,1253],{"class":1242},[1236,2993,2994],{"class":1256},"\"登録したメンバーの表示名\"",[1236,2996,1349],{"class":1242},[1236,2998,3000,3002,3004,3006,3008,3010,3012,3014,3016,3018,3020,3022,3024],{"class":1238,"line":2999},78,[1236,3001,1452],{"class":1242},[1236,3003,1420],{"class":1249},[1236,3005,1253],{"class":1242},[1236,3007,1945],{"class":1256},[1236,3009,1428],{"class":1242},[1236,3011,1464],{"class":1249},[1236,3013,1253],{"class":1242},[1236,3015,1954],{"class":1256},[1236,3017,1428],{"class":1242},[1236,3019,1484],{"class":1249},[1236,3021,1253],{"class":1242},[1236,3023,1963],{"class":1256},[1236,3025,1382],{"class":1242},[1236,3027,3029],{"class":1238,"line":3028},79,[1236,3030,1971],{"class":1242},[1236,3032,3034,3036],{"class":1238,"line":3033},80,[1236,3035,1977],{"class":1249},[1236,3037,1282],{"class":1242},[1236,3039,3041,3043,3045,3047,3049,3051,3053,3055,3057,3059],{"class":1238,"line":3040},81,[1236,3042,1985],{"class":1249},[1236,3044,1339],{"class":1242},[1236,3046,1990],{"class":1249},[1236,3048,1253],{"class":1242},[1236,3050,1479],{"class":1319},[1236,3052,1428],{"class":1242},[1236,3054,1999],{"class":1249},[1236,3056,1253],{"class":1242},[1236,3058,1875],{"class":1256},[1236,3060,1349],{"class":1242},[1236,3062,3064,3066],{"class":1238,"line":3063},82,[1236,3065,2011],{"class":1249},[1236,3067,1282],{"class":1242},[1236,3069,3071,3073,3075,3077,3079,3081],{"class":1238,"line":3070},83,[1236,3072,2019],{"class":1249},[1236,3074,1339],{"class":1242},[1236,3076,1990],{"class":1249},[1236,3078,1253],{"class":1242},[1236,3080,1479],{"class":1319},[1236,3082,1349],{"class":1242},[1236,3084,3086,3088,3090,3092,3094,3096],{"class":1238,"line":3085},84,[1236,3087,2035],{"class":1249},[1236,3089,1339],{"class":1242},[1236,3091,1990],{"class":1249},[1236,3093,1253],{"class":1242},[1236,3095,1479],{"class":1319},[1236,3097,1349],{"class":1242},[1236,3099,3101,3103,3105,3107,3109,3111],{"class":1238,"line":3100},85,[1236,3102,2051],{"class":1249},[1236,3104,1339],{"class":1242},[1236,3106,1990],{"class":1249},[1236,3108,1253],{"class":1242},[1236,3110,1479],{"class":1319},[1236,3112,1349],{"class":1242},[1236,3114,3116,3118,3120,3122,3124,3126],{"class":1238,"line":3115},86,[1236,3117,2067],{"class":1249},[1236,3119,1339],{"class":1242},[1236,3121,1990],{"class":1249},[1236,3123,1253],{"class":1242},[1236,3125,1479],{"class":1319},[1236,3127,1349],{"class":1242},[1236,3129,3131,3133,3135,3137,3139,3141,3143,3145,3147,3149],{"class":1238,"line":3130},87,[1236,3132,2083],{"class":1249},[1236,3134,1339],{"class":1242},[1236,3136,1990],{"class":1249},[1236,3138,1253],{"class":1242},[1236,3140,1479],{"class":1319},[1236,3142,1428],{"class":1242},[1236,3144,2096],{"class":1249},[1236,3146,2099],{"class":1242},[1236,3148,2102],{"class":1256},[1236,3150,2105],{"class":1242},[1236,3152,3154],{"class":1238,"line":3153},88,[1236,3155,2111],{"class":1242},[1236,3157,3159],{"class":1238,"line":3158},89,[1236,3160,2117],{"class":1242},[1236,3162,3164],{"class":1238,"line":3163},90,[1236,3165,2123],{"class":1242},[1236,3167,3169],{"class":1238,"line":3168},91,[1236,3170,1409],{"class":1242},[1236,3172,3174,3176,3178,3180,3182,3185,3187,3189,3191,3194],{"class":1238,"line":3173},92,[1236,3175,1415],{"class":1249},[1236,3177,1339],{"class":1242},[1236,3179,1420],{"class":1249},[1236,3181,1253],{"class":1242},[1236,3183,3184],{"class":1256},"\"stock_transactions\"",[1236,3186,1428],{"class":1242},[1236,3188,1431],{"class":1249},[1236,3190,1253],{"class":1242},[1236,3192,3193],{"class":1256},"\"入出庫/組立の統合履歴。item_type=part|product、tx_type=입고|출고|조립사용|조립생산（入庫|出庫|組立使用|組立生産）。1つの組立生産イベントは、同じbatch_idを共有する複数件の組立使用（部品の消費）と1件の組立生産（製品の増加）で構成され、製品にどの部品がどれだけ使われたかを追跡できる\"",[1236,3195,1349],{"class":1242},[1236,3197,3199,3201],{"class":1238,"line":3198},93,[1236,3200,1444],{"class":1249},[1236,3202,1403],{"class":1242},[1236,3204,3206,3208,3210,3212,3214,3216,3218,3220,3222,3224,3226,3228,3230,3232,3234,3236,3238],{"class":1238,"line":3205},94,[1236,3207,1452],{"class":1242},[1236,3209,1420],{"class":1249},[1236,3211,1253],{"class":1242},[1236,3213,1459],{"class":1256},[1236,3215,1428],{"class":1242},[1236,3217,1464],{"class":1249},[1236,3219,1253],{"class":1242},[1236,3221,1469],{"class":1256},[1236,3223,1428],{"class":1242},[1236,3225,1474],{"class":1249},[1236,3227,1253],{"class":1242},[1236,3229,1479],{"class":1319},[1236,3231,1428],{"class":1242},[1236,3233,1484],{"class":1249},[1236,3235,1253],{"class":1242},[1236,3237,1489],{"class":1256},[1236,3239,1349],{"class":1242},[1236,3241,3243,3245,3247,3249,3252,3254,3256,3258,3260,3262,3264,3266,3268,3270,3272,3274,3277],{"class":1238,"line":3242},95,[1236,3244,1452],{"class":1242},[1236,3246,1420],{"class":1249},[1236,3248,1253],{"class":1242},[1236,3250,3251],{"class":1256},"\"item_type\"",[1236,3253,1428],{"class":1242},[1236,3255,1464],{"class":1249},[1236,3257,1253],{"class":1242},[1236,3259,1512],{"class":1256},[1236,3261,1428],{"class":1242},[1236,3263,1517],{"class":1249},[1236,3265,1253],{"class":1242},[1236,3267,1479],{"class":1319},[1236,3269,1428],{"class":1242},[1236,3271,1431],{"class":1249},[1236,3273,1253],{"class":1242},[1236,3275,3276],{"class":1256},"\"part | product\"",[1236,3278,1349],{"class":1242},[1236,3280,3282,3284,3286,3288,3291,3293,3295,3297,3299,3301,3303,3305,3307,3309,3311,3313,3315,3317,3319,3321,3324],{"class":1238,"line":3281},96,[1236,3283,1452],{"class":1242},[1236,3285,1420],{"class":1249},[1236,3287,1253],{"class":1242},[1236,3289,3290],{"class":1256},"\"item_id\"",[1236,3292,1428],{"class":1242},[1236,3294,1464],{"class":1249},[1236,3296,1253],{"class":1242},[1236,3298,1710],{"class":1256},[1236,3300,1428],{"class":1242},[1236,3302,1517],{"class":1249},[1236,3304,1253],{"class":1242},[1236,3306,1479],{"class":1319},[1236,3308,1428],{"class":1242},[1236,3310,1896],{"class":1249},[1236,3312,1253],{"class":1242},[1236,3314,1479],{"class":1319},[1236,3316,1428],{"class":1242},[1236,3318,1431],{"class":1249},[1236,3320,1253],{"class":1242},[1236,3322,3323],{"class":1256},"\"parts.id または products.id\"",[1236,3325,1349],{"class":1242},[1236,3327,3329,3331,3333,3335,3338,3340,3342,3344,3346,3348,3350,3352,3354,3356,3358,3360,3363],{"class":1238,"line":3328},97,[1236,3330,1452],{"class":1242},[1236,3332,1420],{"class":1249},[1236,3334,1253],{"class":1242},[1236,3336,3337],{"class":1256},"\"item_name\"",[1236,3339,1428],{"class":1242},[1236,3341,1464],{"class":1249},[1236,3343,1253],{"class":1242},[1236,3345,1512],{"class":1256},[1236,3347,1428],{"class":1242},[1236,3349,1517],{"class":1249},[1236,3351,1253],{"class":1242},[1236,3353,1479],{"class":1319},[1236,3355,1428],{"class":1242},[1236,3357,1431],{"class":1249},[1236,3359,1253],{"class":1242},[1236,3361,3362],{"class":1256},"\"登録時点の品目名のスナップショット\"",[1236,3364,1349],{"class":1242},[1236,3366,3368,3370,3372,3374,3377,3379,3381,3383,3385,3387,3389,3391,3393,3395,3397,3399,3402],{"class":1238,"line":3367},98,[1236,3369,1452],{"class":1242},[1236,3371,1420],{"class":1249},[1236,3373,1253],{"class":1242},[1236,3375,3376],{"class":1256},"\"tx_type\"",[1236,3378,1428],{"class":1242},[1236,3380,1464],{"class":1249},[1236,3382,1253],{"class":1242},[1236,3384,1512],{"class":1256},[1236,3386,1428],{"class":1242},[1236,3388,1517],{"class":1249},[1236,3390,1253],{"class":1242},[1236,3392,1479],{"class":1319},[1236,3394,1428],{"class":1242},[1236,3396,1431],{"class":1249},[1236,3398,1253],{"class":1242},[1236,3400,3401],{"class":1256},"\"입고（入庫） | 출고（出庫） | 조립사용（組立使用） | 조립생산（組立生産）\"",[1236,3403,1349],{"class":1242},[1236,3405,3407,3409,3411,3413,3416,3418,3420,3422,3424,3426,3428,3430,3433],{"class":1238,"line":3406},99,[1236,3408,1452],{"class":1242},[1236,3410,1420],{"class":1249},[1236,3412,1253],{"class":1242},[1236,3414,3415],{"class":1256},"\"reason\"",[1236,3417,1428],{"class":1242},[1236,3419,1464],{"class":1249},[1236,3421,1253],{"class":1242},[1236,3423,1512],{"class":1256},[1236,3425,1428],{"class":1242},[1236,3427,1431],{"class":1249},[1236,3429,1253],{"class":1242},[1236,3431,3432],{"class":1256},"\"入出庫の理由。組立使用/組立生産はtx_type自体が理由であるため空欄にする\"",[1236,3434,1349],{"class":1242},[1236,3436,3438,3440,3442,3444,3447,3449,3451,3453,3455,3457,3459,3461,3463,3465,3467,3469,3472],{"class":1238,"line":3437},100,[1236,3439,1452],{"class":1242},[1236,3441,1420],{"class":1249},[1236,3443,1253],{"class":1242},[1236,3445,3446],{"class":1256},"\"qty\"",[1236,3448,1428],{"class":1242},[1236,3450,1464],{"class":1249},[1236,3452,1253],{"class":1242},[1236,3454,1710],{"class":1256},[1236,3456,1428],{"class":1242},[1236,3458,1517],{"class":1249},[1236,3460,1253],{"class":1242},[1236,3462,1479],{"class":1319},[1236,3464,1428],{"class":1242},[1236,3466,1431],{"class":1249},[1236,3468,1253],{"class":1242},[1236,3470,3471],{"class":1256},"\"常に正の数。方向はtx_typeで判断\"",[1236,3473,1349],{"class":1242},[1236,3475,3477,3479,3481,3483,3486,3488,3490,3492,3494,3496,3498,3500,3502,3504,3506,3508,3511],{"class":1238,"line":3476},101,[1236,3478,1452],{"class":1242},[1236,3480,1420],{"class":1249},[1236,3482,1253],{"class":1242},[1236,3484,3485],{"class":1256},"\"batch_id\"",[1236,3487,1428],{"class":1242},[1236,3489,1464],{"class":1249},[1236,3491,1253],{"class":1242},[1236,3493,1512],{"class":1256},[1236,3495,1428],{"class":1242},[1236,3497,1896],{"class":1249},[1236,3499,1253],{"class":1242},[1236,3501,1479],{"class":1319},[1236,3503,1428],{"class":1242},[1236,3505,1431],{"class":1249},[1236,3507,1253],{"class":1242},[1236,3509,3510],{"class":1256},"\"組立生産イベントをまとめるid。単純な入出庫の場合は空\"",[1236,3512,1349],{"class":1242},[1236,3514,3516,3518,3520,3522,3525,3527,3529,3531,3533,3535,3537,3539,3542],{"class":1238,"line":3515},102,[1236,3517,1452],{"class":1242},[1236,3519,1420],{"class":1249},[1236,3521,1253],{"class":1242},[1236,3523,3524],{"class":1256},"\"note\"",[1236,3526,1428],{"class":1242},[1236,3528,1464],{"class":1249},[1236,3530,1253],{"class":1242},[1236,3532,1512],{"class":1256},[1236,3534,1428],{"class":1242},[1236,3536,1431],{"class":1249},[1236,3538,1253],{"class":1242},[1236,3540,3541],{"class":1256},"\"メモ\"",[1236,3543,1349],{"class":1242},[1236,3545,3547,3549,3551,3553,3555,3557,3559,3561,3563,3565,3567,3569,3571,3573,3575,3577,3579],{"class":1238,"line":3546},103,[1236,3548,1452],{"class":1242},[1236,3550,1420],{"class":1249},[1236,3552,1253],{"class":1242},[1236,3554,1875],{"class":1256},[1236,3556,1428],{"class":1242},[1236,3558,1464],{"class":1249},[1236,3560,1253],{"class":1242},[1236,3562,1710],{"class":1256},[1236,3564,1428],{"class":1242},[1236,3566,1517],{"class":1249},[1236,3568,1253],{"class":1242},[1236,3570,1479],{"class":1319},[1236,3572,1428],{"class":1242},[1236,3574,1896],{"class":1249},[1236,3576,1253],{"class":1242},[1236,3578,1479],{"class":1319},[1236,3580,1349],{"class":1242},[1236,3582,3584,3586,3588,3590,3592,3594,3596,3598,3600,3602,3604,3606,3608],{"class":1238,"line":3583},104,[1236,3585,1452],{"class":1242},[1236,3587,1420],{"class":1249},[1236,3589,1253],{"class":1242},[1236,3591,1914],{"class":1256},[1236,3593,1428],{"class":1242},[1236,3595,1464],{"class":1249},[1236,3597,1253],{"class":1242},[1236,3599,1512],{"class":1256},[1236,3601,1428],{"class":1242},[1236,3603,1431],{"class":1249},[1236,3605,1253],{"class":1242},[1236,3607,2994],{"class":1256},[1236,3609,1349],{"class":1242},[1236,3611,3613,3615,3617,3619,3621,3623,3625,3627,3629,3631,3633,3635,3637],{"class":1238,"line":3612},105,[1236,3614,1452],{"class":1242},[1236,3616,1420],{"class":1249},[1236,3618,1253],{"class":1242},[1236,3620,1945],{"class":1256},[1236,3622,1428],{"class":1242},[1236,3624,1464],{"class":1249},[1236,3626,1253],{"class":1242},[1236,3628,1954],{"class":1256},[1236,3630,1428],{"class":1242},[1236,3632,1484],{"class":1249},[1236,3634,1253],{"class":1242},[1236,3636,1963],{"class":1256},[1236,3638,1382],{"class":1242},[1236,3640,3642],{"class":1238,"line":3641},106,[1236,3643,1971],{"class":1242},[1236,3645,3647,3649],{"class":1238,"line":3646},107,[1236,3648,1977],{"class":1249},[1236,3650,1282],{"class":1242},[1236,3652,3654,3656,3658,3660,3662,3664,3666,3668,3670,3672],{"class":1238,"line":3653},108,[1236,3655,1985],{"class":1249},[1236,3657,1339],{"class":1242},[1236,3659,1990],{"class":1249},[1236,3661,1253],{"class":1242},[1236,3663,1479],{"class":1319},[1236,3665,1428],{"class":1242},[1236,3667,1999],{"class":1249},[1236,3669,1253],{"class":1242},[1236,3671,1875],{"class":1256},[1236,3673,1349],{"class":1242},[1236,3675,3677,3679],{"class":1238,"line":3676},109,[1236,3678,2011],{"class":1249},[1236,3680,1282],{"class":1242},[1236,3682,3684,3686,3688,3690,3692,3694],{"class":1238,"line":3683},110,[1236,3685,2019],{"class":1249},[1236,3687,1339],{"class":1242},[1236,3689,1990],{"class":1249},[1236,3691,1253],{"class":1242},[1236,3693,1479],{"class":1319},[1236,3695,1349],{"class":1242},[1236,3697,3699,3701,3703,3705,3707,3709],{"class":1238,"line":3698},111,[1236,3700,2035],{"class":1249},[1236,3702,1339],{"class":1242},[1236,3704,1990],{"class":1249},[1236,3706,1253],{"class":1242},[1236,3708,1479],{"class":1319},[1236,3710,1349],{"class":1242},[1236,3712,3714,3716,3718,3720,3722,3724],{"class":1238,"line":3713},112,[1236,3715,2051],{"class":1249},[1236,3717,1339],{"class":1242},[1236,3719,1990],{"class":1249},[1236,3721,1253],{"class":1242},[1236,3723,1479],{"class":1319},[1236,3725,1349],{"class":1242},[1236,3727,3729,3731,3733,3735,3737,3739,3741,3743,3745,3747],{"class":1238,"line":3728},113,[1236,3730,2067],{"class":1249},[1236,3732,1339],{"class":1242},[1236,3734,1990],{"class":1249},[1236,3736,1253],{"class":1242},[1236,3738,1479],{"class":1319},[1236,3740,1428],{"class":1242},[1236,3742,2096],{"class":1249},[1236,3744,2099],{"class":1242},[1236,3746,2102],{"class":1256},[1236,3748,3749],{"class":1242},"] },\n",[1236,3751,3753,3755,3757,3759,3761,3763,3765,3767,3769,3771],{"class":1238,"line":3752},114,[1236,3754,2083],{"class":1249},[1236,3756,1339],{"class":1242},[1236,3758,1990],{"class":1249},[1236,3760,1253],{"class":1242},[1236,3762,1479],{"class":1319},[1236,3764,1428],{"class":1242},[1236,3766,2096],{"class":1249},[1236,3768,2099],{"class":1242},[1236,3770,2102],{"class":1256},[1236,3772,2105],{"class":1242},[1236,3774,3776],{"class":1238,"line":3775},115,[1236,3777,2111],{"class":1242},[1236,3779,3781],{"class":1238,"line":3780},116,[1236,3782,2117],{"class":1242},[1236,3784,3786],{"class":1238,"line":3785},117,[1236,3787,1388],{"class":1242},[1236,3789,3791],{"class":1238,"line":3790},118,[1236,3792,3793],{"class":1242},"  ]\n",[1236,3795,3797],{"class":1238,"line":3796},119,[1236,3798,3799],{"class":1242},"}\n",[1165,3801,3802,3803,3806,3807,3806,3809,3812],{},"この結果をコピーし、ワークスペースで",[1178,3804,3805],{},"作成"," → ",[1178,3808,604],{},[1178,3810,3811],{},"新しいスキーマ（DB）","から、空のスキーマファイルを作成します。",[1165,3814,3815],{},[3816,3817],"img",{"alt":3818,"src":3819},"作成 > テンプレートファイル > 新しいスキーマ（DB）の選択画面","./_screenshots/new-schema_ja.png",[1165,3821,3822],{},"ファイル名を入力して保存すると、空のスキーマファイルが作成されます。",[1165,3824,3825],{},[3816,3826],{"alt":3827,"src":3828},"新しく作成した空のスキーマファイル","./_screenshots/schema-file-first_ja.png",[1165,3830,3831,3832,3835],{},"右上の",[1178,3833,3834],{},"エディタ","タブを押し、先ほどのAIの応答をそのまま貼り付けます。",[1165,3837,3838],{},[3816,3839],{"alt":3840,"src":3841},"スキーマエディタ画面","./_screenshots/schema-editor_ja.png",[1165,3843,3844,3845,3848],{},"保存してから上部の",[1178,3846,3847],{},"APIビルド","タブに移動すると、テーブルごとに自動生成されたAPIの一覧を確認できます。",[1165,3850,3851],{},[3816,3852],{"alt":3853,"src":3854},"APIビルド画面","./_screenshots/schema-api-build_ja.png",[1165,3856,3857,3860,3861,3864,3865,3867,3868,3872],{},[1178,3858,3859],{},"配布する","を押して設定を展開し、",[1178,3862,3863],{},"データベース識別子","を確認してから、",[1178,3866,3859],{},"をもう一度押します。数秒待つと、「配布完了!」のメッセージが表示されます。最後に、上部のフロッピーディスクのボタンを押して保存します。",[3869,3870,3871],"strong",{},"ここまでで、DBの構成は完了です。"," 部品/製品/構成表/入出庫履歴の4つのテーブルと、それらのテーブルを操作するREST APIが実際に作成され、すぐに使用できる状態になります。次は、このDBと接続する画面を作成します。",[1190,3874,3876],{"id":3875},"_2-画面を構成するためのhtmlファイルを作る","2. 画面を構成するための.htmlファイルを作る",[1165,3878,3879,3880,3882],{},"今回もAIに依頼します。作りたいものを企画して整理し、AIに伝えます。このとき、先ほど作成した",[1178,3881,1199],{},"ファイルの内容も、参考資料として一緒に渡します。",[3884,3885,3886,3890,3893,3896],"ul",{},[3887,3888,3889],"li",{},"部品・製品を登録する入力フォーム",[3887,3891,3892],{},"入庫・出庫を登録するフォーム",[3887,3894,3895],{},"「この製品をいくつ生産した」と登録すると、必要な部品の数量を自動的に計算して在庫に反映",[3887,3897,3898],{},"現在の在庫状況を表で表示し、表の上で直接値を修正して保存",[1165,3900,3901],{},"次の内容を、続けてAIチャットに貼り付けます。（先頭に、手順1で作成した結果もあわせて貼り付けます。）",[1208,3903,3906],{"className":3904,"code":3905,"language":1213},[1211],"[ここに手順1の結果を貼り付ける]\n\n上のスキーマは、すでにデプロイされています。このスキーマを使用するWeb画面（index.html）を1つ作成してください。\n\n画面でデータを読み込んだり保存したりするときは、次のルールでサーバーにリクエストしてください。\n\n1. ログインしたユーザーのAPIトークンを取得するには:\n   POST /api/auth/bootstrap  (credentials: \"include\")\n   応答: { data: { access_token, user: { id, nick } } }\n\n2. 以降のすべてのリクエストには、このヘッダーを付ける: Authorization: Bearer \u003Caccess_token>\n\n3. テーブルのCRUD:\n   照会   GET  /api/web/{dbName}/{table}/list?カラム=値   → 応答 { rows: [...] } (rowsは結果がない場合nullになることがあるため、常に rows || [] で処理する)\n   作成   POST /api/web/{dbName}/{table}/create          → body: JSON, 応答 { lastInsertId }\n   変更   PUT  /api/web/{dbName}/{table}/update/{id}     → body: JSON (変更したカラムだけを送ってもよい)\n   削除   DELETE /api/web/{dbName}/{table}/delete/{id}\n\n画面に必要な機能は次のとおりです。\n\n- 部品と製品を新規登録できる入力フォーム\n- 部品/製品の入庫・出庫を登録できるフォーム（登録すると現在の在庫数量もあわせて更新）\n- 「この製品をいくつ生産した」と登録すると、登録済みの構成表に従って必要な部品の数量を自動的に計算し、部品の在庫を減らして製品の在庫を増やす機能。部品の在庫が足りない場合は、登録を止めて知らせてください。\n- 現在の部品/製品の在庫状況を表で表示する画面。表のセルをクリックすると、その場で値を修正して保存できるようにしてください。\n- 入庫/出庫/組立の履歴を時系列で表示する一覧。\n\nHTML/CSS/JSを1つのファイルにすべてまとめてください。すっきりした白い背景に、カード型のレイアウトで作成してください。\nほかの説明は付けず、完成したindex.htmlのコードだけを出力してください。\n",[1178,3907,3905],{"__ignoreMap":1216},[1165,3909,3910],{},"次は、このようにして作成されたhtmlファイルの例です。実際の結果は、AIによって少しずつ異なる場合があります。",[3912,3913],"html-sandbox",{"height":3914,"src":3915},"640px","/examples/webspace/inventory-management/index.html",[1165,3917,3918],{},"このファイルをワークスペースにアップロードすると、実際にチームメンバーが使える画面が完成します。",[1190,3920,3922],{"id":3921},"_3-テストデータを投入する","3. テストデータを投入する",[1165,3924,3925],{},"実際に動作する様子を目で確認するには、データが必要です。ボタン1つでサンプルデータを投入する画面も、AIにすぐに作成を依頼できます。",[1208,3927,3930],{"className":3928,"code":3929,"language":1213},[1211],"[ここに手順1の結果を貼り付ける]\n\n上のスキーマはすでにデプロイされており、このスキーマを使用するindex.htmlもすでに作成されています。\nボタンを1つ押すと、テスト用のデータを自動的に投入する画面（mock-db-upload.html）を作成してください。\n\nデータは、手順2の画面と同じ方式（POST /api/auth/bootstrap でトークンを取得し、POST /api/web/{dbName}/{table}/create で作成）で、実際のサーバーに登録してください。\n\n- 部品10〜15個、製品3〜5個、各製品の部品構成、入出庫の履歴数件を、実際に作成して登録してください。\n- 部品/製品の名前と数量は、製造業の現場で実際に使われそうな値にしてください。\n- すでに同じコードのデータがある場合は、その項目だけを飛ばして処理を続けてください。\n- 進行状況を画面に1行ずつログとして表示し、終わったら「完了」と表示してください。\nほかの説明は付けず、完成したmock-db-upload.htmlのコードだけを出力してください。\n",[1178,3931,3929],{"__ignoreMap":1216},[1165,3933,3934],{},"次は、このようにして作成されたhtmlファイルの例です。実際の結果は、AIによって少しずつ異なる場合があります。この画面はデプロイせず、デモの準備が必要なときだけ開いて使用します。",[3912,3936],{"height":3914,"src":3937},"/examples/webspace/inventory-management/mock-db-upload.html",[1165,3939,3940],{},"実際にデータを投入して使ってみると、次のように動作します。",[1165,3942,3943],{},[3816,3944],{"alt":3945,"src":3946},"部品状況 — セルをダブルクリックすると、その場で修正・保存される","./_screenshots/inventory-parts-status_ja.jpg",[1165,3948,3949],{},[3816,3950],{"alt":3951,"src":3952},"BOM登録 — 右側の部品カードを左側にドラッグ＆ドロップすると、構成に追加される","./_screenshots/inventory-bom-dnd_ja.jpg",[1165,3954,3955],{},[3816,3956],{"alt":3957,"src":3958},"組立生産の登録 — 製品と生産数量を決めると、必要な部品の数量と現在庫が自動的に表示される","./_screenshots/inventory-assembly-production_ja.jpg",[1165,3960,3961],{},[3816,3962],{"alt":3963,"src":3964},"取引履歴 — バッチ番号ごとに、組立生産・組立使用の内容がまとめて記録される","./_screenshots/inventory-transaction-history_ja.jpg",[1190,3966,3968],{"id":3967},"_4-繰り返し修正する","4. 繰り返し修正する",[1165,3970,3971],{},"一度で完成させる必要はありません。画面を使っているうちに、足りない機能や直したい部分が出てきたら、続けてAIに依頼します。ただし、何を修正するかによって、その後に行う作業が異なります。",[3884,3973,3974,3989,3998],{},[3887,3975,3976,3979,3980,3982,3983,3985,3986,3988],{},[3869,3977,3978],{},"DBの構造（テーブル・カラム）が変わる修正","（例：新しいカラムの追加、新しいテーブルの追加）は、修正された",[1178,3981,1199],{},"をあらためて受け取って",[1178,3984,3834],{},"に貼り付け、",[1178,3987,3847],{},"でもう一度デプロイする必要があります。",[3887,3990,3991,3994,3995,3997],{},[3869,3992,3993],{},"DBの構造はそのままで、画面だけを直す修正","（例：デザイン、文言、ボタンの位置）は、",[1178,3996,1180],{},"だけをあらためて受け取り、既存のファイルを上書きします。APIをもう一度デプロイする必要はありません。",[3887,3999,4000,4001,4004],{},"すでにデータが入っているテーブルの構造を変更するときは、デプロイ設定の",[1178,4002,4003],{},"既存データを上書き","を確認します。上書きを有効にすると既存データは完全に削除されます。",[1187,4006],{},[1165,4008,4009],{},"この4つのステップだけで、データベースの設計、実際の画面、テストデータ、そしてその後の修正まで、すべてAIが作成します。その後は、画面のデザインや細かい項目を、必要に応じて調整していきます。",[4011,4012,4013],"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":4015},[4016,4017,4018,4019],{"id":1192,"depth":1246,"text":1193},{"id":3875,"depth":1246,"text":3876},{"id":3921,"depth":1246,"text":3922},{"id":3967,"depth":1246,"text":3968},"AIに要件を説明するだけで、データベースの設計から実際の画面まで作成される過程を、在庫管理システムを例に紹介します。","md",{},true,{"title":4025,"description":4020,"ogType":4026,"twitterCard":4027,"keywords":4028},"自分だけの業務システムを作る | WebSpace応用編","article","summary_large_image",[4029,4030,4031,4032,4033],"自分だけの業務システム","在庫管理システム","DB構成","AIプロンプト","SetFNワークスペース","LjajPThKIFSI6Dm3ad6zNclSAdh11vsrHyosCSzLqGU",[4036,4037],{"title":873,"path":876,"stem":874,"slug":875,"children":-1},{"title":883,"path":884,"stem":885,"slug":887,"children":-1},{"title":878,"filename":4039,"content":4040},"my-own-system","# 自分だけの業務システムを作る\n\nSetFNワークスペースでは、自社専用のグループウェアやERPのようなシステムを自分で作ることができます。\nデータベース構造の設計と画面の制作はAIに任せ、その成果物をファイルにしてワークスペースにアップロードするだけです。\n作成するファイルは2つ。行う作業は、アップロードと「配布する」ボタンのクリックです。\nここでは、「製造現場の在庫管理プログラム」を例に作成します。\n\nAIプロンプトを使わずに、完成済みのファイルをすぐに試したい場合は、[サンプル一式のZIPをダウンロード](/examples/webspace/inventory-management/setfn-inventory-management-sample.zip)から、スキーマ、`index.html`、`mock-db-upload.html`、READMEをまとめて入手できます。\n\n---\n\n## 1. データベースを作成するための.sfnファイルを作る\n\nSetFNワークスペースでは、`.sfn`というファイルでDBを作成できます。Claude、GPT、GeminiなどのAIに`.sfn`ファイルの例をコピーして渡し、「部品と製品の在庫を管理したい」のように要件を説明すると、AIがファイルを作成します。\n\n次の内容をコピーし、下の部分の要件を書き換えてAIに渡してみてください。\n\n```\nあなたは、SetFNというノーコードのバックエンドプラットフォームのスキーマファイル（.sfn）を設計するエンジニアです。\n.sfnは、次の構造を持つJSONファイルです。\n\n{\n  \"content-type\": \"application/setfn-schema\",\n  \"dbType\": \"sqlite3\",\n  \"apiBuild\": {\n    \"dbName\": \"英小文字_アンダースコア_DB名\",\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\": \"テーブル名\", \"cmt\": \"このテーブルの説明\" },\n      \"columns\": [\n        { \"name\": \"id\", \"type\": \"serial4\", \"primary\": true, \"default\": \"auto_increment\" },\n        { \"name\": \"カラム名\", \"type\": \"text\", \"notnull\": true, \"cmt\": \"カラムの説明\" },\n        { \"name\": \"数値カラム\", \"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\nカラムのtypeは、serial4（自動増分のPK）/ text / int4（整数）/ timestampだけを使用してください。\nカラムには、notnull、default、unique、index、cmtを必要に応じて付けてください。\n\nでは、この形式で、製造業の会社が使う「在庫管理システム」のDBを設計してください。要件は次のとおりです。\n\n- 部品を登録し、部品ごとの現在の在庫数量を管理する。\n- 製品を登録し、製品ごとの現在の在庫数量を管理する。\n- 1つの製品は、複数の部品を組み立てて作られる。どの製品にどの部品がいくつ必要か（BOM、部品表）を管理する。\n- 部品/製品の入庫・出庫の履歴を残す。特に「部品を組み立てて製品を生産する」イベントが発生したときは、その時点で使用された部品と生産された製品の数量を、1つの出来事としてまとめて追跡できなければならない（後から「この製品を作るのに部品がどれだけ使われたか」を照会できる必要がある）。\n\nDB名（dbName）は \"inventory_management\" にしてください。\nテーブルは4つ以内で、実務ですぐに使えるくらい実用的に設計してください。\nほかの説明は付けず、完成した.sfnのJSONコードだけを出力してください。\n```\n\n次は、このようにして作成されたAIの応答の例です。実際の結果は、AIによって、また実行するたびに少しずつ異なる場合があります。この内容と完全に同じである必要はなく、似た構造になっていれば問題ありません。ただし、ほかの説明がなく、`{`で始まり`}`で終わる形式でなければ、出力された結果をそのままエディタに貼り付けることができません。\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\": \"部品マスター。照会/登録/変更はメンバーなら誰でも可能、削除は管理者のみ\" },\n      \"columns\": [\n        { \"name\": \"id\", \"type\": \"serial4\", \"primary\": true, \"default\": \"auto_increment\" },\n        { \"name\": \"part_code\", \"type\": \"text\", \"notnull\": true, \"unique\": true, \"cmt\": \"部品コード\" },\n        { \"name\": \"name\", \"type\": \"text\", \"notnull\": true, \"cmt\": \"部品名\" },\n        { \"name\": \"spec\", \"type\": \"text\", \"cmt\": \"規格（例：M2、220V/50Hz）。同じ名前でも規格が異なる場合は、別のpart_codeで登録\" },\n        { \"name\": \"category\", \"type\": \"text\", \"cmt\": \"部品の分類（電子部品/機構部品/梱包材など）\" },\n        { \"name\": \"unit\", \"type\": \"text\", \"notnull\": true, \"default\": \"EA\", \"cmt\": \"単位\" },\n        { \"name\": \"unit_cost\", \"type\": \"int4\", \"notnull\": true, \"default\": \"0\", \"cmt\": \"単価\" },\n        { \"name\": \"current_stock\", \"type\": \"int4\", \"notnull\": true, \"default\": \"0\", \"cmt\": \"現在庫\" },\n        { \"name\": \"safety_stock\", \"type\": \"int4\", \"notnull\": true, \"default\": \"0\", \"cmt\": \"安全在庫（再発注点）\" },\n        { \"name\": \"supplier\", \"type\": \"text\", \"cmt\": \"仕入先\" },\n        { \"name\": \"_user_id\", \"type\": \"int4\", \"notnull\": true, \"index\": true },\n        { \"name\": \"_nick\", \"type\": \"text\", \"cmt\": \"最後に登録/変更したメンバーの表示名\" },\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\": \"製品マスター。照会/登録/変更はメンバーなら誰でも可能、削除は管理者のみ\" },\n      \"columns\": [\n        { \"name\": \"id\", \"type\": \"serial4\", \"primary\": true, \"default\": \"auto_increment\" },\n        { \"name\": \"product_code\", \"type\": \"text\", \"notnull\": true, \"unique\": true, \"cmt\": \"製品コード\" },\n        { \"name\": \"name\", \"type\": \"text\", \"notnull\": true, \"cmt\": \"製品名\" },\n        { \"name\": \"category\", \"type\": \"text\", \"cmt\": \"製品の分類\" },\n        { \"name\": \"unit\", \"type\": \"text\", \"notnull\": true, \"default\": \"EA\", \"cmt\": \"単位\" },\n        { \"name\": \"price\", \"type\": \"int4\", \"notnull\": true, \"default\": \"0\", \"cmt\": \"販売価格\" },\n        { \"name\": \"current_stock\", \"type\": \"int4\", \"notnull\": true, \"default\": \"0\", \"cmt\": \"現在庫\" },\n        { \"name\": \"_user_id\", \"type\": \"int4\", \"notnull\": true, \"index\": true },\n        { \"name\": \"_nick\", \"type\": \"text\", \"cmt\": \"最後に登録/変更したメンバーの表示名\" },\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\": \"製品ごとの部品構成表（単一階層）。bom_key(product_id:part_id)にunique制約を設定し、同じ製品に同じ部品が重複して登録されないようにする\" },\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\": \"製品1個を作るのに必要な部品の数量\" },\n        { \"name\": \"bom_key\", \"type\": \"text\", \"notnull\": true, \"unique\": true, \"cmt\": \"product_id:part_idの組み合わせ。重複登録の防止用\" },\n        { \"name\": \"_user_id\", \"type\": \"int4\", \"notnull\": true, \"index\": true },\n        { \"name\": \"_nick\", \"type\": \"text\", \"cmt\": \"登録したメンバーの表示名\" },\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\": \"入出庫/組立の統合履歴。item_type=part|product、tx_type=입고|출고|조립사용|조립생산（入庫|出庫|組立使用|組立生産）。1つの組立生産イベントは、同じbatch_idを共有する複数件の組立使用（部品の消費）と1件の組立生産（製品の増加）で構成され、製品にどの部品がどれだけ使われたかを追跡できる\" },\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 または products.id\" },\n        { \"name\": \"item_name\", \"type\": \"text\", \"notnull\": true, \"cmt\": \"登録時点の品目名のスナップショット\" },\n        { \"name\": \"tx_type\", \"type\": \"text\", \"notnull\": true, \"cmt\": \"입고（入庫） | 출고（出庫） | 조립사용（組立使用） | 조립생산（組立生産）\" },\n        { \"name\": \"reason\", \"type\": \"text\", \"cmt\": \"入出庫の理由。組立使用/組立生産はtx_type自体が理由であるため空欄にする\" },\n        { \"name\": \"qty\", \"type\": \"int4\", \"notnull\": true, \"cmt\": \"常に正の数。方向はtx_typeで判断\" },\n        { \"name\": \"batch_id\", \"type\": \"text\", \"index\": true, \"cmt\": \"組立生産イベントをまとめるid。単純な入出庫の場合は空\" },\n        { \"name\": \"note\", \"type\": \"text\", \"cmt\": \"メモ\" },\n        { \"name\": \"_user_id\", \"type\": \"int4\", \"notnull\": true, \"index\": true },\n        { \"name\": \"_nick\", \"type\": \"text\", \"cmt\": \"登録したメンバーの表示名\" },\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\nこの結果をコピーし、ワークスペースで`作成` → `テンプレートファイル` → `新しいスキーマ（DB）`から、空のスキーマファイルを作成します。\n\n![作成 > テンプレートファイル > 新しいスキーマ（DB）の選択画面](./_screenshots/new-schema_ja.png)\n\nファイル名を入力して保存すると、空のスキーマファイルが作成されます。\n\n![新しく作成した空のスキーマファイル](./_screenshots/schema-file-first_ja.png)\n\n右上の`エディタ`タブを押し、先ほどのAIの応答をそのまま貼り付けます。\n\n![スキーマエディタ画面](./_screenshots/schema-editor_ja.png)\n\n保存してから上部の`APIビルド`タブに移動すると、テーブルごとに自動生成されたAPIの一覧を確認できます。\n\n![APIビルド画面](./_screenshots/schema-api-build_ja.png)\n\n`配布する`を押して設定を展開し、`データベース識別子`を確認してから、`配布する`をもう一度押します。数秒待つと、「配布完了!」のメッセージが表示されます。最後に、上部のフロッピーディスクのボタンを押して保存します。**ここまでで、DBの構成は完了です。** 部品/製品/構成表/入出庫履歴の4つのテーブルと、それらのテーブルを操作するREST APIが実際に作成され、すぐに使用できる状態になります。次は、このDBと接続する画面を作成します。\n\n## 2. 画面を構成するための.htmlファイルを作る\n\n今回もAIに依頼します。作りたいものを企画して整理し、AIに伝えます。このとき、先ほど作成した`.sfn`ファイルの内容も、参考資料として一緒に渡します。\n\n- 部品・製品を登録する入力フォーム\n- 入庫・出庫を登録するフォーム\n- 「この製品をいくつ生産した」と登録すると、必要な部品の数量を自動的に計算して在庫に反映\n- 現在の在庫状況を表で表示し、表の上で直接値を修正して保存\n\n次の内容を、続けてAIチャットに貼り付けます。（先頭に、手順1で作成した結果もあわせて貼り付けます。）\n\n```\n[ここに手順1の結果を貼り付ける]\n\n上のスキーマは、すでにデプロイされています。このスキーマを使用するWeb画面（index.html）を1つ作成してください。\n\n画面でデータを読み込んだり保存したりするときは、次のルールでサーバーにリクエストしてください。\n\n1. ログインしたユーザーのAPIトークンを取得するには:\n   POST /api/auth/bootstrap  (credentials: \"include\")\n   応答: { data: { access_token, user: { id, nick } } }\n\n2. 以降のすべてのリクエストには、このヘッダーを付ける: Authorization: Bearer \u003Caccess_token>\n\n3. テーブルのCRUD:\n   照会   GET  /api/web/{dbName}/{table}/list?カラム=値   → 応答 { rows: [...] } (rowsは結果がない場合nullになることがあるため、常に rows || [] で処理する)\n   作成   POST /api/web/{dbName}/{table}/create          → body: JSON, 応答 { lastInsertId }\n   変更   PUT  /api/web/{dbName}/{table}/update/{id}     → body: JSON (変更したカラムだけを送ってもよい)\n   削除   DELETE /api/web/{dbName}/{table}/delete/{id}\n\n画面に必要な機能は次のとおりです。\n\n- 部品と製品を新規登録できる入力フォーム\n- 部品/製品の入庫・出庫を登録できるフォーム（登録すると現在の在庫数量もあわせて更新）\n- 「この製品をいくつ生産した」と登録すると、登録済みの構成表に従って必要な部品の数量を自動的に計算し、部品の在庫を減らして製品の在庫を増やす機能。部品の在庫が足りない場合は、登録を止めて知らせてください。\n- 現在の部品/製品の在庫状況を表で表示する画面。表のセルをクリックすると、その場で値を修正して保存できるようにしてください。\n- 入庫/出庫/組立の履歴を時系列で表示する一覧。\n\nHTML/CSS/JSを1つのファイルにすべてまとめてください。すっきりした白い背景に、カード型のレイアウトで作成してください。\nほかの説明は付けず、完成したindex.htmlのコードだけを出力してください。\n```\n\n次は、このようにして作成されたhtmlファイルの例です。実際の結果は、AIによって少しずつ異なる場合があります。\n\n::html-sandbox{src=\"/examples/webspace/inventory-management/index.html\" height=\"640px\"}\n::\n\nこのファイルをワークスペースにアップロードすると、実際にチームメンバーが使える画面が完成します。\n\n## 3. テストデータを投入する\n\n実際に動作する様子を目で確認するには、データが必要です。ボタン1つでサンプルデータを投入する画面も、AIにすぐに作成を依頼できます。\n\n```\n[ここに手順1の結果を貼り付ける]\n\n上のスキーマはすでにデプロイされており、このスキーマを使用するindex.htmlもすでに作成されています。\nボタンを1つ押すと、テスト用のデータを自動的に投入する画面（mock-db-upload.html）を作成してください。\n\nデータは、手順2の画面と同じ方式（POST /api/auth/bootstrap でトークンを取得し、POST /api/web/{dbName}/{table}/create で作成）で、実際のサーバーに登録してください。\n\n- 部品10〜15個、製品3〜5個、各製品の部品構成、入出庫の履歴数件を、実際に作成して登録してください。\n- 部品/製品の名前と数量は、製造業の現場で実際に使われそうな値にしてください。\n- すでに同じコードのデータがある場合は、その項目だけを飛ばして処理を続けてください。\n- 進行状況を画面に1行ずつログとして表示し、終わったら「完了」と表示してください。\nほかの説明は付けず、完成したmock-db-upload.htmlのコードだけを出力してください。\n```\n\n次は、このようにして作成されたhtmlファイルの例です。実際の結果は、AIによって少しずつ異なる場合があります。この画面はデプロイせず、デモの準備が必要なときだけ開いて使用します。\n\n::html-sandbox{src=\"/examples/webspace/inventory-management/mock-db-upload.html\" height=\"640px\"}\n::\n\n実際にデータを投入して使ってみると、次のように動作します。\n\n![部品状況 — セルをダブルクリックすると、その場で修正・保存される](./_screenshots/inventory-parts-status_ja.jpg)\n\n![BOM登録 — 右側の部品カードを左側にドラッグ＆ドロップすると、構成に追加される](./_screenshots/inventory-bom-dnd_ja.jpg)\n\n![組立生産の登録 — 製品と生産数量を決めると、必要な部品の数量と現在庫が自動的に表示される](./_screenshots/inventory-assembly-production_ja.jpg)\n\n![取引履歴 — バッチ番号ごとに、組立生産・組立使用の内容がまとめて記録される](./_screenshots/inventory-transaction-history_ja.jpg)\n\n## 4. 繰り返し修正する\n\n一度で完成させる必要はありません。画面を使っているうちに、足りない機能や直したい部分が出てきたら、続けてAIに依頼します。ただし、何を修正するかによって、その後に行う作業が異なります。\n\n- **DBの構造（テーブル・カラム）が変わる修正**（例：新しいカラムの追加、新しいテーブルの追加）は、修正された`.sfn`をあらためて受け取って`エディタ`に貼り付け、`APIビルド`でもう一度デプロイする必要があります。\n- **DBの構造はそのままで、画面だけを直す修正**（例：デザイン、文言、ボタンの位置）は、`index.html`だけをあらためて受け取り、既存のファイルを上書きします。APIをもう一度デプロイする必要はありません。\n- すでにデータが入っているテーブルの構造を変更するときは、デプロイ設定の`既存データを上書き`を確認します。上書きを有効にすると既存データは完全に削除されます。\n\n---\n\nこの4つのステップだけで、データベースの設計、実際の画面、テストデータ、そしてその後の修正まで、すべてAIが作成します。その後は、画面のデザインや細かい項目を、必要に応じて調整していきます。\n",1793056612284]