ipogromist / bpm-online
使用BPM Terrasoft API
Requires
- php: >=5.6.4
- beberlei/assert: ^2.5
- guzzlehttp/guzzle: ~6.0
- illuminate/config: 5.4.*
- illuminate/container: 5.4.*
- illuminate/support: 5.4.*
- monolog/monolog: 1.*
- slim/slim: ^3.0
- symfony/var-dumper: ^3.2
Requires (Dev)
- fzaninotto/faker: ^1.6
- mockery/mockery: ^0.9.9
- php-mock/php-mock-mockery: dev-master
- phpunit/phpunit: 5.7.*
This package is auto-updated.
Last update: 2024-09-07 07:47:33 UTC
README
API BPM ONLINE
该包通过OData协议提供方便的接口来操作API Terrasoft。
安装
安装需要执行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' => ''
]
- 通过KernelBpm中的setConfigManually方法
$kernel = new KernelBpm();
// первым параметром передается префикс для конфигурации
$$kernel->setConfigManually('apiBpm', [
'UrlLogin' => '',
'Login' => '',
'Password' => '',
'UrlHome' => ''
]);
认证
为了在BPM API中进行认证,需要通过URL https://ikratkoe.bpmonline.com/ServiceModel/AuthService.svc/Login
获取cookie。为此,需要调用authentication
方法
$kernel->authentication();
可以不调用它,并且包将自动更新cookie,进行额外的请求。
安装集合
BPM中的所有数据库表都命名为集合(Collections)。为了进行交互,需要设置集合。
$kernel->setCollection('CaseCollection');
这种方法有一个缺点是额外调用setCollection
方法,但允许重用集合的设置。这意味着我们可以一次设置集合,然后对其执行操作。
Select
所有方法都接受第一个参数为操作类型和数据类型字符串,第二个参数为callback,在其中传递操作类型,并在callback内部执行所有预设置,最后调用get方法。返回一个处理BPM响应的Handler对象。
$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)
请注意,您可以根据Terrasoft文档的组合方法
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地址的日志文件。
这是什么?
该包提供了一个方便的接口,通过协议使用HTTP请求与API Terrasoft进行交互。
安装
对于安装,您必须从composer运行命令
composer require agoalofalife/bpm-online
配置
要安装配置数据,有几种方法
- 类文件
//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);
该文件必须返回一个包含数据的数组
return [
// url for auth
'UrlLogin' => '',
//our url for request api
'UrlHome' => '',
'Login' => '',
'Password' => ''
]
- 通过KernelBpm中的setConfigManually方法
$kernel = new KernelBpm();
// the first parameter is passed a prefix for configuration
$kernel->setConfigManually('apiBpm', [
'UrlLogin' => '',
'Login' => '',
'Password' => '',
'UrlHome' => ''
]);
身份验证
在BPM API中进行身份验证时,需要从URL中获取cookie
https://ikratkoe.bpmonline.com/ServiceModel/AuthService.svc/Login
需要调用authentication
方法
$kernel->authentication();
您不能调用它,并且包将自动通过额外查询更新cookie。
设置集合
在BPM
中,所有数据库表都称为集合(集合)。为了通信,您必须安装集合。
$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
。
选择方法
filterConstructor
允许您使用请求中的$filter函数进行选择过滤
filterConstructor('Id eq guid\'00000000-0000-0000-0000-000000000000\'');
orderBy
以排序形式检索数据,第一个参数是字段名,第二个参数是排序:升序(asc)或降序(desc)
->orderby('Number', 'desc')
跳过
如果您想跳过指定数量的记录
->skip(10)
amount
设置最大记录数
->amount(100)
请记住,您可以根据Terrasoft文档组合这些方法
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地址的日志文件。