API

Rest API:文書一覧取得、文書詳細取得のAPIにカウンター情報を追加

Ver.4.2.0 SDB-2292

概要

Sm@rtDB Ver.4.1.0で文書に対して、任意のリアクションができる「カウンター機能」を追加しました。 その「カウンター機能」で登録された情報を、Rest APIの文書一覧取得API、文書詳細情報API、および文書詳細情報(ビュー定義より)APIで取得できるようにしました。 詳細は、RestDocを参照してください。

レスポンス例:

{
  "document": {
    ... ...
    "Counter": [
        {
            "counterName": "いいね!",
            "count": 10
        },
        {
            "counterName": "ふつう",
            "count": 2
        }
    ],
    ... ...
  }
}

Rest API:ファイルアップロードのAPIでJSON形式へも対応

Ver.4.2.0 SDB-2431

概要

これまでファイルアップロードを行うAPIはありましたが、「multipart/form-data」形式にしか対応していませんでした。 今回、「JSON」形式でもファイルアップロードができるように改善しました。 なお、REST API V2以降で利用可能です。 詳細は、RestDocを参照してください。

// 単一または複数ファイルをセッション一時領域にアップロードする例:
var jsonData = JSON.stringify(getJsonData());
$.ajax({
    url        : "/hibiki/rest/2/attaches?csrfToken=jHN/NL/lGcYw.mJe4gjNT.",
    type       : "POST",
    data       : jsonData,
    dataType   : "json",
    contentType: "application/json"
})
.done(function(result){
    if (result) {
        if (result.attaches) // 複数アップロード
            alert(result.attaches.attach.length + "ファイルを一時領域にアップロードしました。");
        else // 単一アップロード
            alert("ファイル" + result.attach.name + "[" + result.attach.id + "]を一時領域にアップロードしました。");
    } else {
        alert("アップロードファイルがありません。");
    }
})
.fail(function(){
    alert("ファイルアップロードが失敗しました");
});
function getJsonData() {
    var jsonData = {
    "files": [
        {
            "fileName":"f1.png",
            "content":"SGVsbG8gV29ybGTliJjlhpvlionou40"
        },
        {
            "fileName":"f2.pdf",
            "content":"5YiY5Yab5YqJ6LuNSGVsbG8gV29ybGQ"
        }
      ]
    };
    return jsonData;
}

Rest API:文書に関連する実行中アクティビティの情報を取得するAPIを追加

Ver.4.2.0 SDB-1968

概要

文書に関連する実行中アクティビティの情報を取得するAPIを追加しました。 文書に関連するアクティビティが複数ある場合、現在進行中のものがすべて取得されます。 なお、REST API V2以降で利用可能です。詳細は、RestDocを参照してください。

// バインダIDと文書IDより、実行中アクティビティの情報を取得します。
$.ajax({
     url:'/hibiki/rest/2/processes/binder/10023/document/19/activities',
     type:'get',
     dataType:'json'
})
.done(function(result){
     alert('アクティビティ情報の取得成功');
})
.fail(function(){
     alert('アクティビティ情報の取得失敗');
});

Rest API、公開 API:各APIで業務プロセスキーなどを使えるように改善

Ver.4.2.0 SDB-2406

概要

公開API、REST APIの各APIで業務プロセスキー、アクティビティキー、ボタンキーを使えるように改善しました。 詳細は、JavaDoc、あるいはRestDocを参照してください。

Rest API:
■業務プロセス開始(ParameterのprocessKeyで「業務プロセスキー」を利用可能)

/hibiki/rest/2/processes/start

■アクティビティ実施(Parameterのactionで「ボタンキー」を指定可能)

/hibiki/rest/2/activities/{activityId}

■公開 API:
■jp.co.dreamarts.hibiki.api.workflow.ProcessManagerインターフェースで改善したメソッド

void fireButtonClickEventAsPrincipal​(ActivityInstance activity, String buttonNameOrKey, String comment, int principalGroup) throws Exception

タスクの担当として、実施ボタンを押す。 担当グループにいないユーザの場合はエラーとなる

    パラメータ:
        activity - 実施するアクティビティー
        buttonNameOrKey - 実施ボタン名(表示名)またはボタンキー
        comment - コメント
        principalGroup - 担当グループ番号 (1から)
    例外:
        Exception
void fireButtonClickEventAsProxy​(ActivityInstance activity, String buttonNameOrKey, String comment, int principalGroup, Account principal) throws Exception

