001-011246
REST API「ユーザーの一覧を取得する」を実行するとき、カスタマイズ項目に設定された文字列を「name」の値に指定すると、該当するユーザー情報を取得できない場合がある。
- 種別
- 不具合
- 機能
-
- ユーザー
- REST API
- 再現バージョン
-
- 5.0.0
- 5.0.1
- 5.0.2
- 5.5.0
- 5.5.1
- 5.9.0
- 5.9.1
- 5.9.2
- 5.15.0
- 5.15.1
- 5.15.2
- 改修バージョン
- 6.0.0
- 公開日
- 2023-03-16
- 更新日
- 2023-10-27
詳細
【発生条件】
次の条件をすべて満たす場合に発生します。
ユーザー1のユーザー情報が取得できません。
例:
------------
{"users":[],"hasNext":false}
------------
→正しい結果:
ユーザー1の情報が取得できます。
例:
------------
{"users":[{"id":"2","name":"ユーザー1","code":"ユーザー1"}],"hasNext":false}
------------
補足:
次の条件をすべて満たす場合に発生します。
- ユーザー情報の項目に、検索対象に含める設定にしたカスタマイズ項目が存在する。
- REST API「ユーザーの一覧を取得する」を使用するとき、カスタマイズ項目に設定された文字列を「name」の値に指定する。
- 「name」の値に指定した文字列が、カスタマイズ項目に設定された文字列の1025バイト目以降に含まれている。
- ユーザー情報の項目に、検索対象に含める設定にしたカスタマイズ項目を追加します。
例:
---------------
項目名:カスタマイズ項目1(clid=1)
項目タイプ:文字列(複数行)
使用:「使用する」のチェックボックスを選択する
検索対象:「検索対象に含める」のチェックボックスを選択する
項目名:カスタマイズ項目2(clid=2)
項目タイプ:文字列(1行)
使用:「使用する」のチェックボックスを選択する
検索対象:「検索対象に含める」のチェックボックスを選択する
---------------
補足:- (システム管理画面)「ユーザー > ユーザー情報の項目」画面で追加します。
- カスタマイズ項目1、カスタマイズ項目2の順に追加します。
- カスタマイズ項目ID(clid)とは、カスタマイズ項目を識別するために割り当てられた数字です。
- カスタマイズ項目ID(clid)は、次の画面のURLで確認できます。
(システム管理画面)「ユーザー > ユーザー情報の項目 > 項目の詳細」画面
- (システム管理画面)「ユーザー > ユーザー情報の項目」画面で追加します。
- ユーザーを追加します。
例:
---------------
名前:ユーザー1
カスタマイズ項目1:1234567890…(1019バイト以上の文字列)
カスタマイズ項目2:test1
---------------
補足:- カスタマイズ項目1には、カスタマイズ項目2と合計して1024バイトを超えるような文字列を設定します。
- カスタマイズ項目1には、カスタマイズ項目2と合計して1024バイトを超えるような文字列を設定します。
- REST API「ユーザーの一覧を取得する」を使用して、ユーザー1のユーザー情報を取得します。
例:
------------
GET /xxxxx/xxxxx/grn.xxx/api/v1/base/users?name=test1 HTTP/1.1
Host: xx.xx.xx.xx
X-Cybozu-Authorization: QWRtaW5pc3RyYXRvcjpjeWJvenU=
------------
補足:- 「name」の値に、カスタマイズ項目2に入力した文字列を指定します。
- Garoon REST APIの使用については、cybozu developer networkをご確認ください。
https://cybozu.dev/ja/garoon/docs/rest-api/
- 「name」の値に、カスタマイズ項目2に入力した文字列を指定します。
ユーザー1のユーザー情報が取得できません。
例:
------------
{"users":[],"hasNext":false}
------------
→正しい結果:
ユーザー1の情報が取得できます。
例:
------------
{"users":[{"id":"2","name":"ユーザー1","code":"ユーザー1"}],"hasNext":false}
------------
補足:
- 検索対象に含める設定にしたカスタマイズ項目は、カスタマイズ項目ID(clid)順に文字列を連結して、1024バイトまでを検索対象としています。
- 検索対象に含める設定にしたカスタマイズ項目が複数ある場合、各項目の文字列は1バイトの区切り文字によって区切られ、検索対象文字列として取り扱われます。
例:- カスタマイズ項目1、カスタマイズ項目2がそれぞれ10バイトの場合:
10バイト+1バイト(区切り文字)+10バイトで、検索対象となる文字列のサイズは21バイト - カスタマイズ項目1、カスタマイズ項目2、カスタマイズ項目3がそれぞれ10バイトの場合:
10バイト+1バイト(区切り文字)+10バイト+1バイト(区切り文字)+10バイトで、検索対象となる文字列のサイズは32バイト
- カスタマイズ項目1、カスタマイズ項目2がそれぞれ10バイトの場合:
回避/対応方法
【対応方法】
検索対象に含める設定にしたカスタマイズ項目で、「name」に指定した文字列が、それよりも前にある文字列と合わせて1024バイト以内に収まるように操作を行い、REST API「ユーザーの一覧を取得する」を実行します。
例:
検索対象に含める設定にしたカスタマイズ項目で、「name」に指定した文字列が、それよりも前にある文字列と合わせて1024バイト以内に収まるように操作を行い、REST API「ユーザーの一覧を取得する」を実行します。
例:
- カスタマイズ項目1を、検索対象に含めない設定に変更する。
- カスタマイズ項目1の文字数を減らす。
- カスタマイズ項目1に設定された文字列を、カスタマイズ項目2より後に追加したカスタマイズ項目に移動する。