移动解决方案:JD Edwards Mobile Field Service 应用程序


选项



欢迎使用 JD Edwards Mobile Field Service 移动解决方案教程!

本教程将向您展示如何将 JD Edwards Mobile Field Service 应用程序连接到 Oracle Mobile Cloud Service (MCS) 以利用 MCS 的分析和诊断功能。

屏幕截图中显示 iPad 上运行的 Field Service 应用程序。

解决方案

下面显示各组件是如何在有效的解决方案中配合使用的:

  • JD Edwards Field Service 移动应用程序对存储在 Oracle Mobile Cloud Service (MCS) 中的 API 进行安全调用。

    对 MCS 的调用发生在使用 HTTP 基本身份验证保护的移动后端的环境中。

  • MCS 中的 API 会调用一个 REST 连接器,该连接器会将调用传递到 JD Edwards EnterpriseOne 应用程序接口服务 (Application Interface Service, AIS) 服务器上托管的 API 端点上。
本图显示以上文本中所描述的体系结构

该解决方案的核心是一个 MCS 软件包,其中包括:

  • 一个移动后端,可提供用于访问 MCS 资源的安全上下文
  • 一个自定义 REST API 定义
  • 一个 API 实施,其中包含一个 Node.js 模块,该模块包含 API 中每个端点的路由函数
  • 一个 REST 连接器,从该实施的路由函数调用,可用于访问 AIS 服务器上的端点

在本例中,MCS 的自定义 API 主要是一个“直通”API。它没有单独的业务逻辑,但它会在代码中为随后可在 MCS 中跟踪的自定义事件添加业务逻辑。另外,可以使用 MCS 的诊断功能跟踪 API 调用和访问日志文件。

获取该解决方案的 MCS 软件包

下面是该软件包的下载文件:package-JDE_APP.zip

组件和流程

下面概述了所需的组件以及实施该解决方案需要遵循的步骤。

组件

组件 是否包含在该解决方案中
JD Edwards EnterpriseOne
JD Edwards EnterpriseOne Mobile Access
Oracle JD Edwards Field Service 移动应用程序
Oracle Mobile Cloud Service 16.2.3 (MCS) + 带有预先配置的移动后端和自定义 API 的软件包
Oracle Mobile Application Framework (MAF)

流程概述

您需要遵循下面的高级步骤才能让应用程序自始至终正常工作。

本教程的下一部分将提供有关每个步骤的详细信息。

步骤 组件 任务 用途 所需权限

MCS 设置 MCS 帐户 托管 API,您的应用程序将该 API 与 AIS 实例结合使用。 Oracle Cloud 帐户管理员

MCS 配置 MCS 用户和角色 使团队成员可以访问 MCS。 MCS 服务管理员或身份域管理员

MCS 在 MCS 中配置移动后端和 API 设置用于托管 API 的移动后端,您的应用程序将使用该 API 与 AIS 通信。

MCS 和 JDeveloper 自定义应用程序以使用移动后端 将移动应用程序连接到 MCS。

MCS 准备应用程序的生产版本 创建域并导入应用程序用户。

分步创建解决方案

设置 MCS 帐户

Oracle Mobile Cloud Service 允许您为移动应用程序创建移动后端,并将其用作企业后端的网关。它支持自定义 API、连接器 API(用来与后端系统通信)、服务器分析和由服务器发起的推送通知。

要与 MCS 一起设置,请遵循《使用 Oracle Mobile Cloud Service》中“设置服务”的说明。

配置 MCS 用户和角色

MCS 服务管理员(或其他具有 Oracle Cloud 身份域管理员角色的管理员)必须将开发人员设置为团队成员,开发人员才能访问 MCS。

请确保所有的移动应用程序开发人员都具有 MCS 开发人员团队成员角色,以便他们可以在 MCS UI 中工作。

请参阅《使用 Oracle Mobile Cloud Service》中的“为 MCS 团队成员分配角色”。

在 MCS 中配置移动后端和 API

此解决方案包含一个带有一个移动后端和一个自定义 API 的软件包,该 API 会转而调用 AIS 中的 REST API。

导入 MCS 软件包

  1. 在 MCS 中,使用下方所示的环境下拉列表选择要在其中导入软件包的环境。通常会将该软件包导入您指定的开发环境。
    屏幕截图显示环境选择器下拉列表,其中显示标记为“开发”、“暂存”和“生产”的选项
  2. 单击 页面左上角中的侧边菜单,然后从侧边菜单中选择应用程序 > 软件包

    屏幕截图中显示“应用程序”菜单及其选项(包括软件包)

  3. 单击新建导入
  4. 在导入向导的“开始”页上,单击选择软件包文件,浏览已下载的解决方案文件 (package-JDE_APP.zip) 并进行上载。

