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

Teamcenter Основы программирования


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

Уважаемый All!
Если вы не будете против, разрешите немного позадавать вопросы о программировании в Teamcenter.
Возможно у нас получится, с помощью гуру и форумчан, разъяснить для пользователей основные моменты и возможности написания кода для Teamcenter.
Если вы окажите поддержку в данном вопросе  - гарантирую, что буду прилагать к постам полное описание с фото и архивы проектов.


К сожалению в java я не силён, поэтому вопросы в основном будут по C++.
Если кто то выразит желание по java написанию кода - буду только за и так же попытаюсь подробно описать озвученные знания для этого языка программирования.

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


UnPinned posts

Если вдруг кто захочет поделать клиентские приложения под ТЦ, то вот вам немного сниппетов

 

 

https://github.com/Krusty84/Teamcenter_REST_API


https://github.com/Krusty84/Teamcenter_WSDL_SOAP

 

язык соотвественно не принципиален 

 

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

Все что сможем - то и будем пробовать 


Для начала наверное стоит сделать то что есть в справке по BMIDE ...

Так же имеется желание пробежаться по основным понятиям, функциям и заголовкам для работы на стороне сервера 
Насколько я понимаю основным инструментом является ITK ?

Ссылка на сообщение
Поделиться на других сайтах
3 minutes ago, esergey said:

Все что сможем - то и будем пробовать 


Для начала наверное стоит сделать то что есть в справке по BMIDE ...

Так же имеется желание пробежаться по основным понятиям, функциям и заголовкам для работы на стороне сервера 
Насколько я понимаю основным инструментом является ITK ?

ITK (Integration ToolKit) это просто набор библиотек 

Имхо,

лучше заморачиваться с деланием 

сервисов там вам и BMIDE и си плас плас

 

да, иностранные компании стараются Кастома делать по минимум, может потому, что тщательнее читают документацию :)

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

Спасибо да , у меня он есть в закладках !!!

В данный момент время уйдет на подготовку хоть чего то из доков 
примеров
чтения забытого 

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

Ссылка на сообщение
Поделиться на других сайтах
14 minutes ago, esergey said:

щас все в кучу соберу в голове и в доках

а вы рисуйте,
Mindmap-ы, попробуйте

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

https://habr.com/ru/company/developersoft/blog/291028/  

 

пробовал это как то на ревите или автодеске , точно не помню  - не зашло 
я по старинке сделаю 
создам HTML доку из документов , дам на нее ссылку и буду регулярно обновлять ее с 

добавленными материалами ... 

@Krusty   спс за добавления к теме !!!

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

Уважаемый All!
Возможно кто то поделится TeamCenter Services Guide для версии 11 или выше ...
10 я у меня есть , тк она есть в нете ...
спс заранее .

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

Уважаемый All !!!
Если кто то смогет соорудить хранилище для пользовательских данных - 
смогу его  оплатить  года на три вперед  - если нужно ... 
Иначе  - уважаемые пользователи  - кидайте документы прямо в тему  ...
В противном случае юзеры не смогут их потом скачать ...

И ещё просьба, админам форума  - если можно, плиз , дайте возможность изменять 

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

о чем пишут в теме ...

Ссылка на сообщение
Поделиться на других сайтах
  • 5 месяцев спустя...

немного для того , чтобы было понятно, что такое include код  при программировании для любого продукта, поддерживающего написание
доп модулей или плагиyов с использованием SDK или API 

https://habr.com/ru/post/710166/

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

 

Ссылка на сообщение
Поделиться на других сайтах
8 hours ago, esergey said:

немного для того , чтобы было понятно, что такое include код  при программировании для любого продукта, поддерживающего написание
доп модулей или плагиyов с использованием SDK или API 

https://habr.com/ru/post/710166/

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

 

1. документирование (текста, картинки и пр.)

2. проектирование каркаса будущей системы/софта, на уровне декларирования интерфейсов, абстрактных классов и пр.

3. единые и главное соблюдаемые стандарты по написанию кода

3. членение по ..... модулям например

