Sent: Wednesday, 18 March, 2015 5:10 PM
可以随便修改reuse library 源码而不影响productive code。
在main project root下面创建一个文件夹,可以取名为libs,并且将reuse library的源码拷贝至该目录下(注意libs下面的路径可以灵活改变,但是要与后面的registerModulePath相应)。
告诉SAPUI5 这些源码资源在哪儿。将下行代码加至localIndex.html 或者Component.js中。
jQuery.sap.registerModulePath(“sap.cus.crm.lib.reuse”, “libs/sap/cus/crm/lib/reuse”);
这个方法调用的两个参数值都要小心考虑,第一个错了不能正确load JavaScript Modules,第二个错了不能正确找到reuse library源码资源文件。
在你要引用reuse library control的地方注意写上namespace,如xmlns:crm="sap.cus.crm.lib.reuse.controls"
理论上到这一步控件就能正常工作了,也可以随意修改控件源码来做Research。
但是针对Multiple Notes Control,可能由于其是通过eclipse创建的,所以在Note.js和NoneLogTypeNoteListItem.js的源码中没有相应的extend代码,会到导致运行时候报错。这时候需要把控件正常工作时候的runtime Note.js和NoneLogTypeNoteListItem.js代码拷贝下来,覆盖libs/sap/cus/crm/lib/reuse/目录下相应的源码文件 (比如在Opportunity里正常工作时候的通过Chrome Source找到runtime源代码拷贝下来)。然后,应该就可以正常工作了。
你们可以用另外一种办法来做reuse library的research,这种方法的好处就是你们可以随便改reuse library project,而不用担心会影响标准的reuse project或者opportunity project。
如果你们需要在本地修改reuse library,但是不想直接修改我们productive的library,可以把它copy成一个新的,比如:
指定好这个project的pom文件,给他assign一个新的artifact id,比如jerrynote。
然后修改opp project的pom.xml:
cus.crm.lib.reuse改成我们自己的project:重启应用,当你发现你本地local project的js被引用,就说明成功了。