在上载该软件包之后,可以看到该软件包的名称、版本及相关信息。

此时,您应该看到以下伪像:

  • 移动后端JDE_MBE 1.0
  • 用户域Default 1.0
  • APIjderest 1.0
  • 连接器jde_ais 1.0

从 REST 连接器解析到 AIS

接着,您需要将 REST 连接器指向您的 AIS 服务器:

  1. 单击连接器
  2. 从列表中选择 jde_ais 连接器并单击打开
  3. 将“远程 URL”设置为您的 AIS 服务器的 URL。

    该 URL 应当如下所示:https://my-ais-domain.oracle.com:8485/jderest/

  4. 单击保存并关闭

在 MCS 中创建测试用户

在 MCS 中创建一些移动用户,这些移动用户的名称必须与可以访问 JD Edwards 实例的用户名相匹配。

  1. 在 MCS 中,确保您位于要在其中创建移动用户的环境中。

  2. 单击 页面左上角中的侧边菜单 以打开侧边菜单,然后选择应用程序 > 移动用户管理

  3. 单击移动用户

  4. 选择要在其中创建用户的

  5. 单击新建用户

  6. 输入一个唯一的用户名,然后填写对话框中的其余字段(包括可在其中检索所生成口令的电子邮件地址)。

    根据您要在其中创建用户的域,可用字段可能有所不同。

    重要说明:用户名和电子邮件地址都必须在 Oracle Cloud 的所有服务中保持唯一。

  7. 再次单击创建以创建新移动用户。

    此时 Oracle Cloud 会将一封带有临时口令的电子邮件发送到您输入的地址。

测试自定义 API

  • 在 MCS 中,选择应用程序 > API,选择 jderest API,然后单击测试
  • 您应当能看到这些 API 的部分有效载荷示例。请确保为同样作为 JD Edwards 用户的移动用户提供凭证。

自定义应用程序以使用移动后端

