金蝶云星空插件實(shí)戰(zhàn)開(kāi)發(fā)——新手入門(mén)教程
一、服務(wù)插件實(shí)戰(zhàn)開(kāi)發(fā)
面向云星空二次開(kāi)發(fā)的新手,我們帶來(lái)一個(gè)實(shí)戰(zhàn)教程。本教程旨在教你如何在采購(gòu)訂單列表工具條的“保存”操作中實(shí)現(xiàn)自定義提示。我們將使用Visual Studio 2019,結(jié)合C語(yǔ)言,以及金蝶云星空7.6.0版本,共同構(gòu)建一個(gè)服務(wù)插件(APP插件)示例。

前提是你已經(jīng)安裝好金蝶云星空系統(tǒng)和金蝶BOS IDE。對(duì)于系統(tǒng)安裝和基礎(chǔ)知識(shí),建議參考之前的文章:金蝶云星空部署教程和二次開(kāi)發(fā)基礎(chǔ)知識(shí)系列。本服務(wù)插件教程將從基礎(chǔ)開(kāi)始,盡管與表單和列表插件有重疊,但我們將保留必要內(nèi)容以確保新手順利入門(mén)。
服務(wù)插件的精髓在于定制功能。例如,在用戶審核單據(jù)時(shí),可以調(diào)用第三方接口處理數(shù)據(jù),或者在保存采購(gòu)訂單時(shí),檢查數(shù)量和金額、設(shè)置限制條件等。這些功能都可以通過(guò)服務(wù)插件來(lái)實(shí)現(xiàn)。
接下來(lái)是開(kāi)發(fā)步驟:
1. 新建一個(gè)Visual C類庫(kù)項(xiàng)目,設(shè)置項(xiàng)目名稱和框架。
2. 引入星空系統(tǒng)類庫(kù),如Kingdee.BOS.dll和Kingdee.BOS.Core.dll。

3. 在EndOperationTransaction中編寫(xiě)服務(wù)插件,包括信息提示窗口的實(shí)現(xiàn),以及特定單據(jù)操作時(shí)調(diào)用的邏輯。
4. 編譯生成Test.K3Cloud.SCM.MyAppPlugin.dll文件,并將其注冊(cè)到BOS中。
5. 重啟IIS服務(wù)器以激活插件。
具體操作包括:在Visual Studio中創(chuàng)建類庫(kù),引用相關(guān)庫(kù),編寫(xiě)服務(wù)插件代碼,編譯并設(shè)置輸出目錄。然后在BOS中注冊(cè)并測(cè)試插件的顯示和功能。遇到問(wèn)題時(shí),記得重啟IIS并檢查是否成功觸發(fā)自定義提示。
這只是一個(gè)基礎(chǔ)的開(kāi)發(fā)示例,金蝶云星空平臺(tái)支持的熱更新和代碼調(diào)試將在后續(xù)教程中詳細(xì)講解?,F(xiàn)在,讓我們一起邁出服務(wù)插件開(kāi)發(fā)的第一步吧!完成開(kāi)發(fā)的同學(xué)可以在相關(guān)討論區(qū)分享經(jīng)驗(yàn),共同學(xué)習(xí)進(jìn)步。本教程同步發(fā)布于公眾號(hào):代碼乾坤(CoderLand)。

二、自定義WebAPI開(kāi)發(fā)教程(一)
本教程面向云星空二次開(kāi)發(fā)新手,旨在闡述如何使用Postman模擬第三方系統(tǒng)更新采購(gòu)訂單的全過(guò)程。
開(kāi)發(fā)環(huán)境包括Visual Studio 2019,使用C語(yǔ)言進(jìn)行開(kāi)發(fā),系統(tǒng)版本為金蝶云星空7.6.0。本次的插件類型為自定義WebAPI。
請(qǐng)確保你的開(kāi)發(fā)機(jī)已安裝金蝶云星空系統(tǒng)和金蝶BOS IDE。建議新手閱讀相關(guān)背景知識(shí)文章,如金蝶云星空二次開(kāi)發(fā)-知識(shí)地圖、表單插件、列表插件及服務(wù)插件教程等,以便更好地理解和掌握后續(xù)內(nèi)容。完整的代碼示例和詳細(xì)教程請(qǐng)?jiān)L問(wèn)文章末尾提供的鏈接。
在金蝶云星空系統(tǒng)中,集成第三方系統(tǒng)主要通過(guò)三種方式:WebAPI、WebService和ClientProxy。其中,WebAPI是一種常用的數(shù)據(jù)對(duì)接方式。常見(jiàn)的WebAPI接口包括登錄驗(yàn)證、單據(jù)查看、單據(jù)保存、批量保存等。

