Jump to content

PostAction на сохранении структуры


Andrey337

Recommended Posts

Andrey337

Здравствуйте, коллеги!
 

Работаем с Управлением требованиями.

Есть объект типа RequirementSpec (ТЗ), структура которого состоит из объектов типа Requirement (Требование).

При открытии ТЗ в приложении Системное проектирование, для каждого Требования создается Runtime объект типа Fnd0RequirementBOMLine.

На Runtime объекте типа Fnd0RequirementBOMLine есть Runtime атрибут fnd0bl_hierarchical_number (Номер) в котором генерируются порядковые номера для каждого требования (грубо говоря нумерация требований).

image.png

 

Эту структуры мы выгружаем в Word (при помощи Сервис - Экспорт - Объекты в Word), но атрибут Номер выгрузить нельзя (если знаете как, буду признателен), т.к. его нет на ревизии требования и он Runtime, а ОЧЕНЬ нужно.

image.png

 

В связи с этим мы заказали написание кода, который переписывает значение данного Runtime атрибута на ревизию при сохранении структуры, но у программистов возникли проблемы.

Дело в том, что при работе со структурой в приложении Системное проектирование, практически любое изменение в структуре (например: добавление нового требования, удаление существующего, изменение порядка требований....) приводит к автоматическому сохранению структуры и программисты говорят, что отловить эти действия практически невозможно, т.к. отсутствуют события (см. ниже).

 

Постэкшен срабатывает при сохранении структуры BOM - окна, открытого в данный момент в приложении.

Т.е. нажатие на кнопку "Сохранить" в менеджере структуры однозначно вызывает это событие.  И когда это событие наступает, можно программно из открытого BOM-окна получить актуальный состав с уже установленными правилами конфигурирования.

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

В Системном пректировании несколько иначе все работает, приложение работает не с одной структурой, а с несколькими различными видами представления данных. И, похоже, сохранение и обновление данных в некоторых случаях делается другим способом без вызова стандартного события (например, напрямую через SOA вызовы, и непосредственно в сами изменяемые объекты). Отловить это практически невозможно, т.к. отсутствуют события.

 

Скажите, пожалуйста, может быть у кого-то есть идеи, как можно отловить действия приводящие к автоматическому сохранению структуры в приложении Системное проектирование?

Заранее благодарен!

 

Link to post
Share on other sites


UnPinned posts

А в Excel этот атрибут экспортируется? Еще как вариант, если если есть AWC, попробовать выполнить экспорт из под него также в Word.

Link to post
Share on other sites
Andrey337
1 час назад, Nek сказал:

А в Excel этот атрибут экспортируется? Еще как вариант, если если есть AWC, попробовать выполнить экспорт из под него также в Word.

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

AWC у нас нет.

Link to post
Share on other sites
1 час назад, Andrey337 сказал:

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

AWC у нас нет.

Ну так из Менеджера структуры экспорт в Excel нормально затягивает, например, столбец Количество, хотя он Runtime и на на Runtime объекте.

Я протестировал у себя экспорт требований в Word и похоже, что у меня столбец Номер в Word экспортируется нормально, см. вложения.

 

 

 

 

1.png

2.png

  • Нравится 1
Link to post
Share on other sites
Andrey337
26.01.2023 в 12:08, Nek сказал:

Я протестировал у себя экспорт требований в Word и похоже, что у меня столбец Номер в Word экспортируется нормально, см. вложения.

Попробуйте, теперь сделать так, чтобы атрибут Номер выгружался в конце наименования, например в скобочках.

Вот так:

image.png

Если получится, то покажите, пожалуйста, Ваш шаблон выгрузки.

Link to post
Share on other sites
esergey
Цитата

Попробуйте, теперь сделать так...

 

друга есть номер в эксель ?
а попробуите Сами что то сделать ???

и нам пришлите плиз  - мы с вами вместе получим знания !!!

Edited by esergey
Link to post
Share on other sites
esergey

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

начнем ? 
мы видим с вами заголовок в первой строке  - в нем написано  - Номер 
читаем 
как получить текст из колонки 
начнем с имени листа на котором мы будем искать данные 


