2009-11-10

SAP Utilities课程

Level 2:
  • IUT110 Introduction to ISU/CCS

Level 3:
  • IUT210 Basic Data/Basic Function
  • IUT220 device management
  • IUT221 work management
  • IUT230 Billing and Invoicing
  • IUT240 Contract Accounts Receivable and Payable
  • IUT250 Customer Service
  • IUT280 Print Workbench
  • IUT225 Energy Data Management
  • IUT235 Real Time Pricing
  • IUT255 Integration of CRM, IS-U and BW

2009-11-06

IS-U基础

上两周刚搬完家,在搬家之前就为新家签订了新的供电合同。当时对一些背景知识还不了解,不知道签的合同后面是什么运作的。经过这一周的培训,现在对IS-U多少有些了解。IS-U涉及的行业包括电,气,水,暖气和垃圾处理。国家对这些行业的调整主要是让提供基础网络设施的公司与供应商分离开来,以引入竞争,让消费者有选择的余地。比如在电网商和供电商没有分开时,消费者只能从当地的电网商购买电,现在就可以向其他供电商购买电,而只需向电网商支付一定的网络使用费用。目前德国的电和气这两个行业在Deregulierung上已经走在了前面,接下来水,暖气和垃圾处理行业会逐渐面临这个问题。

能源市场上的各个公司之间的数据通信采用统一的EDIFACT标准,使用的数据段类型包括:
  • UTILMD:utility master data message
  • MSCONS:meter service consumption report message
  • REMDAV:remittance advice
  • INVOIC:invoice message
  • CONTROL:control message
  • APERAK:application error and acknowledgement message
  • REQDOC:require MSCONS
  • ALOCAT:

UTILMD中包含的值(粗体为常见值):

category:

E01 = Anmeldungen (Netznutzung)
E02 = Abmeldungen (Netznutzung)
E03 = Änderungsmeldungen
E04 = Zuordnungsliste Abgänge
E05 = Zuordnungsliste Zugänge
E06 = Zuordnungsliste Lieferstellen
E07 = Lieferantenzuordnungsliste
E27 = Anfrage
E35 = Kündigung Liefervertrag
E40 = Bilanzkreiszuordnungsliste
E44 = Informationsmeldung (zur Auflösung der Lieferantenkonkurrenz)
E48 = Anmeldung Beistellung
E50 = Abmeldung Beistellung

transaction reason:

E01 = Ein-/Auszug
E02 = Einzug (Neuanlage)
E03 = Lieferantenwechsel
E04 = Ersatzbelieferung
E05 = Stornierung
E06 = Notversorgung

各个类型的值和具体构造可以参看 http://www.edi-energy.de .

2009-10-23

把电话设为音频拨号

家里这个Sigma电话(TAF890 D)虽然内置数字留言功能,不过出厂默认设置竟然是脉冲拨号。在音频拨号和脉冲拨号之间切换还不是通过硬拨动一个小开关,而是通过输入一组键来实现切换。正因为如此才一直保留着那本说明书。切换到音频需要提前电话,并连续输入-> * 3 ->。

2009-10-16

学习BC480课程

BC 480是一个关于在SAP系统中使用基于PDF的打印表单的课程(PDF-Based Print Forms),包括附录一共9个单元。第一单元介绍了SAP interactive form by Adobe与以前的SAPscript和Smart Form相比的优点:
  • PDF是web上表单的事实上的标准
  • Adobe的产品LiveCycle Designer使得设计表单更为轻松和灵活
  • SAP NetWeaber Development Studio和 ABAP Workbechn都集成了LiveCycle Desinger
  • 多种格式的图像文件无需转换可直接插入到表单中
  • 可以旋转对象(包括文本)
  • 可以在同一个表单中的不同页面中使用不同的orientation(landscape or portrait)
  • Forms can be created so that they conform to accessibility standards
  • Complex layout elements can be shared between form developers
  • Existing PDF or Word documents can be imported
  • TrueType Fonts can be used; installation requires no upload
  • Barcodes can be printed on all printers of types Postscript, PCL, PDF, or Zebra
  • Mailing and faxing is easier
  • Forms are regular Repository objects with standard transport and versioning
  • Interactive scenarios and integration into browser-based applications are possible (Web Dynpro for Java or ABAP)
