Integration Manager IM Grid 的用法案例

在处理行列比较明显的CSV数据转换时,将数据装载到grid内再循环处理不失为一个好的方法。

1. 数据文件样本

2. 脚本

2.1)装载到grid 脚本,Field_Name: Grid

TRIM QUOTES 去除数据文件前后引号
TRIM SELECTION 去除数据文件前后空格
SET VARIABLESRowCnt="0" 
SET VARIABLEIndex="0" 
MOVE LINES1下移一行
SET BOOKMARKSTART在第2行行首设START标签
BOOKMARK:SET AT ENDEnd在数据文件结尾处设一个End 的Bookmark
SET VARIABLEVar=CopyBetweenBookmarks(Start,End)获取数据赋值给Var,(第2行到最后一行)
SET VARIABLEVar=RemoveChars(Var,"""") 
GRID BUILD GRID FROM CSV STRINGSampGrid,Var,False,<COMMA>根据Var构建Grid:SampGird,分隔符是逗号
SET VARIABLErowcount=GetRowCount(SampGrid) 
CREATE GRIDresGrid,5,0 
REPEAT LOOProwcount 
SET VARIABLEID=GetCell(SampGrid,1,SRowCnt)GRID第2列为TEST_ID
SET VARIABLEResName="Weight" 
SET VARIABLEResult=GetCell(SampGrid,2,SRowCnt) 
SET VARIABLEResult =TrimCharsBeforeText(Result,D,TRUE) 
SET VARIABLEResult =TrimCharsBeforeText(Result,N,TRUE) 
SET VARIABLEResult =TrimChars(Result,<SPACE>) 
SET VARIABLEResult = TrimCharsAfterText(Result,<SPACE>,TRUE) 
SET VARIABLEResName1=ResName 
IFAreNotEqual(ID,"") 
GRID ADD EMPTY ROWSResGrid,1 
GRID SET CELL VALUEResGrid,SampleCol,Index,ID 
GRID SET CELL VALUEResGrid,TestNumCol,Index,ID 
GRID SET CELL VALUEResGrid,ResNameCol,Index,ResName 
GRID SET CELL VALUEResGrid,ResultCol,Index,Result 
SET VARIABLEIndex=Add(Index,1) 
SET VARIABLESRowCnt=Add(SRowCnt,1) 
ELSE  
SET VARIABLESRowCnt=Add(SRowCnt,1) 
END IF  
END LOOP  
SET VARIABLEResCnt=GetRowCount(ResGrid) 
   

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2.2) Grid 转到xml 输出Field_Name: Build Nodes

SET VARIABLETotNode="0" 
SET VARIABLENodeTemplate="<result test_id="?TESTNUM?"    result_name="?RN?" >?RES?</result>" 
SET VARIABLEIndex="0" 
REPEAT LOOPResCnt 
SET VARIABLENode=NodeTemplate 
SET VARIABLEValue=GetCell(ResGrid,TestNumCol,Index) 
SET VARIABLETest_Value=Value 
SET VARIABLENode=Replace(Node,?TESTNUM?,Value) 
SET VARIABLEValue=GetCell(ResGrid,ResNameCol,Index) 
SET VARIABLEReName=Value 
SET VARIABLENode=Replace(Node,?RN?,Value) 
SET VARIABLERValue=GetCell(ResGrid,ResultCol,Index) 
SET VARIABLERValue = TrimCharsBeforeText(RValue, <SPACE>, TRUE) 
SET VARIABLERValue = TrimCharsAfterText(RValue, <SPACE>, TRUE) 
SET VARIABLEzero="1" 
IFIsLess(RValue,zero) 
SET VARIABLERValue="0" 
END IF  
SET VARIABLECompVal=RValue 
SET VARIBALENode=Replace(Node,?RES?,RValue) 
IFIsNotEmpty(RValue) 
IFIsNumeric(Test_Value) 
CLONE NODENode 
END IF  
END IF  
SET VARIABLEIndex=Add(1,Index) 
END LOOP  
THROW HARD EXCEPTIONAreEqual(TotNode,"0"),"No Data to Send" 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值