データモデル

重要事項: イベント処理機能(Esper)の新規利用は終了し、ご利用中のお客様におかれましてはApama CEPエンジンへの切替完了後、順次サポートを終了いたします。Apama によるカスタムストリーミング処理機能の詳細は カスタムストリーミング処理ガイド をご覧ください。
本章の記載内容は新規利用終了済みのイベント処理機能(Esper)に関する記述になりますのでご注意ください。

入力ストリーム

一般的な構造

入力ストリームの構造はすべて同様です。

パラメータ データ型 説明
_type String イベントの型。下表にある、それぞれのストリームに適用できる型値を見てください
_mode String Things Cloud に送信されるデータの処理モード。処理モード参照。
_origin String イベントの作成元。CEPルールで作成されたデータの場合"cep"となります。
payload Object イベントに含まれる実データ

ストリーム
ManagedObjectCreated MANAGED_OBJECT_CREATE
ManagedObjectUpdated MANAGED_OBJECT_UPDATE
ManagedObjectDeleted MANAGED_OBJECT_DELETE
EventCreated EVENT_CREATE
EventUpdated EVENT_UPDATED
EventDeleted EVENT_DELETE
MeasurementCreated MEASUREMENT_CREATE
MeasurementDeleted MEASUREMENT_DELETE
OperationCreated OPERATION_CREATE
OperationUpdated OPERATION_UPDATE
AlarmCreated ALARM_CREATE
AlarmUpdated ALARM_UPDATE
ResponseReceived REQUEST_RESULT

より簡単にアクセスする方法として、APIに定義されたパラメータを介してアクセスすることで、それぞれのストリームのデータ型の payloadを直接受け取れます。

API パラメータ データ型
Inventory managedObject ManagedObject
Events event Event
Measurements measurement Measurement
Device control operation Operation
Alarms alarm Alarm

マネージドオブジェクト

クラス: com.cumulocity.model.ManagedObject

パラメータ データ型 説明
id ID マネージドオブジェクトのID
type String マネージドオブジェクトの型
name String マネージドオブジェクトの名称
lastUpdated Date マネージドオブジェクトの最終更新時間
owner String マネージドオブジェクトの所有者
childAssets Object[] すべての子アセットのIDの配列
childDevices Object[] すべての子デバイスのIDの配列
assetParents Object[] すべての親アセットのIDの配列
deviceParents Object[] すべての親デバイスのIDの配列

親や子への参照の Object[] に含まれるのはIDのみです。キャスト関数を使用できます。例:cast(event.managedObject.childAssets[0], com.cumulocity.model.ID).

例:

select
  event.managedObject.id,
  event.managedObject.type,
  event.managedObject.name,
  event.managedObject.lastUpdated,
  event.managedObject.owner,
  event.managedObject.childAssets,
  event.managedObject.assetParents,
  event.managedObject.deviceParents,
  event.managedObject.childDevices
from ManagedObjectCreated event;

イベント

クラス: com.cumulocity.model.event.Event

パラメータ データ型 説明
id ID イベントのID
creationTime Date イベントがデータベースに作成された時間
type String イベントの型
text String イベントのテキスト
time Date イベントが発生した時間(デバイスから送信されたもの)
source ID イベントを生成したデバイスのID

例:

select
  event.event.id,
  event.event.creationTime,
  event.event.type,
  event.event.text,
  event.event.time,
  event.event.source
from EventCreated event;

メジャーメント

クラス: com.cumulocity.model.measurement.Measurement

パラメータ データ型 説明
id ID メジャーメントのID
type String メジャーメントの型
time Date メジャーメントが作成された時間 (デバイスから送信したもの)
source ID メジャーメントを生成したデバイスのID

例:

select
  event.measurement.id,
  event.measurement.type,
  event.measurement.time,
  event.measurement.source
from MeasurementCreated event;

オペレーション

クラス: com.cumulocity.model.operation.Operation

パラメータ データ型 説明
id ID オペレーションのID
creationTime Date オペレーションがデータベースに生成された時間
status OperationStatus オペレーションの現在の状態
deviceId ID オペレーションが実行されるデバイスのID

例:

select
  event.operation.id,
  event.operation.creationTime,
  event.operation.status,
  event.operation.deviceId