在设计表单时主要完成interface和form template这两个东西,其中template包括content和layout两部分。interface定义了程序可以传递哪些数据给表单,content则定义了interface中的那些部分可以被用在表单中。

2009-10-09

Adobe提供的几个常用网页

1. http://www.adobe.com/support/documentation/
Adobe各种产品的在线文档。打开这个页面后选择想查看的产品,然后会转到http://livedocs.adobe.com/域名下。如选择livecycle后,页面会跳转到 http://livedocs.adobe.com/livecycle/8.2/wb_designer/wwhelp/wwhimpl/js/html/wwhelp.htm 。因为Livecycle designer的帮助文件在不是当前窗口也显示在前,因此查看在线的会更方便些。
2. http://cookbooks.adobe.com/
这个网页与Oreilly合作,用于分享和查找与Adobe产品相关的代码,现在最活跃的是与Flex相关的板块。
3. http://learn.adobe.com/
这是一个wiki站点,让大家共同来创作帮助初学者学习Adobe的产品。

2009-09-30

SAP关于表单的课程

  • BC 480:PDF-Based Print Forms
  • BC 470:Form Printing with SAP Smart Forms
  • BC 460:SAP-Script Form Printing and Text Management

2009-09-29

用电力线路传输数据

今天在ibood.de网上买了一个使用电力线路传输音频数据的转换器,名为dLAN Audio extender Starter Kit,39.95加上UPS运费5.95。这样以后就可以把楼上的电脑和楼下的Bose音箱连接起来。试用了一下,安装很简单,不过有时候数据传输不稳定,音乐会出现短暂的中断。目前还不知道是什么原因导致的短暂传输中断。

2009-09-28

孔夫子的生日

今天照例打开google的主页查找点东西,一看logo上加了一行中文字,”有朋自远方来,不亦悦乎“。鼠标移过去才知道今天是孔夫子的诞辰。中文和德文的google主页logo都是它,而英文搜索主页的logo却没有改变。分别打开了google日文和韩文搜索主页,发现日文的logo有孔夫子的名言,而韩文的与英文一样,没有更改。很好奇google的logo是各国自主决定,还是全球统一管理。





2009-08-18

mspaint的替代工具

windows下都自带一个名为paint的处理图像的简单工具,不过这个工具的功能实在有限。在网上发现了一个能很好替代它的的免费工具, paint.Net

2009-08-14

google picasaweb vs. microsoft photogallery

一个朋友结婚拍了些照片放在了google的picasaweb下,通过她的hotmail邮箱发了个链接给大家分享。没想到的是链接的href属性没修改成了:href="http://www.microsoft.com/china/windows/windowslive/products/photo-gallery-edit.aspx"

不知道这个可笑的替换是在撰写邮件时被替换的,还是在邮件服务器上被替换的。很想知道用gmail账户发出带microsoft photo-gallery会不会被替换成picasaweb的页面。这样不光彩的行为对稍有计算机常识的人不是问题,可是对于年老的父母亲一定会带来困扰。谁叫她使用的是hotmail的免费服务呢,没准那个角落的条款就容许Microsoft这么干。如果是hotmail的付费用户,兴许Microsoft不会采取这样拙劣的办法。

2009-07-15

LiveCycle Designer中事件顺序

在LiveCycle Designer中有很多预定义的事件,弄清这些事件的先后顺序很重要。有不少事件,如initialize,validate等事件是在加载文档时没有用户参与就发生的。文档中field元素的事件总是先于form表单的事件。

f为表单名称,p为第一页页面名称,txtField是一个text field的名称。

f.p.txtField::initialize
f::initialize
f.p.txtField::validate
f::validate
f.p.txtField::ready:form
f::ready:form
f.p.txtField::docReady
f::docReady

2009-07-14

解决无法访问dashboard的错误

升级wordpress到2.81后,可以登录进入管理界面,修改各项设置,但是左侧的菜单栏显示不正常,并且不能进入dashboard界面。一点击就会出现页面错误提示:

You do not have sufficient permissions to access this page.

