データストレージ:エンティティおよび拡張機能へのデータ保存

データストレージ:エンティティおよび拡張機能へのデータ保存

お知らせ:当社は、お客様により充実したサポート情報を迅速に提供するため、本ページのコンテンツは機械翻訳を用いて日本語に翻訳しています。正確かつ最新のサポート情報をご覧いただくには、本内容の英語版を参照してください。

Zoho BugTrackerの拡張機能を構築する際、拡張機能のデータをどこかに保存する必要がある場合があります。このようなエンティティや拡張機能のデータを保存するために、キーと値のペアを使用します。これにより、行と列でデータを保存するRDBMSのような従来のデータベースは不要になります。

エンティティプロパティ

キーと値のペアの概要

「キーと値」は、データを保存するための形式です。エンティティまたは拡張機能のプロパティや属性を、キーと値のペアとして保存できます。キーは一意の文字列で、値はJSONオブジェクトです。セッション情報、ユーザーのプロフィール、設定などのデータをキーと値のペアとして保存できます。Zoho BugTrackerで対応しているエンティティや、開発した拡張機能のデータを保存できます。

エンティティに対するデータの保存

Zoho BugTrackerでは、プロジェクトとバグのエンティティに対応しています。それぞれのエンティティに対して、プロジェクト固有またはバグ固有のデータを保存できます。キーは一意の文字列で、データはJSONオブジェクトです。後でそのキーによって識別する必要があります。エンティティに対して保存したデータは、次の各メソッドを使用して、保存、取得、更新、削除できます。

現在のユーザーに読み取りアクセス権のみがある場合、データの取得のみ可能です。つまり、retrieve()のみを呼び出せます。編集アクセス権がある場合は、'store()'、'update()'、'remove()'などの他の関数も呼び出せます。

entity.store

エンティティに対してデータを保存します。

var value = [
{'id' : '1-QabBt69U8myXYRDVU-1YiCo2k-JWRfu','name' : 'Sample.png'}
];
var count = 1;
zohobugtracker.entity.store('6573492', value, count).then(function(response)
/* Output
{
  'properties': [
    {
      'key': '6573492',
      'value': '[{\'id\':\'1-QabBt69U8myXYRDVU-1YiCo2k-JWRfu\',\'name\':\'sample.png\'}]',
      'count' : 1,
      'id': 1587134426
    }
  ]
}
*/
);

引数

引数名 データ型 説明
key 文字列

エンティティプロパティを識別するために使用する一意の文字列です。後でデータを取得する際は、このキーのみを使用してください。

メモ:最大長:<255>未定

value JSONObject エンティティに対して保存するプロパティ/データです。
count 整数 エンティティに対して保存される発生回数です。

エンティティが削除されると、そのエンティティに対して保存されているデータは自動的に削除されます。

entity.retrieve

エンティティに対して保存されているデータを取得します。このメソッドの引数には、同じデータを保存したときに使用したキーを指定します。

zohobugtracker.entity.retrieve('6573492').then(function(response)
/*Output
{
  'properties': [
    {
      'key': '6573492',
      'value': '[{\'id\':\'1-QabBt69U8myXYRDVU-1YiCo2k-JWRfu\',\'name\':\'update.png\'}]',
      'id': 1587134426,
      'count: 1
    }
  ]
}
*/
);

entity.update

エンティティに対して保存されているデータを更新します。このメソッドの引数は、次の4つの定義済みキーを含むJSONオブジェクトです。

引数名 データ型 説明
id 文字列 entity.store()メソッドを使用して現在のキーをエンティティに対して保存したときに、出力として生成されたIDです。
key 文字列 エンティティに対してマッピングする新しいキーです。以前の/現在のキーをそのまま使用することもできます。
value JSONオブジェクト エンティティに対して更新するデータまたはプロパティです。
count 整数 エンティティに対して更新される発生回数です。

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-QabBt69U8myXYRDVU-1YiCo2k-JWRfu\',\'name\':\'Sample_New.png\'}]',
      'id': 1587134426,
      'count' : 2
    }
  ]
}
*/
);

entity.remove

特定のエンティティに対して保存されているデータを削除します。このメソッドの引数は、'entity.store()'メソッドを使用して同じデータを保存したときに出力として生成されたIDです。

zohobugtracker.entity.remove(1587134426).then(function(response)
/* Output { 'status': 'success' } */
);

