批量导入xml到informatica repository中的shell script

主要利用pmrep的objectimport命令,该命令执行时需要配置control file(xml文件,配置导入的一些参数和设置)

script:

#!/bin/bash
# -----------------------------------------------------------------------
# Script Name: inf_impobj.sh
# Purpose: To batch import mappings or workflows into repository 
# Created by: Indifferent_to
# Date: 2014-09-30 
# ----------------------------------------------------------------------
function usage {
 cat <<EOUSAGE
 Usage:
    inf_impobj.sh -d <folder> <user_name>
 
 This scirpt will import the file in specified directory.It has a control
 file import_Infa_Objects_Control.txt and a log Infa_import.log.txt. If file
 import into repository successfully,script wil delete the file. If not,the file will be moved to infa_shared/scripts/xml_dir/imp_dir.


 Options:
    -m xml files location
 
 Example:
    inf_impobj.sh -m mluo
EOUSAGE
 exit 1
}
# -----------------------------------------------------------------------
case $1 in
-d)
IMP_PATH=$2/*.xml
shift 1
;;
*)
usage;;
esac


USE_NAME=$2
i=0
j=0
repository="repository name"
domain="repository domain"
host="informatica server host name"
port="informatica server port number"


pmrep connect  -r $repository -h $host -o $port -n $USE_NAME -s $domain 


for FILE_NAME in `ls $IMP_PATH`
do
 pmrep objectimport -i $FILE_NAME -c import_Infa_Objects_Control.txt >Infa_impobj.log
 if [ $? -eq 0 ]
 then
  grep "<Error>" Infa_impobj.log
  if [ $? -eq 0 ]
  then
  echo "$(basename $FILE_NAME) FAIL TO IMPORT"
  let j=$j+1
  mv -f $FILE_NAME  /error
  else
  echo "$(basename $FILE_NAME) IMPORT SUCCESSFULLY!"
  let i=$i+1
  rm $FILE_NAME
  fi
 else
 echo "$(basename $FILE_NAME) FAIL TO IMPORT"
 let j=$j+1
 mv -f $FILE_NAME  /error
 fi
done


echo "$i success; $j fail"
# --------------------------------------------------------------------


control file:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE IMPORTParaMS SYstem "/home/informatica/PowerCenter910/server/bin/impcntl.dtd">
<!--IMPORTParaMS This inputs the options and inputs required for import operation -->
<!--CHECKIN_AFTER_IMPORT Check in objects on successful import operation -->
<!--CHECKIN_COMMENTS Check in comments -->
<!--APPLY_LABEL_NAME Apply the given label name on imported objects -->
<!--RETAIN_GENERATED_VALUE Retain existing sequence generator,normalizer and XML DSQ current values in the destination -->
<!--copY_SAP_PROGRAM copy SAP program information into the target repository -->
<!--APPLY_DEFAULT_CONNECTION Apply the default connection when a connection used by a session does not exist in the target repository -->
<IMPORTParaMS CHECKIN_AFTER_IMPORT="YES(导入完成之后check in)" CHECKIN_COMMENTS="check in时的comment">


<!--FOLDERMAP matches the folders in the imported file with the folders in the target repository -->
<FOLDERMAP
SOURCEFOLDERNAME="source导入的folder"
SOURCEREPOSITORYNAME="source导入的repository"
TARGETFOLDERNAME="target导入的folder"
TARGETREPOSITORYNAME="target导入的repository"/>


<RESOLVECONFLICT>

(解决同名冲突的方式,替换、重用。。。) <TYPEOBJECT OBJECTTYPENAME="WORKFLOW" RESOLUTION="REPLACE"/> <TYPEOBJECT OBJECTTYPENAME="WORKLET" RESOLUTION="REUSE"/> <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="Lookup 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="REUSE"/> <TYPEOBJECT OBJECTTYPENAME="Email" RESOLUTION="REPLACE"/> <TYPEOBJECT OBJECTTYPENAME="Command" RESOLUTION="REPLACE"/> <TYPEOBJECT OBJECTTYPENAME="Scheduler" RESOLUTION="REPLACE"/> </RESOLVECONFLICT> </IMPORTParaMS>

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


php输出xml格式字符串
J2ME Mobile 3D入门教程系列文章之一
XML轻松学习手册
XML入门的常见问题(一)
XML入门的常见问题(三)
XML轻松学习手册(2)XML概念
xml文件介绍及使用
xml编程(一)-xml语法
XML文件结构和基本语法
第2章 包装类
XML入门的常见问题(二)
Java对象的强、软、弱和虚引用
JS解析XML文件和XML字符串详解
java中枚举的详细使用介绍
了解Xml格式
XML入门的常见问题(四)
深入SQLite多线程的使用总结详解
PlayFramework完整实现一个APP(一)
XML和YAML的使用方法
XML轻松学习总节篇