from OperationCreated event;

アラーム

クラス: com.cumulocity.model.event.Alarm

パラメータ データ型 説明
id ID アラームのID
creationTime Date データベースにアラームが生成された時間
type String アラームのタイプ
count long アクティブな間に報告されたアラームの回数
severity Severity アラームの重大度
status AlarmStatus アラームの状態
text String イベントのテキスト
time Date イベントが生成された時間(デバイスから送信されたもの)
source ID アラームを生成したデバイスのID

例:

select
  event.alarm.id,
  event.alarm.creationTime,
  event.alarm.type,
  event.alarm.count,
  event.alarm.severity,
  event.alarm.status,
  event.alarm.text,
  event.alarm.time,
  event.alarm.source
from AlarmCreated event;

出力ストリーム

一般的な構造

出力ストリームによって、 Things Cloud のデータに対して CREATE, UPDATE, DELETE を行うことができます。 データの更新や削除を行う場合、対象となるオブジェクトのIDを準備する必要があります。 データを生成する時にイベント処理でIDの設定がされていない場合、Things Cloud がIDを生成します。また、データ生成では(REST APIと同様)特定のパラメータをいくつか設定する必要があります。 下記の既定パラメータに加え、自由にカスタムフラグメントを追加することもできます。カスタムフラグメントの追加については、フラグメントのカスタマイズ セクションをご覧ください。

注記: 独自のID登録はマネージドオブジェクトのみ可能です。

マネージドオブジェクト

利用可能な出力
CreateManagedObject
UpdateManagedObject
DeleteManagedObject
パラメータ データ型 説明 必須
id ID または String マネージドオブジェクトのID UPDATE, DELETEの場合
type String マネージドオブジェクトの型 いいえ
name String マネージドオブジェクト名 いいえ
owner String マネージドオブジェクトの所有者。イベント処理で生成されたデータで設定されていない場合、所有者は"cep"になります いいえ
childAssets Set または Set<ID> すべての子アセットのID いいえ
childDevices Set または Set<ID> すべての子デバイスのID いいえ

例:

insert into CreateManagedObject
select
  "myManagedObject" as name,
  "myType" as type
from EventCreated event;

insert into UpdateManagedObject
select
  "12345" as id,
  "myNewManagedObject" as name
from EventCreated event;

insert into DeleteManagedObject
select
  "12345" as id
from EventCreated event;

イベント

利用可能な出力
CreateEvent
EventUpdated
DeleteEvent
パラメータ データ型 説明 必須
id ID or String イベントのID DELETE
type String イベントの型 CREATE
text String イベントのテキスト CREATE
time Date イベントが生成された時間(デバイスが送信したもの) CREATE
source ID または String イベントを生成したデバイスのID CREATE

例:

insert into CreateEvent
select
  "copiedEventType" as type,
  "This event was copied" as text,
  event.event.time as time,
  event.event.source as source
from EventCreated event;

insert into DeleteEvent
select
  "12345" as id
from EventCreated event;

メジャーメント

利用可能な出力
CreateMeasurement
DeleteMeasurement
パラメータ データ型 説明 必須
id ID または String メジャーメントのID DELETE
type String メジャーメントの型 CREATE
time Date メジャーメント が生成された時間(デバイスから送信されたもの) CREATE
source ID または String メジャーメントを生成したデバイスのID CREATE

例:

insert into CreateMeasurement
select
  "c8y_TemperatureMeasurement" as type,
  event.event.time as time,
  event.event.source as source,
  {
    "c8y_TemperatureMeasurement.T.value", 5
  } as fragments
from EventCreated event;

insert into DeleteMeasurement
select
  "12345" as id
from EventCreated event;

オペレーション

利用可能な出力
CreateOperation
UpdateOperation
パラメータ データ型 説明 必須
id ID または String オペレーションのID UPDATE
status OperationStatus または String オペレーションの現在の状態 CREATE
deviceId ID または String オペレーションの対象となるデバイスのID CREATE

例:

insert into CreateOperation
select
  OperationStatus.PENDING as status,
  event.event.source as deviceId,
  {
    "c8y_Restart", {}
  } as fragments
from EventCreated event;

insert into UpdateOperation
select
  "12345" as id,
  OperationStatus.EXECUTING as status
