2014-09-18 4 views
0

У меня есть отображение-а Informatica простой то, который имеет Sq->t(x)->tgtотправки почты с помощью Informatica рабочего

Здесь я наполнение цели (что плоский файл) только, если определенное условие, которое включено в преобразования.

Теперь мое требование состоит в том, что если цель (txt-файл) заполнена даже одной записью, она должна отправить электронное письмо двум людям.

Я использую команду Unix mailx, но я не уверен, как проверить, есть ли записи в целевом файле с использованием сценария Unix. Это то, что я пробовал:

if [ "/data/informatica/Services/myfolder/TgtFiles/filename.csv" = "1" ]//here i am trying to check if there are any records in the target 
then 
    mailx -s "Target is populated" "[email protected] [email protected] "<<ed 
    Validation completed 
    ed 
else 
    exit 
    eod 
fi 

ответ

1

Это не ясно, что оболочка Informatica звонит, но это должно работать с почти любой Борна производной (не CSH).

if [ `wc -l < "/data/informatica/Services/myfolder/TgtFiles/filename.csv"` -gt 0 ] 
    # //here i am trying to check if there are any records in the target 
then 
    mailx -s "Target is populated" "[email protected] [email protected] "<<ed 
    Validation completed 
    ed 
else 
    exit 
    eod 
fi 

я не могу легко проверить mailx часть и не знаю, что eod средства Informatica. Если я заменил корпус then на echo yep и корпус else с echo nope, он работает должным образом.

Если вы можете использовать новую команду-замещение, заменить первую строку с

if [ $(wc -l < "/data/informatica/Services/myfolder/TgtFiles/filename.csv") -gt 0 ] 

, который будет хорошим примером для любого копирования кода.

IHTH.

0

Это также может быть достигнуто с использованием условия по ссылке до Command Task в Workflow. Вы должны были бы добавить следующее условие на связь между Session и Command Task:

$your_session_name.TgtSuccessRows > 0 

Если вы вызываете свой сценарий, используя Post-Session Success Command, вы должны изменить его Command Task первым.

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