期培训中心教师_第1页
期培训中心教师_第2页
期培训中心教师_第3页
期培训中心教师_第4页
期培训中心教师_第5页
已阅读5页,还剩226页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

版版权没有SAPAG的特别许可,任何人不得以任何形式或为任何目的复制或传播本文档的任何部分。此外,本文档及其内容仅供您自己使用,没有SAPAG的明确许可,不得出租、转由版版权没有SAPAG的特别许可,任何人不得以任何形式或为任何目的复制或传播本文档的任何部分。此外,本文档及其内容仅供您自己使用,没有SAPAG的明确许可,不得出租、转由SAPAG及其分销商所销售的某些软件产品包含有其他软件供应商版权所有的软件组商•Microsoft®、WINDOWS®、NT®、EXCEL®、Word®、PowerPoint®和SQLServer®Microsoft公司的注册商标。IBM®、DB2®、OS/2®、DB2/6000®、ParallelSysplex®、MVS/ESA®、RS/6000®、AIX®、S/390®、AS/400®、OS/390®和OS/400®是IBM公司的注册商标。ORACLE®是ORACLEINFORMIX®-OnLineforSAPINFORMIX®DynamicServerTMInformixUNIX®、X/Open®、OSF/1®和Motif®是OpenGroup本文档中引用的Citrix®、Citrix徽标、ICA®、ProgramNeighborhood®、MetaFrame®、WinFrame®、VideoFrame®、MultiWin®CitrixCitrixSystems公司的商标。HTML、DHTML、XML、XHTMLW3C®WorldWideWeb商标或注册商标。JAVA®是SunMicrosystemsJAVASCRIPT®是SunMicrosystemsNetscape许可使用。SAP、SAP徽标、R/2、RIVA、R/3、SAPArchiveLink、SAPBusinessWorkflow、WebFlow、SAPEarlyWatch、BAPI、SAPPHIRE、ManagementCockpit、mySAP.commySAP.comSAPAG•••••••••免责声SAP按原样提供这些材料,并明确拒绝承担任何和所有明示或暗示的保证,包括但不限于这些材料和服务、信息、文本、图像、链接,或此处的任何其他材料和产品的特定目的之适销性和适用性的保证。在任何情况下,AP均不承担任何直接的、间接的、特殊的、偶然的、后果性或惩罚性的损失责任,不论任何性质,包括但不限于由于使用这些材料或其中介绍的软件组件而产生的收入或利润的损失关于本手册本手册用于补充教师的课堂演讲,学员可以在课后参考此手册。本手册不适合自学。排版惯本手册使用标准字体:还用到以下排版惯正文图本手册用到了关于本手册本手册用于补充教师的课堂演讲,学员可以在课后参考此手册。本手册不适合自学。排版惯本手册使用标准字体:还用到以下排版惯正文图本手册用到了以下图标:图含有关更多信息、提示或以前观点的备注或字体风描他位置,如SAPNet)文档的交叉引用。示例文正文文本中强调的字或词组,图形和表格的示例键字,如SELECT和INCLUDE。屏幕输出。这包括文件和目录的名称及其路径、消息、变量和参数的名称以及程序源代码的各节。文档中完全一致。<关于本手图含例外或警步关于本手图含例外或警步表示教师演讲中显示了该项目目课程概 课程目 课程目 单目课程概 课程目 课程目 单1:字典简 ABAP字典的功能概 单2:ABAP字典中的数据对 基本数据类 ABAP字典中的 特殊的SAP 单3:表访问期间的性 表访问期间的性 单4:输入检 通过输入检查保持一致 单5:对象相关 对象相关 单6:表更 表更 单7:视图与维护视 视 维护视 单8:搜索帮 搜索帮 v目目课程概述本门课程说明ABAP字典在SAP系统中的角色及其功能范目标读课程概述本门课程说明ABAP字典在SAP系统中的角色及其功能范目标读本课程适用于以下读者:•需要在字典中创建全局数据对象、数据库表、视图等的人员与管理人员设计数据模型并希望将其传输至数据库的数据库设计人开•课程前提条件所需知••BC400或类似的ABAP基本编程知识SAPTEC或类似的SAPGUI使用知推荐知•了解关系数据库的结构课程目本课程将传授以下内容:••••••描述ABAP字典在R/3系统中的功能定义并使用数据库对象使用ABAP字典中的服务描述ABAP字典如何与开发和运行时环境链接使用建模语言UML进行数据建模课程目完成本教材后,您将能够•使用并描述ABAP字典及其服课程概述课程概述单1字典简介单元概您可以在本章的各单1字典简介单元概您可以在本章的各个课程概览中单元目完成本单元后,您将能够••••列举ABAP字典在R/3系统中的功能描述ABAP字典提供的服务解释ABAP字典如何与开发和运行时环境链单元目课程字典的1单元1:字典简介课程:ABAP典的功能概课程概述本课程将简要介绍ABAP字典的课程目标完成单元1:字典简介课程:ABAP典的功能概课程概述本课程将简要介绍ABAP字典的课程目标完成本课程后,您将能够:••••列举ABAP字典在R/3系统中的功能描述ABAP字典提供的服务解释字典如何与开发和运行时环境链业务示例您应向同事解字典的主要用功能概览图表1:ABAP字典的功ABAP字典可用于对R/3系统使用的所有类型定义进行集中管在AP字典中,可以创建适用于P程序或函数模块、对象方法等接口的用户自定义类型(数据元素、结构和表类型)。数据库对象(例如表、索引和视图)也可在P字典中定义,并按照此定义在数据库中创建。2课程:ABAP字典的功能概览字典还提供大量支持程序开课程:ABAP字典的功能概览字典还提供大量支持程序开发的服务。例如,支持加锁与释放定义输入帮助帮助)以及在屏幕字段中附加字段帮助帮助)图表2:ABAP字典中的数据库对表和数据库视图可在ABAP字典中定义。这些对象将按照此定义在基础数据库中创建。表或数据库视图的定义更改也会自动应用到数据库中。ABAP中可以定义索引,以便提高访问表数据的速度。这些索引也可以在数据库中创建。图表3:ABAP字典中的类型定义3单元字典简介ABAP字典中有三种不同的类别:•数据元素:通过定义数据类型、长度以及可能出现的小数位来描述基本类型。单元字典简介ABAP字典中有三种不同的类别:•数据元素:通过定义数据类型、长度以及可能出现的小数位来描述基本类型。表类型:描述内部表的结构。••根据这些基本类型可以构造任何复杂的用户自定义类示例:员工数据存储于带有组件NAME、ADDRESS和TELEPHONE的结构EMPLOYEE。组NAME是一个带有组FIRSTNAMELASTNAME结构。这些组件均为基本类型,例如,它们的类型由数据元素定义。组件ADDRESS的类型也可以由结构定义,而该结构的组件也是结构。组件TELEPHONE由表类型定义(因为一名员工可能有多个电话号码)。例如,类型可在ABAP程序中使用,或者用于定义函数模块的接口参数图表ABAP字典的服务4课程:ABAP字典的功能概览字典可提供大量支持程序开发的服务课程:ABAP字典的功能概览字典可提供大量支持程序开发的服务••屏幕字段的输入帮助帮助)能够通过搜索帮助定义通过为数据元素创建文档,可以轻松地将字段帮助(F1帮助)分配可使用外键轻松地为屏幕字段定义输入检查,以确保输入值的一致性。P字典可在加锁和释放锁时提供支持。为此,必须在AP字典中创建锁对象。根据这些锁对象可自动生成用于加锁和释放锁的函数模块;然后可以将这些函数模块链接至应用程序。通过缓冲设置,可以提高访问数据库对象(表、视图)数据时的性能。通过日志记录,可以打开自动记录表条目更改的功••••图表5:与开发和运行时环境链接ABAP字典动态地集成在开发和运行时环境中。每个更改均会在相关ABAP程序和屏幕中立即生效5单元字典简介示例•当生成程序或屏单元字典简介示例•当生成程序或屏幕时,ABAP释器和屏幕解释器将访问ABAP典中存储的类型定义。ABAP具和屏幕制作器可利用ABAP典中存储的信息来支持程序开发。例如,通过屏幕制作器的从字典中获取功能,可ABAP数据库接口可使用ABAP字典中存储的表或数据库视图的相关信息来访问这些对象的数据。••6课程字典的功能概课程摘您现课程字典的功能概课程摘您现在应该能够:••••列举ABAP字典在R/3系统中的功描述定义数据对象和数据类型的可能途描解字典提供的服务字典如何与开发和运行时环境链7单元摘要单元摘要您现在应该能够:••••列举ABAP字典在R/3系统单元摘要单元摘要您现在应该能够:••••列举ABAP字典在R/3系统中的功描述定义数据对象和数据类型的描解字典提供的服务字典如何与开发和运行时环境链8单2ABAP中的数据对象单元概单2ABAP中的数据对象单元概您将在本章学会在字典中映射数据对象的不同单元目完成本单元后,您将能够•••••创建域,并在数据元素中进行使定义数据元素,并将其作为基础定义ABAP序的数据对象定义结构,并将其作为基础定义ABAP程序的数据对象定义内部表,并将其作为基础定义ABAP程序的数据对定义复杂(嵌套/深度)结构,并将其作为基础定义ABAP序的数通过类型池定义全局常量,并在ABAP序中使用定义表的技术设置创建并使用Include描述SAP透明表之外的表类型区分表池中的表和簇表描述表池中的表和簇表的优势与劣势••••••••单元目课程:基本数据类 练习1:基本数据类 练习2:简单结构与嵌套结 练习3:表类型(内部表 练习4:深度结 练习5:ABAP字典中的 课程:特殊的SAP 9单元2:字典中的数据对象课程:基本数据类型课程概述您将在本课中学习基本数据类单元2:字典中的数据对象课程:基本数据类型课程概述您将在本课中学习基本数据类型,以及基本数据类型如何互相应课程目标完成本课程后,您将能够:•••••创建域,并在数据元素中进行使定义数据元素,并将其作为基础定义ABAP序的数据对象定义结构,并将其作为基础定义ABAP程序的数据对象定义内部表,并将其作为基础定义ABAP程序的数据对定义复杂(嵌套/深度)结构,并将其作为基础定义ABAP序的数通过类型池定义全局常量,并在ABAP程序中使•业务示例您应在字典中定义简单和复杂两种数据类型,以程序中使数据类型图表6:数据字典初始课程:基本数据类交叉程序(全局)数课程:基本数据类交叉程序(全局)数据类型可在ABAP字典中定义。使用相应ABAP语句的TYPE加功能时,可以在SAP系统的每个ABAP序中参考这些数据类型。在初始屏幕中,使用数据类型字段可进行相关定义。在数据类型下,可以找到三个基本类型,即数据元素、结构和表类型(内部表-B)。类型组实际上是早期产品的残余物(在4a版本之前),当时类型组还无法创建适用于BAP中声明数据对象的自有全局性复杂数据类型。现在类型组仍有此用途。今后,您在创建新的全局性复杂数据类型时,应使用字典结构提供的选项。此外,类型组将和以前一样用于创建全局常量。P对象也通过某类的常量属性支持使用全局常量。然而,如果希望以非面向对象的方式编程,只能利用类型组定义全局常量。图表7:ABAP字典的数据类型如需在ABAP序中定义数据对象,可以使用上述类型定义(域除外)。原则上,数据元素使用域定义其技术属性。然而,ABAP通过访问域来定义数据对象。通常,数据元素从域中获取数据类型。数据类型也能从集成类型中导出。结构由组件构成,组件可以是基本字段、表以及结构。表类型ITAB)的行类型可以是结构类型或基本类单元字典中的数据对象图表8域用于集中管理数据对象的技术属性。域无法在程序、表等内部直接使用。数据类型“数据元素”(请参见下文)在此处用于连接技术属性和不同数据类型/数据对象。技术单元字典中的数据对象图表8域用于集中管理数据对象的技术属性。域无法在程序、表等内部直接使用。数据类型“数据元素”(请参见下文)在此处用于连接技术属性和不同数据类型/数据对象。技术信息包括以下几点:在格式说明中,您将发现适用于在隶属数据对象中输入的类型和字符数量。如果是数字格式,还可以为小数位数据类型基于24种集成类型。下面将对最常用的数据类型进行说明:字符CHAR型字段在表中的最大长度为255字符。如果希望在表中使用更长的字符串,必须选择LCHR据类型。在结日该数据类型的长度设定为8字符。通过用户参数文件,可以定义输出模板。使用小数点、符号和千位分隔符的计算或总计字课程:基本数据类DEC字段最大允许课程:基本数据类DEC字段最大允许长度为31仅能包含数字的字符串。此类字段长度最大值限定为输出属性:此处为输入值和输出值规定了包括千位分隔符或小数点在的最大字段长度一旦指定格式中的字符数量,通常将自动计算该值,但该值也可在以后覆盖。输出格式能够影响屏幕和选择屏幕的输出。将字段集成到屏幕中时,使用此处的规定,但这些值也可在屏幕编辑器中进行修改。而且,您还可以为此域定义一个转换例程。这用于将屏幕字段内容从显示格式转换为P内部格式时(反之亦然)更改显示格式(例如,在数字前加前导零),也适用于通过BAPWE输出的情况。同样,还可以使用此转换例程覆盖任何不适当的标准转换。对于某些数据类型(C、FP、N和UR),复选框符号输入时即已提供。如果激活此项功能,字段的第一位字符将保留给屏幕中的符号。输出长度将相应地增加1位。对基于字符的数据类型,还应该确定是否允许出现小写字母果未设置该标识,在相应输入字段中可以输入小写字母,但是一旦用户确认输入(例如,R键),将转换为大写字母。此外,您能够为输入检查定义有效值范围。本课程的其它部分将详细阐述这一主题。单元字典中的数据对象图表9:数据元素数据元素不仅在域和数据对象之间建立链接,还包含所创建数据对象的语义/技术信息。数据字单元字典中的数据对象图表9:数据元素数据元素不仅在域和数据对象之间建立链接,还包含所创建数据对象的语义/技术信息。数据字段的字段标签能够,并且应该保存在数据元素中。这些字段(短、中等或长)稍后可在屏幕或选择屏幕上显示,用于解释字段内在选择屏幕上(例如,ABAP命令PARAMETERS),只能从字典中提取长版本字段标签(ABAP辑器菜单路径:转到本元择文本=>复选框‚字典参考)。如果字段值以列表形式提供,字段标签的输入项将作为标题。您还必须为字段标签指定长度。此长度将决定字段标签的最大长度。如果您在跨国公司工作,可以将字段标签翻译为其它语言(菜单路径:转到翻译或事务E3)。指定长度时,请记住,字段标签的相同术语在其它语言中可能需要更多字符。在数据元素中可以添加搜索帮助(/输入帮助)。本课程后面的单元将详细讨论搜索帮助这一主题。搜索帮助可在不同层级集成。由于应用程序不同,有时必须在多个屏幕中输入特定值。为节省用户重复输入的时间,可以为数据元素分配ST参数。在这一参数中,退出屏幕时将对输入值进行传输。如果后续屏幕中出现基于相同数据元素的输入字段,将从参数中读取该值并输入到屏幕字段中。TGET参数在每个会话期间保留输入值。用户退出系统后,将不再保留这些值。必须先在表PA中进行输入,才能使用TGET参数!课程:基本数据类您也可以给数据元素分配英语缺省名称。然而,这种设置仅在数据元素作为BI结构的组件时有效。必须使用缺省名称,以便分配组件名称时保持一致。数据元素的技术属性在数据类型标签页中维护。此处应该主要使用为技术课程:基本数据类您也可以给数据元素分配英语缺省名称。然而,这种设置仅在数据元素作为BI结构的组件时有效。必须使用缺省名称,以便分配组件名称时保持一致。数据元素的技术属性在数据类型标签页中维护。此处应该主要使用为技术类型预定的域。然而,用于定义域的同一集成类型,也可用于定义数据元素。您还可以将数据元素创建为参考类型,这是一种特殊用法。此处的参考类型不仅仅限于“AN”类型。也可以是其它参考类型,甚至可以是Y、JT或A的一般参考。ANY类型的参考既可指向对象又可指向数据。参考的定义REFTOdata”的类型声明相同程序“TYPEStr_dt图表10:结构结构由组件组成,组件可以是数据元素、集成类型、内部表的结构定义、数据库表视图或其它现有结构定义等形式。当实际二维对象的字段通过增加视图或数据库表的方式出现在结构中时,从该结构中生成的数据对象仍是平面的(一维的)。使用表类型定义组件时,通常会创建所谓的深度结构。尽管这个组件是二维的,但结构中的其它组件仍是平面的(一维的)。单元字典中的数据对象11ABAP中使用简单元字典中的数据对象11ABAP中使用简单结构最简单的结构形式是在使用数据元素时出现的字段序列。这种情况下总会产生所谓的平面结构。基于这种结构类型的数据对象总是一维的(与类表的二维数据对象相反)。查找结构的单个元素(组件)时,使用结构名称加连字号再加组件名称。课程基本数据类图表12:嵌套结构在结构中可以增加其它结构化对象,并将其分配给某一组件。这个组件指课程基本数据类图表12:嵌套结构在结构中可以增加其它结构化对象,并将其分配给某一组件。这个组件指向结构化对象,而新数据对象就叫作嵌套结构。这类结构能够以任何形式互相嵌套。图表13:内部表单元字典中的数据对象一旦将内部表作为结构组件插入,单元字典中的数据对象一旦将内部表作为结构组件插入,就会产生深度结构您可以使用现有的行结构定义内部表或ITAB。数据库表、结构定义、视通过程序中声明内部表,在主内存中创建二维阵图表14:深度结构深度结构至少包含一张表。这种表的组件有自己的名称,因此可像普通的内部表一样被引用(OP...、...OAE、...)。反过来,内部表也像行类型一样有深度结构。通过这种方式,能够创建多维数据类型,例如可以进行若干次内部表和结构的内部嵌套。警告相比之下,数据库表仅能包含平面结构课程基本数据类图表15:类型组课程基本数据类图表15:类型组如果希望定义全局常量,必须使用类型组。类型组名称的最大长度为五个字符。在类型组中,可以使用AS语句定义常量。此处可使用预定义的AP类型或全局字典类型。如需在程序中使用类型组,请通过TYPEPOOL句声明类型组。声明之类型组的定义是一段保存在字典(SE11)或ABAP编辑器(SE38)中的ABAP代码。实现类型zmytp的第一个语句总是:TYPE-POOLzmytp然后由TYPES语句进行数据类型定义,正如在本地程序数据类型中描述的一样。接下来可以用CONSTANTS语句声明交叉程序常量。这种数据类在ABAP程序中,使用类型组前必须用如下语句进行声明TYPE-POOLS使用该语句时,能够在程序中使用zmytp类型组定义的所有数据类型单元字典中的数据对象单元字典中的数据对象课程:基本数据类练习1:基本数据类练习目完成此练习后,您将能课程:基本数据类练习1:基本数据类练习目完成此练习后,您将能够•在字典中创建基本数据类型并在ABAP程序中使业务示在您的开发项目中,应该创建若干全局数据类型,以便其他项目成员访问。任务创建两个域,以便随后在数据元素中使用123调用事务SE11在ABAP字典的初始屏幕中,创建名为ZDO_10NUM_##的域应为带有10位十进制数的数据元素创建域。在这10个数位中,保留2作为小数位。数据元素还应适用于业务计算。ABAP典的初始屏幕上,创建名为ZDO_30CHAR_的域。该域应能包含30个文本字符,并且允许在输入字段中输入小写字母。保存(为局部对象)并激活域。456任务创建多个数据元素,并为技术属性使用已定义的12调用事务SE11为人员的姓氏输入数据元素ZLASTNAME##),并使用适合的域。该数据元素应能包含30个字母,大写或小写均可。为人员的名输入数据元素ZFIRSTNAME##),并使用适合的域。该数据元素应能包含30个字母,大写或小写均可。为资产创建数据元素ZASSETS##),并使用适合的域。该数据元素应该用于业务计算。为负债创建数据元素ZLIABILITIES##),并使用适合的域。该数据元素应该用于业务计算。345单元字典中的数据对象任务创建程1创建不包含“TOPInclude”的可执行程序MENTS单元字典中的数据对象任务创建程1创建不包含“TOPInclude”的可执行程序MENTSABAPPARAMETERS创建下列输入字2计算资产减去负债的值,并以列表形式输出所有参数和计算结果执行程序并在选择屏幕中输入不同的值(将以列表形式输出)3参数据类课程:基本数据类解答1:基本数据类任务创建两个域,以课程:基本数据类解答1:基本数据类任务创建两个域,以便随后在数据元素中使用1调用事务SE11a)在SAP轻松访问菜单的命令字段中输入se11并确如果您正处于其它事务中,必须在命令字段中输入/n并确在ABAP字典的初始屏幕中,创建名为ZDO_10NUM_##的域a)选择域单选按钮。2在输入字段中输入域名。按创建按钮3应为带有10位十进制数的数据元素创建域。在这10个数位中,应保留2位作为小数位。数据元素还应适用于业务计算。在简短描述字段中,输入对域的合理描述在数据类型字段中,输入值DECF4)选在字符数量字段中,输入值在小数位字段中输入2e)选中+/-符号复选框保存(为局部对象)并激活域a)在屏幕顶部单击保存ABAP典的初始屏幕上,创建名为ZDO_30CHAR_的域。该域应能包含30个文本字符,并且允许在输入字段中输入小写字母。a)照前述步骤进行操作,并在定义标签页中定义相应属性a)在屏幕顶部单击保存456单元字典中的数据对象任务创建多个数据元素,并为技术属性使单元字典中的数据对象任务创建多个数据元素,并为技术属性使用已定义的1调用事务SE11a)在SAP轻松访问菜单的命令字段中输入se11并确认如果您正处于其它事务中,必须在命令字段中输入/n并确认为人员的姓氏输入数据元素ZLASTNAME##),并使用适合的域。该数据元素应能包含30个字母,大写或小写均可。2选择数据类型单选按钮。在出现的弹出对话框中,选择数据元素单选按钮并确认输入内容。在简短描述字段中,输入对数据元素的合理描在基本类型的数据类型标签页中,输入您在本练习的前面部分创建的相关域。在字段标签标签页上,还必须为数据元素输入适合的名称。这些名称将出现在屏幕和选择屏幕(长版)上,例如,用于解释字段。a)b)3为人员的名输入数据元素ZFIRSTNAME##),并使用适合的域。该数据元素应能包含30个字母,大写或小写均可。a)按照前面练习中的相同方式进行操作为资产创建数据元素ZASSETS##),并使用适合的域。该数据元素应该用于业务计算。a)按照前面练习中的相同方式进行操作为负债创建数据元素ZLIABILITIES##),并使用适合的域。该数据元素应该用于业务计算。a)按照前面练习中的相同方式进行操作45任务创建程1。创建不包含“TOPInclude”的可执行程序MENTSa)使用事务SE80或SE38课程:基本数据类2。使用ABAPPARAMETERS创建下列输入字段计算资产减去负债的值,并以列表形式输出所有参数和计算课程:基本数据类2。使用ABAPPARAMETERS创建下列输入字段计算资产减去负债的值,并以列表形式输出所有参数和计算结果请查看模型解决方案的源代码摘录执行程序并在选择屏幕中输入不同的值(将以列表形式输出)3结源文本摘录:REPORT.resultTYPEpa_lnameTYPEzlastname##,pa_activTYPEpa_liabsTYPESTART-OF-NEW-WRITE:'Client:',pa_fname,result=pa_activ-NEW-WRITE:'Finance:',pa_activ,pa_liabs,参数据类单元字典中的数据对象单元字典中的数据对象课程:基本数据类练习2:简单结构与嵌套结构练习目完成此练习后,您将能够•在字典中创建简单结构和嵌套结构,并在ABAP程序中课程:基本数据类练习2:简单结构与嵌套结构练习目完成此练习后,您将能够•在字典中创建简单结构和嵌套结构,并在ABAP程序中业务示为映射复杂数据结构,您应在字典中为项目建立复任务创建稍后可在ABAP程序中使用的简单结构1。在字典中创建结构ZNAME##,并在该结构中加入下列两种组件。输入2。创建结构ZADRESS##,并输入下列四个组件任务创建嵌套结构,以便随后在ABAP程序中使用12在字典中创建结构ZPERSON##将结构ZADRESSInclude添加中。此将结构ZNAME加入ZPERSON##构,作为组件名为NAME嵌输入ABAP程序ZBC430_##_STRUCT_NESTED。在此程序中,创建ZPERSON##类型的结构化数据对象wa_person)。在该数据对象的组3组组件类描街门牌邮政编码居住组组件类描自名自姓单元字典中的数据对象2单结构与嵌套结构任务创建稍后可在ABAP程序中使用的简单结构1在字典中创建结构ZNAME##,单元字典中的数据对象2单结构与嵌套结构任务创建稍后可在ABAP程序中使用的简单结构1在字典中创建结构ZNAME##,并在该结构中加入下列两种组件。输入启动SE11在数据类型输入字段中输入结构名称。提供简短描述并输入指定的组件。激活结构,使其在全局范围内通用。2创建结ZADRESS##,并输入下列四个组件a)按照练习前面部分的相同方式进行操作任务创建嵌套结构,以便随后在ABAP序中使用1。在字典中创建结构ZPERSON##a)按照练习前面部分的相同方式进行操作组组件类型描街门牌邮政编码居住组组件类型描自名自姓课程:基本数据类2将结构ZADRESS作为Include构添加到ZPERSON##课程:基本数据类2将结构ZADRESS作为Include构添加到ZPERSON##。此外,将结构ZNAME##加入ZPERSON##结构,作为组件名为NAME的嵌a)可通过选择菜单编辑->Include->插入或者在组件列中输入关键字.INCLUDE来添加地址。警告:关键字前面的“.”很重要对于要作为深度结构加入的次级结构,输入任意组件名称(例如“”)。组组件类描地址结构指名称结构单元字典中的数据对象3。输入ABAP程序ZBC430_##_STRUCT_NESTED。在此程序中,创建ZPERSON##类单元字典中的数据对象3。输入ABAP程序ZBC430_##_STRUCT_NESTED。在此程序中,创建ZPERSON##类型的结构化数据对象wa_person)。在该数据对象的组a)请查看模型解决方案的源代码摘录结源文本摘录:REPORT*Replace##byYourgroup-orscreennumber*uncommenttheABAP-DATAwa_personTYPESTART-OF-wa_person-name-firstname=wa_person-name-lastname=wa_person-nr='3'.wa_person-zip='GB-wa_person-city=WRITE:/wa_person-name-firstname,wa_person-name-lastname,wa_person-street,wa_person-nr,wa_person-zipwa_person-city课程:基本数据类3类型(内部表练习目完成此练习课程:基本数据类3类型(内部表练习目完成此练习后,您将能够•创建表类型并ABAP程序中使业务示对于本地数据保持,需要定义可使数据保持排序的任务:基于现有结构创建简单的内部表,以便随后程序中使用1在字典中创建表类ZIT_SFLIGHT##。表类型应该基于数据库表SFLIGHT的行类型,并根据航班日期(FLDATE)排序。输入ABAP程序ZBC430_##_ITAB_SORTED。在该程序中,创建SFLIGHT类型的结构化数据对象wa_sflight为工作区,并基于刚才定义的表类型创建内部表。从SFLIGHT表的工作区中选择航空公司数据(例如JL),并以未排序列表的方式输出该数据。按照以下步骤扩展程序。在列表中插入一行(ABAP命令ULINE)。通过带有“阵列获取SELECT命令将同一数据载入ZIT_SFLIGHT类型的内部表,并使用LOOP命令在同一列表中输23单元字典中的数据对象3类型(内部表任务:基于现有结构创建简单单元字典中的数据对象3类型(内部表任务:基于现有结构创建简单的内部表,以便随后程序中使用1在字典中创建表类型ZIT_SFLIGHT##。表类型应该基于数据库表SFLIGHT的行类型,并根据航班日期(FLDATE)排序。在SAP轻松访问菜单的命令字段中输入se11并确认如果您正处于其它事务中,必须在命令字段中输入/n并确选择数据类型单选按钮。在输入字段中输入表名。在随后出现的对话框中,选择表类型指定一个简短描述,并在行类型字段中输入数据库表的名称。切换至初始化与访问标签页,选择排序表作为访问类型。切换至关键字标签页,选择非唯一作为关键字类型键组件。将此表激活b)c)d)e)f)g)2输入ABAP程序ZBC430_##_ITAB_SORTED。在该程序中,创建SFLIGHT类型的结构化数据对象wa_sflight为工作区,并基于刚才定义的表类型创建内部表。从SFLIGHT表的工作区中选择航空公司数据(例如JL),并以未排序列表的方式输出该数据。a)请查看模型解决方案的源代码摘录按照以下步骤扩展程序。在列表中插入一行(ABAP命令ULINE)。通过带有“阵列获取SELECT命令将同一数据载入ZIT_SFLIGHT类型的内部表,并使用LOOP命令在同一列表中输a)请查看模型解决方案的源代码摘录3结源文本摘录:REPORT课程基本数据类**uncommenttheABAP-DATA课程基本数据类**uncommenttheABAP-DATAit_flightTYPEDATAwa_sflightTYPEWRITE/'PrintoutintableorderofINTOwa_sflightWHEREcarrid=INTOTABLEit_flightWHEREcarrid='JL'.WRITE/'PrintoutintableorderofsortedWRITE:/wa_sflight-carrid,wa_sflight-单元字典中的数据对象单元字典中的数据对象课程:基本数据类练习4:深度结练习目完成此练习后,您课程:基本数据类练习4:深度结练习目完成此练习后,您将能够•创建深度结构并在ABAP程序中使用业务示扩展项目团队的人员数据结构,使其能够容纳一个任意长度的员工电话列表。任务:创建基于数据对象的内部表,以便在结构中能够输入该表。在ABAP程序中使用该表。1在字典中为标准表ZIT_PHONE_NUMBER创建表类型。该表类型应基于现有结构STR_PHONE的行类型。在字典中扩展现有结构ZPERSON##。新组件应命名为PHONE并基于内部表ZIT_PHONE_NUMBER##。创建ABAP程序ZBC430_##_STRUCT_DEEP。为此,需要复制程序ZBC430_##_STRUCT_NESTED或模型模板SAPBC430S_STRUCT_NESTED的解决方案。在程序STR_PHONE类型的结构化数据对象(wa_phone)增加一个工作区请按照以下步骤扩展程序:在结构化数据对象wa_person中插入三个电话号码,并使用234命令在同一列表中输出这些数单元字典中的数据对象解答4:深度结任务:创建基于数据对象的内部表,以便在结构中能够输单元字典中的数据对象解答4:深度结任务:创建基于数据对象的内部表,以便在结构中能够输入该表。在ABAP程序中使用该表。1在字典中为标准表ZIT_PHONE_NUMBER创建表类型。该表类型应基于现有结构STR_PHONE的行类型。在SAP松访问的命令字段中输入se11如果您正处于其它事务中,必须在命令字段中输入/n并确认选择数据类型单选按钮。在输入字段中输入表名。在随后出现的对话框中,选择表类型提供简短描述,并在行类型字段输入结构名称切换至初始化与访问标签页,选择标准表作为访问类型。切换至关键字标签页,选择非唯一作为关键字类型。现在选择标准关键字作为b)c)d)e)f)g)2在字典中扩展现有结构ZPERSON##。新组件应命名为PHONE并基于内部表ZIT_PHONE_NUMBER##。a)在结构中输入名称为“Phone”的新组件,并将新创建的表类型指定为组件类型。3创建ABAP程序ZBC430_##_STRUCT_DEEP。为此,需要复制程序ZBC430_##_STRUCT_NESTED或模型模SAPBC430S_STRUCT_NESTED的解决方案。在程序中,为STR_PHONE类型的结构化数据对象(wa_phone)增加一个工作区。a)请查看模型解决方案的源代码摘录。请按照以下步骤扩展程序:4组组件类描地址结指名称结指电话课程:基本数据类在结构化数据对象wa_person中插入三个电话号码,并使用课程:基本数据类在结构化数据对象wa_person中插入三个电话号码,并使用LOOP命令在同一列表中输出这些数a)请查看模型解决方案的源代码摘录结源文本摘录:REPORTDATAwa_personTYPESTART-OF-wa_person-name-lastname='Potter'.wa_person-nr='3'.wa_person-zip='GB-wa_phone-p_type=wa_phone-p_number='+31-10-INSERTwa_phoneINTOTABLEwa_person-wa_phone-p_type=wa_phone-p_number='+31-10-INSERTwa_phoneINTOTABLEwa_person-wa_phone-p_type=wa_phone-p_number='+31-79-INSERTwa_phoneINTOTABLEwa_person-*WriteonWRITE:/wa_person-name-firstname,wa_person-name-lastname,wa_person-street,wa_person-nrwa_person-zip,wa_person-city单元字典中的数据对象WRITE:/'Phone-单元字典中的数据对象WRITE:/'Phone-WRITE:AT20wa_phone-p_type,wa_phone-课程:基本数据类课程摘您现在应该能够:•••••课程:基本数据类课程摘您现在应该能够:•••••创建域,并在数据元素中进行使定义数据元素,并将其作为基础定义ABAP序的数据对象定义结构,并将其作为基础定义ABAP程序的数据对象定义内部表,并将其作为基础定义ABAP程序的数据对定义复杂(嵌套/深度)结构,并将其作为基础定义据对象程序的•通过类型池定义全局常量,并程序中使单元2:字典中的数据对象课程:ABAP字典中的课程概述课程目标完成本课程后,您将单元2:字典中的数据对象课程:ABAP字典中的课程概述课程目标完成本课程后,您将能够:••••创建使用二级域概念定义表的技术设置创建并使Include业务示例您应该为公司在数据库中映射信息单元,即所谓的实表图16:表与字段应用程序开发的对象结构在基础关系数据库的表中进行映这些对象的属性对应于表字段。课程:ABAP字典中的表表由列(字段)和行(条目)组成。每个表都有一个名称和多种不同的常规属性,例如提交类和维护授权。每个字段都有唯一的名称和属性;例如,它可以是关键字字段。每个表都有一个或多个关键字字段,称为主键。这些关键字课程:ABAP字典中的表表由列(字段)和行(条目)组成。每个表都有一个名称和多种不同的常规属性,例如提交类和维护授权。每个字段都有唯一的名称和属性;例如,它可以是关键字字段。每个表都有一个或多个关键字字段,称为主键。这些关键字字段的值可唯一标识一个表条目您必须为包含货币(数据类型CURR)或数量(数据类型QUAN)的字段指定参考表。表中必须包含带有货币代码格式(数据类型CUKY)或单位格式(数据类型UNIT)的字段(参考字段)。该字段只分配给程序运行时的参考字段。图表17:ABAP字典的基本对在P字典中用于定义数据的基本对象为表、数据元素和域。域用于表格字段的技术定义(例如,字段类型和长度),而数据元素用于语义定义(例如简短描述)。域可根据字段的数据类型和长度描述其值范围。值范围可通过指定的定值进行限制。数据元素可描述域在特定业务环境下的含义。数据元素主要包含字段(F1档)和屏幕上的字段标签字段不是独立的对象,而是与表相关。字段只能在表中进行维您可以直接输入字段的数据类型和位数。这种情况下不需要数据元素,而是通过指定直接类型来定义数据类型和位数。通过指定内置类型也能定义数据元素的数据类型属性,其中可直接输入数据类型和位数。单元字典中的数据对象图表18:二级域概念:示航班时刻表存储SPFLI。单元字典中的数据对象图表18:二级域概念:示航班时刻表存储SPFLI。表AIRPFROM(始发机场)和(到达机场)具有相同的域S_AIRPID。这两个字段之所以使用相同的域,是因为两者都包含机场ID,所以有相同的技术属性。但是,它们的语义含义不同,并且使用不同的数据元素进行记录。字使数据元S_FROMAIRP,字使用数S_TOAIRP19:透明表与结在ABAP字典中激活透明表时,数据库中将自动创建透明表。此时,ABAP字典中对表所作的独立于数据库的描述将被转换成数据库系统所用的语言。课程:ABAP字典中的表数据库表与ABAP典中的课程:ABAP字典中的表数据库表与ABAP典中的表具有相同的名称。字段在数据库与ABAP典中也有相同的名称。ABAP字典中的数据类型可转换成数据库系统的相应数据类型。ABAP字典中的字段顺序可以异于数据库中字段的顺序。这使得无须转换表,就能插入新字段。在添加新字段时,可通过更改数据库类别(ALTERTABLE)来调整字段顺序。在数据库表中添加新字段。ABAP程序可通过两种方式访问透明表。一种方式是通过OPENSQL(或EXECSQL)访问表数据。另一种方式是由表定义一种结构化类型,用于在您也可以在ABAP典中创建数据库中没有相应对象的结构化类型。这样图表20:Include结结构可以包含在表或其它结构中,以避免出现冗余结构定义。表只能以整体形式包含在内。一条Include可能仅包含一张数据库表。要包含在内的表属于Include中可能包含其它Include外键定义通常由Include递至包含表。外键定义的属性由Include递至包含表,因此外键与Include中的定义相关。单元字典中的数据对象图表21:技术设置在ABAP字单元字典中的数据对象图表21:技术设置在ABAP字典中定义透明表时,必须维护技术设置。技术设置用于定义表在数据库中创建后的处理方式、表是否需要缓冲以及是否应记录条目更改。在P字典中激活表时,数据库中将自动创建此表。此处所需的关于要选择的存储区域(表空间)以及预期表大小的信息,由数据类和大小范畴的设置决定。课程字典中的图表22:断裂的数据库由于数据集的快速增长或频繁更改(插入和删除数据记录),包含事务数据的表在分配的内存空间上可能有很大差异。数据库服务器硬盘上的数据碎片始终会反复导致性能问题,碎片课程字典中的图表22:断裂的数据库由于数据集的快速增长或频繁更改(插入和删除数据记录),包含事务数据的表在分配的内存空间上可能有很大差异。数据库服务器硬盘上的数据碎片始终会反复导致性能问题,碎片无法通过创建索引之类的简单方法移除。断裂的索引可通过简单的删除以及重新输入操作进行整理。此时,数据库将重新计算索引的内容和结构,并尽可能在存储介质上创建连续的内存空间。在重新构建索引时,数据库表仍可使用。警告:如果索引来源于较大的表(小于10条数据记录),创建过程可能耗费几分钟甚至几小时(对于W环境中的表)且在重建索引的过程中,无法使用索引访问数据库,这可能导致从各表中读取数据记录时,数据库的负载增加(全表扫描)。断裂的表必须进行转换(请参阅“数据库表的更改”),以减少碎片。为此,P系统将创建一张新表,并将数据转移至这张表中。然后删除旧表,由新表取代。如果此表的增长速度超出预期,则应在转换技术设置之前再次检查此表,如有必要再进行调整。警告:在转换过程中,无法读取或更改表内容。执行表的转换流程时必须注意效率而且保持极其认真的态度,因为根据表的规模,转换过程可能持续几分钟或几个小时。=>因此这种转换流程(表或索引)应在负载最小的时间段进行单元字典中的数据对象为了从一开始就尽量避免产生这种碎片,应该根据技术设置中的大小和数据类型选择表。图表23:数据类数据类从逻辑单元字典中的数据对象为了从一开始就尽量避免产生这种碎片,应该根据技术设置中的大小和数据类型选择表。图表23:数据类数据类从逻辑上定义表在数据库中存储的物理范围(ORACLE是空间)。如果正确地选择了数据类,在ABAP典中激活表时,将自动在数据库的正确区域内创建该表。最重要的数据类是主数据、事务数据、结构数据和系统数据主数据是指很少修改的数据。主数据的示例之一是地址文件的数据,例如姓名、地址和电话号码。事务数据是指频繁修改的数据。例如,可以在每个采购订单之后进行更改的仓库物料库存。结构数据是指安装系统时在定制过程中定义且之后很少修改的数据。例如国家代码。系统数据是指SAP系统自身需要的数据。例如程序源代码其它数据类专为客户提供,称为客户数据类(SR、1)。这种数据类应用于客户开发。必须为其在数据库中分配专门的存储区域。课程字典中的图表24:大小课程字典中的图表24:大小范畴大小范畴可以描述表在数据库中的预期存储需在数据库中创建表时,将预留一个初始范围。所有大小范畴的初始范围大小均相同。如果以后表需要更多数据空间,则可以扩展范围。这些附加范围具有固定的大小,由BP字典中指定的大小范畴决定。大小范畴的选择范围是从04。每个范畴均分配有一个固定的范围,大小取决于所用的数据库系统。大小范畴的正确分配能确保您不会创建大量范围过小的表。这样也能防止由于创建的范围太大而浪费存储空间。单元字典中的数据对象图表25:日可使用日志记录并存储表条目的修改要激活单元字典中的数据对象图表25:日可使用日志记录并存储表条目的修改要激活日志,必须在技术设置中选择相应字段。但是SAP统过带有´rec/client参数的参数文件启动时,才能启用日志。只在字典中选择标识不足以触发日志。“rec/client”参数的设置如下:==记录所有客户端仅记录指定的客户端在本系统中取消激活日志数据修改的记录独立于更新。可使用表格历史记录事显示日志警告:日志在系统中会造成瓶颈••每个表修改在记录时,都会产生额外的写访虽然用户访问的是不同的应用程序表,但仍然会导致锁课程:ABAP字典中的表小•所有面向业务课程:ABAP字典中的表小•所有面向业务的数据均以表的形式进行管理,表的定义存储于字典中定义表时应用二级域概念。语义定义通过数据元素实现,技术定义通过域实现。Include结构的字段可包含在表中。表的技术设置可定义表在数据库中的存储情况(表空间、范围大小)以及是否应记录数据记录的更改。•••单元字典中的数据对象单元字典中的数据对象课程:ABAP字典中的表练习5:ABAP字典中的练习目完成此练习后,您将能够••••创建表并使用二级域课程:ABAP字典中的表练习5:ABAP字典中的练习目完成此练习后,您将能够••••创建表并使用二级域概念合理定义技术设置记录字创建并使用Include业务示本练习将使用员工管理功能来强化航班模型表。航空公司能够通过员工管理功能输入并评估其员工数据(例如,姓名、人员编号、薪金、部门等)以及组织机构内的分配数据(航空公司部门)。在本练习中,将分别为员工数据和航空公司部门创建一张员工数据在ZEMPLOY##表中维护。员工的姓名和地址及其薪金存储在ZEMPLOY##中。ZDEPMENT##包含航空公司的部门数据。每个部门均有任务创建两张透明表ZEMPLOY##和ZDEPMENT##。定义其关键字字段注意:在激活这两张表之前,还必须定义它们的技术设置。技术设置过程将在练习的最后一批任务中进行描述。无需激活表也能执行第一批任务。表中将维护三家航空公司的数据。每家航空公司有20,000名员工,以及1030部门。请不要对数据进行缓冲或记录。缓冲将1。创建表ZEMPLOY#选择菜单路径工具→ABAPABAP字典,可以进入ABAP字典的概览屏幕。表字数据元域型、长度含客承运单元字典中的数据对象2创建表ZDEPMENT选择菜单路径工具ABAPABAP字典以进入ABAP字典的概览屏幕。表记录字段人员编号和部门代码要激活此表,现在必须进行技术设置,如果表中有金额字段,则还需分配货币字段。34字数据域型、长度描客航空公自自部门代单元字典中的数据对象2创建表ZDEPMENT选择菜单路径工具ABAPABAP字典以进入ABAP字典的概览屏幕。表记录字段人员编号和部门代码要激活此表,现在必须进行技术设置,如果表中有金额字段,则还需分配货币字段。34字数据域型、长度描客航空公自自部门代自电自传字数据元域型、长度含自自人员编名姓自自部门代自自范自自CURR10薪货课程:ABAP字典中的表任务通过使用子结构ZCHANGE##在这两张表中添加字段,可确保课程:ABAP字典中的表任务通过使用子结构ZCHANGE##在这两张表中添加字段,可确保在其中使用相同的字段记录更改。注意:表ZEMPLOY##和ZDEPMENT##的更改很关键,因此必须进ZEMPLOY##和ZDEPMENT##中附加字段,记录上次更改表条目的在实际应用中,上述增强措施始终会导致这两张表的标准表维护处于取消激活状态。请为表创建自有维护事务,由程序从内部自动填充更改日志字段,而不是由用户直接填充。创建此类事务的相关内容已超出本课程的范围。因此,在本课程中,我们假定所有用户自己在标准表维护例程中正确地填充字段。构 ZCHANG##使用人员编号所用的域,为上建新数据元素。使用S_CHDATE作为上次更改日期的数据元素。ZCHANGEInclude入ZEMPLOYZDEPMENT。了解数据库中已执行的操作。在事务SE38中启动程序BC430_CHECK1234注意:程序BC430_CHECK将检查您的解决方案是否正确并使用后面练习中需要的样本数据填充新ZDEPMENT##和单元字典中的数据对象ABAP字典中的表解答任务创建两张透明ZEMPLOYZDEPMENT##。定义其关键字字注意在激活这两张表之前,还必须定义它们的技术设置。设置过程将在练习的最后一批任务中进行描述。无需激活表也能执行第一批任务。表中将维护三家航空公司的数据。每家单元字典中的数据对象ABAP字典中的表解答任务创建两张透明ZEMPLOYZDEPMENT##。定义其关键字字注意在激活这两张表之前,还必须定义它们的技术设置。设置过程将在练习的最后一批任务中进行描述。无需激活表也能执行第一批任务。表中将维护三家航空公司的数据。每家航空公司有20,000名员工,以及10到30个部门。请不要对数据进行缓冲或记录。缓冲1创建表ZEMPLOY选择菜单路径工具→ABAP以进入ABAP字典的概览屏幕。→字典表 标记数据库表并在相应输入字段输入创建。在表的维护屏幕上输ZEMPLOY##。选字数据元域型、长度含客承运自自人员编名姓自自部门代自自范自自CURR10薪货课程:ABAP字典中的表选择提交类A并标记允许表维护现在选中标签页字段,进入字段定义的维护屏幕。输入字段名称(无需位于客户命名空间中)。对字段客户、承运人、名字、姓氏和货币,通过在字段类型中输入数据元素名称来使用给定的数据元素。保存输入内容。为字段课程:ABAP字典中的表选择提交类A并标记允许表维护现在选中标签页字段,进入字段定义的维护屏幕。输入字段名称(无需位于客户命名空间中)。对字段客户、承运人、名字、姓氏和货币,通过在字段类型中输入数据元素名称来使用给定的数据元素。保存输入内容。为字段人员编号、部门代码、范围和薪金创建自有数据元素。在字段类型列中,为数据元素输入名称obt)。选择数据元素名称。数据元素定义出现。输入短文本(F1 帮助的组件)。现在选中标签页字存储字段标签的文本。您还必须为数据元素分配技术描述(域)。选中标签页定义,并为域输入名称obc)。如果域是预定义的,则激活数据元素并返回(使用3)表格字段的维护屏幕。否则,请选择域名。域定义出现。在域定义中定义简短描述、数据类型(NUMC、CHARCURR)和字段长度。激活域。返回上一屏(使F)的数据元素定义,并激活数据元素再返回上一屏的字段定义。从e)开始重复操作,直到所有为薪金字段定义参考表和参考字段。选择字段名称并在下一个对话框中输入下列内容:通过标记字段名称后的关键字列,定义ZEMPLOY##表的关键字字段。字段客户、承运人和人员编号可以唯一标识一个条目。注意:关键字字段客户、承运人和人员编号必须以此顺激活ZEMPLOY##表。技术设置的维护屏幕自动出注意由于表期记ZEMPLOY内容不会频繁更改,所以必APPLO(主数据)。ZEMPLOY##表的预60,000,因此必须选择大小范畴2。此外,不应对该表进行缓冲或记录字值单元字典中的数据对象表(F3)。该表随即激活创建表ZDEPMENT##。选择菜单路径工具→ABAP以进入ABAP字典的概览屏幕。2ABAP字典表标记数据库表单元字典中的数据对象表(F3)。该表随即激活创建表ZDEPMENT##。选择菜单路径工具→ABAP以进入ABAP字典的概览屏幕。2ABAP字典表标记数据库表,并在相应的输入字段中输入表ZDEPMENT##。选择创建。在表的维护屏幕上输入短选择提交类A并选择允许表维护现在选中标签页字段,进入字段定义的维护屏幕。输入字段名称(无需位于客户命名空间中)。对于字段客户和承运人,通过在字段类型列中输入数据元素名称来使用给定数据。保存输入内容。对于字段部门代码、电话号码和传真号码,应创建自有数据元素。在字段类型列中,为数据元素输入名称<jec##)。选择数据元素名称。数据元素定义出现。输入短文本(F1 帮助的组件)。现在选中标签页字储字段标签的文本。字数据域型、长度描客航空公自自部门代自电自传APPL0(主数据2缓日课程:ABAP字典中的表您还必须为数据元素分配技术描述(域)。选中标签页定义,并为域输入名称obj>##)。或者选择域名。域定义出现。注意:如果域是预定义的,则激活课程:ABAP字典中的表您还必须为数据元素分配技术描述(域)。选中标签页定义,并为域输入名称obj>##)。或者选择域名。域定义出现。注意:如果域是预定义的,则激活数据元素并返回(使用F3)表格字段的维护屏幕。在域定义中定义简短描述、数据类型(CHAR)和字段长(30)。激活域返回上一屏(使用F3)的数据元素定义,并激活数据元素。保存表。通过标记字段名称后的关键字ZDEPMENT##的关键字段。字段客户、承运人和部门代码可以唯一标识一个条目。因此,必须将它们标记为关键字字段。激活表并定义技术设置:由于表ZDEPMENT##的内容不会频繁更改,所以必须选择数据类APPL0(主数据)。ZDEPMENT##表的预期记录数量是90,因此必须选择大小范畴0。此外,不应对该表进行缓冲或记录。表3。记录字段人员编号和部门代码双击数据元素,进入数据元素定义。使用显示至“更改”模式。选择转到→文档。为字段输入文本并保存输入内容。更改字值APPL0(主数据0缓日单元字典中的数据对象4。激活此表,现在必须进行技术设置,单元字典中的数据对象4。激活此表,现在必须进行技术设置,如果表中有金额字段,则还需分配货币字段。单击您还必须为金额字段(例如SALARY)分配货币字段。为此,请在“参考表”字段中输入当在“参考”字段中,输入货币所使用的字段名a)b)任务通过使用子结构ZCHANGE##在这两张表中添加字段,可确保在其中使用相同的字段记录更改。注意:表ZEMPLOY##和ZDEPMENT##更改很关键,因此必须进ZEMPLOY##和ZDEPMENT##中附加字段,记录上次更改表条目的人员编号以及上次输入日期。在实际应用中,上述增强措施始终会导致这两张表的标准表维护处于取消激活状态。请为表创建自有维护事务,由程序从内部自动填充更改日志字段,而不是由用户直接填充。创建此类事务的相关内容已超出本课程的范围。因此,在本课程中,我们假定所有用户自己在标准表维护例程中正确地填充字段。构 ZCHANG##使用人员编号所用的域,为上建新数据元素。使用S_CHDATE作为上次更改日期的数据元素。1ABAP典的初始屏幕中,标记数据类型并在相应字段中输入ZCHANGE##。选择创建。在下一个对话框中标记结构在组件列中输入字段名称,在组件类型列中输入相应的数据元素。为第一个字段创建自有数据元素。使用在ZEMPLOY##表中为人员编号和更改日期分别创建一个字段。为第二个字段使用数据元素S_CHDTE。激活结ZCHANGE课程:ABAP字典中的表2ZCHANGEIncludeZEMPLOYZDEPMENTa)转到表ZEMPLOY##的维护屏幕。选择新行并将光标置于第一个新字段中。选择课程:ABAP字典中的表2ZCHANGEIncludeZEMPLOYZDEPMENTa)转到表ZEMPLOY##的维护屏幕。选择新行并将光标置于第一个新字段中。选择编辑→ncue→插入。在下一个对话框中,输入名 b)c)并选择继续激活ZEMPLOY##表。进行相同的输入操作,在表中插入子ZCHANGE#3了解数据库中已执行的操作。a)通过选择实用程序→激活日志,可显示数据库中已执行的在事务SE38中启动程序BC430_CHECK4注意:程序BC430_CHECK将检查您的解决方案是否正确,并使用后面练习中需要的样本数据填充新表ZEMPLOY##和通过输入字段启动事SE38。启动程BC430_CHECK单元字典中的数据对象课程摘要您现在应该能够:••••创建单元字典中的数据对象课程摘要您现在应该能够:••••创建使用二级域概念定义表的技术设创建并使结课程特殊表课程特殊的SAP课程概您将学习表池中的表以及簇课程特殊表课程特殊的SAP课程概您将学习表池中的表以及簇课程目完成本课程后,您将能够•••描述SAP透明表之外的表类型区分表池中的表和簇表描述表池中的表和簇表的优势与劣势业务示在某些应用程序的性能检查中,您会发现某些选择语句在数据库中访表似乎并不是在各自编码中参考的表表池中的表与簇表图表26:数据库表类型概单元字典中的数据对象透明表在ABAP典与数据单元字典中的数据对象透明表在ABAP典与数据库中的定义完全相同,除透明表之外,R/3统中还有表池中的表以及簇表。表池中的表和簇表的特征是:多个表在物理数据库表(表池或簇)中进行合并字典中进行逻辑图表27:簇簇表的理念是在一张数据库表中存储位于不同表中的功能相关的数据。相应地,簇表关键字字段的交集由表簇的关键字(簇键)构成。与簇键相关的数据存储在表簇的AA字段中。如果RA字段无法容纳所有相关数据,则数据库接口将创建溢出记录。表簇内的唯一性由O字段保证。数据库接口会压缩VARDATA段的内容。因此,VARDATA段包含有关如何解压数据的描述。TIMESTAMP和PAGELG字段包含管理信息。课程特殊表图表28:表池中的表池的基本理课程特殊表图表28:表池中的表池的基本理念与表簇相反,是用于存储来自ABAP典中定义的表而且彼此不相关的数据记录。您希望将较小的R/3表与数据库表合并。在上面的示例中,可以发现TABATABB键字段的交集为空。尽管如此,TABA和TABB的数据记录仍存储在TABAB表池中。TABAB表池的数据记录的关键字由TABNAME和VARKEY两个字段组成。TABNAME段存放表池中的表名。VARKEY段由表池中表的关键字字段的连接组成。因此,表池中表的关键字字段必须为C类型。表池中表的非关键字段以非结构化形式存储字段中,并由据库接口进行压缩。字段包字段的长度单元字典中的数据对象图表29:描述表池单元字典中的数据对象图表29:描述表池中的表和簇表的优势与劣表池中的表和簇表的明显优势是数据能以压缩形式存储在数据库中。这将减少所需的内存空间以及网络负载。味着可以减少数据库中的字段数量。因此,需要执行的不同SQL语句的数量也随之减少。表池中的表和簇表不是以单个表的形式存储在数据库中。这种方式可以简化管理。可使用簇表同时读取功能相关的数据,从而可以减少数据库的访问量。这两种表的明显劣势表现在数据库功能的限制方面。无法为非关键字字段创建索引。关键字字段的子集中没有主索引和索引。也不允许使用数据库概览或BPN,以及beAd。只能通过NSL(非本地QL)访问表池中的表或簇表的数据。对于表池中的表,只有关键字字段的WHERE条件才能传输至数据库;对于簇表,只有簇键(关键字字段的子集)字段的WHERE条件才能传输至数据库。但无法传输非关键字字段的ORDERBY(或GROUPBY)子句。您需要为课程特殊SAP表课程摘您现课程特殊SAP表课程摘您现在应该能够:•••描述SAP透明表之外的表类型区分表池中的表和簇表描述表池中的表和簇表的优势与劣势单元摘要单元摘要您现在应该能够:•••••创建域,并在数据单元摘要单元摘要您现在应该能够:•••••创建域,并在数据元素中进行使定义数据元素,并将其作为基础定义ABAP序的数据对象定义结构,并将其作为基础定义ABAP程序的数据对象定义内部表,并将其作为基础定义ABAP程序的数据对定义复杂(嵌套/深度)结构,并将其作为基础定义据对象通过类型池定义全局常量,并在ABAP序中使用使用二级域概念定义表的技术设置创建并使Include描述SAP统中除透明表之外的表类型区分表池中的表和簇表描述表池中的表和簇表的优势与劣势程序的••••••••单3表访问期间的性能单元概您将在本章单3表访问期间的性能单元概您将在本章了解关于高效表访问的基本情况单元目完成本单元后,您将能够•••••在ABAP字典中创建索引解释各种缓冲类型判断何时有必要对表进行缓冲以及应选择何种缓冲类使用技术设置对表进单元目课程:表访问期间的性 练表访问单元3:表访问期课程:表访问期间的性课程概述课程目标完成本课程单元3:表访问期课程:表访问期间的性课程概述课程目标完成本课程后,您将能够:•••••在ABAP字典中创建索引解释各种缓冲类型判断何时有必要对表进行缓冲以及应选择何种缓冲类型使用技术设置对表进行缓冲业务示例某些事务的应用程序中包含选择语句,这将导致运行时间过长。现在,您应该在不更改程序的情况下提高性能。通过索引访问提高性能图表30:索引结构索引可用于加快从表中选择数据记录的速度课程:表访问期间的性能索引可视为仅包含特定字段的数据库表的简化副本。数据以排序形式存储在该副本中,且排序有助于快速访问表记录(例如使用二分检索)。索引中并不包含表的全部字段。索引还包括从索引条目指向相应表条目的指针,以便读取所有字段内容。•创建课程:表访问期间的性能索引可视为仅包含特定字段的数据库表的简化副本。数据以排序形式存储在该副本中,且排序有助于快速访问表记录(例如使用二分检索)。索引中并不包含表的全部字段。索引还包括从索引条目指向相应表条目的指针,以便读取所有字段内容。•创建索引时,请注意:–索引的使用范围不得超出选择中的最后一个指定字段!在子句中为大量选择指定的字段应放在第一只有当某字段的值可以极大地限制数据量时,该字段才在索引中有效。更改表的数据记录时,必须调整索引排序。内容频繁更改的表不应具有过多的索引。请尽量确保表索引彼此互不相关。–––图表31:通过索引进行访数据库优化器可决定数据库应使用哪个表索引来访问数据记您必须区分表的主索引和辅助索引。主索引包含表的关键字字段。表在激活时,将在数据库中自动创建主索引。如果某大型表需要频繁访问,但无法应用主索引排序,则应该为该表创建辅助索引。表索引包含一个三位数的索引ID。0为主索引预留。客户可以在SAP中创建自己的索引,其ID必须以Y或Z开头。如果索引字段含有关键字功能,例如可唯一标识各个表记录,则该索引可称为唯一索引。这样可确保数据库中没有重复的索引字段。单3:表访问期间的在P字典中定义辅助索引时,可以指定在其激活的同时是否应该在数据库中创建。某些索引只能提高特定数据库系统的性能。因此,可以在定义索引时指定一个数据库系统列表。这样在激活索引时,就只能在单3:表访问期间的在P字典中定义辅助索引时,可以指定在其激活的同时是否应该在数据库中创建。某些索引只能提高特定数据库系统的性能。因此,可以在定义索引时指定一个数据库系统列表。这样在激活索引时,就只能在指定的数据库系统中创建索引。通过表缓冲提高性能32:利用缓冲区访问数表缓冲可提高表记录的读取性能。在访问某表时,将从访问事务所运行的应用程序服务器上的本地缓冲区中直接读取缓冲表记录。这样可以缩短数据库访问时间。访问速度可提高10到0倍,具体取决于表的结构和确切的系统配置。因此,缓冲可以极大地提高系统性能。如果缓冲区的存储需求随着数据增加而提高,则未访问时间最长的数据将被置换。置换以异步方式在某些时间进行,这根据缓冲区访问动态确定。仅当缓冲区的可用空间小于预定义值,或者访问质量不符合要求时,才会对数据进行置换。在命令字段中输入B时,系统会在相应的应用程序服务器上重置表缓冲区。仅当缓冲区中存在不一致的情况时,才使用此命令。在大型系统中,可能需要数小时才能填满缓冲区。系统性能在此期间将显著降低。课程:表访问期间的性能在访问某个表记录时,缓冲类型可确定将哪些表记录加载至应用程序服务器的缓冲区。缓冲类型如下:••全缓冲:课程:表访问期间的性能在访问某个表记录时,缓冲类型可确定将哪些表记录加载至应用程序服务器的缓冲区。缓冲类型如下:••全缓冲:访问表记录时,将所有表记录加载至缓冲通用缓冲:访问表记录时,将关键字左对齐部分相同的所有记录加载至缓冲区。单个记录缓冲:仅将曾经访问的记录加载至缓冲区•图表33:全缓冲对于全缓冲,表要么完全位于缓冲区中,要么完全不在缓冲区中。访问表记录时,所有表记录都将加载至缓冲区。在确定是否要对某个表

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论