点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
专家们,
我们正在尝试使用从Internet获得的以下功能从串行端口读取数据。
问题在于创建带有语句CREATE OBJECT o_obj'" MSCOMMLib.MSComm.1"'的对象。
这将返回sy-subrc = 2并显示异常NO_CREATE_OBJECT。
我们已经将文件MSCOMM32.OCX复制到c:\ windows \ system32中,并成功使用regsvr32.exe注册了它。
我们在Windows XP和Vista上进行了尝试。
有人有什么主意吗?
预先感谢
功能ZSERIALCOM。
*" ----
" "本地投放"
*"导入
*"参考(模式)类型I默认值0
*"参考(COMMPORT)I型默认值1
*"参考(设置)C型默认'2400,N,8,1'
*"参考(输出)C型可选
*"导出
*"参考(输入)C型
*"例外情况
*" NO_CREATE_OBJECT
*" ----
TYPE-POOLS:sabc。
包括ole2incl。
执行初始化。
使用通讯设置执行open_port。
IF模式= 0。
执行读取端口
更改输入。
ENDIF。
IF模式= 1。
执行write_port
使用输出
更改输入。
ENDIF。
最终执行。
ENDFUNCTION。
数据:o_obj类型ole2_object。
&----
*&表单初始化
&----
-
文本
----
-
-> p1文字
-
<-p2文字
----
FORM初始化。
数据:
wa_repid像sy-repid。
wa_repid = sy-repid。
CALL FUNCTION'AUTHORITY_CHECK_OLE'
导出
程序= wa_repid
活动= sabc_act_call
application ='MSCOMMLib.MSComm.1'
例外
no_authority = 1
activity_unknown = 2
OTHERS = 3。
IF sy-subrc <> 0。
消息ID sy-msgid类型sy-msgty编号sy-msgno
有sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4。
ENDIF。
创建对象o_obj'" MSCOMMLib.MSComm.1"'。
IF sy-subrc <> 0。
RAISE no_create_object。
ENDIF。
ENDFORM。 "初始化
----
-
FORM open_port *
----
-
........ *
----
-
-> COMMPORT *
-
->设置*
----
使用通讯设置来形成open_port。
o_obj'CommPort'的设置属性= commport。
o_obj的"设置属性""设置" =设置。
o_obj'InputLen'的设置属性= 0。
o_obj'PortOpen'的设置属性= 1。
ENDFORM。 " open_port
----
-
FORM read_port *
----
-
........ *
----
-
->输入*
----
FORM read_port
CHANGING输入。
数据:
wa_buffer TYPE i。
做10次。
获取o_obj'InBufferCount'= wa_buffer的属性。
如果wa_buffer> 0。
获取o_obj'Input'的属性=输入。
退出。
ENDIF。
ENDDO。
ENDFORM。 " read_port
----
-
FORM write_port *
----
-
........ *
----
-
->输出*
----
FORM write_port
使用输出
CHANGING输入。
数据:
wa_buffer TYPE i。
o_obj的SET PROPERTY OF'输出'=输出。
做10次。
获取o_obj'InBufferCount'= wa_buffer的属性。
如果wa_buffer> 0。
获取o_obj'Input'的属性=输入。
退出。
ENDIF。
ENDDO。
ENDFORM。
&----
*&最终表格
&----
-
文本
----
-
-> p1文字
-
<-p2文字
----
FORM决赛。
o_obj'PortOpen'的设置属性= 0。
免费对象o_obj。
ENDFORM。 " finalbligw
亲爱的朋友,
问题在于创建带有语句CREATE OBJECT o_obj'" MSCOMMLib.MSComm.1"'的对象。
这将返回sy-subrc = 2并显示异常NO_CREATE_OBJECT。
您是如何找到问题的解决方法
谢谢
Sohail
此消息已被审核。
大家好,
我根据以下链接 http://scn.sap.com/thread/1688977
工作但是在o_obj'PortOpen'的SET PROPERTY OF = 1中,我正在sy-subrc =3。所有端口都已打开。防火墙关闭。我正在使用COMM1端口。
传递了以下参数9600,N,8,1。请让我从这里开始进行指导。
谢谢。
Sridhar。
Hello Bulent,
能帮我吗,在创建MSCOMMLIB.MSCOMM.1 Sy-subrc = 2的对象时遇到与上述相同的问题。
嗨
我已经开发了FM并按照以下链接进行了设置
使用不带第三方软件的ABAP读取COMM端口
当我独立执行FM时,我可以从秤桥上获取重量,但是当我在程序中使用FM时,我无法从秤桥上获取值。该值将变为空白。 建议表示赞赏..
谢谢
Vivek
Hello Fabian,
显然,您甚至无法在程序中创建OLE对象,
在以下行添加了u 在交易中唯一? :
MSCOMMLIB.MSCOMM.1 {648A5600-2C6E-101B-82B6-000000000014}
我在一个项目中使用OLE对象进行串行通信。.
并且成功运行。
我可以为您提供进一步的帮助,
一周热门 更多>