用途:为 Dataverse 表启用移动离线所需的前置条件,即在 EntityMetadata 上同时打开 IsAvailableOffline=true 与 ChangeTrackingEnabled=true,然后发布自定义项。两项缺一不可,否则表无法加入 Mobile Offline Profile。该技能是内部辅助流程,始终作为子调用由 /setup-offline-profile 触发,需先读 shared-instructions.md,并参考 offline-profile-schema.md 的字段映射。
主要能力:按顺序(Dataverse 元数据写锁要求逐条 PUT)且幂等地修改表;已满足状态的表直接跳过;对 IsCustomizable.Value=false 的系统托管表返回 skipped 并标记 DONE_WITH_CONCERNS;自动处理 401 刷新与 429 退避;发布阶段优先使用针对已改实体的 PublishXml,仅在非限流错误且另行获批时回退 PublishAllXml;修改后会重新查询 EntityMetadata 校验。
使用方式:需在所有者提供的绝对 working_dir 下运行,先校验 power.config.json 与 app.config.js,确认 environmentId 与所选环境一致,再解析环境 URL 与 Tenant ID。调用示例:cd -- '<working_dir>' 后使用 node "${PLUGIN_ROOT}/scripts/dataverse-request.js" "<envUrl>" GET "EntityDefinitions(LogicalName='<table>')?$select=LogicalName,DisplayName,IsAvailableOffline,ChangeTrackingEnabled,IsCustomizable" --tenant-id "<tenantId>" 查询状态;用 node "${PLUGIN_ROOT}/scripts/update-entity-offline-flags.js" "<envUrl>" --table "<table>" --offline true --tracking true --tenant-id "<tenantId>" 执行更新。支持 --plan-only,仅返回建议变更而不写入。
适用场景与限制:适用于 Microsoft Power Platform 移动离线配置的表准备阶段。变更前须获得所有者对表清单与发布范围的批准;缺少或冲突的根目录、环境、租户或表选择会返回 NEEDS_CONTEXT;无 Customize System 权限返回 403 并停止;未列出的表不得启用;出现 0x80048d19 等非限流错误且未获批时不得使用 PublishAllXml。其他收费、平台或运行环境信息暂未提供。