1. 機能概要
1.1 カスタムコンポーネントとは
カスタムコンポーネント機能では、お客様自身がコンポーネントを開発できます。これにより、コンポーネントと業務ニーズの適合性が高まり、開発・保守コストを削減しながら、コンポーネントの再利用性を向上できます。1.2 ユースケース
YiDA標準のコンポーネントではアプリの業務ニーズを満たせない場合、業界固有の慣習や要件に基づいて、業務シナリオに合わせたコンポーネントを開発できます。カスタムコンポーネントは同一組織内で共有できるため、今後同様のアプリを構築する際にも簡単に再利用できます。1.3 コンポーネントの構成
コンポーネントはビューと属性で構成されます。利用側では、コンポーネントの属性を変更することで、異なるビューを表示できます。 ビューはさらに、デザインビューとランタイムビューに分けられます。ほとんどの場合、デザインビューとランタイムビューは共通で利用できます。 提供側では、コンポーネントのビューと属性をそれぞれ個別に開発します。2. 手順ガイド
テキストコピー機能を実装する簡単な例を通して、カスタムコンポーネントの作成・デバッグ・インストール・利用という一連の流れを体験します。2.1 シナリオ
カスタムコンポーネント機能を使い、YiDA既存のテキストコンポーネントをローコードで拡張して、テキストコピー機能を実装します。これにより、ユーザーはテキスト内容をクリップボードにコピーできるようになり、同じフィールド値を繰り返し使いたい場面で役立ちます。2.2 完成イメージ
図 2.2-1 テキストコピーのデモ2.3 手順
2.3.1 ステップ1:カスタムコンポーネントを作成する
コンポーネントの名前・タイプ・識別子などの属性を設定することで、業務ニーズに合ったコンポーネントを低コストで作成できます。 手順:- YiDAアプリ > アプリ設定 > コンポーネント管理 > コンポーネントセンター(図 2.3-1 参照)。
- コンポーネントを追加 > コンポーネント名・コンポーネントタイプ・コンポーネント識別子などの属性を入力 > 確認(図 2.3-2 参照)。
2.3.2 ステップ2:カスタムコンポーネントを開発・デバッグする
さまざまな業務ニーズに合わせて、コンポーネントを開発・デバッグします。この例では、カウンター機能を実装します。 手順:- コンポーネントセンター > マイコンポーネント > デバッグするコンポーネントを選択 > 開発(図 2.3-3 参照)。
1
ステップ1
前述のとおり、コンポーネントはビューと属性で構成されます。コンポーネントを開発する際は、まず必要な属性を抽象化します。属性から始めましょう。このコンポーネントに必要なのは、テキスト内容用の属性1つだけです。属性設定 > 属性定義 に移動し、
content という名前のテキスト内容属性を追加して、属性タイプをテキストに設定し、セッターに textSetter を選択します。2
ステップ2
属性を定義したら、コンポーネントのビューを作成します。必要なYiDA標準コンポーネントをキャンバスに追加し(この例では「テキスト」と「コピー」という名前のテキストコンポーネント2つを使用)、基本属性を設定します。テキストコンポーネントの内容を変数(先ほど定義した属性
props.content)にバインドすると、実行時に渡された値が表示されます(図 2.3-4 参照)。- ボタンコンポーネントにアクションを設定し、テキストコピーの動作を実装します。「コピー」のテキストを選択 > アクションを作成 > クリック時に
onCopyTextを実行(図 2.3-5 参照)。
- JSパネルにコピー処理のロジックを記述します(図 2.3-6 参照)。
1
保存 > コンポーネントをプレビュー
2
公開 > バージョン番号とリリースノートを入力 > 確認(図 2.3-7 参照)。
- コンポーネントが公開されると確認メッセージが表示されます(図 2.3-8 参照)。実際の開発では、コンポーネントを保存した時点で開発バージョン(0.1.0)をインストールして、実環境でのデバッグが可能です。正式バージョンの公開は、開発完了後に行えば十分です。
2.3.3 ステップ3:カスタムコンポーネントをインストールする
開発・デバッグしたカスタムコンポーネントをページにインストールすると、ページ設計時に利用できるようになります。コンポーネントのインストールでは、ページタイプを選択する必要があります。カスタムコンポーネントは、選択したページタイプのページデザイナーにのみ表示されます。 手順:- フォーム設計ページ > コンポーネントライブラリ > カスタムコンポーネント > コンポーネント管理(図 2.3-9 参照)。
- コンポーネント管理ページ > コンポーネント一覧 > インストールするカスタムコンポーネントを選択 > インストール(図 2.3-10 参照)。
- インストールするバージョンとインストールスコープを選択 > インストール(図 2.3-11 参照)。
2.3.4 ステップ4:カスタムコンポーネントを利用する
上記の手順を完了すると、カスタムコンポーネントがページのコンポーネントライブラリの「カスタムコンポーネント」に表示されます。次の手順で利用します。 手順:- フォーム設計ページ > コンポーネントライブラリ > カスタムコンポーネント > 利用するコンポーネントを選択 > キャンバスにドラッグ(図 2.3-12 参照)。
2.3.5 ステップ5:コンポーネント情報を確認・編集する
コンポーネントの利用中に、サムネイル・ヘルプドキュメントのURL・説明を更新したい場合は、次の手順に従ってください。 手順- アプリ設定 > コンポーネント管理 > コンポーネントセンター(図 2.3-13 参照)。
- 確認または編集するコンポーネントを選択 > 詳細(図 2.3-14 参照)。
コンポーネントの詳細ページは、基本情報、リリース情報、管理者の3つのセクションで構成されます(図 2.3-15 参照)。
- 基本情報:「編集」をクリックすると、カスタムコンポーネントのサムネイル・ヘルプドキュメントのURL・説明を更新できます。その他の項目はコンポーネント作成時に設定され、変更できません。
- リリース情報:バージョンと各バージョンのリリースノートを含む、コンポーネントの更新履歴を確認できます。
- 管理者(カスタムコンポーネントを開発・デバッグする権限を持ちます。デフォルトはコンポーネントの作成者):管理者を追加・削除して権限管理を行います。
- インストール情報:インストール先のアプリ・バージョン・スコープ・インストール実行者・インストール日時を含む、コンポーネントのインストール履歴を確認できます。
3. カスタムコンポーネントの属性
カスタムコンポーネント機能では、YiDA既存コンポーネントの拡張に加えて、開発したコンポーネントの属性(propTypes)をカスタマイズできます。これにより、カスタムコンポーネントを開発者の日常的なシナリオや習慣に合わせやすくなり、柔軟性とカスタマイズ性が高まります。
3.1 カスタムコンポーネントの属性設定の入口
パス:ローコードコンポーネントデザイナー > キャンバス上の「ローコードビジネスコンポーネント」を選択 > 右側の属性(図 3.1-1 参照)。 図 3.1-1 カスタムコンポーネントの属性設定の入口3.2 カスタムコンポーネントの属性設定
カスタムコンポーネントの属性は、両端設計、属性定義(propTypes)、ライフサイクル、固定識別子の4つのセクションで構成されます。
- 両端設計:オン/オフの切り替えです。有効にすると、PCとモバイルのデザインが完全に分離され、それぞれを個別に設計して両端で異なる要件に対応できます。
- 属性定義(
propTypes):タイトル、名前、タイプ(データ形式)、デフォルトなど、カスタムコンポーネントの基本属性をカスタマイズします。非表示にするか(表示状態)や変更時(値の変化)にイベントをバインドして、幅広い業務ニーズに対応することもできます。詳細はコンポーネントの属性設定をご覧ください。 - ライフサイクル:カスタムコンポーネントには、コンポーネントのマウント完了時(
componentDidMount)、コンポーネントの更新時(componentDidUpdate)、コンポーネントのエラー捕捉時(componentDidCatch)、コンポーネントのアンマウント前(componentWillUnmount)の4つのライフサイクルフックがあります。適切なフックにロジックを記述して、複雑な業務ニーズに対応します。 - 固定識別子:YiDA標準コンポーネントと同様に、カスタムコンポーネントにもコンポーネントのIDとなる固定識別子属性があります。この値は自動生成され、通常は変更する必要はありません。YiDAはこの値をバックエンドでのデータ保存やコードのバインドなどに使用します。
4. 付録
4.1 コンポーネントのタイプ
YiDAのカスタムコンポーネントには、通常コンポーネント、フォームコンポーネント、ポータルコンポーネントの3種類があります。主な違いは次のとおりです。- 通常コンポーネントは通常、表示専用の機能に使用され、データを保存できません。既存の「リッチテキスト」や「グループ分け」コンポーネントに似ています。
- フォームコンポーネントはデータを送信できます。通常コンポーネントより開発が複雑で、追加のメタデータ設定が必要です。
- ポータルコンポーネントも表示専用の機能に使用され、データを保存できません。ポータルページでの利用を想定しています。
4.2 コンポーネントのインストールタイプ
YiDAのページタイプには、通常フォームページ、ワークフローフォームページ、レポートページ、DataVダッシュボード、カスタムページ、外部リンク、ポータルページがあります。 YiDAのカスタムコンポーネント(通常コンポーネントタイプ)は、現時点でカスタムページ、通常フォーム、ワークフローフォームにインストールできます。 インストール時に対応するページタイプを選択すると、そのページタイプのページデザイナーにコンポーネントが表示されます。4.3 コンポーネントのバージョン
YiDAのカスタムコンポーネントには、開発バージョンと正式バージョンの2種類があります。 セマンティックバージョニングに、独自のルールを追加しています。- 0.1.0 はデフォルトの開発バージョンです。開発バージョンはコンポーネントデザイナーとリアルタイムに同期し、デバッグに使用します。
- 1.x.x は正式リリース版です。現在の機能を固定し、本番環境での安定性を確保します。本番アプリでは必ず 1.x.x の正式リリース版をインストールしてください。
5. FAQ
Q:コンポーネントを削除しても問題ありませんか? コンポーネントの削除とアンインストールに対応しています。後方互換性の確保は開発者の責任となります。 Q:カスタムコンポーネントはどのように理解すればよいですか? こちらのリンクをご覧ください。 Q:コンポーネントは何で構成されていますか? コンポーネントはビューと属性で構成されます。利用側では、コンポーネントの属性を変更することで、異なるビューを表示できます。 ビューはさらに、デザインビューとランタイムビューに分けられます。ほとんどの場合、デザインビューとランタイムビューは共通で利用できます。 提供側では、コンポーネントのビューと属性をそれぞれ個別に開発します。 Q:カスタムコンポーネントを使用しているアプリをアプリ配布で他の組織に配布した場合、正しく開けますか? 開けます。 アプリを他の組織に配布した後も、配布先の組織はコンポーネントを通常どおり利用できます。配布したアプリで編集権限が有効になっている場合、配布先の組織でコンポーネントをインストールすることもできます。 Q:ページ上でカスタムコンポーネントの属性を取得するにはどうすればよいですか? カスタムコンポーネントは基本コンポーネントと同様に動作します。this.$('fieldId').get('propName') で属性を取得します。
Q:ページ上でカスタムコンポーネントの属性を更新するにはどうすればよいですか?
カスタムコンポーネントは基本コンポーネントと同様に動作します。this.$('fieldId').set('propName', propValue) で属性を更新します。
属性をデータソースの変数にバインドすることもできます。
Q:コンポーネントからページ上の他のコンポーネントにアクセスして連携するにはどうすればよいですか?
カスタムコンポーネントに function タイプの属性(イベントコールバック)を追加します。
ページ側では、このコールバックを使って他のコンポーネントと連携します。
コンポーネント内では、コンポーネントのイベント時やコンポーネントの DidMount など適切なタイミングで this.props.xxx() を呼び出し、コールバックを発火させます。
ヒント:function タイプの属性にもデフォルトを設定でき、非表示にすることもできます。
Q:カスタムコンポーネントでサードパーティのNPMパッケージをインストールできますか?
A:現在は対応していません。代わりにCDNリソースを動的に読み込んでください。
this.props.xxx を使ってロジックを分岐させます。例:
または
Q:コンポーネント内でスタイルを動的に設定できますか?
できます。コンテナコンポーネントを使用し、「カスタムスタイルクラス」を追加して、そのクラスを変数にバインドします。
Q:カスタムコンポーネントは親子組織や上下流組織に対応していますか?
A:カスタムコンポーネントは、親子組織や上下流組織を含む組織をまたいだ利用にはまだ対応していません。