プリザンターのAPIの取得条件を調べてみた!

※注意

  • この記事はIIS独自研究(コードリーディングとデバッグ)によるものです。公式の仕様ではありません。
  • 2018/12/14時点での情報です。アップデートにより変更となる可能性があります。

プリザンターのAPI

プリザンターはAPIにより外部システムとの連携を行うことができます。
参照: https://github.com/Implem/Implem.Pleasanter/wiki/%E3%83%97%E3%83%AA%E3%82%B6%E3%83%B3%E3%82%BF%E3%83%BC%E3%81%AE%E4%BD%BF%E3%81%84%E6%96%B9%E3%83%9E%E3%83%8B%E3%83%A5%E3%82%A2%E3%83%AB#api%E6%A9%9F%E8%83%BD

2018/12/14現在、Depts・Groups・Items・Usersの4種類のデータを取得することができます(Itemsでは作成・更新・削除も可能です)。

取得APIの条件

複数レコードの取得をする場合は、リクエストのjsonデータに取得条件を指定することができます。
参照: https://github.com/Implem/Implem.Pleasanter/wiki/API%E6%A9%9F%E8%83%BD%EF%BC%9A%E3%83%AC%E3%82%B3%E3%83%BC%E3%83%89%E6%93%8D%E4%BD%9C%EF%BC%9A%E8%A4%87%E6%95%B0%E5%8F%96%E5%BE%97

jsonのサンプル(前述の公式マニュアルより)

{
    "ApiKey": "XXXXXXXXXX...",
    "Offset": 0,
    "View": {
        "NearCompletionTime": true,
        "ColumnFilterHash": {
            "ClassA": "[\"設計\",\"構築\"]",
            "NumA": "[\"3000,3999\"]",
            "DateA": "[\"2018/02/01 0:00:00,2018/2/28 23:59:59.997\"]",
            "CheckA": "true"
        }
    }
}

ColumnFilterHashに主にテーブルのカラム+αの様々な条件を指定することができます。
この指定ですがいくつか設定のパターンがあり、いつも迷ってしまうので表にまとめてみました。

パターン

SearchText

説明
概要 複数のカラムに対するLikeのor検索。一つの値で複数のカラムにlikeする
設定値の形式 "u"
発行されるクエリのイメージ column1 like '%u%' or column2 like '%u%'

id

説明
概要 idカラムに対するマッチ
設定値の形式 "1"

数値

説明
概要 数値カラムに対するin検索。配列で複数の値を指定する
設定値の形式 ["0","1"]
発行されるクエリのイメージ colimn1 in (0,1)

日時

説明
概要 日付カラムに対する検索。,つないだ日付でbetween検索。さらにそれを配列で複数指定するとor検索
設定値の形式 ["2018-01-01,2018-01-02","2018-01-03,2018-01-04"]
発行されるクエリのイメージ column1 between '2018/01/01 0:0:0' and '2018/01/02 0:0:0.000' or column1 between '2018/01/03 0:0:0' and '2018/01/04 0:0:0.000'

文字列(ChoicesText)

説明
概要 definition_Column.xlsmのControlTypeがChoicesTextのもの。文字列カラムに対するマッチ。配列で複数の値を指定する。値の関係はor検索。
設定値の形式 ["0","1"]
発行されるクエリのイメージ column1='0' or column1='1'

文字列(ChoicesTextでない)

説明
概要 文字列カラムに対するlike検索。直値を指定する。
設定値の形式 "0"
発行されるクエリのイメージ '0' = '' or column1 like '%0%'

真偽値(ONのみ)

説明
概要 bitカラムに対するマッチ
設定値の形式 "true"
発行されるクエリのイメージ column1 = '1'

真偽値(ON/OFF)

説明
概要 bitカラムに対するマッチ
設定値の形式 "1"(ON) または "2"(OFF)
発行されるクエリのイメージ column1 = 1 または column1 = 2

URL中のID

説明
概要 ItemsのGetAPIのapi/items/{id}/getの{id}。テーブルのIDまたはレコードのIDのいずれかにマッチ。テーブルのIDとマッチした場合、テーブルのレコード全体を取得。レコードのIDとマッチした場合、該当の1レコードのみを取得。

SiteTitle

説明
概要 SiteIdカラムに対するin検索。配列で複数の値を指定する
設定値の形式 ["0","1"]
発行されるクエリのイメージ SiteId in (0,1)

Users APIで指定できるもの

