Слой ArcGis Offline map изменяет синхронизацию

В своем приложении WPF я пытаюсь использовать функциональность автономной карты. Прямо сейчас мой сервис объектов настроен для синхронизации данных, и я могу создать реплику данных на сервере и загрузить локальную копию базы геоданных.

gdbSyncTask = await GeodatabaseSyncTask.CreateAsync(_featureServiceUri);

Envelope extent = new Envelope(xmin, ymin, xmax, ymax, new SpatialReference(wkidStart));

GenerateGeodatabaseParameters generateParams = await _gdbSyncTask.CreateDefaultGenerateGeodatabaseParametersAsync(extent);


_generateGdbJob = _gdbSyncTask.GenerateGeodatabase(generateParams, _gdbPath);
_generateGdbJob.JobChanged += GenerateGdbJobChanged;
_generateGdbJob.ProgressChanged += ((object sender, EventArgs e) =>
{
    UpdateProgressBar();
});
_generateGdbJob.Start();

После начальной синхронизации я могу успешно работать с картой в автономном режиме. Это включает в себя такие операции, как добавление новых геометрий или редактирование существующих полигонов внутри локальной БД.

Тем не менее, когда я пытаюсь синхронизировать изменения обратно на сервер - я не получаю результатов.

Для синхронизации данных с локальной базой данных я использую следующий код:

SyncGeodatabaseParameters parameters = new SyncGeodatabaseParameters()

{

GeodatabaseSyncDirection = SyncDirection.Bidirectional,

RollbackOnFailure = false              

};



Geodatabase gdb = await Geodatabase.OpenAsync(this.GetGdbPath());

foreach (GeodatabaseFeatureTable table in gdb.GeodatabaseFeatureTables)

{

long id = table.ServiceLayerId;
SyncLayerOption option = new SyncLayerOption(id);
option.SyncDirection = SyncDirection.Bidirectional;
parameters.LayerOptions.Add(option);   
}


_gdbSyncTask = await GeodatabaseSyncTask.CreateAsync(_featureServiceUri);

SyncGeodatabaseJob job = _gdbSyncTask.SyncGeodatabase(parameters, gdb);  
job.JobChanged += SyncJob_JobChanged;
job.ProgressChanged += SyncJob_ProgressChanged;
job.Start();

Все идет хорошо. Синхронизация заканчивается статусом "Успешно". Сообщения, зарегистрированные SyncGeodatabaseJob, похожи на экран ниже: введите описание изображения здесь

Однако, когда я открываю отредактированный векторный слой с сервера внутри веб-клиента карты, я не могу найти какие-либо локальные изменения. В базе данных обслуживания я также вижу, что во время синхронизации не было создано никаких новых записей.

Интересно, что когда я открываю данные "Реплика" внутри сети, я вижу следующую информацию:

Сервер реплики Gen: 2 Дата создания: 2018/02/07 10:49:54 UTC Дата последней синхронизации: 2018/02/07 10:49:54 UTC

"Данные последней синхронизации" соответствуют реплике "Дата создания". Однако в журнале реплик в ArcMap я вижу следующую информацию:

введите описание изображения здесь

Может кто-нибудь сказать мне, как я должен интерпретировать вышеописанную ситуацию? Я пропускаю некоторые шаги в моем коде? Или, может быть, на сервере отсутствует какая-либо конфигурация? Похоже, что изменения данных успешно возвращаются в реплику на сервере, но после этого реплика не синхронизируется с базой данных сервера (должна ли она работать автоматически?).

Я "новичок" в разработке ArcGis, поэтому любая помощь будет оценена

2 ответа

Спасибо за ответы на все вопросы. Случилось так, что в базе данных сервера включено управление версиями, и изменения в автономном режиме не были согласованы с сервером. После запуска сценария согласования / публикации ( http://desktop.arcgis.com/en/arcmap/10.3/manage-data/geodatabases/automate-reconcile-post-after-sync.htm) автономные изменения стали видны для другие пользователи системы.

Код выглядит хорошо при быстром просмотре, поэтому я предполагаю, что в настройке что-то происходит.

Что вы получаете от операции синхронизации после завершения синхронизации? Обратите внимание, что вы можете просто использовать await syncJob.GetResultsAsync чтобы начать работу и ждать результатов.

Как настроен сервис объектов на сервере? Пожалуйста, обратитесь к https://enterprise.arcgis.com/en/server/latest/publish-services/linux/prepare-data-for-offline-use.htm для различных способов установить эти вещи.

Другие вопросы по тегам