В версии 10.1.0 пример для С# есть, а вот в 10.1.5 я его не увидел.
В папке samples ещё две с примерами: HelloTeamcenter и VendorManagment.
Рассмотрим первый, который Hello.
У меня установлен Microsoft Visual C# 2010 Express. Открываем им проект. (Открывал в VS 2015. Тоже всё нормально.)
В проекте видим две папки: clientx и hello. Есть файл ReadMe.txt с некоторыми пояснениями по примеру.
В папке clientx находятся реализации интерфейсов фреймворка Teamcenter Services, необходимых для работы. Посмотрим, что там за классы.
5 классов начинающихся с "AppX".
- AppXCredentialManager
- AppXExceptionHandler
- AppXModelEventListener
- AppXPartialErrorListener
- AppXRequestListener
Класс Session. (В Java примере этот класс называется AppXSession)
В папке hello 4 класса консольного приложения: DataManagment, Hello, HomeFolder и Query.
Основной класс Hello, как можно догадаться.
В коде используется переменная serverHost. В этой переменной зашит адрес сервера приложений, где развёрнуты сервисы.
При запуске из консоли можно использовать аргумент -host для определения URL.
Основная часть программы выполняется в защищённом блоке, отлавливается SystemException.
Первым делом создаётся сессия с указанием URL приложения tc. Происходит вход пользователя. Далее идёт создание 3-х классов для разных задач.
- HomeFolder содержит метод listHomeFolder, который выводит содержимое домашней папки пользователя в консоль.
- Query содержит метод queryItems, который ищет сохранённый запрос (Saved Querie) "Item Name". Ищет объекты и выводит их UID'ы в консоль.
- DataManagment класс более сложный. Методы класса создают и удаляют объекты, пересматривают, а также создают формы.
После выполнения методов 3-х классов, происходит выход из сессии.
Первый раз вижу такую запись: using User = Teamcenter.Soa.Client.Model.Strong.User;
В Java такого не видел. Интересная конструкция.
Итак, класс Session. Начнём с него. Содержит два закрытых статических поля: Connection и AppXCredentialManager
При создании сессии создаётся менеджер мандатов? (CredentialManager)
Менеджер содержит имя пользователя, пароль, группу и роль. Также присутствует некий дескриминатор "SoaAppX".
Тип данного менеджера обозначен как SoaConstants.CLIENT_CREDENTIAL_TYPE_STD.
Далее определяется протокол, либо HTTP, либо TCCS. (В Java версии есть ещё IIOP)
Создаётся соединение и сохраняется в поле connection.
Далее идёт подключение обработчика к соединению и слушателей к менеджеру модели.
Разберём создание соединения.
new Connection(host, new System.Net.CookieCollection(), credentialManager, SoaConstant.REST, proto, false); где:
- host - URL tc
- коллекция куки
- менеджер мандатов
- связывание (binding)
- протокол
- использование сжатия
По сути нужен мандатный менеджер, протокол и URL.
В следующий раз создадим и разберём простенький примерчик.
Комментариев нет:
Отправить комментарий