タスクの代行として、実施ボタンを押す。 担当グループにいないユーザの場合はエラーとなる

    パラメータ:
        activity - 実施するアクティビティー
        buttonNameOrKey - 実施ボタン名 (表示名)またはボタンキー
        comment - コメント
        principalGroup - 担当グループ番号 (1から)
        principal - 代行する担当
    例外:
        Exception

■jp.co.dreamarts.hibiki.api.workflow.ButtonClickEventインターフェースに追加したメソッド

String getButtonKey()

ボタンキーを取得する
String getButtonName()

実施ボタン名を取得する

■jp.co.dreamarts.hibiki.api.workflow.ProcessDefinitionインターフェースに追加したメソッド

String getKey()

業務プロセスキーを取得する

■jp.co.dreamarts.hibiki.api.workflow.ActivityDefinitionインターフェースに追加したメソッド

String getKey()

アクティビティキーを取得する

■jp.co.dreamarts.hibiki.smartdb.hookpoints.DocumentActionHookPointsクラスに追加したメソッド

protected WorkflowContext getWorkflowContext()

ワークフローコンテキストを取得する。
プロセス実施する時、このメソッドで関連するプロセス、アクティビティとクリックした実施ボタンの情報を取得できます。

※注意:
    ・取得したWorkflowContextは読み取り専用のものです。
    ・実施ボタンを押下する時しか利用できません。それ以外の場合、nullを返します。

Rest API:Luxorのインデックス再構築を行うAPIを追加

Ver.4.2.0 SDB-2260

概要

Luxor管理画面より、Sm@rtDBに関連するインデックスの再構築を可能とするため、インデックスを再構築するAPIを追加しました。 詳細は、RestDocを参照してください。

//バインダのインデックスを再構築する
$.ajax({
   url:'/hibiki/rest/2/luxor/reindex',
   type:'post',
   dataType:'json',
   data:{
       csrfToken:'Ah0vzmNKXLdXtBq7pQkeE.',
       core:'binder',
       id:'10001'
   },
})
.done(function(result){
   alert(result.reindexResult.status);
})
.fail(function(){
   alert('エラーが発生しています');
});

公開 API:一括で物理削除するAPIを追加

Ver.4.2.0 SDB-2205

概要

論理削除済みの文書を一括で物理削除するAPIを追加しました。 詳細は、JavaDocを参照してください。

void DocumentManager.purgeDocuments(String binderKey, List<Long> recordIds) throws Exception

論理削除済みの文書を一括物理削除する。

パラメータ:
        binderKey - バインダキー
        recordIds - 文書番号のコレクション
例外:
        Exception
void DocumentManager.purgeDocuments(long binderId, List<Long> recordIds) throws Exception

論理削除済みの文書を一括物理削除する。

パラメータ:
        binderId - バインダID
        recordIds - 文書番号のコレクション
例外:
        Exception

公開 API:DB接続を取得するためのAPIを追加

Ver.4.2.0 SDB-2353

概要

DB接続を取得するための公開APIを追加しました。 この公開APIで取得したDB接続は、コネクションプールの管理下に置かれます。 したがって、DB接続が不要となった場合には、利用者の責任においてクローズする必要があります。 詳細は、JavaDocを参照してください。

public static DataSource getDataSource(String name)

hibiki.xmlに定義されているデータソースを取得する。

ここで取得したデータソースはコネクションプールの管理下にある。
INSUITEのデータソースはgetDataSource("isdb")で取得できる。

パラメータ:
        name hibiki.xmlに記述されている database.source.property の name="name" value="XXXX"の箇所のXXXXの値です。
戻り値:
        データソース。指定した名前のデータソースが存在しない場合はnullを返す。

公開 API:ビューIDからビューキーを取得するAPIを追加

Ver.4.2.0 SDB-2444

概要

ビューIDからビューキーを取得するAPIを追加しました。 詳細は、JavaDocを参照してください。

■ビュー定義のインターフェース

public interface jp.co.dreamarts.hibiki.smartdb.api.APIViewDefn

■jp.co.dreamarts.hibiki.smartdb.api.APIBinderに追加したメソッド

public List<APIViewDefn> getViewDefns(ViewGroup viewGroup)

バインダのビュー定義リストを取得する

パラメータ:
        viewGroup - ビューグループ
戻り値:
        ビュー定義のリスト
public APIViewDefn getViewDefn(String key)

バインダのビュー定義を取得する

パラメータ:
        key - ビューキー又はビューID
