通过Runner/Illuminator打开PDF时出现问题

2020-09-18 22:27发布

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

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


专家您好,

我有一个需求,我需要在SAP ECC中打开由FM(RFC)生成的PDF表单。 从MII,我正在将相关数据传递给FM,并且FM给出了" PDF_STRING",可以由Runner&application/pdf打开。

现在的问题是-我们使用SSO登录到SAP。 因此,当我拨打FM时,我会映射

 SAP_JCo_Start_Session_UP2.SAPSSO2到Transaction.MYSAPSSO2的票证

现在,当我使用Runner时,我将按以下方式传递IllumloginName,但仍以某种方式MII无法生成SAPSSO2Ticket,因此FM失败。

 var printWindow = window.open(URL +'/Runner?Transaction = Default/Demo/DemoPDF&Action = UP2&IllumLoginName = test_mii&OutputParameter = Output&Content-Type = application/pdf&IsBinary = true','','滚动条=是,宽度= 720  ,height = 960'); 

现在,如果我使用Illuminator,则FM可以正常运行,但是如果我将application/pdf与illuminator一起使用,则会出现错误,指出不支持SAP MII类型。

所以我有点卡住。

使用Runner,MII无法创建SAPSSO2Ticket,因此FM失败。

 有了Illuminator,MII可以创建SAPSSO2Ticket,并且FM可以很好地运行并返回PDF_STRING,但是illuminator不支持application/pdf。


我必须解决什么问题?

谢谢!

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

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


专家您好,

我有一个需求,我需要在SAP ECC中打开由FM(RFC)生成的PDF表单。 从MII,我正在将相关数据传递给FM,并且FM给出了" PDF_STRING",可以由Runner&application/pdf打开。

现在的问题是-我们使用SSO登录到SAP。 因此,当我拨打FM时,我会映射

 SAP_JCo_Start_Session_UP2.SAPSSO2到Transaction.MYSAPSSO2的票证

现在,当我使用Runner时,我将按以下方式传递IllumloginName,但仍以某种方式MII无法生成SAPSSO2Ticket,因此FM失败。

 var printWindow = window.open(URL +'/Runner?Transaction = Default/Demo/DemoPDF&Action = UP2&IllumLoginName = test_mii&OutputParameter = Output&Content-Type = application/pdf&IsBinary = true','','滚动条=是,宽度= 720  ,height = 960'); 

现在,如果我使用Illuminator,则FM可以正常运行,但是如果我将application/pdf与illuminator一起使用,则会出现错误,指出不支持SAP MII类型。

所以我有点卡住。

使用Runner,MII无法创建SAPSSO2Ticket,因此FM失败。

 有了Illuminator,MII可以创建SAPSSO2Ticket,并且FM可以很好地运行并返回PDF_STRING,但是illuminator不支持application/pdf。


我必须解决什么问题?

谢谢!

付费偷看设置
发送
2条回答
小灯塔
1楼 · 2020-09-18 23:16.采纳回答

苏厄姆

如果IllumLoginName不起作用,则可能要尝试j_user。 另外,如果Web应用程序/JS代码托管在MII服务器上,则只需授予MII用户对该事务的访问权限(如果他们没有访问权限),然后从URL中删除IllumLoginName参数即可。

如果您尝试返回Content-Type = application/pdf,则Illuminator服务是不可能的。 我可以根据您的情况考虑以下几点:

1)内容类型白名单条目问题

如果您运行的是MII 15.1或更高版本,则需要将application/pdf添加到白名单(SAP注释2423159)

http://<服务器>:<端口>/XMII/Illuminator?Service = Admin&Mode =AddContentTypeℜsourceContentType= application/pdf

2)如果当前设置不正确,请通过NetWeaver AS Java Administrator(nwa)启用MYSAPSSO2身份验证

这需要:

  • SAP中具有相同名称的用户名已映射到MII中的相同用户(如果执行此操作,则无法传递IllumLoginName)
  • 在MII UME中设置并映射事务执行角色
  • 您只能在每个网络域中创建一个MYSAPSSO2类型的cookie,如果此时已经为用户创建了一个,则MII只需读取它即可。
  • 让MII系统接受MYSAPSSO2 cookie进行登录(如果需要MII创建它,则发出该消息)我已经发布了有关如何通过MII(CreateTicketLoginModule)创建MYSAPSSO2 cookie的步骤,但是听起来您的系统只会 需要接受它(EvaluateTicketLoginModule)。 SAP MII NetWeaver AS Java 7.5创建MYSAPSSO2 Cookie

3)将(IllumLoginName和IllumLoginPassword)或(j_user和j_password)作为参数传递到Runner URL中

这不是一个好的选择,因为您将密码放入代码中。 将需要限制用户的访问权限,使其仅针对交易呼叫跑步者。

南山jay
2楼-- · 2020-09-18 23:17

感谢Eric提供详细的答案和解释!

好吧,我找到了另一种方式。

ECC中的功能模块(FM)失败,因为为FM/RFC创建的MII服务用户没有假脱机访问权限。 因此,现在我要致电MII的Illuminator Service,并获取MII用户的用户名。

我将此用户名传递给MII Transaction作为输入变量。 MII Transaction正在将此用户名作为导入参数传递给RFC。 我的ABAP开发人员更改了RFC中的逻辑,将sy-uname更改为MII正在传递的用户名。 通过这种方式,RFC得以执行,我能够打开PDF。

不过感谢您的帮助。


一周热门 更多>