BPM技术文档2

1.3.3    指定process中的各activity的数据mapping,即在各个activity中可流转的数据

 

此步完成后,即可

    在process中加入数据对象

    可在process的activity中作数据mapping操作(否则,在input mapping中无的TaskInput中无UIRequest,在output mapping的TaskOutput中无UIResponse)

如此,即可在context与activity中的input/output做数据mapping。

 

在portal上的UWL中,将可以显示任务列表,此处的任务列表显示的内容可以定制并可用参数,在TASK的user text中定义,如下图所示:

此处的参数也从绑定的userinterface(compontent)中而来,若不绑定,则无可选的context数据(在UIRequest或UIResponse节点中)。即context(从绑定的compontent中取到)数据与activity的taskInput中的UIRequest绑定;与taskOutput中的UIResponse绑定。通过这种方式来实现UI与process的数据绑定及流转。

 

1.4    Deploy process

 

1.5    访问

http://192.168.0.233:50000/index.html 的san链接中,通过Configuration Management–àprocesses and tasks—-àprocess reposity来启动在1.4中deploy的流程

 

 

 

 

 

2    技术架构

DC关系:

3    结构

对于每个VIEW,分别对应有两个interface,假设view的名称为MMM,则接口名分别为IPrivateMMMView和IPublicMMMView,前者用于VIEW的对内数据操作,后者用于对外的数据交换,在VIEW中定义的ACTION在前者中定义,

在private的view中,

1.    context中所选的每个node都对应有两个静态内部类,分别为I{NodeNmae}Node、I{NodeName}Element,在这两个内部类中分别定义node的操作、属性等东西。通过提供的这些方法来操作VIEW中的数据,如查找按钮等。

2.    view中定义的method、action也在此接口中定义

3.    

 

每个view均实现java.io.Serializable类,有个IPrivateMMMView类型的变量wdThis,


public
PurchaseRequestView(IPrivatePurchaseRequestView wdThis)

{


this.wdThis = wdThis;


this.wdContext = wdThis.wdGetContext();


this.wdControllerAPI = wdThis.wdGetAPI();


this.wdComponentAPI = wdThis.wdGetAPI().getComponent();

}

 

对于每个web dynpro for java的组件,均有controllerviewwindow,其中controller对应有接口IPublic{组件名}IPrivate{组件名}的接口,其中IPrivate extends IPublic,IPublic中,有两个内部类,分别为IContextNode继承自DataNode表示节点,IContextElement继承自DataNodeElement表示元素,在对应的ControllerJAVA文件中,有一个私有成员wdThis变量类型为IPrivate的,故通过这个变量即可实现对Context的访问. 其中wdContext变量类型为上述IPublic中的内部类IcontextNode,通过该变量实现对Context的访问;
此外,另两个变量wdComponentAPI/wdControllerAPI的类型均为IWDCompontent,通过这两个变量可实现对message

 

尽量不要使用Custom Controller,只有在优化、简单化开发时才考虑使用

wdDoPostProcessing()

在复杂的应用中,用于校验来自多个组件的数据

wdDoBeforeNavigation

 

 

在不同的controller中共享数据

 

 

External-mapping

 

在设置internal mapping时,需要将cardinality设为1..n,否则在界面上不能输入。若view的context为从control映射过来,则需在controller的context中设置cardinality,在view中不能设置。

 

目前还不支持structure字段context属性的更名。

 

注意在VIEW中的BUTTON中,不要直接在VIEW中写代码更改屏幕中元素的值,而是应该在controller中更改值,方法是在controll中定义method,然后在view的layout的outline中,选中button,右键在出来的菜单中选择apply templete,在此定义action并在后续步骤中选择controll中定义的方法。 当然也可在view中action中写代码,但这种方法应该是违反了mvc的原理,即在view中直接更改了元素的值,理论上view应该只用于显示数据,而不应该操作数据。即在controll中定义方法,然后在view中通过wdThis.wdGet{StartComp}Controller()去调用controll中的数据,如下例所示:其中{}中即为Compontent的名称。


public
void
onActionInitialValue(com.sap.tc.webdynpro.progmodel.api.IWDCustomEvent wdEvent )

{


//$$begin Action Button(-750211490)


wdThis.wdGetStartCompController().initPersonInfo();

 

//$$end


}

以下文章点击率最高

Loading…


发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注