网上有不少类似错误,但很少有仅仅出现在dashboard页面上。后来突然想到有可能是plugin不兼容导致的错误,发现曾经安装过一个名为Admin Drop Down Menu的插件。这个正好与管理界面内的菜单相关,禁用后立即可以访问dashboard页面了。

2009-07-13

转换文件编码

使用vim来转换文件编码:

$ ex filename '+set fenc=utf-8' '+x'

如果要把多个文本文件转换为utf8
$ find -name '*.txt' -exec ex {} '+set fenc=utf-8' '+x' \;

2009-07-12

转换mysqldump文件编码

以前就为mysqldump导出的文件编码折腾过,这一次没费那么大的劲。因为blog的备份是以前从系里mysql服务器dump出来的,并且系里的mysql服务器版本比较低是4.0 (-- Server version    4.0.24_Debian-10sarge2-lo),导出文件的默认编码不是utf8。使用iconv转换总失败,只好用来方法,用notepad++打开sql文件,然后选择format  -> convert to utf8,保存为utf8编码的文件。中间notepad++假死很长时间,耐心等待之后才成功保存。这样把utf8编码的sql文件上传到新的mysql服务器(版本为v5.0.81)后,中文和变音才正常显示。

2009-07-04

无法启动windows上的cygwin sshd

升级完cygwin后,用putty就无法连接本地的ssh server了。查看windows下面的service,CYGWIN sshd根本没有启动。手动点击启动仍然无法启动,执行命令/usr/sbin/sshd 也无法启动,得到错误提示:

/var/empty must be owned by root and not group or world-writable.

执行/usr/sbin/sshd -D -d -d -d得到更详尽的信息:

$ /usr/sbin/sshd -D -d -d -d
debug2: load_server_config: filename /etc/sshd_config
debug2: load_server_config: done config len = 196
debug2: parse_server_config: config /etc/sshd_config len 196
debug3: /etc/sshd_config:13 setting Port 22
debug3: /etc/sshd_config:38 setting StrictModes no
debug3: /etc/sshd_config:92 setting UsePrivilegeSeparation yes
debug3: /etc/sshd_config:106 setting Subsystem sftp /usr/sbin/sftp-server
debug1: sshd version OpenSSH_5.1p1
debug1: private host key: #0 type 0 RSA1
debug3: Not a RSA1 key file /etc/ssh_host_rsa_key.
debug1: read PEM private key done: type RSA
debug1: private host key: #1 type 1 RSA
debug3: Not a RSA1 key file /etc/ssh_host_dsa_key.
debug1: read PEM private key done: type DSA
debug1: private host key: #2 type 2 DSA
/var/empty must be owned by root and not group or world-writable.

记得以前的版本中var目录在cygwin的安装目录下,现在var目录被自动创建到了C:\var下。

试着在var下创建了empty目录并修改其权限,仍然不能启动。最后重新启动cygwin安装程序,在Install for选项中选择for all,在组件中选择reinstall cygwin,cygrunserv, openssh,安装完毕后马上就可以启动ssh服务了!

Update: 在台式机上遇到同样的问题,这次与在笔记本上不同。不能启动windows里的服务,但却能够在命令行下启动sshd,并且能登陆。采用上面的办法重装后仍然不见效果。重新运行ssh-host-config后sshd.log仍然出现

/var/empty must be owned by root and not group or world-writable.

执行:$ chown SYSTEM empty

jia@swhtw78190 /cygdrive/e/cygwin/var
$ ls -al empty/
total 0
drwxr-xr-x+ 2 SYSTEM Benutzer 0 Jul 7 12:36 .
drwxrwxrwx+ 8 jia Benutzer 0 Jul 7 12:36 ..

jia@swhtw78190 /cygdrive/e/cygwin/var
$ net start sshd
CYGWIN sshd wird gestartet.
CYGWIN sshd wurde erfolgreich gestartet.

估计是ssh-host-config程序没有正确设置/var/empty目录的owner。

2009-06-17

Live Cycle Designer下text object和text field object的区别

当把表单中的数据导出成XML文件时,text object的数据不会出现在XML文件中,而text field object的数据会出现在XML文件中。

可以设置tab order忽略text object,但不能跳过text field object,尽管它的属性设置为invisible或hidden。

2009-06-16

清除radionbutton group的选择状态

