承接 brianfreytag/ultipro-sdk-php 相关项目开发

从需求分析到上线部署,全程专人跟进,保证项目质量与交付效率

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

brianfreytag/ultipro-sdk-php

最新稳定版本:v2.0.0-rc1

Composer 安装命令:

composer require brianfreytag/ultipro-sdk-php

包简介

Ultipro SDK for PHP (Unofficial)

README 文档

README

Latest Stable Version Total Downloads

This is an unofficial library to allow seamless connections to Ultipro's REST API via PHP.

This library was created because Ultimate Software does not have any SDK and none of their documentation lays out how to use PHP for any of it.

Installation

composer require brianfreytag/ultipro-sdk-php

Usage

Authentication

You can authenticate in the Client in one of two ways: 1) Authentication Object, 2) Array

Authentication Object:

use Ultipro\Authentication;
use Ultipro\UltiproClient;

$username = 'my-username';
$password = 'my-password';
$customerApiKey = 'XY0XY';

$authorization = new Authentication($username, $password, $customerApiKey);

$client = new UltiproClient($authorization);

Array:

use Ultipro\UltiproClient;

$username = 'my-username';
$password = 'my-password';
$customerApiKey = 'XY0XY';

$authorization = [
    'username'         => $username,
    'password'         => $password,
    'customer_api_key' => $customerApiKey
];

$client = new UltiproClient($authorization);

Client Arguments

The client takes three arguments:

  1. $auth - Authentication (see above)
  2. $baseURi - Found in Ultipro -> Configuration -> Security -> Web Services (Defaults to https://service5.ultipro.com)
  3. $options - Guzzle Request Options to overwrite defaults (http://docs.guzzlephp.org/en/stable/request-options.html)

Choosing a Client

You can use the default UltiproClient to manually do GET and POST requests, or you can utilize alternate clients for each Ultipro API endpoint "groups". This version includes clients for the following endpoints:

const ENDPOINT_CONFIG_ORG_LEVELS            = '/configuration/v1/org-levels';
const ENDPOINT_PERSONNEL_PERSON_DETAIL      = '/personnel/v1/person-details';
const ENDPOINT_PERSONNEL_EMPLOYMENT_DETAIL  = '/personnel/v1/employment-details';
const ENDPOINT_PERSONNEL_EMPLOYEE_ID_LOOKUP = '/personnel/v1/employee-ids';

For endpoints with PERSONNEL, use the PersonnelClient. For the endpoints with CONFIG use the ConfigurationClient.

Using a Client

For Personnel queries, utilize the Ultipro\Personnel\PersonnelClient client.

Each client method accepts a Request object that implements the RequestInterface interface.

The RequestInterface receives query parameters from classes that extend the base Query. Nearly every endpoint accepts different query parameters, so under the various endpoint namespaces, there are different *Query classes under the Query directory that will accept different data to search the endpoints.

Here is a simple example of pulling Person Detail API data utilizing an Employee ID (as defined from Ultipro):

use Ultipro\Personnel\PersonnelClient;
use Ultipro\Authentication;
use Ultipro\Personnel\Query\PersonDetailQuery;
use Ultipro\Personnel\Model\PersonDetail;
use Ultipro\Personnel\PersonnelResponse;
use Ultipro\Request;

$username = 'my-username';
$password = 'my-password';
$customerApiKey = 'XY0XY';

$authorization = new Authentication($username, $password, $customerApiKey);

$personnelClient = new PersonnelClient($authorization);

$request = new Request();

$query = new PersonDetailQuery();
$query->setEmployeeId('BM410003');

$request->setQueryParameters($query);

/** @var PersonnelResponse $response */
$response = $personnelClient->getPersonDetails($request);

/** @var PersonDetail $personDetail */
foreach ($response->getContent() as $personDetail) {
    $firstName = $personDetail->getFirstName();
}

Todo

There is still a lot of work to do in this library, including many endpoints to implement.

Configuration

Personnel

Onboarding

Simple Schedule

Time

Other Items

统计信息

  • 总下载量: 3.91k
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 3
  • 点击次数: 0
  • 依赖项目数: 1
  • 推荐数: 0

GitHub 信息

  • Stars: 2
  • Watchers: 3
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2019-05-08