agoalofalife/bpm-online

使用 BPM Terrasoft API

2.2.1 2018-07-05 12:12 UTC

This package is auto-updated.

Last update: 2024-09-29 05:01:15 UTC


README

API BPM ONLINE

Build Status Twitter Scrutinizer Code Quality Code Coverage License

RU | EN

这是什么?

该包提供了一个方便的接口,通过 OData 协议与 API Bpm’online 交互。

安装

安装需要执行 composer 命令

composer require agoalofalife/bpm-online

配置设置

安装配置数据有多种方法

  • 通过 class 文件
 //Инициализируем ядро
 $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)

请注意,您可以根据 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

这是什么?

此软件包提供了一个方便的接口,通过协议使用 HTTP 请求与 Bpm’online API 进行交互

安装

为了安装,您必须从 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 中,所有数据库表都被称为集合(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

选择方法

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 即可,只需要 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