エンティティプロパティの制限事項

  • キーに対して一度に保存できる値は50KBを超えることはできません。
  • このメソッドは、'app_settings'および'top_band'の場所では呼び出せません。
  • エンティティプロパティに保存する値は有効なJSON形式である必要があります。
  • エンティティプロパティの同時編集では整合性は保証されません。つまり、2人の異なるユーザーが同じエンティティプロパティを同時に変更した場合、最新の変更のみが保存され、以前の変更は失われるか上書きされます。

拡張機能プロパティ

拡張機能プロパティの概要

拡張機能自体に対して保存されるキーと値のペアです。ただし、拡張機能に対して保存されたデータは、その拡張機能を製品からアンインストールすると失われます。一方、エンティティに対して保存されたデータは、拡張機能をアンインストールしても保持されます。削除されるのは拡張機能固有の情報のみで、エンティティ固有のデータは他の拡張機能から引き続きアクセスできるためです。

app.store

拡張機能に対してデータを保存します。

var value = [
{'id' : '1-QabBt69U8myXYRDVU-1YiCo2k-JWRfu','name' : 'Sample.png'}
];
zohobugtracker.app.store('6573492', value).then(function(response)
/* Output
{
  'properties': [
    {
      'key': '6573492',
      'value': '[{\'id\':\'1-QabBt69U8myXYRDVU-1YiCo2k-JWRfu\',\'name\':\'sample.png\'}]',
      'id': 1587134426
    }
  ]
}
*/
);

引数

引数名 データ型 説明
key 文字列 拡張機能プロパティを識別するために使用する一意の文字列です。
value JSONObject 拡張機能に対して保存するプロパティ/データです。

app.retrieve

拡張機能に対して保存されているデータを取得します。このメソッドの引数には、同じデータを保存したときに使用したキーを指定します。データを取得できるのは、保存先の拡張機能からこのメソッドを呼び出した場合のみです。拡張機能をアンインストールすると、データは削除されます。

zohobugtracker.app.retrieve('6573492').then(function(response)
/*Output
{
  'properties': [
    {
      'key': '6573492',
      'value': '[{\'id\':\'1-QabBt69U8myXYRDVU-1YiCo2k-JWRfu\',\'name\':\'update.png\'}]',
      'id': 1587134426
    }
  ]
}
*/
);

app.update

拡張機能に対して保存されているデータを更新します。このメソッドの引数は、次の定義済みキーを含むJSONオブジェクトです。

引数名 データ型 説明
id 文字列 app.store()メソッドを使用して現在のキーを拡張機能に対して保存した際に、出力として生成されたIDです。
key 文字列 拡張機能に関連付ける新しいキーです。現在のキーをそのまま使用することもできます。
value JSONオブジェクト 拡張機能に対して更新するデータまたはプロパティです。

var valueObj = [
{'id' : '1-QabBt69U8myXYRDVU-1YiCo2k-JWRfu','name' : 'Sample_New.png'}
];
zohobugtracker.app.update({id:'1587134426',key:'6573492',value:valueObj}).then(function(response)
/*Output
{
  'properties': [
    {
      'key': '6573492',
      'value': '[{\'id\':\'1-QabBt69U8myXYRDVU-1YiCo2k-JWRfu\',\'name\':\'Sample_New.png\'}]',
      'id': 1587134426
    }
  ]
}
*/
);

app.remove

特定の拡張機能に対して保存されているデータを削除します。このメソッドの引数は、同じデータをapp.store()メソッドを使用して保存した際に、出力として生成されたIDです。

zohobugtracker.app.remove(1587134426).then(function(response)
/* Output
{
  'status': 'success'
}
*/
);

拡張機能プロパティの制限

  1. キーに対して一度に保存する値は、50KBを超えないようにしてください。
  1. 1つの拡張機能に対して保存できるキーと値のペアは、最大100件です。
  1. 拡張機能プロパティに保存する値は、有効なJSON形式である必要があります。
  1. 拡張機能プロパティの同時編集では、一貫性は保証されません。つまり、2人の異なるユーザーが同じ拡張機能プロパティを同時に変更した場合、最新の変更のみが保存され、それ以前の変更は失われるか上書きされます。
以下の各メソッドを使用して、拡張機能に対して保存するデータを、保存、取得、更新、削除できます。