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),如空格,制表符,换行等

2012-11-13

multi mapping and split message with XSLT in SAP PI

应用场景是主数据的复制,从SAP到Salesforce,即:
SAP --RFC--> PI --SOAP-->Salesforce

在调用Salesforce的upsert时,一次最多只能包含200个对象,所以当PI接收到超过200个对象的数据时,需要把一个message分成多个messages,即1 --> n。Operation Mapping包括三个步骤:
  1. message mapping,从源数据结构映射到Salesforce的upsert结构
  2. Java mapping,从value mapping中取出有效的sessionID和serverURL,在dynamic configuration里设置相应的值
  3. XSLT mapping,生成多个SOAP request,每个request里的upsert包括最多200个objects,其中要注意output的结构和正确的namespace
在第三步要注意ouput的正确结构为
<message>
 <message1>
  <soapenv:Envelope>
   ...
  </soapenv:Envelope>
  <soapenv:Envelope>
   ...
  </soapenv:Envelope>
  </message1>
<message>

 上面的例子会被adapter正确的解释成2个messages。

如果XSLT生成的结构像下面这样:

<message>
 <message1>
  <soapenv:Envelope>
  ...
  </soapenv:Envelope>
 </message1>
  <message1>
  <soapenv:Envelope>
   ...
  </soapenv:Envelope>
  </message1>
<message>

那么在monitoring里会得到下面的错误:

<SAP:Category>XIServer</SAP:Category>
  <SAP:Code area="MAPPING">MISSING_INTERFACE</SAP:Code>
  <SAP:P1>2</SAP:P1>
  <SAP:P2 />
  <SAP:P3 />
  <SAP:P4 />
  <SAP:AdditionalText />
  <SAP:Stack>No interface specified for parameter 2</SAP:Stack>


在测试时还需注意,如果是在Repository(design time)里测试operation mapping或message mapping,source input里需要构造
<message> <message1> ...</message1><message>这样的结构,但是在directory里或RWB(runtime)里测试时,payload里都不应该出现<message> <message1> ...</message1></message>这样的结构,否则会得到类似下面的错误:
sap.aii.mappingtool.tf7.IllegalInstanceException: Cannot create target element /ns0:Messages. Values missing in queue context.
第3步的XSLT:

<?xml version="1.0" encoding="UTF-8"?><xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:urn="urn:enterprise.soap.sforce.com" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns="http://pi.cceag.de/SFDC" xmlns:ns0="http://sap.com/xi/XI/SplitAndMerge">
    <xsl:output indent="yes" method="xml"/>
    <xsl:template match="/">
        <ns0:Messages>
        <ns0:Message1>
            <xsl:for-each select="//sObjects[position() mod 200 = 1]">
                    <soapenv:Envelope>
                        <xsl:call-template name="header"/>
                        <soapenv:Body>
                            <urn:upsert>
                                <externalIDFieldName>
                                    <xsl:value-of select="//upsert/externalIDFieldName"/>
                                </externalIDFieldName>
                                <xsl:for-each select=". | following-sibling::sObjects[position() &lt; 200]">
                                    <xsl:call-template name="sObjects" />
                                </xsl:for-each>
                            </urn:upsert>
                        </soapenv:Body>
                    </soapenv:Envelope>
            </xsl:for-each>
         </ns0:Message1>       
        </ns0:Messages>
    </xsl:template>

    <xsl:template match="soapenv:Header" name="header">
        <xsl:copy-of select="/soapenv:Envelope/soapenv:Header"/>
    </xsl:template>

    <xsl:template match="sObjects" name="sObjects">
        <urn:sObjects xsi:type="Account">
        <xsl:for-each select="./*">
            <xsl:element name="{local-name()}">
                <xsl:value-of select="./text()" />
            </xsl:element>
         </xsl:for-each>
         </urn:sObjects>
    </xsl:template>
</xsl:stylesheet>

使用PI 7.1生成WSDL

在SOAP2IDOC场景下,发送方的adaper为SOAP,PI能为调用web service的第三方提供WSDL。生成WSDL有两种方式,一种是通过Sender Agreement,另一种是通过Integration Repository –> Tools -> Display WSDL菜单。其中前者要求调用者提供访问PI的用户名和密码,而后者则无需提供。

