create or replace PACKAGE BODY KJZ_KJZB01_BTGKJZB0101J17
AS
C_BATCH_ID CONSTANT VARCHAR2 ( 20 ) := 'BTGKJZB0101J17'; --ユーザID
C_ASSOC_GIKEN_STS_INFO_WK CONSTANT VARCHAR2 ( 50 ) := '協会技検ステータス更新受付データ';--更新元テーブル名(協会技検ステータス更新受付データ)
C_ACPT_NUM CONSTANT VARCHAR2 ( 10 ) := '受付番号' ; --受付番号
C_ERR_NOT CONSTANT VARCHAR2 ( 1 ) := '0'; --0:エラー無り
C_ERR_YES CONSTANT VARCHAR2 ( 1 ) := '1'; --1:エラー有り
C_ERR_HAVE CONSTANT VARCHAR2 ( 20 ) := '1:エラー有り'; --「1:エラー有り」
C_CMMT_MSG_ID CONSTANT CHAR ( 11 ) := 'MSGCOMB000G'; --コミットメッセージID:MSGCOMB000G
C_ROBK_MSG_ID CONSTANT CHAR ( 11 ) := 'MSGCOMB000K'; --ロールバックメッセージID:MSGCOMB000K
C_TGT_CNT_MSG_ID CONSTANT CHAR ( 11 ) := 'MSGCOMB000C'; --対象件数メッセージID:MSGCOMB000C
C_MSG_ID_MSGCOMB0040 CONSTANT CHAR ( 11 ) := 'MSGCOMB0040'; --メッセージID:MSGCOMB0040
C_MSG_ID_MSGCOMB0001 CONSTANT CHAR ( 11 ) := 'MSGCOMB0001'; --メッセージID:MSGCOMB0001
C_MSG_ID_MSGCOMB0073 CONSTANT CHAR ( 11 ) := 'MSGCOMB0073'; --メッセージID:MSGCOMB0073
C_MSG_ID_MSGCOMB0074 CONSTANT CHAR ( 11 ) := 'MSGCOMB0074'; --メッセージID:MSGCOMB0074
C_MSG_ID_MSGCOMB0075 CONSTANT CHAR ( 11 ) := 'MSGCOMB0075'; --メッセージID:MSGCOMB0075
C_6PX4 CONSTANT CHAR ( 4 ) := '6PX4'; --データNO:6PX4
C_6PY4 CONSTANT CHAR ( 4 ) := '6PY4'; --データNO:6PY4
C_6PZ5 CONSTANT CHAR ( 4 ) := '6PZ5'; --データNO:6PZ5
C_KJE_GIKEN_APPSIT_KANZ CONSTANT VARCHAR2 ( 30 ) := 'KJE_GIKEN_APPSIT_KANZ'; --技検応募状況_漢字
C_KJE_GIKEN_APPSIT_KANA CONSTANT VARCHAR2 ( 30 ) := 'KJE_GIKEN_APPSIT_KANA'; --技検応募状況_仮名
C_KJE_GIKEN_APPSIT_BALLPN CONSTANT VARCHAR2 ( 30 ) := 'KJE_GIKEN_APPSIT_BALLPN'; --技検応募状況_ボールペン
C_KJE_GIKEN_APPSIT_PEN CONSTANT VARCHAR2 ( 30 ) := 'KJE_GIKEN_APPSIT_PEN'; --技検応募状況_ペン
C_KJE_GIKEN_APPSIT2_PRCPEN CONSTANT VARCHAR2 ( 30 ) := 'KJE_GIKEN_APPSIT2_PRCPEN'; --技検応募状況_実用ボールペン
P_RETURN_COD CHAR ( 1 ) ; --共通部品リターンコード
P_COMMIT_CNT PLS_INTEGER := 0; --コミット件数
P_UPD_ASSOC_GIKEN_STS_INFO_WK ASSOC_GIKEN_STS_INFO_WK%ROWTYPE; --更新用協会技検ステータス更新受付データ
TYPE REC_GENRL_COD_MST
IS
RECORD --汎用マスタレコード
(
CODE_DIV GENRL_COD_MST_DETL.CODE_DIV%TYPE , --主キー
CODE_GROUP_ID GENRL_COD_MST_DETL.CODE_GROUP_ID%TYPE ,--サブキー1
CODE_ID GENRL_COD_MST_DETL.CODE_ID%TYPE , --サブキー2
CODE_VALUE1 GENRL_COD_MST_DETL.CODE_VALUE1%TYPE --コードVALUE1
) ;
TYPE TYP_GENRL_COD_MST_TBL
IS
TABLE OF REC_GENRL_COD_MST; --汎用マスタタイプ
P_GENRL_COD_MST TYP_GENRL_COD_MST_TBL; --汎用コードマスタ
TYPE TYP_ROWID_TBL
IS
TABLE OF ROWID INDEX BY PLS_INTEGER; --判定用ROWIDタイプ
--協会技検ステータス更新受付データ取得のカーソル定義
CURSOR CUR_ASSOC_GIKEN_STS_INFO_WK
IS
SELECT
ACPT_NUM , --受付番号
DATA_NO , --データNO
CUST_NUM , --顧客番号
CRSITM , --講座商品コード
MAGZN_SBSSIT_GO , --雑誌購読状況_囲碁
MAGZN_SBSSIT_INKPNT , --雑誌購読状況_水墨画
GIKEN_DEPSIT_KANZ , --技検入金状況_漢字
GIKEN_DEPSIT_KN , --技検入金状況_カナ
GIKEN_DEPSIT_BALLPN , --技検入金状況_ボールペン
GIKEN_DEPSIT_PEN , --技検入金状況_ペン
GIKEN_DEPSIT_PRCPEN , --技検入金状況_実用ボールペン
AS400_DATA_CRET_DAY , --AS400データ作成日
SIGNBR_GET , --看板取得
PENNM_GET , --雅号取得
EXHBTN_SBMINF_SBMCNT , --展覧会出品_出品回数
ASSOC_ADMIS_SITU_CALLGR , --協会入会状況_書道
ASSOC_ADMIS_SITU_COOPRT , --協会入会状況_作協
ASSOC_ADMIS_SITU_FLOWRR , --協会入会状況_華道
ASSOC_ADMIS_SITU_GARDNN , --協会入会状況_園芸
ASSOC_ADMSIT_PKOC , --協会入会状況_写真知識検定
ASSOC_ADMIS_SITU_BOTNST_OFCERT ,--協会入会状況_植物医検定
EXHBTN_SBMINF_DEPRTM , --展覧会出品_部門
BEST_RANK , --最高位
RECNT_SUBMT_YR , --最新出品年
FIRTIM_CORE_PRCS_DAY --初回基幹処理日
FROM
ASSOC_GIKEN_STS_INFO_ACPTDT--協会技検ステータス更新受付データ
WHERE
ACPT_CHECK_RESLT = CMN_CODE.C_ACR_NO_IMPLMN --受付チェック結果 = 0:未実施
AND DEL_FLG = CMN_CODE.C_DEL_FLG_UNDEL ; --AND 削除フラグ = 0:未削除
--@*************************************************************************
--@ Name : CHECK_RESLT_UPD(チェック結果更新)
--@ Summary :ノーマライズの結果を協会技検ステータス更新受付データに反映する
--@*************************************************************************
PROCEDURE CHECK_RESLT_UPD (
I_ROW_ASSOC_GIKEN_STS_INFO_WK IN ASSOC_GIKEN_STS_INFO_WK%ROWTYPE )
IS
BEGIN
UPDATE
ASSOC_GIKEN_STS_INFO_ACPTDT--協会技検ステータス更新受付データ
SET
INTGRT_AFT_CUST_NUM = I_ROW_ASSOC_GIKEN_STS_INFO_WK.INTGRT_AFT_CUST_NUM , --統合後顧客番号
GIKEN_APPSIT_KANZ = I_ROW_ASSOC_GIKEN_STS_INFO_WK.GIKEN_APPSIT_KANZ , --技検応募状況_漢字
GIKEN_APPSIT_KANA = I_ROW_ASSOC_GIKEN_STS_INFO_WK.GIKEN_APPSIT_KANA , --技検応募状況_仮名
GIKEN_APPSIT_BALLPN = I_ROW_ASSOC_GIKEN_STS_INFO_WK.GIKEN_APPSIT_BALLPN , --技検応募状況_ボールペン
GIKEN_APPSIT_PEN = I_ROW_ASSOC_GIKEN_STS_INFO_WK.GIKEN_APPSIT_PEN , --技検応募状況_ペン
GIKEN_APPSIT2_PRCPEN = I_ROW_ASSOC_GIKEN_STS_INFO_WK.GIKEN_APPSIT2_PRCPEN ,--技検応募状況2_実用ボールペン
DNPRCS_FLG = (
CASE
WHEN I_ROW_ASSOC_GIKEN_STS_INFO_WK.ACPT_CHECK_RESLT = CMN_CODE.C_ACR_ERR
THEN CMN_CODE.C_DNPRCS_FLG_PRCS
WHEN I_ROW_ASSOC_GIKEN_STS_INFO_WK.ACPT_CHECK_RESLT = CMN_CODE.C_ACR_NORML
THEN DNPRCS_FLG
END ) ,--処理済フラグ
ACPT_CHECK_RESLT = (
CASE
WHEN I_ROW_ASSOC_GIKEN_STS_INFO_WK.ACPT_CHECK_RESLT = CMN_CODE.C_ACR_NORML
THEN CMN_CODE.C_ACR_NORML
WHEN I_ROW_ASSOC_GIKEN_STS_INFO_WK.ACPT_CHECK_RESLT = CMN_CODE.C_ACR_ERR
THEN CMN_CODE.C_ACR_ERR
END ) ,--受付チェック結果
MESSG_ID = (
CASE
WHEN I_ROW_ASSOC_GIKEN_STS_INFO_WK.ACPT_CHECK_RESLT = CMN_CODE.C_ACR_ERR
THEN I_ROW_ASSOC_GIKEN_STS_INFO_WK.MESSG_ID
WHEN I_ROW_ASSOC_GIKEN_STS_INFO_WK.ACPT_CHECK_RESLT = CMN_CODE.C_ACR_NORML
THEN MESSG_ID
END ) , --メッセージID
ERRFLG_CUST_NUM = I_ROW_ASSOC_GIKEN_STS_INFO_WK.ERRFLG_CUST_NUM , --エラーフラグ_顧客番号
ERRFLG_CRSITM = I_ROW_ASSOC_GIKEN_STS_INFO_WK.ERRFLG_CRSITM , --エラーフラグ_講座商品コード
ERRFLG_MAGZN_SBSSIT_GO = I_ROW_ASSOC_GIKEN_STS_INFO_WK.ERRFLG_CRSITM , --エラーフラグ_雑誌購読状況_囲碁
ERRFLG_MAGZN_SBSSIT_INKPNT = I_ROW_ASSOC_GIKEN_STS_INFO_WK.ERRFLG_CRSITM , --エラーフラグ_雑誌購読状況_水墨画
ERRFLG_ASSOC_ADMSIT_CALLGR = I_ROW_ASSOC_GIKEN_STS_INFO_WK.ERRFLG_ASSOC_ADMSIT_CALLGR ,--エラーフラグ_協会入会状況_書道
ERRFLG_ASSOC_ADMSIT_COOPRT = I_ROW_ASSOC_GIKEN_STS_INFO_WK.ERRFLG_ASSOC_ADMSIT_COOPRT ,--エラーフラグ_協会入会状況_作協
ERRFLG_ASSOC_ADMSIT_FLOWRR = I_ROW_ASSOC_GIKEN_STS_INFO_WK.ERRFLG_ASSOC_ADMSIT_FLOWRR ,--エラーフラグ_協会入会状況_華道
ERRFLG_ASSOC_ADMSIT_GARDNN = I_ROW_ASSOC_GIKEN_STS_INFO_WK.ERRFLG_ASSOC_ADMSIT_GARDNN ,--エラーフラグ_協会入会状況_園芸
ERRFLG_GIKEN_DEPSIT_KANZ = I_ROW_ASSOC_GIKEN_STS_INFO_WK.ERRFLG_CRSITM , --エラーフラグ_技検入金状況_漢字
ERRFLG_GIKEN_DEPSIT_KN = I_ROW_ASSOC_GIKEN_STS_INFO_WK.ERRFLG_CRSITM , --エラーフラグ_技検入金状況_カナ
ERRFLG_GIKEN_DEPSIT_BALLPN = I_ROW_ASSOC_GIKEN_STS_INFO_WK.ERRFLG_CRSITM , --エラーフラグ_技検入金状況_ボールペン
ERRFLG_GIKEN_DEPSIT_PEN = I_ROW_ASSOC_GIKEN_STS_INFO_WK.ERRFLG_CRSITM , --エラーフラグ_技検入金状況_ペン
ERRFLG_GIKEN_DEPSIT_PRCPEN = I_ROW_ASSOC_GIKEN_STS_INFO_WK.ERRFLG_CRSITM , --エラーフラグ_技検入金状況_実用ボールペン
ERRFLG_SIGNBR_GET = I_ROW_ASSOC_GIKEN_STS_INFO_WK.ERRFLG_CRSITM , --エラーフラグ_看板取得
ERRFLG_PENNM_GET = I_ROW_ASSOC_GIKEN_STS_INFO_WK.ERRFLG_CRSITM , --エラーフラグ_雅号取得
ERRFLG_EXHBTN_SBMINF_SBMCNT = I_ROW_ASSOC_GIKEN_STS_INFO_WK.ERRFLG_CRSITM , --エラーフラグ_展覧会出品_出品回数
ERRFLG_EXHBTN_SBMINF_DEPRTM = I_ROW_ASSOC_GIKEN_STS_INFO_WK.ERRFLG_CRSITM , --エラーフラグ_展覧会出品_部門
ERRFLG_RECNT_SUBMT_YR = I_ROW_ASSOC_GIKEN_STS_INFO_WK.ERRFLG_CRSITM , --エラーフラグ_最新出品年
ERRFLG_BEST_RANK = I_ROW_ASSOC_GIKEN_STS_INFO_WK.ERRFLG_CRSITM , --エラーフラグ_最高位
ERRFLG_ASSOC_ADMSIT_PKOC = I_ROW_ASSOC_GIKEN_STS_INFO_WK.ERRFLG_ASSOC_ADMSIT_PKOC , --エラーフラグ_協会入会状況_写真知識検定
ERRFLG_ASSOC_ADMSIT_BOC = I_ROW_ASSOC_GIKEN_STS_INFO_WK.ERRFLG_ASSOC_ADMSIT_BOC , --エラーフラグ_協会入会状況_植物医検定
ERRFLG_DATA_DATE = I_ROW_ASSOC_GIKEN_STS_INFO_WK.ERRFLG_DATA_DATE , --エラーフラグ_データ日付
UPD_DATIME = SYSDATE , --システム日時
UPD_USR_ID = C_BATCH_ID --バッチ処理ID
WHERE
ACPT_NUM = I_ROW_ASSOC_GIKEN_STS_INFO_WK.ACPT_NUM;--受付番号
--ループ内コミット件数加算
P_COMMIT_CNT := P_COMMIT_CNT + SQL%ROWCOUNT;
--例外処理
EXCEPTION
WHEN OTHERS THEN
RAISE;
END CHECK_RESLT_UPD;
--@****************************************************************************
--@ Name : SOUKAN_CHECK(相関チェック)
--@ Summary : 受付データとマスタ登録済みのデータの相関チェック
--@****************************************************************************
PROCEDURE SOUKAN_CHECK (
I_ITEM IN CHAR , --協会技検ステータス更新受付データ値
I_ITEM_STS_DB IN CHAR ,--STS_DB値
O_ITEM_UPD OUT CHAR ) --更新値
IS
BEGIN
O_ITEM_UPD := C_ERR_NOT ; --エラーフラグ初期化
--受付データの値が「2:非会員」の場合
IF I_ITEM = CMN_CODE.C_AAS_NONMEM THEN
--ステータスDBの設定値が「△:対象外」、「2:非会員」、「7:元非会員」以外の場合
IF I_ITEM_STS_DB NOT IN ( CMN_CODE.C_AAS_UNKNW ,CMN_CODE.C_AAS_NONMEM ,CMN_CODE.C_AAS_FNMEM ) THEN
--エラーフラグに「1:エラー有り」を設定する
O_ITEM_UPD := C_ERR_YES; --エラーフラグ_協会入会状況_書道
P_UPD_ASSOC_GIKEN_STS_INFO_WK.ACPT_CHECK_RESLT := CMN_CODE.C_ACR_ERR; --受付チェック結果
P_UPD_ASSOC_GIKEN_STS_INFO_WK.MESSG_ID := C_MSG_ID_MSGCOMB0075; --メッセージID
END IF;
END IF;
EXCEPTION
WHEN OTHERS THEN
RAISE;
END SOUKAN_CHECK;
--@****************************************************************************
--@ Name : AFTCHECK_HOSEISYORI(チェック後補正処理)
--@ Summary : 技検応募状況補正を実施する
--@****************************************************************************
PROCEDURE AFTCHECK_HOSEISYORI (
I_VALUE_TYPE IN CHAR , --技検応募状況更新値
I_GIKEN_DEPSIT IN CHAR , --技検入金状況
O_GIKEN_APPSIT OUT CHAR ) --技検応募状況
IS
BEGIN
O_GIKEN_APPSIT := CMN_CODE.C_OL_EXIS_APPLC ; --技検応募状況初期化
FOR I IN 1 .. P_GENRL_COD_MST.COUNT
LOOP
IF P_GENRL_COD_MST ( I ) .CODE_DIV = I_VALUE_TYPE THEN
IF I_GIKEN_DEPSIT >= P_GENRL_COD_MST ( I ) .CODE_GROUP_ID AND
I_GIKEN_DEPSIT <= P_GENRL_COD_MST ( I ) .CODE_ID THEN
O_GIKEN_APPSIT := P_GENRL_COD_MST ( I ) .CODE_VALUE1;
RETURN;
END IF;
END IF;
END LOOP;
EXCEPTION
WHEN OTHERS THEN
RAISE;
END AFTCHECK_HOSEISYORI;
--@****************************************************************************
--@ Name : BTGKJZB0101J17(協会技検ステータス更新受付チェック)
--@ Summary : AS400から連携された協会技検ステータス更新受付データ対して
--@ 記載事項チェックとノーマライズを実施する
--@****************************************************************************
PROCEDURE BTGKJZB0101J17 (
O_RETURN_COD OUT CHAR --リターンコード
)
IS
V_CMSKJZ025_OUT TYP_GENRL_COD_MST_TBL; --記載事項チェック_出力 TODO
V_ROW_STS_DB STS_DB%ROWTYPE; --基幹ステータスDBデータ取得1_出力
V_MESSAGE_ID VARCHAR2 ( 11 ) ; --メッセージID
V_ARY_MSG CMN_TYPE.TYP_ARY_PARAMS; --埋め字用パラメータ
V_ARY_TGT_MSG CMN_TYPE.TYP_ARY_PARAMS; --対象件数取得メッセージ用埋め字パラメータ
V_BUSNSS_DATE CHAR ( 8 ) ; --業務日付
V_COMMIT_UNIT PLS_INTEGER; --コミット単位
V_TOTAL_CNT PLS_INTEGER ; --協会技検ステータス更新受付データの取得件数
V_ROWID TYP_ROWID_TBL; --判定用ROWID
BEGIN
--バッチ共通開始部品
CMSKJZ001.START_PROC ( C_BATCH_ID ,--バッチ処理ID
P_RETURN_COD , --リターンコード
V_BUSNSS_DATE , --業務日付
V_COMMIT_UNIT --コミット単位
) ;
--共通部品リターンコード判定
IF ( P_RETURN_COD <> CMN_CODE.C_CMN_R_CD_NORMAL ) THEN
RAISE_APPLICATION_ERROR ( CMN_CODE.C_ERR_NUM_CMSKJZ001 ,CMN_CODE.C_ERR_MESSG_CMSKJZ001 ) ;
END IF;
O_RETURN_COD := CMN_CODE.C_R_CD_NORMAL;
V_TOTAL_CNT := 0 ; --協会技検ステータス更新受付データ取得件数の初期化
--技検応募状況補正判定データ取得
SELECT
CODE_DIV , --主キー,
CODE_GROUP_ID ,--サブキー1,
CODE_ID , --サブキー2,
CODE_VALUE1 --コードVALUE1
BULK COLLECT
INTO
P_GENRL_COD_MST
FROM
GENRL_COD_MST_DETL --汎用コードマスタ_明細
WHERE
CODE_DIV IN ( C_KJE_GIKEN_APPSIT_KANZ ,C_KJE_GIKEN_APPSIT_KANA ,C_KJE_GIKEN_APPSIT_BALLPN ,
C_KJE_GIKEN_APPSIT_PEN ,C_KJE_GIKEN_APPSIT2_PRCPEN )
AND TERM_START_YMD <= V_BUSNSS_DATE --業務日付
AND TERM_END_YMD >= V_BUSNSS_DATE --業務日付
ORDER BY
CODE_DIV ASC , --主キー ASC,
CODE_GROUP_ID ASC ,--サブキー1 ASC,
CODE_ID ASC; --サブキー2 ASC
--協会技検ステータス更新受付データより処理対象データを取得し、取得したデータごとに繰り返す
FOR V_ROW_ASSOC_GIKEN_STS_INFO_WK IN CUR_ASSOC_GIKEN_STS_INFO_WK
LOOP
V_TOTAL_CNT := CUR_ASSOC_GIKEN_STS_INFO_WK%ROWCOUNT;
--更新用データ初期化
--受付番号
P_UPD_ASSOC_GIKEN_STS_INFO_WK.ACPT_NUM := V_ROW_ASSOC_GIKEN_STS_INFO_WK.ACPT_NUM;
--統合後顧客番号
P_UPD_ASSOC_GIKEN_STS_INFO_WK.INTGRT_AFT_CUST_NUM := V_ROW_ASSOC_GIKEN_STS_INFO_WK.CUST_NUM;
--エラーフラグ_顧客番号
P_UPD_ASSOC_GIKEN_STS_INFO_WK.ERRFLG_CUST_NUM := C_ERR_NOT;
--エラーフラグ_講座商品コード
P_UPD_ASSOC_GIKEN_STS_INFO_WK.ERRFLG_CRSITM := C_ERR_NOT;
--エラーフラグ_データ日付
P_UPD_ASSOC_GIKEN_STS_INFO_WK.ERRFLG_DATA_DATE := C_ERR_NOT;
--エラーフラグ_最新出品年
P_UPD_ASSOC_GIKEN_STS_INFO_WK.ERRFLG_RECNT_SUBMT_YR := C_ERR_NOT;
--受付チェック結果:(1:正常)
P_UPD_ASSOC_GIKEN_STS_INFO_WK.ACPT_CHECK_RESLT := CMN_CODE.C_ACR_NORML;
--エラーフラグ_協会入会状況_書道
P_UPD_ASSOC_GIKEN_STS_INFO_WK.ERRFLG_ASSOC_ADMSIT_CALLGR := C_ERR_NOT;
--エラーフラグ_協会入会状況_作協
P_UPD_ASSOC_GIKEN_STS_INFO_WK.ERRFLG_ASSOC_ADMSIT_COOPRT := C_ERR_NOT;
--エラーフラグ_協会入会状況_華道
P_UPD_ASSOC_GIKEN_STS_INFO_WK.ERRFLG_ASSOC_ADMSIT_FLOWRR := C_ERR_NOT;
--エラーフラグ_協会入会状況_園芸
P_UPD_ASSOC_GIKEN_STS_INFO_WK.ERRFLG_ASSOC_ADMSIT_GARDNN := C_ERR_NOT;
--エラーフラグ_協会入会状況_写真知識検定
P_UPD_ASSOC_GIKEN_STS_INFO_WK.ERRFLG_ASSOC_ADMSIT_PKOC := C_ERR_NOT;
--エラーフラグ_協会入会状況_植物医検定
P_UPD_ASSOC_GIKEN_STS_INFO_WK.ERRFLG_ASSOC_ADMSIT_BOC := C_ERR_NOT;
/*TODO 記載事項チェック
--エラーフラグ_雑誌購読状況_囲碁
--エラーフラグ_雑誌購読状況_水墨画
--エラーフラグ_技検入金状況_漢字
--エラーフラグ_技検入金状況_カナ
--エラーフラグ_技検入金状況_ボールペン
--エラーフラグ_技検入金状況_ペン
--エラーフラグ_技検入金状況_実用ボールペン
--エラーフラグ_看板取得
--エラーフラグ_雅号取得
--エラーフラグ_展覧会出品_出品回数
--エラーフラグ_展覧会出品_部門
--エラーフラグ_最新出品年
--エラーフラグ_最高位
--技検応募状況_漢字*/
P_UPD_ASSOC_GIKEN_STS_INFO_WK.GIKEN_APPSIT_KANZ := CMN_CODE.C_OL_EXIS_APPLC ;
--技検応募状況_仮名
P_UPD_ASSOC_GIKEN_STS_INFO_WK.GIKEN_APPSIT_KANA := CMN_CODE.C_OL_EXIS_APPLC ;
--技検応募状況_ボールペン
P_UPD_ASSOC_GIKEN_STS_INFO_WK.GIKEN_APPSIT_BALLPN := CMN_CODE.C_OL_EXIS_APPLC ;
--技検応募状況_ペン
P_UPD_ASSOC_GIKEN_STS_INFO_WK.GIKEN_APPSIT_PEN := CMN_CODE.C_OL_EXIS_APPLC ;
--技検応募状況2_実用ボールペン
P_UPD_ASSOC_GIKEN_STS_INFO_WK.GIKEN_APPSIT2_PRCPEN := CMN_CODE.C_OL_EXIS_APPLC ;
--TODO DM中止の受付データに対して、記載事項チェックを行う
V_CMSKJZ025_OUT := NULL;
--TODO 共通部品リターンコード判定
/* IF (P_RETURN_COD <> CMN_CODE.C_CMN_R_CD_NORMAL)
THEN
RAISE_APPLICATION_ERROR(CMN_CODE.C_ERR_NUM_CMSKJZ025
CMN_CODE.C_ERR_MESSG_CMSKJZ025)
END IF;*/
--マスターチェック
--受付チェック結果が「1:正常」の場合、顧客番号チェック
IF P_UPD_ASSOC_GIKEN_STS_INFO_WK.ACPT_CHECK_RESLT = CMN_CODE.C_ACR_NORML THEN
BEGIN
SELECT
CUST_NUM_TO --顧客番号_TO
INTO
P_UPD_ASSOC_GIKEN_STS_INFO_WK.INTGRT_AFT_CUST_NUM
FROM
CSTINT_FROMTO_CONVRT_TBL --顧客統合FROM-TO変換テーブル
WHERE
--顧客番号_FROM =DM中止受付データ.顧客番号
CUST_NUM_FROM = V_ROW_ASSOC_GIKEN_STS_INFO_WK.CUST_NUM
AND DEL_FLG = CMN_CODE.C_DEL_FLG_UNDEL; --AND 削除フラグ = 0:未削除
--エラーフラグ_顧客番号に「1:エラー有り」設定する
P_UPD_ASSOC_GIKEN_STS_INFO_WK.ERRFLG_CUST_NUM := C_ERR_YES;
--受付チェック結果に「2:エラー」設定する
P_UPD_ASSOC_GIKEN_STS_INFO_WK.ACPT_CHECK_RESLT := CMN_CODE.C_ACR_ERR;
--メッセージID設定する
P_UPD_ASSOC_GIKEN_STS_INFO_WK.MESSG_ID := C_MSG_ID_MSGCOMB0040;
EXCEPTION
--取得できなかった場合
WHEN NO_DATA_FOUND THEN
--共通部品処理記述書_CMSKJZ052_基幹ステータスDBデータ取得
CMSKJZ052.GET_STS_DB_CUST_NUM ( V_ROW_ASSOC_GIKEN_STS_INFO_WK.CUST_NUM ,--顧客番号
P_RETURN_COD , --リターンコード
V_MESSAGE_ID , --メッセージID
V_ARY_MSG , --埋字
V_ROW_STS_DB ) ; --ステータスDBデータ(カーソル)
--共通部品リターンコード判定
IF ( P_RETURN_COD <> CMN_CODE.C_CMN_R_CD_NORMAL ) THEN
RAISE_APPLICATION_ERROR ( CMN_CODE.C_ERR_NUM_CMSKJZ052 ,CMN_CODE.C_ERR_MESSG_CMSKJZ052 ) ;
END IF;
END;
END IF;
--受付チェック結果が「1:正常」の場合、講座商品コードチェック
IF P_UPD_ASSOC_GIKEN_STS_INFO_WK.ACPT_CHECK_RESLT = CMN_CODE.C_ACR_NORML AND
V_ROW_ASSOC_GIKEN_STS_INFO_WK.DATA_NO IN ( C_6PX4 ,C_6PY4 ) THEN
--講座基本5桁マスタ有無確認
SELECT
ROWID BULK COLLECT
INTO
V_ROWID
FROM
COURSE_KIHON_5KETA_MASTER--講座基本5桁マスタ
WHERE
COURSE_SHOHIN_CD = V_ROW_ASSOC_GIKEN_STS_INFO_WK.CRSITM --講座商品コード = ※協会技検ステータス更新受付データ.講座商品コード
AND KIKAN_TEKIYO_START_DAY <= TO_DATE ( V_BUSNSS_DATE ) --AND 基幹システム適用開始年月日 <= 業務日付
AND STATUS_DIV = CMN_CODE.C_STATUS_DIV_PRINC_REG --AND ステータス区分 = 5:本登録
AND DEL_FLG = CMN_CODE.C_DEL_FLG_UNDEL --AND 削除フラグ = 0:未削除
AND ROWNUM <= 1; --AND 行番号 <= 1
--講座基本3桁マスタ有無確認取得0件の場合
IF V_ROWID.COUNT = 0 THEN
--エラーフラグ_講座商品コードに「1:エラー有り」を設定する
P_UPD_ASSOC_GIKEN_STS_INFO_WK.ERRFLG_CRSITM := C_ERR_YES;
P_UPD_ASSOC_GIKEN_STS_INFO_WK.ACPT_CHECK_RESLT := CMN_CODE.C_ACR_ERR;
P_UPD_ASSOC_GIKEN_STS_INFO_WK.MESSG_ID := C_MSG_ID_MSGCOMB0001;
END IF;
END IF;
--項目間相関チェック
--受付チェック結果が「1:正常」の場合、AS400データ作成日と初回基幹処理日の項目間相関チェック
IF P_UPD_ASSOC_GIKEN_STS_INFO_WK.ACPT_CHECK_RESLT = CMN_CODE.C_ACR_NORML THEN
--AS400データ作成日 > 初回基幹処理日であること
IF V_ROW_ASSOC_GIKEN_STS_INFO_WK.AS400_DATA_CRET_DAY >
V_ROW_ASSOC_GIKEN_STS_INFO_WK.FIRTIM_CORE_PRCS_DAY THEN
--エラーフラグ_データ日付に「1:エラー有り」を設定する
P_UPD_ASSOC_GIKEN_STS_INFO_WK.ERRFLG_DATA_DATE := C_ERR_YES;
P_UPD_ASSOC_GIKEN_STS_INFO_WK.ACPT_CHECK_RESLT := CMN_CODE.C_ACR_ERR;
P_UPD_ASSOC_GIKEN_STS_INFO_WK.MESSG_ID := C_MSG_ID_MSGCOMB0073;
END IF;
END IF;
--受付チェック結果が「1:正常」の場合、最新出品年と初回基幹処理日の項目間相関チェック
IF P_UPD_ASSOC_GIKEN_STS_INFO_WK.ACPT_CHECK_RESLT = CMN_CODE.C_ACR_NORML AND
V_ROW_ASSOC_GIKEN_STS_INFO_WK.DATA_NO = C_6PZ5 THEN
--最新出品年 > 初回基幹処理日の年
IF V_ROW_ASSOC_GIKEN_STS_INFO_WK.RECNT_SUBMT_YR >
SUBSTR ( V_ROW_ASSOC_GIKEN_STS_INFO_WK.FIRTIM_CORE_PRCS_DAY ,1 ,4 ) THEN
--エラーフラグ_最新出品年に「1:エラー有り」を設定する
P_UPD_ASSOC_GIKEN_STS_INFO_WK.ERRFLG_RECNT_SUBMT_YR := C_ERR_YES;
P_UPD_ASSOC_GIKEN_STS_INFO_WK.ACPT_CHECK_RESLT := CMN_CODE.C_ACR_ERR;
P_UPD_ASSOC_GIKEN_STS_INFO_WK.MESSG_ID := C_MSG_ID_MSGCOMB0074;
END IF;
END IF;
--受付チェック結果が「1:正常」の場合、受付データとマスタ登録済みのデータの相関チェック
IF P_UPD_ASSOC_GIKEN_STS_INFO_WK.ACPT_CHECK_RESLT = CMN_CODE.C_ACR_NORML AND
V_ROW_ASSOC_GIKEN_STS_INFO_WK.DATA_NO = C_6PZ5 THEN
--受付データの下記の各項目の値が「2:非会員」の場合
--協会入会状況_書道
SOUKAN_CHECK ( V_ROW_ASSOC_GIKEN_STS_INFO_WK.ASSOC_ADMIS_SITU_CALLGR ,--協会技検ステータス更新受付データ値
V_ROW_STS_DB.ASSOC_ADMIS_SITU_CALLGR , --STS_DB値
P_UPD_ASSOC_GIKEN_STS_INFO_WK.ERRFLG_ASSOC_ADMSIT_CALLGR --エラーフラグ_協会入会状況_書道
) ;
--協会入会状況_作協
SOUKAN_CHECK ( V_ROW_ASSOC_GIKEN_STS_INFO_WK.ASSOC_ADMIS_SITU_COOPRT ,--協会技検ステータス更新受付データ値
V_ROW_STS_DB.ASSOC_ADMIS_SITU_COOPRT , --STS_DB値
P_UPD_ASSOC_GIKEN_STS_INFO_WK.ERRFLG_ASSOC_ADMSIT_COOPRT --エラーフラグ_協会入会状況_作協
) ;
--協会入会状況_華道
SOUKAN_CHECK ( V_ROW_ASSOC_GIKEN_STS_INFO_WK.ASSOC_ADMIS_SITU_FLOWRR ,--協会技検ステータス更新受付データ値
V_ROW_STS_DB.ASSOC_ADMIS_SITU_FLOWRR , --STS_DB値
P_UPD_ASSOC_GIKEN_STS_INFO_WK.ERRFLG_ASSOC_ADMSIT_FLOWRR --エラーフラグ_協会入会状況_華道
) ;
--協会入会状況_園芸
SOUKAN_CHECK ( V_ROW_ASSOC_GIKEN_STS_INFO_WK.ASSOC_ADMIS_SITU_GARDNN ,--協会技検ステータス更新受付データ値
V_ROW_STS_DB.ASSOC_ADMIS_SITU_GARDNN , --STS_DB値
P_UPD_ASSOC_GIKEN_STS_INFO_WK.ERRFLG_ASSOC_ADMSIT_GARDNN --エラーフラグ_協会入会状況_園芸
) ;
--協会入会状況_写真知識検定
SOUKAN_CHECK ( V_ROW_ASSOC_GIKEN_STS_INFO_WK.ASSOC_ADMSIT_PKOC ,--協会技検ステータス更新受付データ値
V_ROW_STS_DB.ASSOC_ADMSIT2_PKOC , --STS_DB値
P_UPD_ASSOC_GIKEN_STS_INFO_WK.ERRFLG_ASSOC_ADMSIT_PKOC --エラーフラグ_協会入会状況_写真知識
) ;
--協会入会状況_植物医検定
SOUKAN_CHECK ( V_ROW_ASSOC_GIKEN_STS_INFO_WK.ASSOC_ADMIS_SITU_BOTNST_OFCERT ,--協会技検ステータス更新受付データ値
V_ROW_STS_DB.ASSOC_ADMSIT2_BOC , --STS_DB値
P_UPD_ASSOC_GIKEN_STS_INFO_WK.ERRFLG_ASSOC_ADMSIT_BOC --エラーフラグ_協会入会状況_植物医検定
) ;
END IF;
--チェック後補正処理
--受付チェック結果が「1:正常」の場合,技検応募状況補正
IF P_UPD_ASSOC_GIKEN_STS_INFO_WK.ACPT_CHECK_RESLT = CMN_CODE.C_ACR_NORML AND
V_ROW_ASSOC_GIKEN_STS_INFO_WK.DATA_NO = C_6PZ5 THEN
--技検応募状況_漢字
AFTCHECK_HOSEISYORI ( C_KJE_GIKEN_APPSIT_KANZ , --技検応募状況_漢字
V_ROW_ASSOC_GIKEN_STS_INFO_WK.GIKEN_DEPSIT_KANZ ,--協会技検ステータス更新受付データ値
P_UPD_ASSOC_GIKEN_STS_INFO_WK.GIKEN_APPSIT_KANZ --STS_DB値
) ;
--技検応募状況_仮名
AFTCHECK_HOSEISYORI ( C_KJE_GIKEN_APPSIT_KANA , --技検応募状況_仮名
V_ROW_ASSOC_GIKEN_STS_INFO_WK.GIKEN_DEPSIT_KN , --協会技検ステータス更新受付データ値
P_UPD_ASSOC_GIKEN_STS_INFO_WK.GIKEN_APPSIT_KANA --STS_DB値
) ;
--技検応募状況_ボールペン
AFTCHECK_HOSEISYORI ( C_KJE_GIKEN_APPSIT_BALLPN , --技検応募状況_ボールペン
V_ROW_ASSOC_GIKEN_STS_INFO_WK.GIKEN_DEPSIT_BALLPN ,--協会技検ステータス更新受付データ値
P_UPD_ASSOC_GIKEN_STS_INFO_WK.GIKEN_APPSIT_BALLPN --STS_DB値
) ;
--技検応募状況_ペン
AFTCHECK_HOSEISYORI ( C_KJE_GIKEN_APPSIT_PEN , --技検応募状況_ペン
V_ROW_ASSOC_GIKEN_STS_INFO_WK.GIKEN_DEPSIT_PEN ,--協会技検ステータス更新受付データ値
P_UPD_ASSOC_GIKEN_STS_INFO_WK.GIKEN_APPSIT_PEN --STS_DB値
) ;
--技検応募状況2_実用ボールペン
AFTCHECK_HOSEISYORI ( C_KJE_GIKEN_APPSIT2_PRCPEN , --技検応募状況2_実用ボールペン
V_ROW_ASSOC_GIKEN_STS_INFO_WK.GIKEN_DEPSIT_PRCPEN ,--協会技検ステータス更新受付データ値
P_UPD_ASSOC_GIKEN_STS_INFO_WK.GIKEN_APPSIT2_PRCPEN --STS_DB値
) ;
END IF;
--協会技検ステータス更新受付データ更新
CHECK_RESLT_UPD ( P_UPD_ASSOC_GIKEN_STS_INFO_WK ) ;
END LOOP;
--対象件数出力処理
V_ARY_TGT_MSG ( 1 ) := C_ASSOC_GIKEN_STS_INFO_WK; --協会技検ステータス更新受付データ
V_ARY_TGT_MSG ( 2 ) := TO_CHAR ( V_TOTAL_CNT ) ; --対象件数
CMSKJZ003.INFO ( C_TGT_CNT_MSG_ID , --メッセージID
MSG_CONST.MSGCOMB000C , --メッセージ
V_ARY_TGT_MSG , --埋め字用配列
C_BATCH_ID , --ユーザーID
P_RETURN_COD ) ; --リターンコード
--DBコミットを行う
IF ( P_COMMIT_CNT <> 0 ) THEN
COMMIT;
V_ARY_TGT_MSG ( 1 ) := C_ASSOC_GIKEN_STS_INFO_WK; --協会技検ステータス更新受付データ
V_ARY_TGT_MSG ( 2 ) := TO_CHAR ( P_COMMIT_CNT ) ; --コミット件数
--コミットログ
CMSKJZ003.INFO ( C_CMMT_MSG_ID ,--メッセージID
MSG_CONST.MSGCOMB000G , --メッセージ
V_ARY_TGT_MSG , --埋め字用配列
C_BATCH_ID , --ユーザーID
P_RETURN_COD ) ; --リターンコード
END IF;
--正常終了
O_RETURN_COD := CMN_CODE.C_R_CD_NORMAL;
--バッチ共通終了部品
CMSKJZ002.END_PROC ( C_BATCH_ID ,--バッチ処理ID
V_TOTAL_CNT , --正常処理件数
V_TOTAL_CNT , --総処理対象件数
V_BUSNSS_DATE , --業務日付
P_RETURN_COD , --部品用リターンコード
O_RETURN_COD --バッチ用リターンコード
) ;
--共通部品リターンコード判定
IF ( P_RETURN_COD <> CMN_CODE.C_CMN_R_CD_NORMAL ) THEN
RAISE_APPLICATION_ERROR ( CMN_CODE.C_ERR_NUM_CMSKJZ002 ,CMN_CODE.C_ERR_MESSG_CMSKJZ002 ) ;
END IF;
--例外処理
EXCEPTION
--例外が発生した場合、DBロールバックを行う
WHEN OTHERS THEN
RAISE;
--バッチ共通エラー処理
CMSKJZ051.CMN_ERR_PROC ( C_BATCH_ID ,--バッチ処理ID
P_RETURN_COD --リターンコード
) ;
--ロールバック
ROLLBACK;
--ロールバックメッセージ
CMSKJZ003.INFO ( C_ROBK_MSG_ID ,--メッセージID
MSG_CONST.MSGCOMB000K , --メッセージ
V_ARY_MSG , --埋め字用配列
C_BATCH_ID , --ユーザーID
P_RETURN_COD ) ; --リターンコード
--異常終了
O_RETURN_COD := CMN_CODE.C_R_CD_ERR;
END BTGKJZB0101J17;
END KJZ_KJZB01_BTGKJZB0101J17;