点击此处---> 群内免费提供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
嗨,
我曾与之合作的是FM
此FM仅在"条件"下工作
1。 MSCOMM32.OCX文件复制到用户系统" C:\ Windows \ System \"或system32
如果您使用的是64位操作系统,则将其粘贴到WOW32文件夹中
2。 给出成功注册的消息框,执行regsvr32 MSCOMM32.OCX
3.Now Active,带有许可证密钥的MSCOMM32.OCX就像
-打开RUN执行:regedit
-Goo u201CHKEY_CLASSES_ROOT \ Licenses \ u201D
-使用'4250E830-6AC2-11cf-8ADB-00AA00C00905'创建新的密钥(文件夹)名称
-提供默认值:kjljvjjjoquqmjjjvpqqkqmqykypoqjquoun
4重新启动系统
然后运行" FM",使其在串行端口具有数据时起作用
问候
Vijay Reddy.G
嗨,
请让我知道您如何解决此问题,在创建对象时,我也得到sy-subrc = 2。
谢谢
Vipin
嗨,
我曾与之合作的是FM
此FM仅在"条件"下工作
1。 MSCOMM32.OCX文件复制到用户系统" C:\ Windows \ System \"或system32
如果您使用的是64位操作系统,则将其粘贴到WOW32文件夹中
2。 给出成功注册的消息框,执行regsvr32 MSCOMM32.OCX
3.Now Active,带有许可证密钥的MSCOMM32.OCX就像
-打开RUN执行:regedit
-Goo u201CHKEY_CLASSES_ROOT \ Licenses \ u201D
-使用'4250E830-6AC2-11cf-8ADB-00AA00C00905'创建新的密钥(文件夹)名称
-提供默认值:kjljvjjjoquqmjjjvpqqkqmqykypoqjquoun
4重新启动系统
然后运行" FM",使其在串行端口具有数据时起作用
问候
Vijay Reddy.G
嗨,
我想通过COMM端口读取值形式的称重桥。 我已经开发了FM并完成了以下链接中所述的设置
使用不带ABAP的通讯端口进行读取 第三方软件
但是在独立执行FM时,我可以从COMM端口获取值,但是当我从程序中调用FM时,却无法从FM中获取输出值。 报告程序。请找到下面的代码。
报告测试。
数据:lv_input TYPE c。
通话功能'ZFM_WEIGHINTERFACE'
导出
模式= 0
COMMPORT = 1
设置='1200,N,8,1'
OUTPUT =''
导入
INPUT = lv_input
例外情况
NO_CREATE_OBJECT = 1
其他= 2
。
如果SY-SUBRC <> 0。
*在此处实施适当的错误处理
ENDIF。
如果我独立执行FM,输出会很完美。但是从程序调用时,我遇到了问题。
任何建议都值得赞赏。
谢谢
Vivek
一周热门 更多>