hlw1013 发表于 2008-6-25 14:25:36

vbscript vuser脚本如何参数化

使用vbscript协议录制的脚本,该如何实现参数化呢?
~~~~~~~~~~~~~~~~~~~~~~~~~~
Sub CreateMsiFile()
   Dim fso, tf, f2, ts, s
   Set fso = CreateObject("Scripting.FileSystemObject")
   for i=1 to 2
   Set tf = fso.CreateTextFile("C:\test RIS\MSI_IN\SC_IP_"&i&".msi", True)
   ' Write a line with a newline character.
   tf.WriteLine("MESSAGE_ID<SC_IP_"&i&">")
   tf.WriteLine("MESSAGE_TYPE<ORM>")
   tf.WriteLine("EVENT_TYPE<O01>")
   tf.WriteLine("ORDER_CONTROL_ORC<SC>")
   tf.WriteLine("PLACER_ORDER_NUMBER_ORC<3000000001>")
   tf.WriteLine("FILLER_ORDER_NUMBER_ORC<436762>")
   tf.WriteLine("ORDER_STATUS_ORC<IP>")
   tf.WriteLine("VERIFIED_BY_ORC<zhanghonghui>")
   tf.WriteLine("VERIFIED_BY_ID_ORC<zhanghonghui>")
   tf.WriteLine("PATIENT_ID<1000000001>")
   tf.WriteLine("PATIENT_CLASS<I>")
   tf.WriteLine("VISIT_NUMBER<2000000001>")
   tf.WriteLine("PATIENT_NAME_I<&sup1;&Ucirc;&Ograve;&ocirc;&AElig;&ETH;&Egrave;&oslash;>")
   tf.WriteLine("PATIENT_NAME_S<guanyinpusha>")
   tf.WriteLine(a)
   next

End Sub
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
上面是自己写的一个vbscript函数,在Generator中可以运行,但一旦对脚本里面的数值进行了参数化(比如将("PATIENT_ID<1000000001>")中的1000000001参数化)
运行脚本的时候提示Error: Error : vuser_init.vbs (18) : column 4 :Object required: 'lr' , err # = 424
实际上vuser_init.vbs 中并没有包含任何脚本啊,不参数化的时候运行正常。

zhangyan8212 发表于 2008-6-25 15:32:41

问一下怎么样能在vbscript协议下录制脚本?

hlw1013 发表于 2008-6-25 16:01:36

查看了帮助后问题解决了
格式如下:
~~~~~~~~~~~~~~~~~~~~~~
Public Function Action()

   
   Dim fso, tf, f2, ts, s
   Set fso = CreateObject("Scripting.FileSystemObject")

   Set tf = fso.CreateTextFile("C:\test RIS\MSI_IN\SC_IP_" + lr.eval_string("<order_number>") + ".msi", True)
   ' Write a line with a newline character.
   tf.WriteLine("MESSAGE_ID<SC_IP_" + lr.eval_string("<order_number>") +">")
   tf.WriteLine("MESSAGE_TYPE<ORM>")
   tf.WriteLine("EVENT_TYPE<O01>")
   tf.WriteLine("ORDER_CONTROL_ORC<SC>")
   tf.WriteLine("PLACER_ORDER_NUMBER_ORC<30000001>")
   tf.WriteLine("FILLER_ORDER_NUMBER_ORC<436762>")
   tf.WriteLine("ORDER_STATUS_ORC<IP>")
   tf.WriteLine("VERIFIED_BY_ORC<zhanghonghui>")
   tf.WriteLine("VERIFIED_BY_ID_ORC<zhanghonghui>")
   tf.WriteLine("PATIENT_ID<1000000001>")
   tf.WriteLine("PATIENT_CLASS<I>")
   tf.WriteLine("VISIT_NUMBER<2000000001>")
   tf.WriteLine("PATIENT_NAME_I<观音菩萨>")
   tf.WriteLine("PATIENT_NAME_S<guanyinpusha>")
   tf.WriteLine(lr.eval_string("<order_number>"))



End Function
~~~~~~~~~~~~~~~~~~~~~
其中“order_number”为参数
应该注意的是要用“+”号与常量连接

hlw1013 发表于 2008-6-25 16:05:08

回复 2# 的帖子

应该是没办法通过界面录制的,要自己动手写脚本
页: [1]
查看完整版本: vbscript vuser脚本如何参数化