接下來(lái)是自定義WebAPI的開(kāi)發(fā)步驟:
1. 登錄開(kāi)發(fā)環(huán)境,包括Visual Studio 2019和金蝶云星空系統(tǒng)。
2. 使用Postman或其他工具模擬第三方系統(tǒng)的請(qǐng)求,構(gòu)建并傳遞Model數(shù)據(jù)包。
3. 通過(guò)API接口進(jìn)行登錄驗(yàn)證,獲取訪問(wèn)令牌。
4. 構(gòu)造并傳遞JSON數(shù)據(jù)包,模擬錄單過(guò)程。根據(jù)傳入的JSON數(shù)據(jù)包填充字段值,觸發(fā)相關(guān)、實(shí)體服務(wù)和插件邏輯。

5. 調(diào)用Save、Submit、Audit等操作,觸發(fā)校驗(yàn)、邏輯和單據(jù)插件邏輯。
在開(kāi)發(fā)過(guò)程中,需要遵循系統(tǒng)字段列表屬性順序錄入數(shù)據(jù),以確保數(shù)據(jù)的正確性和完整性。開(kāi)發(fā)者應(yīng)熟悉.Net框架基礎(chǔ)結(jié)構(gòu),通過(guò)HttpApplication和HttpContext處理請(qǐng)求。星空的自定義WebAPI繼承自KDBaseService,請(qǐng)求路徑通常為x.common.kdsvc,通過(guò)反射執(zhí)行操作。
第一章:項(xiàng)目啟動(dòng)與類庫(kù)引入
本節(jié)我們將開(kāi)啟一個(gè)激動(dòng)人心的編程之旅。我們創(chuàng)建了一個(gè)Visual C類庫(kù),隨后引入了星空系統(tǒng)類庫(kù)。這是項(xiàng)目的基礎(chǔ),為我們后續(xù)的自定義WebAPI開(kāi)發(fā)鋪平了道路。
第二章:自定義WebAPI的編寫(xiě)

在成功引入星空系統(tǒng)類庫(kù)后,我們進(jìn)入到了自定義WebAPI的編寫(xiě)階段。我們的代碼包含了多個(gè)文件,如BusinessService.cs、Defineds.cs、Checker.cs、Formater.cs和BillHandler.cs等。每個(gè)文件都有其獨(dú)特的職責(zé),從程序邏輯、參數(shù)定義到單據(jù)操作等一應(yīng)俱全。其中,BusinessService.cs作為程序入口,定義了保存、提交和審核的WebAPI方法。
第三章:參數(shù)定義與校驗(yàn)
在Defineds.cs文件中,我們定義了常量和參數(shù)結(jié)構(gòu),包括各種動(dòng)作參數(shù)和客戶端請(qǐng)求參數(shù)以及處理結(jié)果的結(jié)構(gòu)。獲取單據(jù)的FormId和明細(xì)屬性Key是進(jìn)行參數(shù)校驗(yàn)的關(guān)鍵。而Checker.cs文件則負(fù)責(zé)客戶端參數(shù)的校驗(yàn)工作,確保所有參數(shù)都符合WebAPI的要求。
第四章:金蝶云星空的優(yōu)點(diǎn)探討
金蝶云星空作為金蝶集團(tuán)的主推軟件之一,擁有眾多顯著優(yōu)點(diǎn)。它不僅功能強(qiáng)大,集市場(chǎng)、銷售、財(cái)務(wù)、供應(yīng)于一體,而且安全可靠,操作簡(jiǎn)單。對(duì)企業(yè)老板而言,引入金蝶云星空將有效提升企業(yè)競(jìng)爭(zhēng)力,助力公司的發(fā)展。

