Bootstrap

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。

    详细原理参考我的blog

  • BSPWD_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里面: