定制 agoalofalife/bpm-online 二次开发

按需修改功能、优化性能、对接业务系统,提供一站式技术支持

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

agoalofalife/bpm-online

Composer 安装命令:

composer require agoalofalife/bpm-online

包简介

Using the API BPM Terrasoft

README 文档

README

API BPM ONLINE

Build Status Twitter Scrutinizer Code Quality Code Coverage License

RU | EN

Что это такое?

Пакет предоставляет удобный интерфейс для работы с API Bpm’online через протокол OData.

Установка

Для установки необходимо выполнить команду из composer

composer require agoalofalife/bpm-online

Настройка конфигураций

Для установки ваших конфигурационных данных есть несколько способов :

  • Через class File
 //Инициализируем ядро
 $kernel = new KernelBpm();
 $file = new File();
 
 // указываем путь до файла с  конфигурациями
 $file->setSource(__DIR__ . '/config/apiBpm.php');
 // Загружаем их
 $kernel->loadConfiguration($file);

Файл должен возвращать массив с конфигурационными данными

return [
	// url для аутентификации
    'UrlLogin' => '',
    //ваш url для запросов по api       
    'UrlHome'  => '',
    'Login'    => '',
    'Password' => ''
    ]
  • Через метод setConfigManually в KernelBpm
$kernel = new KernelBpm();
// первым параметром передается префикс для конфигурации
$$kernel->setConfigManually('apiBpm', [
        'UrlLogin' => '',
        'Login'    => '',
        'Password' => '',
        'UrlHome'  => ''
]);

Аутенфикация

Для аутенфикация в BPM API необходимо получить cookie по URL https://ikratkoe.bpmonline.com/ServiceModel/AuthService.svc/Login Для этого необходимо вызвать метод authentication

$kernel->authentication();

Можно не вызывать его и пакет автоматически обновит куки сделав дополнительный запрос.

Установка коллекции

В BPM все таблицы из базы данных именуются как коллекции ( Collections ) Для взаимодействия необходимо установить коллекцию.

$kernel->setCollection('CaseCollection');

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

Select

Все методы принимают первым параметром строку типа операции и тип данных, вторым параметром callback внутрь которого передается тип операции, внутри callback происходит выполнение всех пред - настроек в конце вызывается метод get. Возращается обьект типа Handler который обрабатывает ответ от BPM.

$handler = $kernel->action('read:json', function ($read){
    $read->amount(1)->skip(100);

})->get();

Всего два типа данных xml и json. Четыре вида операции read, create, update, delete.

Методы Select

filterConstructor Позволяет фильтровать выборку с помощью функции $filter в запросе

filterConstructor('Id eq guid\'00000000-0000-0000-0000-000000000000\'');

orderBy Получать данные в отсортированном виде Первым параметром название поля, вторым параметром тип сортировки : по возрастанию (asc) по убыванию (desc)

->orderby('Number', 'desc')

skip Если необходимо пропустить заданное кол - во записей

->skip(10)

amount Задать максимальное кол - во записей

->amount(100)

Имейте в виду что вы можете комбинировать методы согласно документации Bpm’online

Create

Синтаксис для создания записи такой же как и Select. Внутри callback необходимо вызвать метод setData и передать ему массив параметров для создания записи в таблице BPM.

$handler = $kernel->action('create:xml', function ($creator){
    $creator->setData([
        // array key => value
    ]);
})->get();

Update

Для обновления данных в записи в BPM необходимо знать guid записи. Здесь устанавливается guid и новые параметры для обновления.

$handler = $kernel->action('update:json', function ($creator){
    $creator->guid('')->setData([
       'Number' => ''
    ]);
})->get();

Delete

Для удаление записи из бд достаточно знать guid

$handler = $kernel->action('delete:xml', function ($creator){
    $creator->guid('');
})->get();

Обработчики ответов

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

toArray Преобразовывает данные в массив

toJson Преобразовывает данные в json

getData Получить данные как есть

Логирование

На данный момент пакет сохраняет внутри себя детализацию всех запросов с сортировкой по дате. Их можно найти в src/resource/logs/...

Интеграция с Laravel

Для интеграции с фреймворком Laravel необходимо скопировать конфигурации и заполнить их

 php artisan vendor:publish --tag=bpm --force

Вставить сервис провайдер в файл config/app.php

 \agoalofalife\bpm\ServiceProviders\BpmBaseServiceProvider::class

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

$bpm =  app('bpm');
$bpm->setCollection('CaseCollection');

 $handler = $bpm->action('read:xml', function ($read){
    $read->amount(1);
})->get();

Либо используя фасад , предварительно зарегистрировав его в файле config/app.php:

   'aliases' => [
 Illuminate\Support\Facades\Facade\Bpm
  ... 
  ]

Клиентский код


    Bpm::setCollection('CaseCollection');
     $handler = Bpm::action('read:xml', function ($read){
        $read->amount(1);
    })->get();

Инструмент

Вам необходимо запустить сервер выполнив команду

vendor/bin/panel-server

Когда перейдете по адресу то увидите перед собой , статистику продолжительности ваших запросов в Bpm. Это программа парсит ваш лог файл который находиться по адресу src/resource/logs

alt text

What is it ?