通过脚本来清除radiobutton group 的选择状态不能通过设置其值为null,而必须设置其值为空,如

F.P.radioButtonGroup.rawValue = "";  而不是F.P.radioButtonGroup.rawValue = null;

javascript中的比较

如果把一个string和一个number相比较,javascript会自动试着将string转换为number,所以 "1.010" == 1.01 表达式返回true。

空和空格会被转换为数字0,所以不管是"" == 0,还是"  " == 0 都会返回true。

这也与使用的比较操作符 == 有关。更严格的比较使用 ===,参看javascript reference

2009-06-14

又长一颗痣

早上起床洗脸突然发现右脸上有多了一颗黑痣。在此之前右脸上已经长了两颗黑痣,不过没留意过是什么时候钻出来的。这次这颗竟然在一夜之间就冒出来了。

2009-06-10

删除一对XML标签内的文字2

LiveCycle Designer不提供一次删除所有的javascript代码,要清空多个xdp文件内的脚本得使用正则表达式来将<script contentType="application/x-javascript">和</script>标签之内的文字替换为空,也就是删除<script contentType="application/x-javascript">和</script>标签内的脚本。

我的尝试:
:%s/\(<script \a*="\a*\/x-javascript">\)\([^<]*\)\(<\/script>\)/\1\3/

或者
:%s#\(<script contentType="application/x-javascript">\)[^<]*\(</script>\)#\1\2#

用sed来处理:
sed -rn 's#(<script contentType="application/x-javascript">)[^<]*(</script>)#\1\2#g;p' myfile.xdp

如果脚本有多行,需要处理换行的情况:
%s#\(<script contentType="application/x-javascript">\)\([^<]*\n\)*[^<]*\(</script>\)#\1\3#g

或者用awk来处理换行的情况:

awk -v RS="<script contentType=\"application/x-javascript\">" 'NR!=1{gsub("^[^<]*</script>","</script>")}{printf NR==1?$0:RS""$0}'  myfile.xdp

Update: (2009-06-24 )

要干净删除已有的脚本代码,仅仅删除<script>标签内的代码还不够。这样会留下很多空的不包含脚本的event标签,当再次添加脚本文件时,如果新生成的event标签连同script标签在原来那个标签之后,那么代码将不会在design view下显示出来,而只在XML source中显示出来,在执行时,代码仍会被执行。也就是说,一个不包含任何代码代码的form的xml source里面应该有不会有event标签出现。

2009-06-03

xdp文件变大问题

今天留意到我这几天正编辑的xdp文件已经到了8MB了,原来不过仅仅几百KB。这又让我想到经常代码写进去后在design view下看不到,只有在xml source界面下才能看到,并且是重复的。

网上google的结果是,这是Livecycle Designer ES 8.2的一个Bug造成的。
A bug introduced with LiveCycle Designer ES Update 1 (8.2) is now fixed in LiveCycle service pack 2 and the Acrobat 9.1 update. The bug causes a processing instruction ex. <?templateDesigner StyleID aped3?> to get copied repeatedly while working with the form. This can lead to extremely large file sizes and sometime causes crashes. The fix removes duplicate StyleID's found in existing forms and prevents them from being created.
http://blogs.adobe.com/livecycle/2009/03/post.html

2009-05-31

删除一对xml标签内的文字

原来的xdp文件中有很多旧的脚本,都在<script>标签内,如:

<script contentType="application/x-javascript">$.rawValue = ValidateScriptObject.fmtDate(ValidateScriptObject.getPeriod(),1);</script>

LiveCycle Designer不提供一次性删除所有的javascript代码,只好自己动手。在vim下先查找x-javascript,然后执行 cit 来删除标签内的文字,然后击键 n . ,这样下去似乎很快捷,不过后来发现当标签内文字不为空时,命令执行的很好,当这是一对空标签时,cit 命令会删除开始标签,导致XML文件不再well formed,后来在bbs.chinaunix.com一问才知道,这是gvim 7.1的一个bug,7.2修正了这个问题。

2009-05-30

解决无法写入_viminfo文件错误

