ABAP Netweaver 和 git 的快捷方式

Netweaver
Jerry 的 SAPGUI 收藏夹管理工具:链接

git
我笔记本上有很多 github 仓库,每次切换仓库,我不想敲很长的 cd 命令。比如现在我需要手敲下面的命令进入一个 Java 仓库:cd c:\Users\i042416\git\JavaTwoPlusTwoEquals5 我想只敲四个字符:java 就达到同样效果。
解决方案
编辑用户目录下的文件.bash_profile:定义一些新的 function,将冗长的 cd 命令加入 function 的实现。

效果:敲“java”,回车,即自动进入 java 仓库。

Netweaver
一个会话进程能够在堆上申请的内存大小上限, 在事务码 RZ11 里查看参数 abap/heap_area_dia:


CloudFoundry
每个应用可以在 manifest.yml 里定义其使用 memory 的上限,比 Netweaver 灵活。

应用部署成功后,在 SCP 上能看到实际消耗的内存大小:

然而 yml 里定义的单个应用的 quota 不允许超过整个 space 的上限:

Netweaver
事务码 SU01 的参数设置里,有很多关于 trace(跟踪)的开关。

FPTRACELEVEL: 设成 04 后,能将 ADS 生成 PDF 的 trace 信息写入生成的 PDF。
详细原理参考我的 blogHow to get PDF render trace of ABAP webdynpro interactiveForm controlBSPWD_USER_LEVEL:这个参数对 CRM 的开发顾问来说都不陌生。设为 9 之后,WebClient UI 上显示的错误或者成功信息,鼠标放上去之后就能自动显示技术明细。
User parameter 里只要 BSPWD_USER_LEVEL 值大于 5 即可在 webclient UI 上显示 error message 的 technical information:




这里决定用什么 icon 来在 UI 上显示 message:

message level > 5 的判断:



Cloud Foundry
环境变量 CF_TRACE = true

然后执行任意的 cf 命令,能看到这些命令实际上也是 post HTTP 请求到 SCP 上。
例子:cf logs connectvity-demo-approuter --recent
然后就能看到为了完成这个命令所发送的 HTTP 请求和响应。

有的时候这个开关特别有用,例如部署应用时看到这个错误消息,但没有更多关于该错误原因的详细描述。

打开 trace 后,在日志里能看到详细错误:找不到 package.json 文件。

Netweaver
更准确的说应该是系统变量:结构体 sy

设一个断点,调试器里看这些字段的值就能知道每个字段是用来做什么的。
sy-dbsys
sy-sysid
sy-opsys
sy-saprl
sy-tcode
Cloud Foundry
环境变量一览表在 Cloud Foundry官网
CF_INSTANCE_ADDR
CF_INSTANCE_GUID
CF_INSTANCE_INDEX
CF_INSTANCE_IP
CF_INSTANCE_INTERNAL_IP
CF_INSTANCE_PORT
CF_INSTANCE_PORTS
DATABASE_URL
HOME
LANG
MEMORY_LIMIT
PORT
PWD
TMPDIR
USER
VCAP_APP_PORT
VCAP_APPLICATION
VCAP_SERVICES 当使用 cf push 往 Cloud Foundry 上部署应用时,某些环境变量会自动被系统设置,逻辑如同 ABAP 的 sy-sysid 自动被设置为当前系统 ID 一样。比如 app router 会把用户访问请求重定向到 XSUAA 实例上。
app router 在 manifest.yml 里定义的 XSUAA 实例 xsuaa-jerry-demo,
在运行时会被系统自动写入环境变量 VCAP_SERVICES 里面:
版权声明: 本文为 InfoQ 作者【Jerry Wang】的原创文章。
原文链接:【http://xie.infoq.cn/article/9d6df23bd353efa24ecf0b185】。文章转载请联系作者。
评论