I.はじめに
企業は開発の過程でさまざまなシステムを使用しますが、その多くは 5 ~ 10 年前から使用されており、時間のかかるメンテナンス、頻繁な中断、不親切なユーザー、新しいソフトウェアなど、多くのリスクが伴います。問題など いつか、これらの大規模な問題が IT リソースを独占し、デジタル変革プロセスを複雑にするでしょう。同時に、多くの企業のプロセスやビジネス シナリオが依然としてさまざまなオフィス ツールをオフラインで使用しており、システムに実装されていないこともわかりました。
近代化の遺産を解決する近道ができました。ローコードは、組織がレガシー システムを補完または置き換えるためのカスタム アプリケーションを構築するのに役立つビジュアル開発方法論です。ローコード プラットフォームは、あらゆるコーディング スキル レベルの人々が、組織に合わせて拡張および成長できるビジネス クリティカルなアプリケーションを構築できる環境を提供することで、開発を迅速化します。レガシー システムを置き換えたり、オフラインのプロセスやシナリオをオンラインに移行したりすることを、アプリケーションのモダナイゼーションと呼ぶことができます。企業におけるアプリケーションのモダナイゼーションの実現は長期にわたる長期的な課題であり、今後、企業のアプリケーションのモダナイゼーション実現をどのように支援できるかについて、アプリケーションのモダナイゼーションに関する記事を次々と公開していきます。
今日の話題に戻りますが、まず、企業従業員の日常業務で最もよく使われるツールは何でしょうか?という質問について考えてください。そうです、Excelです 毎日の仕事に欠かせないExcelは、さまざまな場面で活躍しますが、使いすぎるとさまざまな問題が発生することもあります。
2. 需要分析
まず、次の 2 つのプロジェクト要件を見てみましょう。
1. 自動車部品工場の場合、プランナーは個人が毎週担当する資材に基づいて、年間の予測数量を Excel を使用して記入します。月ごとのレポートに記入し、売上予測を記入します。数量、工場の予想生産数量、工場の予想出荷数、会計監査の数。レポートの完了後、材料の単価と為替レートに基づいて価格が計算され、同時に異なる BU に応じて異なる製品ラインが含まれます。異なる製品ラインには異なるグループが含まれ、異なる製品ラインが含まれます。この階層関係に従って、グループが担当するBU、製品ライン、および材料の価格を計算し、同時に先週のデータと比較し、特定の月のデータと前週または先週のデータに大きな差がある場合は、例外を報告し、プランナーにメモを作成するよう通知する必要があります。
同時に経営陣は、各BU、製品ライン、グループに関連するデータをいつでも柔軟に閲覧できるようにしたいと考えています。
また、管理者は、組織構造の関係、コスト データ、為替レート、その後の計算に使用する必要があるその他のデータなどの基本データを SAP から定期的にエクスポートする必要があります。これらのエクスポート データはすべて Excel 形式です。
2. 電機メーカーの場合、工場従業員が毎日エクセルで労働時間を報告する必要がある 報告完了後、労働時間をアップロードする いくらデータを記入しても、最後の行を基にして作成されるだけデータを作成し、作成されたデータが SAP に送信され、一致するかどうかが確認されます。一致しない場合は、フィードバックでデータを変更する必要があります。一致する場合は、データを更新します。データを更新するときは、まず既存のデータが存在するかどうかを確認します。製品番号に基づいてデータを取得します。ない場合は新しいデータを作成します。ある場合はデータを更新し、アップロードした Excel を現在のデータにバインドします。他の古い Excel はサーバー上に保存されます。
レポートでは、異なる品番の工数データを確認し、表示される工数データは最新のデータであると同時に、アップロードされた最新の関連Excelも表示され、ワンクリックでダウンロードできます。
上記 2 つのプロジェクトの要件を見ると、多くの類似点があることがわかります。まず、プランナーであっても工場従業員であっても、一般の従業員の働き方は変わっていません。 Excel ですが、データを入力すると多くなります。計算やロジックを処理する必要があります。この時点でも Excel を使用する場合、Case1 では、複数の Excel テーブルのデータを処理する必要があることがわかります。第二に、データを毎週計算する必要があり、作業負荷が非常に大きく、バージョン管理が容易ではないこと、計算ミスが見つかった場合、また、追跡するのが非常に困難です。なお、以下のような業務シナリオを実現するには、企画者や工場従業員が大量にデータを入力し、Excelを使用して実現する必要があり、膨大な労力がかかります。
第二に、どちらのプロジェクトも経営者がレポートを閲覧したいというニーズがあり、経営者は見たいデータをさまざまな端末でいつでもどこでも閲覧したいと考えており、Excelでは満足できません。
これら 2 つの要件は、Mendix を通じて非常に迅速に実現できます。実現プロセス全体は、今回の議論の範囲を超えています。今回は、Excel を介してコンポーネントをインポートし、オフライン プロセスをオンライン プロセスに完全に移行する方法に焦点を当てます。
3. Excelインポートコンポーネント
コンポーネントのダウンロード
Mendix Marketplace で Excel 検索を入力し、Excel インポーター コンポーネントのダウンロードを見つけます。
Excel の列とドメイン モデル間のマッピングを構成するために、モデル リフレクションコンポーネントのダウンロードを見つけます。
Community Commons Function Libraryコンポーネントのインストール を見つけて、BigDecimal 値をインポートできることを確認します。
これらのモジュールをダウンロードすると、Marketplace モジュールの下に表示されます。
モジュールをインポートした後、Templates_OverviewまたはExcelImporter.ExcelImportOverviewページをナビゲーション バーに構成します。これは Excel マッピングを定義するための開始点です。
正式に始める前に、さまざまなビジネス シナリオに従って Excel テンプレートを構成するのに役立つ、Excel テンプレートのさまざまな定義を理解しましょう。https://docs.mendix.com/appstore/modules/excel-importer/#413-header-row-nr
Excel をインポートする方法を始めましょう
Excelドキュメントをインポートする
1 はじめに
大量のデータ (参照データや外部アプリケーションからのデータなど) をアプリケーションに追加すると、時間がかかることがあります。時間と労力を節約するには、Excel インポート コンポーネントを使用します。このハウツーでは、設定をテンプレートにインポートし、このモジュールを使用してデータをアプリケーションにインポートします。
2 前提条件
このハウツーを開始する前に、次の方法を理解していることを確認してください。
- ドメイン モデルを作成します (「ドメイン モデルの構成」を参照)
- 概要ページと詳細ページの作成 (最初の 2 つの概要ページと詳細ページの作成方法を参照)
- ナビゲーション バーを作成します ( 「ナビゲーションの設定」を参照)
- マイクロフローを作成します (「メニュー項目からのマイクロフローのトリガー」を参照)
- アプリケーションを保護します (「安全なアプリケーションを作成する方法」を参照)
3 データ構造、GUI、モジュールを準備する
アプリケーションへのデータのインポートを開始する前に、まず次の手順に従ってデータ構造と GUI を設定する必要があります。
1. 次のドメイン モデルを作成します。
Open 、 Processing、Completeの値を持つOrderStatusプロパティの列挙を作成します 。
FileDocumentオブジェクトから継承するようにXLSFileオブジェクトを構成します。
2. CustomerおよびOrderタイプのオブジェクトを管理するための概要ページと詳細ページを作成します。
3.注文ページと顧客概要ページにアクセスするためのメニュー項目を作成します。
4. ExcelImportOverviewおよびMxObjects_Overviewページのメニュー項目を作成します(これらのページは、ダウンロードしたモジュールの_USE_MEフォルダーにすでに存在します)。
5. ExcelImporterモジュールのConfiguratorモジュール ロールと、 Mx モデル リフレクションモジュールのModelAdministratorモジュール ロールを持つように、管理者ユーザー ロールを構成します。
4 データインポートのロジックを準備する
列挙型はOrderStatusプロパティに使用されるため、Excel ファイルからの入力に基づいてプロパティの列挙値を決定するマイクロフローを作成する必要があります。インポートされたデータが列挙されていない場合、この手順は無視できます。
1. 次のマイクロフローを作成し、IVK_ParseStatusという名前を付けます。
2.戻り値を次のように設定します。
$Unformatted = 'open' の場合、MyFirstModule.OrderStatus.Open
それ以外の場合、$Unformatted = 'processing' then MyFirstModule.OrderStatus.Processing
それ以外の場合、$Unformatted = 'complete' の場合、MyFirstModule.OrderStatus.Complete
それ以外の場合、MyFirstModule.OrderStatus.Complete
3.マイクロフローを保存します。
5 クライアント側でのアプリケーション モデルのメタデータの使用
データをインポートするためのインポート テンプレートを設定するには、アプリケーション モデルのメタデータがクライアント側に反映される必要があります。これは、 Mx モデル リフレクションモジュールを使用して実現できます。これを行うには、次の手順に従います。
- 再生ボタン (ローカルで実行) をクリックしてアプリケーションを開始します。
- [アプリケーションの表示]をクリックして、ブラウザでアプリケーションを開きます。
- 管理者としてログインします。
- ナビゲーションで「MxObjects_Overview」のメニュー項目をクリックします。
- 左側のボックスをチェックして、クライアントで使用するオブジェクトを含むモジュールを選択します (この場合はMyFirstModule )。
- 左側の [チェックしたモジュールのすべてのエンティティとマイクロフローを同期する] の横にあるボタンをクリックします。MyFirstModuleモジュールからの2 つのオブジェクトと解析マイクロフローが、クライアント側で表示および使用できるようになりました。
6 インポートテンプレートを手動で作成する
Excel ファイルのデータをアプリケーションにインポートする前に、インポート テンプレートを設定する必要があります。このテンプレートでは、データをマッピングするオブジェクト、オブジェクトが別のオブジェクトに関連しているかどうか、Excel ファイルのどの行からインポートを開始するか、どの列をインポートするかを構成します。
データは、ここからダウンロードできる簡単なサンプル Excel ファイルからインポートされます。
インポートするファイルの構造に応じて、次のようにテンプレートを手動で設定する必要があります。
- アプリのホーム ナビゲーションで[ExcelImportOverview]メニュー項目をクリックします。
- [新しいテンプレート]をクリックします。
3. テンプレートに名前を付けます。
4. 「Mendix オブジェクト」ボックスの横にある矢印をクリックします。
5.顧客オブジェクト をダブルクリックします。
6. 「インポートオブジェクトへの参照」ボックスの横にある矢印をクリックします。
7. Customer_XLSFile関連付けを選択します。XLS ファイルをディスクに保存し、XLS ファイルとの関連付けを設定して、インポートされたデータをソース ファイルに結合します。
8.インポート操作が[オブジェクトの同期]に設定されていることを確認します。
この例では、ワークシートが 1 つだけあり、最初の行に列見出しがある単純な Excel ファイルが使用されます。より包括的な Excel ファイルを使用する場合、これらの値は[シート nr ] 、 [ヘッダー行 nr ]、および[行 nr からインポート]フィールドを介して変更できます。
9. 「列を属性に接続」セクションで、「新規」をクリックして、 Excel ワークシートの列から正しい Mendix 属性へのマッピングを作成します。
10. マップする Excel ファイルの列番号に対応する列番号を追加します。
Excel の最初の列には 0、2 番目の列には 1 というように番号が付けられます。
11. Excel の列見出しをキャプション値として定義します。
12. [タイプ] の[プロパティ]を選択します。
13. [プロパティ]ボックスの横にある矢印をクリックします。
14.属性をダブルクリックして Excel 値を次のようにマッピングします。
15. Customerオブジェクトのプロパティごとに、上記の手順 9 ~ 14 を繰り返します。
- Nameプロパティのマッピングでは、顧客の重複を防ぐためにKey値をYesに設定します。
マッピングが正しく設定されている場合は、行の前に緑色のチェックマークが表示されます。
16. 次に、 Orderオブジェクトのプロパティ のマッピングを作成する必要があります。ただし、OrderオブジェクトはCustomerオブジェクトに関連付けられているため、マッピングの設定は若干異なります。Orderオブジェクトの各プロパティに対して次の手順を実行します。
- マップする Excel ファイルの列番号に対応する列番号を追加します。
- Excel の列見出しをキャプション値として定義します。
- [タイプ] で[参照]を選択します。
- 参照ボックスの横にある矢印をクリックすると、注文を顧客にリンクする関連付けを選択できます。この場合はOrder_Customer です。
- プロパティボックスの横にある矢印をクリックし、Excel 値をマッピングするプロパティをダブルクリックします。
- Numberプロパティのマッピングでは、重複した注文を防ぐために、関連付けられた object に対してのみKey値を Yes に設定します。
- 「保存」をクリックします。
17. OrderStatus属性のマッピングでは、Excel ファイルの値を解析して列挙値にする必要があります。これを行うには、 IVK_ParseStatusマイクロフロー (上記の「データ インポート ロジックの準備」セクションで作成)を使用できます。[解析方法]ボックスの横にある矢印をクリックし、 IVK_ParseStatusマイクロフローを選択します。
18. インポートテンプレートを保存します。
6.1 Excelファイルをインポートする
テンプレートが設定されたので、Excel ファイルからアプリケーションへのデータのインポートを開始できます。上記の「インポート テンプレートの作成」セクションでダウンロードしたサンプル ファイルを使用できます。
Excel ファイルをインポートするには、次の手順に従います。
- アプリのホーム ナビゲーションで[ExcelImportOverview]メニュー項目をクリックします。
- 「ファイルのインポート」タブに移動し、 「新規」をクリックします。
3. 作成したテンプレートを選択します。
4. [参照] をクリックします。
5. ダウンロードしたサンプル Excel ファイルを選択し、「保存」をクリックします。
6. [ファイル名]の下の Excel ファイルをクリックして選択し、 [ファイルのインポート] をクリックします。
7.インポートが完了したら、 「OK」をクリックします。
以上で Excel データのインポートは完了しますが、その後の論理処理についてはマイクロフローで実現できますが、今回の紹介の範囲外です。
4. アプリケーションの表示
Excel コンポーネントの構成が完了したら、前の 2 つの顧客要件に対する実際のアプリケーションの効果を見てみましょう。
プロジェクト 1
Excel アップロード テンプレート
Planner によってアップロードされた後に生成されたデータ
計算後に異なるBU、製品ライン、グループデータを表示
Excelでインポートしたマスターデータ
プロジェクト2
工場従業員がインポートした Excel 労働時間テンプレート
フォームに記入して Excel をアップロードします
最終データ表示
5. 参考文献
- Excel コンポーネント マーケットプレイスの紹介https://marketplace.mendix.com/link/component/72
- MX Model Reflection コンポーネント MarketPlace の紹介https://marketplace.mendix.com/link/component/69
- コミュニティ共通コンポーネント紹介https://marketplace.mendix.com/link/component/170
- Excel インポート固有のドキュメントについては、https://docs.mendix.com/appstore/modules/excel-importer/#413-header-row-nr およびExcel ドキュメントのインポート | Mendix ドキュメントを参照してください。
メンディックスについて
シーメンスの企業であり、エンタープライズ ローコードの世界的リーダーである Mendix は、デジタル企業のアプリケーション構築方法を根本的に再構築しています。企業は、Mendix ローコード ソフトウェア迅速開発プラットフォームを使用して、自社の開発能力を拡張し、ソフトウェア開発のボトルネックを解消できます。Mendix 開発プラットフォームの助けを借りて、企業は、インテリジェンス、イニシアチブ、人間とコンピューターのインタラクションなどのネイティブ エクスペリエンスを備えたインテリジェント アプリケーションを作成し、コア システムを最新化し、ビジネスの成長スピードに追いつく大規模なアプリケーション開発を実現できます。Mendix ローコード ソフトウェア迅速開発プラットフォームは、最高のセキュリティ、品質、ガバナンス基準を維持しながら、ビジネス チームと IT チーム間の緊密な協力を促進し、アプリケーション開発サイクルを大幅に短縮し、企業が自信を持ってデジタルの未来に向かって進むのを支援します。Mendix の「Go Make It」プラットフォームは、世界中の 4,000 社を超える大手企業で使用されています。