Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server SSIS-根据条件拆分结果将xml文件移动到适当的文件夹_Sql Server_Xml_Ssis_Etl - Fatal编程技术网

Sql server SSIS-根据条件拆分结果将xml文件移动到适当的文件夹

Sql server SSIS-根据条件拆分结果将xml文件移动到适当的文件夹,sql-server,xml,ssis,etl,Sql Server,Xml,Ssis,Etl,我有这样的想法: 在数据流中,输入以下代码: 我正在尝试在输出变量中参数化输出参数。 所以,例如 当XML文件中的国家为英国->将XML文件移动到文件夹C:\A 当XML文件中的国家不是英国->将XML文件移动到文件夹C:\B 可能我需要使用脚本组件 我想把这个输出变量放在文件系统任务目标字段中 有人能帮忙吗?首先,您不必在条件拆分中创建案例2,您可以使用默认输出。(因为如果情况1为false,则该行将重定向到条件拆分默认输出) 您可以使用一个脚本组件完成整个过程,而无需条件拆分 只需执

我有这样的想法:

在数据流中,输入以下代码:

我正在尝试在输出变量中参数化输出参数。 所以,例如

  • 当XML文件中的国家为英国->将XML文件移动到文件夹C:\A
  • 当XML文件中的国家不是英国->将XML文件移动到文件夹C:\B
可能我需要使用脚本组件

我想把这个输出变量放在文件系统任务目标字段中

有人能帮忙吗?

首先,您不必在条件拆分中创建案例2,您可以使用默认输出。(因为如果
情况1
为false,则该行将重定向到条件拆分默认输出)

您可以使用一个脚本组件完成整个过程,而无需条件拆分

只需执行以下操作:

假设将Xml文件路径存储在名为
User::XmlPath

  • 删除条件拆分和两个脚本组件,同时删除文件系统任务
  • 添加直接链接到XML源的脚本组件
  • User::XmlPath
    添加到脚本组件ReadOnlyVariables
  • 在脚本组件中编写以下代码

    Dim strPath As String = String.Empty
    Public Overrides Sub PreExecute()
        MyBase.PreExecute()
    
        strPath = Variables.XmlPath
        '
    End Sub
    
    ' This method is called after all the rows have passed through this component.
    '
    ' You can delete this method if you don't need to do anything here.
    Public Overrides Sub Input0_ProcessInputRow(ByVal Row As Input0Buffer)
    
        Dim strFile As String = IO.Path.GetFileName(strPath)
    
        If Row.Country.ToUpper = "UK" Then
    
            IO.File.Move(strPath, "C:\A\" & strFile)
    
        Else
    
            IO.File.Move(strPath, "C:\B\" & strFile)
    
        End If
    
    End Sub
    
  • 最好在问第一个问题之前先回答