SAP指定的用户接口控件开发了许多Web应用程序的UI元素。这确保用户将看到一个标准的屏幕,然而并非所有的UI元素显示在相同的格式中,这意味着某些动态编程是必需的。
一般规则是,以CL_WD_或IF_WD_作为头字母的类和接口已经为应用程序开发人员发布。
注:以CL_WDR_或IF_WDR_开始的类和接口尚未释放。这些类不包含在接口包中,它们可以更改,SAP不另行通知。此外,使用这些内部类的方法调用有可能会产生副作用。
以下的编程接口支持应用程序开发人员进行动态编程:运行时APIs、Context节点 APIs个性化APIs、门户集成APIs。
1.运行时APIs
(1)IF_WD_ACTION
IF_WD_ACTION接口使程序员能够访问控制器的Action的信息。
一个UI元素可以绑定到一个动作Action。它是由一个特定的UI元素触发事件发生时执行的动作。如果事件发生时,则在相应的视图控制器实现的事件处理程序被调用。接口属性见表A-1。
1)属性Attributes:
表 A-1
2)方法SET。
此方法设置动作的属性。可设定以下可选参数。
● ENABLED:确定Action是否有效或无效。
● VALIDATING:确定Action是进行验证或不验证
● IMAGE:确定Action图标Image的URL地址。
● TEXT:确定Action的文本标示。
2)IF_WD_APPLICATION
IF_WD_APPLICATION接口可以访问整个Web Dynpro应用中有效的数据。
方法:
1)GET_APPLICATION_INFO:返回应用程序的元数据描述的方法。结果是一个IF_WD_ RR_APPLICATION类型的对象。
2)GET_IS_RTL:用于取得该应用程序的文本显示格式是否被切换到从右到左(RTL)的格式。
注:RTL是来自中东的语言的文字方向。例如,希伯来文和阿拉伯文是从右到左。从右到左(RTL)的反面是从左到右(LTR),这是正常的印欧语系语顺。然而,在RTL语言中,数字(如电话号码或邮政编码)和适当的名称都是从左到右写。因此,在RTL语言中往往是LTR语言和部分LTR句子混合的RTL文本。
Web Dynpro编程模型支持RTL概念。应用程序开发人员应注意以下几点去使用完整的RTL设置:
① 确保帧(Frame)出现在正确的顺序,即相比LTR帧的顺序,RTL正好相反:
● 菜单和内容列表一般设为RTL。
● 实际的内容一般设为LTR。
② 如果需要,则可以创建图片RTL版本,并确保RTL版本的图像在应用程序中使用。
● GET_IS_ACCESSIBLE:用于取得数据可访问的模式是否被激活。
● OPEN_HELP_CENTER:用于打开帮助中心。
● GET_REMOTE_ADDRESS:取得当前调用程序的IP地址。
● GET_CLIENT_ENVIRONMENT:返回应用程序运行中客户端环境。例如,客户端环境的
门户网站或SAP NetWeaver业务客户端。可以从CO_CLIENT_ENVIRONMENT常数值
得到。
● GET_CONFIGURATION_ID:用于取得正在运行的应用程序的配置ID。
● GET_IS_CLOSE_WINDOW_SUPPORTED:用于返回关闭一个窗口是否是可能的。
(3)IF_WD_COMPONENT
IF_WD_CONTROLLER接口使程序员可以访问活动的Web Dynpro组件的信息。接口被类CL_WDR_COMPONENT实例化。该类是所有的Web Dynpro组件的基类。
在Web Dynpro组件中下面的方法调用返回一个类型为IF_WD_COMPONENT的组件控制器对象:
方法:
1)GET_ID:用来返回一个唯一的组件ID。
2)REMOVE_PENDING_INPUT:用来清空尚未被传送到Context中的用户输入。
3)GET_WINDOW_MANAGER:用来得到的窗体控制器。结果是一个类型为IF_WD_ WINDOW_MANAGER的对象。
4)GET_COMPONENT_INFO:用来返回组件的元数据(Metadata)描述。结果是一个类型为IF_WD_RR_COMPONENT的对象。 5)GET_PORTAL_MANAGER:用来取得门户网站管理器的一个引用。结果是一个类型为IF_WD_PORTAL_ INTEGRATION的对象。 6)GET_CONFIGURATION_KEY:取得当前的配置密钥(或被设置为初始值)的方法。 7)ADD_EVENT_HANDLER:注册事件的事件处理程序的方法。 8)REMOVE_EVENT_HANDLER:注销事件的事件处理程序的方法。 9)CANCEL_NAVIGATION:禁止整个应用程序的导航的方法。 10)GET_PERSONALIZATION_MANAGER:该方法得到一个个性化管理器的引用。结果是一个类型为IF_WD_PERSONALIZATION的对象。 11)GET_APPLICATION:得到一个应用程序对象的引用。结果是一个类型为IF_WD_APPLICATION的对象。 12)GET_CMP_USAGE_GROUP:得到一个引用的组件的使用组中。结果是一个类型IF_WD_COMPONENT_USAGE_ GROUP对象。 13)CREATE_CMP_USAGE_GROUP:创建一个组件的使用组。结果是一个类型IF_WD_COMPONENT_USAGE_GROUP的对象。 14)HAS_CMP_USAGE_GROUP:确定组件是否存在使用组。 (4)IF_WD_COMPONENT_USAGE IF_WD_COMPONENT_USAGE接口使程序员访问方法用于操作(外部)的Web Dynpro组件的使用组件。 为了使用一个不同的Web Dynpro组件,必须维护组件本身的属性,以及想要访问的组件的属性。下面的方法调用后在该控制器中返回一个类型为IF_WD_COMPONENT_USAGE的对象。
方法:
1)CREATE_COMPONENT:该方法在组件使用的点上用于创建Web Dynpro组件。如果一个激活的组件实例已经存在用于该组件的使用,调用该方法时会发生运行时错误。出于这个原因,在调用该方法之前使用方法HAS_ACTIVE_COMPONENT,以检查该组件的一个活动实例是否已经存在。
2)DELETE_COMPONENT:该方法在组件使用的点上用于删除Web Dynpro组件。如果没有活动的组件实例存在的情况下,该方法不能被调用。
3)HAS_ACTIVE_COMPONENT:该方法判断指定的Web Dynpro组件是否在该组件使用点已经被创建,并且是否是活动的。
4)GET_IMPLEMENTING_IF_VIEW_INFO:该方法返回元数据描述的接口视图。结果返回一个类型为IF_WD_RR_INTERFACE_ VIEW的对象。
5)GET_INTERFACE_CONTROLLER:该方法返回一个Web Dynpro组件的接口控制器的引用。结果返回类型取决于Web Dynpro组件的接口控制器中具体的定义,该类型可以在此控制器的属性中找到。
6)ADD_EVENT_HANDLER:该方法可以用于在运行时注册动态事件的事件处理程序
7)CREATE_COMP_USAGE_OF_SAME_TYPE:该方法创建一个指向同一个组件的组件使用,结果是一个类型为IF_WD_COMPONENT_USAGE的对象。
8)ENTER_REFERENCING_MODE:可以使用该方法来确定一个组件使用指向一个不同的组件。
注:
①组件的使用应该指向不同的组件(引用组件的使用),并且该组件不能有任何活动的组件使用。
② 必须参照相同的组件作为引用组件的使用。
9)GET_COMPONENT_USAGE_INFO:该方法返回元数据描述的组件使用。结果是一个类型为IF_WD_RR_COMPONENT_ USAGE的对象。
10)IS_REFERENCING:该方法指定组件使用是否指向一个不同的组件使用。其结果可能是X(组件的使用指向不同的组件)或“”(组件的使用不涉及不同的组件使用)。
11)IS_REFERENCED:该方法指定组件使用是否由不同的组件使用作为参照。其结果可以是X(组件的使用通过一个不同的组件使用被引用)或“”(组件使用未引用不同的组件使用)。
12)LEAVE_REFERENCING_MODE:使该组件的使用不再是指向另一个不同的组件使用。
13)REMOVE_EVENT_HANDLER:可以用于在运行时动态注销一个事件处理程序的事件。
(5)IF_WD_COMPONENT_USAGE_GROUP
一个组件使用组将组件的使用组织到一起,使用相同的组件及组件接口的用法。
利用组件使用组使得它更容易动态地创建和管理组件。
方法:
1)GET_COMPONENT_USAGE:该方法为组内的一个组件使用的检索方法。结果是一个类型为IF_WD_COMPONENT_ USAGE的对象。
2)GET_COMPONENT_USAGES:该方法用于返回组内的所有组件使用。
3)ADD_COMPONENT_USAGE:该方法创建一个组件的使用并添加组件的使用到组内。
4)REMOVE_COMPONENT_USAGE:该方法从组中删除组件的使用。
5)REMOVE_ALL_CMP_USAGES:该方法从组中删除所有组件使用。
6)SET:该方法设置组件使用的属性。
(6)IF_WD_CONTROLLER
IF_WD_CONTROLLER接口,利用它可以通过Web Dynpro控制器能够访问相关信息。
下面的方法调用返回一个对象,该对象的类型为Web Dynpro组件的组件控制器内的IF_WD_CONTROLLER:
方法:
1)GET_MESSAGE_MANAGER:该方法返回一个消息管理器的引用。结果是一个类型为IF_WD_MESSAGE_MANAGER的对象。
2)GET_COMPONENT:该方法返回一个属于该控制器的组件引用。结果是一个类型为IF_WD_COMPONENT的对象。
3)GET_CONTEXT:该方法返回一个属于该控制器的Context的引用。结果是一个类型为IF_WD_CONTEXT的对象。
4)GET_MESSAGE:该方法返回消息文本给消息关键字。
5)GET_ACTION:该方法返回一个该控制器的动作Action的引用。结果是一个类型为IF_WD_ACTION的对象。
6)GET_CONTROLLER_INFO:该方法返回一个该控制器的元数据的引用。结果是一个类型为IF_WD_RR_CONTROLLER的对象。
7)IF_WD_MESSAGE_MANAGER:该接口作为一个信息集成的消息管理器,为应用程序开发者提供Web Dynpro代码向导。
下面列出比较重要的方法。如果需要了解这些方法中的各个参数的描述,请参见系统中的相关方法的文档。
方法:
需要注意的是,RAISE方法已经过时。出于这个原因,程序员不应该使用它们。另外,大多数方法使用的参数msg_user_data仅可用于特殊目的。出于这个原因,程序员不应该使用它。相关方法,可以使用可选VIEW参数输入要在其中显示的信息的窗体或视图的名称。对于REPORT_方法ENABLE_MESSAGE_NAVIGATION参数信息,可参见MessageArea事件MessageArea Events)。
因此,应用程序的消息在请求和返回期间不保存在消息管理器中,一个消息处理的机制(这些消息必须在每次往返过程中建立新的)内,非一时性消息是可用的。这使得一个消息的有效期可能为组件的生命周期、控制器的生命周期、Context的生命周期(只适用于相关消息Context的属性)。
IS_PERMANENT和SCOPE_PERMANENT_MSG参数的应用如下。
1)REPORT_EXCEPTION:报告一个Web Dynpro异常(可以回到原画面)。 2)REPORT_SUCCESS:报告成功的消息( )REPORT_WARNING:报告警告的消息( )
REPORT_ATTRIBUTE_ERROR_MESSAGE:报告一个Context属性相关的Web Dynpro异常。该方法为Context属性报告一条错误消息。一个Context相关的错误消息影响的Web Dynpro阶段模型的流量。如果这种类型的错误信息在操作处理程序之前被调用(如在WDDOBEFOREACTION方法),则标准(standard)类型的动作不再被执行。随后的导航和WDDOMODIFYVIEW方法也不会被执行。然而,独立验证操作被执行时,即使存在错误的消息,后续的导航及WDDOMODIFYVIEW方法还是执行。
REPORT_ATTRIBUTE_EXCEPTION:报告一个Context属性的异常。该方法报告一条Context属性的Web Dynpro错误消息,同方法REPORT_ATTRIBUTE_ERROR_MESSAGE。 REPORT_ERROR_MESSAGE:报告一个带可选参数的Web Dynpro的错误消息 在这里,可以传输一个字符串。该字符串可以是一个用户定义的OTR文本或一个异常类的文本。使用硬编码,以确保它可以很容易地转换为文本。
IS_EMPTY:查询是否有任何消息。
REPORT_T100_MESSAGE:报告一个消息,使用T100条目。
REPORT_FATAL_EXCEPTION:该方法报告一个终止消息。这种类型的消息在下面的方法中抛出会导致Web Dynpro应用程序因运行时错误而终止:
● WDDOINIT。
● WDDOEXIT。
● WDDOMODIFYVIEW。
● 在一个入站事件处理程序中。
如果这种类型的消息生成在WDDOBEFORENAVIGATION或WDDOPOSTPROCESSING方法或在一个动作处理程序中,则处理在该点被终止,并显示一个错误消息。
REPORT_FATAL_ERROR_MESSAGE:报告一个带有可选参数的致命的WDA消息。功能和现象同REPORT_FATAL_ EXCEPTION。
CLEAR_MESSAGES:删除所有信息。
REPORT_ATTRIBUTE_T100_MESSAGE:报告一个Context属性的Web Dynpro异常。
REPORT_ELEMENT_ERROR_MESSAGE:报告一个Context属性的Web Dynpro例外。
这种方法报告一条错误消息的Context元素。一个Context相关的错误消息影响的Web Dynpro阶段模型的流向。如果这种错误信息类型(E型)的操作处理程序在显示之前被调用(如在WDDOBEFOREACTION方法中),则标准类型(standard)的行动(Action)将不再被执行,随后的导航和WDDOMODIFYVIEW方法也不会被执行。然而,独立验证操作会被执行,即使存在错误的消息,后续的导航及WDDOMODIFYVIEW方法还是执行。
3)REPORT_ELEMENT_EXCEPTION:报告一个Context属性的Web Dynpro例外。功能和现象同REPORT_ELEMENT_ ERROR_MESSAGE。
4)REPORT_ELEMENT_T100_MESSAGE:报告一个Context属性的Web Dynpro例外。功能和现象同REPORT_ELEMENT_ERROR_ MESSAGE。
5)REMOVE_MESSAGE:该方法将删除指定ID的消息。
6)HAS_VAL_ERRORS_FOR_WINDOW:可以使用该方法,以确定一个特定的窗体中是否有Context引用的错误消息。
7)HAS_VALIDATION_ERRORS:可以使用该方法,以检查在一个Context引用中是否有错误消息。
8)GET_MESSAGES:该方法返回一个所有可用消息的列表。
9)GET_MESSAGE_FOR_ID:该方法返回相关消息的信息。
(8)IF_WD_NAVIGATION_SERVICES
该接口为动态导航提供服务。
方法:
1)PREPARE_DYNAMIC_NAVIGATION:此方法创建一个指定参数的导航链接和导航目标,同时建立必要的视图嵌入和视图容器分配。如果目标视图来自一个嵌入式组件,如果需要,则创建该组件使用。这种方法被调用后导航可以执行,激活输出插件中指定的SOURCE_PLUG_NAME。
下面是传入参数:
● SOURCE_WINDOW_NAME:用于导航的窗体名称,在这个窗体中嵌入开始和目标视图
● SOURCE_VUSAGE_NAME:嵌入的开始视图名称。
● SOURCE_PLUG_NAME:出站插头的名称。
● TARGET_COMPONENT_NAME:目标组件的名称,即在内部的窗体中显示的视图。
● TARGET_VIEW_NAME:进行导航的目标视图名称。
● TARGET_PLUG_NAME:入站插头的名称
● TARGET_EMBEDDING_POSITION:以下列格式嵌入视图的位置。
[<View1>/<Container1>.[<View2>/<Container2>] *].
如果该参数被设置为初始,则进行导航的视图将被直接嵌入在窗体中。
返回参数如下:
● COMPONENT_USAGE
组件使用的引用,如果视图来自外部组件则返回组件使用的引用。
2)DO_DYNAMIC_ NAVIGATION:该方法创建一个导航链接,并进行导航。
要做到这一点,需为导航创建导航链接、导航目标、出站插头、组件使用、视图嵌入和视图容器组件(这些还不存在),然后进行导航。
下面是传入参数:
● SOURCE_WINDOW_NAME:用于导航的窗体名称,在一个窗体中嵌入开始和目标视图
● SOURCE_VUSAGE_NAME:嵌入的开始视图的名称。
● SOURCE_PLUG_NAME:出站插头的名称。
● PLUG_PARAMETERS:自定义事件的参数列表。
● TARGET_COMPONENT_NAME:目标组件的名称,即在内部的窗体中显示的视图。
● TARGET_VIEW_NAME:进行导航的目标视图名称。
● TARGET_PLUG_NAME:入站插头的名称。
● TARGET_EMBEDDING_POSITION:以下列格式嵌入视图的位置。
[<View1>/ <Container1>.[<View2>/<Container2>]*].
如果该参数被设置为初始,则进行导航的视图将被直接嵌入在窗体中。
下面是返回参数:
COMPONENT_USAGE:引用组件使用情况,如果视图来自外部组件,则返回组件使用的引用。
3)REMOVE_DYNAMIC_META_DATA:该方法将删除所有动态创建的元数据(查看嵌入、分配视图容器、导航链接、导航目标、组件的用法和出站插头)嵌入路径。
以下的进口中存在的参数:
● SOURCE_WINDOW_NAME:用于导航的窗体名称,在一个窗体中嵌入开始和目标视图
● SOURCE_VUSAGE_NAME:嵌入的初始视图的名称。
● SOURCE_PLUG_NAME:出站插头的名称。
● TARGET_COMPONENT_NAME:目标组件的名称,即在内部的窗体中显示的视图。
● TARGET_VIEW_NAME:进行导航的目标视图名称。
● TARGET_PLUG_NAME:入站插头的名称。
● TARGET_EMBEDDING_POSITION:以下列格式嵌入视图的位置。
[<View1>/<Container1>. [<View2>/<Container2>] *].
(9)IF_WD_NAVIGATION_SERVICES_NEW
IF_WD_NAVIGATION_SERVICES_NEW接口使程序员可以创建所需的元数据进行动态导航。这使得在设计时没有必要对导航链接进行声明。不过,这应该只用在一个静态声明的导航链接不可能实现时。在有些情况下,只有在运行时才能确定视图或嵌入式组件要显示。
接口IF_WD_NAVIGATION_SERVICES_NEW可被Web Dynpro组件中的一个视图调用如下所示:
方法:
1)PREPARE_DYNAMIC_NAVIGATION:该方法创建一个指定参数的导航链接和导航目标,同时建立必要的视图嵌入和视图容器分配。如果目标视图来自一个嵌入式组件,如果需要,则创建该组件使用。这种方法被调用后导航可以执行,激活输出插件中指定的SOURCE_PLUG_NAME。
调用该方法也导致对象类型IF_WD_REPOSITORY_HANDLE被创建,返回给调用者。该对象允许访问元数据时动态创建的方法被调用。
下面是输入参数:
● SOURCE_WINDOW_NAME:用于导航的窗体名称,在一个窗体中嵌入开始和目
标视图。
● SOURCE_VUSAGE_NAME:嵌入的初始视图的名称。
● SOURCE_PLUG_NAME:出站插头的名称。
● TARGET_COMPONENT_NAME:目标组件的名称,即在内部的窗体中显示的视图。
● TARGET_VIEW_NAME:进行导航的目标视图名称。
● TARGET_PLUG_NAME:入站插头的名称。
● TARGET_EMBEDDING_POSITION:以下列格式嵌入视图的位置。
[<View1>/<Container1>. [<View2>/<Container2>] *].
如果该参数被设置为初始,进行导航的视图将被直接嵌入在窗体中。
下面是返回参数:
REPOSITORY_HANDLE (类型IF_WD_REPOSITORY_HANDLE):在其中所产生的元数据可以被访问的处理。
2)DO_DYNAMIC_NAVIGATION:
动态进行导航。要做到这一点,需为导航创建导航链接、导航目标、出站插头、组件使用、视图嵌入和视图容器组件(这些还不存在),然后进行导航。
调用该方法也导致对象的类型IF_WD_REPOSITORY_HANDLE被创建,返回给调用者。该对象允许访问元数据时动态创建的方法被调用。
注:使用相同的出站插头(SOURCE_PLUG_NAME)重复调用该方法。由于在该出站插头创建了多个导航链接,因此所有这些导航链接在随后的导航阶段中,可能导致显示的不是预期的视图,而是其他的视图。
以下的进口中存在的参数:
● SOURCE_WINDOW_NAME:用于导航的窗体名称,在这是一个窗体中嵌入开始和目
标视图。
● SOURCE_VUSAGE_NAME:嵌入的初始视图的名称。
● SOURCE_PLUG_NAME:出站插头的名称。
● PLUG_PARAMETERS:出站插头的列表中的参数值。
● TARGET_COMPONENT_NAME:目标组件的名称,即在内部的窗体中显示的视图。
● TARGET_VIEW_NAME:进行导航的目标视图名称。
● TARGET_PLUG_NAME:入站插头的名称。
● TARGET_EMBEDDING_POSITION:以下列格式嵌入视图的位置。
[<View1>/<Container1>.[<View2>/<Container2>] *].
如果该参数被设置为初始,进行导航的视图将被直接嵌入在窗体中。
下面是返回参数:
REPOSITORY_HANDLE (类型 IF_WD_REPOSITORY_HANDLE):在其中所产生的元数据可以被访问的处理。
(10)运行时库APIs
运行时库由一系列接口组成,这些接口可以读取一个Web Dynpro应用程序的元数据。API还允许动态元数据的创建,如在运行时创建组件使用或导航链接。
Web Dynpro运行时库由以下接口组成:IF_WD_REPOSITORY_HANDLE、IF_WD_RR_ APPLICATION、IF_WD_RR_CMP_USAGE_GROUP、IF_WD_RR_COMPONENT、IF_WD_ RR_COMPONENT_USAGE、IF_WD_RR_CONTROLLER、IF_WD_RR_VIEW、IF_WD_RR_ VIEW_CNT_ASSIGNMENT、IF_WD_RR_VIEW_USAGE、IF_WD_RR_WINDOW。
(11)IF_WD_VALIDATION
接口IF_WD_VALIDATION提供访问Context节点属性的各种Web Dynpro验证服务。
● 读取验证信息。
● 设置验证信息。
方法:
1)IS_ATTRIBUTE_VALID:检查属性是否是有效的。
2)IS_NODE_VALID:检查某节点的所有元素是否是有效的。
3)IS_ELEMENT_VALID:检查某元素所有属性是否是有效的。
4)IS_CONTEXT_VALID:检查根节点Context的所有节点是否是有效的。
5)SET_ATTRIBUTE_VALID:设置属性为有效。
6)SET_NODE_VALID:设置节点为有效。
7)SET_ELEMENT_VALID:设置节点元素为有效。
8)SET_CONTEXT_VALID:设置Context根节点为有效。
9)GET_MESSAGES_FOR_CONTEXT:提取Context所有的消息字符串。
10)GET_MESSAGES_FOR_NODE:提取某Context节点所有的消息字符串。
11)GET_MESSAGES_FOR_ELEMENT:提取某Context元素所有的消息字符串。
12)GET_MESSAGES_FOR_ATTRIBUTE:提取某Context属性所有的消息字符串。
(12)IF_WD_VIEW
接口IF_WD_VIEW是所有的Web Dynpro视图的通用接口。
方法:
1)GET_ELEMENT:该方法返回一个视图UI元素。该元素被指定一个ID,或者返回NULL,如果视图UI元素不存在。
2)GET_ROOT_ELEMENT:该方法返回相应的视图的元素树的根元素。
3)GET_VIEW_USAGE:此方法返回嵌入视图的元数据的描述。
4)REQUEST_FOCUS_ON_VIEW_ELEM:该方法将焦点设置在一个特定的视图元素上面。
5)RESET_VIEW:该方法重置视图布局,即将单独的视图的视图元素恢复到在设计时声明的初始状态。当它被初始化时所有视图的动态布局的修改被恢复。
6)SCROLL_INTO_VIEW:如果参数WDLIGHTSPEED被激活时,该方法放置一个视图元素到一个浏览器的可视区域。
注:该方法只能在方法WDDOMODIFYVIEW内被调用。
(13)IF_WD_VIEW_CONTROLLER
IF_WD_VIEW_CONTROLLER接口使程序员可以使用Web Dynpro视图控制器访问相关信息。一般由类CL_WDR_VIEW实施,是接口IF_WD_CONTROLLER的扩展。
方法:
1)FIRE_PLUG:该方法一般用于触发动态生成的出站插头。
2)GET_VIEW_INFO:该方法返回视图元数据对象的一个引用。
3)REQUEST_FOCUS:该方法用于Context中的元素设置焦点。
4)REQUEST_FOCUS_ON_ACTION:该方法用于设置焦点到UI元素,以便触发特定的动作。
5)GET_CURRENT_ACTION:该方法返回正在处理的动作。
6)GET_EMBEDDING_WINDOW_CTLR:该方法返回已嵌入的窗口控制器的引用。结果是一个类型为IF_WD_WINDOW_ CONTROLLER的对象。
(14)IF_WD_VIEW_ELEMENT
接口IF_WD_VIEW_ELEMENT是在视图中的任何元素的接口。该接口用来唯一标识一个元素,并提供相应的视图。
当创建一个元素时,分配一个ID标识到UI元素,用于标示视图内的元素。
方法:
1)GET_ID:返回元素的唯一名称(ID)。
2)GET_VIEW:返回UI元素所在的视图。
(15)IF_WD_WINDOW
接口IF_WD_WINDOW用于一个弹出窗体的打开、关闭及编辑。
方法:
1)CLOSE:该方法异步关闭弹出“Phase Model Cycle”下完成的窗体。
2)OPEN:该方法以异步方式打开弹出窗体。
3)SET_WINDOW_SIZE:设置窗体的大小。
4)SET_WINDOW_TITLE:设置窗体的标题。
5)SET_ON_CLOSE_ACTION:该方法用于当单击“取消”时注册用户动作,。
6)SUBSCRIBE_TO_BUTTON_EVENT:用于当单击按钮时注册用户动作。
7)UNSUBSCRIBE_FROM_BUTTON_EVENT:用于注销用户的动作。
8)SET_REMOVE_ON_CLOSE:该方法用于关闭窗体后删除窗体。
9)SET_BUTTON_KIND:该方法用于指定按钮的组合。
10)SET_MESSAGE_TYPE:该方法用于设置消息类型。
11)SET_CLOSE_IN_ANY_CASE:该方法用于当单击任何窗体按钮时自动关闭窗体。
12)SET_BUTTON_ENABLED:该方法使按钮被激活和停用。
语法:
源码中<button>代表一个弹出按钮,可以用常量 if_wd_window=>co_button定义。
(16)IF_WD_WINDOW_CONTROLLER
使用接口IF_WD_WINDOW_CONTROLLER访问一个窗体的属性。
方法:
1)GET_WINDOW:该方法用于返回弹出窗口,如果存在。结果是一个类型为IF_WD_WINDOW的对象。
2)GET_WINDOW_INFO:该方法用来返回窗体的元数据描述。
(17)IF_WD_WINDOW_MANAGER
使用接口IF_WD_WINDOW_MANAGER可以创建不同的窗体和弹出对话框。
方法:
1)CREATE_EXTERNAL_WINDOW:创建一个外部浏览器窗体的方法。但是,如果应用程序运行在门户网站中,则在外部浏览器中创建窗体是不可能的。该方法用来创建一个模态的弹出窗体。
注:模态参数已经过时了,因为Web Dynpro中没有外部模态窗体,目前不支持标题参数
2)CREATE_WINDOW_FOR_CMP_USAGE:该方法用来使用组件的接口视图显示一个弹出窗体。
3)CREATE_POPUP_TO_CONFIRM:该方法用于创建一个弹出确认对话框。
(18)CL_WD_CUSTOM_EVENT
该类可以访问到动作或UI元素的Web Dynpro事件的参数。动作或事件的事件处理程序有一个该类型的输入参数。这个类的方法允许访问事件或动作的参数。
2.Context节点APIs
下面的接口和ABAP字典结构用于Web Dynpro中Context节点数据的存取:IF_WD_CONTEXT、IF_WD_CONTEXT_NODE、IF_WD_CONTEXT_NODE_INFO、IF_WD_CONTEXT_ELEMENT、结构WDR_CONTEXT_ATTRIBUTE_INFO。
如果有一个错误,Context处理方法总是会触发CX_WD_CONTEXT,但该异常并不声明。
(1)IF_WD_CONTEXT
接口IF_WD_CONTEXT允许访问的一个控制器的Context节点的数据,并提供了用于记录用户输入的方法。(www.daowen.com)
方法:
1)RESET_CHANGED_BY_CLIENT:该方法已过时,不应该使用它。
2)CONTEXT_CHANGE_LOG。
(2)IF_WD_CONTEXT_NODE
接口IF_WD_CONTEXT_NODE使一个单一的Context节点绑定数据或从Context节点中读取数据。
方法:
1)BIND_ELEMENT:该方法绑定Context元素到Context节点上,具体参数见表A-2。
表 A-2
调用方法时如果有错误,一个异常类型CX_WD_CONTEXT被触发。
2)BIND_ELEMENTS:该方法绑定Context元素到Context节点上。该方法本质上与方法BIND_ELEMENT是相同的,区别是必须指定一个内部表,其中可以包含任一元素引用、数据引用或数据结构。
3)BIND_STRUCTURE:使用该方法,可以根据一个结构在节点中创建一个新的元素。该结构应该与优选作为节点声明的结构是相同的,但它不是必须的。如果该结构是不一样的,则对应的移动(move-corresponding)被执行。在其他方面,该方法的行为与BIND_ELEMENT一样。
4)BIND_TABLE:使用该方法绑定内部表到Context节点。该方法是BIND_ELEMENTS的优化版本。该表包含预期的数据。如果该表的数据结构与节点声明的结构相匹配,则下面的内部优化将被执行:只有表本身传递到节点。没有任何元素实例被创建。如果访问一个或多个元素,则这些元素的引用被创建。
在ABAP原则“Copy-on-write”用于传输复制的表时,这意味着只有当它被改变时该表被复制,而不是在它被传输时被复制。
注:只有索引表,即标准表和排序表支持该项操作。
5)CLEAR_SELECTION:当前的选择被清除。
6)CREATE_ELEMENT:使用该方法创建元素的引用,以后可以使用BIND_ELEMENT方法将其追加到节点。该元素的数据可以在追加到节点时附加,也可以在以后设置。创建成功后该元素的引用被返回。
7)CREATE_ELEMENT_STATIC_ATTR:该方法已过时,因此不使用它。
8)GET_ATTRIBUTE:该方法返回一个Context属性的值。
9)GET_ATTRIBUTE_REF:该方法返回一个静态或动态属性的引用及属性值。一个新的引用被创建。这意味着所做的内容变更的引用不改变属性本身。
10)GET_CHILD_NODE:该方法返回一个特定的子节点。
11)GET_CHILD_NODES:该方法返回所有子节点。
12)GET_CONTEXT:该方法返回引用控制器Context(Context节点)。特别是有关环境Context变化日志的引用。
13)GET_ELEMENT:该方法返回引用了一个元素,该元素要么是一个特殊的索引的元素,要么是头选择的元素。
14)GET_ELEMENTS:该方法返回一个所有元素引用的内部表。
15)GET_ELEMENT_COUNT:该方法返回元素的数量。
16)GET_LEAD_SELECTION:该方法返回头选择元素的引用。
17)GET_LEAD_SELECTION_INDEX:该方法返回头选择元素的索引。
18)GET_META_PATH:该方法返回在元数据中节点的路径。该路径不包含任何索引。
19)GET_NODE_INFO:该方法返回元数据对象的引用(IF_WD_CONTEXT_NODE_ INFO)。
20)GET_PARENT_ELEMENT:该方法返回某节点的父节点所属的元素的引用。
21)GET_PATH:该方法返回原控制器中节点的路径。该路径包含节点名称和索引。
22)GET_SELECTED_ELEMENTS:该方法返回所有选中的元素的列表。
23)GET_STATIC_ATTRIBUTES:该方法返回所有声明为静态属性的副本。
24)GET_STATIC_ATTRIBUTES_REF:该方法返回所有静态属性的副本的引用。
25)GET_STATIC_ATTRIBUTES_TABLE:该方法返回所有的静态属性的所有元素。
26)INVALIDATE:该方法无初始化节点的所有元素。这意味着,所有的元素和子节点的实例被删除。初始化后节点的状态是它的初始状态。当一个元素或一个属性被再次访问,如果供给方法是可用的,那么供给方法会被调用。
27)IS_ALIVE:该方法检查相关的控制器是否还在生命周期内,这意味着它仍然可以被访问,并没有被WDDOEXIT方法终止。
28)IS_SELECTED:该方法用于判断带有索引相关联的元素是否被选择。
29)IS_SUPPLIED:该方法用于判断节点是否填充或仍处于初始状态(或失效)。
30)MOVE_ELEMENT:该方法设置头选择到某一个元素。
31)MOVE_FIRST:该方法设置头选择到第一个元素。
32)MOVE_LAST:该方法设置头选择到最后一个元素。
33)MOVE_NEXT:该方法设置了头选择到下一个元素。
34)MOVE_PREVIOUS:该方法设置头选择为上一个元素。
35)MOVE_TO:该方法设置头选择为指定索引的元素。
36)PATH_GET_ATTRIBUTE:该方法返回数据的属性的引用。该引用可从ME节点出发通过相对路径访问。如果有一个错误,则会触发异常类CX_WD_CONTEXT。
37)PATH_GET_ELEMENT:该方法本质上与PATH_GET_ATTRIBUTE相同,但不返回一个元素引用。
38)PATH_GET_NODE:该方法本质上与PATH_GET_ATTRIBUTE相同,但不返回一个节点的引用。
39)REMOVE_ELEMENT:该方法从节点中删除一个元素。该元素可以在以后再次追加到相同的节点。
40)TO_XML:该方法对节点进行XML序列化3)IF_WD_CONTEXT_NODE_INFO
IF_WD_CONTEXT_NODE_INFO是Context节点的元数据的接口,被用来描述数据。
每个Context节点包含一个有元数据节点信息的引用。下面是最重要的元数据,可以使用IF_WD_CONTEXT_NODE_INFO访问:
● 名称(GET_NAME)。
● 单节点(IS_SINGLETON)。
● 多节点(IS_MULTIPLE)。
● 强制性的节点(IS_MANDATORY)。
● 强制性的选择(IS_MANDATORY_SELECTION)。
● 多选(IS_MULTIPLE_SELECTION)。
1)GET方法:获取Context节点和子节点的属性。使用GET方法来返回单个组件的Context节点,见表A-3。
表 A-3
注:单个组件返回单一的名称,多个组件则返回一个列表。
2)HAS/IS方法:被用来返回Context节点的不同的属性和状态,见表A-4
表 A-4
3)ADD方法:允许添加子节点或节点的属性,见表A-5
表 A-5
4)SET方法:用来设置Context节点或子节点的属性,见表A-6
表 A-6
5)REMOVE Methods方法:可将Context节点或子节点的属性删除,见表A-7注:不能删除已被定义为静态的属性。只能删除在运行时创建的属性
表 A-7
(4)IF_WD_CONTEXT_ELEMENT
接口IF_WD_CONTEXT_ELEMENT通过一个单一的Context元素进行赋值或取值。
大部分的该接口的方法也包含在IF_WD_CONTEXT_NODE中,主要用这些头选择的元素,或指定索引的元素。
方法:
1)GET_ATTRIBUTE:返回一个Context属性的值的方法。该方法的先决条件是应用程序知道该属性的数据类型。给定的属性的值被复制到导出参数。要做到这一点必须有导出参数用于值的写入。
如果属性名称<attr_name>:NOT,则它假设该值是布尔值而且相反的值被写入。
如果属性名称<attr_name>:FINAL,则系统会检查是否该属性值设置为最终并将这些信息写入。
如果属性不存在或值不能被写入,则异常类型CX_WD_CONTEXT被触发。
注:如果可以返回几个声明的元素的属性值,则使用方法GET_STATIC_ATTRIBUTE通常是更有效的。
2)GET_ATTRIBUTE_REF:该方法类似于GET_ATTRIBUTE,但在以下方面是不同的:
● 返回参数代替输出参数,而且包含属性值的数据与引用。
● 引用的值不是存储在内部的引用。创建相同类型的数据,该值即被复制,然后该数据
作为参数类型的引用输出。
3)GET_INDEX:返回当前元素的索引。
4)GET_CHILD_NODE:该方法返回具有指定名称的子节点。子节点总是由框架创建,而不是应用程序。
注:出于性能方面的考虑,子节点名称需指定大写字母。
5)GET_CHILD_NODES:该方法返回这一种元素的所有子节点作为一个表,其中包含名称和引用。
6)GET_NODE:该方法返回的元素节点的引用。如果元素是无效的,则一个例外(类型CX_WD_CONTEXT)会被触发。因此该元素的有效性被确定。
7)GET_STATIC_ATTRIBUTES:该方法返回所有声明为静态属性的副本。如果结构是不相同的,则操作move-corresponding将被执行。这是个效率不高赋值,但在许多情况下,仍然是有用的。
静态属性是那些已被声明为静态或属于被声明为静态节点的结构。
8)GET_PATH:该方法返回控制器中原节点中元素(也就是说,不是在控制器中声明的映射)的路径。可以指定包含路径中的控制器的名称或不指定(见IF_WD_CONTEXT_ NODE=> GET_PATH)。
如果该路径是在搜索一个特定的控制器(例如,如在视图中绑定的路径)的方法,则方法CL_WD_CONTEXT_SERVICES=> GET_ELEMENT_PATH_FOR_CTRL必须使用,由此可以提高系统的性能。
9)GET_STATIC_ATTRIBUTES_REF:使用GET_STATIC_ATTRIBUTES时适用,如果是GET_ATTRIBUTE,则用GET_ ATTRIBUTE_REF。
10)IS_ALIVE:该方法检查相关的控制器是否还在生命周期内,这意味着它仍然可以被访问,并没有被WDDOEXIT方法终止。
11)IS_CHANGED_BY_CLIENT:指示Context元素是否被用户改变。
12)SET_CHANGED_BY_CLIENT:一个元素被用户改变(见Context更改日志)。
13)SET_ATTRIBUTE:按照属性名称设置属性值。
14)SET_STATIC_ATTRIBUTES:如果有多个静态声明的属性要赋值,建议使用SET_STATIC_ATTRIBUTES方法。
15)SET_ATTRIBUTE_NULL:设置属性为NULL,值为NULL的属性总是显示为空。这使得可以区分空值和初始值。
16)SET_STATIC_ATTRIBUTES:设置所有静态声明的属性。如果不赋值,则静态属性将被设定为初始值。如果赋值即使两个结构不完全符合,MOVE-CORRESPONDING也将执行。
17)SET_STATIC_ATTRIBUTES_NULL:将所有属性设置为特殊NULL值(参见方法:SET_ATTRIBUTE_NULL)。
18)SET_FINALIZED:一个元素设置为最终不允许用户或应用程序改变。最终设置不能被撤销。但是可以删除这个元素。
19)SET_ATTRIBUTE_FINALIZED:只有一个属性被设置为最终类
20)TO_XML:这个元素作为XML序列化的属性。
21)IS_SELECTED:确定此元素是否被选中(即这并不意味着必须头选择)
22)SET_SELECTED:选择元素。
3.个性化APIs
下面的Web接口提供了个性化的Web Dynpro ABAP应用:
IF_WD_PERSONALIZATION接口包含Web Dynpro ABAP组件在运行时返回相关配置信息或更改配置所使用的方法的集合。
方法:
1)SET_CONFIG_KEY:设置保存配置密钥键的方法。
2)GET_STATE:得到当前加载状态的信息。
3)LOAD_CONFIG_BY_KEY:用于加载配置或个性化的方法。
4)GET_VARIANTS:得到一个配置变式列表的方法。
5)ENTER_CHANGE_MODE:切换改变模式的方法。
6)SAVE:保存个性化数据的方法。
7)DELETE:删除个性化数据的方法。
8)GET_VALID_PERS_SCOPE:获得最大的保存范围的方法。
9)GET_DEFAULT_VARIANT:取得个性化默认值的方法。
10)RESTRICT_IMPL_PERS:用于限制隐式个性化的方法。
11)UPDATE_IMPL_PERS:在动态改变UI元素后更新隐式的个性化的方法。
12)GET_VARIANTS_FOR_SUBCOMPONENT:获取配置变式列表的方法。
13)SAVE_NEW_VARIANT:个性化数据的保存方法。
14)SET_DEFAULT_VARIANT:个性化设置的默认值的方法。
15)TRANSPORT_ALLOWED:用于指定是否允许数据传输的方法。
16)IS_IMPLEMENTATION_SUPPLIED:用于测试被指定的一个实例是否为一个组件使用的方法。
17)SUPPORT_DELTA_HANDLING:对于每个存储器动作,包括如最终用户在运行时删除按钮这样的操作,系统保存了隐含的个性化和明确的个性化的数据。但是,可以使用SUPPORT_DELTA_HANDLING指定系统只保存更改的明确的数据,而不是配置控制器的全部内容。
18)GET_TABLE_READER:提供接口读取配置数据表的方法。
4.门户集成APIs
在门户网站中集成Web Dynpro ABAP 的接口和类:
● IF_WD_PORTAL_INTEGRATION。
● CL_WDR_PORTAL_OBWEB_SERVICE。
(1)IF_WD_PORTAL_INTEGRATION
类IF_WD_PORTAL_INTEGRATION作为门户管理器提供门户网站与Web Dynpro ABAP应用程序集成的所有必要的方法。
方法:
1)NAVIGATE_TO_OBJECT:基于对象的导航(OBN)方法。
注:参数USE_FORWARDPARAMETERS_OF_AL确保可以从一个应用程序传输到下一个目标的iView中的JavaScript。因此,不需要有任何JavaScript的目标IView(return'DynamicParameter='+objVal;),所以参数从一个应用程序可以转发到下一个应用程序。如果应用设置开关USE_FORWARDPARAMETERS_OF_AL = abap_true,则应用程序自动集成到门户网站一个额外的参数会自动插入执行该操作。然而,这并不与旧的iView中JavaScript相关联。
2)NAVIGATE_ABSOLUTE:绝对的导航方法。
3)NAVIGATE_RELATIVE:相对导航方法。
4)FIRE:触发门户网站的事件方法。
5)SUBSCRIBE_EVENT和 UNSUBSCRIBE_EVENT:注册和取消注册事件的方法。
6)SET_APPLICATION_DIRTY_FLAG:设置“dirty”标志的方法。
7)SET_WORK_PROTECT_MODE:设置工作保护模式的方法。
(2)CL_WDR_PORTAL_OBNWEB_SERVICE
使用类CL_WDR_PORTAL_OBNWEB_SERVICE,在Web服务支持下应用程序为基于对象导航接收到实际Web服务的封装,这个类可以更容易地使用接口,其包含数据已经被读取的高速缓存。
方法:
1)Constructor:不带参数,这个类可以被实例化。在这种情况下,标准的Web服务端口被使用。如果程序员为构造函数指定一个不同的端口,则该端口将被使用。
2)OBN_GET_DEFAULT_TARGET:该方法返回的iView的操作名称,显示名称和操作名称的默认操作。该方法需要有系统的别名和业务对象的名称。
注:使用的iView的名称,也可以触发在门户网站中的绝对导航。
3)OBN_GET_DEFAULT_TFO:该方法返回的iView的操作的名称,显示名称和操作名称的默认操作。该方法需要有系统别名的名称、业务对象和操作。
4)OBN_GET_TARGETS:该方法返回的所有可能的iView名称,显示名称的操作及有关的操作名称。该方法需要有系统的别名和业务对象的名称。使用这种方法,可以生成所有可能的操作的菜单,如为LINK_TO_ACTION生成菜单项。
5)OBN_GET_TFOS:该方法的工作原理同方法OBN_GET_TARGETS。需要操作的名称。
6)OBN_IS_TARGET_EXIST:该方法告诉程序员一个依赖于系统别名的可能的目标和业务对象是否存在。
7)OBN_IS_TARGET_EXIST_TFO:该方法的工作原理与OBN_IS_TARGET_EXIST相同,但需要另外的操作名称。 以下服务类和接口提供Web Dynpro应用开发的一般服务: ● CL_WD_ADOBE_SERVICES。 ● CL_WD_CONTEXT_SERVICES。 ● CL_WD_DYNAMIC_TOOL。 ● CL_WD_RUNTIME_SERVICES。 ● CL_WD_UTILITIES。 ● CL_WD_TRACE_TOOL和IF_WD_TRACE_TOOL。 ● IF_WD_SELECT_OPTIONS。 ● CL_WD_WEB_ICON。 ● CL_WEB_DYNPRO。 1.CL_WD_ADOBE_SERVICES 类CL_WD_ADOBE_SERVICES可用于ABAP开发环境中,也可用于运行时的Adobe集
成环境中。 该方法主要用于在运行时创建PDF文件,或解析运行时XML架构的表单接口、XML格
式的表单数据。 (1)方法 1)CREATE_PDF:该方法创建PDF文档,强制性参数有ENABLED和DATA_SOURCE。 重要输入参数: ● ENABLED:指定的表单是否互动。 ● DATA_SOURCE:Web Dynpro Context的引用。 返回参数PDF: PDF文件作为XSTRING输出。 2)GET_CABVERSION:为了保证表单互动功能,需要ActiveX控制框架(ACF)。该方
法建立路径到ACF,最终检查ACF是否是最新版本或更高版本是否存在。 (2)附加方法 其余的方法都是用来解析一个XML架构或XML数据。 通过IXML解析器,一个XML文档(该架构以表单形式存在)进行处理,一个内部表
填充数据。作为架构表现为Web Dynpro的Context,用于建立Context的所有信息保存在表中。
如果该架构已创建一个Web Dynpro的Context,则名称为FROM_WD_CONTEXT的元素
(=True)可以在第一层级找到。在视图设计器中,程序员可以决定是否改变Context,XML
架构和XML数据通常以同样的方式解析,唯一不同的是结果,这就是有两种不同的表类
型的原因。 注:XML数据和XML构架之间的差异:构架描述的是外部表单的数量和字段的类型,而XML数据传输的实际数据包含在这些字段之中。出于这个原因架构是在设计时,数据指的是在运行时。
1)GET_CONTEXT:该方法返回描述Web Dynpro Context的内部表。
2)GET_DATA:该方法返回一个内部表,它表示XML数据。
3)GET_FROM_WD_CONTEXT:该方法搜索XML架构中所描述的FROM_WD_ CONTEXT标志,并在Web Dynpro Context产生一个架构的情况下,返回字符X,否则它返回一个空白字符。
(3)解析方法
1)PARSE_XML_SCHEMA:解析XML架构的方法。
2)PARSE_XML_DATA:解析XML数据的方法。
3)PARSE_SUBNODE和PARSE_XML_SUBNODE:解析深层嵌套层次结构的XML文档的方法。通过递归的方法调用。出于这个原因,每个XML文档都有自己的方法。
2.CL_WD_CONTEXT_SERVICES
CL_WD_CONTEXT_SERVICES类用于识别Context的变化。这里指通过程序对Context操作的所有变化。通常情况下使用Context更改日志。
注:一个*属性名称意味着,所有节点的属性已经改变:一个Context节点的静态属性可能被改变,但它不能被指定为确定,如果设定这样的属性的值,则用户应调用实例方法SET_STATIC_ATTRIBUTES。
(1)方法
1)SUBSCRIBE_TO_NODE_CHANGES:登记变更Context节点的方法。
2)UNSUBSCRIBE_FROM_NODE_CHANGES:注销变更Context节点的方法。
3)UNSUBSCRIBE_ALL:彻底注销变更的方法。
4)DEACTIVATE_SUBSCRIPTIONS:暂时停用注册变更的方法。
5)ACTIVATE_SUBSCRIPTIONS:重新注册变更的方法。
6)GET_CHANGE_LIST:取得带有可选复位变更列表的方法。
7)RESET_CHANGE_LIST:重新更改列表的方法。
(2)附加方法
下面的方法提供了映射和其原始节点的信息。它们主要用于视图中动态创建绑定路径及映射节点。
1)GET_NODE_METAPATH_FOR_CTRL。
2)GET_MAPPED_NODE_FOR_CONTROLLER。
3)GET_ORIGINAL_NODE。
4)GET_ELEMENT_PATH_FOR_CTRL。
注:以下的方法已经过时,不应该使用:UPDATE_NODE_FROM_TABLE_BY_KEY、UPDATE_ELEMENT_FROM_STRUCTURE、UPDATE_NODE_FROM_TABLE_BY_IND、GET_TABLE_FROM_NODE。
(3)操作
处理Context变化:
1)生成的类CL_WD_CONTEXT_SERVICES的一个实例。
2)使用SUBSCRIBE_TO_NODE_CHANGES为一组Context的节点注册。
3)使用GET_CHANGE_LIST定期取得更改列表。
4)如果有必要,改变开关记录使用ACTIVATE_SUBSCRIPTIONS暂时关闭并重新打开。
5)删除变化记录的登记。
3.CL_WD_DYNAMIC_TOOL
类CL_WD_DYNAMIC_TOOL包含各种方法,这些方法对动态编程的第一个步骤(如SE16复制)是很有用的。
主要方法
1)IS_STRUCTURE_OR_TABLE:方法SE16复制。
2)GET_TABLE_DATA:读取数据的通用方法,所以没有任何checkman错误会发生。
3)CREATE_FORM_FROM_NODE:从一个节点的属性创建表单的方法。可以使用该方法作为复制模板。
4)CREATE_LAYOUT_DATA:根据父类型创建一个布局UI元素的实例的方法。可以使用该方法,在布局父类型不明的情况下,进行动态UI编程。
5)CREATE_NODEINFO_FROM_STRUCT:使用预定义的数据结构创建一个节点的信息对象的方法。可以使用该方法进行SE16复制。
注:使用IF_WD_CONTEXT_NODE_INFO的方法可以动态创建节点。
6)CREATE_TABLE_FROM_NODE:该方法的作用与CREATE_FORM_FROM_NODE相同,这里用于创建表格。
7)FILL_NODE:该方法已过时,不再使用。
8)SET_TREE_LEAD_SELECTION:该方法用于设置当前选定的叶或树中的节点。如果另一个元素已被选中,则该节点选中将被取消。如果没有Context元素设定,则当前选定的叶或节点被取消。当一棵树UI元素被使用时,在树的Context初始化后显示之前该方法被调用一次。如果它不是这种情况,则在同一时间选择几片叶子或节点取决于Context设置。
9)CREATE_RANGE_TABLE:该方法从指定的类型动态地创建一个范围表,如可以使用选择选项(Select Options)。然而,应用程序不仅限于选择选项,因为一个标准的范围表被创建时,使用data mytable type range of mytype语句创建mytable。
4.CL_WD_RUNTIME_SERVICES
这个类提供了一般的Web Dynpro运行时服务。
方法:
ATTACH_FILE_TO_RESPONSE:不使用UI元素文件下载(File Download)进行文件导出方法。
5.CL_WD_UTILITIES:类CL_WD_UTILITIES包含了各种一般功能的方法。
方法:
1)CALC_WIDTH4DDLBBYKEY:使用项目列表计算DropDownByKey UI元素的宽度的方法。
2)SET_WIDTH_4DDLBBYKEY:使用项目列表计算和设定DropDownByKey UI元素的宽度的方法。
3)CONSTRUCT_WD_URL:计算Web Dynpro应用程序的URL的方法。
4)GET_OTR_TEXT_BY_ALIAS:提供OTR文本的OTR别名(系统调用包装器)的一个方法。
6.CL_WD_TRACE_TOOL和IF_WD_TRACE_TOOL
使用CL_WD_TRACE_TOOL类,该类指向接口IF_WD_TRACE_TOOL,通过它的静态属性INSTANCE,应用程序开发人员可以提供额外的数据到Web Dynpro跟踪工具。
要做到这一点,需使用接口IF_WD_TRACE_TOOL包含方法ADD_TRACE_DATA。
示例:
SAP建议添加一个应用领域作为跟踪文件的前缀,如SRM/。
7.IF_WD_SELECT_OPTIONS
IF_WD_SELECT_OPTIONS接口用于集成在应用程序组件的选择屏幕上的Selection Options
方法:
1)选择字段的方法
1)ADD_SELECTION_FIELD:选择屏幕中插入字段的主要方法。
2)ADD_SELECTION_FIELDS:选择屏幕中添加多个字段的方法。
3)GET_SELECTION_FIELD:返回选择屏幕上的字段的数据。
4)GET_SELECTION_FIELDS:返回选择屏幕上的所有字段的数据。
5)RESET_SELECTION_FIELD:复位范围(Range)表选择字段。
6)RESET_ALL_SELECTION_FIELDS:复位所有范围表选择字段。
7)CHECK_ALL_SELECTION_FIELDS:检查所有选择字段输入的正确性。
8)UPD_SELECTION_FIELD:更新一个选择字段的设置。
9)GET_RANGE_TABLE_OF_SEL_FIELD:读取一个范围表。
10)SET_RANGE_TABLE_OF_SEL_FIELD:设置一个范围表。
(2)布局的方法
插入布局元素的方法如下:
● ADD_HORIZONTAL_DIVIDER 和 GET_HORIZONTAL_DIVIDER:添加及返回选择
屏幕中水平分割的数据。
● ADD_HORIZONTAL_DIVIDERS和GET_HORIZONTAL_DIVIDERS:添加及返回选
择画面中多个水平分割的数据。
● ADD_TEXT_LINE 和GET_TEXT_LINE:添加及返回选择屏幕中文本行中的数据(如
字符串)。所有允许的设计是一个TextView元素。
● ADD_TEXT_LINES 和GET_TEXT_LINES:新增及返回选择画面中的多行文本(字
符串)。
(3)块(Blocks)的方法
与块相关的方法如下:ADD_BLOCK、ADD_BLOCKS、GET_BLOCK、GET_BLOCKS。
程序员可以使用的用户界面元素有组(Group)、托盘(Tray)或透明容器(Transparent Container)。
(4)参数的方法
这些方法对应于上述指定的选择字段的方法,区别在于参数的差异:ADD_PARAMETER_ FIELD、ADD_PARAMETER_FIELDS、GET_PARAMETER_FIELD、GET_PARAMETER_ FIELDS、SET_VALUE_OF_PARAMETER_FIELD、GET_VALUE_OF_PARAMETER_FIELD、RESET_ PARAMETER_FIELD、RESET_ALL_PARAMETER_FIELDS、CHECK_ALL_PARAMETER_ FIELDS。
(5)标准结构的方法
标准结构的方法有GET_SELECTION_SCREEN_ITEM、GET_SELECTION_SCREEN_ ITEMS、ADD_SELECTION_SCREEN_ITEM、ADD_SELECTION_SCREEN_ITEMS、REMOVE_ SELECTION_SCREEN_ITEM。
从选择画面中移除一个元素。
这里唯一的参数是要删除的字段的ID(I_ID)。
● REMOVE_ALL_SEL_SCREEN_ITEMS
从选择屏幕中移除所有元素。如果有一个块,则连同其内容将整个块从显示屏幕中移除。
(6)帮助方法
1)CREATE_RANGE_TABLE:创建一个动态范围表。
2)SET_GLOBAL_OPTIONS:指定按钮是可见的。
8.CL_WD_WEB_ICON
这个类的静态方法提供有关Web Icon的信息。
方法:
1)GET_COLLECTIONS:该方法返回Web Icon集合。
2)GET_WEB_ICONS:该方法返回一个集合或所有集合的Web Icon。
3)GET_WEB_ICON_URL:该方法返回Web Dynpro应用程序相关的URL(一个Web Icon的网址)。
9.CL_WEB_DYNPRO
Web Dynpro环境的应用程序是否使用ABAP字典搜索帮助在运行查询,可以通过类CL_WEB_DYNRPO的属性的is_active进行判断。
句法:
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。