<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    spark的自留地(ofbiz/eclipse rcp/shark/opentaps)

      BlogJava :: 首頁 :: 聯系 :: 聚合  :: 管理
      54 Posts :: 0 Stories :: 112 Comments :: 0 Trackbacks

    架構

    CRM/SFA應用很大程度不同于其它的OFBizBiz應用,OFBIZ應用設計為一組可以整合在一起適合各種商業活動的進程,CRM/SFA應用設計為支持角色/活動的全部活動在CRM應用中,這樣子,它將帶來與其它應用的很多不同點

    1.CRM/SFA的商業邏輯粒度小于其它OFBiz,而且通常會調用很多其它應用中的action。如當創建一個帳戶時,CRM/SFA應用將調用另一個OFBiz服務創建Party、PartyGroup、PartyRole、PartyRelationship等等

    2.在OFBiz其它應用中高度抽象的數據模型在這里表達成更傳統直觀的概念。示例,“Party”被表達成為account ,lead, contact, team, 或 team member,  它們擁有不同的用戶界面和業務邏輯。

    3.OFBiz的“WorkEffort”面向用戶時表達為“Activity”,而且只是事件和業務可作為“Activity”,其它的 “WorkEffort”例如制造產品過程在CRM/SFA中不顯示出來。

    4.它擁有PartyRelationship.securityGroupId定義多個參與者之間權限的不同的安全模型(示例,組成員A是否有權訪問B帳戶?)它使用了不同的安全方法(查看“Security Documentation”了解詳細信息)

     

    用戶界面原則


    CRM/SFA應用有一個不同于其它OFBiz應用的界面原則。簡單來說,此原則就是 建立一個容易讓用戶明白和使用的界面,好過讓用戶不停的思考如何使用。


    示例,“work effort”是一個OFBiz中的a task, a project, an event, 或a manufacturing production step,在OFBiz的WorkEffort應用中讓用戶自己創建它時選擇對應的實例選項,而在這里,WorkEffort被分離在不同的人機界面上顯示各自的特性。


    大多數使用者,不會想“我打算創建一個work effort在參與者X和Y之間”,他們通常想“我為參與者X和Y在明天上午建立一個約會”。這樣CRM/SFA應用提供創建約會界面并加入參與者X和Y,在此界面啟動約會及完成它。


    所以這意味著有些在OFBiz中允許的操作在CRM/SFA界面中不再被允許。示例,在OFBiz創建一個“EVENT”類型的work effor時可把它關聯到貨運或產品制作過程。這些信息在OFBiz的work effort中是可見字段,盡管work effort在event中并無這些關聯字段。另一面,在CRM/SFA中界面看不到這些字段


    這樣的功能減少帶來的是操作的易于理解,且也讓一些日常的操作減少不必要的步驟。

    另一個UI原則是將很多分離的步驟合而為一個操作步驟。最好的例子是當你創建一個聯系人時,你可以在一個屏幕內輸入所有聯系人信息,而系統會自動的根據信息創建參與者、聯系信息及關聯項,將很多分離在不同OFBiz中的應用合而為一。

     
    最后,我們打算避免用戶點擊回退、向前去查看信息,所以太多數屏幕都把信息顯示在同一個屏幕里,而不是提供很多的信息標簽


    編碼約定

    另外,創建CRM/SFA應用,我們還有一些與其它不同的編碼約定:
    1.強制要求將視圖與數據準備分離,我們限制視圖層如freemaker頁/XML只承擔展現數據功能。這樣意味著在form組件中不會存在”action”標簽。

    2.在屏幕組件定義中,使用beanshell腳本比<entity-one> XML操作更好。

    3.Minilang腳本在一個方法中不要超過十行。使用java來編寫復雜的商業邏輯。不要在minilang中使用<or>、<and>及計算。

    4.保證代碼塊簡捷。一般的,如果你的方法超過兩百行,建議你考慮如何重構它。

    5.為你的代碼加上注釋。描述你編碼的目的和結果,而不僅是你做了什么。示例,如果你編寫了如下代碼
     invoiceId=null;
    不要注釋寫成://設置InvoiceId為null
    而應該寫成://invoiceId應該為空,否則服務不會創建一個新的發票

    6.使用較長的變量/方法名稱,如:computeForecastParentPeriod,而不是一個很短無意義的名稱。

    7.使用意指你所調用的實體對象的變量名,而不僅是一個縮略的變量名。 示例,如果你獲得一個orderItems集合,變量名不要僅叫做”item”——可以叫它們”orderItems”或”nextOrderItem”,諸如此類。如果你獲得一個OrderPaymentPreference實體,不要命名為“payments”,因為Payment實體同你命名的這個對象不是同一個東西。

    8.在FTL、表單組件、beanshell和Java服務中使用java來幫助將復雜的邏輯進行分離。

    9.將代碼分離在應用的不同目錄中,將表單、屏幕組件XML文檔放在widgets目錄中,將JAVA包放在src/目錄下,FTL放在webapp/crmsfa/,BSH腳本放在webapp/crmsfa/WEB-INF/actions/中…


    10.在服務XML中加了相關注釋指出需注意的事項或此服務可能發生的意外

    本文檔譯自opentaps v0.9 manual,本人翻譯,歡迎轉載,請注明出處.

    posted on 2008-09-28 15:45 shanghai_spark 閱讀(1788) 評論(0)  編輯  收藏 所屬分類: opentaps
    主站蜘蛛池模板: 拍拍拍无挡视频免费观看1000| 久久精品国产亚洲av麻豆蜜芽| 国产亚洲精品不卡在线| 国产网站免费观看| 青青草国产免费久久久91| 最新免费jlzzjlzz在线播放| 操美女视频免费网站| 天天看免费高清影视| 午夜爱爱免费视频| 国产成人aaa在线视频免费观看| 免费看大黄高清网站视频在线| 暖暖在线日本免费中文| 国产黄色片在线免费观看| 国产gav成人免费播放视频| 国产精品视_精品国产免费 | 亚洲精品自偷自拍无码| 亚洲成aⅴ人片久青草影院按摩| 亚洲AV日韩综合一区| 成人a毛片视频免费看| 亚洲阿v天堂在线2017免费| 插鸡网站在线播放免费观看| 四虎国产精品免费永久在线| 精品国产一区二区三区免费| 99视频精品全部免费观看| 2021免费日韩视频网| 日本二区免费一片黄2019| 亚洲精品国产综合久久一线| 亚洲午夜国产精品无码老牛影视| 亚洲av日韩av无码| 亚洲18在线天美| 特级毛片免费播放| 男人都懂www深夜免费网站| 国产精品免费观看| 成人爱做日本视频免费| 亚洲永久精品ww47| 亚洲毛片免费观看| 最新亚洲人成无码网www电影| 精选影视免费在线 | 精品免费人成视频app| 成年女人永久免费观看片| 亚洲精品色午夜无码专区日韩|