Бизнес-правило MDS для более чем одного доменного атрибута

Я застрял с этой проблемой на службе основных данных (MDS).

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

Но когда я пытаюсь создать второе бизнес-правило на основе второго домена, появляется ошибка:

200095 : Cannot specify more than one entity in MetadataGet 

  400003 : The attribute reference is not valid. The attribute was not found. 

  400003 : The attribute reference is not valid. The attribute was not found.

Очевидно, что атрибут действителен. Фактически, если я удаляю первые бизнес-правила, второе публикуется правильно.

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

1 ответ

Это также случилось с нами, и кажется, что эта ошибка возникает только при выполнении определенного набора действий:

  1. Сначала мы восстановили базу данных MDS 2012 на SQL Server 2017
  2. Мы обновили базу данных, используя инструмент управления MDS. Имейте в виду, что бизнес-правила с несколькими объектами теперь работают нормально - они не возвращают ошибок при сохранении, могут быть опубликованы и успешно оценены
  3. Затем мы поняли, что нам не хватает некоторых изменений кода, поэтому мы решили создать полный пакет модели, используя MDSModelDeploy.exe в нашей старой MDS 2012
  4. Мы развернули этот пакет, используя MDSModelDeploy deployupdate команда. После этого существующие правила для нескольких сущностей не публикуются, вы также не можете создавать новые правила на основе разных сущностей в пределах одной сущности. К сожалению, мы не нашли решения для этого, поскольку есть более простые способы обойти это.

В этот момент мы сделали шаг назад, восстановили и обновили старую базу данных еще раз, и оказалось, что правила сработали, поэтому это должен был быть пакет, который их нарушил. Я не знаю, какова была ваша ситуация, поскольку, когда мы создавали свежую модель в SQL 2017, все правила, основанные на нескольких сущностях, работали отлично, поэтому мне интересно узнать, какие шаги необходимо предпринять, чтобы воспроизвести ошибку в вашем случае.

Единственный возможный подход, который я могу придумать, чтобы исправить ситуацию в пункте 4, - это создать пакет обновления MDSModelDeploy из поврежденной модели, а другой - из новой, работоспособной модели, а затем сравнить XML-данные бизнеса, состоящего из нескольких объектов. правила структурированы. Мы не пробовали это, хотя, так как мы нашли обходной путь, описанный ранее.

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