日付/時刻関数を効率的に使用する方法 | Mendix

メインコンテンツへスキップ

日付/時刻関数を効率的に使用する方法

このブログ記事では、日付/時刻関数を利用する際に使用できるアプローチについて説明します。マイクロフローを使用して時間の差を計算する場合、使用している関数が正しい時間出力を生成するかどうかがすぐにわかりにくくなることがあります。

特に分単位で時間の差を計算する場合によく見られるもう 1 つの問題は、分とともに秒を正しく表示するために追加の計算を行う必要があることです。

例:

この例では、ユーザーがタスクを完了するのにかかる平均時間を計算するマイクロフローを作成します(ユーザーはタスク管理アプリを使用していると仮定します)。この時間は次の形式で表示する必要があります。 X分 Y秒ここで、X は分単位の平均時間を表示する変数であり、Y は秒単位の平均時間を表示します (以下を参照)。
ブログ2写真2

 

一見すると、これは困難な作業に思えるかもしれません。平均時間を 2 つの変数に分割する必要があり、さらに分と秒の両方の時間が正しく表示されるようにする必要があるからです。下の図は、これを処理するマイクロフローを示しています。
ブログ2写真1

 

これは非常に複雑なマイクロフローには見えないかもしれませんが、最後のアクション ボタンには多少の複雑さが必要であり、正しく構成されていない場合は開発者にとって大きな頭痛の種となる可能性もあります。上記の 2 つの時間変数を計算するには、次のものを計算する 2 つの関数を作成する必要があります。

  1. タスクを完了するまでの平均時間を計算し、その数値を切り捨てて、最終結果が平均時間の分値になるようにします。
  2. タスクを完了するまでの平均時間を計算し、上で計算した平均分の値を減算すると、最終結果が平均時間の秒値になります。

これを実現するには、以下の 2 つのマイクロフロー関数を利用します。

  1. 丸め – 浮動小数点数を、オプションで指定された精度に丸める
  2. 切り捨て – 浮動小数点数を切り捨てる

以下は、参考として使用するマイクロフロー アクションの正しい属性計算のスクリーンショットです。
ブログ2写真3

デバッグのヒント

上記の属性計算をデバッグする場合、計算の特定のセクションのみを含む変数をマイクロフロー内に作成して、各 IF ステートメントの各セクションを分割するのが最適です。この方法を使用すると、モデラーで正確なデバッガー ブレークポイントを設定できるため、方程式のどのセクションが間違っているかを簡単に見つけることができます。以下は、上記の属性をデバッグする方法の例です。
ブログ2写真4
強調表示された各選択は独自の変数に複製されるため、ユーザーはデバッガーを通じて、これらの関数のいずれかが誤った値を計算しているかどうかを確認できます。
ブログ2写真5
上でご覧のとおり、計算された属性の各機能をキャプチャするために、5 つの特定の変数が作成されました。次に、最初のセクションにデバッガー ブレークポイントを追加して、計算された値を確認します。許容可能な値であれば、2 番目の変数に進むことができます。変数が許容可能な値でない場合は、コードのそのセクションを操作できます。このプロセスにより、間違いがどこにあるかを正確に特定でき、通常は複雑な属性を計算し、その値が間違っている場合にどこから始めればよいか分からなくなるというフラストレーションを軽減できます。

まとめ

提供されている日付/時刻機能を利用して、 Mendix モデラーは、コードを体系的にデバッグすれば、タスクの完了に関するユーザー メトリックを視覚的に表示する強力な手段になります。

言語を選択してください