18种根据屏幕字段找数据表的方法rev11.docx
- 文档编号:26844387
- 上传时间:2023-06-23
- 格式:DOCX
- 页数:66
- 大小:2.89MB
18种根据屏幕字段找数据表的方法rev11.docx
《18种根据屏幕字段找数据表的方法rev11.docx》由会员分享,可在线阅读,更多相关《18种根据屏幕字段找数据表的方法rev11.docx(66页珍藏版)》请在冰豆网上搜索。
18种根据屏幕字段找数据表的方法rev11
18Techniquesfor
LocatingtheUnderlying
DataofaScreenField
18种根据屏幕字段
查找潜在数据的技巧(rev1.1)
DennisBarrett/翻译:
强晟qiangsheng@
Picturethis.AnOperations
Managerwantsaspecial
reportofherserviceorders.
Shegivesyouasketchof
whatshewantsittolook
like(columns,rows,
headings,grouping,
subtotals,totals,andthe
like),andpointstofields
ontheService
Managementtransaction
screensthathavethedata
DennisBarrettisanapplicationsconsultantwithSAPAmericawho
focusesonServiceManagement/CustomerServiceandtheService
shewantsyoutoshowin
thereport.
Providersolution.想象一下这样的情景。
一
Hehasbeenconsultingincomputersforover15years,always
blendingapplicationsandprogramming.HeisacertifiedABAP
programmer,andisalsotheauthorof“SAPR/3ABAP/4Command
Reference.”
丹尼斯·巴雷特是SAP美国的应用顾问,致力于服务管理/客户服务和服
务提供解决方案。
他已经在计算机行业从事顾问工作15年,是认证ABAP程序员,也是《SAP
R/3APAP/4命令参考》一书的作者。
(completebioappearsonpage18)
(关于他的完整简历请见27页)
第1页共27页
位业务经理希望得到一个
关于她的服务订单的专用
报表,她给了你一个报表
的草图(包括列、行、标
题、分组、小计、合计等
等),而“服务管理”事
务屏幕中的字段就包含了
她希望你在报表中显示的
数据。
Whatdoyoudo?
Mostlikely,youwouldchecktofindanyexistingreportsdeliveredwiththesystem(or
alreadywrittenforthisclient)thatprovidetheinformationtheOperationsManagerwants,orthatcanbe
copiedandrevisedtofitherneeds.Ifyoudon’tfindany,youmightthenlookintotheappropriate
reportingsystem—inthiscase,thePlantMaintenanceInformationSystem(PMIS)—toseeifyoucan
adaptit.Inthiscase,however,youcan’tfindthereport,andyoucan’tcobbleonetogetherfromexisting
ones.YoumustwriteareportoranABAPQuerytofulfilltherequirements.
你该怎么做?
通常的,你会检查系统中运行的,能够提供这个业务经理所需信息的现存报表(或者
是已经为这个client写过的),或者可以在复制和修改后能符合需要的报表。
如果没有找到,你也许
会在适当的报表系统——例如,工厂维护信息系统(PMIS)——中看看是否能找到合适的。
即使
这样,你仍然无法找到报表,或者无法从现存报表中找到可修改的,那只能写一个报表或者一个
ABAP查询来实现这个需求。
Now,supposetheOperationsManagerasksifyoucansomehowaddjustonemorelittlefunctiontoher
CreateMeasurementDocumentstransaction:
pastetheassociatedsalesordernumberintotheMDoctext
field.Thisscenariorequiresyoutocreateanenhancement.Inboththefirstandsecondscenario,you’ll
needaccesstospecificdatafromthedatabasetables.Howdoyoufindthatdatawithjustthescreenfields
asyourguide?
Weallknowtheinformationassociatedwithatransactionisstoredinseveral(sometimes
many)relatedtables.So,whenyouneedseveralfieldsfromatransactionforareportoranenhancement,
youmayneedtofindmanyofthetransaction’stablesandestablishthelinksamongthem.Thoselinksare
oftennotobvious.
现在,设想一下业务经理问你是否以某种方式在《创建计量单位文档事务》中增加一个小小的功能:
向MDoc文本字段中粘贴相关销售订单号。
这个要求需要你创建一个增强功能。
在前面两个情形中,
你都需要访问数据库表中的特定数据。
你怎么以屏幕字段做指导来找到这些数据?
我们都知道与一
个事务关联的信息都存储在几个(偶尔还会是很多个)相关的表里。
这样,当你需要在报表或增强
功能中使用一个事务中的几个字段时,你需要找出许多事务的表并在它们之间建立关联。
这些关联
通常都不会很明显。
I’vecomeacrosstheseverysituationsonnumerousoccasionswhileworkingforseveralclientswiththe
SD,MM,IM,WM,andServiceManagement(nowcalledCustomerService)modules.OvertimeIhave
gatheredsuggestionsfromcolleaguesanddevelopedsometechniquesmyselftofindthedataIneeded.I
willsharethesetechniques—18oftheminall—withyounow.
我曾经在众多场合遇到这些情况,有时需要同时在SD、MM、IM、WM和服务管理(现在叫客户服
务)等模块对多个client进行工作。
随着时间推移,我收集了同事和自己在开发中寻找需要数据的建
议。
我现在来跟你分享这些技巧——共18种。
(再注:
在rev1.1里,加入了我自己收集到的另一种方法,第19种。
相信做为读者的你,在以后
的工作中也会不断发现更多更好的方法,不妨也发表出来,让更多的人学习。
)
第2页共27页
TheStartingGateandFinishLine
起跑线和终点线
Iwillbepresentingawidevarietyoftechniquesforreachingthe“finishline”ofthisexercise—namely,
locatingthetableandfieldthatstorestheunderlyingdataofascreenfield.You’reunlikelytoneedallof
them;you’llprobablybesuccessfulwithinthefirstfourtechniques.Iincludetheremainingtechniques
becausesomefieldscanbeveryhardtochasedown,andanyoneoftheseothertoolsjustmightdothe
trick.
我将会介绍达成本练习“终点线”的各种各样的技巧——也就是说,定位那些在屏幕字段中存储潜
在数据的表和字段。
你未必需要所有这些方法,一般来说,前四种技巧已经足够了。
我之所以写其
他的技巧是因为有些字段非常难以追踪,而这些工具或许可以解决问题。
TheStartingPoint
起点
ThestartingpointforthissetoftechniquesisalwaystheTechnicalInformationscreen,becauseitishere
thatyoulearnthescreenfield’sname,andcandiscernwhetherornottheunderlyingdataobjectisa
structure,view,ortable.
这套技巧的起点通常是技术信息屏幕,因为你可以从这里知道屏幕字段的名字,并且辨别出这个潜
在数据对象是不是一个结构、视图或者表。
Iftheunderlyingdataobjectisatable,yoursearchisover.ThefieldnameshownontheTechnical
Informationscreen,plusthistablename,armsyouwiththedetailsyouneed.Ifthedataobjectisaview,
justonemoreclickandyou’vegotthattablename.Ifthedataobjectisastructure,youstillhaveto
unearththenameofthetable.
如果潜在数据对象是一个表,你的查找就结束了。
字段名称显示在技术信息屏幕中,还包括了表名
称,都是你需要的细节。
如果数据对象是一个视图,只需要再点击一下就能得到表名称。
如果数据
对象是个结构,你还不得不需要继续发掘表的名称。
第3页共27页
Technique#1:
ChecktheTechnicalInformationScreen
技巧一:
检查技术信息屏幕
IalwaysstartmysearchfortheunderlyingdataobjectbygettingthenamesofthefieldandData
Dictionaryobjectfromthetransactionscreen.CalluptheTechnicalInformationscreenbypositioning
yourcursorinthetargetscreenfieldandthenpressingF1orclickingonthe?
button.Thiswillbringup
theinitialHelpscreen.FromwithintheHelpscreen,pressF9orclickontheTechnicalinfobutton.
我通常从事务屏幕中开始搜寻潜在数据对象——如字段和数据字典对象的名字。
如果想调出技术信
息屏幕,首先将光标定位在目标屏幕字段上,然后按F1或者点击按钮图标,这将打开初始帮助屏
幕,在这个帮助屏幕中,按F9或者点击技术信息按钮。
Figure1TheRelease4.0BTechnicalInformationScreenforthe“Sold-toparty”Field
图1在发行版4.0B中关于“售达方”字段的技术信息屏幕
TakealooknowatFigure1.ItshowstheTechnicalInformationscreenfortheSold-topartyfieldinthe
CreateStandard(Sales)OrderscreenforRelease4.0B.Youseeinthe“Fielddata”blockthattheTable
nameisKUAGVandtheFieldnameisKUNNR1.InReleases4.0Bandbelow,thisscreencallsthe
associatedobjecta“table”,whetherit’satable,view,orstructure.NoticeinFigure2thatthe4.5Brelease
(andabove)informsyouthatKUAGVisactuallyastructure.
现在看一下图一,它显示了在发行版4.0B中,创建标准(销售)订单屏幕的售达方字段的技术信息
第4页共27页
注
和以前的版本中,这个屏幕把相关对象都称为“表”,而不管它是个表、视图还是结构。
注意图二
中,在4.5B(及以后版本)中,提示你KUAGV实际上是个结构(译注:
在我们用的ECC5版中没有
区分,SAP又退化了,直到双击查看对象时才显示出来它是表、结构还是视图)。
Figure2TheRelease4.5BTechnicalInformationScreenforthe“Sold-toparty”Field
图二在发行版4.5B中关于“售达方”字段的技术信息屏幕
1Theexampleshereinmentionnamesoftables,structures,andfieldsthatIfoundinmysearches.Youmayfindadifferentname
inthesamesearch—particularlyadifferentstructure’sname.Forexample,theSold-topartyfieldintheSalesOrderinitial
screenmaybeKUAGV-KUNNRorRV45S-KUNNR(ormaybesomethingelse).I’llshowonenameinthisarticle;don’tworry
ifyoufindanother.It’sareflectionofthecontinualenhancementofR/3,not(Ihope)anerrorinthearticle.
注1这里的例子提及了在我的研究中找到的表、结构和字段的名字。
你可能在相同的研究中发现一个不同的名字——尤
其是不同的结构名称。
例如,在销售订单初始屏幕中售达方字段可能是KUAGV-KUNNR或者RV45S-KUNNR(还可能是
其他名字)。
我在文章中只写其中一个,但是如果你发现了另外的名字也不必担心。
它是R/3系统持续改进的一个反映,
并不是(至少我希望不是)文档中的错误。
第5页共27页
屏幕。
你可以看到,在“字段数据”块中,表名称是KUAGV、字段名称是KUNNR1。
在发行版4.0B
InReleases4.0Bandbelow,toascertainwhetherornotanobjectisastructureyoumusttakeonemore
step.DrillintotheTablenamefieldintheTechnicalInformationscreentoseetheDataDictionaryscreen
fortheobject.
在发行版4.0B和以前的版本中,为了确定一个对象是否是一个结构,你必须多经过几步。
深入技术
信息屏幕的表名字段,到数据字典屏幕查看对象(译注:
ECC5也是这样)。
Figure3TheRelease4.0BDataDictionaryScreensforTable“VBAK,”View“VIVEDA,”and
Structure“KUAGV”
图三发行版4.0B中数据字典屏幕显示的表“VBAK”,视图“VIVEDA”和结构“KUAGV”
Figure3showsthosescreensforthetableVBAK,theviewVIVEDA,andthestructureKUAGV.
CorrespondingscreensinReleases4.5and4.6lookverysimilar.Asyoucansee,theobjecttypeiseasyto
recognizeinthesescreens.
图三显示了表VBAK、视图VIVEDA、结构KUAGV的屏幕,在发行版4.5和4.6中,相应的屏幕也非
常类似。
就像你看到的,对象类型在这些屏幕中非常容易辨认。
Iftheunderlyingobjectisatable,you’rehomefree.Theinformationisstoredinthattableinthefield
withthesamenameastheoneshownontheTechnicalInformationscreen.Success!
Whenyouwriteyour
reportorABAPQuery,orwhenyouprogramyourenhancement,youcanrefertothedatausingthese
tableandfieldnames.
第6页共27页
如果潜在对象是一个表,你就相当轻松了。
存储在那个表的字段的信息跟在技术信息屏幕中显示的
名字完全相同。
成功!
当你写报表、ABAP查询或者增强功能程序的时候,你可以直接使用这些表
和字段名来获取数据。
Iftheobjectisaview,thenscrolltotheViewfieldintheviewwiththesamenameastheoneshownin
theTechnicalInformationscreen.SeeFigure4;theTableandFieldnameassociatedwiththeViewfield
isyourgoal.Successagain!
如果对象是一个视图,在字段信息列表中找到与技术信息屏幕显示相同名字的视图字段。
看图四,
与视图字段关联的表和字段名就是你的目标。
又成功了!
Figure4Locatingthe“Table”and“Fieldname”Associatedwiththe“Viewfield”
图四定位与“视图字段”关联的“表”和“字段名”
第7页共27页
Tables,Views,andStructures
Ascreenfieldisassociatedwithatable,view,orstructure.WhileeachoftheseisaDataDictionary
object,onlythetableactuallystoresdata.Thisiswhythegoalofallthesetechniquesistofindthe
tablethatactuallystorestheinformationthatyoucanseedisplayedinthescreen.
TableViewStructure
Tablesstoredata.Ifyour
screenfieldpointstoatable,
oryouareabletodrilldown
toatablefromaview,then
youhavefoundthestorage
locationofyourdata,and
you’vereachedthefinish
line!
Thistablenameand
fieldnamearewhatyou
needforyourreportorquery.
Viewsusedinscreensare
linkedgroupsoftables.Ifthe
fieldisinaview,youcandrill
downtotheunderlyingtable
thatcontainsthedata.
StructuresareData
Dictionaryobjectsthathave
fieldsbutdonotcarrydata.A
structureissimplyanarray
ofvariablesdefinedinthe
DataDictionary,andislike
emptytables.Ifthescreen
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 18 根据 屏幕 字段 数据表 方法 rev11