Поделиться через


ISaveChangeWithChangeUnitsContext2::SetConstraintConflictOnChangeUnit

Сообщает о конфликте ограничений, возникшем, когда поставщик назначения применял в реплике назначения изменение, содержащее базовые единицы.

HRESULT SetConstraintConflictOnChangeUnit(
  ISyncChangeUnit * pChangeUnit);

Параметры

  • pChangeUnit
    [in] Базовая единица в реплике назначения, которая конфликтует с применяемой базовой единицей.

Возвращаемое значение

  • S_OK.

  • E_INVALIDARG, если базовая единица pChangeUnit отсутствует в применяемом изменении.

  • E_POINTER.

  • SYNC_E_INVALID_OPERATION, если для этого объекта уже установлены конфликт ограничений или устранимая ошибка.

Замечания

Конфликт ограничений происходит, когда поставщик назначения применяет в реплике назначения изменение, которое нарушает ограничение реплики назначения. Для базовых единиц это обычно означает, что изменение нарушает бизнес-логику в реплике назначения. В качестве примера конфликта бизнес-логики рассмотрим реплику низкой достоверности, в которой хранятся две базовые единицы: name и country. Также рассмотрим реплику высокой достоверности, в которой хранятся три базовые единицы: name, state/province и country. Реплика высокой достоверности содержит бизнес-логику, которая проверяет значение поля state/province по значению поля country и не сохраняет изменение, не прошедшее проверку. Реплика низкой достоверности выступает в качестве источника и отправляет элемент, в котором поле country имеет значение «USA». Поставщик назначения применяет изменение в реплике высокой достоверности, однако в этой реплике поле state/province элемента имеет значение «British Columbia». Поэтому изменение нарушает бизнес-логику и вызывает конфликт ограничений в базовой единице, представляющей поле state/province.

Если поставщик назначения использует этот метод для сообщения о конфликте ограничений, то объект применения изменений разрешает конфликт, выполняя действие по устранению конфликтов, которое задано приложением для данного типа конфликта. Затем объект применения изменений отправляет все необходимые вызовы поставщику назначения, чтобы он применил результаты разрешения конфликта на реплике назначения. Дополнительные сведения см. в разделе Обнаружение и разрешение конфликтов ограничений.

См. также

Справочник

Интерфейс ISaveChangeWithChangeUnitsContext2