ipogromist/bpm-online

使用BPM Terrasoft API

安装: 4

依赖: 0

建议者: 0

安全: 0

星标: 0

关注者: 1

分支: 0

开放问题: 0

类型:

dev-master 2020-05-06 22:52 UTC

This package is auto-updated.

Last update: 2024-09-07 07:47:33 UTC


README

API BPM ONLINE

Build Status Twitter Scrutinizer Code Quality Code Coverage License

RU | EN

这是什么?

该包通过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();

共有两种数据类型:xmljson。四种操作类型:readcreateupdatedelete

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地址的日志文件。

alt text

这是什么?

该包提供了一个方便的接口,通过协议使用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();

只有两种数据类型xmljson。四种操作类型readcreateupdatedelete

选择方法

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地址的日志文件。

alt text