data services应用记录.docx
- 文档编号:30233587
- 上传时间:2023-08-07
- 格式:DOCX
- 页数:27
- 大小:1.33MB
data services应用记录.docx
《data services应用记录.docx》由会员分享,可在线阅读,更多相关《data services应用记录.docx(27页珍藏版)》请在冰豆网上搜索。
dataservices应用记录
一.安装
●在安装伊始,需要填写License,否则安装不能进行(如果有一个key但是失效了,也可以先填进去,然后修改系统时间即可完成安装,但是在使用的时候系统时间始终是不准确的;key可以到其他装过此软件的机器上面找),安装的时候在创建资料库即repository的时候可以忽略,等装好之后再去创建;
二.配置
●安装完成之后首先需要创建一个资料库即repository,在菜单里面找到SapBusinessObjectDataServicesRepositoryManager,按照下图填写,然后点击create即可创建。
●然后创建jobserver在菜单中找到DataServicesServerManager
添加一个jobserver
●之后就可以打开DataServicesDesigner进行设计开发了。
在designer里开发的job保存在了第一步创建的资料库(Repository)里。
●在开始菜单中找到DateServicesManagementConsole
用户名密码默认为admin
●进入之后选择“Administrator”进行配置和管理
在Management里找到Repositories,添加一个资料库(配置信息是第一步创建的资料库),配置完毕后就会出现资料库信息,已经创建的job列表。
然后在Batch里找到相应的job进行配置或调试或监控。
●以下图例总结了dataservices各组件之间的关系
●在抽取数据的时候的步骤如下:
1.
上图中首先创建一个projects
2.再创建一个job
3.在datastores里创建数据库链接,然后把job中所用到的tables以及functions导入进来
4.在job里创建工作流、数据流等。
●在从一个表抽出数据到另一张表时,如果需要做一些数据转换,那么如图:
首先选中需要改变的字段,在下面的mapping中写下转换条件即可。
当然,也可以写where条件等(例如在where里可以这样写:
CHECKINOUT.CHECKTIMEISNOTNULLandUSERINFO.SSNisnotnullANDCHECKINOUT.USERIDISNOTnull
andCHECKINOUT.CHECKTIME>=$ld_date
ANDUSERINFO.USERID=CHECKINOUT.USERID)。
●下列图例描述了主要对象之间的关系
三.多用户开发配置
首先需要创建一个中央资源库,然后每个成员通过自己的本地资源库链接到中央资源库,每个成员把开发的内容保存到中央资源库中,当需要修改中央资源库中的内容时,需要checkout,这时别人只能浏览,修改完成之后checkin即可;中央资源库会保留各个历史版本。
●在数据库上创建一个用户作为中心资源库的用户。
●使用SapBusinessObjectsDataServicesRepositoryManager创建一个中央资源库(在repositorytype里选择central);注:
可以创建安全的和非安全的中央资源库,按需要创建,一般是创建安全的。
●打开DataServicesManagermentConsole在Management里的Repositories里添加创建的中央资源库。
这时CentralRepositories里就出现了刚创建的中央资料库。
●在users里创建用户。
创建用户时在role选项中要选择Muti-UserAdministrator,该角色不能用在非安全中央资源库,它是Administrator的一个子集。
用它能够添加或移除中央资源库、管理用户和用户组、预览中央资源库报告。
●在CentralRepositories里找到相应的中央资源库,在usersandGroups里创建相应的用户和组。
●用本地资源库登到录DateServicesDesigner。
在Tools菜单中点击CentralRepositories,添加中央资源库。
●之后就可以用了
四.Job
Abatchjobcancontainthefollowingobjects:
●Dataflows
oSources
oTransforms
oTargets
●Workflows
●Scripts
●Conditionals
●Try/catchblocks
●WhileLoops
五.Try/catch
try
begin
steps
end
catch(integer_constants)
begin
steps
end
steps
Catcherrorfunctions,otherfunctioncalls,ifstatements,orotherstatementsyouwanttoperformforanerrorinthespecifiedexceptiongroupnumber.
integer_constants
Oneormoreexceptiongroupnumbersthatyouwanttocatch.
Useacommatoseparateexceptiongroupnumbers.Forexample,
catch(1002,1003)
SpecifyALLtocatchallexceptions:
catch(ALL)
六.开发中的命名规范
七.scirpt
Scriptsaresingle-useobjectsusedtocallfunctionsandassignvaluestovariablesinaworkflow.
Forexample,youcanusetheSQLfunctioninascripttodeterminethemostrecentupdatetimeforatableandthenassignthatvaluetoavariable.Youcanthenassignthevariabletoaparameterthatpassesintoadataflowandidentifiestherowstoextractfromasource.
Ascriptcancontainthefollowingstatements:
∙Functioncalls
∙Ifstatements
∙Whilestatements
∙Assignmentstatements
∙Operators
Thebasicrulesforthesyntaxofthescriptareasfollows:
∙Eachlineendswithasemicolon(;).
∙Variablenamesstartwithadollarsign($).
∙Stringvaluesareenclosedinsinglequotationmarks(').
∙Commentsstartwithapoundsign(#).
∙Functioncallsalwaysspecifyparametersevenifthefunctionusesnoparameters.
Forexample,thefollowingscriptstatementdeterminestoday'sdateandassignsthevaluetothevariable$TODAY:
$TODAY=sysdate();
Youcannotusevariablesunlessyoudeclarethemintheworkflowthatcallsthescript.
八.脚本语法
简要说明
jobs和workflows可以用脚本定义逻辑流程的细节步骤,可以用来调用函数(存储过程),可以给变量赋值。
在创建的脚本对象或者是自定义函数中必须以分号(;)结尾。
注释语句必须用井号(#)开头。
表达式
表达式是常量、符合、函数及变量的一个组合,用来计算指定数据类型的值,可以用在script里面或是其他的dataflow对象中。
因为表达式能够用在dataflow对象中使用,所以通常包含列名;DataService脚本语言对于列名和表名没有特定的语法,例如,你可以用类似于start_date列在Mapping选项卡中作为输出,指定到输出的某一列上,但是start_date列,必须要在schemain中存在;如图:
如果在schemain中出现了相同名字的字段,并且该字段在表达式中使用,那么在使用的时候就需要加上表的前缀;例如:
这里的hire_date在schemain的employees表和emp_ds
引号的使用与在sql语句用的语法一样。
例如,如果引一些特殊字符(非字母),需要用双引号括起来;
转义字符,如果在常量里面用到了单引号(’)或是反斜杠(\),那么需要用转义字符进行转义,DS里的转义字符是反斜杠;如
character
Example
singlequote(')
'World\'sBooks'
Backslash(\)
'C:
\\temp'
关于字符串左右的空格问题,DS是用rtrim或rtrim_blank函数解决的;
变量名
变量名必须以$符号开头,如$return_info
local(局部)变量必须在使用之的job或workflow里定义;
globa(全局)变量必须在使用之的job级别定义;
返回值用RETURN(expression)来返回;其中expression定义了返回的值;
用在自定义函数中的局部变量必须用智能编辑器定义(自定义函数创建:
toolscustomfunction右键new(可以填写注释));如图:
在打开的自定义函数的编辑器中,首先在选择左边的Variables选项卡,然后在parameter里的return上右击选择属性,可以修改返回值类型;然后在此菜单下可以创建相应的变量。
最后在右边的编辑框里输入相应的函数逻辑即可(在此可以用之前的函数,也就是在左边的选项卡functions里的相应函数;
注意:
这里面定义的变量只能在这里面使用。
可以在下列的地方使用函数
∙Transforms(Query,Case,SQL)
∙Scriptobjects
∙Conditionals
∙othercustomfunctions
编辑一个存在的函数,可以到刚才的画面中的functions标签中找到;如:
JOB服务器
每一个job服务器必须和一个本地资料库关联;
多用户开发:
多用户开发决定了你开发的方式以及管理应用不同阶段的方式;如果想成功使用多用户开发环境,你必须要保持本地库和中央库的连贯;下面介绍几个相应的概念:
最高级别对象:
不依赖于层级对象中的任何一个对象,例如:
JOB1由Workflow1和Dataflow1组成,那么job1是最高级别的对象;
对象依赖:
在层级最高级别对象至下的相应对象。
例如刚才那种情况,Workflow1和Dataflow1都依赖job1对象,Dataflow1依赖Workflow1.
对象版本:
一个对象版本是一个对象的一个实例,每次你添加或checkin一个对象到中央库,软件就会创建这个对象的新的版本。
最后或最近创建的版本就是对象最终的版本;
中央资料库和本地资料库;
中央资料库只是各个本地资料库资料的一个存放地,多个用户可以上传在本地资料库中的信息,也可以从中下载这些信息,如果要修改这些信息,那么必须checkout到本地资料库。
然后再checkin到中央资料库;中央资料库也提供历史版本的存储,如果新修改的版本出现问题,那么可以恢复到之前的版本。
中央资料库和本地资料库的大的版本要一直,小的版本中央资料库可以比本地资料库更新,但是反过来就不行;
要连接一个中央资料库,你必须激活本地库和中央库之间的链接。
注意:
当你启动designer的时候,通常会登录到一个本地库,千万不要登录到中央库,如果你登录了,那么会把中央库作为一个本地库来使用(当然首先要得到中央库的用户名和密码,所以,要严格保密中央库的用户名和密码),会有破坏版本信息的风险;其实在你登录中央库的时候会有警告提示。
就像上面说的,任何时候中央库只是多个开发用户本地库存储对象的一个存储地,你可以checkout修改checkin,并且中央库保存不同的版本;
在你用designer登录到本地库的时候,必须激活相应的中央库,只有这样,中央库对象才会打开并展示所有的check-out状态对象到centralrepository里;
创建中央库
首先在相应的数据库中创建相应的用户,然后赋予相应的权限;之后就可以用资料库管理创库创建一个中央资料库了;如图:
点击创建,成功之后,会出现一个安全key,告诉你了地址,这个key到时候可以发送给每个开发用户,这样可以减少每个开发者配置链接中央库的时间;
然后在管理控制台(managementconsole)中进行资料库的相应配置;
然后在Administrtor里设置中央资料库
在相应的中央库中添加相应的组合用户;
然后在designer里添加中央库:
toolàcentralrepositoriesàcentralrepositoryconnectionsàadd
激活中央库(designer)
toolàcentralrepositoriesàcentralrepositoryconnectionsà选择相应的中央库à右键单击选“Activate”;下方有个复选框Reactivateautomatically,可以选中,这样下次登录的时候就会自动激活;
添加对象到中央库
1.创建好中央库之后,链接到本地库,然后激活中央库,你可以从本地库添加对象到中央库,请记住,你做的所有设计工作,如创建job,workflow和dataflow都存在于本地库,一旦你把他们添加到中央库,这些对象就受版本控制,并且可以在多个用户间共享;
2.你既可以添加一个单独的对象,也可以添加一些相互依赖的对象到中央库;如果你添加单独对象,那么也仅仅是添加了一个单独的对象,没有其他依赖的对象被添加;
3.在任何时候你都可以添加对象到中央库,但是在中央库中已经存在的对象不能再一次被添加;
4.不能添加只读转换配置到中央库,然而你可以拷贝一个转换配置的副本到资料库;
添加单独对象到中央库步骤:
1.打开本地库
2.右键单击对象选择addtocentralrepository>Object
3.comments对话框打开,键入comments进入commentsfileld,单击OK
注:
如果该对象在中央库中已经存在,那么这个命令是不会成功的;
添加依赖对象到中央库步骤:
1.打开本地库。
2.右键对象addtocentralrepositoryobjectanddependentsoraddtocentralrepositorywithfilteing(iffilteringisreuired)
3.comments对话框打开,键入comments进入commentsfileld,单击OK
4.如果选择了withfiltering,完成这个过滤
点击finish完成添加;
5.
相应地,你也可以选中相应的对象或依赖的对象到中央库中来完成添加,filtering窗口会打开;
注:
如果该对象在中央库中已经存在,那么这个命令是不会成功的;但是,如果该对象依赖的对象已经存在,但是它本身不存在的话,还是可以成功的;
从中央库得到最终版本到本地库
打开中央库:
在从中央库中拿最终版本之前,可以先比较本地库和中央库,在中央库的相应对象上右击compareobjecttolocal或objectwithdependentstolocal
可以用来比较中央库对象和本地库对象或中央库有依赖的对象与本地库有依赖的对象进行比较,用这些选项软件会自动找到本地的相应对象或有依赖的对象进行比较;如下图:
比较窗口的上边显示了对象名(本地库\中央库),下方显示不同之处,其中中间的状态栏说明了不同的类型;
当然你也可以在compare选中objectto...或objectwithdependentto...,这时软件不会自动找本地库中的对象或是有依赖的对象,而需要你自己拖动鼠标到本地的相应对象或中央库的对象上去;
比较中央库的不同版本之间的差异:
首先在中央库的相应对象上右键showhistory,打开history对话框,然后选中要比较的两个版本,选中右边的showdifference或showdifferencewithdependents;在就好打开比较窗口,其中上边的标头表名了对象(库类型)\版本号;
比较窗口下方标示了又几处不同,各种不同颜色的意义;比较框里查看哪里不同;找到不同之后,如果你需要之前的版本就在history对话框中选中相应的历史版本,然后点击右边的getobjbyversion;这样你本地就得到了这个版本的内容;
在checkout的时候要注意,如果你的版本和中央库的最终版本有不一致的情况,如果想以本地为主,将来checkin的时候会以你本地库的情况再创建一个版本,那么就选中
checkin之后直接出现checkincompleted;这说明没有新的版本出现;
checkout中央库已有对象的时候有两种情况,一种是以中央库的内容为准,那么checkout的时候只能选择object或objectanddependents;如果以本地库为准,那么只能选择objectwithoutreplacement或objectanddependentswithoutreplacement;
以本地库为准,由于checkout的时候,改变了绕过了中央库的最后版本,所以在checkin的时候会再保存一个版本(这样同样也避免了每次需要连接上中央库再更新,然后更新过程较长,再checkin的情况;这样,现在本地开发完,checkout的时候以本地库为准,然后直接再checkin进去,不耽误别的用户再开发);但是要尽量避免这种情况(本地与中央库出现了不连贯),一般的流程是每次要修改的东西,首先从中央库下载最终版本,然后修改;如果是新增加的东西,那么可以在本地开发完成,然后添加到中央库;
资料库所在数据库的用户
创建用户时(比如在oracle上),要赋予connect,resource,createview权限;否则
在创建资料库时,会提示权限不足;
替代变量的配置:
toolssubstitutionparameterconfigurations进行配置类似于$$RefFilesAddressCleanse这样的变量;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- data services应用记录 services 应用 记录