from EventCreated event;

アラーム

利用可能な出力
CreateAlarm
UpdateAlarm
パラメータ データ型 説明 必須
id ID または String アラームのID UPDATE
type String アラームの型 CREATE
severity Severity または String アラームの重大度 CREATE
status AlarmStatus または String アラームの状態 CREATE
text String イベントのテキスト CREATE
time Date イベントが生成された時間(デバイスから送信されたもの) CREATE
source ID または String アラームを生成したデバイスのID CREATE

例:

insert into CreateAlarm
select
  "c8y_HighTemperatureAlarm" as type,
  event.event.time as time,
  event.event.source as source,
  CumulocitySeverities.WARNING as severity,
  CumulocityAlarmStatuses.ACTIVE as status,
  "The device has high temperature" as text
from EventCreated event;

insert into UpdateAlarmn
select
  "12345" as id,
  CumulocityAlarmStatuses.ACKNOWLEDGED as status
from EventCreated event;

特殊なストリーム

この章で触れるストリームは Things Cloud のデータベースにアクセスせず、外部サービスの起動を行います。

SendMail

パラメータ データ型 説明 必須
receiver String 受信者のメールアドレス はい
cc String CCのメールアドレス いいえ
bcc String BCCのメールアドレス いいえ
replyTo String 送信メールに対するリプライの受信メールアドレス はい
subject String メールの件名の行 はい
text String メール本文 はい

receiver, cc, bcc には複数のメールアドレスを設定できます。それには、コンマ区切りですべてのメールアドレスを含んだ文字列を設定してください。 例 receiver1@mail.com,receiver2@mail.com

例:

insert into SendEmail
select
  "receiver1@cumulocity.com,receiver2@cumulocity.com" as receiver,
  "cc@cumulocity.com" as cc,
  "bcc@cumulocity.com" as bcc,
  "reply@cumulocity.com" as replyTo,
  "Example mail" as subject,
  "This mail was sent to test the SendEmail stream in Cumulocity" as text
from AlarmCreated;

SendExport

このストリームにより、エクスポートを生成することができます。

パラメータ データ型 説明 必須
enabledSources List 構成IDのエクスポート はい
subject String 電子メールの件名 いいえ
text String 電子メールの本文。使用可能なプレースホルダ: {host}, {binaryId}.デフォルトのメッセージ: “File with exported data can be downloaded from {host}/inventory/binaries/{binaryId}” いいえ
receiver String 電子メールの受信者 いいえ

例:

insert into SendExport
select
    'configurationExportId' as enabledSources,
    'subject' as subject,
    'text' as text,
    'receiver@example.com' as receiver
from
    pattern [every timer:at(5, *, *, *, *)]

追加のデータモデル

ID

クラス: com.cumulocity.model.ID

パラメータ データ型 説明
value String 実際のID値
type String IDの型
name String デバイス名(measurement.source 内のような場合のみデバイスにリンクします

例:

select
  event.measurement.source.value,
  event.measurement.source.type,
  event.measurement.source.name
from MeasurementCreated event;

OperationStatus

クラス: com.cumulocity.model.operation.OperationStatus

OperationStatus は次のような列挙型です: PENDING, SUCCESSFUL, FAILED, EXECUTING

例:

insert into UpdateOperation
select
  event.operation.id.value as id,
  OperationStatus.FAILED as status
from OperationCreated event;

Severity(重大度)

クラス: com.cumulocity.model.event.Severity

Severity は CumulocitySeverities で定義される列挙型です。CumulocitySeverities は次の値を提供します: CRITICAL, MAJOR, MINOR, WARNING

例:

insert into UpdateAlarm
select
  event.alarm.id.value as id,
  CumulocitySeverities.MAJOR as severity
from AlarmCreated event;

AlarmStatus

クラス: com.cumulocity.model.event.AlarmStatus

AlarmStatus は、CumulocityAlarmStatuses で定義される列挙型です。CumulocityAlarmStatuses は次の値を提供します: ACTIVE, ACKNOWLEDGED, CLEARED

例:

insert into UpdateAlarm
select
  event.alarm.id.value as id,
  CumulocityAlarmStatuses.ACKNOWLEDGED as status
from AlarmCreated event;