Changer de version (Gestion des données)
Récapitulatif
L'espace de travail de chaque couche d'entités ou vue tabulaire en entrée sera modifié afin d'établir la connexion à la version demandée.
Utilisation
-
Fonctionne uniquement avec des couches d'entités et des vues tabulaires.
-
Le fichier de connexion ArcSDE utilisé pour créer la chaque couche d'entités ou la vue tabulaire en entrée n'est pas modifié par cet outil. Seul l'espace de travail ouvert de la couche d'entités ou de la vue tabulaire est modifié afin d'établir la connexion à la version spécifiée.
-
Les vues transactionnelles et historiques sont prises en charge.
Syntaxe
Paramètre | Explication | Type de données |
in_features |
Couche d'entités ou vue tabulaire à laquelle se connecter avec la version spécifiée. | Feature Layer; Table View |
version_type |
Type de version à utiliser.
| String |
version_name (Facultatif) |
Nom de la version à utiliser. Paramètre facultatif avec les versions historiques. | String |
date (Facultatif) |
Date de la version historique à utiliser. | Date |
Exemple de code
Le script de fenêtre Python ci-dessous illustre l'utilisation de la fonction ChangeVersion en mode immédiat.
import arcpy
from arcpy import env
env.workspace = r'c:\Connections\toolbox.sde'
arcpy.MakeFeatureLayer_management(r'TOOLBOX.Redlands\TOOLBOX.street','RedlandsStreets')
arcpy.MakeFeatureLayer_management(r'TOOLBOX.Redlands\TOOLBOX.streams','RedlandsStreams')
arcpy.MakeFeatureLayer_management(arcpy.SelectLayerByLocation_management("RedlandsStreams","WITHIN_A_DISTANCE","RedlandsStreets","100 Meters","NEW_SELECTION",'#'),
'StreamsNearStreets','','','')
arcpy.ChangeVersion_management('RedlandsStreets','TRANSACTIONAL', 'TOOLBOX.proposedStreets2k9','')
arcpy.MakeFeatureLayer_management(arcpy.SelectLayerByLocation_management("RedlandsStreams","WITHIN_A_DISTANCE","RedlandsStreets","100 Meters","NEW_SELECTION",'#'),
'NewStreamsNearStreets','','','')
Utilisez l'outil ChangeVersion dans un workflow d'analyse versionnée classique.
# Name: ChangeVersion.py
# Description: Use the ChangeVersion tool in a typical versioned analysis workflow.
# Quick check of additional streams within a pre-determined distance
# of new proposed street development.
# Author: ESRI
# Import system modules
import arcpy
from arcpy import env
import sys, os
# Set environments
env.workspace = sys.path[0] + os.sep + "toolbox.sde"
# Create the layers
arcpy.MakeFeatureLayer_management(r'TOOLBOX.Redlands\TOOLBOX.street','RedlandsStreets')
arcpy.MakeFeatureLayer_management(r'TOOLBOX.Redlands\TOOLBOX.streams','RedlandsStreams')
# Perform analysis on the Default version to determine
# current number of streams within 100 meters of streets.
selection1 = arcpy.SelectLayerByLocation_management("RedlandsStreams",
"WITHIN_A_DISTANCE",
"RedlandsStreets",
"100 Meters",
"NEW_SELECTION",
'#')
arcpy.MakeFeatureLayer_management(selection1,'StreamsNearStreets','','','')
print "Streams within 100 Meters of current streets: " + \
str(arcpy.GetCount_management("StreamsNearStreets"))
# Change to the development version
arcpy.ChangeVersion_management('RedlandsStreets',
'TRANSACTIONAL',
'TOOLBOX.proposedStreets2k9',
'')
# Perform the same analysis on the development version to see the effect of the proposed changes.
selection2 = arcpy.SelectLayerByLocation_management("RedlandsStreams",
"WITHIN_A_DISTANCE",
"RedlandsStreets",
"100 Meters",
"NEW_SELECTION",
'#')
arcpy.MakeFeatureLayer_management(selection2,'NewStreamsNearStreets','','','')
print "Streams projected to be within 100 Meters of streets after proposed street additions: " + \
str(arcpy.GetCount_management("NewStreamsNearStreets"))