注: 以下の翻訳の正確性は検証されていません。AIPを利用して英語版の原文から機械的に翻訳されたものです。
関数の主要な機能の1つは、Foundry オントロジーに統合されたデータに簡単にアクセスできることです。オントロジーは組織のデータをセマンティックにモデル化するため、構造化データへのアクセスや、ユースケースをまたいだロジックの再利用が容易になります。
このチュートリアルでは、TypeScript リポジトリを作成し、設定済みであることを前提としています。まだ済んでいない場合は、先にはじめにのチュートリアルを完了してください。
関数で使用するオブジェクトタイプ、インターフェースタイプ、リンクタイプは、リポジトリを含むプロジェクトにインポートする必要があります。リソースのインポートサイドバーを選択すると、プロジェクトにインポートされているオブジェクトタイプが表示されます。

オブジェクトタイプを追加でインポートするには、リソースのインポートサイドバーの追加ボタンを選択する必要があります。オントロジーが選択されていない場合は、オントロジーを選択するダイアログが表示されます。インポート済みのオントロジーのタイプが1つ以上ある場合は、選択対象のオントロジーが自動的に特定されます。
オントロジーを選択すると、検索モーダルが表示されます。使用するオントロジーは、組織で利用可能なオブジェクトタイプによって異なります。まず、いくつかのオブジェクトタイプと、それらをつなぐリンクタイプを選択します。この例では、Airport オブジェクトと Flight オブジェクト、およびそれらの間のリンクタイプをインポートします。

追加ボタンの下にあるインターフェースを選択すると、オントロジーのインターフェースもインポートできます。

オントロジーのタイプをプロジェクトにインポートするには、選択を確定を選択します。Code Assist は自動的に再起動され、インポートした新しいオブジェクトタイプとリンクタイプを反映するようにコードバインディングが再生成されます。
TypeScript v1 リポジトリでは、これで @foundry/ontology-api パッケージからオントロジーのタイプをインポートできるようになります。プライベートオントロジーを使用している場合、パッケージ名は代わりに @foundry/ontology-api/<ontology-api-name> になります。
TypeScript v2 リポジトリでは、オントロジーのタイプをインポートした後に、オントロジー SDK を生成してインストールするよう求めるダイアログが表示されます。関数を書く前に、この手順を完了してください。インポートしたタイプは、オントロジー SDK をインストールするまでコードで利用できません。これらのタイプは @ontology/sdk パッケージからインポートします。
プライベートオントロジーを使用している場合は、以下のすべての TypeScript v1 の例で、@foundry/ontology-api を @foundry/ontology-api/your-private-ontology-api-name-here に置き換えてください。
@foundry/ontology-api パッケージは TypeScript v1 関数に適用されます。TypeScript v2 リポジトリでは、@ontology/sdk からオントロジーのタイプをインポートする前に、オントロジー SDK を生成してインストールする必要があります。手順については、オントロジー SDK を生成するを参照してください。
次に、先ほどインポートしたオブジェクトタイプを使用して関数を書きます。コードは、利用可能なオブジェクトタイプ、プロパティ、リンクタイプによって異なります。コードタブに戻り、先ほど追加したオブジェクトタイプの1つをインポートしてみます。
Copied!1import { Airport } from "@foundry/ontology-api";
Copied!1import { Airport } from "@ontology/sdk";
続いて、そのオブジェクトを入力として受け取る関数を書きます。TypeScript v2 では、オブジェクトタイプのインスタンスは @osdk/client パッケージの Osdk.Instance 型でラップされ、各関数は src/functions 内にある、関数と同じ名前のファイルのデフォルトエクスポートになります。
Copied!1 2 3 4@Function() public myObjectFunction(airport: Airport) { airport. }
Copied!1 2 3export default function myObjectFunction(airport: Osdk.Instance<Airport>) { airport. }
Code Assist が起動したら、airport. と入力するだけで、利用可能なプロパティとリンクタイプのオートコンプリートが表示されます。

この例では、テンプレート文字列 ↗を使用して、Airport の city フィールドと country フィールドを組み合わせ、人が読みやすい場所の表記にします。
Copied!1 2 3 4 5 6 7 8 9 10import { Function } from "@foundry/functions-api"; import { Airport } from "@foundry/ontology-api"; export class MyFunctions { @Function() public airportLocation(airport: Airport): string { return `${airport.city}, ${airport.country}`; } }
Copied!1 2 3 4 5 6 7 8// src/functions/airportLocation.ts import { Airport } from "@ontology/sdk"; import { Osdk } from "@osdk/client"; export default function airportLocation(airport: Osdk.Instance<Airport>): string { return `${airport.city}, ${airport.country}`; }
ご自身のオントロジーに基づいて API を試し、オブジェクトタイプに基づく値を返す関数を書いてみてください。
関数ヘルパーを開き、ライブプレビューに切り替えて、上で書いた関数を選択します。ライブプレビューでオブジェクトベースの関数を実行するには、オブジェクトタイプの元データソースをインポートする必要があります。実行オプションの横にある警告アイコンを選択します。

次に、ダイアログを使用して、オブジェクトタイプの元データソースをインポートします。

データソースをインポートしたら、オブジェクトを選択し、実行を選択して結果を確認します。

ライブプレビューにおけるオブジェクトタイプの権限は、各オブジェクトタイプの元データソースに対する TypeScript リポジトリの権限によって決まります。通知を作成する関数をテストする際、受信者の権限は適用されません。このため、通知を作成する関数は、ライブプレビューでは実行に成功しても、Foundry のほかの場所でアクションから使用すると、実行に失敗する場合があります。
アクションの通知設定については、詳しくはこちら。
コードをコミットし、ブランチタブで新しいタグを公開して、新しい関数を公開します。関数が公開されたら、関数ヘルパーでテストできます。

関数が公開されると、プラットフォーム全体のほかのアプリケーションで使いはじめることができます。
このチュートリアルで紹介したのは、オブジェクトを使用する関数でできることのごく一部です。詳細については、次のリソースを参照してください。