本人初学BSP, 因为有以前N年的WEB开发基础, 学起来倒是不难. 搞WEB的, 是离不开JS和CSS的, 在大概熟悉了BSP技术之后, 感觉和ASP差不多, 不同的是用ABAP语言而己.
虽然没有实际的BSP项目经验, 但从通用的WEB开发角度来讲, 把几个比较实用的技术简单罗列一下, 以下想法来源于我自己的习惯很可能不入流, 高手莫笑.
1. 引用外部脚本, 实现代码复用
在SAP的官方教程中, 教会了我们如何引用HTML代码段, 即所谓的Page Fragment, 其实JS/CSS等也可以看一个HTML代码段来处理, 如下图:
当然比较正规的方式是创建或导入MIME对象的方式来做, 但考虑到JS/CSS等的需要依需求而繁烦修改的情况, 我认为还是上面的方法较为方便. 尤其是在AJAX大行其道的今天, 数据展示与处理的大部分任务都交给了JS, ABAP只需负责后台数据交互, 这种情况下, 该方法就尤显便利了.
CSS或文件也可以参考JS方式引用.
注: 其实BSP中对文件的扩展名并没有做任何限制的, 你甚至可以将你的首页命名为AA.AA.
2. 复杂功能的组织实现
在基于第一条方法的基础上, 我想到是否可以将一些通用的JS/CSS/HTML独立出来, 让多个项目引用? 这就涉及到如何引用其他项目Page Fragment的问题, 经过尝试, 方法如下:
这里的ZBSP03就是项目名了.
在这个思路指导下, 我们就可以象开发ASP.net程序一样, 建很多小的项目, 每个项目都完成一些固定的小的功能,然后再通过一个总的项目整合起来, 这样就可以多人并行开发了, 通用代码库也比较好维护, 优点就不一一列举了, 呵呵.
3. 关于BSP开发的一点见解
其实所有的WEB开发都可以归结到这一点上来, 就是用不用系统提供的控件的问题. 比如BSP中的HTMLB之类的, 用了当然方便, 但也会受到一些限制. 有兴趣的可以看下HTMLB在浏览器端转换成的HTML代码, 还是比较臃肿的.
以我个人的习惯,喜欢用纯的DHTML + JS + CSS来做前端数据展示和逻辑处理, 需与后台交互时才用ABAP, 这们界面会清爽很多, 而且以JS的强大和灵活, 会带给用户很多奇妙的体验. 这种方法缺点是对SAP程序员的非ABAP知识要求比较多, 这也是我们从其他语言转过来的ABAPer的优势啦, 呵呵.
其实,我在做ASP.net时, 就已经不怎么使用MS的标准控件了, 基本上都是JS在做处理, 代码量的大部分也集中在JS上, HTML是相当的灵活, 配合JS的控制可以简单地做出很多标准控件根本不可想象的效果和功能. 后台通过JS调用.net的WebServices和数据库打交道, 经过简单的测试, 我发现这种思路在BSP中一样可以完全实现.
OK, 先写这么多, 以后想起来啥再补充, 明天开始学WD for ABAP.