我很好奇如何使计时器任务的状态更改为成功?我有很多会话,其中有些会话是串联连接的,有些是并行...在每个会话成功运行之后,计时器任务的状态仍显示为正在运行...如何使它也成功更改...条件是,如果工作流在分配的20分钟以下完成,计时器任务必须更改为成功,但是如果超过20分钟,则应向指定用户发送电子邮件并中止工作流.....
Unix:
if[[ $Event_Exceed20min > 20 AND $EVent_Exceed20min.Status = Running ]]
pmcmd stopworkflow -service informatica-integration-Service -d domain-name - u user-name -p password -f folder-name -w workflow-name
$Event_Exceed20min.Status = SUCCEEDED
fi
您可以使用UNIX脚本执行此操作。我看不到只有Informatica才能做到这一点。您可以创建一个脚本,该脚本将使用pmcmd启动informatica,继续轮询状态。
在下面剪下代码...
#!/bin/bash
wf=$1
sess=$2
mailids="[email protected],[email protected]"
log="~/log/"$wf"log.txt"
echo "Start Workflow..."> $log
pmcmd startworkflow -sv service -d domain -u username -p password -f "FolderName" $wf
#Timer starts, works only in BASH
start=$SECONDS
while :
do
#Check Timer, if >20min abort the flow.
end=$SECONDS
duration=$(( end - start ))
if [ $duration -gt 1200 ]; then
pmcmd stopworkflow -sv service -d domain -u username -p password -f prd_CLAIMS -w $wf
STAT=$?
#Error check if not aborted
mailx -s "Workflow took >20min so aborted" $mailids
fi
pmcmd getsessionstatistics -sv service -d domain -u username -p password -f prd_CLAIMS -w $wf $sess > ~/log/tmp.txt
STAT=$?
if [ "$STAT" != 0 ]; then
echo "Staus check failed" >> $log
fi
echo $(grep "[Succeeded] " ~/log/tmp.txt| wc -l) > ~/log/tmp2.txt
STAT=$?
if [ -s ~/log/tmp2.txt ]; then
echo "Workflow Succeeded...">> $log
exit
fi
sleep 30
done
echo "End Workflow...">> $log