專利名稱::用于企業(yè)數(shù)據(jù)對(duì)象的系統(tǒng)和方法
技術(shù)領(lǐng)域:
:本發(fā)明的實(shí)施例一般涉及數(shù)據(jù)處理領(lǐng)域,并特別涉及用于企業(yè)數(shù)據(jù)對(duì)象的系統(tǒng)和方法
背景技術(shù):
信息技術(shù)(IT)的復(fù)雜性隨著時(shí)間的過(guò)去而繼續(xù)增長(zhǎng)。例如,企業(yè)應(yīng)用正在發(fā)展并且數(shù)據(jù)源正變得更加多樣。此外,IT基礎(chǔ)架構(gòu)越來(lái)越多地包含打包的企業(yè)軟件組、應(yīng)用程序和遺留(legacy)系統(tǒng)的異質(zhì)(heterogeneous)組合。在大公司中,多種獲取和剝奪常常使得該異質(zhì)性進(jìn)一步變得復(fù)雜,這創(chuàng)建了具有隨著這些商業(yè)變化而延續(xù)的全異的獨(dú)立的系統(tǒng)的IT基礎(chǔ)架構(gòu)。商業(yè)對(duì)IT基礎(chǔ)架構(gòu)提出的要求隨著時(shí)間的過(guò)去也不斷增加。例如,許多商業(yè)通過(guò)在諸如因特網(wǎng)的計(jì)算機(jī)網(wǎng)絡(luò)上傳遞的應(yīng)用程序而提供對(duì)其產(chǎn)品和服務(wù)的訪問(wèn)。但是,每個(gè)商業(yè)交易通常涉及訪問(wèn)由不同系統(tǒng)提供的眾多不同服務(wù)。例如,考慮取消訂單的處理。從商業(yè)的觀點(diǎn)看,取消訂單的處理包括幾個(gè)交叉功能(cross-functional)和交叉應(yīng)用(cross-application)的活動(dòng),諸如向顧客發(fā)送確認(rèn)、從產(chǎn)品計(jì)劃中去除該訂單、釋放分配給該訂單的材料、并通知開(kāi)票部門(mén)。這些活動(dòng)的每個(gè)通常都包括訪問(wèn)由不同系統(tǒng)提供的服務(wù)。對(duì)服務(wù)的增長(zhǎng)需求與提供服務(wù)的IT基礎(chǔ)架構(gòu)的復(fù)雜性增加的結(jié)合表明企業(yè)數(shù)據(jù)正被日益復(fù)雜的系統(tǒng)更頻繁地使用。例如,取消定單的處理可以涉及在一種或另一種程度上處理基本相同的企業(yè)數(shù)據(jù)的多個(gè)系統(tǒng)。這些系統(tǒng)可以使用每個(gè)潛在地具有不同數(shù)據(jù)源的各種應(yīng)用程序以處理企業(yè)數(shù)據(jù)。
發(fā)明內(nèi)容本發(fā)明的實(shí)施例通常針對(duì)一種用于企業(yè)數(shù)據(jù)對(duì)象的系統(tǒng)和方法。企業(yè)數(shù)據(jù)對(duì)象是可以用在商業(yè)系統(tǒng)內(nèi)較廣范圍的技術(shù)和語(yǔ)義層中的數(shù)據(jù)容器。特別地,企業(yè)數(shù)據(jù)對(duì)象提供可以用于訪問(wèn)和操縱復(fù)雜且結(jié)構(gòu)化的數(shù)據(jù)的高層接口。在實(shí)施例中,企業(yè)數(shù)據(jù)對(duì)象還包括用于訪問(wèn)和操縱諸如類型描述、模式、值集合、依賴于語(yǔ)言的標(biāo)簽等的元數(shù)據(jù)的高層接口。在附圖中作為示例而非作為限制地圖示了本發(fā)明的實(shí)施例,在所述附圖中,類似的標(biāo)號(hào)表示類似的元件。圖1是面向服務(wù)架構(gòu)的所選元件的框圖。圖2是圖示根據(jù)本發(fā)明實(shí)施例的企業(yè)數(shù)據(jù)對(duì)象框架的所選方面的框圖。圖3是圖示描述符接口的所選方面的框圖。圖4是圖示IEdoElement接口的所選方面的框圖。圖5是圖示IEdoAtomicElement接口的所選方面的框圖。圖6是圖示IEdoVariant接口的所選方面的框圖。圖7是圖示IEdoStructure接口的所選方面的框圖。圖8是圖示IEdoTable接口的所選方面的框圖。圖9是圖示了根據(jù)本發(fā)明實(shí)施例的用于訪問(wèn)和操縱企業(yè)數(shù)據(jù)對(duì)象的方法的某些方面的流程圖。具體實(shí)施例方式本發(fā)明的實(shí)施例通常針對(duì)一種用于企業(yè)數(shù)據(jù)對(duì)象的系統(tǒng)和方法。企業(yè)數(shù)據(jù)對(duì)象是可以用在商業(yè)系統(tǒng)內(nèi)較廣范圍的技術(shù)和語(yǔ)義層中的數(shù)據(jù)容器。特別地,企業(yè)數(shù)據(jù)對(duì)象提供可以用于訪問(wèn)和操縱復(fù)雜且結(jié)構(gòu)化的數(shù)據(jù)的高層接口。如下面進(jìn)一步描述的,企業(yè)數(shù)據(jù)對(duì)象還可以包括用于訪問(wèn)和操縱諸如類型描述、模式、值集合、依賴于語(yǔ)言的標(biāo)簽等的元數(shù)據(jù)的高層接口。在一個(gè)實(shí)施例中,元數(shù)據(jù)可以在運(yùn)行時(shí)動(dòng)態(tài)創(chuàng)建和修改。動(dòng)態(tài)創(chuàng)建和修改元數(shù)據(jù)的步驟可以包括例如為全體數(shù)據(jù)類型和/或數(shù)據(jù)類型的特例創(chuàng)建和/或修改元數(shù)據(jù)。圖1是面向服務(wù)的架構(gòu)100的所選元件的框圖。術(shù)語(yǔ)“面向服務(wù)的架構(gòu)”指的是其中使用描述語(yǔ)言定義服務(wù)(或其它功能體)的架構(gòu)。這些服務(wù)可以具有被調(diào)用來(lái)執(zhí)行商業(yè)處理的接口。這些接口可以是依賴于平臺(tái)的,并且可以被設(shè)計(jì)為使用標(biāo)準(zhǔn)化的通信協(xié)議。所示的面向服務(wù)的架構(gòu)100的實(shí)施例包括服務(wù)顧客102、企業(yè)服務(wù)104、和企業(yè)系統(tǒng)106。服務(wù)顧客102是調(diào)用面向服務(wù)的架構(gòu)100所提供的商業(yè)服務(wù)的接口、應(yīng)用程序、處理等等。服務(wù)顧客的示例包括用戶接口110、應(yīng)用程序112、交互表格114、和商家到商家處理116。企業(yè)服務(wù)104是由企業(yè)系統(tǒng)106提供的功能體的抽象。即,它們將企業(yè)系統(tǒng)106所提供的粒度(granular)服務(wù)聚集成商業(yè)層企業(yè)服務(wù),以提供用于使企業(yè)級(jí)(scale)商業(yè)場(chǎng)景(scenarios)自動(dòng)化的構(gòu)件塊。服務(wù)顧客102調(diào)用接口120-128以訪問(wèn)企業(yè)服務(wù)104。在實(shí)施例中,企業(yè)服務(wù)104至少部分基于SAPAG所提供的NetWeaverTM平臺(tái)。企業(yè)系統(tǒng)106為面向服務(wù)的架構(gòu)100提供企業(yè)應(yīng)用程序。企業(yè)系統(tǒng)106的示例包括薪水冊(cè)130、財(cái)務(wù)132、顧客關(guān)系管理134、供應(yīng)鏈管理136、和企業(yè)資源規(guī)劃138。在實(shí)施例中,通過(guò)調(diào)用接口140-148而訪問(wèn)這些企業(yè)系統(tǒng)。面向服務(wù)的架構(gòu)100包括企業(yè)數(shù)據(jù)對(duì)象150-154。企業(yè)數(shù)據(jù)對(duì)象150-154是可以跨越系統(tǒng)(例如,在服務(wù)顧客102與企業(yè)系統(tǒng)106之間、和/或在企業(yè)系統(tǒng)106內(nèi)的應(yīng)用程序之間,等等)傳輸?shù)臄?shù)據(jù)容器。在實(shí)施例中,企業(yè)數(shù)據(jù)對(duì)象150-154在面向服務(wù)的架構(gòu)100的各層之間流動(dòng)而無(wú)需被拷貝。企業(yè)數(shù)據(jù)對(duì)象150-154是被設(shè)計(jì)成在商業(yè)系統(tǒng)的較廣范圍的技術(shù)和語(yǔ)義層中使用的數(shù)據(jù)容器。特別地,企業(yè)數(shù)據(jù)對(duì)象150-154提供商業(yè)應(yīng)用程序開(kāi)發(fā)者可以用以訪問(wèn)和操縱數(shù)據(jù)的高層接口。如下面進(jìn)一步描述的,企業(yè)數(shù)據(jù)對(duì)象接口描述了包括原子(atomics)、結(jié)構(gòu)、和表的各種數(shù)據(jù)類型。在實(shí)施例中,這些數(shù)據(jù)類型的描述符可以在運(yùn)行時(shí)動(dòng)態(tài)創(chuàng)建和增強(qiáng)。在一個(gè)實(shí)施例中,結(jié)構(gòu)的字段可以經(jīng)由字段名稱、索引和/或迭代器(iterator)來(lái)訪問(wèn)。類似地,表的記錄可以經(jīng)由關(guān)鍵字字段、索引和/或迭代器來(lái)訪問(wèn)。在實(shí)施例中,企業(yè)數(shù)據(jù)對(duì)象包括內(nèi)部數(shù)據(jù)結(jié)構(gòu)(例如,內(nèi)部數(shù)據(jù)結(jié)構(gòu)160)。內(nèi)部數(shù)據(jù)結(jié)構(gòu)提供用于在系統(tǒng)之間傳輸數(shù)據(jù)的機(jī)制。在一個(gè)實(shí)施例中,內(nèi)部數(shù)據(jù)結(jié)構(gòu)的大小是由程序在運(yùn)行時(shí)動(dòng)態(tài)確定的(當(dāng)然,該大小可能受系統(tǒng)的存儲(chǔ)容量或其它因素限制)。內(nèi)部數(shù)據(jù)結(jié)構(gòu)可以具有定義的數(shù)據(jù)類型。在實(shí)施例中,數(shù)據(jù)類型是簡(jiǎn)單數(shù)據(jù)類型或者復(fù)合數(shù)據(jù)類型。簡(jiǎn)單數(shù)據(jù)類型指的是描述單個(gè)值并且不包含額外結(jié)構(gòu)的數(shù)據(jù)類型。表1提供了在本發(fā)明的實(shí)施例中企業(yè)數(shù)據(jù)對(duì)象所支持的簡(jiǎn)單數(shù)據(jù)類型的列表。在替代性實(shí)施例中,企業(yè)數(shù)據(jù)對(duì)象可以支持更多的簡(jiǎn)單數(shù)據(jù)類型、更少的簡(jiǎn)單數(shù)據(jù)類型和/或不同的簡(jiǎn)單數(shù)據(jù)類型。表1復(fù)合數(shù)據(jù)類型指的是基于其它類型的數(shù)據(jù)的數(shù)據(jù)類型。表2提供了在本發(fā)明實(shí)施例中企業(yè)數(shù)據(jù)對(duì)象所支持的復(fù)合數(shù)據(jù)類型的列表。在替代性實(shí)施例中,企業(yè)數(shù)據(jù)對(duì)象可以支持更多的復(fù)合數(shù)據(jù)類型、更少的復(fù)合數(shù)據(jù)類型和/或不同的復(fù)合數(shù)據(jù)類型。表2在實(shí)施例中,面向服務(wù)的架構(gòu)100可以是多層(multi-tiered)網(wǎng)絡(luò)的一部分。多層網(wǎng)絡(luò)可以使用在多層架構(gòu)的每層中的各種不同應(yīng)用技術(shù)來(lái)實(shí)現(xiàn),所述不同應(yīng)用技術(shù)包括基于Java2EnterpriseEditionTM(“J2EE”)平臺(tái)、Microsoft.NET平臺(tái)、IBM公司開(kāi)發(fā)的Websphere平臺(tái)和/或SAPAG開(kāi)發(fā)的高級(jí)商業(yè)應(yīng)用編程(AdvancedBusinessApplicationProgramming,“ABAP”)平臺(tái)。此外,本發(fā)明的實(shí)施例并不限于面向服務(wù)的架構(gòu)100。在替代性實(shí)施例中,企業(yè)數(shù)據(jù)對(duì)象可以用在較廣范圍的客戶機(jī)-服務(wù)器和對(duì)等架構(gòu)中。圖2是圖示了根據(jù)本發(fā)明實(shí)施例的企業(yè)數(shù)據(jù)對(duì)象框架200的所選方面的框圖。在所示的實(shí)施例中,企業(yè)數(shù)據(jù)對(duì)象框架200包括Descriptor(描述符)接口210、EdoElement接口220、EdoAtomicElement接口230、EdoVariant接口240、EdoStructure接口250、和EdoTable接口260。如下面進(jìn)一步描述的,接口210-260使能企業(yè)數(shù)據(jù)對(duì)象的創(chuàng)建和修改。此外,接口210-260使能企業(yè)數(shù)據(jù)對(duì)象所包含的數(shù)據(jù)的創(chuàng)建和修改。在替代性實(shí)施例中,企業(yè)數(shù)據(jù)對(duì)象框架200可以包括更多接口、更少接口和/或不同接口。圖3是圖示IDescriptor接口300的所選方面的框圖。在實(shí)施例中,IDescriptor接口300提供對(duì)企業(yè)數(shù)據(jù)對(duì)象元數(shù)據(jù)的訪問(wèn)。從而,IDescriptor接口300通過(guò)提供訪問(wèn)對(duì)象元數(shù)據(jù)的功能而使能對(duì)企業(yè)數(shù)據(jù)對(duì)象的自我測(cè)量(introspection)。所圖示的IDescriptor接口300的實(shí)施例包括下面的方法StringgetName()302、IDataTypegetType()304、MetagetMeta()306、intsize()308、IDescriptor310、getElement(intindex)312、和Iteratoriterator()314。在替代性實(shí)施例中,Descriptor接口210可以包括更多方法、更少方法和/或不同方法。方法StringgetName()302返回元數(shù)據(jù)元素的名稱。例如,如果企業(yè)數(shù)據(jù)對(duì)象包含具有一個(gè)或多個(gè)字段的結(jié)構(gòu),則StringgetName()302可以返回字段名稱。方法IDataTypegetType()304返回元數(shù)據(jù)元素的類型。在實(shí)施例中,方法MetagetMeta()306返回元數(shù)據(jù)元素的元標(biāo)記(metaflag)?!霸獦?biāo)記”指的是指示某元素是結(jié)構(gòu)、表、變量還是原子元素的標(biāo)記。方法intsize()308返回該元素具有的子代(children)的數(shù)目。方法Iteratoriterator()314返回元素的子代上的迭代器。方法IDescriptor310返回在指定索引處的元素的描述符?!懊枋龇敝傅氖菍?duì)元素的數(shù)據(jù)類型的描述。在實(shí)施例中,描述符可以在運(yùn)行時(shí)動(dòng)態(tài)創(chuàng)建和/或增強(qiáng)。方法getElement(intindex)312返回在指定索引處的元素的描述符。圖4是圖示了IEdoElement接口400的所選方面的框圖。在實(shí)施例中,IEdoElement接口400提供用于所有類型的企業(yè)數(shù)據(jù)對(duì)象的公共接口。IEdoElement接口400提供用于關(guān)于企業(yè)數(shù)據(jù)對(duì)象操作的基本方法。所圖示的IEdoElement接口400的實(shí)施例包括下面的方法IDescriptorgetDescriptor()405、MetagetMeta()410、intsize()415、EdoElementgetElement(intindex)420、Iteratoriterator()425、voidcopyFrom(IEdoElementvalue)430、voidcopyCorrespondingFrom(IEdoElementvalue)435、voidclear()440、booleanexistsSlot(Stringname)445、voidsetInitial(booleaninitial)450、voidwriteTo(IEdoWriteStreamstream)455、和voidreadFrom(IEdoReadStreamstream)460。在替代性實(shí)施例中,IEdoElement接口400可以包括更多方法、更少方法和/或不同方法。在實(shí)施例中,下面的方法實(shí)質(zhì)上與在IDescriptor接口300中具有相同名稱的方法類似MetagetMeta()410、intsize()415、EdoElementgetElement(intindex)420、Iteratoriterator()425。方法IDescriptorgetDescriptor()405返回企業(yè)數(shù)據(jù)對(duì)象元素的元數(shù)據(jù)描述符。方法voidcopyFrom(IEdoElementvalue)430將一個(gè)值從不同元素拷貝到此元素。在實(shí)施例中,這兩個(gè)元素應(yīng)該具有實(shí)質(zhì)上等價(jià)的描述符和元標(biāo)記。在那些元素不具有實(shí)質(zhì)上等價(jià)的描述符的情況下,可以使用方法voidcopyCorrespondingFrom(IEdoElementvalue)435。方法voidclear()440清除元素的內(nèi)容。術(shù)語(yǔ)“槽(slot)”指對(duì)象中的保留空間,其可以容納數(shù)據(jù)或代碼。在實(shí)施例中,IEdoElement400包括用于為企業(yè)數(shù)據(jù)對(duì)象創(chuàng)建和/或操縱槽的一個(gè)或多個(gè)方法。例如,所圖示的實(shí)施例包括用于確定具有指定名稱的槽是否存在的方法booleanexistsSlot(Stringname)445。在一個(gè)實(shí)施例中,IEdoElement400包括用于創(chuàng)建、命名、和去除槽的方法。在實(shí)施例中,企業(yè)數(shù)據(jù)對(duì)象元素可以處于空穴(hollow)狀態(tài)。術(shù)語(yǔ)“空穴狀態(tài)”指的是其中所代表數(shù)據(jù)的值還沒(méi)有被加載到企業(yè)數(shù)據(jù)對(duì)象的內(nèi)部數(shù)據(jù)結(jié)構(gòu)中的狀態(tài)。如果企業(yè)數(shù)據(jù)對(duì)象處于空穴狀態(tài),則關(guān)于對(duì)象所調(diào)用的任何操作都出現(xiàn)異常。企業(yè)數(shù)據(jù)對(duì)象的狀態(tài)可以由監(jiān)聽(tīng)者監(jiān)控。在一個(gè)實(shí)施例中,僅頂層(top-level)元素可以處于空穴狀態(tài)。術(shù)語(yǔ)“頂層”指的是嵌套元素組的最外面的元素。IEdoElement400接口包括許多用于對(duì)處于空穴狀態(tài)的元素進(jìn)行操作的方法。例如,方法voidsetInitial(booleaninitial)450至少部分基于參數(shù)真(用于置位)和假(用于復(fù)位)而置位或復(fù)位處于空穴狀態(tài)的元素。此外,IEdoElement400接口可以包括用于空穴處理的其它方法,諸如確定元素是否處于空穴狀態(tài)的方法和/或用于添加或去除監(jiān)控元素狀態(tài)的監(jiān)聽(tīng)者的方法。在實(shí)施例中,可以將企業(yè)數(shù)據(jù)對(duì)象元素串行化(serialized)為流和/或從流中去串行化(de-serialized)。術(shù)語(yǔ)編組(marshalling)和去編組(un-marshalling)分別指對(duì)數(shù)據(jù)串行化和去串行化。在實(shí)施例中,數(shù)據(jù)的編組和去編組是以獨(dú)立于數(shù)據(jù)流格式的方式進(jìn)行的。企業(yè)數(shù)據(jù)對(duì)象可以支持?jǐn)?shù)據(jù)從流的寫(xiě)入和讀取,而無(wú)需在存儲(chǔ)器中保存整個(gè)流。在一個(gè)實(shí)施例中,數(shù)據(jù)流格式至少部分基于可擴(kuò)展標(biāo)記語(yǔ)言(XML)。在這樣的實(shí)施例中,使用用于XML的簡(jiǎn)單API(SAX)解析器來(lái)將數(shù)據(jù)從流中去編組。在實(shí)施例中,方法voidwriteTo(IEdoWriteStreamstream)450和voidreadFrom(IEdoReadStreamstream)455分別向流寫(xiě)數(shù)據(jù)和讀數(shù)據(jù)。圖5是圖示IEdoAtomicElement接口500的所選方面的框圖。在實(shí)施例中,IEdoAtomicElement接口500提供到容納簡(jiǎn)單數(shù)據(jù)類型的EDO元素的接口。這樣,原子元素是那些容納值并且不具有子元素(或簡(jiǎn)言之,子代)的元素。所圖示的IEdoAtomicElement接口500的實(shí)施例包括下述方法ObjectgetValue()510、voidsetValue(Objectvalue)520、get<type>Value()530、和set<typed>Value()540。在替代性實(shí)施例中,IEdoAtomicElement接口500可以包括更多方法、更少方法和/或不同方法。方法ObjectgetValue()510和voidsetValue(Objectvalue)520分別是取得和設(shè)置元素值的方法。值的數(shù)據(jù)類型至少部分基于元素所聲明的數(shù)據(jù)類型。在實(shí)施例中,IEdoAtomicElement接口500還包含對(duì)值的轉(zhuǎn)型訪問(wèn)(typedaccess)。術(shù)語(yǔ)“轉(zhuǎn)型訪問(wèn)”指的是利用取得方法對(duì)值的數(shù)據(jù)類型進(jìn)行轉(zhuǎn)換,如果所請(qǐng)求的轉(zhuǎn)換可能的話。方法get<type>Value()530的示例包括intgetIntValue()、doublegetDoubleValue()、StringgetStringValue()、DategetDateValue()、TimegetTimeValue()、TimeStampgetTimeStampValue()、BigDecimalgetDecimalValue()等等。方法set<typed>Value540在設(shè)置操作期間對(duì)值的數(shù)據(jù)類型進(jìn)行轉(zhuǎn)換,如果所請(qǐng)求的轉(zhuǎn)換可能的話。set<typed>Value()540的示例包括voidsetIntValue(intvalue)、voidsetDoubleValue(doublevalue)、voidsetStringValue(Stringvalue)、voidsetDateValue(Datevalue)、voidsetTimeValue(TimeValue)、voidsetTimeStampValue(TimeStampValue)、voidsetDecimalValue(BigDecimalvalue)等等。圖6是圖示了IEdoVariant接口600的所選方面的框圖。“variant(變量)”指下述元素,其可以支持許多不同數(shù)據(jù)類型,但在某時(shí)刻它們中僅一種數(shù)據(jù)類型可以是活動(dòng)的。在實(shí)施例中,變量元素不具有子代。所圖示的IEdoVariant接口600包括下述方法StringgetActiveName()610和IEdoStructuregetValue()620。方法StringgetActiveName()610返回活動(dòng)結(jié)構(gòu)的名稱。方法IEdoStructuregetValue()620返回活動(dòng)結(jié)構(gòu)。如果沒(méi)有結(jié)構(gòu)是活動(dòng)的,則該訪問(wèn)返回null(空)。在替代性實(shí)施例中,IEdoVariant接口600可以包括更多方法、更少方法和/或不同方法。圖7是圖示IEdoStructure接口700的所選方面的框圖?!皊tructure(結(jié)構(gòu))”指具有一個(gè)或多個(gè)字段的數(shù)據(jù)類型。在實(shí)施例中,這些字段可以由字段名稱和/或字段描述符中給出的索引來(lái)尋址。所圖示的IEdoStructure接口700的實(shí)施例包括下面的方法ObjectgetValue(StringfieldName)705、ObjectgetValue(intfieldIndex)710、ObjectgetValue(StringfieldName,booleancreateIfNull)715、ObjectgetValue(intfieldIndex,booleancreateIfNull)720、voidsetValue(Stringname,Objectvalue)725、VoidsetValue(intindex,ObjectValue)730、get<type>Value()735、set<type>Value()740、voidclear(StringfieldName)745、和voidclear(intfieldIndex)750。在替代性實(shí)施例中,IEdoStructure接口700可以包括更多方法、更少方法和/或不同方法。方法705-720提供對(duì)字段值的類屬(generic)訪問(wèn)。返回值的數(shù)據(jù)類型至少部分取決于該元素所聲明的數(shù)據(jù)類型。例如,方法ObjectgetValue(StringfieldName)705返回具有字符串?dāng)?shù)據(jù)類型的值。類似地,方法ObjectgetValue(intfieldIndex)710返回具有整數(shù)數(shù)據(jù)類型的值。方法725和730提供用于改變?cè)刂档念悓俜椒?。方?25和730所提供的值的數(shù)據(jù)類型應(yīng)該與元素所聲明的數(shù)據(jù)類型兼容。方法voidsetValue(Stringname,Objectvalue)725使用字段名稱對(duì)字段尋址。類似地,方法voidsetValue(intindex,Objectvalue)730使用描述符所指定的字段索引對(duì)字段尋址。在實(shí)施例中,方法get<type>Value()735提供對(duì)字段值的轉(zhuǎn)型訪問(wèn)。術(shù)語(yǔ)“轉(zhuǎn)型訪問(wèn)”指的是在訪問(wèn)值時(shí)對(duì)值的數(shù)據(jù)類型進(jìn)行轉(zhuǎn)換,如果該轉(zhuǎn)換可能的話。方法get<type>Value()735的示例包括intgetIntValue(Stringname)、doublegetDoubleValue(Stringname)、StringgetStringValue(Stringname)、DategetDateValue(Stringname)、TimegetTimeValue(Stringname)、TimeStampgetTimeStampValue(Stringname)、BigDecimalgetDecimalValue(Stringname)、IEdoStructuregetStructureValue(Stringname)、IEdoTablegetTableValue(Stringname)、IEdoVariantgetVariantValue(Stringname)、IEdoStructuregetStructureValue(Stringname,booleancreateIfNull)、IEdoTablegetTableValue(Stringname,booleancreateIfNull)、IEdoVariantgetVariantValue(Stringname,booleancreateIfNull)、intgetIntValue(intfieldIndex)、doublegetDoubleValue(intfieldIndex)、StringgetStringValue(intfieldIndex)、DategetDateValue(intfieldIndex)、TimegetTimeValue(intfieldIndex)、TimeStampgetTimeStampValue(intfieldIndex)、BigDecimalgetDecimalValue(intfieldIndex)、IEdoStructuregetStructureValue(intfieldIndex)、IEdoTablegetTableValue(intfieldIndex)、IEdoVariantgetVariantValue(intfieldIndex)、IEdoStructuregetStructureValue(intfieldIndex,booleancreateIfNull)、IEdoTablegetTableValue(intfieldIndex,booleancreateIfNull)、和IEdoVariantgetVariantValue(intfieldIndex,booleancreateIfNull)。在實(shí)施例中,方法set<type>Value()740是用于改變字段值的轉(zhuǎn)型方法。“轉(zhuǎn)型方法”指的是對(duì)值的數(shù)據(jù)類型進(jìn)行轉(zhuǎn)換的方法,如果所指定的轉(zhuǎn)換可能的話。在實(shí)施例中,方法set<type>Value()740不可應(yīng)用于復(fù)合數(shù)據(jù)類型,方法set<type>Value()740的示例包括voidsetIntValue(Stringname,intvalue)、voidsetDoubleValue(Stringname,doublevalue)、voidsetStringValue(Stringname,Stringvalue)、voidsetDateValue(Stringname,Datevalue)、voidsetTimeValue(Stringname,TimeValue)、voidsetTimeStampValue(Stringname,TimeStampValue)、voidsetDecimalValue(Stringname,BigDecimalvalue)、voidsetIntValue(intindex,intvalue)、voidsetDoubleValue(intindex,doublevalue)、voidsetStringValue(intindex,Stringvalue)、voidsetDateValue(intindex,Datevalue)、voidsetTimeValue(intindex,TimeValue)、voidsetTimeStampValue(intindex,TimeStampValue)、和voidsetDecimalValue(intindex,BigDecimalvalue)。圖8是圖示了IEdoTable接口800的所選方面的框圖?!皌able(表)”指結(jié)構(gòu)的有序列表。在實(shí)施例中,表的記錄可以通過(guò)字段描述符中給出的關(guān)鍵字和/或索引來(lái)訪問(wèn)。如下面進(jìn)一步描述的,IEdoTable接口800包括用于訪問(wèn)和操縱表和表的記錄的各種方法。在替代性實(shí)施例中,IEdoTable接口800可以包括與圖8所示方法相比更多的方法、更少的方法和/或不同的方法。方法IEdoStructurecreateKey()802創(chuàng)建可以用作表的關(guān)鍵字的結(jié)構(gòu)。在實(shí)施例中,該方法返回在訪問(wèn)表的行時(shí)可用作關(guān)鍵字的關(guān)鍵字。方法IEdoStructuregetRow804-808檢索表的行。行的檢索可以基于行的索引(例如,方法804)和/或行的關(guān)鍵字(例如,方法806)。方法intgetRowIndex810-812提供表中行的索引。在實(shí)施例中,關(guān)鍵字用于指定行。方法getValue814-824提供對(duì)表中行的字段值的類屬訪問(wèn)。返回值的數(shù)據(jù)類型取決于元素所聲明的數(shù)據(jù)類型。字段可以至少部分基于字段名稱和/或字段索引(例如,如描述符中所指定的)來(lái)尋址。參數(shù)“path”(例如,在方法818中)可以用于指定結(jié)構(gòu)較深(deepstructured)的表中的字段?!癱reateIfNull”參數(shù)(例如,在方法820中)指定是否要?jiǎng)?chuàng)建值,例如如果字段沒(méi)有值。在實(shí)施例中,方法getValue814-824返回字段的當(dāng)前值。返回對(duì)象的數(shù)據(jù)類型取決于元素所聲明的數(shù)據(jù)類型。方法setValue826-830提供用于改變行中字段值的類屬方法。對(duì)象的數(shù)據(jù)類型期望與元素所聲明的數(shù)據(jù)類型兼容。在實(shí)施例中,setValue826-830不可應(yīng)用于復(fù)合數(shù)據(jù)類型的字段。方法get<Type>Value()832提供對(duì)字段值的轉(zhuǎn)型訪問(wèn)。將值的數(shù)據(jù)類型轉(zhuǎn)換為所指定的數(shù)據(jù)類型,如果轉(zhuǎn)換可能的話。get<Type>Value()832的示例包括intgetIntValue(introwIndex,Stringname)、doublegetDoubleValue(introwIndex,Stringname)、StringgetStringValue(introwIndex,Stringname)、DategetDateValue(introwIndex,Stringname)、TimegetTimeValue(introwIndex,Stringname)、TimeStampgetTimeStampValue(introwIndex,Stringname)、BigDecimalgetDecimalValue(introwIndex,Stringname)、IEdoStructuregetStructureValue(introwIndex,Stringname)、IEdoTablegetTableValue(introwIndex,Stringname)、IEdoVariantgetVariantValue(introwIndex,Stringname)、IEdoStructuregetStructureValue(introwIndex,Stringname,booleancreateIfNull)、IEdoTablegetTableValue(introwIndex,Stringname,booleancreateIfNull)、IEdoVariantgetVariantValue(introwIndex,Stringname,booleancreateIfNull)、intgetIntValue(introwIndex,intfieldIndex)、doublegetDoubleValue(introwIndex,intfieldIndex)、StringgetStringValue(introwIndex,intfieldIndex)、DategetDateValue(introwIndex,intfieldIndex)、TimegetTimeValue(introwIndex,intfieldIndex)、TimeStampgetTimeStampValue(introwIndex,intfieldIndex)、BigDecimalgetDecimalValue(introwIndex,intfieldIndex)、IEdoStructuregetStructureValue(introwIndex,intfieldIndex)、IEdoTablegetTableValue(introwIndex,intfieldIndex)、IEdoVariantgetVariantValue(introwIndex,intfieldIndex)、IEdoStructuregetStructureValue(introwIndex,intfieldIndex,booleancreateIfNull)、IEdoTablegetTableValue(introwIndex,intfieldIndex,booleancreateIfNull)、IEdoVariantgetVariantValue(introwIndex,intfieldIndex,booleancreateIfNull)、intgetIntValue(int[]path)、doublegetDoubleValue(int[]path)、StringgetStringValue(int[]path)、DategetDateValue(int[]path)、TimegetTimeValue(int[]path)、TimeStampgetTimeStampValue(int[]path)、BigDecimalgetDecimalValue(int[]path)、IEdoStructuregetStructureValue(int[]path)、IEdoTablegetTableValue(int[]path)、IEdoVariantgetVariantValue(int[]path)、IEdoStructuregetStructureValue(int[]path,booleancreateIfNull)、IEdoTablegetTableValue(int[]path,booleancreateIfNull)、和IEdoVariantgetVariantValue(int[]path,booleancreateIfNull)。方法set<Type>Value()834提供用于改變字段值的轉(zhuǎn)型方法。將值的數(shù)據(jù)類型轉(zhuǎn)換為指定的數(shù)據(jù)類型,如果該轉(zhuǎn)換可能的話。set<Type>Value()834的示例包括voidsetIntValue(introwIndex,Stringname,intvalue)、voidsetDoubleValue(introwIndex,Stringname,doublevalue)、voidsetStringValue(introwIndex,Stringname,Stringvalue)、voidsetDateValue(introwIndex,Stringname,Datevalue)、voidsetTimeValue(introwIndex,Stringname,TimeValue)、voidsetTimeStampValue(introwIndex,Stringname,TimeStampValue)、voidsetDecimalValue(introwIndex,Stringname,BigDecimalvalue)、voidsetIntValue(introwIndex,intfieldIndex,intvalue)、voidsetDoubleValue(introwIndex,intfieldIndex,doublevalue)、voidsetStringValue(introwIndex,intfieldIndex,Stringvalue)、voidsetDateValue(introwIndex,intfieldIndex,Datevalue)、voidsetTimeValue(introwIndex,intfieldIndex,TimeValue)、voidsetTimeStampValue(introwIndex,intfieldIndex,TimeStampValue)、voidsetDecimalValue(introwIndex,intfieldIndex,BigDecimalvalue)、voidsetIntValue(int[]path,intvalue)、voidsetDoubleValue(int[]path,doublevalue)、voidsetStringValue(int[]path,Stringvalue)、voidsetDateValue(int[]path,Datevalue)、voidsetTimeValue(int[]path,TimeValue)、voidsetTimeStampValue(int[]path,TimeStampValue)、和voidsetDecimalValue(int[]path,BigDecimalvalue)。方法clear(清除)836清除字段值。在實(shí)施例中,字段可以由字段名稱和/或字段索引來(lái)標(biāo)識(shí)。此外,路徑參數(shù)可以用于指定結(jié)構(gòu)較深的表中的字段?!皉ange(范圍)”代表記錄集合。在實(shí)施例中,getRange(取得范圍)方法838提供對(duì)于指定記錄的范圍。可以利用關(guān)鍵字和/或索引來(lái)指定這些記錄。方法copy(拷貝)840拷貝來(lái)自另一個(gè)表的記錄范圍以更新指定表中的記錄。方法Iterator(迭代器)842返回該范圍的元素上的迭代器。方法append(附加)844添加一個(gè)或多個(gè)記錄到表中。類似地,方法insert(插入)846在指定索引處將一個(gè)或多個(gè)記錄添加到表中。方法remove(去除)848至少部分基于代表要去除的記錄的指定關(guān)鍵字和/或索引和范圍來(lái)從表中去除一個(gè)或多個(gè)記錄。在實(shí)施例中,可以監(jiān)控對(duì)表所做出的改變??梢源鎯?chǔ)所監(jiān)控的改變的記錄并且隨后對(duì)之進(jìn)行檢索。方法changemonitoring(改變監(jiān)控)850表示操縱改變監(jiān)控(例如,開(kāi)、關(guān)、復(fù)位等)的方法?,F(xiàn)在轉(zhuǎn)向圖9,參考流程圖依據(jù)計(jì)算機(jī)軟件和硬件來(lái)描述與本發(fā)明實(shí)施例相關(guān)聯(lián)的特定方法。由計(jì)算設(shè)備(例如,應(yīng)用服務(wù)器)執(zhí)行的方法可以包括由計(jì)算機(jī)可執(zhí)行指令組成的狀態(tài)機(jī)或計(jì)算機(jī)程序。計(jì)算機(jī)可執(zhí)行指令可以用計(jì)算機(jī)編程語(yǔ)言來(lái)編寫(xiě)或者可以以固件邏輯來(lái)實(shí)施。如果以符合識(shí)別標(biāo)準(zhǔn)的編程預(yù)言來(lái)編寫(xiě),則這樣的指令可以在各種硬件平臺(tái)上執(zhí)行,并且用作到各種操作系統(tǒng)的接口。此外,本發(fā)明的實(shí)施例并不參考任何特定編程語(yǔ)言而描述。應(yīng)該理解,各種編程語(yǔ)言都可以用于實(shí)現(xiàn)這里所描述的本發(fā)明的實(shí)施例。此外,本領(lǐng)域常常以一種形式或另一種形式(例如,程序、過(guò)程、處理、應(yīng)用程序,等等)談及軟件采取動(dòng)作或引起結(jié)果。這樣的表述僅僅是表達(dá)由計(jì)算設(shè)備執(zhí)行軟件使得該設(shè)備執(zhí)行動(dòng)作或產(chǎn)生結(jié)果的簡(jiǎn)捷方式。圖9是圖示了根據(jù)本發(fā)明實(shí)施例的用于訪問(wèn)和操縱企業(yè)數(shù)據(jù)對(duì)象的方法的某些方面的流程圖。參考處理框910,訪問(wèn)數(shù)據(jù)對(duì)象框架(例如,圖2所示的框架200)。在實(shí)施例中,框架的一個(gè)或多個(gè)接口的功能體被調(diào)用以定義數(shù)據(jù)對(duì)象(例如,企業(yè)數(shù)據(jù)對(duì)象)。數(shù)據(jù)對(duì)象包括容納數(shù)據(jù)的內(nèi)部數(shù)據(jù)結(jié)構(gòu)(例如,圖1中所示的內(nèi)部數(shù)據(jù)結(jié)構(gòu)160)。參考處理框920,指定該數(shù)據(jù)對(duì)象的數(shù)據(jù)類型。在實(shí)施例中,數(shù)據(jù)對(duì)象的“數(shù)據(jù)類型”由內(nèi)部數(shù)據(jù)結(jié)構(gòu)中的值的數(shù)據(jù)類型來(lái)定義。在一個(gè)實(shí)施例中,數(shù)據(jù)對(duì)象框架的一個(gè)或多個(gè)接口提供指定數(shù)據(jù)類型的功能。數(shù)據(jù)類型可以是簡(jiǎn)單的或復(fù)雜的。在實(shí)施例中,所支持的復(fù)雜數(shù)據(jù)類型包括變量、結(jié)構(gòu)、和表。參考處理框930,將數(shù)據(jù)從數(shù)據(jù)源寫(xiě)到數(shù)據(jù)對(duì)象中。在實(shí)施例中,數(shù)據(jù)對(duì)象框架的一個(gè)或多個(gè)接口提供對(duì)來(lái)自數(shù)據(jù)源的數(shù)據(jù)流編組和去編組的功能。數(shù)據(jù)源可以是例如關(guān)系數(shù)據(jù)庫(kù)、XML數(shù)據(jù)源、面向?qū)ο蟮臄?shù)據(jù)源、企業(yè)信息系統(tǒng)、另一個(gè)數(shù)據(jù)對(duì)象等等。可以在940重復(fù)該處理。本發(fā)明的實(shí)施例的元素還可以作為用于存儲(chǔ)機(jī)器可執(zhí)行指令的機(jī)器可讀介質(zhì)而提供。機(jī)器可讀介質(zhì)可以包括但不限于閃存、光盤(pán)、致密盤(pán)-只讀存儲(chǔ)器(CD-ROM)、數(shù)字多功能/視頻盤(pán)(DVD)ROM、隨機(jī)存取存儲(chǔ)器(RAM)、可擦除可編程只讀存儲(chǔ)器(EPROM)、電可擦除可編程只讀存儲(chǔ)器(EEPROM)、磁卡或光卡、傳播介質(zhì)或適于存儲(chǔ)電子指令的其它類型的機(jī)器可讀介質(zhì)。例如,本發(fā)明的實(shí)施例可以作為計(jì)算機(jī)程序而下載,該計(jì)算機(jī)程序可以經(jīng)由通信鏈路(例如,調(diào)制解調(diào)器或網(wǎng)絡(luò)連接)借助于以載波或其它傳播介質(zhì)具體體現(xiàn)的數(shù)據(jù)信號(hào)而從遠(yuǎn)程計(jì)算機(jī)(例如,服務(wù)器)傳輸?shù)秸?qǐng)求計(jì)算機(jī)(例如,客戶機(jī))。應(yīng)該理解,整個(gè)說(shuō)明書(shū)中提及“一個(gè)實(shí)施例”或“實(shí)施例”指的是結(jié)合實(shí)施例所描述的特定特征、結(jié)構(gòu)或特性被包括在本發(fā)明的至少一個(gè)實(shí)施例中。因而,強(qiáng)調(diào)的而且應(yīng)該理解的是在本說(shuō)明各部分中兩次或多次提及“實(shí)施例”或“一個(gè)實(shí)施例”或“替代性實(shí)施例”并不必都指同樣的實(shí)施例。此外,在本發(fā)明的一個(gè)或多個(gè)實(shí)施例中可以適當(dāng)?shù)睾喜⑻囟ㄌ卣?、結(jié)構(gòu)或特性。類似地,應(yīng)該理解,在本發(fā)明實(shí)施例的前述描述中,有時(shí)將各種特征集合在單個(gè)實(shí)施例、圖或其描述中,以便使本發(fā)明的公開(kāi)更流暢從而有助于對(duì)各種創(chuàng)造性方面的一個(gè)或多個(gè)的理解。然而,本公開(kāi)的方法不應(yīng)被解釋為反映下述意圖,即所要求保護(hù)的主題需要多于每個(gè)權(quán)利要求中明確敘述的特征。相反,如以下權(quán)利要求所反映的,創(chuàng)造性方面在于比單個(gè)前述公開(kāi)的實(shí)施例的所有特征少的特征。從而,跟隨詳細(xì)描述的權(quán)利要求據(jù)此明確被合并在該詳細(xì)描述中,其中每個(gè)權(quán)利要求自身作為本發(fā)明的單獨(dú)實(shí)施例而成立。權(quán)利要求1.一種計(jì)算機(jī)實(shí)施的方法,包括訪問(wèn)數(shù)據(jù)對(duì)象框架接口以定義數(shù)據(jù)對(duì)象,其中該數(shù)據(jù)對(duì)象用于把企業(yè)數(shù)據(jù)存儲(chǔ)在內(nèi)部數(shù)據(jù)結(jié)構(gòu)中;至少部分基于數(shù)據(jù)對(duì)象框架接口而指定該數(shù)據(jù)對(duì)象的數(shù)據(jù)類型;以及將數(shù)據(jù)從數(shù)據(jù)源寫(xiě)到該數(shù)據(jù)對(duì)象中。2.如權(quán)利要求1所述的方法,其中所述指定數(shù)據(jù)類型的步驟包括指定數(shù)據(jù)類型是下述類型中的至少一種原子;變量;結(jié)構(gòu);以及表。3.如權(quán)利要求2所述的方法,其中,所述數(shù)據(jù)類型是具有一個(gè)或多個(gè)字段的結(jié)構(gòu),并且所述方法還包括下述操作中的至少一種至少部分基于字段名稱而訪問(wèn)字段;至少部分基于索引而訪問(wèn)字段;以及至少部分基于迭代器而訪問(wèn)字段。4.如權(quán)利要求2所述的方法,其中,所述數(shù)據(jù)類型是具有一個(gè)或多個(gè)記錄的表,并且所述方法還包括下述操作中的至少一種至少部分基于關(guān)鍵字字段而訪問(wèn)記錄;至少部分基于索引而訪問(wèn)記錄;以及至少部分基于迭代器而訪問(wèn)記錄。5.如權(quán)利要求4所述的方法,還包括從數(shù)據(jù)源拷貝表的至少一部分到數(shù)據(jù)對(duì)象的內(nèi)部數(shù)據(jù)結(jié)構(gòu)中。6.如權(quán)利要求1所述的方法,其中所述數(shù)據(jù)源是下面各項(xiàng)中的至少一種關(guān)系數(shù)據(jù)庫(kù);可擴(kuò)展標(biāo)記語(yǔ)言數(shù)據(jù)源;面向?qū)ο髷?shù)據(jù)庫(kù);以及企業(yè)信息系統(tǒng)。7.如權(quán)利要求1所述的方法,還包括訪問(wèn)元數(shù)據(jù)接口以獲得對(duì)應(yīng)于該數(shù)據(jù)對(duì)象的元數(shù)據(jù);以及使用該元數(shù)據(jù)接口所提供的函數(shù)而獲得該元數(shù)據(jù)。8.如權(quán)利要求1所述的方法,還包括在運(yùn)行時(shí)動(dòng)態(tài)地修改與該數(shù)據(jù)對(duì)象框架相關(guān)聯(lián)的元數(shù)據(jù)。9.如權(quán)利要求8所述的方法,其中,所述動(dòng)態(tài)地修改與該數(shù)據(jù)對(duì)象框架相關(guān)聯(lián)的元數(shù)據(jù)的步驟包括下述操作中的至少一種修改與數(shù)據(jù)類型相關(guān)聯(lián)的元數(shù)據(jù);以及修改與數(shù)據(jù)類型的一個(gè)或多個(gè)實(shí)例相關(guān)聯(lián)的元數(shù)據(jù)。10.一種裝置,包括應(yīng)用程序,訪問(wèn)數(shù)據(jù)對(duì)象框架接口;以及處理器以及其上可執(zhí)行的邏輯,用來(lái)訪問(wèn)數(shù)據(jù)對(duì)象框架接口以定義數(shù)據(jù)對(duì)象,其中該數(shù)據(jù)對(duì)象用于把企業(yè)數(shù)據(jù)存儲(chǔ)在內(nèi)部數(shù)據(jù)結(jié)構(gòu)中;至少部分基于該數(shù)據(jù)對(duì)象框架接口而指定該數(shù)據(jù)對(duì)象的數(shù)據(jù)類型;以及將數(shù)據(jù)從數(shù)據(jù)源寫(xiě)到該數(shù)據(jù)對(duì)象中。11.如權(quán)利要求10所述的裝置,其中,所述指定數(shù)據(jù)類型的其上可執(zhí)行的邏輯包括用于指定數(shù)據(jù)類型是下述類型中的至少一種的邏輯原子;變量;結(jié)構(gòu);以及表。12.如權(quán)利要求11所述的裝置,其中,所述數(shù)據(jù)類型是具有一個(gè)或多個(gè)字段的結(jié)構(gòu),并且其上可執(zhí)行的邏輯還包括用于執(zhí)行下述操作中的至少一種的邏輯至少部分基于字段名稱而訪問(wèn)字段;至少部分基于索引而訪問(wèn)字段;以及至少部分基于迭代器而訪問(wèn)字段。13.如權(quán)利要求11所述的裝置,其中,所述數(shù)據(jù)類型是具有一個(gè)或多個(gè)記錄的表,并且其上可執(zhí)行的邏輯還包括用于執(zhí)行下述操作中的至少一種的邏輯至少部分基于關(guān)鍵字字段而訪問(wèn)記錄;至少部分基于索引而訪問(wèn)記錄;以及至少部分基于迭代器而訪問(wèn)記錄。14.一種制造產(chǎn)品,包括提供下述指令的可電子存取的介質(zhì),該指令在被裝置執(zhí)行時(shí)使得該裝置執(zhí)行下述操作訪問(wèn)數(shù)據(jù)對(duì)象框架接口以定義數(shù)據(jù)對(duì)象,其中該數(shù)據(jù)對(duì)象用于把企業(yè)數(shù)據(jù)存儲(chǔ)在內(nèi)部數(shù)據(jù)結(jié)構(gòu)中;至少部分基于數(shù)據(jù)對(duì)象框架接口而指定該數(shù)據(jù)對(duì)象的數(shù)據(jù)類型;以及將數(shù)據(jù)從數(shù)據(jù)源寫(xiě)到該數(shù)據(jù)對(duì)象中。15.如權(quán)利要求14所述的制造產(chǎn)品,其中,所述被裝置執(zhí)行時(shí)使得裝置指定數(shù)據(jù)類型的指令使得裝置指定數(shù)據(jù)類型是下述類型中的至少一種原子;變量;結(jié)構(gòu);以及表。16.如權(quán)利要求15所述的制造產(chǎn)品,其中,所述數(shù)據(jù)類型是具有一個(gè)或多個(gè)字段的結(jié)構(gòu),并且所述可電子存取的介質(zhì)還提供下述指令,該指令被裝置執(zhí)行時(shí)使得裝置執(zhí)行下述操作中的至少一種至少部分基于字段名稱而訪問(wèn)字段;至少部分基于索引而訪問(wèn)字段;以及至少部分基于迭代器而訪問(wèn)字段。17.如權(quán)利要求15所述的制造產(chǎn)品,其中,所述數(shù)據(jù)類型是具有一個(gè)或多個(gè)記錄的表,并且所述可電子存取的介質(zhì)還提供下述指令,該指令被裝置執(zhí)行時(shí)使得裝置執(zhí)行下述操作中的至少一種至少部分基于關(guān)鍵字字段而訪問(wèn)記錄;至少部分基于索引而訪問(wèn)記錄;以及至少部分基于迭代器而訪問(wèn)記錄。18.如權(quán)利要求14所述的制造產(chǎn)品,其中,所述可電子存取的介質(zhì)還提供下述指令,該指令被裝置執(zhí)行時(shí)使得裝置執(zhí)行下述操作訪問(wèn)元數(shù)據(jù)接口以獲得對(duì)應(yīng)于該數(shù)據(jù)對(duì)象的元數(shù)據(jù);以及使用該元數(shù)據(jù)接口所提供的函數(shù)而獲得該元數(shù)據(jù)。19.如權(quán)利要求14所述的制造產(chǎn)品,其中,所述可電子存取的介質(zhì)還提供下述指令,該指令被裝置執(zhí)行時(shí)使得裝置執(zhí)行下述操作在運(yùn)行時(shí)動(dòng)態(tài)地修改與該數(shù)據(jù)對(duì)象框架相關(guān)聯(lián)的元數(shù)據(jù)。20.如權(quán)利要求19所述的制造產(chǎn)品,其中,所述被裝置執(zhí)行時(shí)使得裝置在運(yùn)行時(shí)動(dòng)態(tài)地修改與該數(shù)據(jù)對(duì)象框架相關(guān)聯(lián)的元數(shù)據(jù)的指令使得裝置執(zhí)行下述操作中的至少一種修改與數(shù)據(jù)類型相關(guān)聯(lián)的元數(shù)據(jù);以及修改與數(shù)據(jù)類型的一個(gè)或多個(gè)實(shí)例相關(guān)聯(lián)的元數(shù)據(jù)。全文摘要本發(fā)明的實(shí)施例通常針對(duì)一種用于企業(yè)數(shù)據(jù)對(duì)象的系統(tǒng)和方法。企業(yè)數(shù)據(jù)對(duì)象是可以用在商業(yè)系統(tǒng)內(nèi)較廣范圍的技術(shù)和語(yǔ)義層中的數(shù)據(jù)容器。特別地,企業(yè)數(shù)據(jù)對(duì)象提供可以用于訪問(wèn)和操縱復(fù)雜且結(jié)構(gòu)化的數(shù)據(jù)的高層接口。文檔編號(hào)G06F17/30GK101093480SQ20051013751公開(kāi)日2007年12月26日申請(qǐng)日期2005年12月29日優(yōu)先權(quán)日2005年12月29日發(fā)明者雷納·布倫德?tīng)?弗蘭克·布倫斯維格,托馬斯·高韋勒,迪努·帕維思蘭,約翰尼斯·維格納申請(qǐng)人:Sap股份公司