#!/bin/bash
##############################################################
# システム名    ：eo顧客基幹システム
#
# サブシステム名：契約管理
#
# シェル名      ：ｅｏＩＤ会員有効性情報抽出
#
# 機能          ：eoID会員有効性情報に必要な情報を抽出する。
#
# コマンド形式  ：EO21S0110J0.sh
#
# 実行環境      ：.../app/shl
#
# 終了ステータス：ゼロ以外異常
#
# 特記事項      ：特になし
#
# 変更履歴      ：変更日      変更者       障害／仕様変更No.
#  v05.00.01     2014/06/23  FAP)古内     IT1-2014-0000201
#  v16.00.00     2015/06/01  FJ)頼経      ANK-2480-00-00
#  v23.00.00     2016/03/09  FJ)頼経      ANK-2480-01-00
#
##############################################################

##############################################################
# 環境変数定義
##############################################################

#
#---ツール格納場所
#
G_TOOLSH=.

#
#---環境変数定義Shell呼び出し
#
. EOK010110J0.sh

#
#---ＪＯＢ名
#
JOBNAME=`basename $0 | sed -e "s/\.sh//g"`

#
#---サービス（業務プロセス）
#
SVC=$JOBNAME

#
#---OPD
#
OPD=$1

#
#---運用日付取得
#
if [ "${OPD}" = "" ];then
	. EOK010310J0.sh "NDATE"
else
	RSLT_OPEDATE=${OPD}
fi
OPD=${RSLT_OPEDATE}

#
#---システム日付の取得
#
. EOK010410J0.sh 1
SYSDATE=${RSLT_SYSDATE}
SYSYMD=`echo ${SYSDATE} | cut -c 1-8`

#
#---業務で必要な変数定義
#
#xxx=xxxxxxx
##############################################################
# 業務処理
##############################################################
sh ${G_TOOLSH}/EOK010210J0.sh CS00025I $JOBNAME

##############################################################
# 共通関数
##############################################################

#
#--- アンロード関数
#       p1：出力ファイル名
#       p2：クエリファイル名
#       p3：バインド変数置換文字
#
EXEC_UNLOAD()
{
	OTF=$1
	SQL_FILE=$2
	BIND_VAL=$3
	
	SQL_WORK_FILE=${ULD_WORK_DIR}/${JOBNAME}.W_ULD.sql
	# SQLクエリファイル初期化
	cat /dev/null > ${SQL_WORK_FILE}
	
	# SQL定義ファイルが存在しない場合エラー
	if [ ! -r ${SQL_FILE} ]
	then
		sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " File is nonexist(${SQL_FILE}:rc=$rc) "
		echo $JOBNAME " File is nonexist(${SQL_FILE}:rc=$rc) "
		exit ${G_RTN_ERROR}
	fi

	# バインド変数を置き換える
	cat ${SQL_FILE} > ${SQL_WORK_FILE}
	if [ "${BIND_VAL}" != "" ]
	then
		for bind in ${BIND_VAL}
		do
			sed -i, -e 0,/?/s/?/"'"$bind"'"/ ${SQL_WORK_FILE}
		done
	fi
	
	# 出力ファイルの初期化
	cat /dev/null > ${OTF}
	rc=$?
	if [ $rc -ne 0 ]
	then
		sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " File cat error(${OTF}:rc=$rc) "
		echo $JOBNAME " File cat error(${OTF}:rc=$rc) "
		exit ${G_RTN_ERROR}
	fi
	
	# unload
	sh ${G_TOOLSH}/EOKULD02.sh ${SQL_WORK_FILE} ${OTF}
	
	rc=$?
	if [ $rc -ne 0 ]
	then
		sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " unload error(${SQL_FILE}:rc=$rc) "
		echo $JOBNAME " unload error(${SQL_FILE}:rc=$rc) "
		exit ${G_RTN_ERROR}
	fi
}

#
#--- マッチング処理
#      p1：出力ファイルパス
#      p2：マッチングクエリファイルパス
#      p3：バインド変数
EXEC_MATCHING()
{
	OUTFILE=$1
	MATCHING_FILE=$2
	CONV_FILE=$3
	MATCHING_QUERY_WORK=${ULD_WORK_DIR}/${JOBNAME}.W_MATCH_QUERY.tmp

	# マッチングクエリファイルの初期化
	cat /dev/null > ${MATCHING_QUERY_WORK}
	
	# マッチングクエリファイルの存在チェック
	if [ ! -r ${MATCHING_FILE} ]
	then
		sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " File is nonexist(${MATCHING_FILE}:rc=$rc) "
		echo $JOBNAME " File is nonexist(${MATCHING_FILE}:rc=$rc) "
		exit ${G_RTN_ERROR}
	fi

	# バインド変数を置き換える
	cat ${MATCHING_FILE} > ${MATCHING_QUERY_WORK}
	
	for bind in ${CONV_FILE}
	do
		# 入力パラメータのエスケープ処理
		bind_escape=`echo $bind | sed "s/\//\\\\\\\\\//g"`
		sed -i, -e 0,/#FILE#/s/#FILE#/$bind_escape/ ${MATCHING_QUERY_WORK}
		
	done
	
	# 出力ファイルの初期化
	cat /dev/null > ${OUTFILE}
	rc=$?
	if [ $rc -ne 0 ]
	then
		sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " File cat error(${OUTFILE}:rc=$rc) "
		echo $JOBNAME " File cat error(${OUTFILE}:rc=$rc) "
		exit ${G_RTN_ERROR}
	fi

	# マッチング実行
	export ZTLOUTFILE=${OUTFILE}
	${G_TOOLSH}/util/bin/ZTLMAT01 ${MATCHING_QUERY_WORK}
	
	rc=$?
	if [ $rc -ne 0 ]
	then
		sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " matching error($2:rc=$rc) "
		echo $JOBNAME " matching error($2:rc=$rc) "
		exit ${G_RTN_ERROR}
	fi
}

#
# -- カレント取得処理
#
FILTER_CURRENT()
{
	INF=$1
	OTF=$2
	REC_LEN=$3
	BS_DEF=$4
	
	SORT_KEY=""
	
	# ソートKEYを構築（@keyで始まる定義を取得）
	for key in ${BS_DEF}
	do
		case "$key" in 
			@key* ) 
				if [ "${SORT_KEY}" != "" ]
				then
					SORT_KEY="${SORT_KEY},"
				fi
				SORT_KEY="${SORT_KEY}${key%=*}"
			;;
		esac
	done
	
	bsortex -define ${BS_DEF} -sort key=${SORT_KEY},@rsvAplyYmd,@supkey -record recform=txtcsv -input reclen=${REC_LEN} include="@mkflg.eq.'0'.and.@rsvAplyCd.eq.'2'.and.@rsvAplyYmd.le.'${OPD}'" < ${INF} \
	  | bsortex -define ${BS_DEF} -merge key="${SORT_KEY}" -record recform=txtcsv -input reclen=${REC_LEN} -summary suppress last -output file=${OTF}
	  
	rc=$?
	if [ $rc -ne 0 ]
	then
	    sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " SORT Error($SVC sort:rc=$rc) "
	    echo $JOBNAME " SORT Error($SVC sort:rc=$rc) "
	    exit ${G_RTN_ERROR}
	fi
}

#
# -- 作業ファイルの削除
#
REMOVE_WORK_FILE()
{
	for workfile in `ls -1 ${MID_DIR_KK}/${JOBNAME}.W_*.csv`
	do
		rm -f ${workfile}
	done
	
	rm -f ${MID_DIR_KK}/KKIFM028001_W.csv
}

###################################################################################
# データ抽出処理
###################################################################################

###################################################################################
# ■ 前回実行日の取得
###################################################################################
SQL_FILE_U_KK1281_02=${SQL_DIR}/KK_U_KK1281_02.sql
SQL_FILE_U_KK1281_03=${SQL_DIR}/KK_U_KK1281_03.sql
KK1281_OUTFILE=${MID_DIR_KK}/${JOBNAME}.KK1281_OUT.csv
BUTSURI_BAT_ID=KKPRC06401
FILE_ID='KKIFE040  '

#
# ファイル連携制御よりデータ前回実行年月日を取得する。
#
EXEC_UNLOAD ${KK1281_OUTFILE} ${SQL_FILE_U_KK1281_02} "${BUTSURI_BAT_ID} ${FILE_ID}"
read EXECDATE_DQ < ${KK1281_OUTFILE}

# ダブルクォーテーション削除
ZNKI_TRAN_RUN_DTM=`echo ${EXECDATE_DQ} | sed -e 's/"//g'`

#
# ファイル連携制御よりデータ前回実行運用年月日（更新運用年月日）を取得する。
#
EXEC_UNLOAD ${KK1281_OUTFILE} ${SQL_FILE_U_KK1281_03} "${BUTSURI_BAT_ID} ${FILE_ID}"
read EXECDATE_DQ < ${KK1281_OUTFILE}

# ダブルクォーテーション削除
ZNKI_TRN_RUN_UNYO_YMD=`echo ${EXECDATE_DQ} | sed -e 's/"//g'`

# 日時のみを取得
ZNKI_TRAN_RUN_DTM=`echo ${ZNKI_TRAN_RUN_DTM} | egrep [0-9]+`
ZNKI_TRN_RUN_UNYO_YMD=`echo ${ZNKI_TRN_RUN_UNYO_YMD} | egrep [0-9]+`

# ファイル連携制御にデータが存在しない場合は、オール０とする。
if [ "${ZNKI_TRAN_RUN_DTM}" == "" ]
then
	ZNKI_TRAN_RUN_DTM="00000000000000000"
fi
ZNKI_TRNAN_RUN_YMD=`echo ${ZNKI_TRAN_RUN_DTM} | cut -c 1-8`

if [ "${ZNKI_TRN_RUN_UNYO_YMD}" == "" ]
then
	ZNKI_TRN_RUN_UNYO_YMD="00000000"
fi

rm ${KK1281_OUTFILE}

# **************************************************************
#  各種変数の定義
# **************************************************************
# アンロード出力ファイル 
CK0011_ULD=${MID_DIR_KK}/${JOBNAME}.W_CK0011_U.csv
KK0081_ULD=${MID_DIR_KK}/${JOBNAME}.W_KK0081_U.csv
KK0321_ULD=${MID_DIR_KK}/${JOBNAME}.W_KK0321_U.csv
CH0231_ULD=${MID_DIR_KK}/${JOBNAME}.W_CH0231_U.csv
CH0361_ULD=${MID_DIR_KK}/${JOBNAME}.W_CH0361_U.csv

#
# 抽出処理出力ファイル
#
CK0011_CUR=${MID_DIR_KK}/${JOBNAME}.W_CK0011_C.csv
KK0081_CUR=${MID_DIR_KK}/${JOBNAME}.W_KK0081_C.csv
KK0081_CURRENT=${MID_DIR_KK}/${JOBNAME}.W_KK0081_CURRENT.csv
KK0081_TRG=${MID_DIR_KK}/${JOBNAME}.W_KK0081_C_TRG.csv
KK0081_OTHER=${MID_DIR_KK}/${JOBNAME}.W_KK0081_C_OTH.csv
KK0081_BKT_HKT=${MID_DIR_KK}/${JOBNAME}.W_KK0081_BKT_HKT.csv
KK0081_CRS_CHG=${MID_DIR_KK}/${JOBNAME}.W_KK0081_CRS_CHG.csv
# 2013/12/20 ANK-1584-00-00 START
KK0081_CUR_MVNO_JYGI=${MID_DIR_KK}/${JOBNAME}.W_KK0081_CUR_MVNO_JYGI.csv
# 2013/12/20 ANK-1584-00-00 END
# ANK-2480-01-00 ADD START
KK0081_CUR_ELEC_JYGI=${MID_DIR_KK}/${JOBNAME}.W_KK0081_CUR_ELEC_JYGI.csv
KK0081_CURRENT_ELEC_JYGI=${MID_DIR_KK}/${JOBNAME}.W_KK0081_CURRENT_ELEC_JYGI.csv
# ANK-2480-01-00 ADD END

KK0321_CUR=${MID_DIR_KK}/${JOBNAME}.W_KK0321_C.csv
CH0231_CUR=${MID_DIR_KK}/${JOBNAME}.W_CH0231_C.csv
CH0361_CUR=${MID_DIR_KK}/${JOBNAME}.W_CH0361_C.csv

# ワークファイル定義
MATCH_OTF=${MID_DIR_KK}/${JOBNAME}.W_MATCH_OTF.csv
TEMP_OTF=${MID_DIR_KK}/${JOBNAME}.W_TMP.csv
TRGT_OTF=${MID_DIR_KK}/${JOBNAME}.W_TRGT.csv

# 解約系絞込み用ワークファイル定義
KK0081_TRG_SUM_FST=${MID_DIR_KK}/${JOBNAME}.W_KK0081_C_TRG_FST.csv
KK0081_TRG_SUM_LST=${MID_DIR_KK}/${JOBNAME}.W_KK0081_C_TRG_LST.csv
KK0081_TRG_CLT_ALL=${MID_DIR_KK}/${JOBNAME}.W_KK0081_C_TRG_CLT_ALL.csv
KK0081_TRG_CLT_BK=${MID_DIR_KK}/${JOBNAME}.W_KK0081_C_TRG_CLT_BK.csv
KK0081_TRG_CLT_DSL=${MID_DIR_KK}/${JOBNAME}.W_KK0081_C_TRG_CLT_DSL.csv
MATCH_DSLKF=${MID_DIR_KK}/${JOBNAME}.W_MATCH_DSLKF.csv

#
# BSORTの項目定義
#
#
# 2013/09/07 OM-2013-0001622 START
#KK0081_ITM_DEF="@svcKeiNo=0.10asc @geneAddDtm=1.17asc @sysid=2.10asc @svcCd=3.2asc @svcKeiStat=4.3asc @prcGrpCd=5.2asc @pcrsCd=6.3asc @pplanCd=7.6asc @shosaYMD=8.8asc @svcStaYMD=9.8asc @svcEndYMD=10.8asc @idoDiv=11.5asc @rsvAplyYmd=12.8asc @rsvAplyCd=13.1asc @addDtm=14.17asc @addOpeAcnt=15.10asc @addTrnId=16.40asc @mkFlg=17.1asc @updDtm=18.17asc @updOpeAcnt=19.10asc @updTrnId=20.40asc @svcStpYmd=21.8asc @svcStpRlsYmd=22.8asc @svcDslYmd=23.8asc @svcCancelYmd=24.8asc @planStaYmd=25.8asc @kaihkYmd=26.8asc @svcCancelClYmd=27.8asc @shosaClYmd=28.8asc"
KK0081_ITM_DEF="@svcKeiNo=0.10asc @geneAddDtm=1.17asc @sysid=2.10asc @svcCd=3.2asc @svcKeiStat=4.3asc @prcGrpCd=5.2asc @pcrsCd=6.3asc @pplanCd=7.6asc @shosaYMD=8.8asc @svcStaYMD=9.8asc @svcEndYMD=10.8asc @idoDiv=11.5asc @rsvAplyYmd=12.8asc @rsvAplyCd=13.1asc @addDtm=14.17asc @addOpeAcnt=15.10asc @addTrnId=16.40asc @mkFlg=17.1asc @updDtm=18.17asc @updOpeAcnt=19.10asc @updTrnId=20.40asc @svcStpYmd=21.8asc @svcStpRlsYmd=22.8asc @svcDslYmd=23.8asc @svcCancelYmd=24.8asc @planStaYmd=25.8asc @kaihkYmd=26.8asc @svcCancelClYmd=27.8asc @shosaClYmd=28.8asc @svcDslClYmd=29.8asc"
# 2013/09/07 OM-2013-0001622 END
KK0321_ITM_DEF="@seikyKeiNo=0.10asc @svcKeiNo=1.10asc @tstaymd=2.8asc @tendymd=3.8asc @mkFlg=4.1asc @blank=5.1asc"
CH0231_ITM_DEF="@tokuNo=0.12asc @tokuStat=1.2asc @seikyKeiNo=2.10asc @tokuIdoYmd=3.8asc @staymd=4.8asc @endymd=5.8asc @useStpReqYmd=6.8asc @useStpRlsReqYmd=7.8asc @mkFlg=8.1asc @blank=9.1asc @updDtm=10.17asc"
CH0361_ITM_DEF="@tokuNo=0.12asc @tokuIdoNo=1.12asc @tokuStat=2.2asc @tokuIdoYMD=3.8asc @mkFlg=4.1asc @updDtm=5.17asc"

#
# アウトプットファイルへの出力項目
#
OUTPUT_SELECT_NUMBER="0.10,1.17,2.10,3.2,4.3,5.2,6.3,7.6,8.8,9.8,10.8,11.5,12.8,13.1,14.17,15.10,16.40,17.1,18.17,19.10,20.40,28.8"
OUTPUT_SELECT_NUMBER_AFTER_MG="0.10,1.17,2.10,3.2,4.3,5.2,6.3,7.6,8.8,9.8,10.8,11.5,12.8,13.1,14.17,15.10,16.40,17.1,18.17,19.10,20.40,21.8"

# 初期化
cat /dev/null > ${TEMP_OTF}

#
# -- アンロード処理（各基礎情報のアンロード）
#
UNLOAD_BASE_DATA()
{
	#
	# お客様のアンロード
	#
	EXEC_UNLOAD ${CK0011_CUR} ${SQL_DIR}/KK_U_CK0011_08.sql "${OPD}"
	
	#
	# サービス契約のアンロード
	#
	EXEC_UNLOAD ${TEMP_OTF} ${SQL_DIR}/KK_U_KK0081_53.sql ""
	
	#
	# 課金先のアンロード
	#
	EXEC_UNLOAD ${KK0321_ULD} ${SQL_DIR}/KK_U_KK0321_13.sql ""

	#
	# 督促のアンロード
	#
	EXEC_UNLOAD ${CH0231_ULD} ${SQL_DIR}/KK_U_CH0231_01.sql ""

	#
	# 督促異動のアンロード
	#
	EXEC_UNLOAD ${CH0361_ULD} ${SQL_DIR}/KK_U_CH0361_01.sql ""
		
	#
	# *** サービス契約のカレント取得 ***
	#
	KK0081_REC_LEN=500
	# ANK-2480-00-00 MOD START
	#bsortex -define ${KK0081_ITM_DEF} -sort key="@svcKeiNo" -record recform=txtcsv -input reclen=${KK0081_REC_LEN} include="@mkFlg.eq.'0'" -output file=${KK0081_ULD} < ${TEMP_OTF}
	# ANK-2480-01-00 MOD START
	#bsortex -define ${KK0081_ITM_DEF} -sort key="@svcKeiNo" -record recform=txtcsv -input reclen=${KK0081_REC_LEN} include="@mkFlg.eq.'0'.and.@svcCd.ne.'05'" -output file=${KK0081_ULD} < ${TEMP_OTF}
	bsortex -define ${KK0081_ITM_DEF} -sort key="@svcKeiNo" -record recform=txtcsv -input reclen=${KK0081_REC_LEN} include="@mkFlg.eq.'0'" -output file=${KK0081_ULD} < ${TEMP_OTF}
	# ANK-2480-01-00 MOD END
	# ANK-2480-00-00 MOD END
	# 2013/04/22 抽出側ではサマリせずに指定期間内の情報を抽出する対応 START
	# サービス契約のカレントにサマリせずに、データ前回実行年月日からシステム日時までの範囲に絞込みを行っておくように修正
	#FILTER_CURRENT ${KK0081_ULD} ${KK0081_CUR} ${KK0081_REC_LEN} "@key1=0.10asc @supkey=1.17asc @mkflg=17.1asc @rsvAplyCd=13.1asc @rsvAplyYmd=12.8asc"
	bsortex -define ${KK0081_ITM_DEF} -sort key="@svcKeiNo" -record recform=txtcsv -input reclen=${KK0081_REC_LEN} include="@updDtm.ge.'${ZNKI_TRAN_RUN_DTM}'.and.@updDtm.le.'${SYSDATE}'" -output file=${KK0081_CUR} < ${KK0081_ULD}
	# 手続き中の強制解約チェックのためにカレントも取得
	FILTER_CURRENT ${KK0081_ULD} ${KK0081_CURRENT} ${KK0081_REC_LEN} "@key1=0.10asc @supkey=1.17asc @mkflg=17.1asc @rsvAplyCd=13.1asc @rsvAplyYmd=12.8asc"
	# 2013/12/20 ANK-1584-00-00 START MVNOを除外したデータを取得
	bsortex -define ${KK0081_ITM_DEF} -sort key="@svcKeiNo" -record recform=txtcsv -input reclen=${KK0081_REC_LEN} include="@svcCd.ne.'51'" -output file=${KK0081_CUR_MVNO_JYGI} < ${KK0081_CUR}
	# 2013/12/20 ANK-1584-00-00 END
	# ANK-2480-01-00 ADD START eo電気を除外したデータを取得
	bsortex -define ${KK0081_ITM_DEF} -sort key="@svcKeiNo" -record recform=txtcsv -input reclen=${KK0081_REC_LEN} include="@svcCd.ne.'05'" -output file=${KK0081_CURRENT_ELEC_JYGI} < ${KK0081_CURRENT}
	bsortex -define ${KK0081_ITM_DEF} -sort key="@svcKeiNo" -record recform=txtcsv -input reclen=${KK0081_REC_LEN} include="@svcCd.ne.'05'" -output file=${KK0081_CUR_ELEC_JYGI} < ${KK0081_CUR}
	# ANK-2480-01-00 ADD END


	# 2013/04/22 抽出側ではサマリせずに指定期間内の情報を抽出する対応 END

	#
	# *** 有効な課金先の取得 ***
	### 2013/10/08 OM-2013-0002816対応修正 START +++++
	#
	#bsortex -define ${KK0321_ITM_DEF} -sort key="@svcKeiNo" -record recform=txtcsv -input reclen=200 \
	#		include="@mkFlg.eq.'0'.and.@tstaymd.le.'${OPD}'.and.@tendymd.ge.'${OPD}'.and.@svcKeiNo.ne.@blank" -output file=${KK0321_CUR} < ${KK0321_ULD}
	bsortex -define ${KK0321_ITM_DEF} -sort key="@svcKeiNo" -record recform=txtcsv -input reclen=200 \
			include="@mkFlg.eq.'0'.and.@tstaymd.le.'${OPD}'.and.@tendymd.ge.'${ZNKI_TRN_RUN_UNYO_YMD}'.and.@svcKeiNo.ne.@blank" -output file=${KK0321_CUR} < ${KK0321_ULD}
	### 2013/10/08 OM-2013-0002816対応修正 END +++++

	rc=$?
	if [ $rc -ne 0 ]
	then
	    sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " SORT Error($SVC sort:rc=$rc) "
	    echo $JOBNAME " SORT Error($SVC sort:rc=$rc) "
	    exit ${G_RTN_ERROR}
	fi

	#
	# *** 有効な督促の取得 ***
	#
	### 2013/10/08 OM-2013-0002816対応修正 START +++++
	#bsortex -define ${CH0231_ITM_DEF} -sort key="@tokuNo" -record recform=txtcsv -input reclen=200 \
	#	include="@mkFlg.eq.'0'.and.@staymd.le.'${OPD}'.and.@endymd.ge.'${OPD}'.and.@tokuIdoYmd.le.'${OPD}'.and.@updDtm.ge.'${ZNKI_TRAN_RUN_DTM}'.and.@updDtm.le.'${SYSDATE}'" -output file=${CH0231_CUR} < ${CH0231_ULD}
	bsortex -define ${CH0231_ITM_DEF} -sort key="@tokuNo" -record recform=txtcsv -input reclen=200 \
		include="@mkFlg.eq.'0'.and.@staymd.le.'${OPD}'.and.@endymd.ge.'${ZNKI_TRN_RUN_UNYO_YMD}'.and.@tokuIdoYmd.le.'${OPD}'.and.@updDtm.ge.'${ZNKI_TRAN_RUN_DTM}'.and.@updDtm.le.'${SYSDATE}'" -output file=${CH0231_CUR} < ${CH0231_ULD}
	### 2013/10/08 OM-2013-0002816対応修正 END +++++

	rc=$?
	if [ $rc -ne 0 ]
	then
	    sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " SORT Error($SVC sort:rc=$rc) "
	    echo $JOBNAME " SORT Error($SVC sort:rc=$rc) "
	    exit ${G_RTN_ERROR}
	fi

	#
	# *** 督促番号単位における最新の督促異動を取得
	#
	bsortex -define ${CH0361_ITM_DEF} -sort key="@tokuNo,@tokuIdoNo" -record recform=txtcsv -input reclen=200 include="@mkFlg.eq.'0'" < ${CH0361_ULD} \
	  | bsortex -define ${CH0361_ITM_DEF} -merge key="@tokuNo" -record recform=txtcsv -input reclen=200 -summary suppress last \
	  | bsortex -define ${CH0361_ITM_DEF} -sort key="@tokuNo" -record recform=txtcsv -input reclen=200 include="@tokuIdoYMD.ge.'${ZNKI_TRN_RUN_UNYO_YMD}'.and.@tokuIdoYMD.le.'${OPD}'.and.@updDtm.ge.'${ZNKI_TRAN_RUN_DTM}'.and.@updDtm.le.'${SYSDATE}'" -output file=${CH0361_CUR}
	
	rc=$?
	if [ $rc -ne 0 ]
	then
	    sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " SORT Error($SVC sort:rc=$rc) "
	    echo $JOBNAME " SORT Error($SVC sort:rc=$rc) "
	    exit ${G_RTN_ERROR}
	fi
}

# 
# -- アンロード処理（UNLOAD_BASE_DATAの呼出）
#
UNLOAD_BASE_DATA

cat /dev/null > ${TRGT_OTF}

#
# -- 出力処理の初期化
#
cat /dev/null > ${MID_DIR_KK}/KKIFM028001.csv

# ******************************************************************************************
#  ■「サービス解約」、「サービス回復」の対象サービス契約を取得
# ******************************************************************************************
# +++++ IKK-2013-0000700 +++++
# *** 処理対象の契約のみに絞込む(前回実行年月日時分秒<更新年月日時分秒<=システム日付)
#bsortex -define ${KK0081_ITM_DEF} -sort key="@svcKeiNo" -record recform=txtcsv -input reclen=${KK0081_REC_LEN} \
#	include="@updDtm.gt.'${ZNKI_TRAN_RUN_DTM}'.and.@updDtm.le.'${SYSDATE}'" -output file=${KK0081_TRG} < ${KK0081_CUR}
#
# *** 取得した契約の各種日付にて絞込みを行う。
#  以下の日付が前回実行日以降で変更されていた場合、抽出する。
#    解約/撤去（解約）/強制解約   サービス契約．サービス解約年月日
#    キャンセル                   サービス契約．キャンセル年月日
#    コース変更                   サービス契約．プラン開始年月日 ※ 住所変更時のコース変更含む
#    お客様併合                   サービス契約．予約適用年月日
#    お客様分割                   サービス契約．予約適用年月日
#    お客様回復                   サービス契約．回復年月日  ※ 照査済への回復を含む
# 2013/12/18 ANK-1584-00-00：MVNOの利用停止／利用停止解除を追加する
#    利用停止(MVNO)               サービス契約．サービス停止年月日  ※ サービスコードによりMVNOを判定
#    利用停止解除(MVNO)           サービス契約．サービス停止解除年月日  ※ サービスコードによりMVNOを判定
#
# 取得する項目の最終列に、住所変更判別用のフラグ値を設定。
#
# 
KK0081_STP=${MID_DIR_KK}/${JOBNAME}.W_KK0081_STP.csv
KK0081_STP_RLS=${MID_DIR_KK}/${JOBNAME}.W_KK0081_STP_RLS.csv
KK0081_DSL=${MID_DIR_KK}/${JOBNAME}.W_KK0081_DSL.csv
KK0081_CANCEL=${MID_DIR_KK}/${JOBNAME}.W_KK0081_CANCEL.csv
KK0081_CRS_CHG_A23=${MID_DIR_KK}/${JOBNAME}.W_KK0081_CRS_CHG_A23.csv
# ++++++++++++++++++++++ v05.00.01 add start ++++++++++++++++++++++
KK0081_CRS_CHG_WORK=${MID_DIR_KK}/${JOBNAME}.W_KK0081_CRS_CHG.csv
# ++++++++++++++++++++++ v05.00.01 add end ++++++++++++++++++++++
KK0081_KAIFUKU=${MID_DIR_KK}/${JOBNAME}.W_KK0081_KAIFUKU.csv
KK0081_HEIGO_BKT=${MID_DIR_KK}/${JOBNAME}.W_KK0081_HEIGO_BKT.csv
# 2013/12/18 ANK-1584-00-00 START
KK0081_MVNO_USE_STP=${MID_DIR_KK}/${JOBNAME}.W_KK0081_MVNO_USE_STP.csv
KK0081_MVNO_USE_STP_RLS=${MID_DIR_KK}/${JOBNAME}.W_KK0081_MVNO_USE_STP_RLS.csv
# 2013/12/18 ANK-1584-00-00 END
#
# データの選別
#
# 2013/09/07 OM-2013-0001622 START
# 2013/12/18 ANK-1584-00-00：KK0081_MVNO_USE_STP,KK0081_MVNO_USE_STP_RLSの追加
# 2014/03/04 ANK-1584-00-00：KK0081_HEIGO_BKTで受付済を除外するように修正（MVNOは受付済でお客様併合、分割が発生するため）
#bsortex -define ${KK0081_ITM_DEF} -sort key="@svcKeiNo,@geneAddDtm" -record recform=txtcsv -input reclen=${KK0081_REC_LEN} \
#	-output file=${KK0081_DSL}       include="@svcDslYmd.ge.'${ZNKI_TRN_RUN_UNYO_YMD}'.and.@svcDslYmd.le.'${OPD}'.and.@updDtm.ge.'${ZNKI_TRAN_RUN_DTM}'.and.@updDtm.le.'${SYSDATE}'" reconst="0.END,'03'.2asc" \
#	-output file=${KK0081_CANCEL}    include="@svcCancelYmd.ge.'${ZNKI_TRN_RUN_UNYO_YMD}'.and.@svcCancelYmd.le.'${OPD}'.and.@shosaYMD.ge.' '.and.@updDtm.ge.'${ZNKI_TRAN_RUN_DTM}'.and.@updDtm.le.'${SYSDATE}'" reconst="0.END,'04'.2asc" \
#	-output file=${KK0081_CRS_CHG}   include="@planStaYmd.ge.'${ZNKI_TRN_RUN_UNYO_YMD}'.and.@planStaYmd.le.'${OPD}'.and.@pcrsCd.eq.'A23'.and.@updDtm.ge.'${ZNKI_TRAN_RUN_DTM}'.and.@updDtm.le.'${SYSDATE}'" reconst="0.END,'05'.2asc" \
#	-output file=${KK0081_KAIFUKU}   include="((@kaihkYmd.ge.'${ZNKI_TRN_RUN_UNYO_YMD}'.and.@kaihkYmd.le.'${OPD}').or.(@svcKeiStat.eq.'020'.and.@svcCancelClYmd.ge.'${ZNKI_TRN_RUN_UNYO_YMD}'.and.@svcCancelClYmd.le.'${OPD}')).and.@updDtm.ge.'${ZNKI_TRAN_RUN_DTM}'.and.@updDtm.le.'${SYSDATE}'" reconst="0.END,'06'.2asc" \
#	-output file=${KK0081_HEIGO_BKT} include="@updDtm.ge.'${ZNKI_TRAN_RUN_DTM}'.and.@updDtm.le.'${SYSDATE}'.and.(@idoDiv.eq.'00013'.or.@idoDiv.eq.'00014')" reconst="0.END,'07'.2asc" < ${KK0081_ULD}
# ++++++++++++++++++++++ v05.00.01 mod start ++++++++++++++++++++++
#  ・コース変更対象抽出を以下のように修正
#    改修前：プラン開始年月日が前回運用日～当日且つ、料金コースが「A23」
#    改修後：サービスコードが「03（TV）」
#     ※ A23という判定は、別途実施する。
#  ・出力ファイルを「KK0081_CRS_CHG」から「KK0081_CRS_CHG_WORK」に変更
#bsortex -define ${KK0081_ITM_DEF} -sort key="@svcKeiNo,@geneAddDtm" -record recform=txtcsv -input reclen=${KK0081_REC_LEN} \
#	-output file=${KK0081_DSL}       include="@svcDslYmd.ge.'${ZNKI_TRN_RUN_UNYO_YMD}'.and.@svcDslYmd.le.'${OPD}'.and.@updDtm.ge.'${ZNKI_TRAN_RUN_DTM}'.and.@updDtm.le.'${SYSDATE}'" reconst="0.END,'03'.2asc" \
#	-output file=${KK0081_CANCEL}    include="@svcCancelYmd.ge.'${ZNKI_TRN_RUN_UNYO_YMD}'.and.@svcCancelYmd.le.'${OPD}'.and.@shosaYMD.ge.' '.and.@updDtm.ge.'${ZNKI_TRAN_RUN_DTM}'.and.@updDtm.le.'${SYSDATE}'" reconst="0.END,'04'.2asc" \
#	-output file=${KK0081_CRS_CHG}   include="@planStaYmd.ge.'${ZNKI_TRN_RUN_UNYO_YMD}'.and.@planStaYmd.le.'${OPD}'.and.@pcrsCd.eq.'A23'.and.@updDtm.ge.'${ZNKI_TRAN_RUN_DTM}'.and.@updDtm.le.'${SYSDATE}'" reconst="0.END,'05'.2asc" \
#	-output file=${KK0081_KAIFUKU}   include="((@kaihkYmd.ge.'${ZNKI_TRN_RUN_UNYO_YMD}'.and.@kaihkYmd.le.'${OPD}').or.(@svcKeiStat.eq.'020'.and.@svcCancelClYmd.ge.'${ZNKI_TRN_RUN_UNYO_YMD}'.and.@svcCancelClYmd.le.'${OPD}').or.(@svcKeiStat.eq.'030'.and.@svcDslClYmd.ge.'${ZNKI_TRN_RUN_UNYO_YMD}'.and.@svcDslClYmd.le.'${OPD}')).and.@updDtm.ge.'${ZNKI_TRAN_RUN_DTM}'.and.@updDtm.le.'${SYSDATE}'" reconst="0.END,'06'.2asc" \
#	-output file=${KK0081_HEIGO_BKT} include="@geneAddDtm.ge.'${ZNKI_TRAN_RUN_DTM}'.and.@geneAddDtm.le.'${SYSDATE}'.and.@updDtm.ge.'${ZNKI_TRAN_RUN_DTM}'.and.@updDtm.le.'${SYSDATE}'.and.(@idoDiv.eq.'00013'.or.@idoDiv.eq.'00014').and.@svcKeiStat.ne.'010'" reconst="0.END,'07'.2asc" \
#	-output file=${KK0081_MVNO_USE_STP}     include="@svcStpYmd.ge.'${ZNKI_TRN_RUN_UNYO_YMD}'.and.@svcStpYmd.le.'${OPD}'.and.@svcCd.eq.'51'.and.@updDtm.ge.'${ZNKI_TRAN_RUN_DTM}'.and.@updDtm.le.'${SYSDATE}'" reconst="0.END,'08'.2asc" \
#	-output file=${KK0081_MVNO_USE_STP_RLS} include="@svcStpRlsYmd.ge.'${ZNKI_TRN_RUN_UNYO_YMD}'.and.@svcStpRlsYmd.le.'${OPD}'.and.@svcCd.eq.'51'.and.@updDtm.ge.'${ZNKI_TRAN_RUN_DTM}'.and.@updDtm.le.'${SYSDATE}'" reconst="0.END,'09'.2asc" < ${KK0081_ULD}
bsortex -define ${KK0081_ITM_DEF} -sort key="@svcKeiNo,@geneAddDtm" -record recform=txtcsv -input reclen=${KK0081_REC_LEN} \
	-output file=${KK0081_DSL}       include="@svcDslYmd.ge.'${ZNKI_TRN_RUN_UNYO_YMD}'.and.@svcDslYmd.le.'${OPD}'.and.@updDtm.ge.'${ZNKI_TRAN_RUN_DTM}'.and.@updDtm.le.'${SYSDATE}'" reconst="0.END,'03'.2asc" \
	-output file=${KK0081_CANCEL}    include="@svcCancelYmd.ge.'${ZNKI_TRN_RUN_UNYO_YMD}'.and.@svcCancelYmd.le.'${OPD}'.and.@shosaYMD.ge.' '.and.@updDtm.ge.'${ZNKI_TRAN_RUN_DTM}'.and.@updDtm.le.'${SYSDATE}'" reconst="0.END,'04'.2asc" \
	-output file=${KK0081_CRS_CHG_WORK}   include="@svcCd.eq.'03'.and.@updDtm.ge.'${ZNKI_TRAN_RUN_DTM}'.and.@updDtm.le.'${SYSDATE}'" reconst="0.END,'05'.2asc" \
	-output file=${KK0081_KAIFUKU}   include="@idoDiv.eq.'00004'.and.((@kaihkYmd.ge.'${ZNKI_TRN_RUN_UNYO_YMD}'.and.@kaihkYmd.le.'${OPD}').or.(@svcKeiStat.eq.'020'.and.@svcCancelClYmd.ge.'${ZNKI_TRN_RUN_UNYO_YMD}'.and.@svcCancelClYmd.le.'${OPD}').or.(@svcKeiStat.eq.'030'.and.@svcDslClYmd.ge.'${ZNKI_TRN_RUN_UNYO_YMD}'.and.@svcDslClYmd.le.'${OPD}')).and.@updDtm.ge.'${ZNKI_TRAN_RUN_DTM}'.and.@updDtm.le.'${SYSDATE}'" reconst="0.END,'06'.2asc" \
	-output file=${KK0081_HEIGO_BKT} include="@geneAddDtm.ge.'${ZNKI_TRAN_RUN_DTM}'.and.@geneAddDtm.le.'${SYSDATE}'.and.@updDtm.ge.'${ZNKI_TRAN_RUN_DTM}'.and.@updDtm.le.'${SYSDATE}'.and.(@idoDiv.eq.'00013'.or.@idoDiv.eq.'00014').and.@svcKeiStat.ne.'010'" reconst="0.END,'07'.2asc" \
	-output file=${KK0081_MVNO_USE_STP}     include="@svcStpYmd.ge.'${ZNKI_TRN_RUN_UNYO_YMD}'.and.@svcStpYmd.le.'${OPD}'.and.@svcCd.eq.'51'.and.@updDtm.ge.'${ZNKI_TRAN_RUN_DTM}'.and.@updDtm.le.'${SYSDATE}'" reconst="0.END,'08'.2asc" \
	-output file=${KK0081_MVNO_USE_STP_RLS} include="@svcStpRlsYmd.ge.'${ZNKI_TRN_RUN_UNYO_YMD}'.and.@svcStpRlsYmd.le.'${OPD}'.and.@svcCd.eq.'51'.and.@updDtm.ge.'${ZNKI_TRAN_RUN_DTM}'.and.@updDtm.le.'${SYSDATE}'" reconst="0.END,'09'.2asc" < ${KK0081_ULD}
