LoadFromFile(FileName: String);
FileName. Путь и наименование файла, из которого будут загружены данные синхронизируемых справочников.
Метод LoadFromFile осуществляет загрузку данных синхронизируемых справочников.
Для выполнения примера предполагается наличие репозитория НСИ с идентификатором «NSI_1». В файле «C:\Sinc.rpl» содержатся данные синхронизируемых справочников. Добавьте ссылки на системные сборки «Metabase», «Rds», «Db».
Public Class MyCallback: Object, IRdsMergeCallback
Public Sub OnProgress(Progress: Integer; Total: Integer);
Begin
Debug.WriteLine("Сделано: " + Progress.ToString + " из " + Total.ToString);
End Sub OnProgress;
Public Sub OnConflict(LoadElement: IRdsDictionaryElement; CurrentElement: IRdsDictionaryElement);
Begin
Debug.Write("Элемент имеет различны значения: ");
Debug.Write(LoadElement.Name);
Debug.Write(" | ");
Debug.WriteLine(CurrentElement.Name);
End Sub OnConflict;
Public Sub OnBeforeProcess(Var bCancel: Boolean);
Begin
bCancel := False;
End Sub OnBeforeProcess;
Public Sub OnConflictResolve(LoadElement: Integer; CurrentElement: Integer; Var Ignor: Boolean);
Begin
Ignor := True;
End Sub OnConflictResolve;
End Class MyCallback;
Sub UserProc;
Var
MB: IMetabase;
MObj: IMetabaseObject;
NSI: IRdsDatabase;
NSIInst: IRdsDatabaseInstance;
Trans: IConnectionTransaction;
CallBack: MyCallback;
Replic: IRdsReplicator;
Begin
MB := MetabaseClass.Active;
MObj := MB.ItemById("NSI_1").Bind;
NSI := MObj As IRdsDatabase;
NSIInst := NSI.Open(Null);
Trans := NSIInst.DatabaseInstance.Connection.StartTransaction(False);
CallBack := New MyCallback.Create;
Replic := NSIInst.CreateReplicator;
Replic.LoadFromFile("C:\Sinc.rpl");
Replic.Merge(CallBack);
Trans.Commit;
End Sub UserProc;
После выполнения процедуры UserProc будет осуществлена синхронизация справочников в репозитории НСИ «NSI_1». Для контроля процесса синхронизации используется пользовательский класс MyCallback. Во время выполнения в консоль будут выводиться общий статус процесса и наименования элементов, имеющих различные значения в справочнике и загруженном файле. Для всех элементов, имеющих различия, будут восстановлены значения из файла.
См. также: