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

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

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




  • Сообщения

    • Jesse
      Вот что у Биргера: Центробежные силы и индуцированный гироскопический момент зависят от квадрата частоты вращения вала   Хотя уже сама критическая частота зависит только от момента инерции колеса (альфа, бэта, гамма - это прогибы, углы поворота и прочая шелуха), т.е. частота вращения в формулу не входит, а всё определяется только моментом инерции Jm Ну у него рассматривается простая одномассовая система (фактически грузик на пружинке). Думаю поискать публикации.. мб где то раскопали аналитическую зависимость первой и высшей СЧ от частоты вращения для сложных систем. Хотя если выяснится что зависит,  всё равно обоснование придумывать придётся.  Эхх...
    • Fedor
      https://www.litres.ru/book/v-n-faddeeva/vychislitelnye-metody-lineynoy-algebry-65999878/  Ну и классику жанра :) 
    • Jesse
      4000 об/мин при наружном диаметре колеса 380 мм. Думаете, на больших оборотах вилка всё равно может разойтись и могут появиться гироскопические эффекты? Даже несмотря на вышеприведенные массово-инерционные оценки и расположение опор?   да я влияние престресс (вращение) особо не увидел... Думал обычным модальником прогнать, Ланцошом (он пошустрее).   Ещё мои раздумья направлены в сторону присоединённой массы воды, что по идее должно занижать частоты. Хотя для такого массивного вала как у меня даже на это дело можно забить, наверно...
    • Handrusik
      Maxx2000 - благодарю Павлуха - это не фриланс Утомлённый солнцем - приятно, что меня помнят
    • Борман
      Я так понимаю, что обороты не особо большие. ДК - это чисто высокооборотистая тема.   Просто мысли вслух... Если вилка будет сильно расходится, то всегда будет точка пересечения любого луча с кривой BW. Причем точка будет на меньших оборотах по сравнению с обычным престресс-модальником. Какие дальше действия ? С чем тут нужно дополнительно бороться по сравнению с тем, с чем нужно было бы бороться по результатам обычного престресс-модальника Если вилка не сильно расходится (от кривой обычного престресс-мобальника), то смысла стоить строгую ДК большого нет.    
    • boomeeeer
      На сименсе параметрами настраивается многое, что связано с менеджером иснструмента. Вызов возможен как по номерам, так и по именам инструментов. Через равно вроде как по имени вызывается (Т="имя"), а по номеру можно было, например, Т1 M6, а первый корректор подтянулся бы автоматически. И не всегда М6 на смену. Производитель мог нагородить чего угодно. Параметры надо смотреть
    • Den4ik85
      P.S этой ошибки не было при запуске,она возникла при выполнении команды смены инструмента "T=.." d1m6. (так учили на курсах) возможно,не тот номер ввел или не соответствовало название инструмента его номеру?
    • boomeeeer
      @Den4ik85 Подключаться к контроллеру и искать цепочку формирования сигнала ошибки DB2.DBX183.0. Возможно один из индуктивных датчиков на подсчёт ячеек магазина вышел из строя
    • boomeeeer
      G108 C0 - Включить шпиндель №0 в режим оси C G90 C180 - Переместить ось С в позицию 180 градусов
    • Den4ik85
      благодарю! ничего не понял, ну хоть что-то) учусь только) попробую разобраться
×
×
  • Создать...