Recently I had a requirement from third party system, to send message to PI without user name and password.

We having the scenario SOAP to IDOC. In sender side SOAP adapter and in IDOC as the receiver. I have developed the Interface and tested using SOAP test tool. After my testing I had send the WSDL to the thirdparty SaaS system. They told that they can't use this WSDL and use the URL end point instead. But here is the problem. Their Even Brocker system can't call the PI webservice with User ID and Password. They want webservice URL which should not have any user credential requirement.

As the SOAP adapter in PI requires the user ID and password to send message to PI. The normal way of extracting WSDL at the Sender Agreement level (Display WSDL) use Adapter Engine to send message and it requires user credentials.

Solution

Go to

Integration Repository –> Tools -> Display WSDL

This will popup another window.

Press the continue button and click on the button propose URL.

http://<server>:<port>/sap/xi/engine?type=entry

Then click continue and specify Interface and Specify Sender and finally save the WSDL to your computer.

2012-11-12

动态设定SAP PI SOAP Receiver的目的地

一些主数据需要从SAP发到Salesforce,receiver channel使用SOAP adapter。因为Salesforce的loadbalancer,调用Salesforce web service的URL有可能变动,所以不能在receiver channel里静态设定目的地URL,而需要在dynamic configuration里动态设定key为TServerLocation的值。要使动态设定的值生效,需要两点:
  • 如果channel里给定的URL是一个有效的URL,那么这个静态的URL会被adapter使用,而不是dynamic configuration里的值
  • 如果dynamic configuration里的URL使用HTTP协议,那么channel里的相应设定必须为http://,如果动态设定的URL为HTTPS,那么channel里相应的设置为https://.
在message mapping中可以使用下面的UDF来设定。
public String setSoapURL(String url, Container container) throws StreamTransformationException{
        String namespace = "http://sap.com/xi/XI/System/SOAP";
        String parameterKey = "TServerLocation";
        DynamicConfiguration conf = (DynamicConfiguration) container.getTransformationParameters().get(    StreamTransformationConstants.DYNAMIC_CONFIGURATION);
        DynamicConfigurationKey key = DynamicConfigurationKey.create(namespace, parameterKey);
        if (conf != null) {
            conf.put(key, url);           
        }
        return ""; 
  }

2012-11-03

卸载Adobe Acrobat出错



卸载Adobe Acrobat X程序时,总是报错1324,说Path Contains an Invalid Character(路径中包含无效字符)或multifonction.sequ
日志报告显示错误来自于MircrosoftMsiInstaller
Event Type:       Error
Event Source:   MsiInstaller
Event Category:               None
Event ID:             11324

For more information, see Help and Support Center at http://go.microsoft.com/fwlink/events.asp.
Data:
0000: 7b 41 43 37 36 42 41 38   {AC76BA8
0008: 36 2d 31 30 33 33 2d 46   6-1033-F
0010: 34 30 30 2d 37 37 36 30   400-7760
0018: 2d 30 30 30 30 30 30 30   -0000000
0020: 30 30 30 30 35 7d         00005} 

发现这个键值{AC76BA86-1033-F400-7760-000000000005}正好是Acrobat安装路径下Setup Files下文件夹的名字里面有Acrobat 10的完整安装文件。
微软早期曾提供一个名为Windows Installer CleanUp utility的小工具来解决安装或卸载程序时出现的问题不过现在被名为program install und uninstall troubleshooterhttp://support.microsoft.com/mats/Program_Install_and_Uninstall 的工具所替代。网上下载之后运行了估计约一刻钟才显示修复了卸载问题。不过原来的程序文件并未被移除,只是在安装的程序列表里没有了。

2012-10-29

德国的增值税能简单些吗

德国的增值税通常为19%,有一些商品和服务享受减免的增值税7%(verminderte Mehrwertsteuersatz),如酒店的住宿前两年就从19%下调到7%。不过今天在火车上看报纸读到了一些关于增值税的例外条款,不得不说德国人就爱把条款搞的负责些。

