版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、U8API開發(fā)手冊作者:商平鋒版權(quán)所有:用友軟件股份有限公司1. 簡介U8API是為U8客戶化應(yīng)用開發(fā)提供的一套標(biāo)準(zhǔn)化的 U8ERP業(yè)務(wù)編程接口。是 U8UAP二 次開發(fā)體系的重要組成部分。它包括一整套涵蓋 U8ERP采購、銷售、庫存、制造(規(guī)劃中)、 財務(wù)(規(guī)劃中)、基本檔案(規(guī)劃中)等業(yè)務(wù)模塊的 API接口資源。U8API的推出為U8標(biāo)準(zhǔn) 產(chǎn)品更好的適應(yīng)用戶的個性化需求,更好的實(shí)現(xiàn)客戶化交付提供了有力支持。U8API按照U8ERP業(yè)務(wù)產(chǎn)品模塊進(jìn)行分類,并以U8主要業(yè)務(wù)實(shí)體(單據(jù)、檔案、憑證)作為操作對象,提供了常用的基本操作。比如:對于庫存的收發(fā)單據(jù),提供“新增”、“審核”、“棄審”、“刪
2、除”、“裝載”、“修改”六個API接口。目前,U8API提供了供應(yīng)鏈采購、銷售、 庫存三個產(chǎn)品的所有單據(jù)的增刪改、審核/棄審等API接口,后續(xù)版本會逐步將制造、 財務(wù)、基本檔案等模塊的 API納入進(jìn)來。U8API通過“U8API資源管理器”對U8范圍內(nèi)所有API進(jìn)行集中統(tǒng)一分類管理,形成了一套完整的U8API資源庫。U8API的使用者可以使用“ U8API資源管理器”瀏覽、查看API及其接口定義,并可輔助進(jìn)行代碼生成 (目前支持C#和VB語言);API的開發(fā)者可以通過此 工具發(fā)布、注冊 API,所有業(yè)務(wù)API都必須在“ U8API資源管理器”中進(jìn)行注冊。U8API還提供了一套運(yùn)行時調(diào)用框架U8
3、APIBroker。它是所有U8API的調(diào)用代理,用戶要使用某個 API只需調(diào)用U8APIBroker即可,無需直接訪問真正的API。U8APIBroker作為一個服務(wù)代理中間件,起到了隔離API的提供者與使用者的作用,降低了耦合依賴關(guān)系。U8API與U8EAI接口從功能上看比較相識,但它們的特性有差別。U8API采用傳統(tǒng)的編程模型,更靠近底層,業(yè)務(wù)邏輯粒度更細(xì),而且還需要或依賴一些特定的上下文環(huán)境,比如:login、事務(wù)等;而U8EAI接口則是完全松耦合的,采用XML和請求/響應(yīng)的消息傳遞模式,且業(yè)務(wù)粒度比較粗放。這些特性的差別決定了它們的應(yīng)用領(lǐng)域不同,U8API更適合于U8內(nèi)部的功能擴(kuò)展和
4、客戶個性化開發(fā),而U8EAI則適合外部系統(tǒng)與 U8之間以業(yè)務(wù)數(shù)據(jù)交換為特征的應(yīng)用集成開發(fā)。2. API應(yīng)用2.1. API總體應(yīng)用過程2.1.1 API瀏覽查找在“開始”- “程序”- “用友ERP-U8 - “ UAP目錄下找到“ U8API資源管理器”, 單擊,登錄,進(jìn)入“ U8API資源管理器”。在左側(cè)“ U8API”樹形節(jié)點(diǎn)下,找到某某模塊,如“庫存管理”模塊(可以看到下面列有很多個單據(jù),如盤點(diǎn)單、采購入庫單等),展開要操作的單據(jù),分兩個子節(jié)點(diǎn):“事件”和“服務(wù)接口” ,在“服務(wù)接口”下可以看到該單據(jù)提供的API接口,如“添加新單據(jù)”、“審核單據(jù)”等。雙擊這些節(jié)點(diǎn)出現(xiàn)該API的詳細(xì)描述
5、,如下圖2.1所示。在節(jié)點(diǎn)上右鍵單擊彈出“上下文菜單”,在“代碼示例”菜單項(xiàng)上彈出下一級子菜單,單擊它們,如單擊“VB代碼示例”則可以看到調(diào)用該 API的VB示例代碼,如下圖2.2所示。直接拷貝這些代碼,然后在集成開發(fā)環(huán)境(IDE)中編輯和編譯這些代碼,即能實(shí)現(xiàn)調(diào)用 U8標(biāo)準(zhǔn)API。利用這些代碼示例時,請按照其中每一步驟的提示說明正確操作,如添加必要的引用、按照自動生成的代碼填入正確的參數(shù)等。正確使用則可以調(diào)用成功,否則會返回詳細(xì)的錯誤信息。以下代碼中均以 VB為例,C#語言請具體查看對應(yīng)的 C#弋碼示例部分。jjj-DJIF皆二碼厲二井胡點(diǎn) LEFI叫呂肆鈿再-巴奶曽直-t険韋件* 野穫口
6、m*4壬戰(zhàn)卑書*左*車-曲軍誓 燼知皿亡西軽事-亡 m:x n脣也卻出庫*-e嚴(yán)es恥“已亡尿?不旨殆呂 亠上他HHU :咋|亡事&用芒片罠單亡冊簾伸匕確上T彌A Ltiff-toAHCfll pK-PSttE-folpli-審亠凸RJdiW*:匕啣目itJSdWAMlKlQ!: IF:匚 oiHZ泊咖1_2口150皿0此111細(xì)12Jh理*是dflfe*FmMJXMU DO啦JXiUlme曲SdasiFwinan: its曲 twt Ot“rt9周用走h(yuǎn)禮送rt炳i 細(xì)!IT書WElsFlibafliePiCCCEu:?* 訓(xùn)Zma章號:逅回i草死一亦H HU 5血InnrtK H由話俛村煩
7、斧朋:口岸工鎂或加開一U則雨1KMfoTilwi-BcKiMriin拉開血軸創(chuàng)44bkAiEP.ukiF圖2.1接口描述Wri fUpi.iivr圖2.2代碼示例2.1.2 API調(diào)用過程?組件引用針對兩種語言,需要引用不同的組件。(1)VB:%U8SOFT%UFMOMU8APIFrameworkUFIDA.U8.U8APIFramework.tlb 、 U8SOFT%UFMOMU8APIFrameworkUFIDA.U8.MomServiceCom mon.tlb、%U8SOFT%UFMOMU8APIFrameworkUFIDA.U8.U8MOMAPIFramework. tlb、添加 Mi
8、crosoft XML v3.0弓 1用如下圖2.3、2.4所示。(2)C#:%U8SOFT%In tegereropl ntegererop.U8Logi n.dll、%U8SOFT%Integereroplntegererop.MSXML2.dll、%U8SOFT%UFMOMU8APIFrameworkUFIDA.U8.U8APIFramework.dll 、%U8SOFT%UFMOMU8APIFr ameworkUFIDA.U8.MomServiceCommon.dll、%U8SOFT%UFMOMU8APIFram eworkUFIDA.U8.U8MOMAPIFramework.dll如
9、下圖2.5、2.6、2.7所示。其中,U8S0FT%示U8-872的安裝目錄。引用For A.ppli cati査扶氾圍(XL | j UB研工Far mu總workUFIBA_LHEIEzAcrab:.4 rr n Vi iVisual !軋)匸 runtime otjects and procedura Vi sual Ea,sic objects azid pr oca Jur&sOLE Ant ob ati-onUTIDA VS MtmServi ceCsmniQiiIfFIDA US UBAPIFr i-n ew&rltUTIDA_VS_V6lfl0rAFIJramewoi-kMic
10、roS+. XHU v3.0 lv8IASIASO UFIDA. US. MoiiServi c&CofwiiMi. m ri VFIDA Ue.USAJIFranewQrk tlb ? WLDA. US. WWOHAFIfr iiniff?rk tlb立件名;文件類型: |類型庫(* ftlb:*. tlb.*. dll)圖2.3添加對U8API框架類庫引用(.tlb)圖 2.4 添加 Microsoft XML v3.0 引用圖2.5添加對 U8Login.dll引用圖 2.6 添加對 lntegererop.MSXML2.dll 引用圖2.7添加對U8API框架類庫引用(.dll)? A
11、PI調(diào)用添加必要的引用后,可以直接利用自動生成的代碼示例(支持VB和C#兩種語言),結(jié)合API接口詳細(xì)描述,填入必要的參數(shù)值,就可以調(diào)用U8 API。總體上,對U8 API的調(diào)用分成六個步驟:1) 構(gòu)造u8login 對象并登陸;2) 構(gòu)造環(huán)境上下文對象,傳入 login,并按需設(shè)置其它上下文參數(shù);3) 構(gòu)造APIBroker,調(diào)用Connect,傳入API地址標(biāo)識(Url)和環(huán)境上下文;4) API參數(shù)賦值;5) 調(diào)用API ;6) 獲取返回結(jié)果。詳細(xì)的API調(diào)用過程請看下文“ API內(nèi)容”中各個模塊中介紹的“開發(fā)步驟” 。下面重點(diǎn)介紹幾個關(guān)鍵要點(diǎn)和步驟:環(huán)境上下文、API地址、APIBro
12、ker、普通參數(shù)賦值、B0參數(shù)賦值。?環(huán)境上下文環(huán)境上下文指在調(diào)用 U8API時需要初始化的調(diào)用環(huán)境,包括Login、事務(wù)、特殊的業(yè)務(wù)參數(shù)等。環(huán)境上下文被初始化后,相關(guān)的環(huán)境參數(shù)會被業(yè)務(wù)API使用。Dim u8EnvCtx As New U8EnvContextLogin需要將U8Login對象傳遞給環(huán)境上下文,U8Login對象必須已經(jīng)登錄過。Set u8EnvCtx. U8Login = ologin事務(wù)如果需要由外部發(fā)起事務(wù),則可以發(fā)起事務(wù)的 ADOConnection對象傳遞給環(huán)境上下文:Set u8EnvCtx. BizDbConnection = new ADO. Connecti
13、on ()同時需要設(shè)置一個外部事務(wù)標(biāo)記:u8EnvCtx. IsIndependenceTransaction = true特殊業(yè)務(wù)參數(shù)特殊業(yè)務(wù)參數(shù)指調(diào)用某些 API需要設(shè)置的特定上下文參數(shù),比如:銷售的API必須要設(shè)置如VoucherType上下文參數(shù),設(shè)置方法為:u8EnvCtx. SetApiContext VoucherType , 23? API地址API地址是指 API在U8API系統(tǒng)中的唯一標(biāo)識,也叫API的URI,通過該標(biāo)識唯一確定一個U8API。如,API地址U8API/SaleOrder/Save 代表銷售訂單中的“新增或修改”這樣一個 API 接口。? APIBroker
14、APIBroker是所有U8API的調(diào)用代理接口。使用U8所有API都必須通過 APIBroker間接調(diào)用。APIBroker作為一個服務(wù)代理中間件,起到了隔離API的提供者與使用者的作用,降低了耦合依賴關(guān)系。調(diào)用API的時候,需要首先創(chuàng)建一個 APIBroker,然后調(diào)用其Connect, 傳入API地址和環(huán)境上下文:Dim u8apiBroker As New U8ApiComBrokeru8apiBroker. Connect U8API/SaleOrder/Save , u8EnvCtx?普通參數(shù)賦值A(chǔ)PI參數(shù)分兩種類型:B0參數(shù)和普通參數(shù)。普通參數(shù)是指非單據(jù)表頭/表體類型的參數(shù),包括
15、基本類型參數(shù)(Stri ng、In teger 等)、知名對象參數(shù)(Conn ection、DOMDocumer等)。 普通參數(shù)的賦值采用如下方式:u8apiBroker. AssignNormalValue Voucherstate , 2? B0參數(shù)賦值B0參數(shù)即單據(jù)表頭或表體類型的參數(shù)。對 象,另一種傳DOM寸象。以下分別介紹:B0參數(shù),支持兩種方式傳入,一種傳B0對傳B0對象給B0表頭參數(shù)或表體參數(shù)賦值,推薦使用B0對象(Buss in ess0bject )。例如:Dim domHead As Business0bjectSet domHead = u8apiBroker. GetB
16、oParam( domHead)domHeadRowCount= 1;設(shè)置行數(shù),不設(shè)置也可給B0對象的字段賦值,值可以是真實(shí)類型,也可以是無類型字符串以下代碼示例只設(shè)置第一行值。各字段定義詳見API服務(wù)接口定義I *以下是必輸字段*domHead(0).SetValue poid,主關(guān)鍵字段,Integer類型domHead(0).SetValue dpodate,日期,Date類型domHead(0).SetValue cpoid,訂單編號,String類型I *以下是非必輸字段*domHead(0).SetValue ipresent,現(xiàn)存量,String類型domHead(0).SetV
17、aluecmaketime,制單時間,Date類型domHead(0).SetValuecmodifytime,修改時間,Date類型在此種情況下 U8API框架會對B0對象各字段進(jìn)行參數(shù)校驗(yàn)。對字段進(jìn)行賦值時,值可 以是真實(shí)類型,也可以是無類型的字符串。傳D0M寸象給B0表頭參數(shù)或表體參數(shù)賦值,也支持直接傳入D0M寸象(D0MDocumento例如:Dim domHead As New MSXML2.D0MDocumentdomHead.load domHead.xmlu8apiBroker. AssignNormalValue domHead, domHead但是,在此種情況下U8 API
18、框架不會對D0M寸象進(jìn)行參數(shù)驗(yàn)證。請在使用該方法之前,確保D0M寸象的正確性。2.1.3 API典型應(yīng)用場景?執(zhí)行單一操作單一操作指一項(xiàng)任務(wù)只需要一個API完成,比如:單據(jù)新增、審核/棄審、刪除等單一操作。這是API調(diào)用最常見的場景,只需按照API的接口規(guī)范構(gòu)造參數(shù)直接調(diào)用即可。?執(zhí)行復(fù)合操作復(fù)合操作,即一項(xiàng)任務(wù)由多個 API的協(xié)作來完成。比如,自定義的單據(jù)維護(hù)界面的主要 邏輯,一般由以下四個步驟構(gòu)成:1) 加載單據(jù);2) 在編輯界面上顯示;3) 用戶修改單據(jù)字段;4) 提交保存。以上步驟需要進(jìn)行兩次API調(diào)用:1) 加載單據(jù)時候調(diào)用“加載 API”,以獲取單據(jù)B0對象(或原始DOM寸象)并在
19、界面 上展現(xiàn);2) 用戶在修改單據(jù)時其實(shí)就是在修改BO對象,用戶保存單據(jù)時調(diào)用“保存 API”,此時要將此BO對象傳給“保存API”(而不用構(gòu)造新的 BO對象)。代碼示例(1) 首先,登陸;構(gòu)造u8login對象并登陸Dim ologin AsObjectSet ologin = CreateObject ( U8Login.clsLogin )If Not ologin. login (AS, (default)001, 2008 , demo, 2008-7-7 , localhost ) ThenMsgBoxologin. ShareString(2) 然后,通過LOAD接 口獲取BO對
20、象;構(gòu)造環(huán)境上下文對象,傳入login,并按需設(shè)置其它上下文參數(shù)Dim u8EnvCtx As New U8EnvContextSet u8EnvCtx. U8Login = ologin設(shè)置上下文參數(shù)u8EnvCtx. SetApiContext VoucherType,上下文值構(gòu)造APIBroker,調(diào)用Connect,傳入Api的地址標(biāo)識(Url),傳入上下文Dim u8apiBroker As New U8ApiComBrokeru8apiBroker. Connect 裝載單據(jù)的地址標(biāo)識 ”,u8EnvCtxAPI參數(shù)賦值u8apiBroker . AssignNormalValue
21、 參數(shù)名,參數(shù)值調(diào)用LOA接口 APIIf u8apiBroker. InvokeApi () = False Then錯誤處理MsgBoxu8apiBroker. GetLastError ()If u8apiBroker.ErrorType = ExceptionType_Business Then處理API業(yè)務(wù)錯誤ElseIf u8apiBroker.ErrorType = ExceptionType_System Then處理系統(tǒng)錯誤End IfElse獲取返回結(jié)果獲取表頭或表體的BO對象,如果要取原始的 XMLDOM象結(jié)果,請使用 GetResult(參數(shù)名)Dim domHeadO
22、rBodyRet As BusinessObjectSet domHeadOrBodyRet = u8apiBroker.GetBoParam(表頭或表體參數(shù)名)MsgBoxdomHeadOrBodyRet. RowCount獲取返回 BO對象的行數(shù)End If(3) 接著,BO對象經(jīng)用戶修改重新賦值,并傳遞給UPDATED口提交保存; 修改獲取的BC對象,對需要更改的字段重新賦值domHeadOrBodyRe(O) .SetValue 字段名,”新的字段值重傳入新“新增或修改”API的地址標(biāo)識和環(huán)境上下文u8apiBroker. Connect 新增或修改” API 的地址標(biāo)識,u8EnvC
23、tx表頭或表體參數(shù)賦值u8apiBroker .SetBoParam 表頭或表體參數(shù)名, domHeadOrBodyRetAPI參數(shù)賦值u8apiBroker .AssignNormalValue 參數(shù)名”,參數(shù)值調(diào)用 UPDAT接口 APIIf u8apiBroker. InvokeApi () = False ThenEnd If(4) 最后,獲取返回結(jié)果。獲取普通返回值Dim result As Stringresult = CStr (u8apiBroker. GetReturnValue ()獲取out/inout 參數(shù)值結(jié)束本次調(diào)用,釋放API資源u8apiBroker. Disc
24、onnectSet u8apiBroker = Nothing22 API內(nèi)容221采購管理?功能介紹為了支持U8二次開發(fā)對業(yè)務(wù)單據(jù)的開發(fā),本功能提供了實(shí)現(xiàn)采購業(yè)務(wù)單據(jù)各種操作功能的編程接口。使用采購管理的API開發(fā)接口,可以對庫存管理中的采購到貨單、采購普通發(fā)票、采購專用發(fā)票、采購訂單、請購單、采購運(yùn)費(fèi)發(fā)票等單據(jù)進(jìn)行審核、棄審、獲?。ɑ?裝載)、新增、修改、刪除。?使用環(huán)境必須安裝.NET FrameWork 2.0 ;必須安裝U8-872版本的采購管理產(chǎn)品;必須安裝API適配器組件PUAPIConcrete.dll?接口說明采購管理二次開發(fā)接口說明:審核單據(jù)-ConfirmPO方法參數(shù):d
25、omHeadAPI上下文:VoucherType bPositive sBillType sBusType單據(jù)表頭,DOM對象,必輸單據(jù)類型,具體類型參看API上下文描述紅藍(lán)標(biāo)識:True,藍(lán)字;False,紅字 為空串業(yè)務(wù)類型:普通采購,直運(yùn)采購,受托代銷棄審單據(jù)-CancelconfirmPO 方法 參數(shù):domHead單據(jù)表頭,API上下文:DOM對象,必輸VoucherType bPositive sBillType sBusType單據(jù)類型,具體類型參看API上下文描述紅藍(lán)標(biāo)識:True,藍(lán)字;False,紅字 為空串業(yè)務(wù)類型:普通采購,直運(yùn)采購,受托代銷裝載單據(jù)-Load方法參數(shù):
26、DomHead domBody strWhere varVoucherlD strLocateWhereAPI上下文: VoucherType bPositive sBillType sBusType表頭DOM寸象 表體DOM寸象 過濾條件串 單據(jù)主表ID 定位條件串單據(jù)類型,具體類型參看 API上下文描述紅藍(lán)標(biāo)識:True,藍(lán)字;False,紅字為空串業(yè)務(wù)類型:普通采購,直運(yùn)采購,受托代銷刪除單據(jù)-Delete方法 參數(shù):DomHead domBody CurDomAPI上下文: VoucherType bPositive sBillType sBusType表頭DOM寸象表體DOM寸象返回
27、DOM格式錯誤信息單據(jù)類型,具體類型參看 API上下文描述紅藍(lán)標(biāo)識:True,藍(lán)字;False,紅字為空串新增或修改新單據(jù)-VoucherSave 方法參數(shù):DomHead單據(jù)表頭,DOM對象,必輸domBody單據(jù)表體,DOM對象,必輸VoucherState 保存狀態(tài),必輸。2增加;1修改;0非編輯curID返回單據(jù)頭IDCurDom返回DOM格式錯誤信息UserMode 使用模式,0: CS; 1:BSAPI上下文:VoucherType單據(jù)類型,具體類型參看 API上下文描述bPositive紅藍(lán)標(biāo)識:True,藍(lán)字 ;False,紅字業(yè)務(wù)類型:普通采購,直運(yùn)采購,受托代銷sBillT
28、ype為空串sBusType業(yè)務(wù)類型:普通采購,直運(yùn)采購,受托代銷?開發(fā)步驟調(diào)用采購單據(jù)某一 API,主要有以下六個步驟:1.構(gòu)造u8login對象并登陸聲明和創(chuàng)建u8login類對象前應(yīng)該先引用U8API類庫中的Integererop.U8Login.dll代碼示例如下:Dim ologin As ObjectSet ologin = CreateObject ( U8Login.clsLogin )聲明 u8login 對象登陸If Not ologin. login (AS, (default)001, 2008 , demo, 2008-7-7 , localhost ) ThenMs
29、gBoxologin. ShareString注意:如果當(dāng)前環(huán)境中有l(wèi)ogin對象則可以省去第一步。2. 構(gòu)造環(huán)境上下文對象,傳入login,并按需設(shè)置其它上下文參數(shù)Dim u8EnvCtx As New U8EnvContext構(gòu)造環(huán)境上下文對象Set u8EnvCtx. U8Login = ologin傳入 login設(shè)置上下文參數(shù)u8EnvCtx. SetApiContextu8EnvCtx. SetApiContextVoucherType,上下文值上下文數(shù)據(jù)類型:int,含義:單據(jù)類型,采購訂單bPositive,上下文值上下文數(shù)據(jù)類型:bool,含義:紅藍(lán)標(biāo)識:True,藍(lán)字u8E
30、nvCtx. SetApiContextsBillType,上下文值上下文數(shù)據(jù)類型:string,含義:為空串u8EnvCtx. SetApiContextsBusType,上下文值上下文數(shù)據(jù)類型:string,含義:業(yè)務(wù)類型:普通采購,直運(yùn)采購,受托代銷注意:如果是外部事務(wù),則需要傳遞ADO.Connection對象,并將IsIndependenceTransaction 設(shè)置為true :Set u8EnvCtx. BizDbConnection = new ADO. Connection ()u8EnvCtx. IsIndependenceTransaction = true3. 構(gòu)造A
31、piBroker對象,調(diào)用Connect,傳入API的地址標(biāo)識(Url)和環(huán)境上下文Dim u8apiBroker As New U8ApiComBrokeru8apiBroker. Connect U8API/PurchaseOrder/VoucherSave , u8EnvCtx4. API對象參數(shù)賦值1) 給BC表頭參數(shù)DomHeac或表體參數(shù)domBody賦值有兩種方法,如下:方法一是直接傳入MSXML2.DOMDocume ntCla對象,代碼如下:Dim domHead As New MSXML2.DOMDocumentdomHead.load domHead.xmlu8apiBr
32、oker. AssignNormalValue DomHead domHead方法二是構(gòu)造Bus in essObject對象,具體方法如下:首先通過GetBoParam方法獲取表頭或表體參數(shù)Dim DomHead As BusinessObjectSet DomHead = u8apiBroker. GetBoParam( DomHea)DomHeadRowCount= 1 設(shè)置行數(shù)給BO寸象的字段賦值,值可以是真實(shí)類型,也可以是無類型字符串以下代碼示例只設(shè)置第一行值。各字段定義詳見API服務(wù)接口定義注意:表體的行數(shù)只能為一行,可以對表體設(shè)置多行。當(dāng)設(shè)置行數(shù)為某個值時,行數(shù)并不限定為該最大值
33、,可以一直順序添加至任意行,但有一個規(guī)則:例如當(dāng)設(shè)置為10時,可以對第0、1、9行賦值,當(dāng)對第10行賦值時候,則會順序添加一個新行,但此時是不能對第11行賦值的,當(dāng)添加一個新行(第 10行)后,又可以對第11行進(jìn)行賦值。*以下是必輸字段*1DomHead(0).SetValue poid, 字段值 主關(guān)鍵字段,Integer 類型DomHead(0).SetValue cbustype, 字段值業(yè)務(wù)類型,String 類型DomHead(0).SetValue dpodate, 字段值日期,Date類型DomHead(0).SetValue cpoid, 字段值訂單編號,String 類型*以
34、下是非必輸字段* I現(xiàn)存量,String類型制單時間,Date類型修改時間,Date類型DomHead(0).SetValue ipresent, 字段值DomHead(0).SetValue cmaketime, 字段值DomHead(0).SetValue cmodifytime, 字段值2)給普通參數(shù)賦值例如,給普通參數(shù)Voucherstate (參數(shù)名)賦值。此參數(shù)的數(shù)據(jù)類型為 Integer,此參數(shù)按值傳遞,具體請 參考服務(wù)接口定義u8apiBroker. AssignNormalValue VoucherState ,參數(shù)值參數(shù)類型:Integer注意:所有參數(shù)名不限大小寫。3)給
35、“ OUT型”參數(shù)賦值為方便用戶使用U8API,如果參數(shù)數(shù)據(jù)類型為一般值類型,如String、Integer、Long、Double、Boolean、Date等,則不必傳入一個參數(shù)變量(傳入也可);否則,則必須一個參數(shù)變量。如:該參數(shù)curID為0U型參數(shù),由于其數(shù)據(jù)類型為 String,為一般值類型,因此不必傳入一個參數(shù)變量。在API調(diào)用返回時,可以通過 GetResult(curID) 獲取該參數(shù)CurDorcfe OUT型參數(shù),由于其數(shù)據(jù)類型為 MSXML2.IXMLDOMDocume,2E般值類型,因此必須傳入一個參數(shù)變量。在 API調(diào)用返回時,可以直接使用該參數(shù)Dim CurDom
36、As New MSXML2XMLDOMDocume2tu8apiBroker. AssignNormalValue CurDon, CurDom 參數(shù)類型:MSXML2.IXMLDOMDocument2當(dāng)不傳入一個參數(shù)變量時,在API調(diào)用返回時,可以通過 GetResult(參數(shù)名)獲取其值;當(dāng)不必傳入一個參數(shù)變量時,在API調(diào)用返回時,可以直接引用該參數(shù)。4) 給“ INOUT型”參數(shù)賦值對“ INOUT型”型參數(shù),則不論是否是一般值類型,都需要傳入?yún)?shù)變量。其他與“OUT型”參數(shù)一樣。5. 調(diào)用APIIf u8apiBroker. InvokeApi () = False Then錯誤處理
37、MsgBoxu8apiBroker. GetLastError ()If u8apiBroker.ErrorType = ExceptionType_Business Then處理API業(yè)務(wù)錯誤ElseIf u8apiBroker.ErrorType = ExceptionType_System Then處理系統(tǒng)錯誤End If注意:對調(diào)用失敗,可以獲取出錯信息,如果是API框架的原因,則報告 MomSysException異常,如果是業(yè)務(wù)組件的原因,則報告MomBizException異常。6. 獲取返回結(jié)果1) 獲取BO對象在“裝載單據(jù)”時,通過 GetBoParam方法獲取表頭或表體參數(shù)
38、Dim DomHeadRet As BusinessObjectSet DomHeadRet = u8apiBroker. GetBoParam( DomHead)MsgBoxDomHeadRet.RowCount獲取返回BO寸象的行數(shù)注意:如果要取原始的XMLDOM象結(jié)果,請使用GetResult(DomHead)Dim DomHeadRet As New MSXML2DOMDocumentSet DomHeadRet = u8apiBroker. GetResult (DomHead)以上獲取的行數(shù)是BC對象的實(shí)際行數(shù)。獲取BO寸象各字段的值。以下代碼示例只取第一行。字段定義詳見API服務(wù)
39、接口定義*以下是必輸字段kkkkkkkkkkkkkkkkkkkkkkkkkkkk/tlDim poidRet As IntegerpoidRet = CInt(DomHeadRet(0).GetValue(poid)主關(guān)鍵字段,Integer 類型Dim cbustypeRet As StringcbustypeRet = CStr(DomHeadRet(0).GetValue(cbustype)業(yè)務(wù)類型,String 類型Dim dpodateRet As DatedpodateRet = CDate(DomHeadRet(0).GetValue(dpodate)日期,Date 類型*以下是
40、非必輸字段*Dim ipresentRet As StringipresentRet = CStr(DomHeadRet(0).GetValue(ipresent)現(xiàn)存量,String 類型Dim cmaketimeRet As DatecmaketimeRet = CDate(DomHeadRet(0).GetValue(cmaketime) 制單時間,Date 類型Dim cmodifytimeRet As DatecmodifytimeRet = CDate(DomHeadRet(0).GetValue(cmodifytime)修改時間,Date 類型2) 獲取普通返回值代碼如下:獲取普
41、通返回值。此返回值數(shù)據(jù)類型為 String,此參數(shù)按值傳遞,具體請參考服務(wù)接口定義Dim result AsStringresult =CStr (u8apiBroker. GetReturnValue ()3) 獲取普通“ OUT型”或“ INOUT型”返回值如前所述,對普通“ OUT型”或“ INOUT型”參數(shù),如果是一般值類型,則通過GetResult方法獲取其返回值,否則直接使用該引用。如,獲取普通OU參數(shù)curID。此返回值數(shù)據(jù)類型為String,在使用該參數(shù)之前,請判斷是否為空Dim curIDRet AsStringcurIDRet = CStr(u8apiBroker. Get
42、Result (curID)獲取普通 OUT參數(shù)CurDom此返回值數(shù)據(jù)類型為 MSXML2.IXMLDOMDocume,2前面已定義該參數(shù), 請直接使用222銷售管理?功能介紹為了支持U8二次開發(fā)對業(yè)務(wù)單據(jù)的開發(fā),本功能提供了實(shí)現(xiàn)銷售業(yè)務(wù)單據(jù)各種操作功 能的編程接口。使用銷售管理API開發(fā)接口,可以完成銷售管理的銷售報價單、銷售訂單、銷售發(fā)貨單、銷售退貨單、銷售普通發(fā)票、銷售專用發(fā)票、委托代銷發(fā)貨單、委托代銷結(jié)算 單、銷售調(diào)撥單等單據(jù)的審核、棄審、獲取、新增、修改、刪除。?使用環(huán)境必須安裝.NET FrameWork 2.0 ;必須安裝U8-872版本的銷售管理產(chǎn)品;必須安裝API適配器組件
43、SAAPIConcrete.dll ;?接口說明銷售管理二次開發(fā)接口及參數(shù)說明:審核或棄審單據(jù)-Audit方法 參數(shù):domHead bVerifyAPI上下文:VoucherType單據(jù)表頭,DOM對象,必輸審核/棄審標(biāo)志,必輸。true表審核;false表?xiàng)墝弳螕?jù)類型,必輸。具體類型參看API上下文描述刪除單據(jù)-Delete方法 參數(shù):domHeadAPI上下文:VoucherType單據(jù)表頭,DOM寸象,必輸單據(jù)類型,必輸。具體類型參看API上下文描述裝載單據(jù)-Load方法 參數(shù):domHead domBody VouchID bln Auth單據(jù)表頭,DOM對象,必輸 單據(jù)表體,DOM
44、對象,必輸 需要裝載的單據(jù)號,可選 是否控制權(quán)限:trueAPI上下文:VoucherType單據(jù)類型,必輸。具體類型參看API上下文描述新增或修改單據(jù)-Save方法 參數(shù):domHeaddomBodyVoucherState VNewIDDomC onfigAPI上下文:VoucherType 單據(jù)類型,必輸。具體類型參看API上下文描述單據(jù)表頭,DOM對象,必輸單據(jù)表體,DOM對象,必輸保存狀態(tài),必輸。0增加;1修改單據(jù)的id,可選ATO,PTO選配配置,必輸,可設(shè)置為nothing?開發(fā)步驟調(diào)用銷售單據(jù)某一API,主要有以下六個步驟:1. 構(gòu)造u8login對象并登陸聲明和創(chuàng)建u8log
45、in類對象前應(yīng)該先引用 U8API類庫中的Integererop.U8Login.dll,代碼示例如下:Dim ologin As ObjectSet ologin = CreateObject ( U8Login.clsLogin )聲明 u8login 對象登陸If Not ologin. login (AS, (default)001, 2008 , demo, , 2008-7-7 , localhost ) ThenMsgBoxologin. ShareString注意:如果當(dāng)前環(huán)境中有l(wèi)ogin對象則可以省去第一步。2. 構(gòu)造環(huán)境上下文對象,傳入 login,并按需設(shè)置其它上下文參
46、數(shù)Dim u8EnvCtx As New U8EnvContext構(gòu)造環(huán)境上下文對象Set u8EnvCtx. U8Login = ologin傳入 login設(shè)置上下文參數(shù)u8EnvCtx. SetApiContext VoucherType,上下文值上下文數(shù)據(jù)類型:int,含義:單據(jù)類型:12注意:如果是外部事務(wù),則需要傳遞ADO.Connection對象,并將IsIndependenceTransaction 設(shè)置為true :Set u8EnvCtx. BizDbConnection = new ADO. Connection () u8EnvCtx. IsIndependenceTr
47、ansaction = true3. 構(gòu)造ApiBroker對象,調(diào)用Connect,傳入API的地址標(biāo)識(Url)和環(huán)境上下文Dim u8apiBroker As New U8ApiComBrokeru8apiBroker. Connect U8API/SaleOrder/Save , u8EnvCtx4. API對象參數(shù)賦值1)給BO表頭參數(shù)DomHea(或表體參數(shù)domBody賦值有兩種方法,如下:方法一是直接傳入MSXML2.DOMDocume ntCla對象,代碼如下:Dim domHead As New MSXML2DOMDocumentdomHead.load domHead.x
48、mlu8apiBroker. AssignNormalValue DomHead domHead方法二是構(gòu)造Bus in essObject對象,具體方法如下:首先通過GetBoParam方法獲取表頭或表體參數(shù)Dim DomHead As BusinessObjectSet DomHead = u8apiBroker. GetBoParam? DomHea)DomHeadRowCount= 1 設(shè)置行數(shù)給BC對象的字段賦值,值可以是真實(shí)類型,也可以是無類型字符串以下代碼示例只設(shè)置第一行值。各字段定義詳見API服務(wù)接口定義注意:表體的行數(shù)只能為一行,可以對表體設(shè)置多行。當(dāng)設(shè)置行數(shù)為某個值時,行數(shù)
49、并不限定為該最 大值,可以一直順序添加至任意行,但有一個規(guī)則:例如當(dāng)設(shè)置為10時,可以對第0、1、9行賦值,當(dāng)對第10行賦值時候,則會順序添加一個新行,但此時是不能對第11行賦值的,當(dāng)添加一個新行(第 10行)后,又可以對第11行進(jìn)行賦值。*以下是必輸字段 *domHead(0).SetValue id,domHead(0).SetValue csocode,domHead(0).SetValue ddate,字段值主關(guān)鍵字段,Integer類型字段值訂單號,String類型字段值訂單日期,Date類型*以下是非必輸字段*domHead(0).SetValue fstockquanO,domHead(0).SetValue fcanusequanO,domHead(0).SetValue iverifystate,字段值現(xiàn)存件數(shù),字段值可用件數(shù),字段值iverifystateDouble類型Double類型,String 類型2)給普通參數(shù)賦值例如,Integer,此參數(shù)按值傳遞,具體請參數(shù)類型:Intege
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 福建省三明市大田縣2022-2023學(xué)年八年級下學(xué)期期中考試物理試題【含答案、解析】
- 2025年度門窗安裝與綠色建筑認(rèn)證服務(wù)合同7篇
- 二零二五年度農(nóng)家樂旅游咨詢服務(wù)與導(dǎo)游服務(wù)合同4篇
- 房地產(chǎn)市場調(diào)研報告
- 二零二五年度文化旅游節(jié)慶活動策劃合同:文化旅游活動整體運(yùn)營管理協(xié)議3篇
- 2025年度個人藝術(shù)品收藏與交易合同范本10篇
- 房地產(chǎn)市場供給側(cè)改革
- 2025年地表水資源勘察合同
- 2025年貴州嘉城建設(shè)投資有限公司招聘筆試參考題庫含答案解析
- 2025年青海省青海湖旅游集團(tuán)公司招聘筆試參考題庫含答案解析
- 湖北省十堰市城區(qū)2024-2025學(xué)年九年級上學(xué)期期末質(zhì)量檢測綜合物理試題(含答案)
- 2024企業(yè)答謝晚宴會務(wù)合同3篇
- 高中生物選擇性必修1試題
- 電氣工程及其自動化專業(yè)《畢業(yè)設(shè)計(論文)及答辯》教學(xué)大綱
- 《客艙安全管理與應(yīng)急處置》課件-第14講 應(yīng)急撤離
- 中華人民共和國文物保護(hù)法
- 2025屆高考作文押題預(yù)測5篇
- 節(jié)前物業(yè)安全培訓(xùn)
- 一年級數(shù)學(xué)(上)計算題專項(xiàng)練習(xí)集錦
- 阿里巴巴國際站:2024年珠寶眼鏡手表及配飾行業(yè)報告
- 高甘油三酯血癥相關(guān)的器官損傷
評論
0/150
提交評論