ListReplicas

サマリー

ListReplicas 関数は、ワークスペース内のレプリカをリストします。

説明

コネクション ファイルへのパスを関数の引数として指定できます。または、ワークスペース環境をコネクション ファイルに設定して、ListReplicas 関数を引数を指定せずに呼び出すことができます。

構文

ListReplicas (workspace, {all_replicas})
パラメーター説明データ タイプ
workspace

The geodatabase workspace.

String
all_replicas

Specifies whether all replica types in the geodatabase will be returned.

  • True—All replica types will be returned. This may include Replica or SyncReplica objects.
  • False—Only Replica objects will be returned. These include replicas created from geodatabase replication workflows as well as replicas created from feature services running on traditional versioned data. This is the default.

(デフォルト値は次のとおりです False)

Boolean
戻り値
データ タイプ説明
Replica

Replica オブジェクトを含む、関数から返されるリスト。

all_replicas 引数が True に設定されている場合は、SyncReplica オブジェクトも返される場合があります。

コードのサンプル

ListReplicas の例 1

送信側であるワークスペース内のすべてのレプリカに対して、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)
ListReplicas の例 2

競合状態にあるすべてのレプリカを印刷します。

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)
ListReplicas の例 3

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}")
ListReplicas の例 4

Replica または SyncReplica オブジェクトの creationDatereplicaDategeometry プロパティを印刷します。 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))

関連トピック


このトピックの内容