You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

从ArcGIS Enterprise迁移至AGOL:FME插入无法自定义ObjectID

核心结论:无法自定义ArcGIS Online托管要素图层的ObjectID值

ArcGIS Online(AGOL)的esriFieldTypeOID是系统强制维护的只读字段,不管通过图层定义JSON修改editable属性还是其他方式,后台都会自动重置为false。这是AGOL托管图层的底层机制,和ArcGIS Enterprise直接对接数据库的模式不同——后者可以复用数据库主键作为OID,但AGOL的OID由平台自动分配、唯一且不可干预。

推荐替代方案(结合FME同步场景)

1. 新增自定义源ID字段

在AGOL要素图层中添加一个独立字段,比如命名为Source_ObjectID,字段类型设置为esriFieldTypeInteger(或esriFieldTypeString,如果源ID是字符串),并设置为可编辑。同步数据时,将源数据库的自定义标识值写入这个字段,而非试图修改AGOL的ObjectID。

2. 配置FME工作空间实现映射

在FME工作流中做以下配置:

  • 读取源数据库时,提取自定义标识字段(比如源库的id)
  • 写入AGOL图层时,将该字段映射到新增的Source_ObjectID字段
  • 保留AGOL自动生成的ObjectID字段,无需做任何干预

后续需要匹配源数据与AGOL记录时,直接用Source_ObjectID作为关联键:

  • 更新源数据后,通过Source_ObjectID定位AGOL中对应的记录进行更新
  • 删除操作同理,基于Source_ObjectID匹配目标记录

3. 优化图层使用体验(可选)

  • 如果需要在AGOL中频繁基于源ID操作,可以创建图层视图,将Source_ObjectID设为默认显示字段,方便筛选、查询
  • 给Source_ObjectID添加唯一约束,避免重复写入,确保关联的准确性
关于你尝试的操作说明

你之前修改图层定义的editable属性无效,本质是AGOL对esriFieldTypeOID字段有严格管控:

你尝试的修改代码:

"fields": [
  {
    "name": "id",
    "type": "esriFieldTypeOID",
    "alias": "id",
    "editable": true,
    ...
  }
]

保存后editable自动恢复为false,是因为AGOL会强制重置OID字段的属性,该字段仅用于平台内部的要素唯一标识,不支持用户自定义赋值。

内容的提问来源于stack exchange,提问作者DHend

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.12 20:05:05