Web Dynpro是什么.docx

上传人:b****6 文档编号:5817953 上传时间:2023-01-01 格式:DOCX 页数:10 大小:320.17KB
下载 相关 举报
Web Dynpro是什么.docx_第1页
第1页 / 共10页
Web Dynpro是什么.docx_第2页
第2页 / 共10页
Web Dynpro是什么.docx_第3页
第3页 / 共10页
Web Dynpro是什么.docx_第4页
第4页 / 共10页
Web Dynpro是什么.docx_第5页
第5页 / 共10页
点击查看更多>>
下载资源
资源描述

Web Dynpro是什么.docx

《Web Dynpro是什么.docx》由会员分享,可在线阅读,更多相关《Web Dynpro是什么.docx(10页珍藏版)》请在冰豆网上搜索。

Web Dynpro是什么.docx

WebDynpro是什么

WebDynpro是什么?

基于MVC设计模式的SAPWebDynproforJAVA是在开发基于表单的用户界面中的具有革命性的意义。

它与SAP以往的设计范例完全不同,代表了开发基于Web的ERPApplication取得的重大突破。

WebDynpro的双重目的:

>尽可能避免对UI层进行编码;

>允许业务应用程序以独立于后台业务平台,以及前端表现层的形式而存在。

为了开发用户界面,WebDynpro提供了一个公布的元模型,这样就直接导致几乎无需编写程序代码。

WebDynpro与其他Web开发工具的区别:

从开发者的角度而言,最基本的不同点在于:

在其他开发工具中(如JSP),是以Web页作为开发单位,而且您的应用程序由一套已经被链接的页面组成,这些页面共同提供所需要的业务功能。

然而,在WebDynpro中,是以“component”为开发单位的,这里的component是指一套相关的Java程序,这些程序一起形成可重用的业务功能。

一个component可以没有或者具有多个视图。

从这一点上,WebDynprocomponent可以认为是相关Web页的聚合。

WebDynpro应用程序的开发周期:

◆ 分析阶段

◆设计阶段

   ▲架构设计

   ▲详细设计

◆实施阶段

在线资源:

WebDynproforJava (SAP公开)

 (需要用户名/密码)

◆ 分析阶段

    在分析阶段,应确定并描述应用程序的业务需求。

在这一阶段,仅需考虑是“何种”业务流程,而不要考虑“如何”设计此流程。

    此阶段的成果物为分析模型,使用非技术人员可以理解的语言完整准确、统一地描述业务需求。

    由于分析模型不考虑业务流程是“怎样”的,所以此阶段进行的描述与任何特定技术(比如WebDynpro)无关。

◆ 架构设计阶段要解决的问题:

◎为WebDynpro开发组件(DCs)建模:

   △需要哪些开发组件来交付所需功能?

   △是否需要开发新的开发组件?

是否可以重用现有开发组件?

   △要使用开发组件的哪些层次结构排列?

   △个开发组件之间存在哪些相关性?

   △哪些公共部分已发布?

◎为WebDynpro项目建模:

   △WebDynpro项目由哪些已经使用的WebDynpro组件组成?

   △哪些WebDynpro组件包含其他WebDynpro组件的接口视图?

   △WebDynpro项目中使用哪些模型?

   △哪些WebDynpro组件使用哪一模型?

   △WebDynpro项目中定义哪些WebDynpro组件接口?

   △哪些WebDynpro组件使用哪些WebDynpro组件接口?

   △各个WebDynpro组件之间存在哪些调用方法?

各个WebDynpro组件之间使用哪些结果?

   △WebDynpro组件之间存在哪些上下文映射?

◆ 详细设计阶段要解决的问题:

◎为WebDynpro开发组件(DCs)建模:

   △WebDynpro组件由哪些视图组成?

   △WebDynpro组件中使用哪些自定义控制器?

   △WebDynpro组件内需要定义哪些方法和事件?

   △在WebDynpro组件内的哪些控制器中定义上下文元素?

   △在WebDynpro组件内定义上下文元素?

   △在WebDynpro组件内的哪些控制器中定义上下文元素?

   △绑定或者映射哪些上下文元素?

◎为WebDynpro窗口建模:

   △应如何安排视图?

   △各视图之间存在哪些导航路径?

