最近在修改已有的Fiori应用,遇到了缓存上的一点问题,导致对Fiori应用的代码修改不能在前端页面生效。现将自己查到的一篇好资料翻译过来,以供参考。以下为正文。

2017.12.19更新:最近又遇到个问题,打开某应用时,提示“应用打开失败,请稍后再试(fiori could not open app. try again later)”,可以通过/UI2/INVALIDATE_GLOBAL_CACHES来解决。

我们知道,大部分情况下SAP Fiori安装在本地,使用企业的基础网络设施,经常会遇到网络延迟,特别是在复杂和分布式的场景下。

为了克服这些问题,SAP Fiori拥有以下缓存层:

  • SAP后端系统缓存——通常是OData服务相关的缓存
  • SAP Netweaver Gateway 缓存——OData服务,BSP应用和Fiori配置缓存
  • SAP Fiori客户端/Web浏览器缓存——用户终端设备上的缓存

本文链接:http://www.cnblogs.com/hhelibeb/p/7793730.html

英文原文:Clear SAP Fiori Cache

什么情况下我需要清除SAP Fiori缓存?

通常SAP Fiori缓存应该在它的配置、OData服务、Fiori BSP应用和主题发生修改时,或者应用了补丁/SAP notes时清空。在你遇到Fiori应用的陌生问题时,刷新缓存也是一个不错的故障定位方式。

清除缓存的步骤

1,清除后端缓存

为每个后端系统运行事务代码 /IWBEP/CACHE_CLEANUP (SAP ERP, CRM等)。

选择复选框"Cleanup Cache in all models"

2,清除SAP Gateway缓存

2.1 如果某些和主题相关的东西或系统发生了修改,需要重建客户主题、并且清除主题缓存。

  • 在SAP Gateway URL中使用你的主题设计器重建主题,URL是:
    https://<Your GW Server Host:Port>/sap/bc/theming/theme-designer/
    选择客户主题,点击rebuild。

  • 通过在你的SAP Gateway系统中运行事务代码 /ui5/theme_tool 来清空Fiori主题缓存。双击[Invalidate Cache]按钮。

2.2 运行事务代码  /IWBEP/CACHE_CLEANUP

选择复选框 "Cleanup Cache in all models"

2.3 运行事务代码  /IWFND/CACHE_CLEANUP (注意和2.2有区别)

2.4 运行以下报表

  • /UI2/INVALIDATE_GLOBAL_CACHES - 选择运行模式
  • /UI2/CHIP_SYNCHRONIZE_CACHE
  • /UI2/DELETE_CACHE_AFTER_IMP
  • /UI2/INVALIDATE_CLIENT_CACHES - 选择“所有用户”
  • /UI5/UPDATE_CACHEBUSTER

2.5 运行事务代码 SMICM 。在菜单选择 转到——HTTP插件——服务器缓存——使全局无效。

3,清除反向代理缓存(如有)

如果有的话,你需要清除反向代理缓存。通常它是 SAP Web Dispatcher,不过也可能是其它的产品。

4,清除客户端缓存

如果SAP UI5 Cache buster的设置正确,是不需要做额外操作的。如果不是正确设置过的话,你才需要手动清除浏览器或者Fiori客户端里的缓存。

参考文章:SAP Fiori – Cache Management

