003_SSIS Webサービスのデータ抽出

目的:電子取引データを抽出します

次のように図の完全なプロセスは、次のとおりです。

 

 

実装手順:

1.次のようにSQLのSQLタスクを実行します。

(現在の日付 - 1日)を選択||」夜12時00' 分00秒START_DATEとして、(現在の日付 - 1日)||」SYSIBM.SYSDUMMY1からEND_DATEなど夜11時59' 分59秒

変数の設定でクエリの結果:

 

 

2.インタフェースはADO列挙子を使用して、foreachの容器を用い、そう履歴データにだけ一日一回のデータを抽出するため、着信変数結果

 

締め切りで、開始時間にマッピングされた変数のためのセクションで

 

 

3.新しいHTTP接続マネージャとして

 

 4. [新しいWebサービスミッションエディター、として、まず今WSDLファイルの、WSDLドキュメントをダウンロードすると、利用できない場合がありますおそらくダウンロードします

そこ70で使用することができる百のWSDLインターフェースは、あり、残りは解決できない、不必要です。ソリューション:まず、makeは必ずインターフェースがデータを抽出するには良いです

名前、あなたはこの1つのだけのインターフェイスを維持することができます。

WSDLファイル形式次のように入力タブが正常に構成されたインターフェース名、説明WSDLファイルを参照する場合、次の形式のジャム必要なインターフェースに応じて、ラベルに細心の注意です。

<定義> 

<タイプ> </タイプ> 
<メッセージ> </メッセージ> 
<のportType> </のportType> 
<バインディング> </結合> 
</定義>
   definition of types........


   definition of a message....


   definition of a port.......


   definition of a binding....

 

入力タブに渡される変数をforeachの、トークン・リングは、固定値を上流側に設けられ

 

 そして、変数に取得したコンテンツを出力

 

 下一步由c#脚本生成xml文件,并将上一步的User::HDTYPE_2变量传入,脚本内容如下,因为该接口存在一定的问题,

webservice返回的数据中含有xsd内容,所以这个xml文件无法生成xsd,处理方法为用xpath将数据内容提取,生成一个

只含有数据的xml文件,然后再由ssis工具生成xsd文件,如图:

 

 xml文件位置固定,这样每次有新的xml生成就会覆盖原有文件,生成的xsd需要注意的是,系统生成的xsd是由当前xml中的数据生成的,

数据库中为varchar类型的,但此次xml中只含有数字的话,xsd就认为这里为int类型,这里要人工将xsd中的数据类型与数据库中的数据

类型一一对照,手动修改。

 

public void Main()
{
// TODO: Add your code here
//String content = Dts.Variables["HDTYPE_2"].Value.ToString();
//MessageBox.Show(content);

System.Xml.XmlDocument xdoc = new System.Xml.XmlDocument();
xdoc.InnerXml = Dts.Variables["HDTYPE_2"].Value.ToString();
String text = "<?xml version=\"1.0\" encoding=\"utf-16\"?><DataSet><NewDataSet><Status Result=\"ok\" />";
String text2 = "";
XmlNodeList listNodes = xdoc.SelectNodes("//c_product");
foreach (XmlNode node in listNodes)
{
text +="<c_product>" + node.InnerXml + "</c_product>";

}

XmlNodeList listNodes2 = xdoc.SelectNodes("//c_product_control");
foreach (XmlNode node2 in listNodes2)
{
text2 += "<c_product_control>" + node2.InnerXml + "</c_product_control>";

}
String eXml = text2 + "</NewDataSet></DataSet>";
String Xml = text + eXml;
/*StreamWriter sw = new StreamWriter(@"D:\app\Microsoft SQL Server\MSAS11.HBDCAPP\OLAP\Backup\cigaTransService\GetCigaBaseDATAforJAVA.xml");
sw.WriteLine(Xml);
sw.Close();*/
System.Xml.XmlDocument xdoc2 = new System.Xml.XmlDocument();
xdoc2.InnerXml = Xml;


xdoc2.Save(@"D:\app\Microsoft SQL Server\MSAS11.HBDCAPP\OLAP\Backup\cigaTransService\GetCigaBaseDATAforJAVA.xml");

Dts.TaskResult = (int)ScriptResults.Success;
}

xml源处理好后,进行数据类型的转换,转换也要跟数据库中进行一一对应,精确度,字符串的长度等

 

 

处理好后,即可插入到数据库中,结束后对重复的数据进行删除

 

做完该项抽取后,可以对该包做一个加密处理,双击控制流空白处,点击属性,在如下图中进行设置

 

 

 

おすすめ

転載: www.cnblogs.com/renzy194/p/12031184.html