Добрый день.

С чем это может быть связано, и как это поправить?

 

Версия Creatio - 7.16.1.2135.

Нравится

4 комментария
Лучший ответ

Вверху справа, под кнопкой Настройки, справа от Молнии выпадающее меню, нажмите там на галочку "Все" (находится внизу списка)

Добрый день.

 

Сделайте скриншот схемы объекта, чтобы было понятно, где Вы смотрите.

Вверху справа, под кнопкой Настройки, справа от Молнии выпадающее меню, нажмите там на галочку "Все" (находится внизу списка)

Литвинко Павел,

 спасибо!

Показать все комментарии

Добрый день.

Заметил особенность - оператор "включающего или" при  синхронизации действует схожим образом, как оператор "исключающего или".

Т. е. при вхождении в него 2 и более активированных ветвей,  он ожидает завершение первой пришедшей ветки. 

Ожидаемое поведение (цитата из Википедии):

  • Оператор включающего «или» (inclusive gateway) активирует одну или более исходящих ветвей, в случае, когда осуществляется ветвление. Если оператор используется для синхронизации, то он ожидает завершения выполнения всех активированных ветвей и активирует выходной поток.
  • Оператор исключающего «или», управляемый данными (англ. data-based exclusive gateway). Если оператор используется для ветвления, то поток управления направляется лишь по одной исходящей ветви. Если оператор используется для синхронизации, то он ожидает завершения выполнения одной входящей ветви и активирует выходной поток.

Ниже привожу пример БП.

Прикрепленные файлы

Нравится

Поделиться

0 комментариев
Показать все комментарии

Привет. 
Нудно создать редактируемый грида в DataView (по аналогии с "Расписанием" в активностях) из отдельной таблицы.
Насколько я понимаю все сводиться к созданию своего аналога GridData, возможно с логикой из схема "Деталь с редактируемым реестром". Но опять же интересуют детали.

Есть идеи или примеры кода по реализации?

Нравится

9 комментариев

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

Зверев Александр,

Создание редактируемой детали на странице не проблема, проблема доставание этого грида и помещение его в схему раздела (Section) по соседству с основным.

По соседству — это как? Он должен выводить с фильтром по записи в основном реестре? Так такое уже есть в любом разделе с редактируемой деталью, если в карточке слева открыть панель с вертикальным реестром. Например, раздел «Заказы»:

Зверев Александр,

по соседству с базовым DataView, а именно на новом(DataView), мной созданным.
Пример что имею ввиду под этим показано на скрине, это раздел Активности: 
 

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

Андреев Андрей Сергеевич,

Возможно, раздел "Планирование" похож на ваши задачи?

Андрей, таких не видел. Есть разные дополнения, добавляющие в разделы ещё одну кнопку, включающую режим с каким-то необычным видом, например, бесплатное «Канбан-доска» или два вида «Диаграммы Гантта» (но те платные). Установив, можно увидеть, как происходит добавление компонента и работа в нём с данными в таблице раздела.

Владимир Соколов пишет:
Возможно, раздел "Планирование" похож на ваши задачи?

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

Зверев Александр пишет:

Кстати, планируется в интерфейсе пользователя появление новых контролов на Angular? Или всё останется в конфигураторе? 

А есть какие-то конкретные пожелания по недостающим компонентам в мастере раздела или главное, чтобы новые и именно на Angular?

Показать все комментарии

Всем привет!

 

Продолжаем освещать вас жизненными примерами по разворачиванию сервиса Exchange Listener. Если вы пропустили прошлую публикацию, то рекомендуем также с ней ознакомиться - https://community.terrasoft.ru/articles/1-realnyy-primer-po-razvertyvaniyu-servisa-exchange-listener-s-ispolzovaniem-kubernetes.

 