# ++++++++++++++++++++++ v05.00.01 mod end ++++++++++++++++++++++
# 2013/09/07 OM-2013-0001622 END
rc=$?
if [ $rc -ne 0 ]
then
    sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " SORT Error($SVC sort:rc=$rc) "
    echo $JOBNAME " SORT Error($SVC sort:rc=$rc) "
    exit ${G_RTN_ERROR}
fi

### +++++ IT-2013-0000888対応追加 START +++++
# 異動区分が解約系・回復系のデータが、抽出期間内に複数存在する場合、サービス契約の最初の世代登録年月日時分秒のデータを取得。
# 異動区分が解約系・回復系以外のデータは、これまで通りサービス契約の最大の世代登録年月日時分秒のデータを取得。
#
# ++++++++ IT-2013-0000888対応 del START ++++++++
# 対象データよりカレントのみに絞込む
#bsortex -define ${KK0081_ITM_DEF} -sort key="@svcKeiNo,@rsvAplyYmd,@geneAddDtm" -record recform=txtcsv -input reclen=${KK0081_REC_LEN} \
#	file=${KK0081_DSL},${KK0081_CANCEL},${KK0081_CRS_CHG},${KK0081_KAIFUKU},${KK0081_HEIGO_BKT} \
#		| bsortex -define ${KK0081_ITM_DEF} -merge key="@svcKeiNo" -record recform=txtcsv -input reclen=${REC_LEN} -summary suppress last \
#			-output file=${KK0081_TRG} reconst="${OUTPUT_SELECT_NUMBER},29.2"
# ++++++++ IT-2013-0000888対応 del END ++++++++

# 2013/04/22 抽出側ではサマリせずに指定期間内の情報を抽出する対応により処理削除 START
## 解約系・回復系は抽出期間内データ内で最小の世代登録年月日時分秒に絞込む
#bsortex -define ${KK0081_ITM_DEF} -sort key="@svcKeiNo,@rsvAplyYmd,@geneAddDtm" -record recform=txtcsv -input reclen=${KK0081_REC_LEN} \
#	file=${KK0081_DSL},${KK0081_CANCEL},${KK0081_CRS_CHG},${KK0081_KAIFUKU} \
#		| bsortex -define ${KK0081_ITM_DEF} -merge key="@svcKeiNo" -record recform=txtcsv -input reclen=${REC_LEN} -summary suppress first \
#			-output file=${KK0081_TRG_SUM_FST} reconst="${OUTPUT_SELECT_NUMBER},28.2"
#
#
## 対象データよりカレントのみに絞込む（カレントデータの異動区分特定）
#bsortex -define ${KK0081_ITM_DEF} -sort key="@svcKeiNo,@rsvAplyYmd,@geneAddDtm" -record recform=txtcsv -input reclen=${KK0081_REC_LEN} \
#	file=${KK0081_DSL},${KK0081_CANCEL},${KK0081_CRS_CHG},${KK0081_KAIFUKU},${KK0081_HEIGO_BKT} \
#		| bsortex -define ${KK0081_ITM_DEF} -merge key="@svcKeiNo" -record recform=txtcsv -input reclen=${REC_LEN} -summary suppress last \
#			-output file=${KK0081_TRG_CLT_ALL} reconst="${OUTPUT_SELECT_NUMBER},28.2"
#
## カレントから解約系・回復系と解約系以外を分離（解約系・回復系はマッチングに使用するため）
#bsortex -define ${KK0081_ITM_DEF} -sort key="@svcKeiNo" -record recform=txtcsv -input reclen=${KK0081_REC_LEN} file=${KK0081_TRG_CLT_ALL} \
#	-output file=${KK0081_TRG_CLT_BK} case="21.2asc.eq.'07'" reconst="0.END" \
#	-output file=${KK0081_TRG_CLT_DSL} case="other" reconst="0.END"\
#
#
## 解約系・回復系の最小世代ファイルとカレントのファイルでマッチング。
## カレントに存在する場合、抽出対象となり、最小世代の情報を取得する。
#cat /dev/null > ${MATCH_DSLKF}
#if [ `cat ${KK0081_TRG_CLT_DSL} | wc -l` -ne 0 -a `cat ${KK0081_TRG_SUM_FST} | wc -l` -ne 0 ]
#then
#	EXEC_MATCHING ${MATCH_DSLKF} ${G_TOOLSH}/util/def/KK_CM_0121.def "${KK0081_TRG_CLT_DSL} ${KK0081_TRG_SUM_FST}"
#fi

# マッチング結果と回復、分割・併合のカレントデータをマージする。
#bsortex -define ${KK0081_ITM_DEF} -sort key="@svcKeiNo,@rsvAplyYmd,@geneAddDtm" -record recform=txtcsv -input reclen=${KK0081_REC_LEN} \
#	file=${MATCH_DSLKF},${KK0081_TRG_CLT_BK} \
#		| bsortex -define ${KK0081_ITM_DEF} -record recform=txtcsv -input reclen=${REC_LEN} \
#			-output file=${KK0081_TRG} reconst="${OUTPUT_SELECT_NUMBER},21.2"

### +++++ IT-2013-0000888対応追加 END +++++
# 2013/04/22 抽出側ではサマリせずに指定期間内の情報を抽出する対応により処理削除 END

# 2013/09/07 OM-2013-0001622 START
## 2013/04/22 抽出側ではサマリせずに指定期間内の情報を抽出する対応 START
## IT-2013-0000888対応で追加した処理は削除し、カレントに絞り込まずにファイルにマージする
#bsortex -define ${KK0081_ITM_DEF} -sort key="@svcKeiNo,@rsvAplyYmd,@geneAddDtm" -record recform=txtcsv -input reclen=${KK0081_REC_LEN} \
#	file=${KK0081_DSL},${KK0081_CANCEL},${KK0081_CRS_CHG},${KK0081_KAIFUKU},${KK0081_HEIGO_BKT} \
#			-output file=${KK0081_TRG} reconst="${OUTPUT_SELECT_NUMBER},29.2"
## 2013/04/22 抽出側ではサマリせずに指定期間内の情報を抽出する対応 END
# ++++++++++++++++++++++ v05.00.01 mod start ++++++++++++++++++++++
#  ・入力ファイルを「KK0081_CRS_CHG」から「KK0081_CRS_CHG_WORK」に変更
#bsortex -define ${KK0081_ITM_DEF} -sort key="@svcKeiNo,@rsvAplyYmd,@geneAddDtm" -record recform=txtcsv -input reclen=${KK0081_REC_LEN} \
#	file=${KK0081_DSL},${KK0081_CANCEL},${KK0081_CRS_CHG},${KK0081_KAIFUKU},${KK0081_HEIGO_BKT} \
#			-output file=${KK0081_TRG} reconst="${OUTPUT_SELECT_NUMBER},30.2"
bsortex -define ${KK0081_ITM_DEF} -sort key="@svcKeiNo,@rsvAplyYmd,@geneAddDtm" -record recform=txtcsv -input reclen=${KK0081_REC_LEN} \
	file=${KK0081_DSL},${KK0081_CANCEL},${KK0081_CRS_CHG_WORK},${KK0081_KAIFUKU},${KK0081_HEIGO_BKT} \
			-output file=${KK0081_TRG} reconst="${OUTPUT_SELECT_NUMBER},30.2"
# ++++++++++++++++++++++ v05.00.01 mod end ++++++++++++++++++++++
# 2013/09/07 OM-2013-0001622 END
rc=$?
if [ $rc -ne 0 ]
then
    sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " SORT Error($SVC sort:rc=$rc) "
    echo $JOBNAME " SORT Error($SVC sort:rc=$rc) "
    exit ${G_RTN_ERROR}
fi
# +++++ IKK-2013-0000700 +++++

#
# *** 異動区分毎のデータを取得する。
#  ※ 出力ファイル説明：
#      - ${KK0081_BKT_HKT}   ：異動区分が「00013(分割)」「00014(併合)」である契約情報
#      - ${KK0081_CRS_CHG}   ：データ識別コードが"05"且つ料金コースコードが「A23(再送信)」である契約情報
#      - ${KK0081_OTHER}：上記以外の契約情報（）
#
# ++++++++++++++++++++++ v05.00.01 mod start ++++++++++++++++++++++
#  ・コース変更分（データ識別コード：05）を別処理にて取得するように修正
#bsortex -define ${KK0081_ITM_DEF} -sort key="@svcKeiNo" -record recform=txtcsv -input reclen=${KK0081_REC_LEN} file=${KK0081_TRG} \
#	-output file=${KK0081_BKT_HKT} case="@idoDiv.eq.'00013'.or.@idoDiv.eq.'00014'" reconst="${OUTPUT_SELECT_NUMBER_AFTER_MG},1.17" \
#	-output file=${KK0081_CRS_CHG} case="22.2asc.eq.'05'.and.@pcrsCd.eq.'A23'" reconst="${OUTPUT_SELECT_NUMBER_AFTER_MG},1.17" \
#	-output file=${KK0081_OTHER} case="22.2asc.eq.'01'.or.22.2asc.eq.'02'.or.22.2asc.eq.'03'.or.22.2asc.eq.'04'.or.22.2asc.eq.'06'" reconst="${OUTPUT_SELECT_NUMBER_AFTER_MG},1.17"\
bsortex -define ${KK0081_ITM_DEF} -sort key="@svcKeiNo" -record recform=txtcsv -input reclen=${KK0081_REC_LEN} file=${KK0081_TRG} \
	-output file=${KK0081_BKT_HKT} case="@idoDiv.eq.'00013'.or.@idoDiv.eq.'00014'" reconst="${OUTPUT_SELECT_NUMBER_AFTER_MG},1.17" \
	-output file=${KK0081_OTHER} case="22.2asc.eq.'01'.or.22.2asc.eq.'02'.or.22.2asc.eq.'03'.or.22.2asc.eq.'04'.or.22.2asc.eq.'06'" reconst="${OUTPUT_SELECT_NUMBER_AFTER_MG},1.17"\

rc=$?
if [ $rc -ne 0 ]
then
    sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " SORT Error($SVC sort:rc=$rc) "
    echo $JOBNAME " SORT Error($SVC sort:rc=$rc) "
    exit ${G_RTN_ERROR}
fi

# コース変更のファイルを取得する。
#
bsortex -define ${KK0081_ITM_DEF} -sort key="@svcKeiNo,@rsvAplyYmd,@geneAddDtm" -record recform=txtcsv -input reclen=${KK0081_REC_LEN} file=${KK0081_CRS_CHG_WORK} \
  | bsortex -define ${KK0081_ITM_DEF} -merge key="@svcKeiNo" -record recform=txtcsv -input reclen=${KK0081_REC_LEN} -summary suppress last -output reconst="${OUTPUT_SELECT_NUMBER},30.2" \
  | bsortex -define ${KK0081_ITM_DEF} -sort key="@svcKeiNo" -record recform=txtcsv -input reclen=${KK0081_REC_LEN} \
	  -output file=${KK0081_CRS_CHG_A23} case="22.2asc.eq.'05'.and.@pcrsCd.eq.'A23'" reconst="${OUTPUT_SELECT_NUMBER_AFTER_MG},1.17"
# ++++++++++++++++++++++ v05.00.01 mod end ++++++++++++++++++++++
	
rc=$?
if [ $rc -ne 0 ]
then
    sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " SORT Error($SVC sort:rc=$rc) "
    echo $JOBNAME " SORT Error($SVC sort:rc=$rc) "
    exit ${G_RTN_ERROR}
fi

