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…

     

如果這文章對你有幫助,請掃左上角微信支付-支付寶,給於打賞,以助博客運營