CRM and CX Blogs by SAP
Stay up-to-date on the latest developments and product news about intelligent customer experience and CRM technologies through blog posts from SAP experts.
cancel
Showing results for 
Search instead for 
Did you mean: 
hongyan_shao
Active Contributor
0 Kudos
本文实例用的系统环境:

  • BBPCRM        715

  • WEBCUIF       749


本文的主要内容:

  1. 什么是Smart Value Help

  2. Smart Value Help的过去和现在,现在指在Note 2366163 - Smart Value Help Enhancements之后

  3. 新的Smart Value Help的实现方法

  4. 针对“Description”这类Value Help毫无意义的字段,如果打开Last 5 Entries的功能。


本文的附赠内容:

  1. 高质量的Incident的内容

  2. Value Help的种类

  3. 如何让Smart Value Help按多列显示

  4. SVH相关的一些小贴士


 

做support的时候经常能遇到让我们举手夸赞的客户,报上来的incident质量非常高。比如最近这位客户,报上来的问题包括

  • 重现问题的步骤,截屏

  • 和没有这个问题的老系统的行为比较,程序比较

  • Debug的细节,在debug里面manual改变程序走向之后的效果

  • 指出是哪个note带来的程序变化引发的这个问题


遇到这样的问题,我们基本就可以收拾收拾行李走人了,严肃点说就是直接forward给开发。严谨点就是抱着崇敬的心情在内部系统重现一下,debug一下,学习一下,然后还是forward给开发。这次的这个问题,我也是这样的,怀着崇敬之情,在重现和debug之后转给了开发。然后倒了杯白开水静下心来,打算揪着这条藤摸一下瓜,学习一下。

客户发现的这个bug的罪魁祸首是Note 2366163 - Smart Value Help Enhancements(放心这个bug已经有新note 2620532修正了)。但是其实这个note引入了一个小小的很好的新功能,拓展了Smart Value Help的现状。Smart Value Help是什么?在一个input field里面敲字符的时候,下面会自动提示两种,一种是最近输入的五个值Last 5 Entries,另一种是根据输入的字符在可选项里面搜索返回符合的值SVH Search Result。



那么Note 2366163 增加了什么功能呢?

首先让我们明确一个字段的Value Help,下面这个按钮



它包含两种情况:

  • DDIC Search Help

  • Advanced Search Help


举例,就拿创建Corporate Account企业客户为例,这里的Country字段使用的就是DDIC Search Help,后台是在V getter里面定义了check table或者search help。这里的Employee字段使用的是Advanced Search Help,后台在V getter里面定义了一个navigation,打开一个相对比较复杂的搜索页面。



Note 2366163以前呢,DDIC Search Help支持Last 5 Entries和SVH Search Result这两个功能,但是Advanced Search Help仅支持Last 5 Entries。而且没有这个Value Help按钮的字段这两个功能都不支持。

Note 2366163则为以上“但是”之后描述的现象提供了解决的可能性。

Note 2366163之前,V getter里面我们可以定义以下的descriptor:

  • F4 Help descriptor

    • 这个descriptor定义的就是DDIC Search Help,它可以告诉系统用哪个search help,或者用哪个字段里面的check table。还能定义输入和输出字段。



  • Navigation Descriptor

    • 这个descriptor定义的就是Advanced Search Help,它告诉系统用哪个outbound plug指向某个复杂的bsp搜索页面。




Note 2366163之后,V getter里面我们除了上述descriptor以外我们还能定义以下:

  • Smart Value Help descriptor

    • 这个descriptor仅仅定义在字段中敲字符引发的Search Result功能应该从哪个search help中搜索,它也成为在没有定义F4 Help descriptor的时候需要拥有Last 5 Entries的前提条件。



  • Value help mixed descriptor

    • 这个descriptor可以分别指定Smart Value Help的descriptor和Value Help也就是那个按钮的descriptor。然后前面提到的F4 Help descriptor和Navigation Descriptor都可以作为Value Help的descriptor。




描述太多容易看晕,上图



有了这个基础设施,只要增加V Getter的程序就可以让原先的Advance Search Value也能拥有SVH Search Result。也能让没有Value Help按钮的字段拥有Last 5 Entries和SVH Search Result功能。

Note 2366163的附件里面很清晰的列举了本note前和note后的不同的V Getter定义方法。

我尝试搜了一下,目前为止貌似还没有SAP的Application开发启用了这个单独的Smart Value Help descriptor。没准这个小功能对您自己的enhancement会是很有用的?

这是我enhance了创建Corporate Account企业客户页面上Employee这个字段的结果。请忽略我把Country的search help付给employee这件事情哦,这样或许可以更凸显这两个descriptor可以分开定义这个事实吧??



我也同时尝试enhance了Search Term这个没有value help的字段,请再次忽略盲目使用了Country的search help这件事情。



细心的读者可能会发现这两个Smart Value Help表现形式是不同的,那只是因为我拷贝了标准的search help,然后勾选了以下这两个选项。这个功能早在Note 2366163之前就有了这里不再赘述了。



这里我用了Search Term作为例子,这个可能会引发一种需求。那就是针对类似于Search Term或者Description的字段,定义Value Help是毫无意义的。但是能不能仅仅使用Last 5 Entries功能呢?这个功能还是有用的。

使用以上的机制就能实现了,我想到的就是定义一个search help但是指向一个永远为空的表格,也就是搜索永远不会有返回。那么就能实现针对这类字段仅仅打开Last 5 Entries的功能了。 ?

另外还有几个小贴士:

  • 如果您使用rapid application或者AET定义新的字段,并且直接在定义的界面上提供了check table或者search help,您不需要额外定义V Getter,系统会自动提供value help和SVH;

  • SVH在页面元素render的时候就被内嵌到了html当中,在敲击字符的时候会有http request发往后台,使用HTTPWatch或者F12等工具能捕捉到;

  • Render SVH的页面元素的程序在CL_THTMLB_INPUTFIELD IF_BSP_ELEMENT~DO_AT_BEGINNING当中;

  • Trouble shooting的话可以有两个方向,一SVH页面元素是否成功生成;二SVH触发的http request是否被后台正确处理;