カスタムメタデータテンプレートの作成
カスタムメタデータテンプレートの作成
会社用のカスタムメタデータテンプレートを作成するには、直接BoxのAPIを使用するかBox SDKのいずれかを使用して新しいテンプレートを作成します。
このcustomerInfo
テンプレートでは、3つのフィールドを持つテンプレートを作成します。1つ目のフィールドは顧客のname
を保持するテキストフィールド、2つ目のフィールドは顧客の業種industry
に使用できる値のドロップダウンリスト、3つ目のフィールドは年間契約額の合計 (tav
) を表します。
各種フィールドタイプについて確認する
このテンプレートを作成するには、フィールドの構成と各フィールドの表示名を渡す必要があります。
cURL
curl -X POST https://api.box.com/2.0/metadata_templates/schema \
-H "authorization: Bearer <ACCESS_TOKEN>" \
-H "content-type: application/json" \
-d '{
"scope": "enterprise",
"displayName": "Customer Info",
"fields": [
{
"type": "string",
"displayName": "Name"
},
{
"type": "enum",
"displayName": "Industry",
"options": [
{"key": "Technology"},
{"key": "Healthcare"},
{"key": "Legal"}
]
},
{
"type": "float",
"displayName": "Total account value",
"key": "tav"
}
]
}'
.NET
var templateParams = new BoxMetadataTemplate()
{
DisplayName = "Customer Info",
Scope = "enterprise",
Fields = new List<BoxMetadataTemplateField>()
{
new BoxMetadataTemplateField()
{
Type = "string",
DisplayName = "Name"
},
new BoxMetadataTemplateField()
{
Type = "enum",
DisplayName = "Industry",
Options = new List<BoxMetadataTemplateFieldOption>()
{
new BoxMetadataTemplateFieldOption() { Key = "Technology" },
new BoxMetadataTemplateFieldOption() { Key = "Healthcare" },
new BoxMetadataTemplateFieldOption() { Key = "Legal" }
}
},
new BoxMetadataTemplateField()
{
Type = "float",
DisplayName = "Total account value",
Key="tav"
},
}
};
BoxMetadataTemplate template = await client.MetadataManager.CreateMetadataTemplate(templateParams);
Java
MetadataTemplate.Field name = new MetadataTemplate.Field();
name.setType("string");
name.setDisplayName("Name");
MetadataTemplate.Field industry = new MetadataTemplate.Field();
industry.setType("enum");
industry.setDisplayName("Industry");
MetadataTemplate.Option technology = new MetadataTemplate.Option();
technology.setKey("Technology");
MetadataTemplate.Option healthcare = new MetadataTemplate.Option();
healthcare.setKey("Healthcare");
MetadataTemplate.Option legal = new MetadataTemplate.Option();
legal.setKey("Legal");
List<MetadataTemplate.Option> options = new ArrayList<MetadataTemplate.Option>();
options.add(technology);
options.add(healthcare);
options.add(legal);
MetadataTemplate.Field tav = new MetadataTemplate.Field();
tav.setType("float");
tav.setDisplayName("Total account value");
tav.setKey("tav");
List<MetadataTemplate.Field> fields = new ArrayList<MetadataTemplate.Field>();
fields.add(name);
fields.add(industry);
fields.add(tav);
MetadataTemplate template = MetadataTemplate.createMetadataTemplate(api, "enterprise", "customerInfo", "Customer Info", false, fields);
Python
from boxsdk.object.metadata_template import MetadataField, MetadataFieldType
fields = [
MetadataField(MetadataFieldType.STRING, 'Name')
MetadataField(MetadataFieldType.ENUM, 'Industry', options=['Technology', 'Healthcare', 'Legal'])
]
template = client.create_metadata_template('Customer Info', fields)
Node
client.metadata.createTemplate(
'Customer Info',
[
{
type: 'string',
displayName: 'Name'
},
{
type: 'enum',
displayName: 'Industry',
options: [
{key: 'Technology'},
{key: 'Healthcare'},
{key: 'Legal'}
]
},
{
type: 'float',
displayName: 'Total account value',
key: 'tav'
}
]
).then(template => {
// ...
});
このAPIにより、新しく作成されたメタデータテンプレートが返されます。
{
"id": "100ac693-a468-4b37-9535-05984b804dc2",
"type": "metadata_template",
"templateKey": "customerInfo",
"scope": "enterprise_34567",
"displayName": "Customer Info",
"hidden": false,
"copyInstanceOnItemCopy": false,
"fields": [
{
"id": "5c6a5906-003b-4654-9deb-472583fc2930",
"type": "string",
"key": "name",
"displayName": "Name",
"hidden": false
},
{
"id": "cf3eb5b8-52ef-456c-b175-44354a27e289",
"type": "enum",
"key": "industry",
"displayName": "Industry",
"options": [
{"key": "Technology"},
{"key": "Healthcare"},
{"key": "Legal"}
],
"hidden": false
},
{
"id": "5c6a5906-4654-9deb-003b-472583fc2930",
"type": "float",
"key": "tav",
"displayName": "Total account value",
"hidden": false
}
]
}