#
# *** 異動区分が「分割」「併合」時は対象データにおけるカレントの世代以前を取得する。
# （分割したサービス契約をさらに分割した場合でも取得できるように、KK_CM_0093.defの『「分割」「併合」以外』の条件は削除）
#
cat /dev/null > ${MATCH_OTF}
if [ `cat ${KK0081_ULD} | wc -l` -ne 0 -a `cat ${KK0081_BKT_HKT} | wc -l` -ne 0 ]
then

	cat /dev/null > ${TEMP_OTF}
	#「分割」「併合」のマッチングの前に同一SYSID、サービス契約番号、異動区分のデータを集約する（世代違いの2レコードできる分を集約）
	bsortex -sort key="0.10asc,11.5asc,2.10asc,1.17asc" -record recform=txtcsv -input reclen=400 < ${KK0081_BKT_HKT} \
	  | bsortex -merge key="0.10asc,11.5asc,2.10asc" -record recform=txtcsv -input reclen=400 -summary suppress first -output file=${TEMP_OTF}
	mv ${TEMP_OTF} ${KK0081_BKT_HKT}

	EXEC_MATCHING ${MATCH_OTF} ${G_TOOLSH}/util/def/KK_CM_0093.def "${KK0081_ULD} ${KK0081_BKT_HKT}"
	# 2013/04/22 抽出側ではサマリせずに指定期間内の情報を抽出する対応 START
	# 「分割」「併合」時の対象データをカレントに絞り込まずに、${KK0081_BKT_HKT}に出力する（マッチング結果をコピー）
	cp ${MATCH_OTF} ${KK0081_BKT_HKT}
	# 2013/04/22 抽出側ではサマリせずに指定期間内の情報を抽出する対応 END
fi

# *** カレントのみに絞込む ***
# 2013/04/22 抽出側ではサマリせずに指定期間内の情報を抽出する対応 Delete START
#FILTER_CURRENT ${MATCH_OTF} ${KK0081_BKT_HKT} ${KK0081_REC_LEN} "@key1=0.10asc @supkey=1.17asc @mkflg=18.1asc @rsvAplyCd=14.1asc @rsvAplyYmd=13.8asc"
# 2013/04/22 抽出側ではサマリせずに指定期間内の情報を抽出する対応 Delete END

# 一時ファイルの初期化
rm -f ${TEMP_OTF}
mv ${KK0081_BKT_HKT} ${TEMP_OTF}
# ソート用の世代を最後に付与（KK0081_CRS_CHG、KK0081_OTHERに付与した分より１項目少ないため、余分に付与する）
bsortex -sort key="0.10asc" -record recform=txtcsv -input reclen=500 -output file=${KK0081_BKT_HKT} reconst="0.10,2.END,2.17" < ${TEMP_OTF}

rc=$?
if [ $rc -ne 0 ]
then
    sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " SORT Error($SVC sort:rc=$rc) "
    echo $JOBNAME " SORT Error($SVC sort:rc=$rc) "
    exit ${G_RTN_ERROR}
fi

#
# *** 異動区分が「コース変更」時は対象データにおけるカレントの世代以前で最大の世代を取得する。
#
cat /dev/null > ${TEMP_OTF}
if [ `cat ${KK0081_ULD} | wc -l` -ne 0 -a `cat ${KK0081_CRS_CHG} | wc -l` -ne 0 ]
then

	#「コース変更」のマッチングの前に同一SYSID、サービス契約番号、異動区分のデータを集約する（世代違いの2レコードできる分を集約）
	# ※ 対象データは、料金コースコードが「A23（再送信）」のデータのみとなる。
	bsortex -sort key="0.10asc,11.5asc,2.10asc,1.17asc" -record recform=txtcsv -input reclen=400 < ${KK0081_CRS_CHG_A23} \
	  | bsortex -merge key="0.10asc,11.5asc,2.10asc" -record recform=txtcsv -input reclen=400 -summary suppress first -output file=${TEMP_OTF}
	
	mv ${TEMP_OTF} ${KK0081_CRS_CHG_A23}
	
	cat /dev/null > ${TEMP_OTF}

# 2013/04/22 抽出側ではサマリせずに指定期間内の情報を抽出する対応 START
# 「コース変更」時の対象データをカレントに絞り込まずに、${TEMP_OTF}に出力する
# ++++++++++++++++++++++ v05.00.01 mod start ++++++++++++++++++++++
#  入力情報を以下のように修正
#    改修前：サービス契約全世代(${KK0081_ULD})
#    改修後：前回運用日から今回までの期間において変更のあったＴＶサービス契約世代（${KK0081_CRS_CHG_WORK}）
#	EXEC_MATCHING ${MATCH_OTF} ${G_TOOLSH}/util/def/KK_CM_0095.def "${KK0081_ULD} ${KK0081_CRS_CHG}"
	EXEC_MATCHING ${TEMP_OTF} ${G_TOOLSH}/util/def/KK_CM_0095.def "${KK0081_CRS_CHG_WORK} ${KK0081_CRS_CHG_A23}"
# ++++++++++++++++++++++ v05.00.01 mod end ++++++++++++++++++++++
	
	# *** カレントのみに絞込む ***
#	FILTER_CURRENT ${MATCH_OTF} ${TEMP_OTF} ${KK0081_REC_LEN} "@key1=0.10asc @supkey=1.17asc @mkflg=17.1asc @rsvAplyCd=13.1asc @rsvAplyYmd=12.8asc"
# 2013/04/22 抽出側ではサマリせずに指定期間内の情報を抽出する対応 END
fi

# *** 旧コースが「A24(多チャンネル(SD))」「A64(多チャンネル(HD))」「A75(多チャンネル(地デジ・ＢＳ))」のデータのみに絞込む
if [ `cat ${TEMP_OTF} | wc -l` -ne 0 ]
then
	EXEC_MATCHING ${MATCH_OTF} ${G_TOOLSH}/util/def/KK_CM_0096.def "${KK0081_CRS_CHG_A23} ${TEMP_OTF}"
	
	# ファイルの退避
	rm -f ${KK0081_CRS_CHG_A23}
	mv ${MATCH_OTF} ${KK0081_CRS_CHG_A23}

	# ソート用の世代登録年月日時分秒を最後に付与（EXEC_MATCHINGで消えてしまうため、サービス契約の世代登録年月日時分秒を付与する）
	bsortex -sort key="0.10asc" -record recform=txtcsv -input reclen=500 -output file=${KK0081_CRS_CHG_A23} reconst="0.END,1.17" < ${KK0081_CRS_CHG_A23}
else
	# 入力が０件の場合は、出力ファイルを「０」件で作成する。
	cat /dev/null > ${KK0081_CRS_CHG_A23}
fi

# 一時ファイルの初期化
rm -f ${TEMP_OTF}

# ファイルマージ
bsortex -define ${KK0081_ITM_DEF} -sort key="@geneAddDtm" -record recform=txtcsv \
	-input file=${KK0081_OTHER},${KK0081_BKT_HKT},${KK0081_CRS_CHG_A23} reclen=${KK0081_REC_LEN} -output file=${TEMP_OTF}

rc=$?
if [ $rc -ne 0 ]
then
    sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " SORT Error($SVC sort:rc=$rc) "
    echo $JOBNAME " SORT Error($SVC sort:rc=$rc) "
    exit ${G_RTN_ERROR}
fi

# ファイルのリネーム
rm -f ${KK0081_TRG}
mv ${TEMP_OTF} ${KK0081_TRG}

#
# -- 「サービス解約」「サービス回復」の対象サービス契約を特定
#
# ${CH0231_CUR}の分は外部結合のため、ファイル空チェック無し
cat /dev/null > ${MATCH_OTF}
if [ `cat ${KK0321_CUR} | wc -l` -ne 0 -a `cat ${KK0081_TRG} | wc -l` -ne 0 -a `cat ${CK0011_CUR} | wc -l` -ne 0 ]
then
	EXEC_MATCHING ${MATCH_OTF} ${G_TOOLSH}/util/def/KK_CM_0094.def "${KK0321_CUR} ${KK0081_TRG} ${CK0011_CUR} ${CH0231_CUR}"
fi

# 一時ファイルの初期化
rm -f ${TEMP_OTF}
#
# ***** KKIFM028の書式に合わせる（空白項目を設定）*****
#   再編成データ構成
#     0 ：ＳＹＳＩＤ
#     1 ：サービス契約番号
#     2 ：世代登録年月日時分秒
#     3 ：EMPTY(サービス開始年月日)
#     4 ：EMPTY(サービス終了年月日)
#     5 ：無効フラグ
#     6 ：登録年月日時分秒
#     7 ：登録オペレータアカウント
#     8 ：登録トランＩＤ
#     9 ：更新年月日時分秒
#     10：更新オペレータアカウント
#     11：更新トランＩＤ
#     12：EMPTY(サービスコード)
#     13：料金グループコード
#     14：料金コースコード
#     15：EMPTY(料金プランコード)
#     16：会員種別コード
#     17：督促ステータス(督促)
#     18：EMPTY(照査年月日)
#     19：EMPTY(UPD_FLG)
#     20：異動区分
#     21：EMPTY(TRN_TG_FLG)
#     22：督促ステータス(督促異動)：999（固定）
#     23：手続き中フラグ：0固定
#     24：抽出処理フラグ：1固定
#     25：照査取消年月日
#     26：世代登録年月日時分秒（サービス契約より。ソートに使用）
#
mv ${MATCH_OTF} ${TEMP_OTF}
bsortex -sort key="0.10asc" -record recform=txtcsv -input reclen=${KK0081_REC_LEN} \
	-output file=${MATCH_OTF} reconst="0.10,1.10,2.17,EMPTY,EMPTY,3.1,4.17,5.10,6.40,7.17,8.10,9.40,EMPTY,10.2,11.3,EMPTY,12.2,13.2,EMPTY,EMPTY,14.5,EMPTY,'999'.3asc,'0'.1asc,'1'.1asc,15.8,16.17" < ${TEMP_OTF}

rc=$?
if [ $rc -ne 0 ]
then
    sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " SORT Error($SVC sort:rc=$rc) "
    echo $JOBNAME " SORT Error($SVC sort:rc=$rc) "
    exit ${G_RTN_ERROR}
fi

# 付加情報の追加
cat ${MATCH_OTF} >> ${TRGT_OTF}

# ******************************************************************************************
#  ■ 手続き中の強制解約・手続き中の強制解約の回復データのサービス契約を取得
# ******************************************************************************************

# 照査済・締結済の契約を取得
#（サービス契約カレントに対して抽出）
bsortex -define ${KK0081_ITM_DEF} -sort key="@svcKeiNo" -record recform=txtcsv \
	-input reclen=${KK0081_REC_LEN} include="@svcKeiStat.eq.'020'.or.@svcKeiStat.eq.'030'" -output file=${TEMP_OTF} < ${KK0081_CURRENT}

rc=$?
if [ $rc -ne 0 ]
then
    sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " SORT Error($SVC sort:rc=$rc) "
    echo $JOBNAME " SORT Error($SVC sort:rc=$rc) "
    exit ${G_RTN_ERROR}
fi

#
# 手続き中の強制解約・手続き中の強制解約の回復データのサービス契約を特定
#
cat /dev/null > ${MATCH_OTF}
if [ `cat ${KK0321_CUR} | wc -l` -ne 0 -a `cat ${CH0231_CUR} | wc -l` -ne 0 -a `cat ${TEMP_OTF} | wc -l` -ne 0 -a `cat ${CH0361_CUR} | wc -l` -ne 0 -a `cat ${CK0011_CUR} | wc -l` -ne 0 ]
then
	EXEC_MATCHING ${MATCH_OTF} ${G_TOOLSH}/util/def/KK_CM_0097.def "${KK0321_CUR} ${CH0231_CUR} ${TEMP_OTF} ${CH0361_CUR} ${CK0011_CUR}"
fi

#
# ***** KKIFM028の書式に合わせる（空白項目を設定）*****
#   再編成データ構成
#     0 ：ＳＹＳＩＤ
#     1 ：サービス契約番号
#     2 ：世代登録年月日時分秒（督促テーブルの更新年月日時分秒）
#     3 ：サービス開始年月日
#     4 ：サービス終了年月日
#     5 ：無効フラグ
#     6 ：登録年月日時分秒
#     7 ：登録オペレータアカウント
#     8 ：登録運用年月日
#     9 ：更新年月日時分秒
#     10：更新オペレータアカウント
#     11：更新運用年月日
#     12：サービスコード
#     13：料金グループコード
#     14：料金コースコード
#     15：料金プランコード
#     16：会員種別コード
#     17：督促ステータス(督促)
#     18：照査年月日
#     19：EMPTY(UPD_FLG)
#     20：異動区分
#     21：EMPTY(TRN_TG_FLG)
#     22：督促ステータス(督促異動)
#     23：手続き中フラグ：1固定
#     24：抽出処理フラグ：2固定
#     25：照査取消年月日
#     26：世代登録年月日時分秒（サービス契約より。ソートに使用）
#
#  2013/04/22修正 ※手続き中の強制解約・手続き中の強制解約の回復データにおける、2:世代登録年月日時分秒については、督促テーブルの更新年月日時分秒（22.17）を出力
#bsortex -sort key="0.10asc" -record recform=txtcsv -input reclen=${KK0081_REC_LEN} \
#	-output file=${TEMP_OTF} reconst="0.10,1.10,2.17,3.8,4.8,5.1,6.17,7.10,8.40,9.17,10.10,11.40,12.2,13.2,14.3,15.6,16.2,17.2,18.8,EMPTY,19.5,EMPTY,20.2,'1'.1asc,'2'.1asc" < ${MATCH_OTF}
bsortex -sort key="0.10asc" -record recform=txtcsv -input reclen=${KK0081_REC_LEN} \
	-output file=${TEMP_OTF} reconst="0.10,1.10,22.17,3.8,4.8,5.1,6.17,7.10,8.40,9.17,10.10,11.40,12.2,13.2,14.3,15.6,16.2,17.2,18.8,EMPTY,19.5,EMPTY,20.2,'1'.1asc,'2'.1asc,21.8,2.17" < ${MATCH_OTF}

