2012-12-25

2012年的工作

2012年快结束了,回过头来一看一年功夫上了三个不同的项目。一月和二月休假中,从2月27日到5月18在Bad Homburg,之后一直休息到7月30日。从7月31日到8月31日在Nürberg工作一个月,然后从9月24日到12月21日在柏林。初略一算有4个半月在休假中。
27.02.2012    18.05.2012    60
31.07.2012    31.08.2012    24
24.09.2012    21.12.2012    65

实际工作应该不超过149天。黑森州2012年的工作日是252 - 9 = 243天,也就是说一年当中有超过一半的时间在休息中。

2012-12-21

更新Nexus 7

在把Nexus 7从4.1.2升级到4.2时,自动更新失败。更新程序会检查系统文件是否被修改过,如果发现被修改过,则终止更新程序报错,并给出被修改过文件的信息。如果修改过的文件么没有备份,那么只好去下载Google官方的相同Build号的镜像文件,从镜像文件提取出所需的文件覆盖Nexus 7上的修改过的文件。这个过程表述很简单,不过多少体现了google的工程师文化。详细过程如下:

  1. 从Nexus 7上找到Build-Number,从https://developers.google.com/android/nexus/ 下载相应设备的对应的编译版本,如takju-jzo54k-factory-92830c0b.tgz,解压缩得到system.img文件
  2. 从http://forum.xda-developers.com/showpost.php?p=15333542&postcount=135 下载sgs2toext4.zip,一个把img转为ext4.img的工具,得到system.ext4.img文件>
  3. 下载Linux_reader.exe,http://www.diskinternals.com/files/Linux_Reader.exe,mount上一步得到的文件
  4. 从mount的文件里复制所有的文件到本地电脑的一个目录备用
  5. 用Nexus 7更新时出错的文件信息在这个目录里查找到原来的文件版本,mount Nexus的/system为可写,把文件复制到相应的目录
  6. 再下载新版本的Image复制到Nexus,然后进入recovery模式,重新手动更新

2012-12-18

为robocopy添加图形界面

robocopy是微软提供的一个很好的命令行备份工具,功能强大,参数选项也很多。如果不习惯命令行界面也可以用带GUI界面的程序,RoboMirrorRichCopy。两个工具都是免费的。

SAP PI 下复制同名design obejcts

当在同一个Software component下,从一个版本向另一个版本拷贝同名的design objects时, SAP PI会提示你使用 Release transfer function。这个功能在Repository /ESR的 Tools菜单下,旧一点的版本称为release transfer,7.1以后改名为transfer design objects。

2012-12-13

PI support package stacks and guide

You want to import an SP Stack and search for the necessary archives and the guide on the service marketplace.

XI 3.0

The archives and the Support Package Stack Guide can be found on the SAP Service Marketplace:
http://service.sap.com/nw04 --> Support Package Stacks Information

***********************************************************************
XI 7.0

The archives and the Support Package Stack Guide can be found on the SAP Service Marketplace:
http://service.sap.com/nw2004s --> Support Package Stacks Information

***********************************************************************
PI 7.10

The archives and the Support Package Stack Guide can be found on the SAP Service Marketplace:
http://service.sap.com/netweaver --> SAP NetWeaver Process Integration 7.1 - Release-Specific Inf --> Support Package Stacks Information -->
7.1: SAP NetWeaver Process Integration 7.1
EhP1: SAP enhancement package 1 for SAP NetWeaver Process Integration 7.1

***********************************************************************
PI 7.3

The archives and the Support Package Stack Guide can be found on the SAP Service Marketplace:
http://service.sap.com/sp-stacks --> SP Stack Information --> SAP NetWeaver 7.3

***********************************************************************

Please note that only the latest patch will be available on the service marketplace for a support package. This patch will contain all lower patches as well.

2012-12-12

用windows自带计算器计算日期

计算时期时通常都用Office里Excel的关于日期的函数。其实Windows自带的计算器Calc.exe程序就可以完成日期相关的计算。只需在视图(View)里选择“日期计算”(Date calculation)。

SOAP receiver adapter response message contains an error XIAdapter/HTTP/ADAPTER.HTTP_EXCEPTION



A synchronous business scenarios, SAP CE call web service on SFDC.

SAP CE发出请求后没有收到回复,查看SOAP receiver adapteraudit log发现下面的错误:
Error Adapter Framework caught exception: SOAP: response message contains an error XIAdapter/HTTP/ADAPTER.HTTP_EXCEPTION - HTTP 500 Internal Server Error
Error MP: exception caught with cause com.sap.engine.interfaces.messaging.api.exception.MessagingException: SOAP: response message contains an error XIAdapter/HTTP/ADAPTER.HTTP_EXCEPTION - HTTP 500 Internal Server Error
Error SOAP: response message contains an error XIAdapter/HTTP/ADAPTER.HTTP_EXCEPTION - HTTP 500 Internal Server Error

SOAP UI模拟PISOAP request得到下面的回复
<?xml version="1.0"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
  <soapenv:Body>
    <soapenv:Fault>
      <faultcode>soapenv:Client</faultcode>
      <faultstring>System.NullPointerException: Attempt to de-reference a null object
Class.CCWSOrderCreateFromExternal.prepareTransmitRetValue: line 1211, column 1
Class.CCWSOrderCreateFromExternal.transmit: line 53, column 1</faultstring>
    </soapenv:Fault>
  </soapenv:Body>
</soapenv:Envelope>

为什么这样的回复会导致adapter framework抛出异常? SAP Note 1533195解释道:

After Note 1109648:
The received SOAP faults are treated as adapter framework internal errors and again treated further as HTTP 500 "Internal Server Error". No payload follows to this message, as it is treated as unsuccessful in the Adapter Framework.

Before Note 1109648:
The received SOAP faults are treated further as HTTP 500 Internal Server Error and sent to Integration Engine. The payload with the fault XML follows. The message is successful in the Adapter Framewrok.

To get the behavior vor note 1109648:
for the default module sap.com/com.sap.aii.af.soapadapter/XISOAPAdapterBean,set
Module Key  =  soap
Parameter Name  =  noSOAPMakeSysErrFromResponseFault
Parameter Value  =  false  (default value is true)
**************************************************************
The HTTP status code check for the no-soap mode of the SOAP receiver adapter can be disabled by the following module parameter for the SOAP adapter module

parameter name: XMBWS.NoSOAPIgnoreStatusCode
parameter value: true or false (default is false)

Setting the above parameter to true will configure the SOAP receiver adapter to ignore the HTTP status code.


2012-12-09

MS Word的常用快捷键

ctrl + F1:显示和隐藏菜单栏
shift + F1:显示和隐藏选中文字的格式化信息
ctrl + shift + 8:显示和隐藏格式化字符(formatting marks),如空格,制表符,换行等