Geksa

Мастер-формы Тимцентра в БД

Коллеги, добрый день.

Появилась задача получить мастер-форму ревизии от, собственно, самой ревизии. Отношение нахожу в таблице PIMANRELATION, все ок.

Но дальше по полученному тегу не могу ее найти в таблице PITEMVERSIONMASTER.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

16 часов назад, Geksa сказал:

Коллеги, добрый день.

Появилась задача получить мастер-форму ревизии от, собственно, самой ревизии. Отношение нахожу в таблице PIMANRELATION, все ок.

Но дальше по полученному тегу не могу ее найти в таблице PITEMVERSIONMASTER.

С BIRT играетесь?

 

В таблице PIMANRELATION:

 

RRELATION_TYPEU - по идее uid IMAN_master_form_rev Relation

RPRIMARY_OBJECTU и RSECONDARY_OBJECTU - одно из этого - ревизия(uid), другое - мастер-форма(uid)

Изменено пользователем lexx174

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
1 час назад, lexx174 сказал:

С BIRT играетесь?

 

В таблице PIMANRELATION:

 

RRELATION_TYPEU - по идее uid IMAN_master_form_rev Relation

RPRIMARY_OBJECTU и RSECONDARY_OBJECTU - одно из этого - ревизия(uid), другое - мастер-форма(uid)

Вот, что удалось раскопать:

Из PImanrelation ссылаемся на Pform. А дальше от PForm либо ссылка на PItemRevisionMaster, либо на отдельную таблицу для своего кастомного класса хранения.А в какой таблице узнать тип мастер-формы? Чтобы знать, доставать данные из встроенной PItemRevisionMaster или из своего класса хранения?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

а чо bitr прям с БД на прямую работает? 
а как же бизнес логика...

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
2 минуты назад, koner сказал:

а чо bitr прям с БД на прямую работает? 
а как же бизнес логика...

ну лично мне не для birt)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
1 час назад, koner сказал:

а чо bitr прям с БД на прямую работает? 
а как же бизнес логика...

Да, работает.

Бизнес логика - в ряде случаев костыль и тормоза (для больших отчетов или специфичных запросов).

 

 

1 час назад, Geksa сказал:

Вот, что удалось раскопать:

Из PImanrelation ссылаемся на Pform. А дальше от PForm либо ссылка на PItemRevisionMaster, либо на отдельную таблицу для своего кастомного класса хранения.А в какой таблице узнать тип мастер-формы? Чтобы знать, доставать данные из встроенной PItemRevisionMaster или из своего класса хранения?

В моем ответе в принципе ответ на ваш вопрос.  в ссылается POM вы открыв свойство отношения IMAN_master_form увидите первичная ссылка - ваша ревизия, вторичная ссылка - мастер-форма.

 

В таблица IMANRELATION как раз хранятся PUIDы первичной и вторичной ссылки - RPRIMARY_OBJECTU и RSECONDARY_OBJECTU.

Отсюда и копайте.

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

 

 

Изменено пользователем lexx174

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
5 минут назад, lexx174 сказал:

Да, работает.

Бизнес логика - в ряде случаев костыль и тормоза (для больших отчетов или специфичных запросов).

 

 

в моем ответе в принципе ответ на ваш вопрос.  в ссылается POM вы открыв свойство отношения IMAN_master_form увидите первичная ссылка - ваша ревизия, вторичная ссылка - мастер-форма.

 

В таблица IMANRELATION как раз хранятся PUIDы первичной и вторичной ссылки - RPRIMARY_OBJECTU и RSECONDARY_OBJECTU.

Отсюда и копайте.

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

 

 

с IMANRELATION разобралась.

Это все понятно. Надо как-то дойти до класса хранения формы.

Была бы очень благодарна за запрос, я думаю, он бы ответил на все мои вопросы)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
1 час назад, Geksa сказал:

с IMANRELATION разобралась.

Это все понятно. Надо как-то дойти до класса хранения формы.

Была бы очень благодарна за запрос, я думаю, он бы ответил на все мои вопросы)

что вам надо получить под мастер-формой? ее puid? или что? если puid то это RSECONDARY_OBJECTU

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
2 часа назад, Geksa сказал:

