SBO中的一個流程控制功能分析.doc_第1頁
SBO中的一個流程控制功能分析.doc_第2頁
SBO中的一個流程控制功能分析.doc_第3頁
SBO中的一個流程控制功能分析.doc_第4頁
SBO中的一個流程控制功能分析.doc_第5頁
已閱讀5頁,還剩5頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

在我開發(fā)的項目過程中,許多客戶和顧問向我提出了許許多多的功能需求。但我在分析研究了這些需求后發(fā)現(xiàn)許多的需求我們顧問均可以解決。尤其是流程控制方面的需求。我把這方面的一些粗淺看法整理出來,供大家分享。一、各種顧問在項目實施過程中出現(xiàn)過的看是需要研發(fā)解決的需求1、如何控制不同的銷售人員只能修改自己管理的客戶的數(shù)據(jù)?2、如何控制不同的銷售人員只能錄入修改自己的銷售訂單?3、如何給sbo的任何單據(jù)(我這里強調任何單據(jù),包括銷售訂單,銷售發(fā)貨單、發(fā)票、采購訂單、采購收貨單、采購發(fā)票、財務憑證、庫存轉儲等等)加上自己的邏輯驗證控制(例如不填某一個字段不用許sbo添加到數(shù)據(jù)庫)4、如何在各種單據(jù)或主數(shù)據(jù)添加修改過程中加上自己想要的功能?以前這些需求一般都是顧問要求研發(fā)人員來參與協(xié)同工作來解決。我們現(xiàn)在要討論的就是這些問題統(tǒng)統(tǒng)不再研發(fā),顧問可輕松搞定。當然這要求顧問要具備一些基礎知識。二、顧問要解決這些問題要具備的基礎知識1、sql的知識。我一直認為,一個ERP軟件顧問高手對SQL必須的基本素質。他可以讓你隨心所欲從這個充滿金礦的ERP數(shù)據(jù)海洋里找到你想要的金子。我認為有志于成為ERP軟件顧問高手的朋友在此付出一點時間和金錢是絕對值得的!它是打開我們理解ERP軟件內核的金鑰匙,也是會讓我們終生受益的一種技能。無論我們從事的是哪一個ERP系統(tǒng)的顧問工作!2、SBO對象的概念與規(guī)則。當然,我覺得您在讀這篇雜論前要有堅持讀下去的意志。盡管這好像是有點枯燥乏味。但這點乏味的知識會給您帶來無窮的想象力!SBO的DI對象,針對顧問通俗點簡單點說就像物料主數(shù)據(jù)、客戶主數(shù)據(jù)、銷售訂單、采購訂單等等這些SBO里的東東。他們在SBO系統(tǒng)里都有一個編號,就像我們都有一個名字一樣用于唯一識別。例如物料主數(shù)據(jù)的編號是:4。具體清單如下:Member ValueoChartOfAccounts 1oBusinessPartners 2oBanks 3oItems 4oVatGroups 5oPriceLists 6oSpecialPrices 7oItemProperties 8oUsers 12oInvoices 13oCreditNotes 14oDeliveryNotes 15oReturns 16oOrders 17oPurchaseInvoices 18oPurchaseCreditNotes 19oPurchaseDeliveryNotes 20oPurchaseReturns 21oPurchaseOrders 22oQuotations 23oIncomingPayments 24oJournalVouchers 28oJournalEntries 30oStockTakings 31oContacts 33oCreditCards 36oCurrencyCodes 37oPaymentTermsTypes 40oBankPages 42oManufacturers 43oVendorPayments 46oLandedCostsCodes 48oShippingTypes 49oLengthMeasures 50oWeightMeasures 51oItemGroups 52oSalesPersons 53oCustomsGroups 56oChecksforPayment 57oInventoryGenEntry 59oInventoryGenExit 60oWarehouses 64oCommissionGroups 65oProductTrees 66oStockTransfer 67oWorkOrders 68oCreditPaymentMethods 70oCreditCardPayments 71oAlternateCatNum 73oBudget 77oBudgetDistribution 78oMessages 81oBudgetScenarios 91oSalesOpportunities 97oUserDefaultGroups 93oSalesStages 101oActivityTypes 103oActivityLocations 104oDrafts 112oDeductionTaxHierarchies 116oDeductionTaxGroups 117oAdditionalExpenses 125oSalesTaxAuthorities 126oSalesTaxAuthoritiesTypes 127oSalesTaxCodes 128oQueryCategories 134oFactoringIndicators 138oPaymentsDrafts 140oAccountSegmentations 142oAccountSegmentationCategories 143oWarehouseLocations 144oForms1099 145oInventoryCycles 146oWizardPaymentMethods 147oBPPriorities 150oDunningLetters 151oUserFields 152oUserTables 153oPickLists 156oPaymentRunExport 158oUserQueries 160oMaterialRevaluation 162oCorrectionPurchaseInvoice 163oCorrectionPurchaseInvoiceReversal 164oCorrectionInvoice 165oCorrectionInvoiceReversal 166oContractTemplates 170oEmployeesInfo 171oCustomerEquipmentCards 176oWithholdingTaxCodes 178oBillOfExchangeTransactions 182oKnowledgeBaseSolutions 189oServiceContracts 190oServiceCalls 191oUserKeys 193oQueue 194oSalesForecast 198oTerritories 200oIndustries 201oProductionOrders 202oPackagesTypes 205oUserObjectsMD 206oTeams 211oRelationships 212oUserPermissionTree 214oActivityStatus 217oChooseFromList 218oFormattedSearches 219oAttachments2 221oUserLanguages 223oMultiLanguageTranslations 224oDynamicSystemStrings 229oHouseBankAccounts 231oBusinessPlaces 247oLocalEra 250oSalesTaxInvoice 280oPurchaseTaxInvoice 281BoRecordset 300BoBridge 305oNotaFiscalUsage 260oNotaFiscalCFOP 258oNotaFiscalCST 259oClosingDateProcedure 261oBusinessPartnerGroups 10oBPFiscalRegistryID 278三、關鍵的存儲過程語法:大家打開sqlserver的查詢分析器,打開SBO的一個公司數(shù)據(jù)庫,查找一個存儲過程:SBO_SP_TransactionNotification 它就是讓我們得以控制SBO的魅力所在!ALTER proc SBO_SP_TransactionNotification object_type nvarchar(25), - SBO Object Typetransaction_type nchar(1), - Add, Update, Delete, Cancel, CLosenum_of_cols_in_key int,list_of_key_cols_tab_del nvarchar(255),list_of_cols_val_tab_del nvarchar(255)ASbegin- Return valuesdeclare error int - Result (0 for no error)declare error_message nvarchar (200) - Error string to be displayedselect error = 0select error_message = NOk- ADD YOUR CODE HERE- Select the return valuesselect error, error_messageend這個存儲過程的作用就是任何一個SBO對象操作完程前都會調用它一次。以便我們加入我們的邏輯控制來實現(xiàn)一些客戶的特殊要求。我們來看一下他的參數(shù):第一個參數(shù):object_type 這就是我們上邊討論的SBO對象的編號。每一個對象執(zhí)行Add, Update, Delete, Cancel, CLose操作時都會把操作的對象編號在這個參數(shù)中傳入,我們只要判斷該參數(shù)即可實現(xiàn)對不同的對象的不同的控制。我后邊會給大家提供一些練習。第二個參數(shù):transaction_type nchar(1), - Add, Update, Delete, Cancel, CLose當在SBO系統(tǒng)中執(zhí)行了添加操作,例如添加了一個物料主數(shù)據(jù),object_type的值就等于4,transaction_type的值就等于A 。第三個參數(shù):num_of_cols_in_key,對象關鍵字段的數(shù)目。例如物料主數(shù)據(jù)的關鍵字段是物料編碼,他只有一個關鍵字,所以該值等于1。第四個參數(shù):list_of_key_cols_tab_del 代表該對象的關鍵字段的字段名字,例如物料主數(shù)據(jù)就是Itemcode,單據(jù)就是Docentry.第五個參數(shù):list_of_key_cols_tab_del 代表關鍵字段的值。這時已非常重要的參數(shù)。我再次說明一點,經(jīng)過我測試,SBO的對象再添加修改時會現(xiàn)在數(shù)據(jù)庫里操作完成,然后調用該存儲過程。所以我們就靠這個字段來作為驗證控制我們的邏輯的入口之一了。在以上介紹的五個參數(shù)之中,最重要的就是object_type,transaction_type,list_of_cols_val_tab_del這三個參數(shù)。大家一定要明白他們的含義!內部的兩個重要控制參數(shù):error ,好了,揭示了這么多,就數(shù)他最重要了。計算機世界的0和1就讓他體現(xiàn)的淋漓盡致了。當我么給它賦值為零的時候,SBO的流程繼續(xù)運行。一旦我們給他賦值為1,好了,效果出現(xiàn)了,你在sbo中操作的對象就再也不能完成它的操作了!牛!就是這個牛的地方可以讓我們收拾SBO任何的對象,可以按客戶的心花讓SBO盡情的怒放。當然我們經(jīng)過我們自己的邏輯,把 error =1,不然SBO按自己的邏輯繼續(xù)下去了,總也得在SBO中給出個提示把,就像B1的狀態(tài)欄的提示一樣,那您就要動用error_message這個參數(shù)了。200個字符盡情地表述您的一肚子邏輯的解釋吧,幽默也好,冷冰冰也罷!好了我們解釋過了這個存儲過程的架構,那我接下來看看它的威力??纯碨BO的牛皮吹得力量能不能把雞蛋吹成氣球!四、幾個小例子第一個例子:我們就測試一下物料主數(shù)據(jù),并看一下這幾個參數(shù)。在查詢分析器打開該存儲過程,讓其處于編輯狀態(tài),要仔細找,SBO的存儲過程密密麻麻一大堆,看起來確實頭疼,對一個顧問來說。但研發(fā)人員也許不這樣認為。研發(fā)人員對代碼的好奇心永遠是無止境的。我就曾經(jīng)把SBO的存儲過程一個接一個的讀了個遍。管他加密的不加密的。讀了會有收獲的!呵呵。也讓咱看看SAP的牛人們使用什么樣的代碼來操作這個世界的企業(yè)用戶的數(shù)據(jù)的!ALTER proc SBO_SP_TransactionNotification object_type nvarchar(25), - SBO Object Typetransaction_type nchar(1), - Add, Update, Delete, Cancel, CLosenum_of_cols_in_key int,list_of_key_cols_tab_del nvarchar(255),list_of_cols_val_tab_del nvarchar(255)ASbegin- Return valuesdeclare error int - Result (0 for no error)declare error_message nvarchar (200) - Error string to be displayeddeclare aaa nvarchar(100) -WLJ test select error = 0select error_message = NOk- ADD YOUR CODE HEREif object_type=4-itemsbeginif transaction_type=A beginselect aaa =itemname from oitm where itemcode=list_of_cols_val_tab_del if aaa=Testbeginset error=1set error_message=物料主數(shù)據(jù)描述不能等于Test!+aaa +-+ list_of_key_cols_tab_del +-+list_of_cols_val_tab_del +-+cast(num_of_cols_in_key as nvarchar(20)endendelse if transaction_type=Dbeginset error=1set error_message=不允許小孩子瞎刪除! + list_of_key_cols_tab_del +-+list_of_cols_val_tab_del +-+cast(num_of_cols_in_key as nvarchar(20)endend- Select the return valuesselect error, error_messageend在這個例子里,我們首先對添加的物料主數(shù)據(jù)判斷其描述是否等于“Test”如果是,那就不讓它添加,對于物料主數(shù)據(jù)則不允許刪除。大家注意分析各參數(shù)的內容。我在這個例子里把各個參數(shù)的值也傳遞到SBO的消息提示里邊,這樣大家學習分析方便!第二個例子:上邊的例子我們測試驗證了主數(shù)據(jù),我們下邊來看一下單據(jù)。ALTER proc SBO_SP_TransactionNotification object_type nvarchar(25), - SBO Object Typetransaction_type nchar(1), - Add, Update, Delete, Cancel, CLosenum_of_cols_in_key int,list_of_key_cols_tab_del nvarchar(255),list_of_cols_val_tab_del nvarchar(255)ASbegin- Return valuesdeclare error int - Result (0 for no error)declare error_message nvarchar (200) - Error string to be displayeddeclare aaa nvarchar(100) -WLJ test select error = 0select error_message = NOk- ADD YOUR CODE HEREif object_type=17-salseorderbeginif transaction_type=Abeginset error=1set error_message=添加出錯提示! + list_of_key_cols_tab_del +-+list_of_cols_val_tab_del +-+cast(num_of_cols_in_key as nvarchar(20)endelse if transaction_type=Ubeginset error=1set error_message=更新出錯提示! + list_of_key_cols_tab_del +-+list_of_cols_val_tab_del +-+cast(num_of_cols_in_key as nvarchar(20)endend- Select the return valuesselect error, error_messageend當然這個例子我寫得簡單,只是測試在銷售訂單添加或更新的時候強不允許添加或更新。大家可以根據(jù)自己的邏輯來實際處理。我這里只是給大家提供一個思路。整合,當然我們實際工作中不可能只對一個對象操作,有可能對很對對象同時驗證,那就把上邊的合起來即可,即可以對物料主數(shù)據(jù)控制也可以對銷售訂單控制。我給大家寫了個小架構供大家參考使用。ALTER proc SBO_SP_TransactionNotification object_type nvarchar(25), - SBO Object Typetransaction_type nchar(1), - Add, Update, Delete, Cancel, CLosenum_of_cols_in_key int,list_of_key_cols_tab_del nvarchar(255),list_of_cols_val_tab_del nvarchar(255)ASbegin- Return valuesdeclare error int - Result (0 for no error)declare error_message nvarchar (200) - Error string to be displayedselect error = 0select error_message = NOkdeclare aaa nvarchar(100)if object_type=2 -BusinessPartnersbeginif transaction_type=Abeginset error=1set error_message=添加出錯提示! + list_of_key_cols_tab_del +-+list_of_cols_val_tab_del +-+cast(num_of_cols_in_key as nvarchar(20)endendelse if object_type=4-itemsbeginif transaction_type=A beginselect aaa =itemname from oitm where itemcode=list_of_cols_val_tab_del if aaa=Testbeginset error=1set error_message=添加出錯提示!+aaa +

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論