本文介紹了一種優(yōu)秀使用Excel來產(chǎn)生一個(gè)多批次的EIM配置文件(ifp)的方式。
在我的項(xiàng)目,我們有超過100萬數(shù)據(jù)關(guān)聯(lián),服務(wù)請(qǐng)求和活動(dòng)。在任何時(shí)候,數(shù)據(jù)更新,我們就需要有很多批次使用EIM解決方案的配置文件(ifp),我們EIM批量的標(biāo)準(zhǔn)大小是5000條記錄。 因此,要更新100多萬的記錄,需要200個(gè)或更多
的批次。手動(dòng)創(chuàng)建一批有200個(gè)或更多的IFB的文件是浪費(fèi)非常時(shí)間的,而且單調(diào)容易出錯(cuò),由于做人無聊的相似任務(wù)時(shí)會(huì)容易產(chǎn)生錯(cuò)誤。
安東來到我的團(tuán)隊(duì)時(shí)帶來了一個(gè)簡(jiǎn)單的解決方案,使用Excel來生成一個(gè)IFB的文件。
現(xiàn)在就讓我來一步一步告訴你吧:
1.1 創(chuàng)建一個(gè)新的Excel文件(確保已啟用宏)。
2.2 在第一個(gè)工作表(Sheet1的)輸入每個(gè)指定的單元如下:
表格|文字
A5 說明
B5 值
A6 文件名:
A7 過程:
A8 格式:
A9 表:
A10 Only Base Tables:A10只能引用基表:
A11 Only Base Columns:A11只能引用列值:
A12 Batch:
A13 Number of batches to create: A13號(hào) 創(chuàng)建批次編號(hào)
A15 Comment A15評(píng)論:
A16 UpdatedBy
因此,你可以看到表格記錄降序6至16日的B列在這里輸入您的IFB的文件信息。
從上述這些領(lǐng)域的下面我會(huì)解釋。
Filename 文件名
這是IFB的文件的名稱來創(chuàng)建。 如果輸入“測(cè)試”,那么文件test.ifb將在同一目錄中創(chuàng)建的Excel工作簿,在那被保存。
Process 進(jìn)程
這是該進(jìn)程的名稱的EIM執(zhí)行。
Type 類型
這是工作如進(jìn)口的EIM,刪除,合并(型)。
Table 表
這是表的EIM解決方案的EIM任務(wù)使用。
Only Base Tables 只有基礎(chǔ)表
如果你想加入的唯一基礎(chǔ)表的參數(shù)信息,那么你在這里輸入。此字段是不是必需的。
Only Base Columns 只有基礎(chǔ)列
如果你想加入的唯一基礎(chǔ)列的參數(shù)信息,那么你在這里輸入。 此字段是不是必需的。
Batch 批次
這是批號(hào)的EIM解決方案的過程。如果將有多個(gè)批次那么這就是最初的批號(hào)。
批數(shù)的創(chuàng)造
自我解釋,這是在你的批數(shù)的EIM解決方案的任務(wù)IFB的文件,你想要的。
Comment 評(píng)論
你可以添加一個(gè)注釋到IFB的文件。
UpdatedBy UpdatedBy
您可以添加額外的注釋到IFB的文件。
作為一個(gè)例子,我輸入以下值:
Filename: ContactTest 文件名:ContactTest
Process: IMPORT_CONTACTS 過程:IMPORT_CONTACTS
Type: IMPORT 類型:進(jìn)口
Table: EIM_CONTACT 表:EIM_CONTACT
Only Base Tables: S_PARTY, S_CONTACT, S_CONTACT_BU 只有相應(yīng)的表:S_PARTY,S_CONTACT,S_CONTACT_BU
Only Base Columns: 只有相應(yīng)的欄目:
Batch: 200 批次:200
Number of batches to create: 5 批次編號(hào)創(chuàng)建:5
Comment: This is a comment 評(píng)論:這是一個(gè)評(píng)論
UpdatedBy: This is another comment UpdatedBy:這是另一種評(píng)論
我期望一個(gè)名為ContactTest.ifb要在同一目錄中創(chuàng)建工作簿保存在與下列內(nèi)容:
[Siebel Interface Manager] [Siebel的界面管理器]
USE INDEX HINTS = TRUE使用索引提示=真
LOG TRANSACTIONS = FALSE日志事務(wù)=假
評(píng)論:這是一個(gè)評(píng)論
Updated by: This is another comment ;更新:這是另一種評(píng)論
TYPE = IMPORT類型=進(jìn)口
BATCH = 200分批= 200
TABLE = EIM_CONTACT表= EIM_CONTACT
ONLY BASE TABLES = S_PARTY, S_CONTACT, S_CONTACT_BU只能引用基表= S_PARTY,S_CONTACT,S_CONTACT_BU
[IMPORT_CONTACTS_2] [IMPORT_CONTACTS_2]
TYPE = IMPORT類型=進(jìn)口
BATCH = 201分批= 201
TABLE = EIM_CONTACT表= EIM_CONTACT
ONLY BASE TABLES = S_PARTY, S_CONTACT, S_CONTACT_BU只能引用基表= S_PARTY,S_CONTACT,S_CONTACT_BU
[IMPORT_CONTACTS_3] [IMPORT_CONTACTS_3]
TYPE = IMPORT類型=進(jìn)口
BATCH = 202分批= 202
TABLE = EIM_CONTACT表= EIM_CONTACT
ONLY BASE TABLES = S_PARTY, S_CONTACT, S_CONTACT_BU只能引用基表= S_PARTY,S_CONTACT,S_CONTACT_BU
[IMPORT_CONTACTS_4] [IMPORT_CONTACTS_4]
TYPE = IMPORT類型=進(jìn)口
BATCH = 203分批= 203
TABLE = EIM_CONTACT表= EIM_CONTACT
ONLY BASE TABLES = S_PARTY, S_CONTACT, S_CONTACT_BU只能引用基表= S_PARTY,S_CONTACT,S_CONTACT_BU
[IMPORT_CONTACTS_5] [IMPORT_CONTACTS_5]
TYPE = IMPORT類型=進(jìn)口
BATCH = 204分批= 204
TABLE = EIM_CONTACT表= EIM_CONTACT
ONLY BASE TABLES = S_PARTY, S_CONTACT, S_CONTACT_BU只能引用基表= S_PARTY,S_CONTACT,S_CONTACT_BU
[IMPORT_CONTACTS] [IMPORT_CONTACTS]
TYPE = SHELL類型=殼
INCLUDE = "IMPORT_CONTACTS_1" 包括=“IMPORT_CONTACTS_1”
INCLUDE = "IMPORT_CONTACTS_2" 包括=“IMPORT_CONTACTS_2”
INCLUDE = "IMPORT_CONTACTS_3" 包括=“IMPORT_CONTACTS_3”
INCLUDE = "IMPORT_CONTACTS_4" 包括=“IMPORT_CONTACTS_4”
INCLUDE = "IMPORT_CONTACTS_5" 包括=“IMPORT_CONTACTS_5”
請(qǐng)注意,創(chuàng)造了5批使用帶有遞增器的進(jìn)程名連接在一起。 進(jìn)程名稱的EIM解決方案是一個(gè)shell進(jìn)程調(diào)用的所有批次。
要自動(dòng)創(chuàng)建此IFB的文件,創(chuàng)建和執(zhí)行Excel工作簿內(nèi)的下列新的宏:
Sub GenerateIFB() 小組 GenerateIFB()
Dim fileName, process, atype, table
Dim onlyBaseTables, onlyBaseColumns, batch
onlyBaseTables,onlyBaseColumns,批量
Dim
numberBatchesCreated As Integer
numberBatchesCreated 作為整數(shù) Dim head1, head2, head3, blankSpace
head1,head2,head3,blankSpace Dim fullFileName, counter As Integer , strCounter, strBatch
fullFileName,strBatch 柜臺(tái)作為整數(shù) ,strCounter,
Dim counter2, strCounter2, counters counter2,strCounter2,計(jì)數(shù)器 Dim comment, updateBy 昏暗的評(píng)論,updateBy comment = Cells(15, 2).Value評(píng)論=細(xì)胞
(15,2)。價(jià)值 updateBy = Cells(16, 2).Value updateBy =細(xì)胞(16,2)。價(jià)值 fileName = Cells(6, 2).Value文件名=細(xì)胞(6,2)。價(jià)值 process = Cells(7, 2).Value過程=細(xì)胞(7,2)。價(jià)值 atype = Cells(8,
2).Value atype =細(xì)胞(8,2)。價(jià)值 table = Cells(9, 2).Value表=細(xì)胞(9,2)。價(jià)值 onlyBaseTables = Cells(10, 2).Value onlyBaseTables =細(xì)胞(10,2)。價(jià)值 onlyBaseColumns = Cells(11, 2).Value
onlyBaseColumns =細(xì)胞(11,2)。價(jià)值 batch = Cells(12, 2).Value一批=細(xì)胞(12,2)。價(jià)值 numberBatchesCreated = Cells(13, 2).Value numberBatchesCreated =細(xì)胞(13,2)。價(jià)值 head1 = "[Siebel Interface
Manager]" head1 =“[Siebel的界面管理器]” head2 = "USE INDEX HINTS = TRUE" head2 =“使用索引提示=真正的” head3 = "LOG TRANSACTIONS = FALSE" head3 =“登錄交易=假” blankSpace = " " blankSpace =“”
fullFileName = fileName + ".ifb" fullFileName =文件名+“。IFB的” Open ThisWorkbook.Path & fullFileName For Output As #1打開ThisWorkbook.Path&1 fullFileName# 進(jìn)行輸出 Print #1, head1打印#1,head1 Print
#1, head2打印#1,head2 Print #1, head3打。1,head3 Print #1, blankSpace打。1,blankSpace If (comment <> "" ) Then 如果 (評(píng)論<>“”) 然后 Print #1, ";Comment: " + comment打。1,“評(píng)論:”+評(píng)
論 If (updateBy <> "" ) Then 如果 (updateBy <>“”) 然后 Print #1, ";Updated by: " + updateBy打。1,“更新:”+ updateBy End If 如果完 Print #1, blankSpace打。1,blankSpace End If 如果
完 counter = 1計(jì)數(shù)器= 1 If (numberBatchesCreated <> 1) Then 如果 (numberBatchesCreated <> 1) 然后 Do While counter <= numberBatchesCreated 不要在柜臺(tái)<= numberBatchesCreated strCounter = CStr
(counter) strCounter = CStr的 (柜) strBatch = CStr (batch) strBatch = CStr的 (批) Print #1, "[" + process + "_" + strCounter + "]"打。1,“[”+過程+“_”+ strCounter +“]”
Print #1, " TYPE = " + atype打。1,“類型=”+ atype Print #1, " BATCH = " + strBatch打。1,“間歇=”+ strBatch Print #1, " TABLE = " + table打印#1,“表=”+表 If
(onlyBaseTables <> "" ) Then 如果 (onlyBaseTables <>“”) 然后 Print #1, " ONLY BASE TABLES = " + onlyBaseTables打印#1,“只能引用基表=”+ onlyBaseTables End If 如果完 If
(onlyBaseColumns <> "" ) Then 如果 (onlyBaseColumns <>“”) 然后 Print #1, " ONLY BASE COLUMNS = " + onlyBaseColumns打。1,“唯一基礎(chǔ),柱=”+ onlyBaseColumns End If 如果完
Print #1, blankSpace打。1,blankSpace
batch = batch + 1一批批+ 1 =
counter = counter + 1計(jì)數(shù)器計(jì)數(shù)器+ 1 = Loop 循環(huán)
Print #1, "[" + process + "]"
Print #1, "TYPE = SHELL"
counter2 = 1 counter2 = 1
If (numberBatchesCreated <> 1) Then
(numberBatchesCreated <> 1)
Do While counter2 <= numberBatchesCreated
counter2 <= numberBatchesCreated strCounter2 = CStr (counter2) strCounter2 = (HRT counter2)
Print #1, "INCLUDE = " + "" "" + process + "_" + strCounter2 + "" ""
counter2 = counter2 + 1 counter2 = counter2 + 1
Loop
End If
Else
strBatch = CStr (batch) strBatch = CStr
Print #1, "[" + process + "]
Print #1, " TYPE = " + atype
Print #1, " BATCH = " + strBatch
Print #1, " TABLE = " + table
If (onlyBaseTables <> "" )
Then (onlyBaseTables <>“”)Print #1, " ONLY BASE TABLES = " + onlyBaseTables
onlyBaseTables End If
If (onlyBaseColumns <> "" )
Then (onlyBaseColumns <>“”)
Print #1, " ONLY BASE COLUMNS = " + onlyBaseColumns
onlyBaseColumns End If
End If
Close #1
MsgBox“完成”
End Sub 結(jié)束小組