Была бы очень благодарна за запрос, я думаю, он бы ответил на все мои вопросы)

select w.pobject_name from pworkspaceobject w
          inner join pimanrelation rel
            on w.puid = rel.rsecondary_objectu
          inner join pimantype t
            on rel.rrelation_typeu = t.puid and t.ptype_name='IMAN_master_form'
          where rel.rprimary_objectu='VdRlznd$FOoqlC';

в данном примере вытаскивается наименование мастер-формы ревизии, на вход дается puid ревизии

Изменено пользователем lexx174

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
6 минут назад, lexx174 сказал:

что вам надо получить под мастер-формой? ее puid? или что? если puid то это RSECONDARY_OBJECTU

У меня задача - получить атрибуты мастер-формы. Не стандартного айтема, а кастомного. Со своим классом хранения. Через таблицу PIMANRELATION и ее поле RSECONDARY_OBJECTU я нахожу уид мастер-формы. Как теперь найти ее атрибуты?

 

Данное поле (RSECONDARY_OBJECTU) ссылается на поле PUID таблицы PForm.

Дальше таблица PForm ссылается на таблицу PItemRevisonMAster - если айтем обычный с поставки, не кастомный, а если кастомный, со своим классом хранения, то она уже ссылается на другую таблицу. И вот надо как-то отследить, какой тип формы и на какую таблицу ссылается.

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
15 минут назад, Geksa сказал:

У меня задача - получить атрибуты мастер-формы. Не стандартного айтема, а кастомного. Со своим классом хранения. Через таблицу PIMANRELATION и ее поле RSECONDARY_OBJECTU я нахожу уид мастер-формы. Как теперь найти ее атрибуты?

 

Данное поле (RSECONDARY_OBJECTU) ссылается на поле PUID таблицы PForm.

Дальше таблица PForm ссылается на таблицу PItemRevisonMAster - если айтем обычный с поставки, не кастомный, а если кастомный, со своим классом хранения, то она уже ссылается на другую таблицу. И вот надо как-то отследить, какой тип формы и на какую таблицу ссылается.

 

 

выше привел пример как поулчить puid или наименование мастер-формы

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Если замороченно получается с вытаскиванием атрибутов, не проще ли дальше, имея puid мастер-формы получить атрибуты средствами ITK или JAVA?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
7 минут назад, lexx174 сказал:

Если замороченно получается с вытаскиванием атрибутов, не проще ли дальше, имея puid мастер-формы получить атрибуты средствами ITK или JAVA?

Не проще, т.к. мне нужно это сделать не заходя в Тимцентр, не создавая сессию.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
1 час назад, Geksa сказал:

Не проще, т.к. мне нужно это сделать не заходя в Тимцентр, не создавая сессию.

ну половина дела у вас сделано.есть puid мастер-формы.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

похоже что pform.rdata_filec = ppom_class.pcpid
ppom_class.ptname - имя таблицы класса хранения.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
21 час назад, tuzik сказал:

похоже что pform.rdata_filec = ppom_class.pcpid
ppom_class.ptname - имя таблицы класса хранения.

 

огромное спасибо. Это то, что было нужно

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

А кто-нибудь разбирался с правилами ревизионного конфигурирования через БД? В таблице PPSOCCURRENCE есть ссылка на сам айтем: RCHILD_ITEMU, а вот какую из ревизий брать..

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
1 час назад, Geksa сказал:

А кто-нибудь разбирался с правилами ревизионного конфигурирования через БД? В таблице PPSOCCURRENCE есть ссылка на сам айтем: RCHILD_ITEMU, а вот какую из ревизий брать..

пишите в ЛС

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

проверяете дату создания, релиза и статус каждой ревизии и выбираете нужную

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!


Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.


Войти сейчас

  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу

  • реклама

  • Реклама

  • Ближайшие события

    Предстоящих событий не найдено
  • Дни рождения сегодня

    1. AdelaiHill
      AdelaiHill
      (29 лет)
    2. AnthonyMa
      AnthonyMa
      (40 лет)
    3. Drean
      Drean
      (27 лет)
    4. frtelook
      frtelook
      (40 лет)
    5. JavierBum
      JavierBum
      (33 года)
    Просмотреть все