当用户从视图离开时,视图将失去它的数据。解决这个问题,需要引入自定义控制器(Custom Controller)(译者注:SAP CRM自定义端中,不同地方的Custom Controller会翻译为“自定义控制器”、“自定义控制器”、“海关控制器”三种结果。这当中显然存在问题。下文如提到“自定义控制器”、“海关控制器”云云,均是按SAP GUI自定义端中相应位置的汉化为准,读者可视为同一词)。
我们将相同类型的上下文节点添加给自定义控制器,并且对自定义控制器上下文节点和需要的视图的上下文节点进行数据绑定。
在我们的例子中,我们将遵循以下逻辑,来让数据在不同的视图的上下文节点之间流动。
- 在搜索事件处理器中获取数据。
- 获取自定义控制器的实例,并且把我们获得的数据交给它的上下文节点。
- 在结果视图上下文节点。
让我们首先创建自定义控制器。
前往用户界面组件控制台-组件结构浏览器。右击自定义控制器,选择“创建”选项。
为它赋一个前缀“Cuco”的名字,比如CuCoSearch. Cuco代表Custom Controller.
下一步,将上下文节点命名为result,实体名填入BTQRSrvCon,因为我们将会把这个节点和结果视图上下文节点绑定。
绑定的上下文节点,应有相同的实体。
点击继续按钮,完成向导,并且保存实体。我们已经成功地创建了自定义控制器。
下一步,我们将绑定两个节点。前往result视图,右击result上下文节点,并且选择“创建绑定”选项。
在出现的弹出框中,选择组件类型为“自定义控制器”(当然,还是Custom Controller)作为我们要将数据绑定给result视图的控制器。
选择CuCosearch填入自定义控制器项中,接着选择result上下文节点,并且点击对号。就这样,我们完成了绑定。
一旦上面的步骤完成,我们就可以在这里观察绑定:
圈出部分说明自定义控制器的结果上下文节点绑定了result视图的结果上下文节点。
下一步我们将为search事件处理器添加一小部分代码,以获取自定义控制器实例,并且把已获取的数据交给它。
前往搜索视图的search事件处理器,添加如下代码。
在第16行,我们使用了方法get_custom_controller,通过名字获取自定义控制器的实例。
我们把返回数据lr_data交给自定义控制器的上下文节点result.
测试应用,点击搜索按钮,会展现出某些服务合同。我们的搜索页现在可以工作了。