Skip to main content
タイムラインアクティビティタイプは、レコードのタイムラインに表示されるイベントの安定したボキャブラリーを定義します。 標準オブジェクトとアプリオブジェクトは同じコントラクトを使用します。タイプにはラベルとアイコンがあり、出力時にオプションで宣言できます。 アプリの front components を使ってレンダリングすることもできます。
タイムラインアクティビティタイプはベータ版で、Twenty 2.34では間もなく公開されます。 APIは、アプリ開発者のユースケースから学びながら進化することができます。
足場を使って1つ作成します:
または直接定義します。

自動および明示的なイベント

emit を追加すると、このタイプが自動的に作成されます。 emit.oncreatedupdateddeletedrestoredlinkedunlinkedemit.objectUniversalIdentifierはソースオブジェクトを識別します。 ワークスペースで同じエミットキー(on、オブジェクト、オプション)を扱うことができるのは、有効な型が 1 つだけです。 emit.through がなければ、イベントはソースレコードの独自のタイムラインに書き込まれます。 関連するレコードにファンアウトするには、 `emit.through を設定します。 elationFieldUniversalIdentifier: 直接多対一のリレーション、またはソースオブジェクトの 1対多の接合関係 のいずれかへ。 Morphリレーションは彼らのmorphグループのすべてのメンバーにファンアウトするので、1つの宣言はいくつかのオブジェクトタイプをターゲットにすることができます。 直接のリレーションのため、ソースレコードを作成または復元すると、 linked が生成され、削除すると unlinked が生成されます。 リレーションは前のターゲットに unlinked を加え、新しいターゲットに linked を加えます。 その他のソースアップデートではリンクイベントは発生しません。 これは添付ファイルが使用する契約で、ターゲットは直接モーフ関係です。 ジャンクションリレーションでは、universalSettings.junctionTargetFieldUniversalIdentifier はジャンクションオブジェクトからターゲットへのリレーションを識別します。 ジャンクション行を作成または削除すると、linked または unlinked が生成されます。 ジャンクション行のいずれかの側を再挿入すると、リンクイベントも生成されます。関連しないジャンクションフィールドへの更新は行われません。 linkedunlinked イベントは emit.through が必要です。トリガーは設定された直接またはジャンクションの関係を変更するためです。 例えば、これはメモ、タスク、メッセージ、カレンダーイベントで使用される一般的なコントラクトと同じです。
デフォルトでは、ソースの更新ごとにイベントの updated が発行されます。 選択したソースフィールドにのみ変更する場合、ターゲットタイムラインに「emit.through.triggerFieldUniversalIdentifiers」を設定します。 ロジック関数がそれ自身を作成する明示的なドメインイベントに対して「emit」を省略します。 これにより、同じ操作に対して自動監査行と明示的な行の両方を生成することができません。
[createTimelineActivity()] (/developers/extend/apps/logic/logic-functions#create-a-timeline-activity ) を使用して明示的なイベントを作成します。 アプリコードは安定したユニバーサル識別子を使用します; Twenty はインストール固有のメタデータ ID を解決します。

カスタムレンダリング

Twenty は、フロントコンポーネントがない場合、タイプラベル、アイコン、およびリンクオブジェクトメタデータからネイティブの一般的な行をレンダリングします。 これはオブジェクト固有のレンダラーを持たない標準オブジェクトおよびカスタムオブジェクトに対して機能します。 カスタムの詳細については、 frontComponentUniversalIdentifier を同じアプリが所有するフロントコンポーネントに設定します。
ネイティブの行は、折りたたまれたプレゼンテーションのままです。 Twenty は、ユーザーがその行を展開した後にのみフロントコンポーネントをマウントし、すべての表示イベントに対して Sandbox と worker を回避します。 コンポーネント内で、二十-sdk/front-component から useTimelineActivityId() を呼び出し、行IDを読み込み、プレゼンテーションの必要なデータを取得します。 コンポーネントがタイムライン行の外側にレンダリングされると、 null を返します。

別のアプリケーションのプレゼンテーションを上書きする

アプリケーションは、独自のオブジェクトの自動タイムライン契約を所有します。 別のアプリが所有するオブジェクトでイベントをカスタマイズするには、既存の型を replaceTimelineActivityTypeUniversalIdentifier で明示的に宣言します。
explicit-only 型ではなく、既存の自動エミットスロットを置き換えるため、オーバーライドは emit を含める必要があります。 参照される型は、ターゲットオブジェクトのアプリケーションに属し、同じアクションとルートを記述する必要があります。 オーバーライドアプリを削除すると、ベースタイプが復元され、ベースタイプが削除されるとオーバーライドは無効になります。

ワークスペースの上書きとミュート

ワークスペース管理者は、タイプのプレゼンテーションを変更したり、アプリケーションをフォークすることなく、自動および明示的なイベントをミュートすることができます。 インストール固有の型 ID を持つメタデータ API の updateTimelineActivityType 変更を使用します。
labeliconはワークスペースの上書きとして保存されるため、後でアプリケーションの更新は管理者の選択肢を上書きしません。 自動発行を停止し、そのタイプの新しい明示的イベントを拒否するには、isActivefalse に設定します。 既存の行は表示されたままです。 アクティブ状態を含むアプリケーションのデフォルトを復元するには、次を使用します。

設定フィールド

イベントが作成されたときに意味的なアイデンティティと耐久性のあるプレゼンテーションのフォールバックを20枚のスナップショット。 歴史的な行は、元のアクションとオブジェクトの意味を保持します。 タイプがインストールされている間は、現在翻訳されているラベル、アイコン、およびフロントコンポーネントがライブレンダリングされます。アンインストール後、スナップショットのフォールバックは行を読み取ることができます。 解像度は普遍的な識別子を使用するため、プレゼンテーションはアプリの再インストールも残ります。