サマリー
ListReplicas 関数は、ワークスペース内のレプリカをリストします。
説明
コネクション ファイルへのパスを関数の引数として指定できます。または、ワークスペース環境をコネクション ファイルに設定して、ListReplicas 関数を引数を指定せずに呼び出すことができます。
構文
ListReplicas (workspace, {all_replicas})
パラメーター | 説明 | データ タイプ |
workspace | The geodatabase workspace. | String |
all_replicas | Specifies whether all replica types in the geodatabase will be returned.
(デフォルト値は次のとおりです False) | Boolean |
データ タイプ | 説明 |
Replica | Replica オブジェクトを含む、関数から返されるリスト。 all_replicas 引数が True に設定されている場合は、SyncReplica オブジェクトも返される場合があります。 |
コードのサンプル
送信側であるワークスペース内のすべてのレプリカに対して、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)
競合状態にあるすべてのレプリカを印刷します。
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)
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}")
各 Replica または SyncReplica オブジェクトの creationDate、replicaDate、geometry プロパティを印刷します。 Replica または SyncReplica オブジェクトには、creationDate プロパティ値、replicaDate プロパティ値、またはその両方を設定することができます。 creationDate および replicaDate プロパティはレプリカが作成された日時を表しますが、creationDate プロパティは UTC で表され、replicaDate プロパティはサーバー コンピューターのタイム ゾーンで表されます。 geometry プロパティはレプリカの空間フィルター ジオメトリです。
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))