Arasベストプラクティス:コミュニティプロジェクト(パート2)

この記事では、Arasコミュニティプロジェクトを作成する際に避けるべき落とし穴のいくつかを解説します。Arasベストプラクティス:コミュニティプロジェクト(パート1)をまだご覧になっていない場合は、そちらもご確認ください。プロジェクトの作成者にとってさらに役立つヒント、「やった方がよいこと」を記載しています。

すべきではないこと:applySQL()の使用

applySQL()関数は、Arasコミュニティプロジェクトで使用することはできません。なぜなら、Arasのパーミッションモデルをバイパスするのに使用できてしまうからです。もし、アクションやメソッドがAMLやIOMの代わりにapplySQL()を使用していると、特定のアイテムを取得、作成、更新できないはずのユーザーでも、直接SQLを介して、これらの操作ができてしまいます。インポートパッケージからSQL項目を使用する場合も同じです。

不適切なやり方

applySQL()を使用した簡単なコード例:

さらに、SQLアイテムをプログラムから呼び出すコード例:

ベストプラクティス

先述のapplySQL()の使用例を、IOMを使って書き直したコード例:

さらに、applyAML()を使用したコード例:

すべきではないこと:ActiveXコントロールの使用

最新のブラウザではActiveXコントロールはサポートされておらず、Aras Innovatorをアップグレードする際に大きな問題となる可能性があります。ActiveXコントロールは、Arasコミュニティプロジェクトでは使用できません。

 

すべきではないこと:製品の試用版を含める

あなた、またはあなたの組織が作成した製品のフリーミアムまたは期限付きの試用版は含めないでください。ただし、他の有料サービスとの連携プロジェクトは、受理します。

不適切なやり方

XYZ Corp.のHarryは、XYZ Connectorの30日間無料試用版を提出します。XYZ Connectorを、30日間の試用期間の終了後も継続して使用するためには毎月のサブスクリプション契約が必要です。有料の製品であるため、HarryはXYZ Connectorのソースコードを提出することはできません。

ベストプラクティス

XYZ Corp.のHarryは、大好きなサードパーティ製品であるABCをサブクリプション利用しています。 彼はArasとABCを使用するコネクタを作成し、ABCコネクタのソースコードを提出します。ユーザーはABCの30日間の無料試用版でコネクタを試用できます。

すべきではないこと:他者の知的財産を共有する

第三者のコンパイル済みコード(dllや実行可能ファイルなど)、または自由に共有することが許諾されていないマテリアルは含めないでください。

すべきではないこと:Arasサブスクリプションマテリアルを共有する

サブスクリプション機能ライセンスキーまたはその他のサブスクリプションマテリアルを共有しないでください。Arasサブスクリプションの特典について質問がある場合は、コミュニティチーム(info@aras.com)にお問い合わせください。Arasコミュニティプロジェクトへの提出物に含めるべきではないコンテンツについて質問がある場合は、Aras Labs(araslabs@aras.com)までお問い合わせください。

不適切なやり方

Terryは、Arasサブクライバーのみが利用できるAras IOM SDK for iOSを使用してiOSアプリケーションを作成します。Terryは自分のプロジェクトをGitHubにアップロードするときに、ソースコードにIOM.IOS.dllファイルを含めます。

ベストプラクティス

Terryは、Arasサブクライバーのみが利用できるAras IOM SDK for iOSを使用してiOSアプリケーションを作成します。彼女はソースコードにIOM.IOS.dllファイルを含めませんが、代わりに、利用者自身が持つIOM.IOS.dllファイルのコピーをビルド時に参照する方法を示す手順をプロジェクトのREADME.mdファイルに含めます。

避けるべきこと:コアアイテムタイプの変更

コア・アイテムタイプは、Arasデータモデルの最も基本的な部分を定義するために使用されます。これらのアイテムタイプを変更すると意図しない結果が生じることがあり、Arasコミュニティプロジェクトでは許可されません。どのようなアイテムタイプが「コア」であるかわからない場合は、TOCの アドミニストレータ(Administration) > アイテムタイプ(ItemTypes) に移動し、core = ‘1’ のアイテムタイプを検索してください。

以下はコア・アイテムタイプの例です:

  • ItemType
  • Property
  • Identity
  • File

注意:これは、あなたのプロジェクトで、アイテムタイプを作成または変更できないと言っているわけではありません。例えば、プロジェクトは、既存のPartアイテムタイプにプロパティを追加したり、CADアイテムタイプに新しいサーバイベントを追加したりすることはできます。これら(Part、CAD)は、コアではないアイテムタイプの例となります。

避けるべきこと:コアコードツリーの変更

いくつかの理由で、可能な限りコードツリーの変更は避けるのがベストです。 特に、単一のコードツリーを複数のデータベースで共有できるため、些細なコードツリーの変更でも、意図しない影響が広範囲に及びがちです。コードツリーを変更することで、サービスパックのアップグレードやメジャーバージョンのアップグレードが、より一層複雑になります。

とはいえ、コードツリーの変更の中には、他のものよりも良質なものがあります。 Innovator\Client\javascript\aras_object.jsInnovator\Client\javascript\iom.jsなどのクリティカルなファイルを変更すると、機能に悪影響を与える可能性がありますが、コードツリーへのファイル追加は一般的に受け入れられます。例えば、新しいイメージの追加、Innovator\Server\method-config.xmlを更新してサードパーティのサーバーサイドDLLを参照する、といったコードツリーの変更は避けられない場合があります。

避けるべきこと:セキュリティ機能を無効化する

Arasの最近のリリース(SP8、SP9 +)には、AMLクエリでのSQLインジェクションの可能性をさらに低減するためのセキュリティ強化が含まれています。 場合によっては、Arasコードツリーの設定ファイルで特定のクエリをホワイトリストに登録する必要がある場合があります。これは、グローバルレベルではなく、ケースバイケースで行う必要があります。


プロジェクトの提出準備が出来たら

上記のガイドラインを確認し、プロジェクトがこれらの要件を満たしていることを確認したら、http://community.aras.com/share-a-project/にお進みください。 インスピレーションを求めていたり、あなた自身のプロジェクトを提出する準備が出来ていないのでしたら、Aras Community Projectsページ(http://community.aras.com/projects/)をチェックして、他のコミュニティメンバーの活動内容をご覧ください。そして是非、既存プロジェクトに貢献してみてください。