Java项目集成SAP BO
SAP BO报表查看需要登录SAP BO系统,为了方便公司希望将BO报表集成到OA系统中,所以参考网上资料加上与SAP BO的顾问咨询整理出一套通过Java来集成SAP BO的功能。
SAPBO中的报表链接为:http://ip:port/BOE/Xcelsius/opendoc/documentDownload?iDocID=FvWSEVkQXQgAPEcAAADn8KADAFBWr2gK&CELogonToken=***
Java集成的报表链接为:http://ip:port/BOE/OpenDocument/opendoc/openDocument.jsp?sIDType=CUID&iDocID=FnMYaVYDPgkAzA0AAAAHEX0AAFBWr2lv&token=***
Java集成的重点是如何来获取token参数值来跳转到相应的报表。参考网上方案得到如下代码可以获取到token。
HttpSession session = request.getSession();
String cms = "***.***.***.***:6400";
//认证的安全类型,类型是以上几种,如果是SAP,则类型字符为secSAPR3
String authentication = "secSAPR3";
//用户名,如果是SAP系统方式登录,格式为bwp~888/eiacext1
String poUsername = "BOUSER";
String poPassword = "PASSWORD";//密码
//登录并获得TOKEN,并命名用OpenDocument方式打开一个文件
ISessionMgr sessionMgr = CrystalEnterprise.getSessionMgr();
IEnterpriseSession enterpriseSession = sessionMgr.logon(poUsername, poPassword, cms,authentication);
ILogonTokenMgr mgr = enterpriseSession.getLogonTokenMgr();
/**
*
* String token=logonTokenMgr.createLogonToken("",10,5);
其中createLogonToken(java.lang.String clientComputerName, int validMinutes, int validNumOfLogons)
clientComputerName为使用这个token的客户端计算机名,空字符串表示该token可被任何客户端使用;
validMinutes为token的有效时间(分钟);
validNumOfLogons 表示该token允许被使用的最大次数。
*
*/
String tokenStr = mgr.createLogonToken("",24*60,Integer.MAX_VALUE);
session.getServletContext().setAttribute("token", tokenStr);
通过代码查询所需要的jar包入下图所示:

引入了这些jar包之后运行成功跳转到了相应的报表,接下来遇到一个问题要通过OA来控制数据权限及传输相应的报表参数到BO报表。
查询BOE中opendocument使用说明,找到lsS[name]的参数方式来通过Java传输相应name参数到BO报表。
最终得到链接:
http://ip:port/BOE/OpenDocument/opendoc/openDocument.jsp?sIDType=CUID&iDocID=FnMYaVYDPgkAzA0AAAAHEX0AAFBWr2lv&lsSparamString=h&token=***
相关的BOE中opendocument使用说明可以参考:https://wenku.baidu.com/view/09a002280066f5335a81217a.html
代码的相关实现参考:http://www.cnblogs.com/yangzhilong/p/3352153.html
Java项目集成SAP BO的更多相关文章
- J2EE项目集成SAP的BO报表
网上的方案: 每个用户在自己的J2EE系统的用户登陆的同时登陆bo系统,这做法的缺点是登陆bo速度慢,而且如果J2EE用户比较多的话会在bo服务器生成很多的token. 最佳方案(自己研究): 1.调 ...
- Java项目集成Redis
1.项目pom.xml中添加Jedis依赖 <dependency> <groupId>redis.clients</groupId> <artifactId ...
- Taurus.MVC 微服务框架 入门开发教程:项目集成:3、客户端:其它编程语言项目集成:Java集成应用中心。
系列目录: 本系列分为项目集成.项目部署.架构演进三个方向,后续会根据情况调整文章目录. 开源地址:https://github.com/cyq1162/Taurus.MVC 本系列第一篇:Tauru ...
- Springboot项目集成JPush极光推送(Java SDK)
1.由于项目的需求,需要在Android APP上实现消息推送功能,所以引用了极光推送(官网:https://www.jiguang.cn/, 文档:http://docs.jiguang.cn/) ...
- eclipse集成maven3后,创建java项目详细图解
1.创建一个Java项目 1)File--->New--->Other--->Maven--->Maven Projet 2)选择maven-archetype-quickst ...
- Jenkins与Git持续集成&&Linux上远程部署Java项目
一.环境搭建 1.安装所需软件 Jdk Maven Jenkins Tomcat Xshell git 以上软件去官网下载,比较简单,不一一描述了 2.安装所需的jenkins插件 Git plugi ...
- jenkins 持续集成笔记2 --- 构建 Java 项目
先说一下流程: jenkins 从 gitlab pull 代码,使用 maven 打包,然后备份原来的jar包,使用rsync同步到服务器上,重启服务. pipeline 资源去看官方中文文档 ht ...
- 从零开始学 Java - Spring 集成 Memcached 缓存配置(二)
Memcached 客户端选择 上一篇文章 从零开始学 Java - Spring 集成 Memcached 缓存配置(一)中我们讲到这篇要谈客户端的选择,在 Java 中一般常用的有三个: Memc ...
- 从零开始学 Java - Spring 集成 ActiveMQ 配置(一)
你家小区下面有没有快递柜 近两年来,我们收取快递的方式好像变了,变得我们其实并不需要见到快递小哥也能拿到自己的快递了.对,我说的就是类似快递柜.菜鸟驿站这类的代收点的出现,把我们原来快递小哥必须拿着快 ...
随机推荐
- OpenGL判断一个点是否可见
关于OpenGL中判断一个点是否可见,可以分成两种情况讨论:点在2D空间中和3D空间中的时候.并且"在2D空间中"可以看作"在3D空间中"的特殊情况. 温馨提示 ...
- (转)C++——std::string类的引用计数
1.概念 Scott Meyers在<More Effective C++>中举了个例子,不知你是否还记得?在你还在上学的时候,你的父母要你不要看电视,而去复习功课,于是你把自己关在房间里 ...
- Win7安装Docker
系统环境 1. windows 7 旗舰版64位 i5-2450M CPU 8G内存 2.支持“ Hardware Virtualization Technology”,并且,“virtualiza ...
- 高CPU、数据库无法读写的真凶
有兴趣的同学可以参考如下系列文章,都是针对dump分析的实战和总结: Windbg DUMP分析(原创汇总) http://www.cnblogs.com/LoveOfPrince/p/6653341 ...
- 搞不懂SSH与JAVA+Servlet+javabean有什么关系
在SSH中:struts 是控制层,同时与Jsp结合代表表现层,同时负责客户端请求的处理,Spring主要处理逻辑事物处理,Hibernate主要对数据库的持久化操作. Jsp+Servlet+Jav ...
- zookeeper-开始
ZooKeeper:为分布式应用提供的分布式协调服务 ZooKeeper提供一系列原语用于分布式应用构建更高层次的服务,如同步.配置维护.分组以及命名空间. 设计目标: ZooKeeper足够简单且可 ...
- od的用法
一.功能 查看非文本文档的内容 二.用法 1.语法 od [-A RADIX] [-t TYPE] 文件名 2.选项与参数 -A: 指定偏移量的输出形式 d[size] :利用十进制(decimal) ...
- 前端学习数据库MYSQL
这篇文章主要写了 1.数据库MYSQL 2.基本上会遇到的所有SQL语句 数据库可视化软件------Navicat 数据库里边存放的是表,表与表之间是有关联的,而且可以对表进行相关操作(增,删,改, ...
- Linux命令 查看文件内容
cat [功能说明] 查看文件的内容 #cat本身是一个串接命令,把指定一个或多个源文件的内容,利用>符号重定向到目标文件中,如果不指定重定向文件,则默认在标准输出设备上显示.此时,可以利用c ...
- css3自适应圆
.class{ width:auto; height:auto; border-radius:11px; min-width:14px; padding:0 4px; font-size:12px; ...