Ссылка на сообщение
Поделиться на других сайтах
13.01.2023 в 22:54, Krusty сказал:

документирование


самая главная беда !!!
99 процентов кода в исходниках в нашем случае не документировано... 
открывая исходники , либо делая доку в кислороде ,- ничего не видим ...
ни defgroup , ни include, ни addtogroup, ни name ... 

Ссылка на сообщение
Поделиться на других сайтах
  • 3 месяца спустя...

Появилось, наконец то,  вроде как более менее что то вменяемое и понятное по сименсу от ланита !!!
http://siemensdocs.plmlanit.ru/
http://siemensdocs.plmlanit.ru/en-US/product/282219420/doc/PL20220523331910052.itk/html/itkusingfunctions

Изменено пользователем esergey
Ссылка на сообщение
Поделиться на других сайтах
  • 5 месяцев спустя...

Благодаря вопросу форумчан и полученным наводящим ссылкам,  наконец то появилась возможность попробовать что то "написать"
из кода для ТС ... 

Пока небольшое вступление , взято отсюда ...

 

Что такое настройка ITK (интегрированного набора инструментов)?

            Настройка Teamcenter ITK.. — это метод настройки на стороне сервера, который используется для разработки пакетных утилит,
            расширения пользовательских методов и разработки пользовательских обработчиков рабочих процессов приложения Teamcenter.

            ITK — это набор предопределенных функций C и C++, предоставляемых Siemens, которые можно использовать непосредственно для настройки поведения определенных функций.

            Если вы хотите настроить что-либо на стороне сервера Teamcenter, наиболее предпочтительным методом настройки является ITK .
            Поскольку он выполняется непосредственно на сервере, он обеспечивает более высокую производительность, чем другие методы настройки.

            Компания Siemens предоставила подробное справочное руководство по использованию различных API-интерфейсов ITK. Вы можете получить доступ к
           этому справочному руководству на официальном сайте Siemens. Чтобы начать настройку с помощью ITK API, вам необходимо иметь базовое представление
           о модели данных Teamcenter и BMIDE .

            В этой статье мы попытаемся понять различные аспекты настройки Teamcenter ITK. Так что не теряйте времени и начните копать все аспекты один за другим.
 

Какой язык программирования вам следует знать для настройки ITK?

        Если вы начинаете изучать настройку Teamcenter ITK, то первое, что вам должно прийти на ум, — это то, какой язык программирования вам следует знать,
        чтобы начать настройку с помощью ITK. Ответ очень простой. Если у вас есть базовое представление о языках программирования C и C++,
        вы можете легко начать настройку с помощью ITK.

        Если вы лучше контролируете C++, ваша жизнь станет проще, поскольку вы сможете использовать более сложные функции C++, которых нет в C.

        Совет: Тщательно изучите концепции строк, векторов и карт в C++, поскольку вы будете часто использовать эти концепции.

 

Какую IDE следует использовать для настройки ITK?

        Visual Studio — наиболее широко используемая среда IDE для настройки ITK разработчиками Teamcenter.

        Существует зависимость версии Visual Studio от версии Teamcenter. Проверьте официальный сайт GTAC на предмет совместимости с Visual Studio и версией Teamcenter.

        Вы также можете скомпилировать и запустить программу ITK с помощью командной строки.

 

Файлы каких форматов вы можете настроить или разработать с помощью ITK?

       Основными типами файлов , используемых в ITK,  являются *.exe и *.dll 

 

Выходной файл пакетной программы ITK :
            Исполняемый файл с расширением .exe является выходным файлом любой пакетной программы ITK. 
            Вам необходимо запустить этот исполняемый файл из командной строки. 
            Вы можете использовать Visual Studio для написания и компиляции пакетных программ ITK 
            или написать код с помощью любого текстового редактора и сгенерировать 
            исполняемый файл с помощью команд из командной строки.

Шаблон пакетной программы ITK Teamcenter :
            Ниже приведен общий шаблон каждой пакетной программы ITK.

 

                // ITK_user_main — это основная функция каждой программы.
                int ITK_user_main(int argc, char* argv[])
                {
                    int    status = ITK_ok;
                    /*Your Code*/
                    return status;
                }

 

