< 上一课 | 下一课 >

第 3 课:创建抵押贷款计算服务

创建一项专用服务以计算每月还款金额。

在本课程中,您将创建一个 EGL 服务部件,这是一个可生成的部件。必须将每个可生成的部件放入单独的源文件中,并且部件的名称必须与文件名相同。

创建服务部件

  1. 在“项目资源管理器”窗口中,右键单击 MortgageServiceProject,然后单击新建 > 服务
  2. 在“新建 EGL 服务部件”窗口中输入以下信息:
    1. 字段中输入以下名称:
      services
    2. EGL 源文件名称字段中输入以下名称:
      MortgageCalculationService
      EGL 会对此文件添加 .egl 文件扩展名。
    3. 确认已取消选中作为 Web Service(SOAP 服务)创建作为 Web Service(REST 服务)创建,并让实现接口字段保留为空白。
      “新建 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,但是在此文件中并未看到任何错误。如果您遇到这种情况,请通过单击项目 > 清除加以解决。在“清除”窗口中,单击清除下面所选择的项目,然后单击相应的项目(例如,MortgageServiceProject)。
    从列表中选择了 MortgageServiceProject。
    单击确定。EGL 将重建所选择的项目并从“项目资源管理器”视图中除去红色 X。
  3. 通过在编辑器顶部的选项卡中单击此文件名旁边的 X 来关闭此文件,或者通过单击文件 > 关闭来关闭此文件。

课程复习要点

您已学习如何完成下列任务:
  • 创建 EGL 服务部件
  • 创建 EGL 记录部件并将其添加至服务部件的源文件
  • 查看代码中是否存在错误

在下一课中,您将创建第一个应用程序 Portlet 的用户界面。

< 上一课 | 下一课 >

反馈