Synthèse
La fonction ListReplicas répertorie les réplicas dans l’espace de travail.
Discussion
Vous pouvez définir le chemin d’accès à un fichier de connexion comme argument de la fonction ou définir l’environnement de l’espace de travail sur le fichier de connexion et appeler la fonction ListReplicas sans aucun argument.
Syntaxe
ListReplicas (workspace, {all_replicas})
Paramètre | Explication | Type de données |
workspace | The geodatabase workspace. | String |
all_replicas | Specifies whether all replica types in the geodatabase will be returned.
(La valeur par défaut est False) | Boolean |
Type de données | Explication |
Replica | Une liste est renvoyée par la fonction contenant les objets Replica. Si l’argument all_replicas est défini sur True, les objets SyncReplica peuvent également être renvoyés. |
Exemple de code
Pour chaque réplica émetteur d’un espace de travail, appelez la fonction ExportDataChangeMessage.
import arcpy
import os
sdeConnection = "C:/Data/toolboxDEFAULTVersion.sde"
outLocation = "C:/data"
for replica in arcpy.da.ListReplicas(sdeConnection):
# If the replica is a sender, call ExportDataChangeMessage
if replica.isSender:
changesFile = os.path.join(outputLocation,
f"changes_{replica.name}.gdb")
arcpy.management.ExportDataChangeMessage(sdeConnection,
changes,
replica.name)
Imprimez tous les réplicas qui sont en conflit.
import arcpy
sdeConnection = "C:/Data/toolboxDEFAULTVersion.sde"
# Print the name of the replicas that are in conflict
for replica in arcpy.da.ListReplicas(sdeConnection):
if replica.hasConflicts:
print(replica.name)
Imprimer les propriétés d’un objet SyncReplica
import arcpy
# Use the ListReplicas function to return all replicas in the geodatabase
replicas = arcpy.da.ListReplicas("C:\\Projects\\MyProject\\myGDB.sde", True)
for r in replicas:
# Check if the class is a SyncReplica
if isinstance(r, arcpy.da.SyncReplica):
# Print the properties of a SyncReplica object
print(f"Properties of replica named: {r.name}")
print(f"Datasets: {r.datasets}")
print(f"Owner: {r.owner}")
print(f"Replica ID: {r.replicaID}")
print(f"Service name: {r.serviceName}")
print(f"Version: {r.version}")
print(f"Direction: {r.direction}")
print(f"Sync model: {r.syncModel}")
print(f"Last sync date: {r.lastSyncDate}")
print(f"LayerServerGens: {r.layerServerGens}")
print(f"LayerServerSibGens: {r.layerServerSibGens}")
print(f"ReplicaServerGen: {r.replicaServerGen}")
print(f"ReplicaServerSibGen: {r.replicaServerSibGen")
print(f"Target type: {r.targetType}")
Imprimez les propriétés creationDate, replicaDate et geometry de chaque objet Replica ou SyncReplica. Un objet Replica ou SyncReplica peut avoir une valeur de propriété creationDate, une valeur de propriété replicaDate, ou les deux. Les propriétés creationDate et replicaDate indiquent à quel moment le réplica a été créé. Toutefois, la propriété creationDate est au format UTC et la propriété replicaDate est dans le fuseau horaire de la machine serveur. La propriété geometry est la géométrie de filtre spatial du réplica.
import arcpy
# Use the ListReplicas function to return all Replicas and SyncReplicas in the geodatabase
replicas = arcpy.da.ListReplicas("C:\\gdb\\mygeodatabase.sde", True)
for r in replicas:
# Print Replica or SyncReplica object properties
if hasattr(r, 'creationDate'):
print(str(r.creationDate))
if hasattr(r, 'replicaDate'):
print(str(r.replicaDate))
if hasattr(r, 'geometry') and (r.geometry is not None):
print(str(r.geometry.JSON))
Rubriques connexes
Vous avez un commentaire à formuler concernant cette rubrique ?