Sign in to follow this  
Followers 0
butulec

Получить свойства POM api

Pinned posts

Здравствуйте!

Подскажите, как получить свойства POM и их свойства.

Я получаю объект TCComponentItemRevision,у него есть свойство с отсутствующей второй ссылкой (нет набора данных).

Пробовал getRelated() и getReferenceProperty(), но они есть только на тех объектах, у кого есть этот набор данных, а мне нужно найти именно отсутствующую (пустую) ссылку без НД. 

Share this post


Link to post
Share on other sites


UnPinned posts

Какое именно свойство вы запрашиваете?

Share this post


Link to post
Share on other sites

ID: 3   Posted (edited)

По возможности хотелось бы все свойства взять, просто каким методом у объекта TCComponentItemRevision можно взять свойства которые справа на скриншоте

3.png

Edited by butulec

Share this post


Link to post
Share on other sites

через getTCProperty разве никак?

Share this post


Link to post
Share on other sites

ID: 5   Posted (edited)

1 минуту назад, lexx174 сказал:

через getTCProperty разве никак?

Через getTCProperty можно посмотреть все свойства, которые есть у объекта. Но мне нужно посмотреть именно ссылки для объекта, которые есть в ПОМ-свойствах.

Это свойство вообще может быть пустое, но в нашем случае оно пустое по ошибке, так как нет набора данных. Вот валидность проверить можно при анализе свойства, которое на скриншоте выше (Свойства (POM))

ТО есть если есть ссылка, но нет набора данных - ошибка

А если нет ссылки, свойство все равно будет (пустое) - не ошибка

 

4.png

Edited by butulec

Share this post


Link to post
Share on other sites

В вашей модели данных для отношения тех.требования значение массив объектов или только один объект?

Share this post


Link to post
Share on other sites
Только что, lexx174 сказал:

В вашей модели данных для отношения тех.требования значение массив объектов или только один объект?

Один объект, MSWord

Share this post


Link to post
Share on other sites
TCProperty.getReferenceValue() пробовали?

Share this post


Link to post
Share on other sites
5 минут назад, lexx174 сказал:

TCProperty.getReferenceValue() пробовали?

Оказалось это отношение принимает массив объектов (выдал стек ошибок), я поправил как нужно.

Ситуация старая, если объект есть - он выводится

Если есть ссылка на объект, но набора данных нет - то массив пустой.

Но как определить есть ли сама ссылка ?

5.png

Share this post


Link to post
Share on other sites

ссылка - это объект Relation, в вашем случае именуемый Тех.требования, верно?

Share this post


Link to post
Share on other sites
Только что, lexx174 сказал:

ссылка - это объект Relation, в вашем случае именуемый Тех.требования, верно?

Верно, на первом скриншоте на выделенной ревизии, в вкладке Анализ влияния, при выборе Свойства (POM) есть перечень ссылок. Там есть ссылка на структуру, карточку-форму, а также на объекты наборов данных которые находятся в ревизии (модели или тех.требования)

Для того чтобы корректно оценить правильная ссылка или мы заходим в карточку ссылки (чтобы посмотреть свойства) и там есть первичный, вторичный объекты и их связь.

У нас бывает что вторичного объекта нет, то есть не был передан, но ссылка на ревизии весит. Вот нам необходимо анализировать такие ситуации, я так понимаю с помощью анализа этих ссылок. 

Share this post


Link to post
Share on other sites

ID: 12   Posted (edited)

Тогда чтоб получить и перебрать Relation-объекты используйте функции whereReferenced()/whereReferenced(boolean )

 

в вашем случае нужен 2й вариант функции с параметром

Edited by lexx174

Share this post


Link to post
Share on other sites

ID: 13   Posted (edited)

15 минут назад, lexx174 сказал:

Тогда чтоб получить и перебрать Relation-объекты используйте функции whereReferenced()/whereReferenced(boolean )

 

в вашем случае нужен 2й вариант функции с параметром

Мы приближаемся к истине)

1. Могли вы пояснить в чем между ними разница (whereReferenced(true) и whereReferenced(false)), у меня результаты разные, во 2 варианте перечень полный.

2. Так как результаты во 2 варианте правильные (нужные, там есть ссылка на тех.требования). Там вывод с UID, перебор ImanRelation. Как их правильно обработать могли бы подсказать? Выяснить наименование этого отношения как можно?

6.png

 

Нашел, whereReferenced.getComponent().getType(), так можно посмотреть тип отношения, но теперь вопрос, как найти вторичный объект по этому отношению?

Edited by butulec

Share this post


Link to post
Share on other sites

ID: 14   Posted (edited)

true или false означает варианты просто ссылается или ссылается_POM, что не трудно догадаться (об этом написано в ява доке)

 

 

дальше просто проверяется на if( comp instanceof TCComponentTcRelation)

 

Если класса TCComponentTcRelation нет (я не помню за такой), возможно объекты Relation тогда будут просто TCComponent

чурез "object_name" можно потом отфильтровать нужное отношение

Edited by lexx174

Share this post


Link to post
Share on other sites

ID: 15   Posted (edited)

7 минут назад, lexx174 сказал:

true или false означает варианты просто ссылается или ссылается_POM, что не трудно догадаться (об этом написано в ява доке)

 

 

дальше просто проверяется на if( comp instanceof TCComponentTcRelation)

 

Если класса TCComponentTcRelation нет (я не помню за такой), возможно объекты Relation тогда будут просто TCComponent

чурез "object_name" можно потом отфильтровать нужное отношение

Спасибо, искал сегодня очень долго!!! 

Остался последний момент, как найдя нужное отношение, найти по нему вторичный объект, и если его нет, соответственно, то это тот случай который нам нужен)  

