🎉

カスタムオプションを管理できる公開APIを作成しました

概要

カスタムオプション(役職などのセレクト項目に、テナントが独自に追加した選択肢)を外部システムから操作できる公開APIを新規提供します。
これまで選択肢の作成・変更は管理画面からの手作業に限られていましたが、本リリースにより、外部システムの人事マスタの変更(例: 役職名の改称・廃止・追加)を人手を介さずYESODの選択肢に自動反映できるようになり、手動メンテナンスが不要になります。
 

主な特徴

ドキュメントは準備中のため、少々お待ちください。
 
リクエストとレスポンスの例
上のAPI仕様書(PDF)の補足として、各操作のリクエストとレスポンスの例を示します。ID・コード値・名称はすべてサンプルです(役職項目に 001 部長・002 課長・003 係長 がある想定)。
  • 認証は全操作共通で、リクエストヘッダに を指定します
  • エラー時のレスポンス形式(key と message を返す)はPDFを参照してください
一覧の取得(コード値での検索を含む)
リクエスト(項目IDでの絞り込みは任意):
レスポンス(200):
コード値で検索する場合は のように指定します(レスポンスの形は同じ。attributeId と併用すると AND 条件)。無効化済みの選択肢(selectable=false)も含まれます。
1件取得
リクエスト:
レスポンス(200):
追加
リクエスト(コード値・並び順・序列は任意。並び順を省略すると末尾に追加):
レスポンス(201。選択肢IDが採番され、並び順は末尾=4 になった例):
変更(部分更新)
リクエスト(変えたい項目だけを送る。省略した項目は変更されない):
レスポンス(200。名称だけ変わり、コード値・並び順・序列は維持):
⚠️ labels は指定するとオブジェクト全体が置き換わります(ja_JP だけ送ると en_US は未設定になります)。維持したい言語も含めて送ってください。
無効化 / 有効化
リクエスト(ボディ不要):
レスポンス(200。selectable が false になる):
有効化は で、selectable が true に戻ったレスポンスが返ります。どちらも既にその状態であれば何も変更せず 200 を返します。
一括置換(洗い替え)
上の代表ユースケースの月次更新(001 を「部課長」に改称・002 を廃止・004 係長補佐を追加)をそのまま例にしています。
リクエスト(key=code。残したい選択肢の全量リストを送る):
レスポンス(200。各選択肢に result が付く。リストに載せた順に並び、リスト外=無効化されたものが後続):
  • 並び順(order)・序列(hierarchy)は省略したため既存の値が維持されています(新規の 004 は末尾=4)。リストの並びを反映したい場合は各要素の order に 1 から連番を指定します
  • 001 の en_US が消えているのは、labels がオブジェクト全体で置き換わるためです(維持したい言語も含めて送ってください)。002 はリスト外のため名称は変わらず無効化だけされています
  • コード値未設定の選択肢も含めて置換したい場合の の使い方はPDFを参照してください
いずれの操作でも、レスポンスのカスタムオプションには 選択肢ID・項目ID・コード・名称(日本語・英語)・並び順・序列・有効/無効 が含まれます。
主な仕様は次のとおりです。
  • 無効化は物理削除ではなく「選択不可」への切り替え。無効化した選択肢はAPIで有効化できます
  • 無効化時は画面操作と同じく、グループのデフォルトフィルタ(雇用形態・在籍状況)からも該当選択肢が外れます
  • 操作対象はカスタムオプションのみ。YESOD標準の選択肢は参照・操作とも対象外(標準を含む全体像が必要な場合は既存の を利用)
  • 一括置換は、項目単位で「あるべき全量リスト」を受け取り、突合キー(コード または 選択肢ID)で あれば更新・なければ作成・リストにないものは無効化 を一度に実行します(外部システムのマスタ全量インポート用。CS確認により追加開発)。突合キーがコードの場合、コード未設定の選択肢(画面で手動作成したもの)は影響を受けません
  • 一括置換で省略した項目(コード・並び順・序列)は既存の値をそのまま維持します(外部システムが管理していない項目が置換のたびに消えないようにするため)
  • 各選択肢について「追加・更新・再有効化・無効化・変更なしのどれになったか」がレスポンスで返るため、外部システム側で取り込み結果を確認できます