Переменные для листов
Set sh = ThisWorkbook.Worksheets("Лист1")
Set sh = ThisWorkbook.Worksheets(listname)
или 
обратиться к листу в эксель VBA 
https://vremya-ne-zhdet.ru/vba-excel/rabochiy-list-obrashcheniye-pereimenovaniye-skrytiye/

 

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

https://vremya-ne-zhdet.ru/vba-excel/metod-range-find
https://codernotes.ru/articles/vba/poisk-na-liste-excel.html
https://www.cyberforum.ru/vba/thread803973.html
https://www.planetaexcel.ru/forum/index.php?PAGE_NAME=message&FID=1&TID=100925&MID=833885#message833885

 

как получить значение из ячейки 

https://codernotes.ru/articles/vba/chtenie-i-zapis-znacheniya-yachejki-v-vba.html
https://vremya-ne-zhdet.ru/vba-excel/yacheyki-obrashcheniye-zapis-chteniye-ochistka/
https://voxt.ru/poluchit-znachenie-yachejki-v-excel-vba/
https://excelfiles.space/ru/ms-office-ru/excel-ru/cells-excel-vba-ru


после того как мы получим значения из ячеек в переменную  - мы можем применить их в значениях других ячеек 
ячейка N = ячейка N & переменная 
или 
ячейка N.formulaR1C1 = ячейка N.formulaR1C1 & переменная 


итого 

мы можем найти значение колонки в первой строке с именем "Номер"
получить номер колонки в которой стоит номер вложенности вашей сборки 
потом мы идем по колонке и берем номера ячеек в переменную 
    номер колонки куда добавить номер 
    и номер колонки в которой стоит нужный вам номер 
    
    теперь мы можем изменить значение колонки в которую вам нужно добавить номер 
    оно равно = значение колонки & номер  =  Пупкин 123
    или равно  = номер & значение колонки  = 123 Пупкин
    
    
    
теперь мы можем открыть вкладку разработчик vba 
написать макрос (Sub Name) 
и на листе добавить кнопку 
и кнопке назначить выполнение макроса (Sub Name)

теперь после открытия файла с экспортированными данными  - мы можем применить номера к любой требуемой нами колонке !!!


если нужно - дайте данные в формате Excel  я вам напишу вам макрос без проблем !!!


теперь далее - если у вас что то после вин 7  - то любая книга с макросом открытая и разрешенная к использованию макросов 
в дальнейшем будет открываться без проблем 
в противном случае вам в настройках экселя нужно создать безопасное расположение и книги с макросами помещать туда 
из этого расположения все книги Excel  с макросами будут открываться без предупреждения и со включенными макросами ... 
Дерзайте  !!!


БлаБлаБла.rar






 


 

  • Нравится 1
Link to post
Share on other sites
27.01.2023 в 14:02, Andrey337 сказал:

Попробуйте, теперь сделать так, чтобы атрибут Номер выгружался в конце наименования, например в скобочках.

Вот так:

image.png

Если получится, то покажите, пожалуйста, Ваш шаблон выгрузки.

Это значительно отличается от задачи описанной вами в первом посте, это по сути другая задача. Я шаблон Word не смотрел и не знаю как он выглядит, времени смотреть пока его нет. Но, если у вас через шаблон не получается вывести Номер в необходимое место, то попробуйте использовать альтернативный вариант (на который вас уже направил @esergey), например, написать код на Visual Basic для приложений (VBA) для Office.

Насколько я понял это все же заголовки и подзаголовки? Значит можно попробовать с помощью VBA считать их и добавить им в конце номер, возможно это будет проще, чем кастомизировать Teamcenter.

Link to post
Share on other sites
Andrey337
27.01.2023 в 14:34, esergey сказал:

 

друга есть номер в эксель ?
а попробуите Сами что то сделать ???

и нам пришлите плиз  - мы с вами вместе получим знания !!!

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

Спасибо за Ваш ответ.

Я пробовал выгружать данный атрибут в Word, он не выгружается, то что показал пользователь Nek, я предполагаю является работой стилей заголовков в Word, т.к. у себя мы именно так и получаем номера в начале строки заголовка.

Я предполагал, что пользователь Nek, выгрузил их по другому, поэтому и попросил реализовать мой пример.

Так он написал, что не смотрел шаблон, то атрибут номер появился, благодаря работе стилей Word.

