Aras Innovatorでの複数選択アイテムアクション

アクションは、メイングリッド、アイテムフォーム、メインメニューなど、ユーザがArasのデータを操作する最も一般的な方法の1つです。 カスタムアクションの作成はかなり簡単ですが、複数選択アイテムアクションを作成するには、PE_GetSelectedItemsという組み込みメソッドを使用する必要があります。 この記事では、PE_GetSelectedItemsを使用して、選択した複数アイテムのプロパティデータをクリップボードにコピーする複数選択アイテムアクションを実装する方法をご紹介します。

はじめに

以下に示すコードは、Arasコミュニティプロジェクト:Copy to Clipboardの一部です。 プロジェクトを適用したい場合や、ソースコード全体を確認したい場合は、Aras Labs GitHubにある当プロジェクトのページをご参照ください:

PE_GetSelectedItems メソッド

PE_GetSelectedItemsメソッドは、Aras Product Engineeringアプリケーションの一部です。 これはInnovatorSolutionsデータベース(Aras Innovatorインストーラのデフォルトのデータベースオプション)に含まれています。 概念的には、PE_GetSelectedItemsは、リレーションシップグリッド、メイングリッド、フォームから選択したすべてのアイテムを取得し、そのコレクションを返します。

PE_GetSelectedItemsを使用する組み込みのArasアクションPE_AddToChangeを確認してみてください。

‘Item to Clipboard’メソッドの作成

Copy to Clipboardアクションに必要なメソッドは、3つの基本ステップに分けられます。 最初に、PE_GetSelectedItemsから’Item to Clipboard’メソッドに渡されたアイテムのコレクションを取得する必要があります。

次に、選択したアイテムのコレクションをループし、アイテムのプロパティデータからクリップボードにコピーする文字列を作成します。Copy to Clipboardプロジェクトで提供されるサンプルコードでは、Partのitem_numberプロパティとnameプロパティを使用します。 別のアイテムタイプでこのアクションを使用する予定がある場合は、必要に応じてメソッドで参照するプロパティ名を変更してください。

コピーしたいデータを含む文字列を作成したので、Aras Innovatorクライアントが提供するいくつかの便利な機能を使用できます。すべてのブラウザがプログラムによるクリップボードへのアクセスを許可するわけではないため、aras.utils.isClipboardSupported()関数を使用して確認します。

クリップボードへのアクセスが許可されている場合は、以下に示すcopyToBuffer()関数を使用します。 この関数は、アイテムプロパティダイアログの[IDのコピー]ボタンの背後にあるコードに基づいています。現在のブラウザでクリップボードへのアクセスが許可されていない場合は、アラートダイアログでデータを出力して、ユーザが手動でコピーできるようにします。

アクションの作成

Copy to Clipboardアクションには、複数選択のアイテムアクションとして機能するために、次のプロパティが必要です。 その他のプロパティ(名前、ラベル、ターゲットなど)は、ユースケースに合わせて設定できます。

  • タイプ(Type): Item
  • ロケーション(Location): Client
  • メソッド(Method): PE_GetSelectedItems
  • 完了メソッド(On Complete): Item to Clipboard

選択したアイテムのコレクションを、カスタムメソッド(Item to Clipboard)に渡すには、「メソッド(Method)」プロパティにPE_GetSelectedItemsを設定する必要があります。 PE_GetSelectedItemsメソッドが設定されていなければ、最後に選択されたアイテムだけしか、カスタムメソッドのコードで利用できません。

最終結果

Copy to Clipboardアクションをアイテムタイプのアクションタブに紐付けると、複数のアイテムを選択し、それら複数アイテムを基にしたデータをクリップボードにコピーすることができます。

さらなるアイディアを求めて

さらなるお役立ち情報をお求めの場合は、私たちのブログを購読し、ツイッターで@ArasLabsをフォローしてください。Aras Labs GitHubページで私たちの最新のオープンソースプロジェクトやサンプルコードを見つけることもできます。