採番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 を利用するには、自動採番型フィールドを追加して設定しておく必要があります。
- 管理画面の「新しい画面項目を追加」で自動採番型フィールドを作成します
- 「画面項目設定」で、画面項目 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 を実行した順番で採番していきます。番号管理テーブルの論理構造イメージは、次のようになっています。自動採番された番号は、MySQL でトランザクション管理しており、重複しないようになっています。このとき、枝番が変更されるとリセットされます。
フィールド ID | 枝番コード | 番号 |
---|---|---|
AutoNum1 | NULL | 0 |
AutoNum1 | SUBCODE_ | 4 |
AutoNum1 | 202011 | 12 |
FieldB | NULL | 10001 |
FieldC | D101 | 345 |
FieldC | D102 | 234 |
: | ||
: |