【正文】
。因此需要選取一個(gè)開發(fā)平臺,能夠直接在平臺上對KM進(jìn)行開發(fā)、編譯、調(diào)試。 對于編寫好的KM,只能通過接口調(diào)用后運(yùn)行,在Operator中查看代碼執(zhí)行情況,檢查其正確與否。 選中所需要編輯的KM步驟,點(diǎn)擊詳細(xì)步驟→具體的某個(gè)步驟,即可進(jìn)行KM的編輯了,另外也可以新增或刪除步驟。 n 另外,對于新開發(fā)的KM,也要以編于理解的名字命名。 n 在KM中盡量少使用硬編碼的方式,物理表名、模式名、catalog盡量少以硬編碼的方式寫入到KM中;而應(yīng)該多使用諸如getTable(),getObjectName()這樣的API方法,以增強(qiáng)KM的通用性。ODI已經(jīng)提供了100多種KM,因此建議在編寫KM之前先了解一下已有的KM,手中的KM樣例越多,開發(fā)起來速度越快。 動作一般是:add、drop、enable、disable、modify。 % 例如:% ()。 DELETE_ERRORS:自動刪除檢測到的錯(cuò)誤。 CKM_STATIC:觸發(fā)目標(biāo)數(shù)據(jù)存儲中的靜態(tài)控制。表31:開發(fā)規(guī)則表 其常用語法具體如下: 【Free Text】 【% Java Expression %】 Free Text:代碼塊中的任意位置 Java Expression:構(gòu)建字符串的Java表達(dá)式。 KM中Substitution API調(diào)用規(guī)則Oracle Data Integretor中提供了大量已開發(fā)好的Substitution API,在開發(fā)中會經(jīng)常直接調(diào)用這些API方法以獲取存儲在資料庫中的元數(shù)據(jù)信息,Substitution API能夠在KM中的任意位置調(diào)用,在% %符號內(nèi)引用,其返回值是一個(gè)字符串,具體開發(fā)調(diào)用規(guī)則如下表31所示: 選項(xiàng)說明調(diào)用位置Substitution API能夠在KM中的任何位置插入調(diào)用方式調(diào)用時(shí)以% %括起,Substitution API的方法寫在括號內(nèi)調(diào)用語法目前ODI API方法以snpRef開頭調(diào)用,要調(diào)用getForm()這樣的Substitution Method時(shí),()即可。 在KM中使用Jython有以下需要注意的一些地方 n Code execution:Jython的語句是按順序執(zhí)行的,同時(shí)也支持if, for,while,raise控制結(jié)構(gòu) n Block:Jython以行作為其塊區(qū)域,一個(gè)Block以相同的行對齊或空格符標(biāo)識 n 注釋:Jython的注釋以字符#開頭,以此行物理行的末尾為結(jié)束標(biāo)識 n 關(guān)鍵詞:以下這些標(biāo)識符為Jython默認(rèn)保留的關(guān)鍵詞,不允許變量去聲明 and del for is raise assert elif from lambda return break else global not try class except if or while continu exec import pass def finally in print n 數(shù)據(jù)類型:Jython的數(shù)據(jù)類型支持Number(Decimal integer,octal integer,Hex integer,Long integer,Float,Complex numbers)、String、Lists、Dictionaries、Tuples、Sequence、Files等。 例如,以下是LKM SQL TO SQL 中Load Data步驟,里面就是在SQL語句的整體框架下通過嵌入Substitution Method方法完成的: insert into %=(L, COLL_NAME, A)% ( %=(, [CX_COL_NA