基于 MAA 文件创建 JDeveloper 项目

  1. 从 MyOracleSupport 上的 JDE Edwards 更新中心 (https://updatecenter.oracle.com/) 下载 JD Edwards EnterpriseOne 移动应用程序存档 (.maa) 文件。

    在更新中心的类型字段中输入“EnterpriseOne Mobile Enterprise 应用程序”可快速查找 MAA。

  2. 启动 JDeveloper。
  3. 在 JDeveloper 中,选择文件 > 新建 > 应用程序
  4. 在“新建库”中,选择存档文件(应用程序)中的 MAF 应用程序,然后单击确定
  5. 在“选择要导入的 MAA 文件”对话框中,选择应用程序的 maa 文件,然后单击打开

从 MCS 获取身份验证凭证

  1. 在 MCS 中,选择应用程序 > 移动后端,选择 JDE_MBE 1.0 移动后端,然后单击打开
  2. 单击设置
  3. 访问密钥下方,查找 HTTP 基本移动后端 ID 的值并记录。

    该值应如下所示:s9bac627-ac5b-473h-9c1d-abcc245bb906

  4. 匿名密钥旁边,单击显示链接,然后记录所显示的值。

    该值应如下所示:yUFJJTUVfREVDRVBUSUNPTl9NT0JJTEVfQU5PTllNT1VTX0FQUElEOnZrZWJxUmwuamEwbTdu

向 MAA 文件添加 MCS 身份验证凭证

  1. 在 JDeveloper 中,展开应用程序的 ApplicationController 项目节点,展开“应用程序源”节点,然后打开 about.properties 文件。
  2. 添加一个名为 cloudInstanceID 的属性并将其值设置为从 MCS 检索的移动后端 ID。
  3. 添加一个名为 cloudInstanceKey 的属性并将其值设置为移动后端的匿名密钥。
  4. 保存所做的更改。

将应用程序部署到设备或模拟器

获取 API 的基本 URL

  1. 在 MCS 中,选择应用程序 > API,选择 jderest 1.0 API,然后单击打开
  2. 复制“API 名称”字段下面所显示的 URL。

    该值应如下所示:https://mycloudhost.oracle.com/mobile/custom/jderest

将部署的应用程序配置为指向 MCS API

  1. 在部署了应用程序的设备或模拟器上,打开该应用程序的设置。
  2. 对于该 URL 设置,请插入 MCS API,但删除末尾的 /jderest

    随后,该 URL 设置值应如下所示:https://mycloudhost.oracle.com/mobile/custom

准备应用程序的生产版本

截至此时,您已经在开发模式下对该应用程序进行了处理。在对该应用程序执行最终测试并将它分配给用户之前,请执行以下操作:

在 MCS 中为应用程序的用户创建域

  1. 确保您位于要创建域的开发环境中。
  2. 单击 页面左上角中的侧边菜单 以打开侧边菜单,然后选择应用程序 > 移动用户管理
  3. 单击导航链接。
  4. 单击新建域
  5. 单击 页面左上角中的侧边菜单 以打开侧边菜单,然后选择应用程序 > 移动后端
  6. 选择移动后端,然后单击打开
  7. 单击 Users(用户)选项卡。
  8. 将移动后端的域更改为刚创建的域。

将用户导入域

按照下面的步骤,可以使用 Oracle Cloud 将一组用户导入 MCS 或者为一组用户分配 MCS 角色。MCS 移动用户域和角色均由 Oracle Cloud 中的自定义角色表示。与本部分中的所有移动用户操作一样,您需要在 Oracle Cloud 中具备身份域管理人员角色才能完成这些步骤。

  1. 在 Oracle Cloud 中使用逗号分隔值 (CSV) 文件创建一组移动用户。

    有关分批导入用户(包括相关 CSV 文件)的详细信息,请参阅《Oracle Cloud 入门》中的“导入一批用户帐户”。

  2. 通过为该组分配 Oracle Cloud 自定义角色来将这些用户导入 MCS 中,该自定义角色表示您先前创建的 MCS 域。

    用于表示 MCS 域的 Oracle Cloud 自定义角色的命名规则为:{serviceName}_MobileEnvironment_{realmname}_{version with dots as underscores}_Realm,其中 {serviceName} 是 Oracle Cloud 环境的服务名称。您可以在 Oracle Cloud 的“我的服务面板”页中查找所有 MCS 环境的服务名称。例如,对于服务名称为“3240930apod”的环境中的缺省域版本 1.0,Oracle Cloud 中的自定义角色为 3240930apod_MobileEnvironment_Default_1_0_Realm,对于服务名称为“poeo342ed”的环境中的 MyCustomers 域版本 2.5,自定义角色为 poeo342ed_MobileEnvironment_MyCustomers_2_5_Realm。有关详细说明,请参阅《Oracle Cloud 入门》中的“为许多用户分配一个角色”。

  3. (可选)通过分配 Oracle Cloud 自定义角色来为该组分配 MCS 移动用户角色,所用流程与上一步中针对域的流程相同。

    用于表示 MCS 移动用户角色的 Oracle Cloud 自定义角色的命名规则为:{serviceName}_MobileEnvironment_{rolename}。例如,对于服务名称为“poeo342ed”的环境中的“APIRole”角色,Oracle Cloud 中的自定义角色为 poeo342ed_MobileEnvironment_APIRole

发布和部署移动后端

如果您拥有包含多个环境的 MCS 实例,可能需要执行以下操作:

  1. 发布移动后端(以及依赖该移动后端的 API 和域)。此操作实际上会冻结这些伪像,这意味着如果您需要对这些伪像进行任何更改,则将需要创建这些伪像的新版本。
  2. 将该移动后端部署到生产环境。

要发布和部署移动后端,请执行以下操作:

  1. 单击 页面左上角中的侧边菜单 并从侧边菜单中选择应用程序 > 移动后端
  2. 选择 JDE_MBE 1.0,然后单击发布
  3. 在“确认发布”对话框中,单击检查相关性
  4. 确认将 jderest API 列为依赖项。
  5. 单击全部发布
  6. 选择已发布的移动后端。
  7. 在右侧部分中,单击部署
  8. 选择部署的目标环境。
  9. 单击相关性并确认 jderest API 是依赖项。
  10. 单击影响以查看可能对伪像所造成的影响。此处显示的数据仅供参考。
  11. 单击策略
  12. 单击导出以查看在源环境和目标环境中均显示策略的 policies.properties 文件中的 diff 文件。

    您无需针对这些策略执行任何操作,但是您可能会对检查已经设置了哪些策略感兴趣。

  13. 如果您修改了 policies.properties 文件,则单击导入将该文件加载到目标环境中。
  14. 单击确认
  15. 单击部署

附加信息:API、诊断和分析

API

下面是 jderest API 中的端点列表。这些端点用作“直通”端点,负责协调对 AIS 服务器上端点的调用,因此,您基本无需在业务逻辑方面对其进行处理。但是,您可以使用 MCS 的分析 API 来添加代码,从而收集有关客户如何使用这些端点的指标或者插入有助于通过 MCS 诊断功能进行疑难解答的日志记录代码。

如果要研究如何在 MCS 中设计和实施 API,请参阅《使用 Oracle Mobile Cloud Service》中的“自定义 API 设计”和“实施自定义 API

端点 URI HTTP 方法 服务说明

/defaultconfig

GET

响应包括有关 AIS 服务器的信息(其中包括版本级别、JAS 配置和功能列表)。不同版本的 AIS 具有不同的功能,即使您使用的客户机 API 是具有最新功能的最新版本,AIS 服务器也可能不是最新版本。

/tokenrequest

POST

基于输入内容,响应将包含登录信息(包括登录令牌和用户详细信息)。

/tokenrequest/logout

POST

基于输入内容(AIS 令牌),响应将为代码 200(注销成功)或 500(注销失败)。

/formservice

POST

基于输入内容,响应将包含所请求屏幕的 JSON 表示形式。

/batchformservice

POST

基于输入内容,响应将包含所请求的全部屏幕的 JSON 表示形式。

/file/gettext

POST

基于输入内容,响应将包含第一个文本媒体对象的文本。

/file/updatetext

POST

基于输入内容,响应将包含文本的更新状态。

/file/list

POST

基于输入内容,响应将包含所请求的结构和密钥的媒体对象列表。

/file/upload

POST(多部分屏幕)

响应将包含已上载文件的详细信息(包括媒体对象序号)

/file/download

POST

此响应为多部分屏幕(包括附件数据)。

/file/delete

POST

此响应指示是否已成功删除所传入序号的媒体对象。

/file/addurl

POST


/poservice

POST

基于输入内容,响应将包含所请求的应用程序和版本的处理选项值。

/log

POST

基于输入内容,AIS 服务器将写入一个日志条目,该条目中包含的信息将传递到日志服务。

/appstack

POST

基于输入内容,响应将包含在堆栈上打开的当前屏幕以及与堆栈相关的所有信息。

/dataservice

POST

基于输入内容,响应将包含匹配表查询或视图查询的记录的计数或列表。

/jargonservice

POST


分析

API 实施中包含对 MCS 分析 API 的调用,以记录随后可在 MCS 中跟踪的事件。

要查看这些自定义事件的代码,请执行以下操作:

  1. 在 MCS 中,选择应用程序 > API,选择 jderest 1.0 API,然后单击打开
  2. 单击实施
  3. 单击 jderest 实施的超链接进行下载。
  4. 解压缩已下载的 zip 并打开 jderest.js 文件。

在该文件中,可以查看基于 Node.js 且用于 API 中定义的每个端点的路由函数。例如,tokenrequest 上 POST 方法的路由函数按如下方式声明:

service.post('/mobile/custom/jderest/tokenrequest', function(req,res) {

	console.log('inside invoke /jderest/tokenrequest');
	
});

该函数中的代码如下所示,使用该代码可以收集事件详细信息并随后使用 analytics.postEvent 发布这些详细信息:

var context = {
	name: "$context",
	timestamp: (new Date()).toISOString(),
}
var event =    {
	name:"tokenRequestActivity",
	type:"custom",
	component:"jderest",
	timestamp: (new Date()).toISOString(),
	properties:{
		UserId: req.body.username,
		ApplicationName: req.body.applicationName,
		DeviceName: req.body.deviceName,
		Environment: req.body.environment,
		
	}
};
req.oracleMobile.analytics.postEvent([context, event]).then(
	function(result){
		console.log("Posted tokenRequest Activity");
	}
);

要在 MCS 中查看所收集事件的报告,请单击 页面左上角中的侧边菜单 以打开侧边菜单并选择分析 > 事件

要了解可以使用 MCS 分析 API 执行的操作,请参阅《使用 Oracle Mobile Cloud Service》中的“分析

诊断

MCS 的诊断功能可提供实时性能数据,并可快速访问每个 API 和连接器请求的详细日志消息。可以使用这些功能监控性能和错误率并调试所出现的任何问题。如果您是移动应用程序开发人员,还可以使用这些功能帮助调试代码。

要了解可以使用 MCS 诊断功能执行的操作,请参阅《使用 Oracle Mobile Cloud Service》中的“诊断”。

是否想要了解更多信息?

有关本教程中所含产品的更多详细信息,请参阅:

使用 Oracle Mobile Cloud Service

Oracle JD Edwards EnterpriseOne Tools 文档