第五章:金蝶云星空的使用與評(píng)價(jià)
金蝶云星空的使用體驗(yàn)非常良好。用戶評(píng)價(jià)稱其功能強(qiáng)大,支持多組織、多核算體系,并且數(shù)據(jù)安全有保障。它不需要購(gòu)買服務(wù)器和數(shù)據(jù)庫(kù),也不需要一次性購(gòu)買ERP軟件,更可免費(fèi)升級(jí),大大降低了企業(yè)的運(yùn)營(yíng)成本。關(guān)于開(kāi)單流程,用戶只需進(jìn)入云星空主界面,選擇相應(yīng)的模塊和應(yīng)用,然后按照引導(dǎo)填寫(xiě)相關(guān)信息即可完成開(kāi)單。
金蝶云星空輕分析發(fā)布指南
一、選擇需要發(fā)布的分析內(nèi)容
在云星空輕分析的平臺(tái)中,首先你需要挑選出你想要分享給眾人的分析報(bào)表或儀表盤(pán)。這些報(bào)表可能包含了你精心制作的數(shù)據(jù)可視化成果,是你對(duì)業(yè)務(wù)數(shù)據(jù)的深度解讀。

二、點(diǎn)擊分享按鈕
選定好需要發(fā)布的內(nèi)容后,點(diǎn)擊界面上的“分享”按鈕。系統(tǒng)會(huì)要求你選擇分享的渠道,如微信公眾號(hào)、企業(yè)微信或是郵件等。根據(jù)你的受眾群體和使用習(xí)慣,選擇一個(gè)最適合的渠道。
三、設(shè)置分享參數(shù)
分享渠道選定后,你需要為這次分享設(shè)置一些額外的參數(shù),比如分享的標(biāo)題、描述以及封面圖片等。這些元素將作為你的分析內(nèi)容的前臉,所以一定要用心設(shè)計(jì),以吸引更多的觀眾。
四、生成分享鏈接

完成上述步驟后,點(diǎn)擊“生成分享鏈接”按鈕。系統(tǒng)將為你生成一個(gè)獨(dú)特的鏈接,這個(gè)鏈接將帶你分析內(nèi)容的頁(yè)面。將這個(gè)鏈接復(fù)制下來(lái),準(zhǔn)備將其分享到你選擇的渠道上。
五、分享鏈接并查看
將生成的鏈接粘貼到你選擇的渠道中,如微信公眾號(hào)文章或郵件中。你的受眾可以通過(guò)點(diǎn)擊這個(gè)鏈接,直接查看到你的云星空輕分析中的報(bào)表或儀表盤(pán)。需要注意的是,確保被分享的人有權(quán)限訪問(wèn)數(shù)據(jù)源和分析報(bào)表,否則他們將無(wú)法查看分析結(jié)果。
金蝶云星空插件實(shí)戰(zhàn)開(kāi)發(fā)——列表插件新手入門(mén)教程
閱讀對(duì)象:云星空二次開(kāi)發(fā)新手

需求場(chǎng)景:在采購(gòu)訂單列表工具條上新增按鈕
本教程的目標(biāo)是幫助新手在金蝶云星空的采購(gòu)訂單列表上增加一個(gè)名為“測(cè)試”的按鈕。當(dāng)點(diǎn)擊這個(gè)按鈕時(shí),會(huì)彈出一個(gè)提示框顯示“Hello world”。
一、前提準(zhǔn)備
確保你的開(kāi)發(fā)機(jī)上已經(jīng)安裝好了金蝶云星空系統(tǒng)和金蝶BOS IDE。如果你對(duì)系統(tǒng)的安裝部署還不熟悉,建議先閱讀之前的文章了解基礎(chǔ)知識(shí)。
二、操作步驟