最近在笔记本上的windows xp上使用gvim时,总是提示无法写入D:\Documents and Settings\dingjun.jia\_viminfo文件。开始以为是文件权限被错误设置。在检查目录Documents and Settings的权限设置时,发现这个文件夹的readonly被阴影选中了,取消保存后该选项仍然显示被选中,不过这个目录确实可写,估计只有微软自己的程序员才知道为什么要把这个文件夹设置为readonly,并且这个设置还不起作用,总之走了一段弯路。网上有人写道有可能是viminfo有太多的临时文件,vim无法知道该把哪个临时文件写入_viminfo中,所以写入失败。查找了一下并没有发现viminfo的临时文件,viminfo的帮助(:help viminfo)说,Unix或OS/2下该文件位于$HOME/.viminfo下,在Windows下位于$HOME\_viminfo。如果windows下没有定义HOME变量,文件被保存到$VIM\_viminfo,如果VIM也没有被定义,就位于c:\_viminfo。可是我使用gvim 7.2总是试图在目录下D:\Documents and Settings\dingjun.jia\下写该文件。定义了VIM变量,问题依旧,在定义HOME变量后,提示消失了。是不是Vim的Help应该更新了?

2009-05-26

在LiveCycle Designer下调试javascript

在Firefox下用惯了用firebug去调试javascript,现在在Livecycle Designer下也希望有一个这样的工具。查了半天文档才发现在Acrobat下打开javascript debugger(Edit -> Preferences, Select Enable Interactive Console and Show Console On Errors And Messages),可以在Livecycle Designer下用control + j打开。让人费解的是如何执行interactive console下的代码,必须先选中要执行的代码,再按control+enter,才能执行。

Using the JavaScript Console from Acrobat, you can to evaluate single or multiple lines of code.
There are three ways to evaluate JavaScript code while using the interactive JavaScript Console:
To evaluate a portion of a line of code, highlight the portion in the console window and press either Enter on the numeric keypad or Ctrl+Enter on the regular keyboard.
To evaluate a single line of code, make sure the cursor is positioned in the appropriate line in the console window and press either Enter on the numeric keypad or Ctrl+Enter on the regular keyboard.
To evaluate multiple lines of code, highlight those lines in the console window and press either Enter on the numeric keypad or Ctrl+Enter on the regular keyboard.

2009-05-20

初识Adobe LiveCycle Designer

写了几天的specification,现在开始动手用Adobe LiveCycle Designer编程了。这个东东的名字就让我费解了半天。程序安装完后在开始菜单里显示为Adobe LiveCycle Designer ES 8.2,启动程序后程序的标签上显示的名字为Adobe LiveCycle Designer,但是在Help下的关于菜单下又显示为Adobe LiveCycle Designer ES。浏览Adobe的网页之后才搞清楚,Adobe提供的一个解决方案被称为LiveCycle ES (Enterprise Solution),其中有服务器组件,也有designer组件,还有一个workbench组件,而Adobe LiveCycle Designer就是designer部分。

用了之后很失望,与其他编程的IDE相差甚远,与之搭配使用的Acrobat Pro9下的debugger窗口也很蠢,鼠标点到Acrobat窗口后,debugger窗口仍然在当前窗口,只有笔记本没有第二个显示器简直是一场恶梦。更惨的是一个form有错之后,必须关掉Acrobat,重新启动,否则Acrobat不能正确解释form内的JavaScript代码!!不知道Adobe什么时候能在这个产品上多花点功夫。

2009-05-14

在Excel下用方向键在单元格间移动光标

今天在使用Excel时,发现使用上下左右方向键(KEYDOWN、KEYUP、KEYLEFT和KEYRIGHT)进行单元格的切换时,发现方向键控制的不是单元格的切换,而是整个Excel工作表的滚动条的移动,而当前焦点的单元格并没有随方向键而改变。解决办法是按下Scroll Lock键。

2009-05-06

自定义另存为对话框中的快捷访问位置

当你在一段时间内要多次点击鼠标才能到你的文件夹时,你会发现这招很有用。使用组策略来添加另存为对话框中的快捷访问方式:

run gpedit.msc

open User Configuration – Administrative Templates – Windows Components – Windows Explorer – Common Open File Dialog - Items displayed in Places Bar

choose enable and add folder to Place to display

2009-04-17

IT职业规划