rc=$?
if [ $rc -ne 0 ]
then
    sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " SORT Error($SVC sort:rc=$rc) "
    echo $JOBNAME " SORT Error($SVC sort:rc=$rc) "
    exit ${G_RTN_ERROR}
fi

# 付加情報の追加
cat ${TEMP_OTF} >> ${TRGT_OTF}

# ******************************************************************************************
#  ■対象請求契約の抽出
# ******************************************************************************************

CH0231_USE_STP=${MID_DIR_KK}/${JOBNAME}.W_CH0231_USE_STP.csv
# 利用停止済みの督促の抽出
# 2013/10/08 OM-2013-0002816対応修正 START +++++
#bsortex -define ${CH0231_ITM_DEF} -sort key="@seikyKeiNo" -record recform=txtcsv -input reclen=200 include="@tokuStat.eq.'20'.and.@useStpReqYmd.ge.'${ZNKI_TRN_RUN_UNYO_YMD}'.and.@useStpReqYmd.le.'${OPD}'.and.@staymd.le.'${OPD}'.and.@endymd.ge.'${OPD}'.and.@updDtm.ge.'${ZNKI_TRAN_RUN_DTM}'.and.@updDtm.le.'${SYSDATE}'.and.@mkFlg.eq.'0'" -output file=${CH0231_USE_STP} < ${CH0231_ULD}
bsortex -define ${CH0231_ITM_DEF} -sort key="@seikyKeiNo" -record recform=txtcsv -input reclen=200 include="@tokuStat.eq.'20'.and.@useStpReqYmd.ge.'${ZNKI_TRN_RUN_UNYO_YMD}'.and.@useStpReqYmd.le.'${OPD}'.and.@staymd.le.'${OPD}'.and.@endymd.ge.'${ZNKI_TRN_RUN_UNYO_YMD}'.and.@updDtm.ge.'${ZNKI_TRAN_RUN_DTM}'.and.@updDtm.le.'${SYSDATE}'.and.@mkFlg.eq.'0'" -output file=${CH0231_USE_STP} < ${CH0231_ULD}
# 2013/10/08 OM-2013-0002816対応修正 END +++++
rc=$?
if [ $rc -ne 0 ]
then
    sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " SORT Error($SVC sort:rc=$rc) "
    echo $JOBNAME " SORT Error($SVC sort:rc=$rc) "
    exit ${G_RTN_ERROR}
fi

#OM-2013-0005144　20140130対応　期間内のサービス契約情報とカレントのサービス契約情報のマージ処理 START

#cat /dev/null > ${MATCH_OTF}
#if [ `cat ${KK0321_CUR} | wc -l` -ne 0 -a `cat ${CH0231_USE_STP} | wc -l` -ne 0 -a `cat ${KK0081_CURRENT} | wc -l` -ne 0 -a `cat ${CK0011_CUR} | wc -l` -ne 0 ]
#then
#	EXEC_MATCHING ${MATCH_OTF} ${G_TOOLSH}/util/def/KK_CM_0098.def "${KK0321_CUR} ${CH0231_USE_STP} ${KK0081_CURRENT} ${CK0011_CUR}"
#fi

#サービス契約のカレント情報より督促スキーマ情報に紐づくサービス契約、督促、お客様スキーマより情報を抽出

CH0231_USE_STP_CURRENT=${MID_DIR_KK}/${JOBNAME}.W_CH0231_USE_STP_CURRENT.csv
cat /dev/null > ${CH0231_USE_STP_CURRENT}
# ANK-2480-01-00 MOD START
#if [ `cat ${KK0321_CUR} | wc -l` -ne 0 -a `cat ${CH0231_USE_STP} | wc -l` -ne 0 -a `cat ${KK0081_CURRENT} | wc -l` -ne 0 -a `cat ${CK0011_CUR} | wc -l` -ne 0 ]
#then
#	EXEC_MATCHING ${CH0231_USE_STP_CURRENT} ${G_TOOLSH}/util/def/KK_CM_0434.def "${KK0321_CUR} ${CH0231_USE_STP} ${KK0081_CURRENT} ${CK0011_CUR}"
#fi
if [ `cat ${KK0321_CUR} | wc -l` -ne 0 -a `cat ${CH0231_USE_STP} | wc -l` -ne 0 -a `cat ${KK0081_CURRENT_ELEC_JYGI} | wc -l` -ne 0 -a `cat ${CK0011_CUR} | wc -l` -ne 0 ]
then
	EXEC_MATCHING ${CH0231_USE_STP_CURRENT} ${G_TOOLSH}/util/def/KK_CM_0434.def "${KK0321_CUR} ${CH0231_USE_STP} ${KK0081_CURRENT_ELEC_JYGI} ${CK0011_CUR}"
fi
# ANK-2480-01-00 MOD END

#前回処理実行日からCCMG抽出JOBが実行された運用日までのサービス契約情報より、督促スキーマ情報に紐づくサービス契約、督促、お客様スキーマより情報を抽出

CH0231_USE_STP_CUR=${MID_DIR_KK}/${JOBNAME}.W_CH0231_USE_STP_CUR.csv
cat /dev/null > ${CH0231_USE_STP_CUR}
# ANK-2480-01-00 MOD START
#if [ `cat ${KK0321_CUR} | wc -l` -ne 0 -a `cat ${CH0231_USE_STP} | wc -l` -ne 0 -a `cat ${KK0081_CUR} | wc -l` -ne 0 -a `cat ${CK0011_CUR} | wc -l` -ne 0 ]
#then
#	EXEC_MATCHING ${CH0231_USE_STP_CUR} ${G_TOOLSH}/util/def/KK_CM_0098.def "${KK0321_CUR} ${CH0231_USE_STP} ${KK0081_CUR} ${CK0011_CUR}"
#fi
if [ `cat ${KK0321_CUR} | wc -l` -ne 0 -a `cat ${CH0231_USE_STP} | wc -l` -ne 0 -a `cat ${KK0081_CUR_ELEC_JYGI} | wc -l` -ne 0 -a `cat ${CK0011_CUR} | wc -l` -ne 0 ]
then
	EXEC_MATCHING ${CH0231_USE_STP_CUR} ${G_TOOLSH}/util/def/KK_CM_0098.def "${KK0321_CUR} ${CH0231_USE_STP} ${KK0081_CUR_ELEC_JYGI} ${CK0011_CUR}"
fi
# ANK-2480-01-00 MOD END

#前回処理実行日から今回の処理実行日（運用日）間に変更した情報を抽出する必要がある為、
#上記で抽出したサービス契約スキーマ情報では足りないので、上記で抽出したサービス契約スキーマのカレント情報より、足りないサービスの情報を抽出する。

CH0231_USE_STP_CURRENT_SVCKEINO=${MID_DIR_KK}/${JOBNAME}.W_CH0231_USE_STP_CURRENT_SVCKEINO.csv
cat /dev/null > ${CH0231_USE_STP_CURRENT_SVCKEINO}
if [ `cat ${CH0231_USE_STP_CURRENT} | wc -l` -ne 0 -a `cat ${CH0231_USE_STP_CUR} | wc -l` -ne 0 ]
then
	EXEC_MATCHING ${CH0231_USE_STP_CURRENT_SVCKEINO} ${G_TOOLSH}/util/def/KK_CM_0433.def "${CH0231_USE_STP_CURRENT} ${CH0231_USE_STP_CUR}"
fi


CH0231_USE_STP_CURRENT_SVCKEINO_MG=${MID_DIR_KK}/${JOBNAME}.W_CH0231_USE_STP_CURRENT_SVCKEINO_MG.csv
cat /dev/null > ${CH0231_USE_STP_CURRENT_SVCKEINO_MG}
bsortex -sort key="1.10asc" -record recform=txtcsv -input reclen=200 -output file=${CH0231_USE_STP_CURRENT_SVCKEINO_MG} case="1.10asc.ne.8.10asc" reconst="0.10,1.10,2.17,3.2,4.2,5.5,6.1,7.10" < ${CH0231_USE_STP_CURRENT_SVCKEINO}

#上記抽出した期間内のサービス契約スキーマ情報より抽出した情報と利用停止、利用停止解除JOBが実行されず、サービス契約の更新がされていない為、
#サービス契約スキーマのカレント情報より取得したサービスをマージして抽出ファイルとして出力されていることを確認する。

cat /dev/null > ${MATCH_OTF}

# 付加情報の追加
cat ${CH0231_USE_STP_CUR} >> ${MATCH_OTF}
cat ${CH0231_USE_STP_CURRENT_SVCKEINO_MG} >> ${MATCH_OTF}



#OM-2013-0005144　20140130対応　期間内のサービス契約情報とカレントのサービス契約情報のマージ処理 END




# 一時ファイルの初期化
rm -f ${TEMP_OTF}
#
# ***** KKIFM028の書式に合わせる（空白項目を設定）*****
#   再編成データ構成
#     0 ：ＳＹＳＩＤ
#     1 ：サービス契約番号
#     2 ：世代登録年月日時分秒
#     3 ：EMPTY(サービス開始年月日)
#     4 ：EMPTY(サービス終了年月日)
#     5 ：EMPTY(無効フラグ)
#     6 ：EMPTY(登録年月日時分秒)
#     7 ：EMPTY(登録オペレータアカウント)
#     8 ：EMPTY(登録トランＩＤ)
#     9 ：EMPTY(更新年月日時分秒)
#     10：EMPTY(更新オペレータアカウント)
#     11：EMPTY(更新トランＩＤ)
#     12：EMPTY(サービスコード)
#     13：EMPTY(料金グループコード)
#     14：EMPTY(料金コースコード)
#     15：EMPTY(料金プランコード)
#     16：会員種別コード
#     17：督促ステータス(督促)
#     18：EMPTY(照査年月日)
#     19：0固定(UPD_FLG)
#     20：異動区分
#     21：1固定(TRN_TG_FLG)
#     22：督促ステータス(督促異動)
#     23：手続き中フラグ：0固定
#     24：抽出処理フラグ：3固定
#     25：照査取消年月日
#     26：世代登録年月日時分秒（サービス契約より。ソートに使用）
#
mv ${MATCH_OTF} ${TEMP_OTF}
bsortex -sort key="0.10asc" -record recform=txtcsv -input reclen=${KK0081_REC_LEN} \
	-output file=${MATCH_OTF} reconst="0.10,1.10,2.17,EMPTY,EMPTY,EMPTY,EMPTY,EMPTY,EMPTY,EMPTY,EMPTY,EMPTY,EMPTY,EMPTY,EMPTY,EMPTY,3.2,4.2,EMPTY,'0'.1asc,5.5,'1'.1asc,'999'.3asc,'0'.1asc,'3'.1asc,7.8,2.17" < ${TEMP_OTF}

rc=$?
if [ $rc -ne 0 ]
then
    sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " SORT Error($SVC sort:rc=$rc) "
    echo $JOBNAME " SORT Error($SVC sort:rc=$rc) "
    exit ${G_RTN_ERROR}
fi

# 付加情報の追加
cat ${MATCH_OTF} >> ${TRGT_OTF}

