编辑注:您很精通这个主题吗?希望分享您的经验吗?请马上加入到 IBM Lotus 软件 wiki 项目。
| Alloy by IBM and SAP wiki |
|---|
Alloy software by IBM and SAP 使企业用户可以轻松访问关键企业流程和信息,使 IBM Lotus® Notes® 用户可以在不同的 SAP 工作流上操作,并可以从 Lotus Notes 邮件客户端访问 SAP 数据。
用户甚至不需要知道 SAP 系统的存在。使用 SAP 流程时,不需要切换到 SAP 后端用户界面。用户可以在 Lotus Notes 中获得足够的信息并做出决定,因为所有相关的业务数据都在那里。
Alloy 是 Lotus Notes 中的一个端到端 SAP 工作流集成。SAP 与 Notes 之间的所有通信都通过 Web 服务数据库 NDERPws.nsf 发生,这个 Web 服务数据库在 Alloy IBM Lotus Domino® 服务器上。当前的 Alloy 发行版支持定制的请假、差旅、报告和一般工作流。
虽然 Alloy by SAP and IBM Administration Guide 论述了 Web 服务数据库不同方面的很多详细信息,但是本文的目的是深入阐述一些主要的话题。本文假设您知道基本的 Alloy 功能。
本文解释 IBM 提供或通过 Web 服务数据库使用的 Web 服务,并展示如何在不同场景中使用该数据库。本文还简要地概述 Alloy 管理员和用户可用的动作和视图。
图 1 显示 Alloy 架构的示意图,通过该架构,可以在 Lotus Notes 中使用 SAP 工作流。Alloy 支持 IBM 与 SAP 之间的双向通信,以便将 Leave、Travel 和 Reporting 等用户请求发送到 SAP。
Alloy 使用 SAP 提供的 Web 服务,例如元数据、应用程序管理、角色管理、reporting/travel/leave 工作流和数据一致性服务(Alloy 1.0.1 版中新增)。
图 1. Alloy 架构概图
在 Alloy 1.0 中,请假、差旅和报告场景都受支持,并且无需定制便可直接使用,通过工作流决策管理的支持,还可以对这些场景进行扩展。为了支持这些场景,Lotus Domino 和 Lotus Notes 客户端上必须提供 SAP 元数据。
可以通过使用元数据服务,定期从 SAP 获取元数据,或者将元数据与 SAP 同步。这种同步可以定期进行,或者根据管理员或用户的需要进行。
用户请求被发送到 Web 服务数据库,请求处理器代理依次获得这些请求,并对 SAP 执行适当的 Web 服务调用。这个处理流程被称作主动外呼(outbound)。
SAP 处理这些请求,并与 SAP 后端服务器通信,以收集必要的响应数据。IBM 提供一个通用 Web 服务 BoundItemService,SAP 用它来将响应发送到 IBM。Web 服务数据库中的 BoundItemService 处理这些响应,并将它们发送给适当的用户。这个流程被称作信息流入(inbound)。
outbound 请求由请求处理器代理以队列的方式进行处理,为此,Web 服务数据库实现了诸如以下之类的视图:
- Outbound requests/unprocessed
- Outbound requests/suspended
- Outbound requests/processed
- Outbound requests/all
管理员可以在这些队列中看到 Alloy 用户发送的请求,还可以在 Web 服务数据库中的 Business Objects 视图中看到来自 SAP 的响应。我们将在 “用户视角下的 NDERPws” 小节中更详细地描述这个视图。
Web 服务数据库还是管理员运行管理任务的界面。请阅读 “管理员视角下的 “NDERPws” 小节。
Web 服务数据库中所有设计组件的基础是 NDERPws.ntf 模板。在 Lotus Domino 上安装 Alloy 服务器时,该模板被添加到 Lotus Domino 服务器的 Data 目录中。
安装过程中还会添加一些特定于语言的模板(例如,NDERPws_it.ntf、NDERPws_de.ntf、NDERPws_ja、NDERPws_fr.ntf),可以使用这些模板为不同的地区建立 Web 服务数据库。
下面是创建和配置 NDERPws.nsf 的简要步骤。要获得完整的细节,请参阅 Alloy by SAP and IBM Administration Guide。
- 在 Lotus Notes 客户端,以 Administrator 身份登录,选择 File - Application - New。
- 在 New Application 窗口(见图 2),填充 Server(Alloy 服务器名称)、Title 和 File name 字段。
图 2. 创建 NDERPws 数据库
- 指定模板 NDERP Web Service。如果在非英语地区,那么创建数据库时使用其他特定于语言的模板,而不是 NDERPws.ntf。
- 单击 OK 创建数据库。
现在,可以为 Alloy 对该数据库进行配置。在数据库初始页面的左侧,可以看到 Applications、Roles、F4 Help 和 Sidebar panel 视图:
-
Applications。可以有一组固定的应用程序。但是,这些在 Alloy 中实现的 SAP 工作流可以直接使用,无需修改:
- LEMA - Leave management
- TRVL- Travel management
- REMA - Report management
还可以有多个定制的决策工作流。例如,假设要配置一个 SAP 订购单或 SAP 材料管理工作流。Alloy 没有直接提供立即可用的这两种工作流,但是可以使用 Alloy 的可扩展通用工作流将这些工作流映射为应用程序。
当创建预定义的应用程序(LEMA、REMA 或 TRVL)时,会告诉 SAP 可以将与该应用程序相关的所有数据从 SAP 提取到 Lotus Domino(IBM 端)。如果没有创建 LEMA 应用程序,SAP 不会将任何与请假相关的数据发送到 Lotus Domino 端。
- Roles。对于一个应用程序,用户可以有 USER 或 MANAGER 两种角色之一。LEMAUser 角色意味着可以创建 Leave 请求。LEMAManager 角色意味着可以批准或拒绝雇员的请假请求。
-
F4 Help。该视图是报告元数据的部分,所有 REMAUsers 都可以看到它。报告模板包括一个 Parameter 窗口,用户可以在该窗口中为不同的参数编辑值,或者从预定义的列表中选择值。对于一组报告模板,可以有一个或多个有那样的预定义值列表的参数。
当用户第一次登录到 Lotus Notes 客户端时,SAP 发送所有这些值(即 F4 Help)。然后,Alloy 执行预先安排的更新检查。
-
Sidebar panel。该面板是特定于 Alloy 的面板,位于 Lotus Notes 邮件客户端的侧边。可以对它进行配置,使之显示与当前 Alloy 上下文相关的特定于上下文的数据。例如,当在 Lotus Notes 客户端中打开一个请假请求时,侧边栏显示假期余额。当打开 Reports 时,侧边栏显示相关报告链接,交付的报告链接,等等。
在 NDERPws 中,Sidebar panel 视图显示客户端侧边栏面板的配置文档。这些文档中的设置规定对于不同的 Alloy 上下文在客户端侧边栏显示什么(例如,请假上下文、报告上下文等)。在元数据同步时,NDERPws 中的可用配置被提取到所有 Alloy 客户端。
要为 Alloy 设置 NDERPws 数据库,管理员需要执行以下步骤:
- 单击 NDERPws Applications 视图顶端动作栏上的 Open Server Config。此时出现 Server Properties 表单,在其中可以配置特定于 Alloy 的 Server/Client 设置,如图 3 所示。
- 在表单的顶部区域,确保 Outbound request processing 选项被启用(这是 Alloy 1.0.1 中的新字段)。
SAP J2EE server address 字段是所有 SAP Web 服务所在的服务器的地址。Lotus Domino 使用该地址调用各个 SAP Web 服务。也可以使用 $NDERPJ2EEServer=http://<Server>:<Port> server Notes.ini 参数指定 SAP J2EE 服务器地址,例如:
$NDERPJ2EEServer=http://sapj2eedev.notesdev.ibm.com:50200 - 在 SAP Name Mapping 区,Lotus Notes ID 必须映射到一个 SAP ID,该 SAP ID 包含在用户的 Person 文档中。为了映射 SAP ID 字段,可以选择 SAP=statement in the User name field 选项,如图 3 所示。如果选择 Use first name specified in a form field 选项,那么它可以被映射到 Names.nsf 中的 Lotus Domino Person 文档中的任何表单字段。
图 3. NDERPws 服务器配置设置
图 4 显示 SAP 到 IBM 的 Metadata Fetch Schedule 设置。元数据指定用户动作的范围和可见性。例如,如果您的角色是 LEMAUser 或 REMAUser,那么不能发出差旅请求,因为没有被授权那样做。要想那样做,必须有 TRVLuser 的角色。
将角色分配给不同的用户,这是在 SAP 中进行的,并在 Alloy Lotus Domino 中同步。
图 4. NDERPws 客户端配置设置
图 4 中的设置触发一个取元数据操作,如下所示:
- 每过一小时取 Report catalog
- 每天 2:00 AM 取 Roles
- 每天 4:00 AM 取 Leave
- 每天 5:00 AM 取 Trip
- 每天 4:00 AM 取相关报告
- 每天 2:00 AM 取 Sideshelf
mail-in 数据库是存放所有发出和收到的邮件消息的地方。为了设置该数据库,在 Names.nsf 中指定 Mail In Database(与 NDERPws.nsf 中一样),然后使用图 5 中的配置设置将以下设置添加到 Lotus Domino Notes.ini:
$NDERPMID=<Alias for the mail in Database>
例如,
$NDERPMID=Alloy Mail In Database@YourDomain
Alloy by SAP and IBM Administration Guide 包含设置 NDERPws 的完整细节。在此我们只提供一些简化的说明。
如前面所解释,为了将与应用程序相关的数据从 SAP 提取到 Alloy 服务器,管理员创建相应的应用程序。要创建和配置已有的 LEMA、REMA 或 TRVL 应用程序,遵循以下步骤:
- 进入 NDERPws 数据库中的 Applications 视图,单击顶端动作栏中的 New Application。
- 在 Application Properties 窗口中,从顶端下拉列表中选择要创建的应用程序。例如,在此我们使用 LEMA (见图 5)。
图 5. 选择应用程序
- 单击 Save & Close; 关闭创建的应用程序,在 Applications 视图中可以看到文档。有关如何配置 Customized Decision 应用程序的详细信息,请查看 Administration Guide。
当管理员删除一个应用程序时,他们收到一条确认消息,成功删除后,还会收到适当的状态消息。
如前所述,角色决定用户的动作范围和数据可见性。要创建角色,管理员选择 Roles / By SAP ID 视图,并单击顶端的 Create/Update Roles(见图 6)。当创建新的 NDERPws 数据库时,管理员必须从 SAP 获取所有的用户角色。然后,管理员可以使用相同的动作同步角色数据,以便从 SAP 获得最近的更新。
根据 NDERPws 配置的客户端属性中定义的日程安排,用户角色被定期地自动同步。管理员也可以使用 Create/Update Role 按钮手动发起同步。
图 6. Create/Update Roles
Catalog 是指 Report Catalog,是为用户配置的所有报告模板的储存库。SAP 管理员首先将报告模板分配给用户和角色,之后,在report catalog metadata-fetch 操作期间,它们被提取到 Lotus Domino 端。
报告模板是在一个报告类别(例如 travel 或 costing)下定义的,它定义报告提供的数据和列。它允许用户根据输入参数查询该数据,通过参数可以指定不连续的数据值或数据范围、交付格式(例如 ZIP 或 DOC 文件)以及日程安排(例如每日、每周)等。
用户还可以根据这些参数请求报告数据。要了解更多细节,请参阅 developerWorks® 文章 “在 Alloy by IBM and SAP 1.0 中管理报告”。
当报告模板有问题,或者不可用时,用户可以请求清除报告类别。为此,对于一个或多个用户,管理员选择 Reporting / Report Template 视图,并单击 Clear Catalog 动作(见图 7)。
图 7. 清除类别
Alloy 在 NDERPmail.ntf 中有它自己的设计组件,在一开始部署 Alloy 时,必须将它们合并到已有的 Lotus Notes 邮件模板(例如 Mail8.ntf)中。
为了完成该操作,管理员可以从 Applications 视图顶端,选择动作栏中的 Update Mail Template 按钮,然后用新合并的模板替换邮件数据库的设计(见图 8)。为了替换设计,管理员可以使用 Lotus Domino server command Load 设计或 Lotus Notes 客户端菜单命令 File - Application - Replace Design。
图 8. 邮件模板合并窗口
NDERPws 模板指定默认的侧边栏面板数据,所以当从该模板创建 NDERPws 数据库时,该数据自动显示在 NDERPws 数据库中。
管理员可以根据用户的需求对侧面(side-shel)的格式作进一步的更改。但是,并不是每个用户都能定制这些更改。换句话说,在一个 Alloy 中,所有用户都看到相同的侧面格式;数据可以随用户的不同而变化,但是格式都是一样的。
侧面显示的数据的类型取决于侧边栏面板数据指定的用户的当前上下文(报告,请求批准)以及用户的角色(经理,雇员)。要了解更多详细信息,请参阅 Administration Guide。
现在我们来讨论 NDERPws 数据库中的各种不同的视图以及它们的用法。
outbound 请求是从 IBM 到 SAP 的请求,每当发出一个新的请求时,该请求会到达 NDERPws(也被配置为 Lotus Domino 的 Names.nsf 中的 mail-in 数据库)。请求的初始状态是 Unprocessed(In Process)。当当前到达 SAP J2EE 服务器(SAP 的 Web 服务器),并为它创建了一个工作项目时,请求的状态变成了 Processed。
如果 IBM 与 SAP 之间的 Web 服务通信期间发生错误,或者 SAP 在收到的请求中检测到业务错误,那么 outbound 流中出现一个错误,在这种情况下请求进入到 Suspended 状态。管理员可以打开 Suspended 队列中的任何请求,查看关于失败原因的描述。
此外,管理员还可以查看以下信息:
- NDERPws Outbound Requests 视图中请求的状态(见图 9)。当出现失败时,可以查看错误消息。
- 来自所有 Alloy 用户的请求。可以将适当的挂起请求恢复到 Unprocessed 队列中,以便之后重试。各个 Alloy 用户只可以查看他们自己发出的请求。
图 9. Outbound 队列
inbound 消息包含来自 SAP 的响应,由于整个通信是通过 Web 服务的,来自 SAP 的 inbound 消息采取 SOAP XML 文件的格式。
这些消息由 NDERPws 解析和处理,并转换为 Lotus Notes 文档,再发送到适当用户的收件箱。管理员和用户都可以在 Web 服务数据库中的 Business Objects 视图中看到 inbound 对象(见图 10)。
图 10. Business Objects 视图
现在我们来看看其他 NDERPws 视图。特别是 Applications、Report Templates、Report Parameter Help、Roles 和 Sidebar Panel data。
-
Applications。该视图包含 Alloy 中配置的不同的应用程序,例如默认的请假、差旅、报告应用程序以及多个定制的决策应用程序(见图 11)。
图 11. Applications 视图
-
Report Templates。SAP 有一组为 Alloy 用户配置的报告模板。这些报告模板被提取到 Lotus Domino 服务器,并最终在取元数据时提取到用户的本地元数据数据库。管理员可以在 Reporting / Report Templates 视图中查看为每个用户配置的报告模板,这些报告模板出现在不同的用户名下(见图 12)。
图 12. Report Templates 视图
-
Report Parameter Help。可以通过 Reporting - Report Parameter Help 视图查看 F4 Help(只用于 Reporting/Report Templates)文档,其中包含 SAP 提供的不同报告参数的可用值列表 SAP(见图 13)。
在元数据同步时,这些文档还被提取到用户的本地元数据数据库,当用户执行各种不同的动作,例如 Personalize report template and Run report 时,可以从下拉帮助列表中使用这些文档。
图 13. Report Parameter Help 视图
-
Roles。管理员和用户可以在该视图中的 Roles - By Role Name 下看到分配给用户的角色(见图 14)。
图 14. Roles 视图
-
Sidebar Panel / Panel data。该视图包含 Alloy side shelf 的可用配置数据(见图 15)。必要时,管理员可以更改配置。在元数据同步时,所有侧边栏配置数据还被发送到用户的 Local Metadata 数据库,并且,Lotus Notes 客户端中显示基于该数据的 Alloy side shelf。
图 15. Sidebar Panel / Panel Data 视图
下面是解决一些常见问题的技巧。
没有收到请假元数据(用户的 Lotus Notes 客户端中没有发现 Create/Leave Request 动作)
解决方法:检查管理员是否使用 NDERPws 数据库中的 Create Application 和 Create/Update Roles 动作创建了 LEMA 应用程序,并在创建后更新了角色。
解决方法:该问题可能是由于没有正确合并邮件模板所致。管理员必须使用纯法语邮件模板,将它与 NDERPmail_fr.ntf 合并,合并后,务必运行 Lotus Domino load design 命令,或者通过 Lotus Notes 客户端替换邮件服务器的设计。
所有报告模板都没有任何 F4 帮助列表来帮助用户创建个性化报告模板
解决方法:检查 NDERPws 数据库是否有可用的 F4/Report Parameter Help 文档。如果没有,那么很可能是 Web 服务调用失败。管理员可以在 IBM 和 SAP 端调查失败原因。如果这些文档在 NDERPws 中,那么在下一次元数据同步时用户的本地元数据可以得到这些文档,然后用户就可以使用帮助列表。
解决方法:请求管理员清除 NDERPws 上相应的报告类别。当下一次 Lotus Notes 客户端与 NDERPws 上的报告模板同步时(同步按管理员设定的时间间隔执行),会将用户的报告类别重设为可用状态。这样一来,SAP 管理员在 SAP 端配置的所有报告模板都可以让用户使用,因此用户可以根据这些模板创建个性化的模板。
解决方法:Alloy 侧边栏面板中的数据会根据管理员设定的时间安排自动刷新。也可以手动刷新侧边栏面板数据。
要手动执行该步骤,单击侧边栏面板的动作栏中的 Refresh 按钮。该动作刷新 Alloy 侧边栏面板中的请假和报告数据,并显示上次刷新以来管理员对面板做出的任何定制(例如增加新的 HTML 链接)。
注意,刷新侧边栏面板不会影响报告类别同步,报告类别同步是按管理员设定的时间间隔执行的。
用户请求了一个报告,并等了较长时间,但是报告仍然没有发送到用户的收件箱
解决方法:检查 NDERPws 中的挂起队列,看用户的报告请求是否被挂起。如果被挂起,那么打开请求,查看原因。如果是暂时的错误,检查管理员是否可以将请求恢复到 Unprocessed 队列,以待重试。
一名经理最近将他的邮件文档归了档,所以手头上没有所有的批准邮件。那么,他如何确定上个月处理了多少请假批准请求?
解决方法: 管理员可以根据 Business Objects 视图中的可用数据创建定制的视图。他可以根据接收者、日期、boundItemType 等分类和排序,从而获得该经理所需的视图。
Web 服务数据库是 Alloy 功能中不可或缺的重要部分,因为它的设计为所有 SAP 和 IBM 通信提供了途径。这个数据库可以作为管理员设置 Alloy 应用程序工作流和用户角色的界面,而用户也可以使用适当的视图监视请求和排除遇到的问题。
- 参与论坛讨论。
-
阅读 developerWorks 文章 “在 Alloy by IBM and SAP 1.0 中管理报告”。
-
阅读 developerWorks 文章 “性能报告:Alloy by IBM and SAP 1.0”。
-
阅读 IBM Lotus Notes and Domino wiki 文章 “Basic troubleshooting guidelines for Alloy software by IBM and SAP 1.0”。
-
阅读 Lotus Notes and Domino product wiki 上更多关于 Alloy 的文章。
-
参阅 Lotus Notes and Lotus Domino Information Center 中关于 Alloy 的内容。
-
参阅 IBM Support Technote “Domino 8.0.2 and Notes 8.0.2 system requirements for Alloy v.1.0”。
-
参阅 Alloy by IBM and SAP 的产品页面。
-
观看 Alloy demo “Optimizing decision making and improving productivity”。