informatica workflow调用shell脚本以及返回状态参数处理

informatica,用shell脚本调用workflow,只要该下路径就能用啦!
精华部分贴出来给大家分享,

#!/bin/sh
cd /oracle/app/infa/Server/server/bin

if [ -f /backup/data/zktest/SES_MAP_IRS_DATA_REVISE_RECORD.log ] ; then
	rm -f /backup/data/zktest/SES_MAP_IRS_DATA_REVISE_RECORD.log
fi

#不传mapping参数时
#调用执行workflow,-sv informatica服务,-d 域 -u 用户,-p 密码 -folder知识库下的workflow所在文件夹,-wait SES_MAP_IRS_DATA_REVISE_RECORD (workflow名)
pmcmd startworkflow -sv etl_server_01 -d Domain_nbpjdb2 -u Administrator -p Administrator -folder testmy -wait SES_MAP_IRS_DATA_REVISE_RECORD

#传mapping参数时
#调用执行workflow,-sv informatica服务,-d 域 -u 用户,-p 密码 -folder知识库下的workflow所在文件夹,-wait SES_MAP_IRS_DATA_REVISE_RECORD (workflow名)
#pmcmd startworkflow -sv etl_server_01 -d Domain_nbpjdb2 -u Administrator -p Administrator -folder testmy  -paramfile ***/parameter.file -wait SES_MAP_IRS_DATA_REVISE_RECORD

#得到workflow执行详细log 并导出至自己的log文件中
pmcmd getworkflowdetails -sv etl_server_01 -d Domain_nbpjdb2 -u Administrator -p Administrator -folder testmy SES_MAP_IRS_DATA_REVISE_RECORD >/backup/data/zktest/SES_MAP_IRS_DATA_REVISE_RECORD.log

#获取Workflow run status的是否执行成功 成功[Succeeded] 失败[Failed]
typeset status=`sed -n '/Workflow run status/'p /backup/data/zktest/SES_MAP_IRS_DATA_REVISE_RECORD.log | awk '{print$4}'`

echo ${status}

if [ $status != "[Succeeded]" ] ; then
echo "$(date '+%Y-%m-%d %H:%M:%S') SES_MAP_IRS_DATA_REVISE_RECORD出错,请查看详细日志 " | tee -a SES_MAP_IRS_DATA_REVISE_RECORD.log
return 1
else
echo "$(date '+%Y-%m-%d %H:%M:%S') SES_MAP_IRS_DATA_REVISE_RECORD成功,执行完毕 " | tee -a SES_MAP_IRS_DATA_REVISE_RECORD.log
return 0
fi

你可能感兴趣的:(oracle,workflow,shell,Infomatica,pmcmd)