# 利用停止済みの督促以外の抽出
CH0231_USE_STP_RLS=${MID_DIR_KK}/${JOBNAME}.W_CH0231_USE_STP_RLS.csv
# 2013/10/08 OM-2013-0002816対応修正 START +++++
#bsortex -define ${CH0231_ITM_DEF} -sort key="@seikyKeiNo" -record recform=txtcsv -input reclen=200 include="(@tokuStat.eq.'00'.or.@tokuStat.eq.'04'.or.@tokuStat.eq.'06'.or.@tokuStat.eq.'10'.or.@tokuStat.eq.'15'.or.@tokuStat.eq.'99').and.@useStpRlsReqYmd.ge.'${ZNKI_TRN_RUN_UNYO_YMD}'.and.@useStpRlsReqYmd.le.'${OPD}'.and.@staymd.le.'${OPD}'.and.@endymd.ge.'${OPD}'.and.@updDtm.ge.'${ZNKI_TRAN_RUN_DTM}'.and.@updDtm.le.'${SYSDATE}'.and.@mkFlg.eq.'0'" -output file=${CH0231_USE_STP_RLS} < ${CH0231_ULD}
bsortex -define ${CH0231_ITM_DEF} -sort key="@seikyKeiNo" -record recform=txtcsv -input reclen=200 include="(@tokuStat.eq.'00'.or.@tokuStat.eq.'04'.or.@tokuStat.eq.'06'.or.@tokuStat.eq.'10'.or.@tokuStat.eq.'15'.or.@tokuStat.eq.'99').and.@useStpRlsReqYmd.ge.'${ZNKI_TRN_RUN_UNYO_YMD}'.and.@useStpRlsReqYmd.le.'${OPD}'.and.@staymd.le.'${OPD}'.and.@endymd.ge.'${ZNKI_TRN_RUN_UNYO_YMD}'.and.@updDtm.ge.'${ZNKI_TRAN_RUN_DTM}'.and.@updDtm.le.'${SYSDATE}'.and.@mkFlg.eq.'0'" -output file=${CH0231_USE_STP_RLS} < ${CH0231_ULD}
# 2013/10/08 OM-2013-0002816対応修正 END +++++
rc=$?
if [ $rc -ne 0 ]
then
    sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " SORT Error($SVC sort:rc=$rc) "
    echo $JOBNAME " SORT Error($SVC sort:rc=$rc) "
    exit ${G_RTN_ERROR}
fi



#OM-2013-0005144　20140130対応　期間内のサービス契約情報とカレントのサービス契約情報のマージ処理 START

#cat /dev/null > ${MATCH_OTF}
#if [ `cat ${KK0321_CUR} | wc -l` -ne 0 -a `cat ${CH0231_USE_STP_RLS} | wc -l` -ne 0 -a `cat ${KK0081_CURRENT} | wc -l` -ne 0 -a `cat ${CK0011_CUR} | wc -l` -ne 0 ]
#then
#	EXEC_MATCHING ${MATCH_OTF} ${G_TOOLSH}/util/def/KK_CM_0098.def "${KK0321_CUR} ${CH0231_USE_STP_RLS} ${KK0081_CURRENT} ${CK0011_CUR}"
#fi

#サービス契約のカレント情報より督促スキーマ情報に紐づくサービス契約、督促、お客様スキーマより情報を抽出

CH0231_USE_STP_RLS_CURRENT=${MID_DIR_KK}/${JOBNAME}.W_CH0231_USE_STP_RLS_CURRENT.csv
cat /dev/null > ${CH0231_USE_STP_RLS_CURRENT}
# ANK-2480-01-00 MOD START
#if [ `cat ${KK0321_CUR} | wc -l` -ne 0 -a `cat ${CH0231_USE_STP_RLS} | wc -l` -ne 0 -a `cat ${KK0081_CURRENT} | wc -l` -ne 0 -a `cat ${CK0011_CUR} | wc -l` -ne 0 ]
#then
#	EXEC_MATCHING ${CH0231_USE_STP_RLS_CURRENT} ${G_TOOLSH}/util/def/KK_CM_0434.def "${KK0321_CUR} ${CH0231_USE_STP_RLS} ${KK0081_CURRENT} ${CK0011_CUR}"
#fi
if [ `cat ${KK0321_CUR} | wc -l` -ne 0 -a `cat ${CH0231_USE_STP_RLS} | wc -l` -ne 0 -a `cat ${KK0081_CURRENT_ELEC_JYGI} | wc -l` -ne 0 -a `cat ${CK0011_CUR} | wc -l` -ne 0 ]
then
	EXEC_MATCHING ${CH0231_USE_STP_RLS_CURRENT} ${G_TOOLSH}/util/def/KK_CM_0434.def "${KK0321_CUR} ${CH0231_USE_STP_RLS} ${KK0081_CURRENT_ELEC_JYGI} ${CK0011_CUR}"
fi
# ANK-2480-01-00 MOD END

#前回処理実行日からCCMG抽出JOBが実行された運用日までのサービス契約情報より、督促スキーマ情報に紐づくサービス契約、督促、お客様スキーマより情報を抽出

CH0231_USE_STP_RLS_CUR=${MID_DIR_KK}/${JOBNAME}.W_CH0231_USE_STP_RLS_CUR.csv
cat /dev/null > ${CH0231_USE_STP_RLS_CUR}
# ANK-2480-01-00 MOD START
#if [ `cat ${KK0321_CUR} | wc -l` -ne 0 -a `cat ${CH0231_USE_STP_RLS} | wc -l` -ne 0 -a `cat ${KK0081_CUR} | wc -l` -ne 0 -a `cat ${CK0011_CUR} | wc -l` -ne 0 ]
#then
#	EXEC_MATCHING ${CH0231_USE_STP_RLS_CUR} ${G_TOOLSH}/util/def/KK_CM_0098.def "${KK0321_CUR} ${CH0231_USE_STP_RLS} ${KK0081_CUR} ${CK0011_CUR}"
#fi
if [ `cat ${KK0321_CUR} | wc -l` -ne 0 -a `cat ${CH0231_USE_STP_RLS} | wc -l` -ne 0 -a `cat ${KK0081_CUR_ELEC_JYGI} | wc -l` -ne 0 -a `cat ${CK0011_CUR} | wc -l` -ne 0 ]
then
	EXEC_MATCHING ${CH0231_USE_STP_RLS_CUR} ${G_TOOLSH}/util/def/KK_CM_0098.def "${KK0321_CUR} ${CH0231_USE_STP_RLS} ${KK0081_CUR_ELEC_JYGI} ${CK0011_CUR}"
fi
# ANK-2480-01-00 MOD END

#前回処理実行日から今回の処理実行日（運用日）間に変更した情報を抽出する必要がある為、
#上記で抽出したサービス契約スキーマ情報では足りないので、上記で抽出したサービス契約スキーマのカレント情報より、足りないサービスの情報を抽出する。

CH0231_USE_STP_RLS_CURRENT_SVCKEINO=${MID_DIR_KK}/${JOBNAME}.W_CH0231_USE_STP_RLS_CURRENT_SVCKEINO.csv
cat /dev/null > ${CH0231_USE_STP_RLS_CURRENT_SVCKEINO}
if [ `cat ${CH0231_USE_STP_RLS_CURRENT} | wc -l` -ne 0 -a `cat ${CH0231_USE_STP_RLS_CUR} | wc -l` -ne 0 ]
then
	EXEC_MATCHING ${CH0231_USE_STP_RLS_CURRENT_SVCKEINO} ${G_TOOLSH}/util/def/KK_CM_0433.def "${CH0231_USE_STP_RLS_CURRENT} ${CH0231_USE_STP_RLS_CUR} "
fi


CH0231_USE_STP_RLS_CURRENT_SVCKEINO_MG=${MID_DIR_KK}/${JOBNAME}.W_CH0231_USE_STP_RLS_CURRENT_SVCKEINO_MG.csv
cat /dev/null > ${CH0231_USE_STP_RLS_CURRENT_SVCKEINO_MG}
bsortex -sort key="1.10asc" -record recform=txtcsv -input reclen=200 -output file=${CH0231_USE_STP_RLS_CURRENT_SVCKEINO_MG} case="1.10asc.ne.8.10asc" reconst="0.10,1.10,2.17,3.2,4.2,5.5,6.1,7.10" < ${CH0231_USE_STP_RLS_CURRENT_SVCKEINO}


#上記抽出した期間内のサービス契約スキーマ情報より抽出した情報と利用停止、利用停止解除JOBが実行されず、サービス契約の更新がされていない為、
#サービス契約スキーマのカレント情報より取得したサービスをマージして抽出ファイルとして出力されていることを確認する。

cat /dev/null > ${MATCH_OTF}

# 付加情報の追加
cat ${CH0231_USE_STP_RLS_CUR} >> ${MATCH_OTF}
cat ${CH0231_USE_STP_RLS_CURRENT_SVCKEINO_MG} >> ${MATCH_OTF}


#OM-2013-0005144　20140130対応　期間内のサービス契約情報とカレントのサービス契約情報のマージ処理 END



# 一時ファイルの初期化
rm -f ${TEMP_OTF}
#
# ***** KKIFM028の書式に合わせる（空白項目を設定）*****
#   再編成データ構成
#     0 ：ＳＹＳＩＤ
#     1 ：サービス契約番号
#     2 ：世代登録年月日時分秒
#     3 ：EMPTY(サービス開始年月日)
#     4 ：EMPTY(サービス終了年月日)
#     5 ：EMPTY(無効フラグ)
#     6 ：EMPTY(登録年月日時分秒)
#     7 ：EMPTY(登録オペレータアカウント)
#     8 ：EMPTY(登録トランＩＤ)
#     9 ：EMPTY(更新年月日時分秒)
#     10：EMPTY(更新オペレータアカウント)
#     11：EMPTY(更新トランＩＤ)
#     12：EMPTY(サービスコード)
#     13：EMPTY(料金グループコード)
#     14：EMPTY(料金コースコード)
#     15：EMPTY(料金プランコード)
#     16：会員種別コード
#     17：督促ステータス(督促)
#     18：EMPTY(照査年月日)
#     19：0固定(UPD_FLG)
#     20：異動区分
#     21：1固定(TRN_TG_FLG)
#     22：督促ステータス(督促異動)
#     23：手続き中フラグ：0固定
#     24：抽出処理フラグ：4固定
#     25：照査取消年月日
#     26：世代登録年月日時分秒（サービス契約より。ソートに使用）
#
mv ${MATCH_OTF} ${TEMP_OTF}
bsortex -sort key="0.10asc" -record recform=txtcsv -input reclen=${KK0081_REC_LEN} \
	-output file=${MATCH_OTF} reconst="0.10,1.10,2.17,EMPTY,EMPTY,EMPTY,EMPTY,EMPTY,EMPTY,EMPTY,EMPTY,EMPTY,EMPTY,EMPTY,EMPTY,EMPTY,3.2,4.2,EMPTY,'0'.1asc,5.5,'1'.1asc,'999'.3asc,'0'.1asc,'4'.1asc,7.8,2.17" < ${TEMP_OTF}

rc=$?
if [ $rc -ne 0 ]
then
    sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " SORT Error($SVC sort:rc=$rc) "
    echo $JOBNAME " SORT Error($SVC sort:rc=$rc) "
    exit ${G_RTN_ERROR}
fi

# 付加情報の追加
cat ${MATCH_OTF} >> ${TRGT_OTF}

# 2013/12/18 ANK-1584-00-00 START
# ******************************************************************************************
#  ■MVNO契約の利用停止／利用停止解除データの抽出
# ******************************************************************************************
# 利用停止済みの抽出はサービス契約から抽出した「KK0081_MVNO_USE_STP」を使用
# ${CH0231_CUR}の分は外部結合のため、ファイル空チェック無し

cat /dev/null > ${MATCH_OTF}
if [ `cat ${KK0321_CUR} | wc -l` -ne 0 -a `cat ${KK0081_MVNO_USE_STP} | wc -l` -ne 0 -a `cat ${CK0011_CUR} | wc -l` -ne 0 ]
then
	EXEC_MATCHING ${MATCH_OTF} ${G_TOOLSH}/util/def/KK_CM_0094.def "${KK0321_CUR} ${KK0081_MVNO_USE_STP} ${CK0011_CUR} ${CH0231_CUR}"
fi

# 一時ファイルの初期化
rm -f ${TEMP_OTF}
#
# ***** KKIFM028の書式に合わせる（空白項目を設定）*****
#   再編成データ構成
#     0 ：ＳＹＳＩＤ
#     1 ：サービス契約番号
#     2 ：世代登録年月日時分秒
#     3 ：EMPTY(サービス開始年月日)
#     4 ：EMPTY(サービス終了年月日)
#     5 ：EMPTY(無効フラグ)
#     6 ：EMPTY(登録年月日時分秒)
#     7 ：EMPTY(登録オペレータアカウント)
#     8 ：EMPTY(登録トランＩＤ)
#     9 ：EMPTY(更新年月日時分秒)
#     10：EMPTY(更新オペレータアカウント)
#     11：EMPTY(更新トランＩＤ)
#     12：EMPTY(サービスコード)
#     13：EMPTY(料金グループコード)
#     14：EMPTY(料金コースコード)
#     15：EMPTY(料金プランコード)
#     16：会員種別コード
#     17：督促ステータス(督促)
#     18：EMPTY(照査年月日)
#     19：0固定(UPD_FLG)
#     20：異動区分
#     21：1固定(TRN_TG_FLG)
#     22：督促ステータス(督促異動)
#     23：手続き中フラグ：0固定
#     24：抽出処理フラグ：3固定
#     25：照査取消年月日
#     26：世代登録年月日時分秒（サービス契約より。ソートに使用）
#
mv ${MATCH_OTF} ${TEMP_OTF}
bsortex -sort key="0.10asc" -record recform=txtcsv -input reclen=${KK0081_REC_LEN} \
	-output file=${MATCH_OTF} reconst="0.10,1.10,2.17,EMPTY,EMPTY,EMPTY,EMPTY,EMPTY,EMPTY,EMPTY,EMPTY,EMPTY,EMPTY,EMPTY,EMPTY,EMPTY,12.2,13.2,EMPTY,'0'.1asc,14.5,'1'.1asc,'999'.3asc,'0'.1asc,'3'.1asc,15.8,16.17" < ${TEMP_OTF}