◎为WebDynpro视图建模:

   △视图中包含哪些用户界面元素?

   △应如何安排视图的用户界面元素?

   △用户界面元素与哪些Context绑定?

   △用户界面元素绑定到哪些Action中?

一旦解决好上述问题,就可以使用NWDS中的图形窗口和组件建模工具开始构建应用程序了。

SAP建议的命名规范:

应用程序(Application)                            ={a}App

组件控制器(ComponentController)    ={c}Comp

自定义控制器(Customercontroller)     ={cc}Cust

组件接口视图(Componetinterfaceview)         ={w}InterfaceView

任何类型的控制器(Acontrollerofanytype)      

模型(Model)                                              ={a}App

内向插件(Inboundplug)                         ={pi}In

外向插件(Outboundplug)                      ={po}Out

项目(Project)                                             ={pr}

独立的组件接口(Standalonecomponentinterface)

独立的组件接口视图(Standalonecomponentinterfaceview)

组件使用(Componentusage)             ={p}Inst

视图(View)                                              ={v}View

视图集(ViewSet)                                    = {vs}Viewset

窗口(Window)

独立J2EE引擎的第一个实例称为JC00。

JC表示已安装Java引擎,00则表示这是第一个实体。

如果在同一计算机上已经安装了独立J2EE引擎的另一实例,则它的实例标识通常为JC01。

如果J2EE引擎作为插件安装到ABAPWebAS中,则实例标识可能类似于DVEBMGS00,其中,每个字母表示已安装一个特定的流程类型。

00则表示此计算机中的第一个实例。

,设计时的上下文

每个controller都有且只有一个具有层次结构的数据存储结构,这一结构就称为Context。

此Context所持有的数据仅针对controller的lifecycle而存在。

一旦终止controller,则其Context所保存的所有数据均会丢失。

Context是包含node与attribute的实体的层次结构安排。

上下文节点(Node)是主要的抽取类,用来将运行时的数据存储在WDF内。

node是数据存储实体,在此实体内,系统会维护元素结合。

通常由缩写{cn}代表上下文节点,{chn}代表子节点。

属性(attribute)是上下文层次结构中的一个允许有子实体的实体。

通常用{ca}代表。

为任何节点定义的子节点集形成一个单元,这个单元就称为“元素(Element)”

二,运行时的上下文结构

在上下文的运行行为中,有两个特殊的节点属性起到关键作用,这两个属性分别为:

cardinality和singleton.

基数(cardinality)属性

是由值对组成的,它控制运行包含的元素{cn}的最大数和最小数。

基数属性拥有以下四个可能值:

□0..1:

0  或者1个

□0.. n:

0  或多个

□ 1..1:

0  仅1个

□ 1.. n:

1  或多个

单例(Singleton)属性

单例属性对子节点及父节点之间的关系有着至关重要的影响。

如果在设计时声明{chn},那么根据此节点是否为单例节点,为此节点而生成的接口将完全不同。

参考:

如果节点的子节点设置为Singleton为true,则节点与子节点之间是一对多的关系。

反之,则是一对一的关系。

如下图所示:

上图可以看出,节点SalesOrders中的元素与每个LineItems节点之间关系是1:

N。

如果将节点LineItems更改成单例,那么无论父节点包含多少个元素,父节点与子节点之间是1:

1的对应关系。

一,作为runtime声明结果而生成的类

     创建上下文节点或者属性时,NWDS会默认创建一套类和方法,以表示上下文实体。

如果您选择仅通过通用接口来访问上下文,那么可以设置此节点的typedAccessRequired属性为False,即可关闭此类API的生成。

 生成的类

 方法

 上下文节点

 

 IPublic{nc}.I{cn}Node

 I{cn}Elementcreate{cn}Element

 

 I{cn}Elementcurrent{cn}Element

 

 I{cn}Elementget{cn}ElementAt(int)

 

 voidbind(I{cn}Element)

 

 I{chn}Nodenode{chn}()

 

 I{chn}Nodenode{chn}(int)

 上下文元素

 

 IPublic{nc}.I{cn}Element

 

 

 Stringget{cn}Name()

 

 voidset{cn} Name(String)

 

 I{chn}Elementcurrent{chn}Element()

 I{chn}Elementcreate{chn}Element()

 

 I{chn}Elementget{chn}ElementAt(int)

 I{chn}Nodenode{chn}()

 仅当{cn}有子节点{chn}时,系统才会在“上下文节点”下创建粗体名称方法。

 仅当{chn}是与{cn}相关的非单例节点时,系统才会在“上下文元素”之下创建粗体的名称方法。

