在OnPremise系统上访问SAPUI5资源

2020-09-17 05:57发布

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

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


SAPUI5支持者

存在应用描述符文件(neo-app.json)以在SAP Cloud Platform环境中配置SAPUI5-App。 我们使用neo-app.json访问其他SAPUI5-App(App A从App B和App C访问资源):

 {
 ...
   "路线":[
 ...
     {
       " path":"/img/external/appB",
       "目标":{
         " type":"应用程序",
         " name":" appB",
         " entryPath":"/文件夹"
       },
       "描述":" App B"
     },
     {
       " path":"/img/external/appC",
       "目标":{
         " type":"应用程序",
         " name":" appC",
         " entryPath":""
       },
       "描述":" App C"
     },
 ...
 } 

对于App B,当我们调用jquery.sap.registerModulePath(API )。

当前,我们正在将这些应用程序部署在OnPremise系统上。 我们实施了一种算法来确定代码是在CP还是OnPremise中运行。

 jQuery.example = {
 makeModulePath:function(oParams){
 如果(!oParams.sEmbeddingNamespace ||!oParams.sCloudModulePath ||!oParams.sOnPremiseAppName){
 抛出新的错误("缺少配置!sEmbeddingNamespace,sCloudModulePath和sOnPremiseAppName是必需的。");
 }
 var sResult;
 var sPath = window.location.pathname;
 var iUI5Offset = -1;
 如果((iUI5Offset = sPath.indexOf("/img/ui5_ui5/"))!== -1){
//我们最有可能是前提
 var sModulePath = sPath.substring(0,iUI5Offset +"/ui5_ui5".length);
 sResult = sModulePath + oParams.sOnPremiseAppName;
 }其他{
//我们最有可能在云环境中
 sModulePath = jQuery.sap.getModulePath(oParams.sEmbeddingNamespace);
 如果(sModulePath ==="。"){
 sResult = oParams.sCloudModulePath;
 }其他{
 sResult = sModulePath + oParams.sCloudModulePath;
 }
 }
 返回sResult;
 },
 registerModule:function(oParams){
 jQuery.sap.registerModulePath(oParams.sModuleName,jQuery.example.makeModulePath(oParams));
 }
 };


 jQuery.example.registerModule({
 sModuleName:" name.space.appB",
 sEmbeddingNamespace:" name.space.appA",
 sCloudModulePath:"/img/external/appB",
 sOnPremiseAppName:"/命名空间/appB"
 });
 jQuery.example.registerModule({
 sModuleName:" name.space.appC",
 sEmbeddingNamespace:" name.space.appA",
 sCloudModulePath:"/img/external/appC",
 sOnPremiseAppName:"/命名空间/appC"
 });
 

启动App A时,从App C到资源的路径已正确解析。 应用程序B的那些不是,应用程序A崩溃。 看来,这种情况下没有用于定义entryPath的应用程序描述符文件。

我们如何在CP中以相同的方式访问SAPUI5资源?

在此先感谢和问候,

基督徒。

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

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


SAPUI5支持者

存在应用描述符文件(neo-app.json)以在SAP Cloud Platform环境中配置SAPUI5-App。 我们使用neo-app.json访问其他SAPUI5-App(App A从App B和App C访问资源):

 {
 ...
   "路线":[
 ...
     {
       " path":"/img/external/appB",
       "目标":{
         " type":"应用程序",
         " name":" appB",
         " entryPath":"/文件夹"
       },
       "描述":" App B"
     },
     {
       " path":"/img/external/appC",
       "目标":{
         " type":"应用程序",
         " name":" appC",
         " entryPath":""
       },
       "描述":" App C"
     },
 ...
 } 

对于App B,当我们调用jquery.sap.registerModulePath(API )。

当前,我们正在将这些应用程序部署在OnPremise系统上。 我们实施了一种算法来确定代码是在CP还是OnPremise中运行。

 jQuery.example = {
 makeModulePath:function(oParams){
 如果(!oParams.sEmbeddingNamespace ||!oParams.sCloudModulePath ||!oParams.sOnPremiseAppName){
 抛出新的错误("缺少配置!sEmbeddingNamespace,sCloudModulePath和sOnPremiseAppName是必需的。");
 }
 var sResult;
 var sPath = window.location.pathname;
 var iUI5Offset = -1;
 如果((iUI5Offset = sPath.indexOf("/img/ui5_ui5/"))!== -1){
//我们最有可能是前提
 var sModulePath = sPath.substring(0,iUI5Offset +"/ui5_ui5".length);
 sResult = sModulePath + oParams.sOnPremiseAppName;
 }其他{
//我们最有可能在云环境中
 sModulePath = jQuery.sap.getModulePath(oParams.sEmbeddingNamespace);
 如果(sModulePath ==="。"){
 sResult = oParams.sCloudModulePath;
 }其他{
 sResult = sModulePath + oParams.sCloudModulePath;
 }
 }
 返回sResult;
 },
 registerModule:function(oParams){
 jQuery.sap.registerModulePath(oParams.sModuleName,jQuery.example.makeModulePath(oParams));
 }
 };


 jQuery.example.registerModule({
 sModuleName:" name.space.appB",
 sEmbeddingNamespace:" name.space.appA",
 sCloudModulePath:"/img/external/appB",
 sOnPremiseAppName:"/命名空间/appB"
 });
 jQuery.example.registerModule({
 sModuleName:" name.space.appC",
 sEmbeddingNamespace:" name.space.appA",
 sCloudModulePath:"/img/external/appC",
 sOnPremiseAppName:"/命名空间/appC"
 });
 

启动App A时,从App C到资源的路径已正确解析。 应用程序B的那些不是,应用程序A崩溃。 看来,这种情况下没有用于定义entryPath的应用程序描述符文件。

我们如何在CP中以相同的方式访问SAPUI5资源?

在此先感谢和问候,

基督徒。

付费偷看设置
发送
2条回答
小灯塔
1楼-- · 2020-09-17 06:29

您的问题是什么?

风早神人
2楼-- · 2020-09-17 06:31

嗨,Jun

我添加了代码段,并插入了一个示例App C,其中没有可正确解决其资源的entryPath。

最诚挚的问候,

基督徒。

一周热门 更多>