rc=$?
if [ $rc -ne 0 ]
then
    sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " SORT Error($SVC sort:rc=$rc) "
    echo $JOBNAME " SORT Error($SVC sort:rc=$rc) "
    exit ${G_RTN_ERROR}
fi

# 付加情報の追加
cat ${MATCH_OTF} >> ${TRGT_OTF}

#
# 利用停止解除の抽出はサービス契約から抽出した「KK0081_MVNO_USE_STP_RLS」を使用
# ${CH0231_CUR}の分は外部結合のため、ファイル空チェック無し

cat /dev/null > ${MATCH_OTF}
if [ `cat ${KK0321_CUR} | wc -l` -ne 0 -a `cat ${KK0081_MVNO_USE_STP_RLS} | wc -l` -ne 0 -a `cat ${CK0011_CUR} | wc -l` -ne 0 ]
then
	EXEC_MATCHING ${MATCH_OTF} ${G_TOOLSH}/util/def/KK_CM_0094.def "${KK0321_CUR} ${KK0081_MVNO_USE_STP_RLS} ${CK0011_CUR} ${CH0231_CUR}"
fi

# 一時ファイルの初期化
rm -f ${TEMP_OTF}
#
# ***** KKIFM028の書式に合わせる（空白項目を設定）*****
#   再編成データ構成
#     0 ：ＳＹＳＩＤ
#     1 ：サービス契約番号
#     2 ：世代登録年月日時分秒
#     3 ：EMPTY(サービス開始年月日)
#     4 ：EMPTY(サービス終了年月日)
#     5 ：EMPTY(無効フラグ)
#     6 ：EMPTY(登録年月日時分秒)
#     7 ：EMPTY(登録オペレータアカウント)
#     8 ：EMPTY(登録トランＩＤ)
#     9 ：EMPTY(更新年月日時分秒)
#     10：EMPTY(更新オペレータアカウント)
#     11：EMPTY(更新トランＩＤ)
#     12：EMPTY(サービスコード)
#     13：EMPTY(料金グループコード)
#     14：EMPTY(料金コースコード)
#     15：EMPTY(料金プランコード)
#     16：会員種別コード
#     17：督促ステータス(督促)
#     18：EMPTY(照査年月日)
#     19：0固定(UPD_FLG)
#     20：異動区分
#     21：1固定(TRN_TG_FLG)
#     22：督促ステータス(督促異動)
#     23：手続き中フラグ：0固定
#     24：抽出処理フラグ：4固定
#     25：照査取消年月日
#     26：世代登録年月日時分秒（サービス契約より。ソートに使用）
#
mv ${MATCH_OTF} ${TEMP_OTF}

bsortex -sort key="0.10asc" -record recform=txtcsv -input reclen=${KK0081_REC_LEN} \
	-output file=${MATCH_OTF} reconst="0.10,1.10,2.17,EMPTY,EMPTY,EMPTY,EMPTY,EMPTY,EMPTY,EMPTY,EMPTY,EMPTY,EMPTY,EMPTY,EMPTY,EMPTY,12.2,13.2,EMPTY,'0'.1asc,14.5,'1'.1asc,'999'.3asc,'0'.1asc,'4'.1asc,15.8,16.17" < ${TEMP_OTF}

rc=$?
if [ $rc -ne 0 ]
then
    sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " SORT Error($SVC sort:rc=$rc) "
    echo $JOBNAME " SORT Error($SVC sort:rc=$rc) "
    exit ${G_RTN_ERROR}
fi

# 付加情報の追加
cat ${MATCH_OTF} >> ${TRGT_OTF}

# 2013/12/18 ANK-1584-00-00 END

# **********************************************************************************************************
#  重複データの削除
#    同一ＳＹＳＩＤ・サービス契約番号が複数存在する場合、契約の抽出を優先し削除する。
# **********************************************************************************************************
# 2013/04/22修正 抽出側ではサマリせずに指定期間内の情報を抽出する対応 START
# ソート条件を、SYSID、サービス契約番号、抽出処理フラグ、異動区分、世代登録年月日時分秒とし、
# 重複データ削除時の条件を同一SYSID、サービス契約番号、抽出処理フラグ、異動区分に修正。
# （モバイルのデータや、複数回の分割データ等、同一SYSID・サービス契約番号・異動区分のレコードの場合に始めのデータを有効として抽出するため）
bsortex -sort key="0.10asc,1.10asc,24.1asc,20.5asc,2.17asc,26.17asc" -record recform=txtcsv -input reclen=400 < ${TRGT_OTF} \
  | bsortex -merge key="0.10asc,1.10asc,24.1asc,20.5asc,2.17asc" -record recform=txtcsv -input reclen=400 -summary suppress first -output file=${TEMP_OTF}
# 2013/04/22 抽出側ではサマリせずに指定期間内の情報を抽出する対応 END

rc=$?
if [ $rc -ne 0 ]
then
    sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " SORT Error($SVC sort:rc=$rc) "
    echo $JOBNAME " SORT Error($SVC sort:rc=$rc) "
    exit ${G_RTN_ERROR}
fi

# **********************************************************************************************************
#  UPD_FLGの設定
# **********************************************************************************************************
#
# ***** KKIFM028の書式に合わせる（空白項目を設定）*****
#  ※ 手続き中フラグ以外は設定されている値を取得する。
#   再編成データ構成
#     0 ：ＳＹＳＩＤ
#     1 ：サービス契約番号
#     2 ：世代登録年月日時分秒
#     3 ：サービス開始年月日
#     4 ：サービス終了年月日
#     5 ：無効フラグ
#     6 ：登録年月日時分秒
#     7 ：登録オペレータアカウント
#     8 ：登録トランＩＤ
#     9 ：更新年月日時分秒
#     10：更新オペレータアカウント
#     11：更新トランＩＤ
#     12：サービスコード
#     13：料金グループコード
#     14：料金コースコード
#     15：料金プランコード
#     16：会員種別コード
#     17：督促ステータス(督促)
#     18：照査年月日
#     19：手続き中フラグ：「0」の場合「0」
#                         「1」の場合 「督促（異動）ステータスが「20」以下 又は 「99」且つ「督促ステータスが「30」以上「99」未満」=「1」
#                                     「督促ステータスが「20」以下 又は 「99」且つ「督促（異動）ステータスが「30」以上「99」未満」=「2」
#     20：異動区分
#     21：TRN_TG_FLG
#     22：照査取消年月日
#     23：世代登録年月日時分秒（サービス契約より。ソートに使用）
#
WORK_UPD_0=${MID_DIR_KK}/${JOBNAME}.W_UPD_0.csv
WORK_UPD_1=${MID_DIR_KK}/${JOBNAME}.W_UPD_1.csv
WORK_UPD_2=${MID_DIR_KK}/${JOBNAME}.W_UPD_2.csv

bsortex -sort key="2.17asc" -record recform=txtcsv -input reclen=400 file=${TEMP_OTF} \
	-output file=${WORK_UPD_0} case="23.1asc.eq.'0'" reconst="0.10,1.10,2.17,3.8,4.8,5.1,6.17,7.10,8.40,9.17,10.10,11.40,12.2,13.2,14.3,15.6,16.2,17.2,18.8,'0'.1asc,20.5,21.1,25.8,26.17" \
	-output file=${WORK_UPD_1} case="23.1asc.eq.'1'.and.(22.3asc.le.'20'.or.22.3asc.eq.'99').and.(17.2asc.ge.'30'.and.17.2asc.lt.'99')" reconst="0.10,1.10,2.17,3.8,4.8,5.1,6.17,7.10,8.40,9.17,10.10,11.40,12.2,13.2,14.3,15.6,16.2,17.2,18.8,'1'.1asc,20.5,21.1,25.8,26.17" \
	-output file=${WORK_UPD_2} case="23.1asc.eq.'1'.and.(22.3asc.ge.'30'.and.22.3asc.lt.'99').and.(17.2asc.le.'20'.or.17.2asc.eq.'99')" reconst="0.10,1.10,2.17,3.8,4.8,5.1,6.17,7.10,8.40,9.17,10.10,11.40,12.2,13.2,14.3,15.6,16.2,17.2,18.8,'2'.1asc,20.5,21.1,25.8,26.17"

rc=$?
if [ $rc -ne 0 ]
then
    sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " SORT Error($SVC sort:rc=$rc) "
    echo $JOBNAME " SORT Error($SVC sort:rc=$rc) "
    exit ${G_RTN_ERROR}
fi

#
# 出力ファイルをマージし、最終的な全体ソートを行う（ソートキーはサービス契約の世代登録年月日時分秒を使用）
#
rm -f ${TEMP_OTF}
cat /dev/null > ${MATCH_OTF}

cat ${WORK_UPD_0} ${WORK_UPD_1} ${WORK_UPD_2} >> ${TEMP_OTF}
#bsortex -sort key="2.17asc" -record recform=txtcsv -input reclen=400 file=${TEMP_OTF} -output file=${MATCH_OTF}
bsortex -sort key="23.17asc" -record recform=txtcsv -input reclen=400 file=${TEMP_OTF} -output file=${MATCH_OTF}


rc=$?
if [ $rc -ne 0 ]
then
    sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " SORT Error($SVC sort:rc=$rc) "
    echo $JOBNAME " SORT Error($SVC sort:rc=$rc) "
    exit ${G_RTN_ERROR}
fi


#
# -- 出力ファイルをマージし、ダブルクォートを削除
#
#cat ${WORK_UPD_0} ${WORK_UPD_1} ${WORK_UPD_2} | sed -e 's/"//g' > ${MID_DIR_KK}/KKIFM028001.csv
cat ${MATCH_OTF} | sed -e 's/"//g' > ${MID_DIR_KK}/KKIFM028001_W.csv

rc=$?
if [ $rc -ne 0 ]
then
    sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " SORT Error($SVC cat:rc=$rc) "
    echo $JOBNAME " SORT Error($SVC cat:rc=$rc) "
    exit ${G_RTN_ERROR}
fi

## Java側の呼び出し処理開始
#
#---パラメタ定義
#

P1="OPD=$OPD,"
P2="SVCCTL=JBSbatMultiServiceControl,"
P3="JOB=EO21S0110J0,"
P4="IND1=KKIFM028.def,"
P5="INF1=${MID_DIR_KK}/KKIFM028001_W.csv,"
P6="IND2=,"
P7="INF2=,"
P8="OTD1=KKIFM028.def,"
P9="OTF1=${MID_DIR_KK}/KKIFM028001.csv,"
P10="OTD2=,"
P11="OTF2=,"
P12="TABLENAME=,"
P13="SQLKEY=,"
P14="SQLPARAM=,"
P15="ERRFILE=,"
P16="RECOVERY=,"
P17="BREAKPTN=,"
P18="FREE="
PARA="$P1$P2$P3$P4$P5$P6$P7$P8$P9$P10$P11$P12$P13$P14$P15$P16$P17$P18"

sh ${G_TOOLSH}/EOK010210J0.sh CS00027I $JOBNAME

#
#---ＡＰＬ起動
#

java ${JAVA_OPTION} -jar ${JAR_DIR}/koptBatch.jar $PARA

rc=$?
ERR_FLG=0
if [ $rc -ne 0 ]
then
   if [ $rc -ne 4 ]
   then
       if [ $rc -ne 8 ]
       then
           if [ $rc -ne 127 ]
           then
              sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " PROGRAM Error($SVC program:rc=$rc) "
              echo $JOBNAME " PROGRAM Error($SVC program:rc=$rc) "
              exit ${G_RTN_ERROR}
           fi
       fi
    fi
    ERR_FLG=1
fi

exit_rc=$rc


#
# 作業ファイルを全て削除
#
REMOVE_WORK_FILE

#
# 2013/04/22修正 今回実行時のシステム日付とバッチ運用日を登録するように修正
#
echo ${SYSDATE}","${OPD} > ${MID_DIR_KK}/KKIFM092001.csv


#
# 2013/04/22追加 今回作成したKKIFM028001ファイルのバックアップを作成（今回実行時のシステム日付をファイル名に付与）
#
cp -p ${MID_DIR_KK}/KKIFM028001.csv ${MID_DIR_KK}/KKIFM028001_${SYSDATE}.csv


#
#--- ジョブの終了メッセージを出力する
#
sh ${G_TOOLSH}/EOK010210J0.sh CS00028I $JOBNAME
sh ${G_TOOLSH}/EOK010210J0.sh CS00026I $JOBNAME



exit $exit_rc
