optimeconsulting/pentaho-report

dev-master 2023-01-05 14:47 UTC

This package is auto-updated.

Last update: 2024-09-05 18:36:17 UTC


README

一个允许轻松配置连接到PRD服务器以下载报告(就像本地报告一样)的包

安装

composer require optimeconsulting/pentaho-report

配置

我们需要正确配置以下参数,这些参数随后将由我们用于下载的类接收

PENTAHO_URL_AUTH: 发送认证请求的URL,例如 https://servidorpentaho.com/pentaho/j_spring_security_check

PENTAHO_BASE_URI: 进行报告请求的基本URL,例如 https://servidorpentaho.com/pentaho/api/repos/:home:Reports:

PENTAHO_BI_USER: 有权从该服务器下载报告的用户

PENTAHO_BI_PASS: 该用户的密码

对于DNA,我们可以在config_var.php或parameters表中配置此设置,对于在symfony中的某个项目,我们应在.env中设置

在symfony中,我们还必须在config/bundles.php中注册bundle

<?php

return [
    ...
    \Optime\PentahoReport\Bundle\OptimePentahoReportBundle::class => ['all' => true]
];

此外,我们必须在config/routes.yaml中注册bundle的路由

pentahoreport:
    resource: "@OptimePentahoReportBundle/Bundle/Controller"
    type: annotation

使用

一旦在独立项目中完全配置好,我们只需实例化ReportBI.php类,并传递我们之前配置的4个参数,然后使用方法getBIServerReport(),我们将传递以下内容

$report: 服务器上报告的名称

$subFolder: 存放报告的子文件夹名称(如果有的话)

$reportParams: 报告需要的额外参数,期望为查询字符串

<?php

require_once '/vendor/autoload.php';

use Optime\PentahoReport\Lib\ReportBI;

$report = (isset($_GET['report']) && !empty($_GET['report']))?$_GET['report']:null;
$subFolder = (isset($_GET['subfolder']) && !empty($_GET['subfolder']))?$_GET['subfolder']:'';

$urlAuth = PENTAHO_URL_AUTH;
$baseURI = PENTAHO_BASE_URI;
$biUser = PENTAHO_BI_USER;
$biPass = PENTAHO_BI_PASS;

$ObjReportBI = new ReportBI($urlAuth, $baseURI, $biUser, $biPass);

$ObjReportBI->getBIServerReport($report, $subFolder, $_SERVER['QUERY_STRING']);

对于symfony,我们已经有了一个处理所有这些的控制器,我们只需使用定义在该控制器中的路由进行下载,至少传递报告的名称,例如 /pentahoreport/download?report=users/pentahoreport/download?report=users&subfolder=Users&year2022 如果我们希望传递子文件夹和其他参数