如,Fisch und Krebstiere, Weichtiere und andere wirbellose Wassertiere享受减免增值税额7%,但是 Zierfisch, Langusten, Hummer, Austern und Schnecken却被排除在外。

如,在Reihen和Mosel河上乘船旅游同样是7%的增值税,但是如果行船超过50公里就不在此列。

如,牛奶和牛奶制品,鸟蛋和蛋黄(Milch und Milcherzeugnisse, Vogeleier und Eigelb)同样是7%的增值税,但是ungenießbare Eier ohne Schale und ungenißbares Eigelb和天然蜂蜜(natürlicher Honig)却是19%。

这样的例子简直太多了。制订一个统一的增值税额不更简单吗?也省得ERP软件在此费一番功夫来解决各种税额的问题。


2012-10-17

看懂Android的Build number

先前一直觉得很奇怪,为什么Android的各个版本代号为什么会起那么些奇怪的名字,什么Froyo (2.2),Gingerbread(2.3),Ice Cream Sandwich(4.0),Jelly Bean (4.1)。原来基本按着代号的第一个单词的首字母的顺序来的。最初的代号从D (Donut)开始,当然中间也有些跳跃,比如H就没有出现。
要读懂Buildnumber也得掌握google的命令规则才行。
  • First letter = release family, e.g. F is Froyo
  • Second letter = branch code that allows Google to identify the exact code branch that the build was made from, and R is by convention the primary release branch
  • Third letter and the two numbers = date code. The letter counts quarters, with A being Q1 2009. Therefore, F is Q2 2010. The two digits count days within the quarter, so F85 is June 24 2010. 
  • Last letter = individual versions related to the same date code, sequentially starting with A; A is actually implicit and usually omitted for brevity.
更多细节:http://source.android.com/source/build-numbers.html 

2012-10-15

无题

早上在去柏林的火车上翻阅Bild报纸,看到上面一条关于前德国一台(ARD)新闻节目Tagesschau主持人Eva Herman破产的消息。今年57岁的Eva Hermann曾在德国一台主持了17年的新闻节目,如今因为无法偿还银行贷款和律师费用和法庭费用被迫宣布破产。她在1995年为了省税花50万欧元在德国东部的莱比锡投资了3处房地产用于出租,但因为租金收益预先估计过高导致收益并不如预期的高,不过好在以前在电视台工作,收入稳定而且颇为丰厚,尚能定期偿还银行的贷款。2006年此人因为写了一本书Das Eva-Prinzip,被认为赞同Nationalsozialismus的关于家庭的政策而激起舆论巨大的讨论。为此她丢掉了电视台的工作,尔后在与前雇主德国一台的法律诉讼中又输了官司。这样她的事业就走到了谷底。
这条新闻告诉我:
1. 不要试图挑战公众认可的观点
2. 买房投资用于出租,租金收入不可过于乐观,最好还贷的数额 << 保守的租金收入
3. 与国家机构打官司不要指望能赢

2012-10-12

再次遭遇Java程序在扩展显示器上的问题

因为前几天都一直接了一个外接显示器作为扩展显示器,今天在家上班直接在笔记本上,没有连扩展显示器,问题就来了。Java程序是通过Citrix client运行的一个远程的SAP enterprise service builder,当要在一些弹出窗口中的列表中选择一些值时,如创建一个message type时,按F4去选择一个data type,这时这个列表在笔记本窗口中不会显示,给用户的假象是,这个session已经死掉了,点击什么都没有反应,其实是因为当前焦点在弹出窗口上,而弹出窗口又没有出现在用户可见的界面上。重新连接Citirx server,重新登录Windows,重启Windows都没解决问题,最后没办法只好连到一个外接显示器上,把那个弹出窗口拖到笔记本的显示器上,问题才算解决。
如果手头没有第二个显示器,如在火车上,这种问题如何解决?

2012-10-10

Firefox在扩展显示器上的显示问题

