ArcGIS Desktop

  • ArcGIS Pro
  • ArcMap

  • My Profile
  • Ayuda
  • Sign Out
ArcGIS Desktop

ArcGIS Online

La plataforma de representación cartográfica para tu organización

ArcGIS Desktop

Un completo SIG profesional

ArcGIS Enterprise

SIG en tu empresa

ArcGIS for Developers

Herramientas para crear aplicaciones basadas en la ubicación

ArcGIS Solutions

Plantillas de aplicaciones y mapas gratuitas para tu sector

ArcGIS Marketplace

Obtén aplicaciones y datos para tu organización.

  • Documentación
  • Soporte
Esri
  • Iniciar sesión
user
  • Mi perfil
  • Cerrar sesión

ArcMap

  • Inicio
  • Introducción
  • Cartografiar
  • Analizar
  • Administrar datos
  • Herramientas
  • Extensiones

Migrar clase de relación

  • Resumen
  • Uso
  • Sintaxis
  • Muestra de código
  • Entornos
  • Información sobre licencias

Resumen

Migra una clase de relación basada en ObjectID a una clase de relación basada en GlobalID.

Uso

  • Esta herramienta modifica una clase de relación existente basada en ObjectID y la convierte en una clase de relación basada en GlobalID para cumplir con los requisitos de la geodatabase en tiempo de ejecución.

  • La clase de entidad de origen o la tabla que participe en la Clase de relación de entrada debe tener un campo GlobalID antes de usar esta herramienta. La clase de destino también debe tener un campo GlobalID.

  • La clase de relación de entrada existente debe estar basada en ObjectID. Es posible que los datos no puedan tener el archivado habilitado.

  • Esta herramienta admite editar datos versionados y no versionados como entrada.

  • Las clases de relación de anotación vinculadas a entidades no se admiten como entrada para esta herramienta, ya que estas relaciones deben permanecer basadas en ObjectID.

  • Se recomienda tener una copia de seguridad de los datos utilizados como entrada para esta herramienta.

Sintaxis

MigrateRelationshipClass_management (in_relationship_class)
ParámetroExplicaciónTipo de datos
in_relationship_class

Clase de relación basada en ObjectID que se migrará a una clase de relación basada en GlobalID. Las tablas de clases de entidades de origen y de destino ya deben disponer de GlobalID.

Relationship Class

Salida derivada

NombreExplicaciónTipo de datos
out_relationship_class

Muestra de código

Ejemplo 1 de MigrateRelationshipClass (ventana de Python)

El siguiente script de la ventana de Python muestra cómo utilizar la herramienta MigrateRelationshipClass en el modo inmediato.

arcpy.MigrateRelationshipClass_management(r'C:\Data\Relationships.gdb\OneToMany')
Ejemplo 2 de MigrateRelationshipClass (secuencia de comandos independiente)

El siguiente script muestra la forma en que se debe usar la herramienta MigrateRelationshipClass en un script independiente.

# Name: MigrateRelationshipClass_Example.py
# Description: Migrate an ObjectID-based relationship class to a GlobalID-based
#       relationship class. This script lists the ObjectID-based relationships classes
#       in a workspace, checks for GlobalIDs in the origin, then runs the tool

# Import system modules
import arcpy

# Set local variables
workspace = r'C:\Data\Relationships.gdb'

# List all of the relationship classes within the given workspace
rc_list = [c.name for c in arcpy.Describe(workspace).children if c.datatype == "RelationshipClass"]

# Build a list of relationship classes which have an OBJECTID based origin class key
rc_migrate = []
for rc in rc_list:
    rc_path = workspace + "\\" + rc
    rc_desc = arcpy.Describe(rc_path)
    for item in rc_desc.OriginClassKeys:
        if "OBJECTID" in item:
            rc_migrate.append(rc_path)

# Check that the origin feature classes have Global Ids
rc_final = []
for rel in rc_migrate:
    originfc = workspace + "\\" + arcpy.Describe(rel).originClassNames[0]
    if arcpy.ListFields(originfc,"","GlobalID"):
        rc_final.append(rel)
        print("Adding {0}  to the list to migrate. \n".format(rel.rsplit("\\",1)[1]))
    else:
        print("{0} must have Global Ids to migrate relationship class.\n".format(originfc.rsplit("\\",1)[1]))

# Pass the list of valid relationship classes into the Migrate Relationship tool
print("Passing valid relationship classes into the Migrate Relationship Class tool.\n")
for rel_class in rc_final:
    print("Migrating {0}... \n".format(rel_class.rsplit("\\",1)[1]))
    arcpy.MigrateRelationshipClass_management(rel_class)
    print(arcpy.GetMessages() + "\n")

Entornos

  • Espacio de trabajo actual

Información sobre licencias

  • ArcGIS Desktop Basic: No
  • ArcGIS Desktop Standard: Sí
  • ArcGIS Desktop Advanced: Sí

Temas relacionados

  • Vista general del conjunto de herramientas Clases de relación
  • RelationshipClass properties

ArcGIS Desktop

  • Inicio
  • Documentación
  • Soporte

Plataforma ArcGIS

  • ArcGIS Online
  • ArcGIS Desktop
  • ArcGIS Enterprise
  • ArcGIS for Developers
  • ArcGIS Solutions
  • ArcGIS Marketplace

Acerca de Esri

  • Quiénes somos
  • Empleo
  • Blog de Esri
  • Conferencia de usuarios
  • Cumbre de desarrolladores
Esri
Díganos su opinión.
Copyright © 2019 Esri. | Privacidad | Legal