会員などのマスタ情報にApps固有の項目を追加し、値を保持することが可能となります。
自由項目同様に型・サイズ等を設定します。
POST members.json
{
"MEMBER_ID": 1,
"metadata": {
"KEY1": "VALUE1",
"KEY2": "VALUE2"
}
}
PUT members/1.json
{
"FREE_ITEM1": 1,
"metadata": {
"KEY1": "VALUE1"
}
}
POST payment_ways.json
{
"KESSAI_CD": "TEST_PAYMENT_WAY",
"metadata": {
"KEY1": "VALUE1",
"KEY2": "VALUE2"
}
}
PUT mail_validate_temp/1.json
{
"metadata": {
"KEY1": "VALUE1"
}
}
POST orders.json
{
"ORDER_NO": "1",
"metadata": {
"KEY1": "VALUE1",
"KEY2": "VALUE2"
}
}
PUT orders/1.json
{
"metadata": {
"KEY1": "VALUE1"
"KEY2": "VALUE2"
}
}
FormDefinitionsService fs = EbisumartService.getFormDefinitionsService();
FormDefinition fdata = fs.getFormDefinition("MEMBER_METADATA", "APP_CD:META_NAME");
// 定義を設定
FormDefinition fd = new FormDefinition();
fd.setFreeTableName("MEMBER_METADATA");
fd.setFreeTableItemName("APP_CD:META_NAME");
fd.setDispName("会員メタデータサンプル");
fd.setFormType("0");
fd.setCheckProperty("1");
// 定義の登録
fs.addNewFormDefinition(fd);
// 会員にメタデータ情報をセット
Metadata metadata = new Metadata();
metadata.set("KEY1", "VALUE1");
Member member = new Member();
member.setMemberId(memberId);
member.setMetadata(metadata);
// 会員情報の更新
EbisumartService.getMembersService().updateMember(member);
// 取得するメタデータを指定
List selectColumns = new ArrayList(){
{
add("metadata(KEY1)");
}
};
// 会員情報を取得
Member member = EbisumartService.getMembersService().getMemberById(memberId, selectColumns);
// メタ情報を取得
String metaDataValue = (String) member.getMetadata().get("VALUE1");