最近在客户那里把笔记本(Windows 7 Enterprise,64bit)连接到了一个外接的显示器(显示设置为extended display),Firefox 15 在这个扩展显示器上有问题。当点击Firefox的菜单时,菜单闪现一下然后很快就变成一块空白矩形了,当把鼠标移动到空白区域时,菜单内容又显现出来。网上查到2006年就有人报告这个bug,不理解为什么现在这个版本还会出现这个问题。记得以前的版本在扩展显示器没有出现这个问题。刚升级到Firefox 16,问题还是存在。

网上有人给出的解决方法是取消硬件加速,测试了一下可行。

Go to the Firefox Options –> Advanced tab –> General tab. In the “Browsing” section uncheck the box marked “Use hardware acceleration when available”

2012-10-01

取消Outlook 2010中在日历里添加的假日

在Outlook 2010中可以在日历很容易的添加某个或多个国家的假日。选择File - Option - Calendar - Add Holidays,然后勾选需要添加的国家就完成了。可是当你只添加了一个国家的假日,如德国,过一段时间后想取消这个国家的假日,却不能取消选中的国家,然后点击OK,因为当没有选中任何国家时,只能点击Cancel,而OK变成了阴影无法点击。执行下列操作可以删除日历中的所有假日:

  1. In Outlook 2010, in Calendar view, click the "Search Calendar" box. From the Search tab, click Search Tools, and then Advanced Find... .
  2. Click the Advanced tab.
  3. Click Field, select Frequently-used fields, and then choose Categories.
  4. Under "Condition:", use the drop-down list to select contains.
  5. Under "Value:", type holiday .
  6. Click Add to list.
  7. Click Find Now.
  8. Maximize the search results window for easy viewing. If you see the message "There are no items to show in this view.", you have no holidays on your calendar.
  9. In Outlook 2010, to manually select all of the holidays, click in the results area and press Ctrl-A.
  10. In Outlook 2010, right-click the highlighted holidays and choose Delete.
个人认为这是Outlook日历功能设计上的一个缺陷。在下一个版本中会被修正吗?

解决SONY笔记本的音量控制键问题

手头的一款SONY笔记本(型号为VGN-CS21S/P)购买时预装的是Windows Vista Home Premium,键盘上方有一排快捷键,控制视频播放和音量大小。装上Windows 7 Ultimate之后这排控制键就不能用了。一番周折之后,终于让它又能工作了。这个不仅仅是驱动的问题,还要安装一堆SONY自己的东西。从SONY的VAIO支持页面下载并按下列顺序安装:
1. Sony Shared Library
2. Setting Utility Series
3. SFEP
4. Vaio Event Service
5. VAIO Control Center

部分组件在Windows 7找不到,就去Vista或预装的Vista下面去找。安装期间会要求多次重启。

2012-09-15

让Easybox 803仅作为无线路由器工作

Easybox 803默认的工作方式是modem + router,如果不需要它的拨号功能仅把它作为一个无线路由器来使用,需要特别设置一番。首先把有Internet连接的网线接入Easybox的LAN1接口,然后按照下面的方法设置:

1. Erstmal einen Reset der Easybox 803 durchühren
2. Nach dem Neustart ein Telefon anschließen und Hörer abnehmen. Es kommt "Bitte schließen Sie Ihr DSL Kabel an"
3. Nun folgende Tastenkombination am Telefon eingeben: *8375* (mit Sternchen) eingeben. Die Box bootet neu im "VDSL-Modus"
4. Netzwerkkabel vom PC am freien LAN-Anschluss 2 bis 4 anschliessen
5. Im Browser am PC 192.168.2.1 eingeben - Startbildschirm von der EasyBox erscheint. In die Checkbox "root" als Benutzername "123456" als Passwort eingeben
6. "Offenen Modus" wählen und auf "weiter"
7. Im folgenden Menü auf "Daten" und "WAN" gehen. Dort bei WAN 1 eintragen:

Protokoll: "Routing"
IP-Adresse etc. auf 0.0.0.0. lassen
DHCP Client: checkbox anklicken
802.1Q (1p/VLAN ID) Tagging auf 0

WAN1 auf Routing umstellen, DHCP Client aktiv setzen.
802.1Q (1p/VLAN ID) Tagging passend einstellen - vermutlich 0.

