Устранение неполадок BIML при перемещении файлов

Я пытаюсь написать простой цикл перемещения файлов, но я знаю, что мне не хватает пары вещей. 1. Возможно, отсутствует переменная, которая проходит через все файлы, которые являются текстовыми, и перемещает только текстовые файлы, поэтому мне нужна переменная, но я не уверен, где я мог бы разместить ее в коде ниже. 2. Я получаю сообщение об ошибке: «Необходимое свойство «Источник» не было предоставлено для «MoveFilesPackage.LoopFilesMove.MoveToDestination»… но я думал, что понял? :( дайте мне знать, если мне не хватает чего-то еще, чтобы это работало правильно и перемещало файлы данных из одного каталога в другой :( Код Biml ниже:

<Biml xmlns="http://schemas.varigence.com/biml.xsd">
<Connections>
  <FileConnection Name="File_Source" FilePath="\\pc1\Documents\HMS\" RelativePath ="true"/>
  <FileConnection Name="File_Destination" FilePath="\\pc1\Documents\HMS\Archive_Test\" RelativePath ="true"/>
</Connections>
<Packages>
    <Package Name="MoveFilesPackage" ConstraintMode="Linear">
        <Variables>
            <Variable Name="FileSource" Namespace="user" DataType="String"></Variable>
            <Variable Name="FileDestination" Namespace="user" DataType="String"></Variable>
        </Variables>
        <Tasks>
            <ForEachFileLoop Name="LoopFilesMove" Folder="User::FileSource" ConstraintMode="Linear" FileSpecification="*.txt">
                <Tasks>
                    <FileSystem Name="MoveToDestination" Operation="MoveFile">
                        <Expressions>
                            <Expression PropertyName="Source" ExternalProperty="User::FileSource"></Expression>
                            <Expression PropertyName="Destination" ExternalProperty="User::FileDestination"></Expression>
                        </Expressions>
                    </FileSystem>
                </Tasks>
            </ForEachFileLoop>
        </Tasks>
    </Package>
</Packages>
</Biml>

person SteveB    schedule 27.02.2017    source источник
comment
Папка в вашем цикле foreachfileloop выглядит неправильно. Он получит строковое значение User::FileSource вместо \\pc1\documents... взгляните на мой пост на FileSystemTask Хотя я явно не использую операцию MoveFile, это должно стать очевидным   -  person billinkc    schedule 28.02.2017
comment
OK нашел 1 исправление, однако получил другое сообщение об ошибке, сообщение об ошибке System.collections.DictionaryEntry Exception Type: ExpressionSyntaxException C:\... blah blah SSIS path 19 34 код, который я добавил ниже после цикла foreachfileloop и задач: ‹FileSystem Name= MoveToDestination Operation=MoveFile› ‹FileInput ConnectionName=File_Source/› ‹FileOutput ConnectionName=File_Destination/›   -  person SteveB    schedule 28.02.2017


Ответы (1)


Ответ на этот вопрос был дан на форумах Varigence Biml, где он был опубликован: https://varigence.com/Forums?threadID=9737

Вот минимальный образец кода, который там был:

<Biml xmlns="http://schemas.varigence.com/biml.xsd">
<Packages>
    <Package Name="MoveFilesPackage" ConstraintMode="Linear">
        <Variables>
            <Variable Name="SourceFilePath" DataType="String">c:\temp</Variable>
        </Variables>
        <Tasks>
            <ForEachFileLoop Name="LoopFilesMove" Folder="\\pc1\Documents\HMS\" ConstraintMode="Linear" FileSpecification="*.txt" RetrieveFileNameFormat="FullyQualified">
                <VariableMappings>
                    <VariableMapping Name="0" VariableName="User.SourceFilePath" />
                </VariableMappings>
                <Tasks>
                    <FileSystem Name="MoveToDestination" Operation="MoveFile">
                        <VariableInput VariableName="User.SourceFilePath" />
                        <ExternalFileOutput ExternalFilePath="\\pc1\Documents\HMS\Archive_Test\" />
                    </FileSystem>
                </Tasks>
            </ForEachFileLoop>
        </Tasks>
    </Package>
</Packages>
</Biml>
person Scott Currie    schedule 28.02.2017