GOS附件开放问题

2020-09-01 08:40发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


专家们,

1)我已使用SO_OBJECT_INSERT创建附件。

2)附件创建正确(PDF,JPG,DOC)

问题是当我们尝试打开这些附件时,我们遇到了以下问题,

寻求帮助来解决此问题。

谢谢

Tejas Shah

gos_att.JPG (26.5 kB)

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


专家们,

1)我已使用SO_OBJECT_INSERT创建附件。

2)附件创建正确(PDF,JPG,DOC)

问题是当我们尝试打开这些附件时,我们遇到了以下问题,

寻求帮助来解决此问题。

谢谢

Tejas Shah

gos_att.JPG (26.5 kB)
付费偷看设置
发送
4条回答
95年老男孩
1楼 · 2020-09-01 08:59.采纳回答

大家好,

找到解决方案了,在这里...

使用GUI_UPLOAD上载数据时,必须将文件类型设为" BIN",然后我们需要在FM以下使用

1)SO_CONVERT_CONTENTS_BIN

2)SO_FOLDER_ROOT_ID_GET

3)SO_OBJECT_INSERT

4)BINARY_RELATION_CREATE_COMMIT

现在我可以上传和查看PDF,DOC,JPG和PNG文件了。

此致

Tejas Shah

nice_wp
2楼-- · 2020-09-01 08:40

嗨伊姆兰,

请在下面的代码片段中找到可能对您有用的代码。

数据:lit_objhead SOLI类型表。

数据:lwa_data_tab类型独奏,

lwa_fold_id TYPE soodk,

lwa_obj_hd TYPE sood1,

lwa_obj_id TYPE soodk,

lwa_rolea TYPE borident,

lwa_roleb TYPE borident。

数据:lv_ext(3)TYPE c。

*正在读取附件文件并填充内部表

OPEN DATASET gv_file_name用于在二进制模式下输入。

如果sy-subrc = 0。

做。

读取数据集gv_file_name INTO lwa_data_tab行。

如果sy-subrc = 0。

APPEND lwa_data_tab到git_data_tab。

清除:lwa_data_tab。

ELSE。

退出。

ENDIF。

ENDDO。

ELSE。

*消息"打开文件时出现问题" TYPE" E"。

gwa_log-qmnum = -qmnum。

gwa_log-aufnr = -aufnr。

gwa_log-posnr = -posnr。

gwa_log-msg_type = gc_e。

gwa_log-msg_desc ='打开文件时出错'。

*如果消息类型为错误单元格颜色,则为红色,否则为绿色。

使用6进行cell_colour。

APPEND gwa_log到git_log。

清除:gwa_log。

退出。 "控制权将移至下一个循环遍历

ENDIF。

关闭数据集gv_file_name。

*调用功能模块转换为Bin

通话功能'SO_CONVERT_CONTENTS_BIN'

导出

it_contents_bin = git_data_tab

导入

et_contents_bin = git_data_tab。

*调用功能模块以获取文件夹ID

通话功能'SO_FOLDER_ROOT_ID_GET'

导出

* OWNER =''

地区= gc_b

导入

folder_id = lwa_fold_id

例外情况

communication_failure = 1

owner_not_exist = 2

system_failure = 3

x_error = 4

其他= 5。

IF sy-subrc <> 0。

*在此处实施适当的错误处理

消息ID sy-msgid类型sy-msgty编号sy-msgno

与sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4

INTO gwa_log-msg_desc。

gwa_log-qmnum = -qmnum。

gwa_log-aufnr = -aufnr。

gwa_log-posnr = -posnr。

gwa_log-msg_type = sy-msgty。

CONCATENATE gwa_log-msg_desc'附件失败'

INTO gwa_log-msg_desc

用gc_comma分隔。

如果gwa_log-msg_type = gc_e。

*如果消息类型为错误单元格颜色,则为红色,否则为绿色。

使用6进行cell_colour。

ENDIF。

APPEND gwa_log到git_log。

清除:gwa_log。

* E =如果读取文件时出错,则为错误

-attach_proc = gc_e。

ELSE。

*我们将获得文件扩展名

通话功能'TRINT_FILE_GET_EXTENSION'

导出

文件名= gv_file_name

大写='X'

导入

扩展名= lv_ext。

如果sy-subrc = 0。

lwa_obj_hd-file_ext = lv_ext。" v_extension。

ENDIF。

lwa_obj_hd-objsns = gc_o。

lwa_obj_hd-objla = sy-langu。

lwa_obj_hd-objdes = gv_file_name。

*我们将获得文件大小

***数据:l_filesize类型的epsf-epsfilsiz。