Box absichern... Passwort vergeben, WLAN einrichten

在智能手机上设置Vodafone的voip号码

在论坛dolc.de上看到有人在手机上设置vodafone的voip号码,自己动手也试了一下,测试成功。如果手机是Android 2.3以上版本,不需要安装任何支持sip的客户端,原生支持sip。正确设置的关键主要是从Easybox 803的设置文件中读取有关voip的信息,包括sip服务器和密码,而用户名则不必费力查找,通常都是vodafone分配的带区号的电话号码。

由于Easybox是通过输入一串modem code配置的,所以看不到voip的设置信息,在Sprache -> erweiterte Einstellungen下只是显示 Diese Einstellung erfolgt durch Ihren Anbieter。解决方法是先把Easybox的配置存成文件,然后用一个网上提供的Java小程序eb_config_decoder.zip解码这个文件,再用一个十六进制的编辑器(如这个免费的工具 xvi32)打开那个解码后的配置文件,在里面寻找相应的信息(xvi32的address菜单下有个goto命令,支持直接跳转至指定位置)。对于Easybox 803 with firmware Version 30.05.211参照下面的信息:
Internet-Benutzername: F594 hex / 62868 dez.
Internet-Passwort: F618 hex / 63000 dez.
Sprachbenutzername: 1B902 hex / 112898 dez.
Sprachpasswort: 1B932 hex / 112946 dez.
SIP server:1B81C hex

在手机上设置时需要下面的信息:
SIP server:069.sip.arcor.de,(推测是xxx.sip.arcor.de的格式,xxx是区号)
SIP username:自己的电话号码
SIP password:上面的Sprachpasswort,长度为12位,包含字母和数字


2012-09-01

在公司工作五年了

今天是9月1日,刚好是在公司工作五年了。五年前9月1日也是个周六,9月3日去公司报道,然后两个月的培训。培训内容中后来在项目上还能用上的就数ABAP了,至于SAP enterprise portal和SAP Web Application Server Administration的内容算是基本白白的培训了,尽管当时还通过了SAP的认证考试。

此后辗转Düsserldorf,Berlin,München,Oldenburg,Heidelberg,Krefeld,München, Nürnberg,算是跑了不少地,就今年3,4月份才在Bad Homburg做了一个短期项目。不少同事都跳槽了,我还继续着这份工作。

看一看2012年9月1日的统计数据:
  • 67.48% of the people currently at our company joined after you (175366 of 259866).
  • 53.36% of the people currently at our company in your Country (Germany) joined after you (2678 of 5021).
  • 46.62% of the people currently at our company in your City (Frankfurt) joined after you (959 of 2059).
  • 74.16% of the people currently at our company in your Workforce (Solns/Tech Slns) joined after you (74531 of 100495).
  • 54.21% of the people currently at our company in your Job Code (Systems Analyst) joined after you (9329 of 17210).

2012-08-30

Outlook 2010下阅读邮件时放大字体

估计是上了岁数了,越来越不喜欢阅读字体小的东西。用Outlook阅读邮件时通常也把字体放大后再阅读。可是在Outlook 2010下却不能使用在IE下有效的组合键control + +来放大字体。然而如果按住control键,转到鼠标轮是可以增加或减少字体号的。对于我等使用笔记本没有连接外接鼠标的情况下如何能对字体收放自如。要是没记错的话,Outlook 2007下在阅读邮件时使用control + +组合键是可以放大字体的,为什么到了Outlook 2010下却不支持了?

2012-08-22

Windows 7下的problem steps recorder

Windows 7有一个小工具名为problem steps recorder(psr.exe),可以记录用户的的操作,以截屏的形式生成一个mht文件,并发送给指定的接收者,帮助解决问题。

2012-08-21

SAP Netweaver components

SAP在2003年1月发布了Netweaver的第一个版本2004,2004年发布了第二个版本2004S,后来更名为Netweaver 7.0。Netweaver包含众多组件,当前的最新版本7.31包含下列组件:
  • SAP NetWeaver Application Server
  • SAP NetWeaver Business Warehouse
  • SAP NetWeaver Gateway
  • SAP NetWeaver Master Data Management
  • SAP NetWeaver Process Orchestration
  • SAP NetWeaver Portal
  • SAP Auto-ID Infrastructure
  • SAP NetWeaver Identity Management
  • SAP NetWeaver Information Lifecycle Management
