採番APIによる自動採番

一定の形式に従ったユニークな番号を自動採番するには、GetAutoNumber API を利用できます。

GetAutoNumber API#

/api/v0/applications/:app-id/datastores/:datastore-id/fields/:field-id/autonum

URL Params

app-id : アプリケーションID(管理画面で設定した画面IDを指定)
datastore-id : データストアID(管理画面で設定した画面IDを指定)
field-id : 自動採番項目のフィールドID(管理画面で設定した画面IDを指定)

Query Params

- branch_key : 枝番コードを指定 (省略可能)
- zero_padding : 番号をゼロ埋めする 例)1 -> 0001
- digit : 桁数を指定する 例)5 -> 00001

部署ごと・商材ごとに枝番を取る場合は、branch_key を使用して、枝番ごとに操作します

自動採番型フィールドの設定#

採番 API (GetAutoNumber)は、自動採番型フィールドに対応しています。採番 API を利用するには、自動採番型フィールドを追加して設定しておく必要があります。

  1. 管理画面の「新しい画面項目を追加」で自動採番型フィールドを作成します
  2. 「画面項目設定」で、画面項目 ID を設定します

自動採番型フィールドの設定

必要な ID の例

- app-id : TestApp
- datastore-id : TODO-SAMPLE
- field-id : AutoNum1

GetAutoNumber API の呼び出し例#

GetAutoNumber

GET https://api.hexabase.com/api/v0/applications/TestApp/datastores/TODO-SAMPLE/fields/AutoNum1/autonum

採番の種類

デフォルト(パラメータ指定なし)=> Prefix+連番
branch_key (枝番を指定) => Prefix + 枝番 + (枝番内での)連番

リクエスト例

... fields/AutoNum1/autonum?branch_key=SUBCODE_&zero_padding=true&digit=3

レスポンス例

{
"has_error": false,
"result": {
"number": 4,
"value": "PREFIX_SUBCODE_004"
}
}

採番 API のユースケース#

採番 API で値を取得すると、その度に値が更新されます。取得した値を保持しておくには、別フィールドに格納しておきます。

格納するフィールドは、Text 型フィールドでも構いません。また、自動採番型フィールドに保存する必要はありません。

"value": “A001"を取得する#

GET /autonum?branch_key=A &zero_padding=true&digit=3

年月ごとに連番#

GET /autonum?branch_key=202011 &zero_padding=true&digit=5

採番APIのユースケース

採番 API の仕組み#

採番 API は、API を実行した順番で採番していきます。番号管理テーブルの論理構造イメージは、次のようになっています。自動採番された番号は、MySQL でトランザクション管理しており、重複しないようになっています。このとき、枝番が変更されるとリセットされます。

フィールド ID枝番コード番号
AutoNum1NULL0
AutoNum1SUBCODE_4
AutoNum120201112
FieldBNULL10001
FieldCD101345
FieldCD102234