2015-02-20 2 views
0

Я пытаюсь воспроизвести старый «control break processing» в SSIS. Я хочу сгруппировать свои записи общим значением, например. Пригород.«Обработка прерывания управления» в SSIS

Итак, отсортируйте записи по пригородам, а затем прочитайте записи, относящиеся к первому пригороду, и обработайте эти записи. Затем продолжайте и соберите следующую группу/пригород и т. Д.

Простой в использовании COBOL, но не может понять, могут ли петли в SSIS или что-то еще сделать то же самое.

What is a control break? (COBOL) здесь является псевдо-код для процесса разрыва управления

Читать первую запись

--Seed control key 
@Suburbkey = rs(“Suburb”) 

While Not rs.oef 
    If rs(“Suburb”) <> @SuburbKey then 
     --Process Batched records 
       Process @BatchRS 

     --Empty batched records 
     @BatchRS = null 
      End if 

    @BatchRS.add = Rs 

    @SuburbKey = rs(“Suburb”) 
    rs.MoveNext 
End while 
+0

Таким образом, даже читая две ссылки на перерыве управления, я до сих пор не понимаю, как эмулировать управление обработкой пролома. Я подозреваю, что даже не может быть правильной парадигмой для SSIS. Не могли бы вы нажать кнопку «Изменить» и дать пример того, что будет «обрабатывать эти записи». Возможно, что пример Ako - это то, что вы ищете, но может быть просто, что вы пытаетесь использовать тиски, чтобы перекрутить сокет, когда вам просто нужно захватить метрический ключ. – billinkc

+1

Каждый раз, когда значения дозорных элементов меняются, Do X. Что такое * X *? В зависимости от того, что вы делаете, то, что показывает Ako ниже, может быть правильным. Или это может быть очень не * способ сделать что-то стандартным образом для SSIS. Например, если у вас есть образец набора данных и каждый раз, когда почтовый индекс изменяется, вы хотите пойти и определить правильный город и состояние для объекта. Это соответствовало бы вашей модели управления прерыванием, но было бы более интуитивно написано как задача поиска в потоке данных. Вы не заботитесь о конкретной обработке, вместо этого вы описываете, что должно произойти, и пусть инструмент работает. – billinkc

+0

Реальная логика в процессе прерывания управления немного сложнее. На самом деле я делаю финансовый опрос в конце года. Мне нужно сгруппировать записи по учетной записи, а затем посмотреть значения в последней записи и первую запись этой группы для выполнения вычислений. А затем сгенерируйте новый порог из этих значений. – user1413844

ответ

0

Является ли это то, что вам нужно? Соберите некоторые рабочие элементы, поместите в переменную System.Object и обработайте их один за другим в a для каждого цикла (для).

Breaking up work in control flow

+0

№. Для каждого цикла вы можете получить по одной записи за раз. и в моем примере будет похож на «Пока». Однако группировка подобных записей в цикле, то есть прерывание управления, я могу видеть только как возможное с задачей скрипта. Я просто не уверен, что это лучший способ обработать его. – user1413844

Смежные вопросы