ファイルをスリップするスクリプトの作成に成功し、このスクリプトを jython プロシージャで呼び出すことに成功しました。
これは私のJython procです:
import os
cmd = "<%=odiRef.getSchemaName("script_path","D")%>/split_ncl.sh <%=snpRef.getSchemaName("data_in","D")%>/<%=odiRef.getOption("REP_FILE")%> <%=snpRef.getOption("FILENAME")%>"
retcode = os.system(cmd)
if retcode > 1 :
raise "Fatal ListError (%d)" % retcode, "Erreur de split"
そして、これは私のスクリプト シェル split_ncl.sh です。
exec > Log/errors.log
exec 2>&1
data_in=$1
fichier=$2
cd $data_in
#Purge des fichiers
rm -f Split/INIT_ENC.dat
rm -f Split/INIT_ELP.dat
grep -P "^..........ENC" fichier ><!> Split/INIT_ENC.dat
grep -P "^..........ELP" $fichier >> Split/INIT_ELP.dat
すべてがうまくいっています。追加exec > Log/errors.log
しexec 2>&1
、スクリプトのすべてのエラーをerrors.logにリダイレクトします
UNIX環境でスクリプトを実行すると、エラーが記録される可能性がありますが、ODIを使用してJythonプロシージャでこのスクリプトを呼び出すと、シェルスクリプトのエラーを検出できませんfichier
。$fichier
($がありません)、正しくありません。また、エラーを検出できませんでした。どうすれば問題を解決できますか。