Fiori缓存与它的清除的更多相关文章

  1. shiro使用redis作为缓存,出现要清除缓存时报错 java.lang.Exception: Failed to deserialize at org.crazycake.shiro.SerializeUtils.deserialize(SerializeUtils.java:41) ~[shiro-redis-2.4.2.1-RELEASE.jar:na]

    shiro使用redis作为缓存,出现要清除缓存时报错 java.lang.Exception: Failed to deserialize at org.crazycake.shiro.Serial ...

  2. 关于缓存问题:js清除缓存

    css并行加载,js串行加载(会阻塞页面) 清除缓存的问题: 1.一般手动清除,浏览器缓存 2.js代码清除缓存(原理:增加了一个参数,且该参数是一个随机数,每次都不一样,所以每次的请求参数都不一样, ...

  3. Nginx缓存配置之手动清除缓存

    访问我的博客 前言 前文介绍了利用 nginx 的 nginx_ngx_cache_purge 模块来实现缓存功能,并设置了缓存时间为一天. 但是如果前端修改了页面,比如首页,由于 Nginx 缓存的 ...

  4. 设置Firefox自动清除缓存,无需手动清除

    1.在firefox的地址栏上输入about:config回车 2.找到browser.cache.check_doc_frequency选项,双击将3改成1保存即可. 那么这个选项每个值都是什么含义 ...

  5. iOS 清除缓存

    iOS应用程序只能在为该改程序创建的文件系统中读取文件,不可以去其它地方访问,此区域被成为沙盒.它包含三个文件夹: Documents: 苹果建议将程序中建立的或在程序中浏览到的文件数据保存在该目录下 ...

  6. iOS UIWebView清除缓存

    UIWebView清除Cookie: //清除cookies NSHTTPCookie *cookie; NSHTTPCookieStorage *storage = [NSHTTPCookieSto ...

  7. 如何清除DNS缓存,使用cmd命令清理DNS缓存方法

    如何清除DNS缓存,使用cmd命令清理DNS缓存方法 有时候电脑突然上不了网,或者存在某些网站打不开的情况,但别的网站又可以打开,解决办法需要清除DNS缓存,那么如何清除DNS缓存呢,最常用的方法就是 ...

  8. 前端开发JavaScript清除浏览器缓存的方法

    查看和删除浏览器缓存的方法=====>打开 最近在开发项目中发现有时候总要频繁地清除浏览器缓存,不然总是显示的过时的信息 浏览器缓存有利有弊,有些数据需要缓存下来使得页面打开更快提高网站性能,但 ...

  9. tp5.带标签的缓存 创建和清除 测试

    原文:http://www.upwqy.com/details/24.html 测试设置了标签的缓存的获取方式 和清除标签缓存. 有时候我们可能会对同类型的一些数据做统一缓存.和统一清除更新处理. 那 ...

随机推荐

  1. Iterator & Iterable 和 Comparable&Comparator

    java.lang.Iterator & java.lang.Iterable Iterator和Iterable的区别和联系 iterator是具有迭代状态的对象.它允许你检查它是否有更多的 ...

  2. python - dict.setdefault

    index = dict.serdefault(key,default) 尝试往dict中插入新键值key,如果key已存在就原dict不变,否则插入key:defalut:返回值为key在dict中 ...

  3. JavaScript学习笔记(十四)——对象

    在学习廖雪峰前辈的JavaScript教程中,遇到了一些需要注意的点,因此作为学习笔记列出来,提醒自己注意! 如果大家有需要,欢迎访问前辈的博客https://www.liaoxuefeng.com/ ...

  4. Python之三目运算符

    Python语言不像Java.JavaScript等这些语言有类似: 判段的条件?条件为真时的结果:条件为假时的结果 这样的三目运算,但是Python也有自己的三目运算符: 条件为真时的结果 if 判 ...

  5. 作为函数的mixin

    作为函数的mixin 在一个 mixin 内部定义的变量或 mixin,都调用者可见,因此,它们可以作为它的返回值.如,以下Less代码: .count(@x, @y) {     @sum:(@x ...

  6. 推荐一款基于bootstrap的漂亮的前端模板—inspinia_admin

    首先给出Demo网址:http://cn.inspinia.cn inspinia admin 最新版 bootstrap 完全响应式后台管理模板,采用扁平化设计.使用Bootstrap 3+ Fra ...

  7. 15. 使用Apache Curator管理ZooKeeper

    Apache ZooKeeper是为了帮助解决复杂问题的软件工具,它可以帮助用户从复杂的实现中解救出来. 然而,ZooKeeper只暴露了原语,这取决于用户如何使用这些原语来解决应用程序中的协调问题. ...

  8. Wannafly模拟赛5 A Split 暴力 二分加速

    你有一个大小为

  9. float和double的区别

    1.float是单精度类型,精度有效数字为6位,超出则会四舍五入,取值范围为10的-38次方到10的38次方,float占用存储空间为4个字节. 2.double是双精度类型,精度有效数字为15位,超 ...

  10. AngularJS 控制器通信

    指令与控制器之间通信,无非是以下几种方法: 基于scope继承的方式 基于event传播的方式 service的方式 基于scope继承的方式 最简单的让控制器之间进行通信的方法是通过scope的继承 ...