时间:2014-10-17 09:54:37 来源: 复制分享
本文介绍了一种优秀使用Excel来产生一个多批次的EIM配置文件(ifp)的方式。
在我的项目,我们有超过100万数据关联,服务请求和活动。在任何时候,数据更新,我们就需要有很多批次使用EIM解决方案的配置文件(ifp),我们EIM批量的标准大小是5000条记录。 因此,要更新100多万的记录,需要200个或更多
的批次。手动创建一批有200个或更多的IFB的文件是浪费非常时间的,而且单调容易出错,由于做人无聊的相似任务时会容易产生错误。
安东来到我的团队时带来了一个简单的解决方案,使用Excel来生成一个IFB的文件。
现在就让我来一步一步告诉你吧:
1.1 创建一个新的Excel文件(确保已启用宏)。
2.2 在第一个工作表(Sheet1的)输入每个指定的单元如下:
表格|文字
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号 创建批次编号
A15 Comment A15评论:
A16 UpdatedBy
因此,你可以看到表格记录降序6至16日的B列在这里输入您的IFB的文件信息。
从上述这些领域的下面我会解释。
Filename 文件名
这是IFB的文件的名称来创建。 如果输入“测试”,那么文件test.ifb将在同一目录中创建的Excel工作簿,在那被保存。
Process 进程
这是该进程的名称的EIM执行。
Type 类型
这是工作如进口的EIM,删除,合并(型)。
Table 表
这是表的EIM解决方案的EIM任务使用。
Only Base Tables 只有基础表
如果你想加入的唯一基础表的参数信息,那么你在这里输入。此字段是不是必需的。
Only Base Columns 只有基础列
如果你想加入的唯一基础列的参数信息,那么你在这里输入。 此字段是不是必需的。
Batch 批次
这是批号的EIM解决方案的过程。如果将有多个批次那么这就是最初的批号。
批数的创造
自我解释,这是在你的批数的EIM解决方案的任务IFB的文件,你想要的。
Comment 评论
你可以添加一个注释到IFB的文件。
UpdatedBy UpdatedBy
您可以添加额外的注释到IFB的文件。
作为一个例子,我输入以下值:
Filename: ContactTest 文件名:ContactTest
Process: IMPORT_CONTACTS 过程:IMPORT_CONTACTS
Type: IMPORT 类型:进口
Table: EIM_CONTACT 表:EIM_CONTACT
Only Base Tables: S_PARTY, S_CONTACT, S_CONTACT_BU 只有相应的表:S_PARTY,S_CONTACT,S_CONTACT_BU
Only Base Columns: 只有相应的栏目:
Batch: 200 批次:200
Number of batches to create: 5 批次编号创建:5
Comment: This is a comment 评论:这是一个评论
UpdatedBy: This is another comment UpdatedBy:这是另一种评论
我期望一个名为ContactTest.ifb要在同一目录中创建工作簿保存在与下列内容:
[Siebel Interface Manager] [Siebel的界面管理器]
USE INDEX HINTS = TRUE使用索引提示=真
LOG TRANSACTIONS = FALSE日志事务=假
评论:这是一个评论
Updated by: This is another comment ;更新:这是另一种评论
TYPE = IMPORT类型=进口
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类型=进口
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类型=进口
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类型=进口
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类型=进口
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”
请注意,创造了5批使用带有递增器的进程名连接在一起。 进程名称的EIM解决方案是一个shell进程调用的所有批次。
要自动创建此IFB的文件,创建和执行Excel工作簿内的下列新的宏:
Sub GenerateIFB() 小组 GenerateIFB()
Dim fileName, process, atype, table
Dim onlyBaseTables, onlyBaseColumns, batch
onlyBaseTables,onlyBaseColumns,批量
Dim
numberBatchesCreated As Integer
numberBatchesCreated 作为整数 Dim head1, head2, head3, blankSpace
head1,head2,head3,blankSpace Dim fullFileName, counter As Integer , strCounter, strBatch
fullFileName,strBatch 柜台作为整数 ,strCounter,
Dim counter2, strCounter2, counters counter2,strCounter2,计数器 Dim comment, updateBy 昏暗的评论,updateBy comment = Cells(15, 2).Value评论=细胞
(15,2)。价值 updateBy = Cells(16, 2).Value updateBy =细胞(16,2)。价值 fileName = Cells(6, 2).Value文件名=细胞(6,2)。价值 process = Cells(7, 2).Value过程=细胞(7,2)。价值 atype = Cells(8,
2).Value atype =细胞(8,2)。价值 table = Cells(9, 2).Value表=细胞(9,2)。价值 onlyBaseTables = Cells(10, 2).Value onlyBaseTables =细胞(10,2)。价值 onlyBaseColumns = Cells(11, 2).Value
onlyBaseColumns =细胞(11,2)。价值 batch = Cells(12, 2).Value一批=细胞(12,2)。价值 numberBatchesCreated = Cells(13, 2).Value numberBatchesCreated =细胞(13,2)。价值 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# 进行输出 Print #1, head1打印#1,head1 Print
#1, head2打印#1,head2 Print #1, head3打印#1,head3 Print #1, blankSpace打印#1,blankSpace If (comment <> "" ) Then 如果 (评论<>“”) 然后 Print #1, ";Comment: " + comment打印#1,“评论:”+评
论 If (updateBy <> "" ) Then 如果 (updateBy <>“”) 然后 Print #1, ";Updated by: " + updateBy打印#1,“更新:”+ updateBy End If 如果完 Print #1, blankSpace打印#1,blankSpace End If 如果
完 counter = 1计数器= 1 If (numberBatchesCreated <> 1) Then 如果 (numberBatchesCreated <> 1) 然后 Do While counter <= numberBatchesCreated 不要在柜台<= 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,“唯一基础,柱=”+ onlyBaseColumns End If 如果完
Print #1, blankSpace打印#1,blankSpace
batch = batch + 1一批批+ 1 =
counter = counter + 1计数器计数器+ 1 = Loop 循环
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 结束小组