引用单独部署的组件以在sapui5应用中重用

2020-08-24 15:08发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


您好社区,

我正在开发一些应用程序,每个人都需要以相同的方式显示文档。 为此,我创建了一个新组件,该组件在单独的组件中处理文档。 然后,我只想从我的其他应用程序中重用此组件。 要嵌入我的重用组件,我在view.xml中使用了以下内容:

 
 

要在运行时访问它,我必须声明重用组件的名称空间,并将其与资源URL关联。 为此,我在Component.js的初始化方法中使用了以下代码,该方法使用了重用组件DocViewer。

 jQuery.sap.registerModulePath(" de.mycomp.base.DocViewer","/img/sap/bc/ui5_ui5/sap/zdocviewer"); 
在这种情况下,

zdocviewer是在内部部署了重用组件的bsp应用程序的名称。 为了使它在webide和SAP-Cloud-Plattform上也能正常工作,我需要向neo-app.json添加一个条目,如下所示:

 {
       " path":"/img/sap/bc/ui5_ui5/sap/zdocviewer",
       "目标":{
         " type":"应用程序",
         "名称":" docviewer"
       },
       " description":"我的基本文档查看器"
     },
 

其中 docviewer 是SCP上具有重用组件的已部署应用程序的名称。 应用类型表示此目的地是一个应用。 到目前为止,这在前提条件和SAP云中均有效。 但是我的问题是,我不想在Component.js中使用 registerModulePath 。 几乎每种组件配置都在 manifest.json 文件中进行。 所以我试图将这条编码线移动到manifest.json中的配置中,但是到目前为止我还是失败了。 这是我所做的:

  • 我在sap.ui5节中添加了一个依赖项,并且在依赖项条目中添加了这样的内容:
"组件":{
   " de.dvelop.base.DvelopBaseDocViewer":{
 "懒惰":true
   }
  } 
  • 我在sap.ui5部分中添加了以下条目
" resourceRoots":{
 " de.dvelop.base.DvelopBaseDocViewer":"/img/sap/bc/ui5_ui5/sap/zdocviewer"
 }
 

这里的问题是,不允许在资源根条目的value-part中使用绝对路径。 因此以下uri在resourceRoots中无效:

  • /sap/bc/ui5_ui5/sap/zdocviewer
  • ../sap/bc/ui5_ui5/sap/zdocviewer

这仅是有效的:

  • sap/bc/ui5_ui5/sap/zdocviewer
  • ./sap/bc/ui5_ui5/sap/zdocviewer

因此,此注释仅可用于嵌入式组件,其中重用组件位于同一已部署项目中。

但是这不是我对可重用组件的理解。 因此,更改该组件中的某些内容将使其有必要使用该组件将文件复制到所有应用程序项目中。 而且它们都必须再次部署。 所以现在我回退到jquery.sap.registerModulePath,因为它可以与部署的组件一起使用,以从其他独立组件中引用它们。 还是有人知道如何在manifest.json中更好或更合适地处理此问题?

亲切的问候

Matthias

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


您好社区,

我正在开发一些应用程序,每个人都需要以相同的方式显示文档。 为此,我创建了一个新组件,该组件在单独的组件中处理文档。 然后,我只想从我的其他应用程序中重用此组件。 要嵌入我的重用组件,我在view.xml中使用了以下内容:

 
 

要在运行时访问它,我必须声明重用组件的名称空间,并将其与资源URL关联。 为此,我在Component.js的初始化方法中使用了以下代码,该方法使用了重用组件DocViewer。

 jQuery.sap.registerModulePath(" de.mycomp.base.DocViewer","/img/sap/bc/ui5_ui5/sap/zdocviewer"); 
在这种情况下,

zdocviewer是在内部部署了重用组件的bsp应用程序的名称。 为了使它在webide和SAP-Cloud-Plattform上也能正常工作,我需要向neo-app.json添加一个条目,如下所示:

 {
       " path":"/img/sap/bc/ui5_ui5/sap/zdocviewer",
       "目标":{
         " type":"应用程序",
         "名称":" docviewer"
       },
       " description":"我的基本文档查看器"
     },
 

其中 docviewer 是SCP上具有重用组件的已部署应用程序的名称。 应用类型表示此目的地是一个应用。 到目前为止,这在前提条件和SAP云中均有效。 但是我的问题是,我不想在Component.js中使用 registerModulePath 。 几乎每种组件配置都在 manifest.json 文件中进行。 所以我试图将这条编码线移动到manifest.json中的配置中,但是到目前为止我还是失败了。 这是我所做的:

  • 我在sap.ui5节中添加了一个依赖项,并且在依赖项条目中添加了这样的内容:
"组件":{
   " de.dvelop.base.DvelopBaseDocViewer":{
 "懒惰":true
   }
  } 
  • 我在sap.ui5部分中添加了以下条目
" resourceRoots":{
 " de.dvelop.base.DvelopBaseDocViewer":"/img/sap/bc/ui5_ui5/sap/zdocviewer"
 }
 

这里的问题是,不允许在资源根条目的value-part中使用绝对路径。 因此以下uri在resourceRoots中无效:

  • /sap/bc/ui5_ui5/sap/zdocviewer
  • ../sap/bc/ui5_ui5/sap/zdocviewer

这仅是有效的:

  • sap/bc/ui5_ui5/sap/zdocviewer
  • ./sap/bc/ui5_ui5/sap/zdocviewer

因此,此注释仅可用于嵌入式组件,其中重用组件位于同一已部署项目中。

但是这不是我对可重用组件的理解。 因此,更改该组件中的某些内容将使其有必要使用该组件将文件复制到所有应用程序项目中。 而且它们都必须再次部署。 所以现在我回退到jquery.sap.registerModulePath,因为它可以与部署的组件一起使用,以从其他独立组件中引用它们。 还是有人知道如何在manifest.json中更好或更合适地处理此问题?

亲切的问候

Matthias

付费偷看设置
发送
2条回答
compass1988
1楼-- · 2020-08-24 16:06

Thx Raquel,

我已经将我的组件放在一个库中。 但是,当从库中重用时,也存在相同的问题。 但是在较新的ui5版本中,可以解决此问题。 但是因为我必须支持较旧的SAP系统,所以我不得不从1.44的ui5中找到解决方案。 但是,现在适合使用registerModulePath解决方法。

SKY徐
2楼-- · 2020-08-24 15:44

您好,Matthias

为什么不将重用组件放在库中?

一些示例:

F2742 F2981

Saludos

Raquel

一周热门 更多>