QA12更改使用决策时自动转至长文本并报错 上载附件 Word2007template.dotm
*&---------------------------------------------------------------------*
*& Report Z_SCR_WORD_UPLOAD
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
REPORT z_scr_word_upload LINE-SIZE 141
NO STANDARD PAGE HEADING MESSAGE-ID td.
* V2.1
DATA: dummy(80),
f_ext(4).
PARAMETERS: Path LIKE dummy DEFAULT 'C:\Word2007template.dotm' LOWER CASE,
ext LIKE f_ext DEFAULT 'dotm' LOWER CASE.
DATA: bds_instance TYPE REF TO cl_bds_document_set,
bds_classname TYPE sbdst_classname VALUE
'SAPSCRIPTWORDINTEGRATION',
bds_classtype TYPE sbdst_classtype VALUE 'OT',
bds_objectkey TYPE sbdst_object_key VALUE 'WORDTEMPLATE',
doc_id_700 TYPE sbdst_doc_id VALUE
'BDS_LOC2 A83FD83F732D5D1EE10000000A1550A7',
doc_id_640 TYPE sbdst_doc_id VALUE
'BDS_LOC2 B91FC640B91E325CE10000000A1551F7',
doc_id_620 TYPE sbdst_doc_id VALUE
'BDS_LOC2 40C0B062D5C34C4CE10000000A1145AB',
bds_classname_7 TYPE sbdst_classname VALUE
'SAPSCRIPTWORDINTEGRATION2',
doc_id_7 TYPE sbdst_doc_id VALUE
'BDS_LOC2 473BA296286672C0E10000000A1146E7',
l_doc_id TYPE sbdst_doc_id,
l_doc_ver_no TYPE sbdst_doc_ver_no,
l_doc_var_id TYPE sbdst_doc_var_id,
l_files_line TYPE bapifiles,
l_files TYPE TABLE OF bapifiles,
filename LIKE rlgrap-filename,
dir TYPE string,
file TYPE string,
rel_i TYPE i,
rel(4),
extt(1),
rc LIKE sy-subrc.
DATA: true TYPE tdbool VALUE 'X',
false TYPE tdbool VALUE space,
cancel.
filename = path.
* Check extension dot|dotm
IF NOT ( ext EQ 'dotm' OR ext EQ 'dot' ).
PERFORM bd_textbox_err(rstxpdft) USING 80
'Wrong file extension'(003).
EXIT.
ENDIF.
PERFORM check_data.
PERFORM upload_file CHANGING filename
ext
dir
file
cancel.
IF cancel EQ true.
EXIT.
ENDIF.
PERFORM init_file_line USING dir
file.
PERFORM init.
PERFORM upload CHANGING rc.
IF rc = 1.
PERFORM bd_textbox_err(rstxpdft) USING 80
'Error in Upload'(003).
ELSE.
PERFORM bd_textbox_msg(rstxpdft) USING 80
'The upload of Wordtemplate is done'(001).
ENDIF.
FORM init.
* init for 2003 Upload
* release
rel = sy-saprl.
rel_i = rel(2).
IF rel_i GE 70.
l_doc_id = doc_id_700.
ELSEIF rel_i EQ 64.
l_doc_id = doc_id_640.
ELSEIF rel_i EQ 62.
l_doc_id = doc_id_620.
ELSE.
EXIT.
ENDIF.
ENDFORM.
FORM init_file_line USING dir TYPE string
file TYPE string.
* BDS file line
DATA: file_up TYPE string.
CLEAR l_files_line.
file_up = file.
TRANSLATE file_up TO UPPER CASE.
CLEAR l_files_line.
* l_files_line-comp_id = 'WORDTEMPLATE.DOT'.
l_files_line-comp_id = 'Word2007template.dotm'.
l_files_line-directory = dir.
l_files_line-filename = file_up.
l_files_line-mimetype = 'APPLICATION/MSWORD'.
CLEAR l_files[].
APPEND l_files_line TO l_files[].
ENDFORM.
FORM check_data.
IF rel_i GE 70.
PERFORM delete_rel USING 62.
PERFORM delete_rel USING 64.
ELSEIF rel_i EQ 64.
PERFORM delete_rel USING 62.
PERFORM delete_rel USING 70.
ELSEIF rel_i EQ 62.
PERFORM delete_rel USING 64.
PERFORM delete_rel USING 70.
ELSE.
EXIT.
ENDIF.
ENDFORM.
FORM delete_rel USING p_rel TYPE i.
DATA: signature_line TYPE bapisignat,
signature TYPE TABLE OF bapisignat,
pp_cancel VALUE 'A',
pp_replace_all VALUE 'R',
pp_enter VALUE 'E',
pp_yes VALUE 'J',
pp_no VALUE 'N',
pp_leave.
IF p_rel EQ 62.
MOVE: doc_id_620 TO signature_line-doc_id.
ELSEIF p_rel EQ 64.
MOVE: doc_id_640 TO signature_line-doc_id.
ELSEIF p_rel EQ 70.
MOVE: doc_id_700 TO signature_line-doc_id.
ELSE.
EXIT.
ENDIF.
APPEND signature_line TO signature[].
CALL FUNCTION 'BDS_BUSINESSDOCUMENT_GET_INFO'
EXPORTING
classname = bds_classname
classtype = bds_classtype
object_key = bds_objectkey
TABLES
signature = signature
EXCEPTIONS
nothing_found = 1
parameter_error = 2
not_allowed = 3
error_kpro = 4
internal_error = 5
not_authorized = 6
OTHERS = 9.
IF sy-subrc EQ 0.
CALL FUNCTION 'POPUP_TO_CONFIRM_STEP'
EXPORTING
titel = 'Template delete'
textline1 =
'The system contains Wordtemplate.dot from old Basis release.'
textline2 = 'Do you want to delete this Object?'
defaultoption = pp_no
IMPORTING
answer = pp_leave.
IF pp_leave = pp_yes.
CALL FUNCTION 'BDS_BUSINESSDOCUMENT_DELETE'
EXPORTING
classname = bds_classname
classtype = bds_classtype
object_key = bds_objectkey
TABLES
signature = signature
EXCEPTIONS
nothing_found = 1
parameter_error = 2
not_allowed = 3
error_kpro = 4
internal_error = 5
not_authorized = 6
OTHERS = 7.
ENDIF.
* To do: Transport create on case of Yes answer.
ENDIF.
ENDFORM.
FORM upload CHANGING rc LIKE sy-subrc.
DATA: l_bds_classname TYPE sbdst_classname.
IF ext EQ 'dotm'.
l_bds_classname = bds_classname_7.
l_doc_id = doc_id_7.
ELSE.
l_bds_classname = bds_classname.
ENDIF.
CALL FUNCTION 'BDS_BUSINESSDOCUMENT_UPD_F'
EXPORTING
classname = l_bds_classname
classtype = bds_classtype
object_key = bds_objectkey
doc_id = l_doc_id
doc_ver_no = l_doc_ver_no
doc_var_id = l_doc_var_id
TABLES
files = l_files
EXCEPTIONS
nothing_found = 1
parameter_error = 2
not_allowed = 3
error_kpro = 4
internal_error = 5 not_authorized
= 6
OTHERS = 7. rc
= sy-subrc.
ENDFORM.
FORM upload_file CHANGING p_filename
LIKE rlgrap-filename p_ext
LIKE ext p_dir
TYPE string p_file
TYPE string p_cancel
TYPE c.
DATA: name TYPE string, filetable
TYPE filetable, filter
TYPE string, rc
TYPE i, uact
TYPE i, result
TYPE tdbool, l_res
TYPE i, l_str
TYPE i, l_res2
TYPE i, l_find
LIKE sy-subrc, l_name
TYPE string.
* condense filename no-gaps. name
= p_filename.
CLEAR p_cancel.
CLEAR p_dir.
CLEAR p_file.
IF p_ext EQ 'dotm'. filter
= '(Word2007template.dotm)|Word2007template.dotm|'.
ELSE. filter
= '(Wordtemplate.dot)|Wordtemplate.dot|'. " '(*.*)|*.*|)'.
ENDIF.
WHILE result EQ false. " Search the file
CALL METHOD cl_gui_frontend_services=>file_exist
EXPORTING file
= name RECEIVING result
= result
EXCEPTIONS cntl_error
= 1 error_no_gui
= 2 wrong_parameter
= 3
OTHERS = 5.
IF result EQ true.
EXIT.
ENDIF.
CALL METHOD cl_gui_frontend_services=>file_open_dialog
EXPORTING window_title
= 'Template Upload'
* default_filename = name file_filter
= filter
CHANGING file_table
= filetable rc
= rc user_action
= uact
EXCEPTIONS file_open_dialog_failed
= 1 cntl_error
= 2 error_no_gui
= 3.
CHECK sy-subrc = 0.
IF rc < 0 OR uact EQ 9. p_cancel
= true.
EXIT.
ENDIF.
READ TABLE filetable INDEX 1 INTO name.
CHECK sy-subrc = 0.
ENDWHILE.
IF p_cancel NE 'X'. l_name
= name. l_str
= strlen( name ).
WHILE l_find EQ 0 AND l_res2
LT l_str. l_name
= l_name+l_res.
FIND '\' IN l_name MATCH OFFSET l_res. l_find
= sy-subrc.
IF l_find EQ 0. l_res
= l_res + 1. l_res2
= l_res2 + l_res.
ENDIF.
ENDWHILE.
IF l_res2 EQ 0. p_cancel
= 'X'.
EXIT.
ENDIF. p_file
= name+l_res2. p_dir
= name(l_res2). p_filename
= name.
ELSE.
EXIT.
ENDIF.
ENDFORM.
QA12更改使用决策时自动转至长文本并报错 上载附件 Word2007template.dotm的更多相关文章
- PHP 文件上传注意一个地方,移动文件时要保证目标目录存在,否则报错
move_uploaded_file ( $_FILES ["file"] ["tmp_name"], "upload/" . $fileN ...
- 错误笔记 对象为null时调用改对象的方法会报错
对象为null时调用改对象的方法会报错
- 启动多个eclipse 时,因为一个另一个启动报错,
启动多个eclipse 时,因为一个另一个启动报错, 原因: 可能是 有一个 eclipse 中 的 tomcat 配置出错:preference中 tomcat 配置 context dec ...
- 对于一个web工程,如果我们复制一个已有的工程粘贴到同一个workspace下,我们除了需要更改工程的名字还需要更改这个新工程的content root,否则会报错。
对于一个web工程,如果我们复制一个已有的工程粘贴到同一个workspace下,我们除了需要更改工程的名字还需要更改这个新工程的content root,否则会报错.步骤如下: 右键新的工程---&g ...
- virtualbox装配fedora时,安装增强功能包时会报错解决
virtualbox安装fedora时,安装增强功能包时会报错解决 Building the main GuestAdditions module [失败]安装前需要先安装下面几个包才可以避免这个问题 ...
- mybatis查询sql时,在不分页的情况下,自动加了limit导致接口报错
今天在开发过程中,我遇到了很奇怪的问题.自己写的代码明明没有分页进行查询,但是打印出来的sql缺有limit 导致我getone的时候,出现了二个limit,导致接口报错. ### Cause: or ...
- Linux安装软件时90%的人会遇到这个报错,如何解决?
提示 Could not get lock /var/lib/dpkg/lock 报错? 有些小伙伴在使用 apt 包管理器更新或安装软件时,可能会遇到过诸如以下的错误提示: E: Could not ...
- 在Android工程中加入AIDL文件时,gen目录生成的文件报错-问题解决
from://http://blog.csdn.net/watt520/article/details/10099047 今天在弄清除缓存的东东,按照网上别人的方法,创建了一个AIDL文件,这个时候发 ...
- web自动化时,sendkeys输入长文本时浏览器响应慢或错误时处理
在做某个测试时,要在文本框中输入大量的文本,文件内容如下: "-----BEGIN CERTIFICATE-----\nMIIBozCCAQwCAQEwDQYJKoZIhvcNAQEFBQA ...
- react className 有多个值时的处理 / react 样式使用 百分比(%) 报错
1.react className 有多个值时的处理 <fieldset className={`${styles.formFieldset} ${styles.formItem}`}> ...
随机推荐
- centos转移mysql的数据存储目录
前言 centos7使用yum安装mysql的时候,没修改存储位置,/var也没单独挂载,导致长时间运行后根目录空间不足.现需要将数据转移到大分区的/home,操作步骤如下. 步骤 创建新目录 mkd ...
- 针对sarasa-shuffle.woff2加密字体进行解密
本文针对的是类似于sarasa-shuffle.woff2加密字体的一个研究. 字体加密是使用Unicode编码将其映射到不同的字体显示的一种前端显示加密手段.在反爬虫中能够起到较好的效果,爬虫将只能 ...
- 微服务集成RabbitMq保姆级教程
本文通过简单的示例代码和说明,让读者能够了解微服务如何集成RabbitMq 之前的教程 https://www.cnblogs.com/leafstar/p/17641358.html 在这里我将介绍 ...
- k8s实战案例之运行WordPress
1.WordPress架构 LNMP案例之基于Nginx+PHP实现WordPress博客站点,要求Nginx+PHP运⾏在同⼀个Pod的不同容器;nginx主要作用是接入站点请求,如果请求静态资源n ...
- GAN!生成对抗网络GAN全维度介绍与实战
本文为生成对抗网络GAN的研究者和实践者提供全面.深入和实用的指导.通过本文的理论解释和实际操作指南,读者能够掌握GAN的核心概念,理解其工作原理,学会设计和训练自己的GAN模型,并能够对结果进行有效 ...
- vue 脚手架文件结构及加载过程浅谈
1. 初始化脚手架 1.1 全局安装 @vue/cli npm install -g @vue/cli 1.2 切换到创建项目的目录,执行 vue create projectname 1.3 选 ...
- 《Python魔法大冒险》006 变量的迷雾
小鱼和魔法师走了很久,终于来到了一个神秘的森林前.这片森林与众不同,它被一层厚厚的迷雾所包围,仿佛隐藏着无尽的秘密. 小鱼好奇地看着这片森林:"这是什么地方?" 魔法师:这是魔法森 ...
- KRPANO资源分析工具下载网展全景图
示:目前分析工具中的全景图下载功能将被极速全景图下载大师替代,相比分析工具,极速全景图下载大师支持更多的网站(包括各类KRPano全景网站,和百度街景) 详细可以查看如下的链接: 极速全景图下载大师官 ...
- 文心一言 VS 讯飞星火 VS chatgpt (92)-- 算法导论8.3 5题
五.用go语言,在本节给出的第一个卡片排序算法中,为排序 d 位十进制数,在最坏情况下需要多少轮排序?在最坏情况下,操作员需要记录多少堆卡片? 文心一言: 你提到的第一个卡片排序算法可能是指的基数排序 ...
- Building-Mobile-Apps-with-Ionic-2中文翻译工作
最近没啥工作量, 然后学完了这本书, 接着又茫然找不到该干啥, 所以想着何不翻译这个书呢. 这本书首先给我们普及了Ionic 2的基础知识, Ionic 2和Ionic 1有本质上的区别, Ionic ...