又在家休息了一段时间了,项目方面仍然没有消息。看看微软的人讲讲关于IT职业规划吧。
http://www.microsoft.com/china/technet/webcasts/class/career.mspx

2009-04-07

下载IGO 8.3.2.71348

在一个论坛上网上看到一个发帖,里面有IGO 8.3.2.71348的链接,文件是上传到rapidshare的。在帖子中链接不是完整的形式给出来的,而是以下面这种形式给出的。
http://rapidshare.com/files/175240934/i83264go.part01.rar
文件一共有20个,一个个去copy link location太麻烦了。于是选中了所有的链接,在Firefox先选中selection source,再把html source复制到一个文本文件里,再用grep过滤一下就行了
grep -s -o -E http:\/\/rapidshare\.com\/files\/[0123456789]{9}\/i83264go\.part[0123456789]{2}.rar igo8.txt
安装RSD和RouterControl程序。在RSD程序中Einstellung -> Methode 下给出RouterControl程序的正确路径,并填写参数/MULTI /d /c /q。把上面grep得到的结果复制到RSD中,启动下载。
Enjoy it!

2009-04-03

HP打印机端口

以前在大学为Windows XP安装打印机时经常使用standard TCP/IP端口来连接网络打印机。因为大学内IP地址是绑定到端口的,打印机装好之后基本就固定了。这次在帮gk公司安装一台HP的网络打印机时,一个奇怪的问题让我认识了HP打印机标准端口。不知道这种HP打印机标准端口是HP驱动程序带的,还是Windows Vista下自带的。

gk公司内IP地址是通过DHCP分配的,并且楼内因为有多家公司办公,共同使用网络设施。gk的电脑上安装的打印机使用的就是standard TCP/IP port。她的办公地点挪动到另一间屋子时,能上网,但不能打印了。一看分配到的IP地址,不再是以前的C类地址 192.168,而是一个A类地址10.0,而打印机得到仍然是C类地址。打完一圈电话后才知道楼里有两个DHCP server。机器启动时,哪个DHCP server响应快,机器就得到一个相应的A类或C类地址。可是她的同事的电脑也获得了一个A类地址,却仍然可以打印。区别就在于她的同事电脑上安装的打印机使用的是HP打印机标准端口,其中有一个选项是: 当IP地址改变时也打印到这个设备上。我猜测是直接使用打印机的MAC地址与打印机的网络模块通信,而不再需要IP地址解析,所以能把要打印的数据发过去。

2009-03-23

PI Bootcamp

这周(23.03.2009 - 27.03.2009)参加公司的SAP PI的培训。

Course Objectives :
  • Understand the technology and developer basics of SAP NW PI
  • Understand the technical architecture of each SAP NW PI component
  • Implement SAP NW PI business scenarios

This course will cover:
  • PI Overview
  • System Landscape Directory (SLD)
  • Integration Repository (IR) – Design
  • Integration Directory (ID) – Configuration
  • Mapping Techniques
  • Runtime Workbench (RWB)
  • Adapter Framework (AF)
  • Business Process Management (BPM)
  • Monitoring and Administration
  • Installation and Technical Architecture Considerations

2009-02-13

音频光纤接口

在media markt买了一个LG47寸的LCD电视(47LG5000-ZA.AEUQLVG,W/O::901WRKG1K501,S/N:91ES0484),价格为1099 欧元+运费20欧元。因为以前买的也是LG的LCD电视,带有同轴的音频输出接口(Cinch-Buchsen)。因此买这款时没注意到,这款电视的音频输出只有一个方型的光纤接口(TOSLINK),不能把它直接和新买的音箱(Bose的CineMate® Digital Home Cinema Speaker System)连接起来。还好SAT reciever有两个输出口,这样直接把SAT reciever和音箱连在一起了。只是播放DVD的时候还得把音箱的一端连线从SAT reciever上拔下来接到DVD的输出上。

2009-02-10

shell脚本中的行尾空格引起的错误

如果执行脚本时出现syntax错误,如 line 9: syntax error: unexpected end of file 并且提示出错的行比脚本中最后一行的数字还大时,检查脚本中的行尾是否有空格,删除行尾空格就应该能解决这类错误。在vim中使用 :% s/\s*$//即可删除行尾的空白字符,包括<Space> 和 <Tab>。