27.01.2023 в 23:54, esergey сказал:

возможно нам стоит вместе с данным вопросом разобраться ? 
что мы видим на странице экселя ? 
мы видим номера колонок , мы видим их оглавление , мы видим данные которые стоят в строках в этих колонках ...

Спасибо, за подробное описание работы с этим атрибутом в Excel.

При помощи VBA мы у себя собираем ТЗ из того, что выгружает ТС в Word.

Меня интересовал метод именно выгрузки данного атрибута, про постройку костылей мне известно, мой код по формированию ТЗ знатный инвалид)))

Если у кого-то будут вопросы по теме выгрузки или макрсоов под Word могу подсказать.

Если вопросов по выгрузке не будет, то тему можно закрывать, т.к. программисты нашли выход.

Они решили запускать свой код, при любом изменении в структуры, которое приводит к её автоматическому сохранению.

Link to post
Share on other sites
esergey
1 час назад, Andrey337 сказал:

про постройку костылей мне известно,

зря вы вы это говорите ...
костыли не наше все !!!
была тема про эксель ...???
теперь в ответе ворд  - пипец !
чудеса ... 

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

Edited by esergey
Link to post
Share on other sites
Andrey337
6 часов назад, esergey сказал:

была тема про эксель ...???

Нет, посмотрите первый пост, там про Excel ничего нет

Я про Excel ничего не спрашивал.

А в ответ получил Excel.

Чудеса, да и только и да, полностью с Вами согласен.

6 часов назад, esergey сказал:

это беда

 

Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Recently Browsing   0 members

    No registered users viewing this page.




  • Сообщения

    • The_22nik
      Приветствую! Возникла задача сделать спецификацию по форме 5 (до 3 исполнений). Через макрос такую спецификацию нет возможности сделать? Если кто поделится шаблоном таблицы для такой спецификации буду благодарен.
    • niksasa
      Значит проблема в исходнике. Оптимальный вариант переходить на 2021 инвентор, думаю проблемы исчезнут.
    • Viktor2004
      Не знаю как Вам, а для меня этот форум площадка для общения с единомышленниками. Обмен опытом. Когда сюда заходят новички с вопросами, всегда хочется помочь по быстрому. И когда в ответ читаешь что отвечаю я не в том формате, задаю лишние вопросы, что если мне что-то не нравится, могу проходить лесом, и вообще все мои проблемы в том что я русский, вот тут у меня включается внутренний протест. А какого хрена я ему вообще что-то должен.
    • andrey2147
      Зачем спалили? Будет теперь шифроваться.
    • vad0000
      Только он не дроссельный, а поддерживающий. А так - это обычный предохранительный клапан.
    • Куаныш
      Здравствуйте, Все заработала. Причина - у нас один цилиндр падал вниз постоянно, контроллер сам приподнимал постоянно, оказывается если контроллер много раз приподымает цилиндр то он заблокируется и не реагирует, что бы реагировала на команды, надо перезагружать. А опускания цилиндра самопроизвольно - это дроссельный клапан раскрутился и пропускал масло. Всем спасибо!
    • Pavel92.08
      Нету этих данных 
    • ORG
      она самая
    • vad0000
      Какое у Вас ЧПУ?
    • Bot
      Ведущий поставщик решений и сервисов в области цифровой трансформации и информационной безопасности Softline помогла архитектурно-проектному бюро A|U решить проблему перехода на доступное в России программное обеспечение для 2D проектирования и 3D моделирования. Архитектурно-проектное бюро «Аркитект бай Унистрой» с 2017 года успешно реализует проекты для жилой и коммерческой недвижимости в сфере девелопмента. Предметом деятельности АПБ являются: разработка концепции будущего объекта, генеральный план, эскизное проектирование, выпуск проекта по благоустройству, цветовые решения фасадов, разработка стадийного проекта и инжиниринг. Программное обеспечение для проектирования и моделирования относится к числу критически важного для заказчика, так как без этих решений компания не сможет вести свою деятельность. После отзыва лицензий на функционировавший ранее AutoCAD потребовалось осуществить оперативный переход на доступный в России софт. Для решения этой проблемы АПБ обратилось к [...] View the full article
×
×
  • Create New...