SAP Cloud Platform Integration小ネタ

TIMESTAMP 型

SAP HANAでTIMESTAMP 型を定義する。

CREATE COLUMN TABLE "FOOBAR"(
    "TIMESTAMP" TIMESTAMP NOT NULL,
    "VARCHAR" VARCHAR(225) NOT NULL,
    "INTEGER" INTEGER,
);

Odataサービスで中身を見るとこんな感じ
これって普通なんですかね。自分は初めて見た。epoch timeがそのまま入ってくるのね。
ISO 8601形式とか理解しないのか。

{
    "DATETIME": "/Date(1606348800021)/",
    "VARCHAR": "VARCHAR",
    "INTEGER": 98
}

Integration Flowでは以下のようにして設定する
とりあえず現在時刻を設定
Apache CamelのSimple記法を理解すればいいらしい。

{
    "DATETIME": "/Date(${bean:java.util.Date?method=getTime})/",
    "VARCHAR": "${property.varchar}",
    "INTEGER": ${property.integer}
}

GENERATED BY DEFAULT AS IDENTITY

他のRDBだとserialとかAUTO_INCREMENT みたいなやつ
BY DEFAULT AS IDENTITY とか
ALWAYS AS IDENTITY で作成できる。

CREATE COLUMN TABLE "FOOBAR"(
   SERIAL_ID INTEGER  PRIMARY KEY GENERATED BY DEFAULT AS IDENTITY,
);

でもOdataサービスで簡単に扱えないみたい。面倒くさい?
blogs.sap.com