SuperAPI AI 工具集

add-table-to-offline-profile

数据与分析

查看项目

更新于 10-16 09:32

技能介绍

用途:向现有移动离线配置文件(Mobile Offline Profile)添加一个 Dataverse 表。常见流程是用户先用 /add-dataverse 为应用添加新表,再用本技能让该表支持离线。它等价于运行 /setup-offline-profile 的扩展模式,但跳过配置文件中已有表的逐表问卷,只配置新表。

主要能力与步骤:验证项目并定位配置文件;解析目标表(支持 --table、--all-new 或交互式选择,候选超过 4 个需用户按名称指定);前置检查 EntityMetadata 的 IsAvailableOffline/ChangeTrackingEnabled,若为 false 且 IsCustomizable=true,可在获批后用 update-entity-offline-flags.js 自动启用并发布;范围选择一问(组织行/全部记录/仅相关行/自定义);POST mobileofflineprofileitems 并捕获 itemId,为新表已存在于配置文件中的关系 POST 关联,再 PATCH selectedcolumns;用定向 PublishXml 仅发布该配置文件;最后更新 offline-profile.json 的 schemaColumns 基线与 memory-bank.md。

必要用法:以子调用方式运行,需提供 working_dir、orchestrator、approved_scope 等上下文。前置命令示例:node "${PLUGIN_ROOT}/scripts/dataverse-request.js" "<envUrl>" GET "EntityDefinitions(LogicalName='<table>')?$select=IsAvailableOffline,ChangeTrackingEnabled,OwnershipType,IsCustomizable" --tenant-id "<tenantId>";启用命令:node "${PLUGIN_ROOT}/scripts/update-entity-offline-flags.js" "<envUrl>" --table "<table>" --offline true --tracking true --tenant-id "<tenantId>"。

限制:不添加 N:N 多对多关系;不重新架构已有表(用 /edit-offline-profile);不删除表(需手动 DELETE /mobileofflineprofileitems(<itemId>))。目标表 IsCustomizable=false 时返回 BLOCKED;权限失败不得绕过;缺失/冲突上下文返回 NEEDS_CONTEXT;仅计划模式返回提案,不做任何变更。用户下次登录同步时获得新表,可登出再登录强制刷新。