1. 打開(kāi)金蝶云星空集成開(kāi)發(fā)平臺(tái),在業(yè)務(wù)視圖窗口選擇“供應(yīng)鏈”選項(xiàng),并在子系統(tǒng)中選擇“采購(gòu)管理”。
2. 點(diǎn)擊“確定”后,在右側(cè)的“項(xiàng)目”視圖窗口中,你會(huì)看到采購(gòu)管理的基礎(chǔ)資料和單據(jù)等對(duì)象。
3. 選擇“采購(gòu)訂單”,點(diǎn)擊右鍵呼出菜單,選擇“擴(kuò)展”選項(xiàng)。這是為了對(duì)單據(jù)進(jìn)行進(jìn)一步的修改和調(diào)整。
4. 保存擴(kuò)展后的設(shè)置,并點(diǎn)擊“刷新”按鈕,你會(huì)看到一個(gè)新擴(kuò)展出來(lái)的單據(jù)對(duì)象。
5. 在屬性窗口中找到“列表菜單”,呼出“菜單編輯”窗口。在這里,你可以對(duì)工具條進(jìn)行自定義設(shè)置。

6. 在工具條上點(diǎn)擊右鍵,選擇“按鈕”選項(xiàng),然后設(shè)置你的“測(cè)試”按鈕屬性。記住按鈕的標(biāo)識(shí),因?yàn)樵诤罄m(xù)的插件代碼中會(huì)用到這個(gè)標(biāo)識(shí)來(lái)判斷按鈕的點(diǎn)擊。
一、操作指南:設(shè)置與保存
完成相關(guān)設(shè)置后,關(guān)閉“菜單編輯”窗口,返回到BOS主窗口。在左上方工具欄上,你可以找到一個(gè)“保存”按鈕,點(diǎn)擊它以確保你的設(shè)置得以保存。在星空系統(tǒng)客戶端的采購(gòu)訂單列表窗口,你將會(huì)看到一個(gè)名為“測(cè)試”的按鈕,它的位置如示意圖所示。
二、創(chuàng)建Visual C類庫(kù)
為了進(jìn)行下一步的開(kāi)發(fā),我們需要打開(kāi)Visual Studio IDE。在啟動(dòng)窗口中,選擇“創(chuàng)建新項(xiàng)目”選項(xiàng)。在項(xiàng)目的類型列表中,找到并點(diǎn)擊“類庫(kù)(.NET Framework)”選項(xiàng)。接下來(lái),點(diǎn)擊“下一步”按鈕以配置項(xiàng)目信息。

根據(jù)金蝶官方的《二次開(kāi)發(fā)規(guī)范》,我們將項(xiàng)目命名定為:Test.K3Cloud.SCM.MyListPlugin,并選擇.NET Framework 4作為框架。具體的配置步驟如示意圖所示。
三、引用星空系統(tǒng)類庫(kù)
在Visual Studio IDE的解決方案資源管理器窗口中,選擇“引用”,然后右擊選擇“添加引用”選項(xiàng)。打開(kāi)“應(yīng)用管理器”窗口后,找到并選中“Kingdee.BOS.dll”和“Kingdee.BOS.Core.dll”。
如果列表中沒(méi)有這兩個(gè)類庫(kù),你可以點(diǎn)擊窗口下方的“瀏覽”按鈕,在星空系統(tǒng)的安裝目錄中找到它們。默認(rèn)的安裝目錄為:C:Program Files(x86)KingdeeK3CloudWebSiteBin。
四、編寫(xiě)按鈕點(diǎn)擊

對(duì)于表單插件和列表插件,我們需要分別繼承AbstractBillPlugIn和AbstractListPlugIn。在Visual Studio IDE中,按照需求編寫(xiě)相應(yīng)的代碼。
五、編譯與注冊(cè)插件
在Visual Studio IDE的菜單欄中,選擇“項(xiàng)目”選項(xiàng),并點(diǎn)擊“Test.K3Cloud.SCM.MyListPlugin”以打開(kāi)屬性配置窗口。在窗口的右側(cè),選擇“生成”菜單選項(xiàng),并將輸出路徑設(shè)置為金蝶的安裝目錄的Websitein目錄。
完成上述配置后,點(diǎn)擊“保存”。接著,點(diǎn)擊菜單中的“生成”選項(xiàng),在下拉菜單中選擇“生成Test.K3Cloud.SCM.MyListPlugin”。一旦生成了“Test.K3Cloud.SCM.MyListPlugin”動(dòng)態(tài)鏈接庫(kù)文件,你可以在Visual Studio IDE下方的輸出窗口中查看生成成功的提示。
生成的Test.K3Cloud.SCM.MyListPlugin.dll文件將位于C:Program Files(x86)KingdeeK3CloudWebSiteBin目錄。在此目錄中,你可以找到這個(gè)插件文件。