***调用功能'EPS_GET_FILE_ATTRIBUTES'

***导出

*** file_name ='Cap_jpg.jpg'

*** dir_name ='/uiftp/int/in/wellsfargo/'

***导入

*** file_size = l_filesize。

lwa_obj_hd-objlen = lines(git_data_tab)* 255。

通话功能'SO_OBJECT_INSERT'

导出

folder_id = lwa_fold_id

* OBJECT_FL_CHANGE =''

object_hd_change = lwa_obj_hd

object_type = gc_ext

* ORIGINATOR_ID =''

* OWNER =''

导入

* OBJECT_FL_DISPLAY =

* OBJECT_HD_DISPLAY =

object_id = lwa_obj_id

表格

objcont = git_data_tab

objhead = lit_objhead

* OBJPARA =

* OBJPARB =

例外情况

active_user_not_exist = 1

communication_failure = 2

component_not_available = 3

dl_name_exist = 4

folder_not_exist = 5

folder_no_authorization = 6

object_type_not_exist = 7

operation_no_authorization = 8

owner_not_exist = 9

parameter_error = 10

Alternative_not_active = 11

replace_not_defined = 12

system_failure = 13

x_error = 14

其他= 15。

IF sy-subrc <> 0。

*在此处实施适当的错误处理

消息ID sy-msgid类型sy-msgty编号sy-msgno

与sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4

INTO gwa_log-msg_desc。

gwa_log-qmnum = -qmnum。

gwa_log-aufnr = -aufnr。

gwa_log-posnr = -posnr。

gwa_log-msg_type = sy-msgty。

CONCATENATE gwa_log-msg_desc'附件失败'

INTO gwa_log-msg_desc

用gc_comma分隔。

如果gwa_log-msg_type = gc_e。

*如果消息类型为错误单元格颜色为红色(6),否则为绿色(5)。

使用6进行cell_colour。

ENDIF。

APPEND gwa_log到git_log。

清除:gwa_log。

* E =如果读取文件时出错,则为错误

-attach_proc = gc_e。

ELSE。

如果 -qmnum不初始。

lwa_rolea-objkey = -qmnum。

lwa_rolea-objtype = gc_bus2007。

ELSEIF -aufnr不是初始的。

lwa_rolea-objkey = -aufnr。

lwa_rolea-objtype = gc_bus2038。

ENDIF。

lwa_roleb-objtype = gc_message。

CONCATENATE lwa_fold_id

lwa_obj_id

INTO lwa_roleb-objkey。

*将文档作为GOS附件附加到已实现的业务对象

通话功能'BINARY_RELATION_CREATE_COMMIT'

导出

obj_rolea = lwa_rolea

obj_roleb = lwa_roleb

关系类型= gc_atta

*导入

* BINREL =

*表格

* BINREL_ATTRIB =

例外情况

no_model = 1

internal_error = 2

未知= 3

其他= 4

IF sy-subrc <> 0。

*在此处实施适当的错误处理

消息ID sy-msgid类型sy-msgty编号sy-msgno

与sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4

INTO gwa_log-msg_desc。

gwa_log-qmnum = -qmnum。

gwa_log-aufnr = -aufnr。

gwa_log-posnr = -posnr。

gwa_log-msg_type = sy-msgty。

CONCATENATE gwa_log-msg_desc'附件失败'

INTO gwa_log-msg_desc

用gc_comma分隔。

如果gwa_log-msg_type = gc_e。

*如果消息类型为错误单元格颜色,则为红色,否则为绿色。

使用6进行cell_colour。

ENDIF。

APPEND gwa_log到git_log。

清除:gwa_log。

* E =如果读取文件时出错,则为错误

-attach_proc = gc_e。

ELSE。

-attach_proc = gc_y。

-date_atsp = sy-datum。

-time_atsp = sy-uzeit。

gwa_log-qmnum = -qmnum。

gwa_log-aufnr = -aufnr。

gwa_log-posnr = -posnr。

gwa_log-msg_type = gc_s。

gwa_log-msg_desc ='附件成功'。

使用5执行单元格颜色。

APPEND gwa_log到git_log。

清除:gwa_log。

ENDIF。

ENDIF。

ENDIF。

如果仍然遇到问题,请尝试使用上面的代码让我知道。

此致

Tejas Shah

骆驼绵羊
3楼-- · 2020-09-01 08:42

嗨,

我的代码也面临同样的问题。

如果可以,请发送代码。

这对我会有所帮助。

此致

Ashwini Somani

半个程序猿
4楼-- · 2020-09-01 08:52

创建一个新问题,发布部分代码,并检查是否将文件另存为二进制文件

一周热门 更多>