云服务器价格_云数据库_云主机【优惠】最新活动-搜集站云资讯

文件存储_sap数据库_好用

小七 141 0

文件存储_sap数据库_好用

在我的最后一篇文章(当然,有点过时)中,我概述了我们在项目中采用的方法,以与SAP-HANA一起解决持续交付的问题。但这仅仅是故事的一半。

今天我想与大家分享我们如何解决前端层的问题:SAP BusinessObjects reports(使用HANA视图)。

与SAP HANA一样,从一个BusinessObjects BI系统到另一个系统的传输主要是一个手动过程:在CMC内的"促销管理"中,你

工作。

我们在这个项目中遇到的问题?嗯,首先,我们经常遇到这样的情况:一个对象无法传输,因为目标系统已经包含一个同名但CUID不同的对象。

现在,当人们在目标系统上手动创建对象时,你不能责怪传输机制,而事实上他们应该这样做但是接下来的主要动机是,这个过程是手动的。与后端一样,我们需要找到一种方法来编写这个过程的脚本,因此,我们可以将其集成到我们的构建自动化中。

流程

构建首先将所选对象从我们的开发系统导出到LCMBIAR文件,并将其推送到github存储库。

这里最棘手的部分是找出要在属性文件中使用的正确导出查询,哪个是升级管理命令行工具(lcm_客户端.sh)作为参数。同时,有更多的文档可用(例如本文和sapnote1969259),大数据推荐,但在当时,几乎找不到。正在试用安装的查询生成器(http):///AdminTools/querybuilder/ie.jsp文件)证明有用。

在下一个构建阶段,首先通过删除任何现有对象来清除相应的目标系统(如QA、PROD)。为此,我使用了JavaAPI for SAP BusinessObjects BI:

包com.sap.wap网站.bobj;

导入文件输入流;

导入java.io.IOException异常;

导入java.util.Iterator;

导入java.util.Properties属性;

导入com.crystaldecisions.sdk软件包.exception.sdkeException异常;

导入com.crystaldecisions.sdk软件包.框架.CrystalEnterprise;

导入com.crystaldecisions.sdk软件包.framework.IEnterpriseSession会话;

导入com.crystaldecisions.sdk软件包.occa.infostore.iInfo对象;

导入com.crystaldecisions.sdk软件包.occa.infostore.iInfo对象;

导入com.crystaldecisions.sdk软件包.occa.infostore.iinfo商店;

导入com.crystaldecisions.sdk软件包.plugin.authentication.enterprise插件.企业中心;

public class DeleteObjects{

private static final String QUERY\u UNIVERSES=

"选择*来自CI\u APPOBJECTS,其中SI\u SPECIFIC\u KIND="DSL.宇宙";

private static final String QUERY_CONNECTIONS=

"选择*FROM CI_APPOBJECTS WHERE SI_KIND='CCIS.数据连接'";

private static final String QUERY_LCMJOBS=

"SELECT*FROM CI_INFOOBJECTS WHERE SI_KIND='LCMJob'";

public static void main(String[]args){

Properties props=null;

try{

props=new Properties();

道具荷载(新文件输入流("配置属性"));

}捕获(IOE){

系统输出打印("读取属性文件时出错。");

系统出口(1) ;

}

delete(args,props);

}

private static void delete(String[]args,大数据视频,Properties props){

IEnterpriseSession enSession=null;

尝试{

//登录

会话=CrystalEnterprise.getSessionMgr公司().登录(

道具.getProperty("cmsuser"),

道具.getProperty("CMS密码"),

道具.getProperty("cmshost")+":"+道具.getProperty("cmsport"),

IsecEnterprise.KIND公司);

//检索InfoStore

IInfoStore InfoStore=(IInfoStore)会话.getService("信息商店");

如果(args[0].equals("universes")

searchAndDestroy(infoStore,QUERY\universes);

if(args[0].equals("connections")

searchAndDestroy(infoStore,QUERY\connections);

if(args[0].equals("lcmjobs"))

searchAndDestroy(infoStore,QUERY\lcmjobs);

if(args[0].equals("folder")){

String QUERY\folder=

SELECT*FROM CI\u INFOOBJECTS WHERESI_KIND='Folder'和SI_NAME='"+args[1]+";

searcheanddestroy(infoStore,QUERY_Folder);

}

}catch(sdkeexception e){

系统输出打印("使用CMS时出现异常");

}最后{

注销();

}

}

/**

*不加区别地删除使用传递的查询返回的所有内容

*

*@param infoStore

*@param query

*@throws SDKException

*/

private static void searcheanddestroy(IInfoStore infoStore,String query)

throws SDKException{

IInfoObjects infoObjects=infoStore.query文件(查询);

for(Iteratoriter = infoObjects.iterator(); iter.hasNext公司();) {

infoObjects.delete文件((iInfo对象)下一步());

}

infoStore.commit文件(infoObjects);

}

}

这个实用程序被打包到一个JAR归档文件中,并放在文件系统中(在我们的例子中是/usr/sap/bobj/sap\u bobj/util)。

然后依次调用所有相关对象,大数据在线,e、 g.

java–cpcom.sap.wap网站.bobj.DeleteObjects文件宇宙

java–cpcom.sap.wap网站.bobj.DeleteObjects文件文件夹WAP