на ниже приведенном ресурсе есть немало примеров написания пакетных программ для TC 
так же тут описана настройка Visual Studio для написания программ ITK TC 
           

 

Что вы можете настроить или разработать с помощью ITK?

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

            Пакетные утилиты:
            Пакетные утилиты — это внешний исполняемый файл, который можно использовать для обработки данных на стороне сервера.

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

           Пакетные утилиты запускаются с использованием командной строки, где у вас есть доступ к TC_ROOT и TC_DATA приложения Teamcenter.

           Пакетные утилиты могут запускаться с помощью планировщика периодически в соответствии с требованиями бизнес-процесса. 

            Вы можете разработать собственную пакетную утилиту, используя настройку ITK.

 

            Расширение пользовательского метода:
            Пользовательские методы можно зарегистрировать в существующих операциях с помощью настройки ITK.
            Вы можете переопределить существующие операции, такие как Pre-Action, Pre-Condition и Post-Action, в методах ITEM_Create и IMAN_save объекта.

            Pre-Action: 
            в Pre-Action необходимые действия выполняются перед выполнением операции.

            Предварительное условие: 
            в предварительном условии определенные условия проверяются перед выполнением операции.

            Post-Action: 
            в Post-Action необходимые действия выполняются после выполнения операции.

            Каждая операция имеет свой уникальный вариант использования. 
            Вы можете переопределить поведение этих методов в режиме OOTB с помощью настройки ITK.
            
            99 важных вопросов на собеседовании по настройке Teamcenter ITK по адресу
            
            Разработка собственного обработчика рабочего процесса:
            Рабочий процесс — это не что иное, как последовательность операций или поэтапных процедур, выполняемых в организации для утверждения и авторизации данных.

            Рабочий процесс является наиболее важной частью любого процесса PLM . В рабочем процессе Teamcenter различные задачи упорядочены вместе для отображения бизнес-процесса.                   Объекты передаются в рабочий процесс для утверждения и внесения изменений. В процессе рабочего процесса над целевыми объектами выполняются различные действия.

            В конструкторе рабочих процессов Teamcenter доступны два типа обработчиков: обработчик действий и обработчик правил.

            Обработчик действий: 
            обработчик действий выполняет необходимое действие с целевым вложением.

            Обработчик правил. 
            Обработчик правил проверяет объекты, доступные в целевом вложении.

            Компания Siemens предоставила обработчики OOTB, которые можно использовать для отображения бизнес-процесса. 
            Вы можете создать свой собственный обработчик, используя настройку ITK в соответствии с требованиями бизнес-процесса.
           
            
            Разработка пользовательского обработчика Teamcenter с использованием настройки ITK
            https://technolads.com/teamcenter-custom-handler-itk-customization/

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

            Мы можем разработать шаблон рабочего процесса, используя приложение дизайнера рабочих процессов программного обеспечения Teamcenter.

            Чтобы создать собственный шаблон рабочего процесса, вы должны быть администратором.   

            Обработчики рабочих процессов очень важны при разработке шаблона рабочего процесса. Обработчики используются для выполнения

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

            Компания Siemens предоставила несколько обработчиков по умолчанию, которые мы можем использовать при разработке шаблона рабочего процесса.

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

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

            конкретных требований бизнес-процессов в своих приложениях PLM . В этой статье мы собираемся изучить разработку пользовательских обработчиков с использованием настройки ITK.


            Какие типы обработчиков доступны в Teamcenter?
            В приложении дизайнера рабочих процессов Teamcenter доступны в основном два типа обработчиков. т.е. обработчик действий и обработчик правил.

            Обработчик действий

            Обработчик действий выполняет необходимые действия, такие как установка значения свойства целевого объекта, создание формы,

            прикрепление объектов к целевому объекту с требуемой связью и т. д.

            Примеры: EPM-создание-формы, EPM-понижение, EPM-присоединение-связанное- объекты, автоматическое назначение EPM

            Обработчик правил

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

            Например, пользователь должен заполнить необходимую информацию об атрибутах целевых объектов перед выполнением задачи или пользователь не должен

            удалять какие-либо объекты из целевых вложений.

            Примеры: статус-элемента-проверки EPM, свойства-объекта-проверки-EPM, объекты, связанные с-проверкой EPM.

            Базовый шаблон для разработки обработчика действий
            Ниже приведен базовый шаблон кода, который можно использовать для разработки обработчика настраиваемых действий. 
            EPM_register_action_handler  ITK API регистрирует ваш собственный обработчик.                     
            https://technolads.com/teamcenter-custom-handler-itk-customization/    

 

                    extern DLLAPI int customDLL_register_callbacks()
                    {
                        int ifail = ITK_ok;
                        ifail =  CUSTOM_register_exit("customDLL","USER_gs_shell_init_module", 
                                 (CUSTOM_EXIT_ftn_t),register_custom_code);
                        return ifail;
                    }

                    extern DLLAPI int register_custom_code(int* decision, va_list args)
                    {
                         int ifail = ITK_ok;
                         *decision = ALL_CUSTOMIZATIONS;
                        
                         ifail = EPM_register_action_handler("technolads","technical 
                                    website",technolads_custom_function);
                         return ifail;    
                    }

                    int technolads_custom_function(EPM_action_message_t message)
                    {
                          int ifail = ITK_ok;
                        
                           // Your required custom logic

                          return ifail;
                    } 

 

            Базовый шаблон для разработки обработчика правил
            Ниже приведен базовый шаблон кода ITK, который можно использовать для обработчика пользовательских правил разработки. 
            EPM_register_rule_handler   ITK API регистрирует ваш собственный обработчик.

            Тип возвращаемого значения обработчика правил — EPM_decision_t. Если условие удовлетворено, обработчик правила возвращает команду EPM_go,
            позволяя продолжить задачу. Если условие не удовлетворено, возвращается команда EPM_nogo.


 

                   extern DLLAPI int customDLL_register_callbacks()
                    {
                       int ifail = ITK_ok;
                       ifail = CUSTOM_register_exit("customDLL","USER_gs_shell_init_module", 
                               (CUSTOM_EXIT_ftn_t),register_custom_code);
                       
                       return ifail;
                    }

                    extern DLLAPI int register_custom_code(int* decision, va_list args)
                    {
                        int ifail = ITK_ok;
                        *decision = ALL_CUSTOMIZATIONS;
                        
                        ifail = EPM_register_rule_handler("technolads","technical website",
                                (EPM_rule_handler_t)technolads_custom_function);
                        
                        return ifail;
                        
                    }

                    EPM_decision_t technolads_custom_function(EPM_rule_message_t message)
                    {
                         EPM_decision_t decision = EPM_go;
                        
                         // Your required logic

                         return decision;
                    } 


 

            Как развернуть пользовательский обработчик в среде Teamcenter?
            Когда вы компилируете и создаете собственный код обработчика, генерируется одна dll
            Вам необходимо поместить эту dll в папку TC_ROOT\bin .

            Добавьте имя вашей пользовательской библиотеки DLL в настройку TC_customization_libraries .

            Перезапустите приложение Teamcenter. 
            Вы увидите пользовательский обработчик в разделе вложений обработчика 
            при редактировании шаблона рабочего процесса в дизайнере рабочего процесса.


 

   
Давайте рассмотрим вариант написания dll файла , следуя рекомендациям , описанным в следующем посте ...




 

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

рассмотрим пример написания dll или exe для TeamCenter в программе Visual Studio 2015 SP3 

 

скачать программу можно здесь https://visualstudio.microsoft.com/ru/vs/older-downloads/
авторизация есть по акку гитхаба или создайте свою учетную запись 
Перед установкой 15  студии установить сначала vc_redist.x64 
 

 

Студия.PNG

 

vs_redist.PNG

 

 

при написании расширения для TC использовалось руководство со следующей страницы 

 

TeamCenter_VS_template.rar

 

некоторые пункты, которые  хочется к этому добавить :

    1 Для проектов студии создайте папку не на системном диске , 
    чтобы в случае переустановки системы не потерять свои данные , проекты и настройки ...
    2 После создания проекта и перед заданием свойств его зайдите на вкладку Диспетчера свойств и удалите 
    версии x32 для обоих конфигураций , так как они вам не понадобятся , ввиду того что 11 версия ТС 64 битная 
так же с диспетчере конфигураций удалите версию платформы х86 

ДиспетчерСвойств.PNG

   3 Чтобы не прописывать макросы в каждом проекте вы можете задать их с помощью свойств одной из версии 

пользМакросы.PNG

 


после задания свойств для обоих конфигураций ( задавайте сразу для обоих конфигураций ) так проще и быстрее 
для конфигурации релиз удалить макрос _DEBUG 
и как вариант укажите папку для длл как TC_ROOT\bin
после добавления вашеи длл в TC_customization_libraries вам не придется каждый раз ее туда копировать , 
она будет там всегда после сборки проекта , как релизная версия так и отладочная 

собирём обе версии длл 


ДебагСборка.PNG

 

РелизСборка.PNG

 

после чего наша длл будет по указанному нами , или определенному по умолчанию для проекта, папке 

 

 

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

шаблон1.PNG


шаблон2.PNG


шаблон3.PNG

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

не нужно будет прописывать никаких настроек ....


шаблон4.PNG


ну вот пока что в принципе и все 
архив примера проекта во вложении 

 

TeamCenterTestProject.7z

 

Ссылки для изучения примеров кода ITK 

    Основным руководством для написания расширении TC является оф. документация 
    вот один из таких примеров доки, в которой подробнейшим образом с примерами кода описан процесс Server Customization
    
    http://siemensdocs.plmlanit.ru/en-US/product/282219420/doc/PL20220523331910052.itk/html/id724482
    здесь все расписано подробно 
    
    вот например пример написания Action handler
    http://siemensdocs.plmlanit.ru/en-US/product/282219420/doc/PL20220523331910052.itk/html/genid_action_handler_example_17_852
    
    или Sample BOM program
    http://siemensdocs.plmlanit.ru/en-US/product/282219420/doc/PL20220523331910052.itk/html/genid_methods_57_1955
    
    
    самым ранним вариантом является описание версии TC 12.4 
    есть возможность чтения сразу на русском языке 
    http://siemensdocs.plmlanit.ru/ru-RU/release/282219420/Teamcenter 12.4?releasesku=PL20200109161503476
    
    
    так же много примеров в блоге Teamcenter Open Gate (как ITK так и SOA)
    https://teamcenter-open-gate.blogspot.com/2016/12/code-with-action-handler-and-rule.html
    
    присутствует большая видео галерея ТС 
    http://siemensdocs.plmlanit.ru/ru-RU/product/282219420/doc/PL20200109161503476.tc_video_gallery/html/xid610910
    
    и версия справки Server Customization для ТС 12.4 
    http://siemensdocs.plmlanit.ru/ru-RU/product/282219420/doc/PL20200109161503476.itk/html/id724482
    
    так же много примеров на https://globalplm.com
    
    так же много примеров в папках программы , поиском по папке ключевые слова 
    samples или examples как на стороне сервера , так и на стороне клиента 

удачи в программировании TC расширений !!!

 

Изменено пользователем esergey
Ссылка на сообщение
Поделиться на других сайтах
  • 1 месяц спустя...

Всем добрый день. Есть ли у Teamcenter встроенные утилиты, которые, например, шерстят "Папку" с объектами внутри и удаляют все связи, а потом и удаляют сам объект

Или только писать собственную утилиту-плагин, которые по связям POM будет все это чистить?

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

Руководство по утилитам ТС 
Администрирование_Руководство_По_Утилитам_utilities_reference.pdf

может тут что то есть ...

utilities_reference.pdf

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

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

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

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

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

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

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

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

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

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

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




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