データモデル

入力ストリーム

一般的な構造

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

パラメータ データ型 説明
_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
EventDeleted EVENT_DELETE
MeasurementCreated MEASUREMENT_CREATE
MeasurementDeleted MEASUREMENT_DELETE
OperationCreated OPERATION_CREATE
OperationUpdated OPERATION_UPDATE
AlarmCreated ALARM_CREATE
AlarmUpdated ALARM_UPDATE

もっと簡単にアクセスするには、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.childDevices,
  event.managedObject.assetParents,
  event.managedObject.deviceParents
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を準備する必要があります。データ生成では、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
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 T電子メールの本文。使用可能なプレースホルダ: {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;