Можно конечно извратиться и зайди в TCProperty и проверить значение, но возможно есть вариант по этому пути, имея компонент Relation, или по нему нельзя выйти на вторичный объект?

Edited by butulec

Share this post


Link to post
Share on other sites

да скорее всего дальше просто через свойства primary_object/secondary_object

 

TCComponentTcRelation есть такой класс? У меня просто eclipse не перед глазами я не могу проверить

Share this post


Link to post
Share on other sites
Только что, lexx174 сказал:

да скорее всего дальше просто через свойства primary_object/secondary_object

 

TCComponentTcRelation есть такой класс? У меня просто eclipse не перед глазами я не могу проверить

Да есть такой класс, но все компоненты попали в этот if при проверке, а мне нужен был конкретный по имени)

Сделал через TCProperty при наличии отношения нужного.

А свойства primary_object/secondary_object смотреть у ревизии вы имеете ввиду? 

Share this post


Link to post
Share on other sites
2 минуты назад, butulec сказал:

Да есть такой класс, но все компоненты попали в этот if при проверке, а мне нужен был конкретный по имени)

Сделал через TCProperty при наличии отношения нужного.

А свойства primary_object/secondary_object смотреть у ревизии вы имеете ввиду? 

у самого отношения тех.требования

Share this post


Link to post
Share on other sites

ID: 19   Posted (edited)

15 минут назад, lexx174 сказал:

у самого отношения тех.требования

Что то я запутался.

AIFComponentContext[] whereReferenced = itemRevision.whereReferenced(false);
            for (int i = 0; i < whereReferenced.length; i++) {
                TCComponent comp = (TCComponent) whereReferenced.getComponent();
            
            
                AIFComponentContext[] whereReferenced_pr = comp.getPrimary();
                AIFComponentContext[] whereReferenced_sec = comp.getSecondary();

}

Оба массивы пустые.

 

Вот что в модели данных написано 

     <TcProperty propName="IL2_TechnicalSpec_Relation" propTypeName="Relation" propValueType="PROP_untyped_relation"
         propMaxStringLength="0" isArray="true" arrayLength="-1" description="" referencedTypeConstant=""
         referencedType=""/>

Получается тип массив, но когда я беру значение этого свойства TCProperty, то он говорит неправильный тип, как правильно взять верный тип для этого свойства?

 

org.eclipse.core.runtime.AssertionFailedException: assertion failed: Неправильный тип свойства

Можно просто вывести с помощью prop.getDisplayValue(), мне этого достаточно, но интересно, какой тип ему все таки нужен?

Edited by butulec

Share this post


Link to post
Share on other sites

ID: 20   Posted (edited)

Берите TCProperty у Relation(тех. требования)

два свойства - secondary_object и primary_object

 

то что вы привели в xml - это касатеся самого Relation а не свойств его

думаю дальше справитесь. и проверьте ЛС

Edited by lexx174

Share this post


Link to post
Share on other sites
2 минуты назад, lexx174 сказал:

Берите TCProperty у Relation(тех. требования)

два свойства - secondary_object и primary_object

Получилось!!!

Большое спасибо)

А еще могли бы дать направление на завтра, подсказать, как взять объекты структуры у ревизии(что входит в сборку например)?

Share this post


Link to post
Share on other sites

ID: 22   Posted (edited)

прочитать состав?

 

предлагаю обсудить это уже завтра

Edited by lexx174

Share this post


Link to post
Share on other sites
Только что, lexx174 сказал:

прочитать состав?

 

предлагаю обсудить это уже завтра

Да, состав.

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

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now
Sign in to follow this  
Followers 0

  • Recently Browsing   0 members

    No registered users viewing this page.



  • Сообщения

    • MiLloeDelo
      @tm-ares  ОГРОМНОЕ СПАСИБО  ! Думаю этот пост многим пригодится , я его сделаю  в одном посте Показать содержимое     Hide     А все остальное делать   Если хотите сделать , его в определенном разделе (к примеру  “Сборная торцевая фреза” ) или по типу в библиотеке то : Показать содержимое   Hide    
    • jumper99
      @karachun https://fex.net/s/tlzoeod нашел как переделать сетку в примерах  здесь вообще другой результат
    • tm-ares
      Queen - forever !   Hide  
    • yuka83
      Бердянск. Огромное спасибо просмотрю сейчас. установил 30 версию. Треует ключ при запуске сейчас ищу как обойти.
    • karachun
      Мне кажется это глюк отображения. Видно что там сетка обрезается.
    • jumper99
      @karachun Как то странно деформируются нижняя и правая часть цилиндра(ее край идет на скос) 
    • Вне зоны доступа
      @Крутой инвестор из ЕС Зазанался виктОр! Теперь со своей пацанвой ему впадлу перетереть. Он теберь только с лондонскими членами общается. Шутка ли - в самом Гарварде оценили его работу над ПИИ
    • Крутой инвестор из ЕС
      @TBC и где ответ на мой комментарий про аргументы, которые ты просил? Или трус за базар ответить?
    • Anat2015
      Вам/нам же сказали: И что этому ... можно посоветовать? Идти туда же? Он просто ошибся, надеюсь, дверью...
    • tm-ares
      @MiLloeDelo , по отсутствию прав почитайте тему: Теперь про библиотеку инструментов.  Если Вы хотите забить в библиотеку именно свою фрезу и именно в раздел “Сборная торцевая фреза”, то можно сделать так: 1.      Загрузите любую из стандартных. Например, UGT0212_001. 2.      Отредактируйте её размеры, также размеры хвостовика и держателя. 3.      Задайте ей оригинальное имя (Описание) и ссылку. 4.       Экспортируйте её в библиотеку как показано в посте №45 в раздел #CLASS FACE_MILL_INDEXABLE. Вот она, Ваша фреза.   Hide