キー名 パターン 対象のカラム
SearchText SearchText Users.LoginId, Users.Name, Users.UserCode, Users.Body, Depts.DeptCode, Depts.DeptName, Depts.Body
SiteId id (特殊) 指定のサイトIDのサイトに対する権限のあるユーザーだけを取得する。
TenantId 数値 TenantId
UserId 数値 UserId
Ver 数値 Ver
LoginId 文字列(ChoicesTextでない) LoginId
GlobalId 文字列(ChoicesTextでない) GlobalId
Name 文字列(ChoicesTextでない) Name
UserCode 文字列(ChoicesTextでない) UserCode
Password 文字列(ChoicesTextでない) Password
LastName 文字列(ChoicesTextでない) LastName
FirstName 文字列(ChoicesTextでない) FirstName
Birthday 日時 Birthday
Gender 文字列(ChoicesText) Gender
Language 文字列(ChoicesText) Language
TimeZone 文字列(ChoicesText) TimeZone
DeptId 数値 DeptId
FirstAndLastNameOrder 数値 FirstAndLastNameOrder
Body 文字列(ChoicesTextでない) Body
LastLoginTime 日時 LastLoginTime
PasswordExpirationTime 日時 PasswordExpirationTime
PasswordChangeTime 日時 PasswordChangeTime
NumberOfLogins 数値 NumberOfLogins
NumberOfDenial 数値 NumberOfDenial
TenantManager 真偽値(ONのみ) TenantManager
ServiceManager 真偽値(ONのみ) ServiceManager
Disabled 真偽値(ON/OFF) Disabled
Lockout 真偽値(ONのみ) Lockout
LockoutCounter 数値 LockoutCounter
Developer 真偽値(ONのみ) Developer
UserSettings 文字列(ChoicesTextでない) UserSettings
ApiKey 文字列(ChoicesTextでない) ApiKey
ClassA 文字列(ChoicesTextでない) ClassA
(省略) ... ...
ClassZ 文字列(ChoicesTextでない) ClassZ
NumA 数値 NumA
(省略) ... ...
NumZ 数値 NumZ
DateA 日時 DateA
(省略) ... ...
DateZ 日時 DateZ
DescriptionA 文字列(ChoicesTextでない) DescriptionA
(省略) ... ...
DescriptionZ 文字列(ChoicesTextでない) DescriptionZ
CheckA 真偽値(ONのみ) CheckA
(省略) ... ...
CheckZ 真偽値(ONのみ) CheckZ
LdapSearchRoot 文字列(ChoicesTextでない) LdapSearchRoot
SynchronizedTime 日時 SynchronizedTime
Comments 文字列(ChoicesTextでない) Comments
Creator 数値 Creator
Updator 数値 Updator
CreatedTime 日時 CreatedTime
UpdatedTime 日時 UpdatedTime

Groups APIで指定できるもの

キー名 パターン 対象のカラム
SearchText SearchText Groups.GroupId, Groups.GroupName, Groups.Body
SiteId id (特殊) 指定のサイトIDのサイトに対する権限のあるグループだけを取得する。
UserId id (特殊) 指定のユーザーIDのユーザーが属するグループだけを取得する。
TenantId 数値 TenantId
GroupId 数値 GroupId
Ver 数値 Ver
GroupName 文字列(ChoicesTextでない) GroupName
Body 文字列(ChoicesTextでない) Body
Comments 文字列(ChoicesTextでない) Comments
Creator 数値 Creator
Updator 数値 Updator
CreatedTime 日時 CreatedTime
UpdatedTime 日時 UpdatedTime

Depts APIで指定できるもの

キー名 パターン 対象のカラム
SearchText SearchText Depts.DeptId, Depts.DeptName, Depts.Body
SiteId id (特殊) 指定のサイトIDのサイトに対する権限のある組織だけを取得する。
UserId id (特殊) 指定のユーザーIDのユーザーが属する組織だけを取得する。
TenantId 数値 TenantId
DeptId 数値 DeptId
Ver 数値 Ver
DeptCode 文字列(ChoicesTextでない) DeptCode
DeptName 文字列(ChoicesTextでない) DeptName
Body 文字列(ChoicesTextでない) Body
Comments 文字列(ChoicesTextでない) Comments
Creator 数値 Creator
Updator 数値 Updator
CreatedTime 日時 CreatedTime
UpdatedTime 日時 UpdatedTime

Items APIで指定できるもの

キー名 パターン 対象のカラム
URL中のID URL中のID Items.ReferenceId
SiteId 数値 SiteId
UpdatedTime 日時 UpdatedTime
IssueId 数値 IssueId
ResultId 数値 ResultId
Ver 数値 Ver
Title 文字列(ChoicesTextでない) Title
Body 文字列(ChoicesTextでない) Body
StartTime 日時 StartTime
CompletionTime 日時 CompletionTime
WorkValue 数値 WorkValue
ProgressRate 数値 ProgressRate
Status 数値 Status
Manager 数値 Manager
Owner 数値 Owner
ClassA 文字列(ChoicesTextでない) ClassA
(省略) ... ...
ClassZ 文字列(ChoicesTextでない) ClassZ
NumA 数値 NumA
(省略) ... ...
NumZ 数値 NumZ
DateA 日時 DateA
(省略) ... ...
DateZ 日時 DateZ
DescriptionA 文字列(ChoicesTextでない) DescriptionA
(省略) ... ...
DescriptionZ 文字列(ChoicesTextでない) DescriptionZ
CheckA 真偽値(ONのみ) CheckA
(省略) ... ...
CheckZ 真偽値(ONのみ) CheckZ
AttachmentsA 文字列(ChoicesTextでない) AttachmentsA
(省略) ... ...
AttachmentsZ 文字列(ChoicesTextでない) AttachmentsZ
Comments 文字列(ChoicesTextでない) Comments
Creator 数値 Creator
Updator 数値 Updator
CreatedTime 日時 CreatedTime

最後に

IISはプリザンターのカスタマイズの経験が豊富です。
プリザンター導入に際してカスタマイズをご検討されている方は是非ご相談ください!
またご不明点やご質問などございましたら弊社までお問い合わせください。