Расширенные атрибуты
Подключение PBC Расширенные атрибуты

Подключение PBC Расширенные атрибуты

Подключение библиотечного веб-компонента qdattui-lib в UI вашего PBC

  1. В своем проекте выполнить команду npm install @diasoft/qdattui-lib

  2. В angular.json, в разделе configurations.production указать откуда брать файлы библиотеки и куда их переместить

    "projects": {
        "<project_name>": {
        ...
        "architect": {
                "build": {
                ...
                  "options": {
                  ...
                    "assets": [
                      ...
                        {
                          "glob": "**/*",
                          "input": "node_modules/@diasoft/qdattui-lib",
                          "output": "assets/qdatt"
                        }
                      ],
  1. Библиотека предоставляет 4 компонента. 3 компонента являются cправочниками, которые необходимо добавить в menu.ru/en.json своего главного меню. 4-й компонент - Схема атрибутов
  • Маски атрибутов (route: attribute-mask)
  • Типы данных атрибутов (route: attribute-data)
  • Преднастроенные атрибуты (route: preconfigured-attribute) и компонент, который в новой вкладке будет работать с конкретной бизнес сущностью
  • Схема атрибутов (route: attribute-diagram)

3.1 Подключение справочников. Для подключения интерфейсов необходимо использовать доступные возможности компонента q-web-component, в частности передачу настроек для backend через атрибут endpoint.

3.2 В .html указать динамическое и статическое свойства

<q-web-component
  [endpoint]="endpoint"
  bundleUrl="/api/serviceName/componentName/assets/qdatt/main.js"
></q-web-component>
  • serviceName - UI-сервис прикладного PBC, куда встраиваете
  • componentName - ваш компонент, куда встраиваете

3.3 В .ts определить интерфейс

endpoint!: QEndpoint;
 
this.endpoint = {
      service: 'qdattui',
      component: 'qdatt',
      route: 'preconfigured-attribute' или 'attribute-data' или 'attribute-mask',
      caption: '',
      properties: {
        qdattConfig: {
          bundle: { service: serviceName, component: componentName },
          service: 'qdattattribute/qdattattribute', // указывается свой сервис. Параметр для перенаправления запросов к бэкенду
        }
      },
    };
  1. Схема атрибутов. Пример кода.
if (tab == 'attribute-diagram') {
      title = 'Схема атрибутов № ';
      this.rootEvents.openNewTab({
        caption: objectID
          ? `${title} ${objectID}`
          : 'Схема атрибутов',
        url: `${getTabBaseUrl()}/${tab}/?objectID=${objectID}&code=${code}&localName=${localName}&description=${description}&status=${status}`,
      });
      return;
    }

4.1 Описание схемы

  • getTabBaseUrl() возвращает interface/serviceUI/componentUI
  • objectID - ID БО
  • code - sysname БО
  • localName - наименование БО
  • description - описание БО
  • status - статус, 1- действует, 2- не действует

Подключение зависимости qdattattribute в бэкенд вашего PBC

⚠️

Для подключения необходимо использовать версию архетипа 3.10.08-25060602 и выше.

В /service/pom.xml вашего PBC указать зависимость qdattattribute в разделе dependencies

    <dependencies>
        <dependency>
            <groupId>ru.diasoft.micro</groupId>
            <artifactId>qdattattribute</artifactId>
            <version>S-Q.UP-00002-25030307</version>
            <classifier>archlib</classifier>
        </dependency>
    </dependencies>
 

В /database/pom.xml вашего PBC указать зависимость qdattattribute-db в разделе plugin

            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-dependency-plugin</artifactId>
                <executions>
                    <execution>
                        <id>unpack</id>
                        <phase>generate-resources</phase>
                        <goals>
                            <goal>unpack</goal>
                        </goals>
                        <configuration>
                            <artifactItems>
                                <artifactItem>
                                    <groupId>ru.diasoft.micro</groupId>
                                    <artifactId>qdattattribute-db</artifactId>
                                    <version>S-Q.UP-00002-25030307</version>
                                    <type>jar</type>
                                    <overWrite>false</overWrite>
                                    <outputDirectory>${project.build.directory}/classes/qdattattribute</outputDirectory>
                                    <includes>**/**.xml,**/**.sql</includes>
                                    <excludes>META-INF/, version/</excludes>
                                </artifactItem>
                            </artifactItems>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
💡

После установки сервиса на ваш стенд в сваггере добавятся API из библиотечного PBC.