為了使用插件,你需要在BOS的設(shè)計(jì)器中注冊(cè)它。打開(kāi)BOS的項(xiàng)目窗口,找到“采購(gòu)訂單”表單對(duì)象,并在其屬性窗口中的“表單插件”屬性里進(jìn)行注冊(cè)操作。詳細(xì)的注冊(cè)步驟如示意圖所示。在云星空系統(tǒng)插件開(kāi)發(fā)之旅:一個(gè)簡(jiǎn)單的列表插件配置與測(cè)試流程
一、尋找目標(biāo)文件
我們需要定位到特定的文件。在系統(tǒng)的文件目錄結(jié)構(gòu)中,進(jìn)入“C:Program Files(x86)KingdeeK3CloudWebSiteBin”,在此目錄下,找到名為T(mén)est.K3Cloud.SCM.MyListPlugin.dll的文件并選擇。
二、插件配置信息的確認(rèn)與保存
隨后,打開(kāi)相關(guān)的配置窗口,在“插件配置信息”窗口中,點(diǎn)擊“確定”按鈕以確認(rèn)所選插件的配置。返回到BOS主窗口后,確保點(diǎn)擊“保存”,等待系統(tǒng)成功保存你的配置更改。

三、重啟IIS服務(wù)
在完成了插件的配置與保存之后,下一步是重啟IIS服務(wù)。打開(kāi)IIS管理器,選擇相應(yīng)的站點(diǎn),然后在右側(cè)的操作窗口中點(diǎn)擊“重新啟動(dòng)”按鈕。這是每次代碼更新后必須進(jìn)行的一個(gè)步驟,以確保新配置或更新的代碼能夠正常生效。
四、測(cè)試插件功能
重啟IIS服務(wù)完成后,我們可以測(cè)試插件的功能。打開(kāi)云星空系統(tǒng)客戶端,導(dǎo)航到“采購(gòu)訂單”列表窗口。在這里,點(diǎn)擊“測(cè)試”按鈕,如果一切正常,系統(tǒng)將會(huì)彈出一個(gè)提示框,顯示“Hello world”。這個(gè)簡(jiǎn)單的測(cè)試流程,能夠幫助我們確認(rèn)插件是否已經(jīng)正確配置并生效。
五、關(guān)于教程的一些說(shuō)明

本教程提供了一個(gè)關(guān)于云星空系統(tǒng)列表插件開(kāi)發(fā)的最簡(jiǎn)單示例。在實(shí)際開(kāi)發(fā)中,除了自定義插件,其他插件也是遵循類似的流程。值得注意的是,在發(fā)布和調(diào)試星空系統(tǒng)插件的過(guò)程中,每次更新都需要重啟IIS服務(wù)。
雖然云星空系統(tǒng)支持“熱更新”和“代碼調(diào)試分析”,但本教程主要聚焦于插件本身的開(kāi)發(fā)流程,因此并未涉及這兩個(gè)高級(jí)功能。后續(xù)我們會(huì)推出專門(mén)的教程來(lái)詳細(xì)介紹這兩個(gè)主題。
對(duì)于初學(xué)者來(lái)說(shuō),初次嘗試可能會(huì)遇到一些困難,但請(qǐng)不要?dú)怵H。萬(wàn)事開(kāi)頭難,通過(guò)多次實(shí)踐,你會(huì)逐漸掌握這一技能。希望本教程能夠幫助到你!加油!
作業(yè)與挑戰(zhàn)
現(xiàn)在,你可以按照教程的步驟嘗試完成列表插件的開(kāi)發(fā)。完成后,歡迎在評(píng)論區(qū)留言分享你的經(jīng)驗(yàn),如果遇到任何問(wèn)題,也請(qǐng)?jiān)谠u(píng)論區(qū)留言,我們大家相互交流,共同進(jìn)步。

文章同步發(fā)布
本文同步發(fā)布在我們的公眾號(hào):代碼乾坤(CoderLand)上,歡迎關(guān)注我們的公眾號(hào),獲取更多關(guān)于編程和技術(shù)的最新資訊和教程。