二,递归节点

    如果您想在上下文内表示递归数据结构,那么您需要使用递归节点。

典型事例就是文件系统。

目录可以包含文件或者子目录。

每个子目录级别均可重复这一定义。

如下图所示。

自从小不点让我帮忙解决JCO问题,至今应该半月有余,期间查了无数的资料,到今天为止,终于搞定了JCO的messageserver问题。

开始是无法找到SPACELogonGroup,解决过程中,经历了服务器无法启动,被锁定管理员帐号,启用紧急用户sap*,回复UME,学会查看日志,学会在ECC中使用T-code,一系列的问题~~

 

今天终于解决了困扰我多日的问题给解决了:

现象:

********************************************************************************

com.sap.mw.jco.JCO$Exception:

(102)RFC_ERROR_COMMUNICATION:

ConnecttomessageserverhostfailedConnect_PMTYPE=BMSHOST=shsapsrvGROUP=SPACER3NAME=ITIMSSERV=sapmsITIPCS=1ERRORGroupSPACEnotfoundTIMEMonAug2516:

41:

002008RELEASE700COMPONENTLGVERSION5RC-6MODULElgxx.cLINE4299DETAILLgIGroupXCOUNTER1

********************************************************************************

解决方案:

==========================================================

SMLGisthetransaction.

ThereisnormallyatleastonegroupcalledSPACE.

Logongroupsarenottiedtousers-they'retiedtothedifferentinstancenumbersthatmakeupyourABAPsystem.

TrypublishingtheABAPdetailsagainwithRZ70.

==========================================================

图解:

首先使用SMLG(MaintainLogonGroup)事务码

 

第二步,可以看到我们的MessageServer的logonGroup没有被设定。

 

第三步:

设定好Group,最后效果如下:

 

现在回到:

http:

//localhost:

50000/webdynpro/welcome/Welcome.jsp

来设定JCO了~~

 JCo的安装

・把librfc32.dll放到C:

¥WINNT¥system32目录下

・在JavaProject中,把sapjco.jar增加到Classpath、再使用importcom.sap.mw.jco.*即可。

■ Sample

packagecom.abeam.jco;

importcom.sap.mw.jco.*;

publicclassTutorialConnect1{

JCO.ClientmConnection;

publicTutorialConnect1(){

try{

//Changethelogoninformationtoyourownsystem/user

mConnection=

JCO.createClient(

    "800",//SAPclient

    "user01",//userid

    "password",//password

    "EN",//language

    "ides1",//applicationserverhostname

    "00");//systemnumber

mConnection.connect();

System.out.println(mConnection.getAttributes());

mConnection.disconnect();

}

catch(Exceptionex){

ex.printStackTrace();

System.exit

(1);

}

}

publicstaticvoidmain(Stringargs[]){

TutorialConnect1app=newTutorialConnect1();

}

}

总结一些常见问题,不断更新中......

问题:

页面上Button的跳转开发流程

 ① 【Actions】tab中,建立ActionEvent

 ② 【Layout】tab中,为ButtonUI的onAction时间设定actionevent

 ③ 【Implementation】tab中,Viewcontroller的actioneventhandler处理

问题:

用TextView表示文字列

方法一:

从ViewController的Context表示

在TextView的text属性中,设定ContextTextViewStr,在View的wdDoInit中代码如下:

wdThis.wdGetContext().currentContextElement().setTextViewStr("HelloWorld");

方法二:

ViewController的wdDoModifyView中,直接设定Text属性

if(firstTime){

  IWDTextViewtxt=(IWDTextView)view.getElement("TextViewStr");

  txt.setText("ThisiswrittenbywdDoModifyView");

}

问题:

给节点添加元素

           IUserPreferencesElementuserPrefEl=

                    wdContext.nodeUserPreferences().createUserPreferencesElement();

           wdContext.nodeUserPreferences().addElement(userPrefE1);

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 经管营销

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1