データストレージ: エンティティとエクステンションのデータ保存
エンティティ 属性
キーバリューペアとは何ですか?
'キーバリュー'はデータ保存形式です。エンティティやエクステンションの属性をキーバリューペアで保存することができます。キーは一意の文字列で、値はJSONオブジェクトです。セッション情報、ユーザープロファイル、設定などの情報をキーバリューペアとして保存することができます。Zoho プロジェクトでサポートされるエンティティに関するデータや、あなたが作成したエクステンションのデータを保存することができます。
エンティティに対するデータの保存
Zoho プロジェクトは、プロジェクト、タスク、およびイシューのエンティティをサポートしています。それぞれのエンティティに対して、プロジェクト固有、タスク固有、またはイシュー固有のデータを保存することができます。キーは一意の文字列で、後でキーで特定する必要があるJSONオブジェクトとしてデータが必要です。次の方法をそれぞれ使用して、エンティティに対して保存したデータを、保存、取得、更新、削除できます。
entity.store
var value = [
{'id' : '1-QabBt69U8myXYRDVU-1YiCo2k-JWRfu','name' : 'Sample.png'}
];
var count = 1;
zohoprojects.entity.store('6573492', value, count).then(function(response)
/* 出力結果
{
'properties': [
{
'key': '6573492',
'value': '[{\'id\':\'1-QabBt69U8myXYRDVU-1YiCo2k-JWRfu\',\'name\':\'sample.png\'}]',
'count' : 1,
'id': 1587134426
}
]
}
*/
);
引数
引数名
データタイプ
説明
キー
文字列
エンティティ属性を識別するために使用されるユニークな文字列です。このキーのみを使って後でデータを取得します。
メモ: 最大長: <255> TBD
値
JSONObject
エンティティに対して保存されるべきデータの属性。
カウント
Integer
エンティティに保存される発生回数の数値。
エンティティの取得
エンティティに保存されているデータを取得します。このメソッドの引数には、同じデータを保存した際に使用したキーを指定してください。
zohoprojects.entity.retrieve('6573492').then(function(response)
/*出力結果
{
'properties': [
{
'key': '6573492',
'value': '[{\'id\':\'1-QabBt69U8myXYRDVU-1YiCo2k-JWRfu\',\'name\':\'update.png\'}]',
'id': 1587134426,
'count': 1
}
]
}
*/
);
entity.update
エンティティに保存されたデータを更新します。このメソッドの引数は、以下の四つの事前定義されたキーを持つJSONオブジェクトです:
引数の名前
データ型
説明
id
string
エンティティ用にentity.store()メソッドを使用して現在のキーを保存する際に生成されたIDです。
キー
文字列
エンティティにマッピングする新しいキー。古い/現在のキーを保持することもできます。
値
JSONオブジェクト
エンティティに対して更新されるべきデータまたは属性。
回数
整数
エンティティに更新される発生回数。
var valueObj = [
{'id' : '1-QabBt69U8myXYRDVU-1YiCo2k-JWRfu','name' : 'Sample_New.png'}
];
zohoprojects.entity.update({id:'1587134426',key:'6573492',value:valueObj,count:2}).then(function(response)
/*Output
{
'properties': [
{
'key': '6573492',
'value': '[{\'id\':\'1-QabBt69U8myXYSB7r6QTGPt48』',
'id': 1587134426,
'count' : 2
}
]
}
*/
);
entity.remove
特定のエンティティに保存されたデータを削除します。このメソッドの引数は、同じデータを'entity.store()'メソッドを使用して保存したときに生成されたIDです。
zohoprojects.entity.remove(1587134426).then(function(response)
/* 出力 { 'status': 'success' } */
);
エンティティ属性の制限
-
キーに保存された値は一度に50KBを超えてはいけません。
-
このメソッドは'app_settings''と'top_band''の位置には呼び出すことができません。
-
エンティティ属性に保存された値は、有効なJSON形式でなければなりません。
-
エンティティ属性の同時編集は一貫性を保証しません。つまり、異なる2人のユーザーが同時に同じエンティティ属性を変更した場合、最新の変更のみが保存され、以前の変更は失われます/上書きされます。
拡張属性
拡張属性とは?
それは、拡張自体に保存されるキーと値のペアです。ただし、製品から拡張機能がアンインストールされると、保存されたデータは失われます。一方、エンティティに保存されたデータは、拡張機能がアンインストールされた場合でも保持されます。なぜなら、特定の拡張機能に関連する情報のみが削除され、エンティティ特有のデータは他の拡張機能がアクセスできる状態でまだ利用可能だからです。
app。store
拡張機能のデータを保存します。
var value = [
{'id' : '1-QabBt69U8myXYRDVU-1YiCo2k-JWRfu','name' : 'Sample.png'}
];
zohoprojects.app.store('6573492', value).then(function(response)
/* 出力 { 'properties': [ { 'key': '6573492', 'value': '[{\'id\':\'1-QabBt69U8myXYRDVU-1YiCo2k-JWRfu\',\'name\':\'Sample.png\'}]', 'id': 1587134426 } ] } */
);
引数
引数の名前 データ型 説明 key string 拡張プロパティを識別する一意の文字列。 value JSONObject 拡張に対して保存されるプロパティまたはデータ。
app.retrieve
このメソッドはエクステンションに対して保存されたデータを取得します。引数はデータを保存する際に使ったキーである必要があります。このメソッドはデータを保存したエクステンションからのみ呼び出された場合にデータを取得できます。もしエクステンションがアンインストールされた場合、データは削除されます。
zohoprojects.app.retrieve('6573492').then(function(response)
/* 出力 { 'properties': [ { 'key': '6573492', 'value': '[{\'id\':\'1-QabBt69U8myXYRDVU-1YiCo2k-JWRfu\',\'name\':\'update.png\'}]', 'id': 1587134426 } ] } */
);
app.update
このメソッドはエクステンションに保存されたデータを更新します。メソッドの引数は以下の予め定義されたキーを含むJSONオブジェクトです:
引数名
データ型
説明
id
string
このidは、app.store()メソッドを使って、現在のキーを拡張機能に対して保存したときに生成された出力です。
キー 文字列 拡張機能に対してマッピングされる新しいキーです。古い・現在のキーを保持することも選択できます。 値 JSONオブジェクト 拡張機能に対して更新されるデータまたはプロパティです。
var valueObj = [
{'id' : '1-QabBt69U8myXYRDVU-1YiCo2k-JWRfu','name' : 'Sample_New。png'}
];
zohoprojects< span style='font-size: inherit' class='size'>.app< span style='font-size: inherit' class='size'>.update({id:'1587134426',key:'6573492',value:valueObj}).< span style='font-size: inherit' class='size'>then(function(response)
/*出力 { 'プロパティ': [ { 'キー': '6573492', '値': '[{'id':'1-QabBt69U8myXYRDVU-1YiCo2k-JWRfu','名前':'Sample_New。png'}]', 'id': 1587134426 } ] } */
style='color: rgb(153, 153, 153)' class='colour'>);
app.remove
特定の拡張子に対して保存されたデータを削除します。メソッドの引数には、同じデータをapp.store()メソッドを使用して保存した際に生成されたIDが使用されます。
zohoprojects.app.remove(1587134426).then(function(response)
/* 出力 { 'status': 'success' } */
);
拡張プロパティの制限
- キーに対して一度に保存される値は50KBを超えてはなりません。
- エクステンションに対して保存できるキーと値のペアは最大で100組までです。
- エクステンションのプロパティに保存される値は、有効なJSON形式である必要があります。
- エクステンションのプロパティに対する同時編集は一貫性を保証しません。つまり、異なるユーザーが同時に同じエクステンションのプロパティを変更した場合、最新の変更のみが保存され、先の変更は失われるか上書きされます。
したがって、エクステンションに対して保存したデータを以下のメソッドを使用して store, retrieve, update, delete することができます。