戻り値:
        ビュー定義

公開 API:組織が参加するプロジェクトも取得できるようにAPIを改善

Ver.4.2.0 SDB-2494

概要

組織がメンバーとして所属しているプロジェクトも取得できるようにAPIを改善しました。

public List<Account> getProjectList()

アカウントが参加しているすべてのプロジェクトのリストを返す。
アカウトが所属する上位グループが参加しているプロジェクトも結果に含まれる。
注意:ユーザ、組織、役職グループのどちらのアカウントでも有効である。

    戻り値:
        アカウントが参加しているすべてのプロジェクトのアカウントリストを返す。参加しているプロジェクトが1件も無い場合は空のリストが返る。
public List<Account> getProjectList​(int depth)

アカウントの所属組織の上位を辿り、引数で指定された階層分、 自分自身及び上位組織が参加しているプロジェクトのリストを取得する。
アカウントの種類は限定しない。ユーザ、組織、役職グループ、プロジェクトのどちらでも指定できる。 実際、プロジェクトの上位プロジェクトは設定不可なので、プロジェクトに対してgetProjectList()はいつも空のリストが返ってくる。

ユーザの場合
    ・depth=1の場合はユーザーが直接所属する組織が参加するプロジェクトと、ユーザーが直接参加しているプロジェクトを取得する。
    ・depth>1の場合は、指定した階層数のすべての上位組織が参加するプロジェクトとユーザーが直接参加するプロジェクトのリストを取得する。
    ・組織アカウントに対して、引数で指定したdepth-1階層の組織が参加するプロジェクトと自身が直接参加するプロジェクトのリストを返す。 (引数1の場合は組織が直接参加するプロジェクトを返す。)
    ・引数に0以下を指定した場合は空のリストを返します。
グループの場合
    ・depth=1の場合はグループが直接参加しているプロジェクトを取得する。
    ・depth>1の場合は、depth-1階層数のすべての上位組織プラス自分自身が参加するプロジェクトのリストを取得する。

    パラメータ:
        depth - プロジェクト取得対象となる上方組織階層の深さ。0以下の場合は空のリストを返す
    戻り値:
        プロジェクトのアカウントリスト(参加しているプロジェクトが無い場合は空のリスト)、廃止プロジェクトは含まれない。

Client API:バインダ参照ボタンに関連するAPIを追加

Ver.4.2.0 SDB-2135

概要

Clinet APIにバインダ参照ボタンに関連するAPIを追加しました。 値の取得、設定、各種LayoutControl、カスタムイベントにも対応しています。 詳細は、JsDocを参照してください。

■DA.SmartDB.ClientDocumentクラスでバインダ参照ボタンが扱えるメソッド

clear(key)
getItemId(key)
getItemType(key)
getItemValue(key)
getLinkedDocument(key)
setItemValue(key, val)
setLinkedDocument(key, docLink)

■DA.SmartDB.LayoutControlクラスでバインダ参照ボタンが扱えるメソッド

hideItem(key)
isItemEditable(key)
isItemVisible(key)
setItemEditable(key, editable)
showItem(key)
switchDisplayItem(key, mode)

■DA.SmartDB.ClientAPIクラスでバインダ参照ボタンが扱えるメソッド

connectCustomEvent(triggers, evtName, fCond)
existsCustomEvent(evtName)
fireCustomEvent(evtName, oParams)
getAllCustomEvents()
registPageInitHookPoint(handler)
subscribeCustomEvent(evtName, oParams, maybeCond)

Client API:再計算APIを追加

Ver.4.2.0 SDB-1727

概要

Client APIに再計算APIを追加しました。 詳細は、JsDocを参照してください。

updateDynaItems(key, forceRefresh)

パラメータ:
        {String|Number} key
                部品キー
        {Boolean} forceRefresh
                トリガー部品の最新値を取得するかどうか。 trueの場合、トリガー部品の最新値を取得する。 falseの場合、トリガー部品の最新値を取得しない。

Client API:アクティビティ実施時にアドオン処理を実施するAPIを追加

Ver.4.2.0 SDB-2433

概要

Clinet API にアクティビティの実施ボタンを押下した際にアドオン処理を実施するAPIを追加しました。 これに伴い、アクティビティ、実施ボタンのそれぞれにキーを追加しています。 詳細は、JsDocを参照してください。

registProcessExecuteButtonHookPoint(handler)

パラメータ:
        {Function} handler
                カスタム処理関数