< 前へ | 次へ >

演習 3: 住宅ローン計算サービスの作成

毎月の支払金額を計算する専用サービスを作成します。

この演習では、生成可能パーツである EGL サービス・パーツを作成します。 各生成可能パーツは個別のソース・ファイル内に置き、そのパーツの名前はファイルの名前と同じにする必要があります。

サービス・パーツの作成

  1. 「プロジェクト・エクスプローラー」ウィンドウで「MortgageServiceProject」を右クリックし、「新規作成」 > 「サービス」とクリックします。
  2. 「新規 EGL サービス・パーツ」ウィンドウで、以下の情報を入力します。
    1. 「パッケージ」フィールドに、以下の名前を入力します。
      services
    2. 「EGL ソース・ファイル名」フィールドに、以下の名前を入力します。
      MortgageCalculationService
      EGL により、ファイル拡張子 .egl が追加されます。
    3. 「Web (SOAP) サービスとして作成」および「Web (REST) サービスとして作成 (Create as web (REST) service)」がクリアされているか確認し、「インターフェースの実装」フィールドは空のままにします。
      サービス名およびパッケージが示された「新規 EGL サービス・パーツ」ウィンドウ。
  3. 「終了」をクリックします。 EGL により、新規サービス・パーツがエディターで開かれます。
  4. 以下の行のみを残して、ファイルからコードを削除します。
    package services;
    
    service MortgageCalculationService
    
    end
  5. end ステートメントの前に以下の関数を追加します。
    	function amortize(inputData MortgageCalculationResult inOut)
    		amt MONEY = inputData.loanAmount;
    		// convert to monthly rate
    		rate DECIMAL(10, 8) = (1 + inputData.interestRate / 1200);
    		// convert to months
    		term INT = (inputData.term * 12);
    
    		// calculate monthly payment amount
    		pmt MONEY = (amt * (rate - 1) * Mathlib.pow(rate, term)) /
    				(MathLib.pow(rate, term) - 1);
    		totalInterest MONEY = (pmt * term) - amt;
    		
    		// update result record
    		inputData.monthlyPayment = pmt;
    		inputData.interest = totalInterest;
    	end
    これらの説明からコードを貼り付けた場合、フォーマットが変更される場合があります。 Ctrl + Shift + F を押して、コードの再フォーマット設定を行ってください。 フォーマット・ルールは、「ウィンドウ」 > 「設定」 > 「EGL」 > 「エディター」 > 「フォーマッター」とクリックすることで変更できます。
    注:
    EGL は、コード・エラーがあった場合、左マージンに赤い X でマークを付け、エラーの下に赤の波線を引きます。 エラー・メッセージを表示するには、X の上にカーソルを移動させてください。
    赤い波線が引かれ、マージンに赤い X によるマークが付けられたエラー。

    MortgageCalculationResult という名前のタイプがまだ定義されていないため、EGL がそのタイプに基づいて inputData 変数を作成することができません。 次の演習でこのレコード・タイプを作成すると、EGL によってエラー・マーカーが表示から取り除かれます。

  6. 「ファイル」 > 「保存」とクリックして、ファイルを保存します。

レコード・パーツの作成

amortize() 関数では MortgageCalculationResult レコードを使用します。 このレコードは、サービスと同じファイル内に定義できます。

レコード・パーツを作成するには、以下のようにします。

  1. MortgageCalculationService.egl ファイルの amortize() 関数の後に以下のコードを追加します。 レコードはパーツであるため、サービス・パーツの外部 (このファイルの最後にある end ステートメントの後) に定義します。
    record MortgageCalculationResult
    	// user input
    	loanAmount MONEY;
    	interestRate DECIMAL(10,8);
    	term INT;
    
    	// calculated fields
    	monthlyPayment MONEY;
    	interest MONEY;
    end
  2. ファイルを保存します。 EGL でコード内のエラー・マーカーが表示されなくなるはずです。 ソース・ファイルにエラーがある場合は、そのコードと演習 3 終了後の MortgageCalculationService.egl のコードのファイル内容を比較してください。 チュートリアルを進める間、プロジェクトに隣接して、またはその下にあるいずれかのフォルダーに隣接して赤い X が表示されるにもかかわらず、ファイル自体にはエラーが見当たらないというケースが発生することがあります。 その場合は、「プロジェクト」 > 「クリーン」とクリックすることで、その問題を解決してください。 「クリーン」ウィンドウで、「以下で選択したプロジェクトをクリーンにする (Clean projects selected below)」をクリックしてから、「MortgageServiceProject」などの該当するプロジェクトをクリックします。
    リストで選択された「MortgageServiceProject」。
    「OK」をクリックします。 EGL により、選択されたプロジェクトが再ビルドされ、「プロジェクト・エクスプローラー」ビューから赤い X が取り除かれます。
  3. エディターの上部にあるタブのファイル名の横にある X をクリックするか、「ファイル」 > 「閉じる」とクリックしてファイルを閉じます。

演習のチェックポイント

以下のタスクの実行方法を学習しました。
  • EGL サービス・パーツを作成する。
  • EGL レコード・パーツを作成して、サービスのソース・ファイルに追加する。
  • コード内のエラーを確認する。

次の演習では、最初のアプリケーション・ポートレットのユーザー・インターフェースを作成します。

< 前へ | 次へ >

フィードバック