The package provides a convenient interface to work with API Bpm’online through the Protocol

Install

For installation, you must run the command from composer

composer require agoalofalife/bpm-online

Configurations

To install your configuration data there are several ways :

  • class File
 //Init  kernel
 $kernel = new KernelBpm();
 $file = new File();
 
 // specify the path to the file with the configurations
 $file->setSource(__DIR__ . '/config/apiBpm.php');
 // loading...
 $kernel->loadConfiguration($file);

The file must return an array with the data

return [
	// url for auth
    'UrlLogin' => '',
    //our url for request api       
    'UrlHome'  => '',
    'Login'    => '',
    'Password' => ''
    ]
  • through method setConfigManually in KernelBpm
$kernel = new KernelBpm();
// the first parameter is passed a prefix for configuration
$kernel->setConfigManually('apiBpm', [
        'UrlLogin' => '',
        'Login'    => '',
        'Password' => '',
        'UrlHome'  => ''
]);

Authentication

For authentication in BPM API , it is necessary to get cookie in URL

https://ikratkoe.bpmonline.com/ServiceModel/AuthService.svc/Login It is necessary to call the method authentication

$kernel->authentication();

You can not call it and the package will automatically update the cookies by making an additional query.

Set Collection

In BPM all tables of the database are referred to as collections ( Collections ) To communicate, you must install the collection.

$kernel->setCollection('CaseCollection');

This approach has an additional disadvantage in the method call setCollection, but reuse installation of the collection. Meaning that we can install a collection and perform operations on it.

Select

All methods take the first parameter of the string type and the data type, the second parameter callback inside of which is passed the type of operation, inside callback executed all pre - settings at the end method is called get.

Returns the object type Handler which handler response from BPM.

$handler = $kernel->action('read:json', function ($read){
    $read->amount(1)->skip(100);

})->get();

Only two types of data xml and json. Four types of operations read, create, update, delete.

Methods Select

filterConstructor

Allows you to filter the selection using the function $filter in request

filterConstructor('Id eq guid\'00000000-0000-0000-0000-000000000000\'');

orderBy To retrieve data in sorted form The first parameter the field name, the second argument to sort : ascending (asc) descending (desc)

->orderby('Number', 'desc')

skip

If you want to skip the specified number of records

->skip(10)

amount To set the maximum number of records

->amount(100)

Keep in mind that you can combine the methods according to the documentation Bpm’online

Create

The syntax for creating a record is the same as Select. Inside callback you must call setData and pass his array parameters for creating record in table BPM.

$handler = $kernel->action('create:xml', function ($creator){
    $creator->setData([
        // array key => value
    ]);
})->get();

Update

To update the data in the record BPM you need to know guid record. This set guid and new parameters for updates.

$handler = $kernel->action('update:json', function ($creator){
    $creator->guid('')->setData([
       'Number' => ''
    ]);
})->get();

Delete

For deleting a record from DB enough to know guid and only guid

$handler = $kernel->action('delete:xml', function ($creator){
    $creator->guid('');
})->get();

Handler Response

Regardless of the operation always returns a typeп Handler, which has several methods to convert the data.

toArray Converts the data into an array

toJson Converts the data to json

getData Just Return the data

Log

At the moment, the package keeps a detail of all queries sorted by date. You can find them in src/resource/logs/...

Integration with Laravel

For integration with the framework Laravel you must copy the configuration and fill them

 php artisan vendor:publish --tag=bpm --force

Insert the service provider to a file config/app.php

 \agoalofalife\bpm\ServiceProviders\BpmBaseServiceProvider::class,

Then you can use extract the object from the container.

    $bpm =  app('bpm');
    $bpm->setCollection('CaseCollection');

     $handler = $bpm->action('read:xml', function ($read){
        $read->amount(1);
    })->get();

Or by using the Facade , registering it in a fileconfig/app.php:

   'aliases' => [
 Illuminate\Support\Facades\Facade\Bpm
  ... 
  ]

Client code

    Bpm::setCollection('CaseCollection');
     $handler = Bpm::action('read:xml', function ($read){
        $read->amount(1);
    })->get();

Tool

You need to start the server by running the command :

vendor/bin/panel-server

When you click on the address you will see a statistics of the duration of your queries in Bpm. This program parses your log file which is located at the address src/resource/logs

alt text

agoalofalife/bpm-online 适用场景与选型建议

agoalofalife/bpm-online 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 4.7k 次下载、GitHub Stars 达 8, 最近一次更新时间为 2016 年 08 月 02 日, 在 PHP 生态内属于活跃度较高的组件。

它主要适用于以下技术方向: 「bpm」 「bpm-online」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。

我们在过去多个企业项目中使用过 agoalofalife/bpm-online 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。

围绕 agoalofalife/bpm-online 我们能提供哪些服务?
定制开发 / 二次开发

基于 agoalofalife/bpm-online 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。

BUG 修复 & 性能优化

线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。

项目外包 & 长期维护

承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。

yvsm@zunyunkeji.com QQ:316430983 微信:yvsm316 西安尊云信息科技 · 专注 PHP / Go / 分布式系统研发

统计信息

  • 总下载量: 4.7k
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 8
  • 点击次数: 11
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 8
  • Watchers: 5
  • Forks: 6
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2016-08-02