更多详情 http://www.sap.com/platform/netweaver/components/index.epx

看看以后的版本里SAP还会往里添加点什么东西。

2012-08-20

SAP PI中的XMB缩写

在SAP XI/PI中有很多XMB的缩写,不少与PI有关的旧一点的transaction code就以SXMB开头,如SXMB_ADM,SXMB_MONI,而新一点的tcode则以SXI打头,如SXI_CACHE,SXI_MONITOR。以前一直不知道这个XMB代表什么,今天google了一下,有了结果。原来在XI发布之前,XI在SAP内部被称为Exchange Message Broker,而transaction code里的第一个字母S这表示和basis component有关。

SAP的IDoc interface


与Idoc interface有关的reposiotry objects都在SED package下,比如table EDIMSG是message type和IDco type的对应。

另外在定义partner profile总是搞不清该选择哪个logis system,查看一下sap help还是有帮助的。

define partner
 
inboud partner profile
 

2012-08-18

油价飙升

今天去加油,E5的汽油价格已经到了1.779欧元一升了。新闻里说联邦卡特尔局对德国市场上的五大燃油公司调查了一番,结果没有证据表明五大公司之间存在暗中商议价格的行为。可是每天各个加油站的油价变化就让加油的人痛恨不已。试问还有哪种商品的价格对普通消费者来说,在一天之内变化这么大?如此下去恐怕离2欧元一升汽油的日子不远了。

2012-08-10

培训 Offering of Healthy & Sustainable Leadership

今天在公司培训,主题为Offering of Healthy & Sustainable Leadership。不知道是大家都去度假去了,还是对这类培训不感兴趣。今天参加培训的人数是我在公司参加的培训中人数最少的一次,一共才6个人,包括了ASG的HR的头头。培训师有一个心理学博士的头衔,以前是PWC的职员,如今自己当老板经营自己的培训公司。对于ASG的HR头头中间要求一个咖啡休息时间,这位培训师还是表现的不卑不亢的委婉拒绝了,要知道ASG的HR头头一句话就可以砍掉这个培训。

培训内容对于我来说基本上是纸上谈兵,对于其他人关于leadership的讨论也是插不上嘴。培训提到的主要要点包括:
  • Resultat
  • Konzentration auf wenige Wesentlichen
  • Beitrag zum Ganzen
  • Stärken
  • Vertrauen
  • Positiv denken

2012-08-06

configure idoc adapter acknowledgment

在PI 7.11 SXMB_MONI下有个interface的ack status总是显示错误。
sender adapter: IDOC
receiver adapter: SOAP

解决办法: run report IDX_NOALE 或maintain table IDXNOALE

configure exception rule for idoc adapter ackownledgement

订了个Samsung Galaxy S3

公司手机的合同到9月底就到期了。这次公司提供两款供选择,Iphone 4S和 Galaxy S3。没考虑太多抓紧时间订了一个Galaxy S3,预计供货时间为7到八周,也就是基本上9月下旬才能拿到手了。

2012-07-01

Riedberg的幼儿园

Riedberg的幼儿园的地址,开放时间和电话



Kita Welt-Raum
Montag 16:00 - 17:00, Mittwoch 15:00 - 17:00  06953098726  Frau Viola Barth

Sonnenwind (小学边,不提供3岁以下孩子的位置)
06950697714 Frau Felicitas Heucher

Kita Mobil (Magda-Spiegel-Weg 10), ( nur 12 Plätze für Kinder unter 3 Jahren )
Montag: 15:00 - 17:00 06953053904  Frau Angelika Bauer

Kita Ginsterhöhe (Margarete-Susman-Weg 2, 尖顶教堂边)
Mittwoch und Donnerstag, 15 bis 17 Uhr 069 - 53053702

Kita Gipfelflitzer (Otto-Schott-Straße 6,购物中心后面)
06957002950 Frau Kathi Diel

Kita Königsblick