Перейти к публикации

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


Andrey337

Рекомендованные сообщения

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

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

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

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

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

image.png

 

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

image.png

 

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

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

 

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

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

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

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

 

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

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

 

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


UnPinned posts

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

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

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

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

AWC у нас нет.

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

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

AWC у нас нет.

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

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

 

 

 

 

1.png

2.png

Ссылка на сообщение
Поделиться на других сайтах
26.01.2023 в 12:08, Nek сказал:

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

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

Вот так:

image.png

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

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

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

 

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

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

Изменено пользователем 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






 


 

Ссылка на сообщение
Поделиться на других сайтах
27.01.2023 в 14:02, Andrey337 сказал:

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

Вот так:

image.png

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

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

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

Ссылка на сообщение
Поделиться на других сайтах
27.01.2023 в 14:34, esergey сказал:

 

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

это беда

 

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

Присоединяйтесь к обсуждению

Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.
Примечание: вашему сообщению потребуется утверждение модератора, прежде чем оно станет доступным.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

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

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




×
×
  • Создать...