cathy
TASKCTL怎样调度Informatic作业?
山兔
请参照以下链接配置好infajob
https://ask.hellobi.com/blog/TASKCTL/3648
提供informatica 执行workflow插件脚本大致如下
#!/bin/sh #------------------------------------------------------------------------------ # 功能: informatica workflow 以 shell方式执行驱动插件程序 # 参数: # 1. progname 对应相应任务的progname属性,是workflow名称 # 2. para 对应相应任务的para属性,是mapping参数文件名称 # 3. exppara 对应相应任务的exppara属性,是informatica的环境信息、必须按照顺序: #【服务,域,用户,密码,workflow所在知识库文件夹】,字段间用逗号隔开。 # # 返回值: 0 成功;1 失败 # # 流程模式代码任务定义举例: # <infajob> # <name>MainModul_Infa_Workflow_1</name> # <progname>Infa_Workflow_1</progname> # <para>***/mapping0.file</para> -- ***为mapping文件的位置 # <exppara>etl_svr_1,domain_1,user_1,pwd_1,folder_1</exppara> # </infajob> # # #------------------------------------------------------------------------------ if [ $# -ne 3 ] then echo "Param error !" echo "Usage: $0 progname para expara" exit 126 fi #------------------------------------------------------------------------------ # 第一步: 接收参数 #------------------------------------------------------------------------------ ProgName=$1 Para=$2 ExpPara=$3 #------------------------------------------------------------------------------ # 第二步: 解析环境参数,分别获取【服务,域,用户,密码,workflow所在知识库文件夹】 #------------------------------------------------------------------------------ # 服务名 并去前后空格 tmpstr=`echo ${ExpPara}|awk -F ',' '{print $1}'` SERVER=`echo ${tmpstr}` # 域 并去前后空格 tmpstr=`echo ${ExpPara}|awk -F ',' '{print $2}'` DOMAIN=`echo ${tmpstr}` # 用户 并去前后空格 tmpstr=`echo ${ExpPara}|awk -F ',' '{print $3}'` USER=`echo ${tmpstr}` # 密码 并去前后空格 tmpstr=`echo ${ExpPara}|awk -F ',' '{print $4}'` PWD=`echo ${tmpstr}` # workflow所在知识库文件夹 并去前后空格 tmpstr=`echo ${ExpPara}|awk -F ',' '{print $5}'` FOLDER=`echo ${tmpstr}` #------------------------------------------------------------------------------ # 第三步: 启动workflow,执行时应判断参数是否为空 #------------------------------------------------------------------------------ if [ -z ${Para} ];then echo `pmcmd startworkflow -sv ${SERVER} -d ${DOMAIN} -u ${USER} -p ${PWD} -folder ${FOLDER} -wait ${ProgName}` else echo `pmcmd startworkflow -sv ${SERVER} -d ${DOMAIN} -u ${USER} -p ${PWD} -paramfile ${Para} -folder ${FOLDER} -wait ${ProgName}` fi #------------------------------------------------------------------------------ # 第四步: 获取informatica处理日志,并分析处理结果 #------------------------------------------------------------------------------ echo "JOB运行日志如下........................." echo "================================================================================" if [ -f "$TASKCTLDIR/tmp/${ProgName}.log" ]; then rm -f "$TASKCTLDIR/tmp/${ProgName}.log" fi echo `pmcmd getworkflowdetails -sv ${SERVER} -d ${DOMAIN} -u ${USER} -p ${PWD} -folder ${FOLDER} ${ProgName} > $TASKCTLDIR/tmp/${ProgName}.log` typeset status=`sed -n '/Workflow run status/'p $TASKCTLDIR/tmp/${ProgName}.log | awk '{print$4}'` #------------------------------------------------------------------------------ # 第五步: 插件返回 #------------------------------------------------------------------------------ echo "================================================================================" if [ $status != "[Succeeded]" ] then echo "" echo "Run job failed !" exit 1; else echo "" echo "Run job success !" exit 0; fi
沙发 发表于 2017-04-10 11:27 回复(1)
怎么才能获取infajob
板凳 发表于 2017-04-13 12:38 回复(1)
请登录后评论~