2017 © Pedro Peláez
 

library jasper

OO wrapper around jasper reports soap api

image

vemt/jasper

OO wrapper around jasper reports soap api

  • Friday, August 23, 2013
  • by francodacosta
  • Repository
  • 7 Watchers
  • 5 Stars
  • 213 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 3 Forks
  • 0 Open issues
  • 1 Versions
  • 0 % Grown

The README.md

jasper-reports-php

jasper reports php library, (*1)

OO implementation of jasper reports SOAP Api, (*2)

This library aims to fully wrap the entire jasper server api, into easy to use objects, (*3)

Features

  • Repository access (list Resource, Get Resource, Run Report)
  • Administration access (Finde Roles, FindUsers, PutUser)

More features to come, (*4)

Requirements

  • PHP 5.3
  • SOAP pear package (http://pear.php.net/package/SOAP/)
  • Net_Dime pear package (http://pear.php.net/package/Net_DIME/)

Usage

Repository Operations

Listing resources on the server:

<?php

    use Vemt\Jasper\Transport\SoapTransport;
    use Vemt\Jasper\Request\Repository\ListResources;

    // setup the soap transport
    $cli = new SoapTransport($repositoryUrl, $user, $password);

    // executing the list resources request
    $request = new ListResources($cli);
    $request->setUri('/');
    $resources = $request->execute();


    echo "Listing resources Resources at " . $request->getUri();
    foreach($resources as $resource) {
        echo $resource . "\n";
    }

Getting information about a resource

<?php

    use Vemt\Jasper\Transport\SoapTransport;
    use Vemt\Jasper\Request\Repository\GetResource;

    // setup the soap transport
    $cli = new SoapTransport($repositoryUrl, $user, $password);

    // executing the get resources request
    $request = new GetResource($cli);
    $request->setUri('/');
    $resource = $request->execute();


    // display data
    echo $resource . "\n";

    echo "Attachments:\n";
    if ($resource->hasAttachments()) {
        foreach ($resource->getAttachments() as $attachment) {
            // an attachment is another resource object
            echo "\t $attachment \n";
        }
    } else {
        echo "none\n";
    }

Executing a report

<?php

    use Vemt\Jasper\Transport\SoapTransport;
    use Vemt\Jasper\Request\Repository\RunReport;

    // setup the soap transport
    $cli = new SoapTransport($repositoryUrl, $user, $password);

    // executing the get resources request
    $request = new RunReport($cli);
    $request->setUri('/report_unit_uri');

    //setting the report type to html
    $request->addExtraArgument('RUN_OUTPUT_FORMAT', 'HTML');

    //adding parameters to the report
    $request->addParameter('parameter 1', 'value 1');


    $resource = $request->execute();



    // display data
    if ($resource->hasAttachments()) {
        foreach ($resource->getAttachments() as $name => $attachment) {
            // the report itself has the key 'cid:report'
            // images are also attached
            echo "\t $name => $attachment \n";
        }
    } else {
        echo "no report returned\n";
    }

Administration operations

Searching users

<?php
    use Vemt\Jasper\Transport\SoapTransport;
    use Vemt\Jasper\Request\Administration\FindUsers;
    use Vemt\Jasper\Resource\User\UserSearchCriteria;

    // setup the soap transport
    $cli = new SoapTransport($administrationUrl, $user, $password);

    // executing the get resources request
    $request = new FindUsers($cli);

    // this is the default behaviour, search for all users
    $request->setSearchCriteria(new UserSearchCriteria());

    $resources = $request->execute();

Adding/Modifying an user

<?php
    use Vemt\Jasper\Transport\SoapTransport;
    use Vemt\Jasper\Request\Administration\PutUser;
    use Vemt\Jasper\Resource\User\User;

    // setup the soap transport
    $cli = new SoapTransport($administrationUrl, $user, $password);

    // executing the get resources request
    $request = new PutUser($cli);

    // specifying user to save
    $user = new User();
    $user->setUsername('test');
    $user->setPassword('test1234!');
    $user->setFullName('test user');
    $user->setEmailAddress('test@foo.com');
    $user->setExternallyDefined(false);
    $user->setEnabled(true);
    $user->setTenantId(null);

    $role = new Role();
    $role->setRoleName('ROLE_ANONYMOUS');
    $role->setTenantId(null);
    $user->addRole($role);

    $request->setUser($user);

    $resource = $request->execute();

    echo "Saved user : \n" . var_export($resource, true);

Searching roles

<?php
    use Vemt\Jasper\Transport\SoapTransport;
    use Vemt\Jasper\Request\Administration\FindRoles;
    use Vemt\Jasper\Resource\Role\RoleSearchCriteria;

    // setup the soap transport
    $cli = new SoapTransport($administrationUrl, $user, $password);

    // executing the get resources request
    $request = new FindRoles($cli);

    // this is the default behaviour, search for all roles
    $request->setSearchCriteria(new RoleSearchCriteria());

    $resources = $request->execute();

    foreach ($resources as $role) {
            echo sprintf("%s\n", $role->getRoleName());
        $users = $role->getUsers();
        if (is_array($users)) {
            echo "Users:\n";
            foreach ($users as $user) {
                echo sprintf("  Username: %s\nName: %s\n", $user->getUserName(), $user->getFullName());
            }
        }
    }

Adding/Modifying a role

<?php
    use Vemt\Jasper\Transport\SoapTransport;
    use Vemt\Jasper\Request\Administration\PutRole;
    use Vemt\Jasper\Resource\Role\Role;

    // setup the soap transport
    $cli = new SoapTransport($administrationUrl, $user, $password);

    // executing the get resources request
    $request = new PutRole($cli);

    // specifying role to save
    $role = new Role();
    $role->setRoleName('ROLE_TESTING');
    $role->setTenantId(null);

    // alternative:
    // $role = new Role('ROLE_TESTING');

    $request->setRole($role);


    $resource = $request->execute();

    echo "Saved role : \n" . var_export($resource, true);

The Versions

23/08 2013

dev-master

9999999-dev https://github.com/VEMTGIT/jasper-reports-php

OO wrapper around jasper reports soap api

  Sources   Download

MIT

The Requires

  • php >=5.3.0

 

reporting jasper jasper-reports