Skip to main content

 

独自コードでロジックを拡張する

 

OutSystems

.NETアセンブリからアクションをインポートする

[Import Actions from .NET Assembly]ウィザードを使用すると、.NETアセンブリからアクションの定義をインポートできます。.NETアセンブリにイントロスペクションを使用することで、このウィザードは.NETメソッドのシグネチャに従い指定したアクションを作成します。

.NETアセンブリからアクションをインポートするには、以下の手順を実行します。

  1. [Extension]ツリーのActionsフォルダを右クリックするか、[File]メニューの[Import]オプションを選択します。
  2. [Import Actions from .NET Assembly]オプションを選択します。

すると、Integration Studioがインポート処理を完了するために必要な一連の手順を案内するウィザードを表示します。

手順1
[Import Actions from .NET Assembly]ウィザードへようこそ。
手順2

この手順では、アクションのインポート元となる.NETアセンブリを選択します。

アセンブリが拡張機能のリソースとして以前に追加されている場合、[Available Assemblies to Import]ボックスからアセンブリを選択できます。ファイル名を入力するか、[Browse]ボタンを押して.NETアセンブリを指定することもできます。

この.NETアセンブリに拡張機能のリソースではない依存関係があり、自動的に解決されない場合は、Integration Studioが[Missing Assembly Reference]ウィンドウを起動します。このウィンドウで、欠けているアセンブリの位置を指定する必要があります。

手順3

この手順は、前の手順で選択した.NETアセンブリに定義されているすべてのクラスとそのメンバーを表示します。各クラスは、完全な名前空間によって識別されます。各クラスフォルダに存在する可能性がある.NETメンバータイプは、以下のとおりです。

  • Constructor: アイコンはです。各コンストラクタは名前とシグネチャによって識別されます。
  • Methods: アイコンは.です。各メソッドは名前とシグネチャによって識別されます。
  • Properties: アイコンはです。各プロパティは名前によって識別されます。
  • Public Fields: アイコンはです。各パブリックフィールドは名前によって識別されます。

インポートするツリーノードを確認します。ノードの中に子ノードがある場合、すべての子ノードは自動的に確認されます。

プラットフォームで生成されたコードに追加でnullチェックを含めるために、[Add null checks to imported items]オプションを有効にするという選択肢もあります。

手順4

この手順では、以下に説明されているように、選択に従って拡張機能に追加するアクションとリソースの完全なリストを入手します。

  • アクション: 前の手順で選択したメンバーのタイプに基づいて、アクションが作成されています。

  • リソース: 手順2で指定した.NETアセンブリとそのすべての再帰リファレンスがまだ追加されていない場合、これらが拡張機能のリソースとして DotNetAction.icoとともに追加されます。

この手順では、[View Report]ボタンによって、どのようにしてアクションが拡張機能内に作成されるかを分析できます。このボタンで、作成されたアクションのレポートを表示し、必要に応じて今後の分析のために保存できます。

インポートされたアクションにnullチェックを追加する

OutSystemsは厳密に型指定された言語を使用しており、拡張機能によって渡された値の一部についてはサポートや認識をしません。nullリファレンスはこうした値の1つであり、OutSystems言語では表示できません(これらのnullリファレンスは、OutSystemsでは-undefined-として表示されます)。

通常、OutSystemsプラットフォームにnullリファレンスを渡さないようにするのは、拡張機能の開発者の責任です。ただし、[Add null checks to imported items]オプションを有効にすると、.NETアセンブリからインポートされたアクションのためにプラットフォームで生成されたコードに、正確な動作を実現するための追加確認が含まれます。

このオプションをオンにしている状態で拡張機能アクションを.NETアセンブリからインポートした場合、拡張機能によってプラットフォームに渡されたすべてのnull値は、データ型に従い以下のデフォルト値に変換されます。

データ型 デフォルト値
Text ""
Integer 0
Long Integer 0
Decimal 0
Boolean False
Date Time #1900-01-01#
Date #1900-01-01#

Time

#1900-01-01#
Phone Number ""
Email ""
Binary Data new byte[0]
Object new <object>
Currency 0
Record new <record>
Record List new <recordlist>
Integer Identifier 0
Text Identifier ""
Long Integer Identifier 0

レポートのコンテンツ

ウィザードによって作成されたアクションごとに、レポートは以下の情報を表示します。

  • Action: 以下の構文を持つアクション名。

    Action <action_name>

  • Target: モジュールでこのアクションを呼び出した場合に、アセンブリのどのC# メンバーが呼び出されるかを示します。構文は以下のとおりです。

    <member_type> <member_name> ( <input_arguments> ): <output_arguments>

    メンバーのタイプは以下のようになります。コンストラクタ、メソッド、プロパティ、またはフィールド。

  • Declaring Type: メンバーが定義されたクラスのフルネーム。

  • Parameters: ウィザードで作成されたアクションの入出力パラメータ。構文は以下のとおりです。

    <parameter_name> ( <OutSystems_data_type> <- <.NET_data_type> ): <additional_information>

ウィザードによって作成されたリソースごとに、レポートは以下の情報を表示します。

  • Resource: 以下の構文を持つリソース名。

    Resource <resource_name>: <additional_information>

  • Was this article helpful?