導入
infa_import.sh内容如下
#!/bin/bash
usage(){
echo "infa_import.sh -d <local_folder> <user_name> <password>"
exit 1
}
repository="infa"
domain="Domain_localhost.localdomain"
work_dir="/home/infa/scripts"
_imp_path=$2
_user_name=$3
_password=$4
fail=0
success=0
if [ $1"x" !== "-dx" ];then
usage
fi
cd $work_dir
pmrep connect -r $repository -d $domain -n $_user_name -x $_password
if [ $? -ne 0 ];then
echo "can not connect to the informatica repository!"
exit 1
fi
for file_name in `ls ${_imp_path}/*.XML`
do
pmrep objectimport -i $file_name -c ${work_dir}/infa_import.ctl >infa_import.log
if [ $? -eq 0 ];then
grep "<Error>" infa_import.log
if [ $? -eq 0 ];then
echo "$(basename $file_name) fail to import!"
let fail=$fail+1
else
echo "$(basename $file_name) import successfully!"
rm -rf $file_name
let success=$success+1
fi
else
echo "$(basename $file_name) fail to import!"
let fail=$fail+1
fi
done
echo "$success success;$fail fail"
調用方式:./infa_import.sh -d /home/infa/scripts Administrator Administrator
其中會用到參數檔案infa_import.ctl,内容如下
<?XML version="1.0" encoding="UTF-8"?>
<IMPORTPARAMS CHECKIN_AFTER_IMPORT="YES" CHECKIN_COMMENTS="PMREP_IMPORT_TYPEFILTER">
<RESOLVECONFLICT>
<TYPEOBJECT OBJECTTYPENAME="WORKFLOW" RESOLUTION="REPLACE"/>
<TYPEOBJECT OBJECTTYPENAME="WORKLET" RESOLUTION="REPLACE"/>
<TYPEOBJECT OBJECTTYPENAME="SESSION" RESOLUTION="REPLACE"/>
<TYPEOBJECT OBJECTTYPENAME="MAPPING" RESOLUTION="REPLACE"/>
<TYPEOBJECT OBJECTTYPENAME="MAPPLET" RESOLUTION="REPLACE"/>
<TYPEOBJECT OBJECTTYPENAME="SOURCE DEFINITION" RESOLUTION="REPLACE"/>
<TYPEOBJECT OBJECTTYPENAME="TARGET DEFINITION" RESOLUTION="REPLACE"/>
<TYPEOBJECT OBJECTTYPENAME="EXPRESSION" RESOLUTION="REPLACE"/>
<TYPEOBJECT OBJECTTYPENAME="FILTER" RESOLUTION="REPLACE"/>
<TYPEOBJECT OBJECTTYPENAME="AGGREGATOR" RESOLUTION="REPLACE"/>
<TYPEOBJECT OBJECTTYPENAME="RANK" RESOLUTION="REPLACE"/>
<TYPEOBJECT OBJECTTYPENAME="NORMALIZER" RESOLUTION="REPLACE"/>
<TYPEOBJECT OBJECTTYPENAME="ROUTER" RESOLUTION="REPLACE"/>
<TYPEOBJECT OBJECTTYPENAME="SEQUENCE" RESOLUTION="REPLACE"/>
<TYPEOBJECT OBJECTTYPENAME="SORTER" RESOLUTION="REPLACE"/>
<TYPEOBJECT OBJECTTYPENAME="UPDATE STRATEGY" RESOLUTION="REPLACE"/>
<TYPEOBJECT OBJECTTYPENAME="CUSTOM TRANSFORMATION" RESOLUTION="REPLACE"/>
<TYPEOBJECT OBJECTTYPENAME="LOOPUP PROCEDURE" RESOLUTION="REPLACE"/>
<TYPEOBJECT OBJECTTYPENAME="TRANSACTION CONTROL" RESOLUTION="REPLACE"/>
<TYPEOBJECT OBJECTTYPENAME="STORED PROCEDURE" RESOLUTION="REPLACE"/>
<TYPEOBJECT OBJECTTYPENAME="EXTERNAL PROCEDURE" RESOLUTION="REPLACE"/>
<TYPEOBJECT OBJECTTYPENAME="JOINER" RESOLUTION="REPLACE"/>
<TYPEOBJECT OBJECTTYPENAME="SESSIONCONFIG" RESOLUTION="REPLACE"/>
<TYPEOBJECT OBJECTTYPENAME="EMAIL" RESOLUTION="REPLACE"/>
<TYPEOBJECT OBJECTTYPENAME="COMMAND" RESOLUTION="REPLACE"/>
<TYPEOBJECT OBJECTTYPENAME="SCHEDULER" RESOLUTION="REPLACE"/>
</RESOLVECONFLICT>
</IMPORTPARAMS>
導出
infa_export.sh内容如下
#!/bin/bash
usage(){
echo "infa_export.sh -l <list_file> -d <output_folder> -w/-m/-s/-t <user_name> <password>"
exit 1
}
repository="infa"
domain="Domain_localhost.localdomain"
work_dir="/home/infa/scripts"
_user_name=$6
_password=$7
if [ -z $1 ];then
usage
else
while true
do
case $1 in
-l)
list_file=$2
shift 2;;
-d)
output_folder=$2
shift 2;;
-w)
object_type="workflow"
break;;
-m)
object_type="mapping"
break;;
-s)
object_type="source"
break;;
-t)
object_type="target"
break;;
*)
if [ -z $1 ];then
break;
usage
else
echo "INVALID ARGUEMENT $1";
break;
usage
fi;;
esac
done
fi
pmrep connect -r $repository -d $domain -n $_user_name -x $_password
if [ $? -ne 0 ];then
echo "can not connect to the informatica repository!"
exit 1
fi
fail=0
success=0
while read object_line
do
object_name=`echo $object_line|awk [email protected] '{print $1}'|sed 's/\\r//g'`
object_folder=`echo $object_line|awk [email protected] '{print $2}'|sed 's/\\r//g'`
pmrep objectexport -o $object_type -n $object_name -m -f $object_folder -s -b -r -u ${output_folder}/${object_name}".XML" >> ${work_dir}/infa_export.log
if [ $? -eq 0 ];then
let success=$success+1
echo "${object_name} export success!"
else
let fail=$fail+1
echo "${object_name} export failed!"
fi
done < $list_file
echo "$success success;$fail fail"
調用方式:./infa_export.sh -l infa_export.ctl -d /home/infa/scripts/output -w Administrator Administrator
會用到參數檔案infa_export.ctl,參數檔案中儲存的是需要導入的工作流名稱和所在檔案夾,内容如下
[email protected]_folder
檢視工作流是否替換成功
SELECT T.MAPPING_NAME, T.IS_VALID, T.LAST_SAVED
FROM INFA.OPB_MAPPING T
WHERE T.MAPPING_NAME = 'WORKFLOW_NAME'