На этот раз поделился подробной инструкцией с нами пользователь Еремеев Игорь Юрьевич (ссылка на профиль - https://community.terrasoft.ru/user/196420). Данная инструкция полезна тем, что в ней предоставлены наглядные скриншоты и решение по ошибкам, которые могут возникнуть в процессе развертывания.

(!) Данная инструкция процитирована и зафиксирована в таком виде, в каком нам передали с небольшими изменениями.

 

Задача поднять Кластер (Cluster) Kubernetes

 

Kubernetes — нишевое решение под конкретные проекты.

Kubernetes средство оркестрации (управления) контейнерами Docker. Это инструмент для их автоматического запуска, выделения ресурсов, контроля состояния, обновления.

 

Системные требования

Устанавливаем на виртуальных машинах:

  • мастер нода – 1 виртуальная машина - 2 cpu и 4 gb ram
  • рабочие ноды – 2 виртуальные машины - 2 cpu и 4 gb ram

 

Структура кластера

 

 

 

 

 

 

 

 

Примечание:

  • Виртуальная машина 1 Поколение;
  • Образ CentOS-7-x86_64-NetInstall-2003;
  • Пользователь root, 123456qQ;

Необходимые условия:

  • Установлена ВМ (прим. виртуальная машина) Centos 8;
  • Отключён Firewall, своппинг, SELinux;
  • Для дальнейших шагов необходим неограниченный доступ в Интернет.

Подготовим 1 образа, далее просто его скопируем под 3 ВМ (см инструкцию 0. Kubernetes  преднастройка VM CentOS)

 

Далее делаем на всех нодах

  1. Приведем имена в порядок
hostnamectl set-hostname master-node
hostnamectl set-hostname node-1
hostnamectl set-hostname node-2
  1. Пропишем внутренний DNS

задайте имя хоста системы и обновите DNS в файле / etc / hosts

cat <<EOF>> /etc/hosts
192.168.25.182 master-node
192.168.25.30 node-1 worker-node-1
192.168.25.170 node-2 worker-node-2
EOF
  1. Установите Docker-CE на CentOS 8
  • Сначала необходимо добавить репозиторий Docker.
  • Также установите пакет containerd.io , который доступен в качестве демона, который управляет полным жизненным циклом контейнера его хост-системы, от передачи и хранения образа до выполнения и контроля контейнера, до низкоуровневого хранилища, сетевых вложений и далее.
  • Команды под учетной записью root запускаю сразу весь пакет,  Ставим на всех ВМ
dnf config-manager --add-repo=https://download.docker.com/linux/centos/docker-ce.repo
dnf install https://download.docker.com/linux/centos/7/x86_64/stable/Packages/containerd.io-1.2.6-3.3.el7.x86_64.rpm -y
dnf install docker-ce -y
systemctl enable docker
systemctl start docker

4. Установите Kubernetes (Kubeadm)

4.1. Необходимо добавить репозитории Kubernetes вручную

cat <<EOF > /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg
EOF

 

4.2. Установить пакет kubeadm

 

dnf install kubeadm -y
systemctl enable kubelet
systemctl start kubelet 

 

Все что выше делаем на всех ВМ.

 

5. на мастере выполняем команды:

5.1.

 

kubeadm init --pod-network-cidr=10.244.0.0/16

 

(!) Важно сохраняем результат

 

kubeadm join 192.168.25.182:6443 --token z86i8r.u6mmy6adnkmp4iad \    --discovery-token-ca-cert-hash sha256:8104a99fe76b167b65d5d450467ec14fd60b973db9f97a40e81c90cc7ade73b8

 

если потеряли токен то можно запросить

 

kubeadm token list
https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/create-cluster-kubeadm/ 5.2
mkdir -p $HOME/.kube
cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
chown $(id -u):$(id -g) $HOME/.kube/config

 

5.3. Устанавливаем Flannel:
 

kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/k8s-manifests/kube-flannel-rbac.yml

 

 

5.4. . Вводим команду для возможности запуска контейнеров на текущей машине:

 

kubectl taint nodes --all node-role.kubernetes.io/master-

 

Делаем reboot – много всего поставлено

 

 6. Проверяю состояние подов:

 

kubectl -n kube-system get pods

Все работает

 

7. Устанавливаем Helm:

wget https://get.helm.sh/helm-v3.3.0-rc.1-linux-amd64.tar.gz
tar xzvf helm-v3.3.0-rc.1-linux-amd64.tar.gz
mv linux-amd64/helm /usr/local/bin/helm

 

И подключаем репозиторий (возьмем самый популярный) и делаем update

 

helm repo add stable https://kubernetes-charts.storage.googleapis.com/
 
helm repo update

 

Делаем бэкап своих виртуальных машин.

Результат у нас создан кластер из 1 ВМ, созданы ВМ на которой установлен только Докер.

 

8. Устанавливаем Redis:

 

helm repo update
 
helm install --namespace default --set usePassword=false --set=slave.persistence.enabled=false --set master.persistence.enabled=false --set cluster.enabled=false redis bitnami/redis

 

используем --namespace default

 

Получили:

 

To connect to your Redis server:

1. Run a Redis pod that you can use as a client:

   kubectl run --namespace default redis-client --rm --tty -i --restart='Never' \

   --image docker.io/bitnami/redis:5.0.7-debian-10-r32 -- bash

2. Connect using the Redis CLI:

   redis-cli -h redis-master

To connect to your database from outside the cluster execute the following commands:

    kubectl port-forward --namespace default svc/redis-master 6379:6379 &

    redis-cli -h 127.0.0.1 -p 6379

 

Результат.

 

 

 

 

9. Устанавливаем Exchange Listener.

 

Нам потребуется  ip-адрес redis-master: XX.XXX.233.155 (см. скриншоты)

 

Качаем последний актуальный дистрибутив (на данный момент 0.6.9):

wget http://ftp.bpmonline.com/support/downloads/Exchangelistener/exchangelistener-0.6.9.tgz
 
helm install --set env.host=XX.XXX.233.155 --set service.type=NodePort --set service.nodePort=30001 --set apiVersion=apps/v1 --namespace default elistener exchangelistener-0.6.9.tgz

 

 

--set env.host - указать IP мастер Redis

default - namespace, который использовался в пункте 11.

elistener - произвольное название нашего сервиса.

exchangelistener-0.6.9.tgz - путь к скачанному дистрибутиву.

Порт не обязательно должен быть 30001. Допустимый диапазон 30000-32767.

На этом минимальная настройка сервиса на стороне сервера завершена.

 

10. Проверяем поды сервиса

kubectl get pods

 

Проверяем доступность сервиса Exchange Listener.

telnet: -

telnet 192.168.25.182 30001

 

Где:

192.168.25.182 - ip-адрес нашей linux-машины,

30001 - порт сервиса Exchange Listener, выбранный при установке на 12 шаге.

Если соединение проходит - открываем веб-браузер (желательно сразу на машине с Creatio) и вводим в адресную строку http://192.168.25.182:30001/api/listeners/status

 

 

Включим в кластер еще 2 ВМ

 

(команду kubeadm init --pod-network-cidr=10.244.0.0/16 не вводим)

- Node-1

Вводим ключ-команду

 

kubeadm join 192.168.25.182:6443 --token z86i8r.u6mmy6adnkmp4iad     --discovery-token-ca-cert-hash sha256:8104a99fe76b167b65d5d450467ec14fd60b973db9f97a40e81c90cc7ade73b8

 

если потеряли токен то можно запросить

 

kubeadm token list

 

- Проверяем поды на master-машине (их должно стать больше):

 

kubectl -n kube-system get pods

 

- Node-2

Вводим ключ-команду

kubeadm join 192.168.25.182:6443 --token z86i8r.u6mmy6adnkmp4iad     --discovery-token-ca-cert-hash sha256:8104a99fe76b167b65d5d450467ec14fd60b973db9f97a40e81c90cc7ade73b8

 

- На мастере проверяем

 

kubectl get node

 

kubectl get svc

 

 

kubectl get pods

 

 

Какие команды могут помочь при решении проблем:

 

Почему-то не было доступа из внешнего IP к порту 30001, где развернут сервис. и были выполнены следующие команды:

ufw allow 30001 - команда конкретно firewall ubuntu. К другим дистрибутивам вероятнее всего не подойдет (возможно только если к Mint, т.к. ядро тоже самое). 

iptables -I INPUT -p tcp --dport 30001 -j ACCEPT - уже более распространенный вариант. 

 

Команды для просмотра логов. Примеры:

 

kubectl logs POD_NAME

kubectl logs REDIS_NAME-api-0

 

kubectl logs  elistener-api-0

kubectl logs  elistener-api-1

kubectl logs redis-master-0

 

log4net:ERROR Could not create Appender [ExchangeListenerGelfAmqpAppender] of type [Gelf4Net.Appender.GelfAmqpAppender, Gelf4Net.AmqpAppender]. Reported error follows.
RabbitMQ.Client.Exceptions.BrokerUnreachableException: None of the specified endpoints were reachable ---> RabbitMQ.Client.Exceptions.ConnectFailureException: Connection failed --->

Означает, что он не может Rabbit не может достучаться до Graylog (мониторинг логов). В данном случае у вас не настроен Graylog. Но это не должно блокировать работу. Можно ориентировать на вот это Gelf4Net (он пишет в Rabbit).

Но ниже по логу должно быть видно следующее:
Hosting environment: Production Content root path: /app Now listening on:
http://[::]:80 Application started. Press Ctrl+C to shut down.

Если это так, то значить сервис запущен и теперь вам нужно проверить доступность и статус сервиса.
А после провести настройку на стороне Creatio.

Нравится

Поделиться

1 комментарий

Теперь k8s наша общая боль) 

Показать все комментарии