мета-данные страницы
  •  
page desc
Virtual Treeview Virtual Treeview Компонент отображения деревьев и списков: Virtual Treeview. Приёмы использования в проектах. Содержание * * * * * * * * *
Речевая аналитика Речевая аналитика Получение возможных оплат для химчистки Тип запроса: PUT | Адрес: (пока тестовый) | Формат запроса: multipart/form-data - пришлось выбрать данный формат запроса из-за того что передавать файл и параметры в одном request body можно только через данный формат, поэтому параметры отправляются через форму…
Принципы работы с шрифтами в VCL Принципы работы с шрифтами в VCL Для стандартизации размеров и названий шрифтов внес ряд изменений в базовые классы. Основной шрифт приложения теперь задается в ImgDM.pas (модуль выбран из-за того, что он использует Forms и создается раньше всех):
Перевод в delphi Перевод в delphi С текущего момента эталонным языком в программе является Английский. По этому все, что будет отображено клиенту должно быть на английском (текст на формах, сообщения,
Команды монитора цеха Команды монитора цеха ---------- Авторизация Команда: Login Общая команда авторизации. Используются данные (логин/пароль) пользователя Агбис.Химчистка
Рекомендательная система Рекомендательная система ---------- О методах рекомендаций На данный момент рекомендательная система способна формировать и выдавать рекомендации по 3 наиболее популярным методам:
Билд "сабов" Агента Билд "сабов" Агента Связанные с Агентом дополнительные приложения AgbisAgentCheckFreeze, AgbisAgentTasks, AgbisAgentAsterisk находятся в проекте: E:\_Projects\Agbis.dxe\Tasks\AgbisAgentSub.dproj
Кодировки и наборы символов Кодировки и наборы символов Начать думаю стоит с того времени когда компьютеризация еще не была так сильно развита и только набирала обороты. Собственно тогда то и возникла потребность в кодировке текста. В каком то же виде нужно было хранить буквы, а компьютер только единицы и нули понимает. Так была разработана одно-байтовая кодировка…
Установка Delphi и компонентов для десктопных решений Установка Delphi и компонентов для десктопных решений Установка Delphi , настройка компонентов и тюнинг, устранение зависимостей компонентов при установке, раньше были сродни искусству. Иногда это походило на какое-то шаманство и не хватало только танцев с бубнами, чтобы это все заработало.…
Ссылка на заказ клиента Ссылка на заказ клиента У апи используется единая точка входа. Все команды работают через одну функцию с разными параметрами В связи с моральным устареванием старой ссылки на заказ, было принято решение обновить и изменить концептуально.
Команда SaveFullOrder Команда SaveFullOrder Команда SaveFullOrder позволяет создать новый заказ... ---------- Формат запроса: SaveFullOrder={"dor_id":"0","price_id":"6","sclad_id":"3","sclad_to":"3","is_not_confirmed":"1","waiting_confirm":"0","status_deliver":"0","kredit":"18824","comments":[{"description":"55"}],"servs":[{"dos_id":"1","parent_id":"0","tovar_id":"1556","count":"2","wardrobe_id":"0","kfx":"1","action_him_id":"0"}],"plans":[{"type":"1","address":"Улица пушкина 1 1","dttm":"18.01.2023 03:00:00",…
Сборка проекта на iOS со встроенным Extension Сборка проекта на iOS со встроенным Extension Основной сценарий 1) На рабочем столе MacOS создается папка с названием проекта (например, BrendAPP) 2) Запускаем xCode и создаем новый проект
Получение параметров Тинькофф. GetTinkoffQR Получение параметров Тинькофф. GetTinkoffQR Получения признака и параметров, что Тинькофф QR активирован. Для чистомата Тип запроса: GET Формат запроса:
Основные термины Основные термины Константы - данные, значения которых не изменяются в программе. Переменные - данные, могущие изменяться при выполнении программы.
Обслуживание и сбор статистики базы данных Обслуживание и сбор статистики базы данных Основные моменты, которые будут освещены в этой статье, это: * Database Monitoring; * Backup/Restore; * Database validation;
Модуль TmpQuery Модуль TmpQuery В TmpQuery.pas прописаны ф-ии для доступа к БД и работы с ней. CreateTempQuery Ф-ия создает TagbDataset с указанным SQL запросом и заполненными параметрами, если они есть и
Компоненты agbRadioButton's Компоненты agbRadioButton's Компоненты используются используемые как правило в группе взаимосвязанных индикаторов, из которых обычно может быть выбран только один. Они используются для выбора одной из нескольких взаимоисключающих альтернатив.
Компоненты agbCheckBox's Компоненты agbCheckBox's Компоненты используются для обозначения включения или отключения какой либо опции. Действие одного флажка, на форме, происходит независимо от других флажков, но при необходимости можно запрограммировать такие действия.
Компоненты agbButton's Компоненты agbButton's Компоненты представляющие собой стандартную кнопку, инициирующее какое-то действие. agbButton В отличии от базового TsButton из пакета AlphaControl, имеется возможности:
Транзакции Транзакции Что такое транзакции? Транзакция — это группа последовательных операций с базой данных, которая представляет собой логическую единицу работы с данными. Транзакция может быть выполнена либо целиком и успешно, соблюдая целостность данных и независимо от параллельно идущих других транзакций, либо не выполнена вообще, и тогда она не должна произвести никакого эффекта. Транзакции обрабатываются транзакционными системами, в процессе работы которых создаётся история транзакций.…
Строковые типы в Delphi. Строковые типы в Delphi. Строка представляет собой последовательность символов. Delphi поддерживает следующие предопределенные типы строк:
Документирование API Документирование API Введение Любые команды API должны быть задокументированы. Основные документы: * API Личного кабинета - Команды API, которые используются для Личного кабинета, предоставляя информацию по сессии авторизованного клиента.
Статистика исключений, беспощадная ты су... или особенности программистской охоты на ошибки Статистика исключений, беспощадная ты су... или особенности программистской охоты на ошибки Всё нижеописанное актуально на момент написания статьи, т.к. аффтар не теряет надежды, что в дальнейшем это всё будет поудобнее и более организованно.
Используемые нами контролы и подходы Используемые нами контролы и подходы В качестве основных контролов мы используем набор AlphaControls - Сайт с компонентами. В дизайн-тайме они располагаются на вкладках AlphaStandard, AlphaAdditional, AlphaDBControls и AlphaTools, и их классы начинаются с префикса Ts
Оплаты ПСБ Оплаты ПСБ ---------- Описание команд Получение ссылки на оплаты (Для личного кабинета, МП лк) Тип запроса: POST Адрес: https://himinfo.ru/him_general_php/api/payment_systems/Psb/PsbPay.php
Общее описание оплат Общее описание оплат ---------- Список систем оплат В команды оплат обязательно передается payment_system_id - ID платежной системы. Принимает значения:
Оплаты Тинькофф/Тинькофф QR Оплаты Тинькофф/Тинькофф QR Описание протокола api тинькоффа Описание ошибок api тинькоффа ---------- Содержание ---------- Описание команд
Команды онлайн оплаты Команды онлайн оплаты Данные оплаты поддерживают, платежную веб страницу, оплату QR кодом через систему быстрых платежей. Работа с оплатами реализована через общие скрипты разделенные по типу оплаты, и при работе на прямую со криптами конкретной платежной системы.
Clumsy - программа для эмуляции "плохой" сети Clumsy - программа для эмуляции "плохой" сети Симуляция сетевых сбоев для распределенных систем является одним из необходимых видов тестирования ПО. Не всегда есть возможность использовать аппартные решения, поэтому на помощь приходят программы - эмуляторы. Для Linux и Unix систем давно существует несколько таких программ. Для Windows есть программа…
Безопасность Api Безопасность Api Можно ознакомиться со статьей на Хабре и ---------- Введение Все больше сервисов предоставляют свои возможности с помощью
AgentNG автоматическое тестирование AgentNG автоматическое тестирование Запуск и просмотр результатов автоматического тестирования Для запуска автоматического тестирование AgentNG ему необходимо послать команду:
Тестирование отчета в разных условиях Тестирование отчета в разных условиях Для того чтобы проверить отчёт нужно провести следующие проверки * Успешность построения * Правильность построения данных
Компоненты с выпадающими списками Компоненты с выпадающими списками Компоненты предназначенные для выбора значения из подготовленного списка. agbKeyEdit [&400] Однострочное текстовое поле, служащее для ввода данных пользователем.
Справочник конфликтных клиентов Справочник конфликтных клиентов Для информирования химчисток разработан общий справочник номеров телефонов конфликтных клиентов. Справочник содержит номер телефона и комментарии к данному телефону.
Создание заказа через АГБИС ПМП Создание заказа через АГБИС ПМП В мобильных приложениях, основанных на базе АГБИС ПМП есть один способ именно СОЗДАНИЯ заказа. Для оформления нового заказа в мобильном приложении нужно перейти в прайс-лист, добавить услуги в корзину, далее настроить выезд курьера и после нажатия на кнопку…
Команды для ПМП и ПСК Команды для ПМП и ПСК * ПМП. Создание заказа. * ПМП. Создание заказа. V2
Шаблоны проектирования php(Статья в разработке) Шаблоны проектирования php(Статья в разработке) Шаблоны проектирования позволяют улучшить читаемость кода и стандартизировать подходы к разработке. Статья будет разделена на 2 главы:
Потоки, анонимные потоки, OmniThreadLibrary Потоки, анонимные потоки, OmniThreadLibrary Потоки. Процесс — это исполнение программы. Операционная система использует процессы для разделения исполняемых приложений.
Работа с базой данных в PHP Работа с базой данных в PHP Неотъемленной частью разработки на пхп является работа с базой данных. Есть разные подходы в зависимости от проекта.
PhpStorm PhpStorm PhpStorm — коммерческая кросс-платформенная интегрированная среда разработки, разрабатывается компанией JetBrains на основе платформы IntelliJ IDEA. PhpStorm представляет собой интеллектуальный редактор для PHP,
Дашборды Дашборды В будущем здесь будет нормальная документация URL: Авторизация(auth) Вывод текущей итерации выгрузки с 2018 года(get_stage_first_loading)
Создание/Изменения таблиц, репликационная структура Создание/Изменения таблиц, репликационная структура Создание новых таблиц Для создания новых таблиц обычно используем IBE. Можно написать скрипт создания самому, можно воспользоваться возможностями интерфейса (ПКМ на строке Tables, и затем New Table, или комбинация клавиш ctrl+N):
Компоненты agbEdit's Компоненты agbEdit's Компоненты предназначенные для ввода данных на форме. agbEdit [&400] Однострочное текстовое поле, служащее для ввода данных пользователем.
Создание меню Создание меню В этой статье разберём то как создаются разделы меню в модуле Агбис Химчистка. Общие правила * Необходимо правильно выбрать место для добавление нового раздела меню, по планируемому наполнению.
Чистоматы. Инструкция по сборке и установке ПО. Чистоматы. Инструкция по сборке и установке ПО. Система сборки deb пакетов развернута на TestStand (192.168.92.3). Скрипты сборки и распространения находятся в ~/PROD/BuildStation/. Все действия выполняются на TestStand.
Интерфейсы. Интерфейсы. Введение. Не смотря на то, что понятие интерфейса обычно не рассматривается в основных концепциях ООП, «интерфейс» является важной программной/синтаксической структурой и наряду с абстракцией служит для упрощения проектирования, написания, сопровождения информационных систем.…
Трехзвенная архитектура приложений. Трехзвенная архитектура приложений. Трехзвенная (трехуровневая) архитектура приложений - это модульная клиент-серверная архитектура, которая состоит из
Компоненты agbLabel's Компоненты agbLabel's Компоненты предназначен для отображения, как правило статического текста, то есть надписей форме, которые используются как метки для пользователя во времени работы.
Особенности работы смс-рассылки Особенности работы смс-рассылки Здесь будут описаны некоторые особенности работы Выборка клиентов при sendAllMsg Выборка клиентов основана на таблице _users_new_msg. В зависимости от выбранного канала, необходимо учитывать разные поля. Для sms это date_added_sms и date_send_sms.
Стандартизация логов Стандартизация логов Уровни логирования * DEBUG — запись масштабных переходов состояний, например, обращение к базе данных, старт/пауза сервиса, успешная обработка записи, текст SQL запроса и пр. (расширенный лог).
Отправка сообщений Для понимания последовательности действий при отправке и получении сообщений используется алгоритм. У каждого провайдера есть свои особенности, но приблизительный алгоритм одинаковый.
Использование API команд Использование API команд ---------- Введение Команды выполняются в зависимости от поддерживаемого методом командой GET или POST. Ответ на запрос приходит в
Кратко о б24 * * * * * * * * ---------- Кратко о б24 Окно условно можно разделить на три области: * Список ссылок на разные информационные блоки *
Agb controls Agb controls * Label - Компоненты предназначен для отображения, как правило статического текста, то есть надписей форме, которые используются как метки для пользователя во времени работы.
Создание procedures, triggers, views в Firebird Создание procedures, triggers, views в Firebird Далее для простоты повествования: * Procedures - процедуры * Triggers - триггеры * Views - представления В этой документации рассмотрим как создавать процедуры, триггеры и представления в Firebird. Начнём с общей информации.
Uni_Form Uni_Form Наш основной класс, который мы используем в качестве шаблона для различных карточек и документов 1 Создание формы Чтобы создать новый модуль на базе TUniForm, необходимо в Delphi выбрать пункт меню File / New / Other, в окне найти Inheritable Items и выбрать UniForm.
Принципы работы с базой данных Принципы работы с базой данных В данной статье будут разобраны модули Init, DM и TmpQuery, с точки зрения работы с базой данных. Выбор базы данных
Firebird Firebird Приложения АГБИС для своей работы используют базы данных под упралением Firebird. Для подключения к базе данных используются сервер Firebird и клиент Firebird.
Обновление программ Обновление программ При выходе новой версии запускается процесс обновления программных модулей на серверах и приемных пунктах. Обновление выполняется в три этапа:
Идемпотентность API Идемпотентность API Интересная статья c примером от Яндекс
Создание классов Создание классов Класс - логическая абстракция, которая описывает некоторый объект. Объект физически занимает место в ОП и производит действия над своими данными (полями), используя собственные методы - процедуры и функции.
UniLines UniLines TUniLinesFrame (размещён в модуле UniLines.pas, далее будем называть его просто UniLines) - пожалуй, можно считать основным фреймом в нашей программе.
Дизайн справочников и документов Дизайн справочников и документов Дизайн очень важный критерий для программы, чем он понятней, удобней и лаконичней, тем пользователям будет удобней пользоваться продуктом. В этой статье представлены критерии, примеры и советы по дизайну справочников и документов.
Юниты для работы с кассовым оборудованием Юниты для работы с кассовым оборудованием Все юниты по работе с кассовым оборудованием (фискальными регистраторами - далее ФР, POS-терминалами) находится в папке
Юниты по работе с оборудованием Юниты по работе с оборудованием Кассовое оборудование
Описание работы с Яндекс Доставка Описание работы с Яндекс Доставка Модуль BusinessYandexDelivery.pas предназначен для автоматического создания заявок в Яндекс Доставке. Для работы в нем необходимо получить и настроить
Описание работы с Яндекс Геокодер Описание работы с Яндекс Геокодер Вариант 1 В общем модуле BusinessYandexDelivery.pas есть публичная функция GeoPosYandex. function GeoPosYandex(adr: string; const GeoApiKey: string): TStringList;
Структура скриптов Структура скриптов Отправка сообщений клиенту разделена на два этапа: * Непосредственная передача данных агрегатору - SendAllMsg.php * Запрос статусов отправленных сообщений -
Структура базы данных sms_workflow Структура базы данных sms_workflow * * * * * * * * * ---------- База данных создана в MySQL. Для работы сервиса создано две БД, одна для хранения основных данных
sms_workflow SmsWorkflow - это сервис по отправке сообщений. Сервис находится на нашем удаленном сервере. * Структура БД * Структура скриптов * Интеграции с новыми агрегаторами * Примерный алгоритм работы скриптов * Особенности работы проекта
Общая информация Общая информация Агбис.Агент умеет выполнять 3 вида скриптов, мы их называем Random, DifOrder и SMS. Скрипт должен представлять собой файл вида .script, находящийся в той же папке, что и исполняемый файл Агбис.Агента.
Тестирование документов и справочников Тестирование документов и справочников 1. Общее тестирование Здесь мы рассмотрим общие вещи основного функционала, необходимого для корректной работы.
FSAdmin FSAdmin В качестве фреймворка использовался Laravel. Фронт был реализован на blade шаблонах. Логика работы разделена на 3 условных блока «AdminAgbis»,
Мастер-классы по Delphi Мастер-классы по Delphi Здесь публикуем видео с разборов как правильно использовать те или иные механизмы в Delphi касательно наших подходов.
TNamedListJson TNamedListJson TNamedListJson - предназначен для хранения списка «ключ-значение». В роли значения может выступать переменная типа variant или объект TNamedListJson
Классы и функции по категориям Классы и функции по категориям Работа с БД Работа файлами Работа с датой/временем Работа JSON * TNamedListJson - unit AgbJson (..\ForAll\AgbJson.pas) Класс для хранения многомерной структуры данных
Использование DDDebug Использование DDDebug ---------- Описание DDDebug - это набор инструментов отладки, который содержит несколько модулей: * профилировщик памяти;
Использование FastMM5 Использование FastMM5 FastMM5 используется для новой версии Delphi (с поддержкой FMX). Если требуется осуществить поиск утечек памяти для старой версии Delphi XE нужно использовать
Использование FastMM4 Использование FastMM4 FastMM4 используется для старой версии Delphi XE. Если требуется осуществить поиск утечек памяти для новой версии Delphi (с поддержкой FMX) нужно использовать
Поиск и устранение утечек памяти в Delphi Поиск и устранение утечек памяти в Delphi * Использование FastMM4 * Использование FastMM5 * Использование DDDebug Мастеркласс по поиску утечек памяти с помощью FastMM и DDDebug:
Оформление проекта PHP Оформление проекта PHP Зачем статья? Для стандартизации оформления проектов и для облегчения порога вхождения для новых сотрудников. Статья будет постепенно пополняться свежей информацией
Лайфхаки в АП используемые для отладки Лайфхаки в АП используемые для отладки * CTRL+V - эмуляция ввода штрихкода, посылает событие штрихкода * CTRL+W - WHAT? где мы? отображает в заголовке, текущий таск и активный фрейм, упрощает поиск формочек
Вспомогательные команды для AgentNG Вспомогательные команды для AgentNG * DebugLog?enable=1 - статус и включение/выключение отладочных логов, * AutoUpdate - запуск автообновления * BugReport - показ списка файлов багрепортов за 4 дня, ?all=1 все имеющиеся файлы, и их скачивание, требует авторизации agbis временным ключем
Файлы проектов Файлы проектов Проекты Delphi состоят из множества файлов разных типов, основные: pas - исходный код Pascal dfm - файл с описанием формы dcu - откомпилированный модуль
Модуль для обновлений UpdateMe Модуль для обновлений UpdateMe Путь до последней версии модуля тут. Данный модуль подписан нашим сертификатом Agbis что бы на него не ругалась Windows
Многопоточность Многопоточность Современные программы не могут работать в одном потоке. Один поток в случае с Delphi – это главный поток программы, который обрабатывает все взаимодействие с пользователем, отрисовку
Коды ответов агента Коды ответов агента Формат кодов ответов Агента. где error - состояние обработки запроса агентом. Принимает значения: * 0 - Успешный ответ;
Правильные коммиты во все ветки разработки в Мету. Правильные коммиты во все ветки разработки в Мету. Настройка подключений В первую очередь нужно настроить мету. Для этого нужно правильно указать пути к базовым базам всех веток.
Зачем параметрам нужен const Зачем параметрам нужен const отсутствие const приводит к * Увеличению генерируемого ASM кода: скрыто генерируется защитный блок try finally. На небольших процедурах количество паразитного кода может легко превзойти количество полезного.
JSONHelpers.pas или "Разделка JSON, без брызг и боли..." JSONHelpers.pas или "Разделка JSON, без брызг и боли..." Как пилит JSON мальчик (реальный пример!) procedure THimstat.DoAddScriptsForRepl(json: string; out Str: String); var nSessionID: string; json_o: TJSONObject; json_SessionIDP: TJSONPair; begin try json_o := TJSONObject.ParseJSONValue(json) as TJSONObject; if not Assigned(json_o) then begin Str := 'Не Json строка!'; Exit; end; json_SessionIDP := json_o.Get('SessionID'); if json_SessionIDP = n…
Страничка в разработке Страничка в разработке Но это не точно... JSONHelpers.pas или "Разделка JSON, без брызг и боли..." Зачем параметрам нужен const?
Вычитка кода (Code Review) - как сделать Вычитка кода (Code Review) - как сделать 1. Оформление кода * Отступы * Пробелы * Читабельность * Понятное название ф-ий и переменных 2. Странности в коде
Работа с командами для АМО Работа с командами для АМО ---------- Оглавление ---------- Авторизация. Login Команда: …/api/?Login Общая команда авторизации пользователем Агбис химчистки (в программе Агбис химчистка, меню «Справочники»-«Пользователи»).
Все виды настроек Все виды настроек Глобальные настройки Глобальные настройки собираются автоматически в реальном времени. Для того чтобы добавить глобальную настройку
Работа в канбане и Б24 Работа в канбане и Б24 Канбан - это инструмент для организации работы, распределения и контроля выполнения задач в рамках команды. Просмотреть все доступные канбаны можно по ссылке
Создание справочников Создание справочников Создание Мета объекта В Мете выбираем нужный нам раздел, например Химчистка > Справочники. В нём создаём метаобъект, задаём ему название. Далее в запросе данных этого метаобъекта вписываем необходимый нам запрос, который должен ссылаться на уже созданную или на предварительно созданную таблицу в базе.…
Настройка рабочего места Настройка рабочего места В этом разделе будут описаны моменты, связанные с настройкой рабочего места программиста - какие программы нужны, как их настроить, какие нюансы и т.д.
Билд Агента Билд Агента Отклонение от данной инструкции повлечет замечание от руководителя! Билды агента разрешено делать только Андрею (если билд делается после рабочего времени Новокузнецка) и Анатолию (если билд агента делается в рабочее время Новокузнецка)
Конфигурирование линий с включенным параметром exctention-in-contract Конфигурирование линий с включенным параметром exctention-in-contract Разобран пример конфигурирования линии, соответствующий форме: Конфигурация FreeSWITCH находится в файле: /usr/local/freeswitch/conf/freeswitch.xml
Установка CEF4 Установка CEF4 * Скачать архив \<\\WebDAV\Share55\Develop\cef4>.rar * Разархивировать его в папку E:\_ComponentsXE * В Tools-Options-Library добавить путь E:\_ComponentsXE\CEF4\source * Установить пакет из E:\_ComponentsXE\CEF4\packages\CEF4Delphi.dproj
Выключение Delphi доступа в интернет Выключение Delphi доступа в интернет Delphi нет нет, но лезет в интернет за разным, передает сведения о нас. Очень не хочется, чтобы это происходило. Поэтому выключаем доступ для Delphi всех версий в интернет.
BuildStation BuildStation Для создания билдов используется отдельная виртуальная машина. Билды создаются с помощью задач xStarter, веб интерфейс доступен по адресу:
Реализация запуска клиентов Реализация запуска клиентов Доработка списка клиентов в РС для отдела запуска 1 Добавлено на форме «Менеджер проектов» TMainForm 1.1. Добавлена вкладка «Клиенты» \ «Запуск клиентов» 1.2. При переключении на вкладку «Запуск клиентов» выполняется загрузка данных для этой вкладки (actDeployClientsLoad)…
Тест команд AgbisAgent Тест команд AgbisAgent Проект E:\_Projects\AgbisTest\AT_AgentCmd\AT_AgentCmd.dpr Программа предназначена для автоматического тестирования выпускаемых версий AgbisAgent.
Реализация подключения БДП к ЦБД Реализация подключения к центральной базе данных Реализация подключения БДП к ЦБД Реализация подключения к центральной базе данных Реализация подключения приемного пункта к центральной базе данных через агент.
Updater Агбис.Обновление Реализация Updater Агбис.Обновление Реализация Проект Updater Агбис.Обновление E:\_Projects\Agbis.dxe\Updater\Updater.dpr * TFIBSQLExecuter Исполнение SQL * TFIBSQLExecuter Игнорирование ошибок исполнения SQL Параметры командной строки * AliasDB – алиас БД из agbis.xml (если есть, то должен быть
FIBSQLExecuter Игнорирование ошибок исполнения SQL FIBSQLExecuter Игнорирование ошибок исполнения SQL Подсистема TFIBSQLExecuter Исполнение SQL При обновлении скриптами изменяется структура базы: добавляются или удаляются поля таблиц, меняются процедуры, триггеры и другие элементы. Часто изменения вносятся вручную, например, добавляется новое поле, тогда в обновлении скриптом это поле будет добавляться повторно и вызовет ошибку. Такие ошибки не должны останавливать процесс обновления. Для этого сделана функция TFIBSQLExecuter.IgnoreError, к…
Ветвление в Mercurial Ветвление в Mercurial Навеяно статьей: Mercurial, как и Git, позволяет очень удобно работать с ветками. В терминологии Mercurial ветки - это Branches. Далее по тексту везде под веткой понимается именно branch. Использование веток позволяет хранить разный код одних и тех же файлов и легко переключаться между ними. Ну и для полного счастья в Mercurial присутствуют средства слияния веток.…
Расчет "Задолженность общая" Расчет "Задолженность общая" Проект "AnaliticDB" Расчет данных выполняется в процедуре TMain.CalcData TMain.CalcData * Определяется период расчета: (rcParam.DateCalcBegin, rcParam.DateCalcEnd)
Загрузка таблицы A_ORDERS Загрузка таблицы A_ORDERS Проект "AnaliticDB" Импорт данных выполняется в процедуре TMain.LoadData TMain.LoadData * Определяется период загрузки: с даты следующего дня после последней загрузки (rcParam.DateLoadLast) по текущую дату. Если это первая загрузка, то добавляется период для импорта до даты первой загрузки (rcParam.DateCalcFirst).…
Загрузка таблицы A_SALES Загрузка таблицы A_SALES Проект "AnaliticDB" Импорт данных выполняется в процедуре TMain.LoadData TMain.LoadData * Определяется период загрузки: с даты следующего дня после последней загрузки (rcParam.DateLoadLast) по текущую дату. Если это первая загрузка, то добавляется период для импорта до даты первой загрузки (rcParam.DateCalcFirst).…
Загрузка таблицы A_PAYMENTS Загрузка таблицы A_PAYMENTS Проект "AnaliticDB" Импорт данных выполняется в процедуре TMain.LoadData TMain.LoadData * Определяется период загрузки: с даты следующего дня после последней загрузки (rcParam.DateLoadLast) по текущую дату. Если это первая загрузка, то добавляется период для импорта до даты первой загрузки (rcParam.DateCalcFirst).…
AllCP’sByPeriod Реализация AllCP’sByPeriod Реализация Проект «AnaliticDB»
Мониторинг предупреждений Delphi Мониторинг предупреждений Delphi E:\_Projects\AgbisTest\AT_DelphiWarnings\AT_DelphiWarnings.dpr Предназначен для мониторинга предупреждений компилятора Delphi и распределению работ среди программистов.
Команды API трехзвенки Агента Команды API трехзвенки Агента Команды предназначены для операций с базой данных, через промежуточное звено. Трехзвенка в нашем случае: клиентское приложение
API-функция GetReplPrms API-функция GetReplPrms Используется в программе ReplIn, для получения параметров, которые используются при настройке репликации. Команда GetReplPrms выполняет те же задачи, что и команда GetReplParams.
API-функция GetReplParams API-функция GetReplParams Используется в программе ReplIn, для получения параметров, которые используются при настройке репликации. Команда GetReplParams выполняет теже задачи, что и команда GetReplParams.
API-функция IsDbActive API-функция IsDbActive Проверяет в базе данных данных PC статус учетной записи базы данных подразделения. Возвращает * код ошибки равный нулю и REP_ID в случае упешной идентификации.
TFIBSQLExecuter Исполнение SQL TFIBSQLExecuter Исполнение SQL TFIBSQLExecuter предназначен для исполнение SQL-скриптов. В процессе исполнения анализируется статус выполнения запроса:
Реализация создания нового подразделения Реализация создания нового подразделения Объект TCopyDep из unit rCopyDep служит для создания и настройки новой базы данных подразделения. Параметры TCopyDep
Тестирование репликационных параметров БД Тестирование репликационных параметров БД Скрипты для проверки значений параметров Проверка таблицы DEPS deps Глобальные настройки Для просмотра
Проверка скрипта Проверка скрипта Проект Менеджер проектов После сохранения скрипта на форма «Скрипт» в «Менеджере проектов» запускается проверка скрипта. «» Последовательность операций после нажатия кнопки
Реализация импорта исключений Реализация импорта исключений Блок Мониторинг исключений. Агент «Менеджера проектов» загружает данные в БД «AgbisLog.fdb» * Для импорта исключений в настройках
Реализация отправки исключений Реализация отправки исключений * Исключения записываются в «Локальный журнал исключений» mst_exceptions. * Объем информации определяется настройками EurekaLog (В Delphi Project \ EurekaLog options
Реализация добавления обязательных полей для агента Реализация добавления обязательных полей для агента Сейчас проверка наличия полей разбросана по исполняемым модулям. * TTasksMainForm.CheckDBData - проверяет и автоматически добавляет поля в базу данных, однако пополнение списка выполняется программно, и, следовательно, требует обновления агента.…
Запуск команд в Агенте Запуск команд в Агенте Процессы Агента запускаются в модуле GeneralDM. В модуле GeneralDM Декларирование функции обработки Декларирование функции обработки ключа WEB-сервером
Идентификация базы данных Идентификация базы данных В случае работы основной базы данных и ее копии возникаю проблемы с потерей данных. В связи с дублированием ключей в таблицах данных при репликации записи с копии перетирают данные с основной базы.
Запуск процессов в Агенте Запуск процессов в Агенте Процессы Агента запускаются в модуле TasksMain. Для интегрирования нового процесса в список запускаемых требуется
Типовые задачи Типовые задачи Запуск процессов в Агенте Запуск команд в Агенте TFIBSQLExecuter Исполнение SQL Билд Агента Билд "сабов" Агента Назад
Настройка Delphi Настройка Delphi * Установка AgbisControls Установка AgbisControls * Удаляем из Delphi старый AgbisControls и AlphaSkins * Удаляем папку e:\_ComponentsXE\AlphaSkins * Распаковываем архив из \
Реализация мониторинга сертификатов Реализация мониторинга сертификатов Таблицы данных certif users Операции * Контроль срока действия сертификатов * Рассылка уведомлений о просроченных сертификатах
Создание базы данных для нового подразделения через DBMeta Создание базы данных для нового подразделения через DBMeta В DBMeta на форме Создание нового подразделения (TCopyDepForm) и объекта TCopyDep выполняются следующие операции:
Настройка подключения БДП к ЦБД Настройка подключения БДП к ЦБД Для корректной настройки копии базы данных и настройки репликации требуется доступ к центральной базе данных.
Создание репликационной структуры для всей базы через DBMeta Создание репликационной структуры для всей базы через DBMeta Внимание! Если вам нужно добавить репликацию только для одной таблицы (не для всей базы),
Реализация репликации Реализация репликации Руководство разработчика 1. Если запись исправлена на центральной базе данных, то она рассылается на все приемные пункты 2. Если запись исправлена на приемном пункте А, то
Автодокументирование программ Автодокументирование программ Задача Создание описания модулей на основе элементов текста модулей программных модулей с помощью pasdoc.exe.
Комбинации клавиш в Delphi Комбинации клавиш в Delphi Клавиши редактора в Delphi Ctrl + J Выбор code-template. Вставка шаблона кода. Можно вставлять типовые шаблоны, а можно написать свои собственные. При нажатии Ctrl + J, будет показан список шаблонов. Либо можно набрать несколько букв из имени шаблона, чтобы ограничить выбор, либо полное имя шаблона и нажать комбинацию - шаблон сразу вставится.…
GUI Приёмки GUI Приёмки Многозадачность Различные сценарии работы выполняются в отдельных задачах (Task). Задачи между собой никак не взаимодействуют, не получают уведомлений о завершении. Между задачами можно переключаться через меню задач. Работа с задачами реализована в модуле MultiTaskInterface.pas, в объекте TaskManager.…
Сетевой протокол Приёмки Сетевой протокол Приёмки JSON-RPC Для сетевого взаимодействия Приемки и Агента был выбран протокол JSON-RPC Главное отличие JSON-RPC от RESTApi - это возможность
URL URL URL, которые используются в программном коде: Агент для менеджера проектов - синонимы http://offrepl.agbis.co - Updater https://cl.agb.is - AgbisAgent 192.168.192.55:84 - ProjectsControl3 Список обращений https://www.agbis.ru/support/ - Him Сайт с обновлениями ПО https://www.agbis.ru/Download/Updates/ - Him Номер последней доступной версии https://www.agbis.ru/Download/Updates/UpdatePack_vers.txt - Him Информация о клиенте (проверка лицензии клиента) https://cl.agb.is/cl…
Технологии Технологии Мобильные приложения GUI Приёмки Сетевой протокол Приёмки GUI Mobile GUI наследование Mobile GUI вычисления
Компоненты Delphi (VCL) Компоненты Delphi (VCL) VirtualTree Одни из самых классных контролов для построения деревьев и списков. Статья по использованию на русском: Документация Virtual Tree OmniThreadLibrary
Оформление кода Pascal Оформление кода Pascal Был соблазн написать именно про оформление кода Delphi, но мы изредка пишем в том числе и на Lazarus, поэтому речь именно про Pascal.
Краткая памятка о том, как проектировать формы в программах Agbis Краткая памятка о том, как проектировать формы в программах Agbis Каждая новая форма может быть или наследницей от TUniForm или не быть наследницей. В первом случае на новую форму автоматически добавляется панель нижнего края с кнопками ОК, Отмена и т.д. Наследуются также методы из базового класса TUniForm.…
Реализация системы репликации Реализация системы репликации Ключи У всех систем репликации есть некоторый базис, который позволяет отличить записи одних подразделений от записей других подразделений. Нельзя допускать такого, чтобы могли создаваться записи с одинаковыми первичными ключами в разных подразделениях одновременно.…
Закрытые команды API Закрытые команды API !!!Закрытые команды API. Запрещается передавать клиентам или кому либо, кроме работников Компании АГБИС. Квитанция мешка. ReceiptOnlineBag
Регламент создания/изменения API функций Регламент создания/изменения API функций ---------- Общий регламент Мы распространяем наш API для все большего и большего количества клиентов.
Mercurial Mercurial Из WikiPedia Mercurial : Mercurial (с англ. — «ртутный, подвижный»), он же Hg (от обозначения химического элемента ртути) — кроссплатформенная распределённая система управления версиями, разработанная для эффективной работы с очень большими репозиториями кода. В первую очередь она является…