在BSP中显示PDF

2020-09-08 19:06发布

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

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


当我在SAP系统目录中有一个PDF文件时,可以通过系统外部的bsp页面链接来调用该文件吗?

例如:我正在生成一个pdf文件,并将其存储到/tmp/ file.pdf 。 不,我需要一个bsp页面上的按钮,该按钮直接链接到pdf。 因此,如果您按下按钮,则pdf应在后台生成,并应显示在新的资源管理器窗口中。

--->就像您单击网页上的链接一样,该链接直接指向网络服务器上的pdf文件。

希望您能理解我的问题!

非常感谢!

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

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


当我在SAP系统目录中有一个PDF文件时,可以通过系统外部的bsp页面链接来调用该文件吗?

例如:我正在生成一个pdf文件,并将其存储到/tmp/ file.pdf 。 不,我需要一个bsp页面上的按钮,该按钮直接链接到pdf。 因此,如果您按下按钮,则pdf应在后台生成,并应显示在新的资源管理器窗口中。

--->就像您单击网页上的链接一样,该链接直接指向网络服务器上的pdf文件。

希望您能理解我的问题!

非常感谢!

付费偷看设置
发送
7条回答
葫芦娃快救爷爷
1楼 · 2020-09-08 19:22.采纳回答

嗨Arne,

您必须将Java Script或HTML标记放置在声明此PDF按钮的布局中。.类似

如果pdf eq'X '。

endif。

致谢

Suresh Datti

d56caomao
2楼-- · 2020-09-08 19:28

我有一种情况,正在存储PDF数据 在Z表(例如INDX表)中。

BSP从Z表读取二进制数据,并将其显示为PDF。

Z表现在已接近1000万条记录。

这是BSP超时的原因吗?

在这种情况下,以下方法会很好

1)代替将IMPORT/EXPORT导入数据库,而是将PDF数据写入适当的文件夹

在App Server上。

2)提供从HTML页面到App Server(或任何其他文件服务器)的链接

3)如果从a读取文件,将如何影响BSP的性能?

文件服务器而不是数据库上的路径。

提前谢谢。

SKY徐
3楼-- · 2020-09-08 19:31

嗨,阿姆,

1。 据我了解,解决方案

您的查询非常简单。

[可以使用简单的html标签完成]

2。 假设您在服务器上有一个.pdf文件

(运行BSP/互联网服务的服务器)

在/usr/tmp/ xyz.pdf 处。

3。 然后在您的bsp中,就像html标签一样,

创建参考(HTML中的概念)

将&指向并直接指向

文件(具有可通过Web服务别名访问的完整路径)。

4。 因此,如果用户只是点击参考

在bsp页面中,

.pdf文件将自动在其上打开

计算机(已安装acrobat)

在他/她的计算机上)

我希望能帮上忙。

此致

授予M。

消息的编辑者:阿米特·米塔尔(Amit Mittal)

Bunny_CDM
4楼-- · 2020-09-08 19:34


嗨,托马斯,

我是ABAPer。 我对前端系统一无所知。

任何伙伴都可以指导我如何在SAP UI5中将PDF文件转换为XSTRING或BINARY(可能是XML或Script)吗?

我的要求是,我必须在SAP-UI5中上传文件。 这些文件应上传到后端系统(MIME存储库(SAP-ECC)或DMS)中。

我已经在以下屏幕上创建了PDF文件! 在SAP-UI5中上传。

下面是我在SAP网关系统中编写的代码。

*获取MIME存储库信息

lr_mime_rep = cl_mime_repository_api => if_mr_api〜get_api()。

*将FILE上传到MIME存储库中。

lr_mime_rep-> put(

导出

i_url = p_path

i_content = lv_content

例外情况

parameter_missing = 1

error_occured = 2

取消= 3

Permission_failure = 4

data_inconsistency = 5

new_loio_already_exists = 6

is_folder = 7

其他= 8)。

后端系统所需的文件名带有扩展名和XSTRING(转换的PDF数据)。



如何在SAP-UI5中将PDF文件转换为XSTRING或BINARY?



请帮助我...

Bunny_CDM
5楼-- · 2020-09-08 19:15

可以做到这一点。 如果文件是预先生成的并存储在服务器的文件系统中,则可能需要查看ICM文件处理程序。 您可以设置一个文件处理程序,然后通过BSP或任何其他应用程序中的URL访问文件内容。

另一方面,如果您想在BSP应用程序中即时生成PDF,这也相当合理。 简单。 我更喜欢的方法是使用缓存的HTTP响应。 我将PDF内容放入缓存的Respose,然后将其暂时放入ICM Cache。 然后,当我重建布局时,我将包含一个1x1像素的iFrame,其中包含指向ICM缓存的URL。

请查看以下网络日志以获取更多详细信息:

创建用于下载表的BSP扩展

BSP编程:处理非HTML文档

绿领巾童鞋
6楼-- · 2020-09-08 19:28

嘿,谢谢您的帮助!

它不能完全正常工作,但我认为应该只剩下一个小问题了……

当我运行程序时,什么都没有发生。 按下PDF按钮后,我仍然在同一页面上。

但是,当我调试时,将生成的url的内容复制到浏览器中并在停止程序后运行该url时,它会显示我的PDF文件!

生成后如何在新窗口中打开它?

我的代码是这样的:

 创建对象cached_response类型cl_http_response
                         导出add_c_msg = 1。

 l_pdf_len = STRLEN(binary_string)。

 cached_response-> set_cdata(data = binary_string
                             长度= l_pdf_len)。


 cached_response-> set_header_field(
                              名称= if_http_header_fields => content_type
                              值="应用程序/pdf")。

 cached_response-> set_status(代码= 200原因='确定')。
 cached_response-> server_cache_expire_rel(expires_rel = 180)。


 通话功能'GUID_CREATE'
   输入
     ev_guid_32 = guid。

 CONCATENATE runtime-> application_url'/'guid'.pdf'INTO display_url。

 cl_http_server => server_cache_upload(url = display_url
                                      response = cached_response)。

 返回。
 

binary_string是我的pdf二进制文件。

非常感谢您!

欢呼

消息由以下人员编辑:Arne Hein

昵称总是被占用
7楼-- · 2020-09-08 19:09

大家好,

我是BSP的新手,并且有类似的要求。 如果您提供详细的代码,对我真的很有帮助。

预先感谢。

一周热门 更多>