intra-mart Accel Kaiden! / プログラミングガイド

«  データの取得   ::   コンテンツ   ::   書式変換処理  »

検索データのマスタ整合性チェック

取得したデータのマスタ存在チェック処理を実装します。
業務ロジックにて実装することが強制されています。
メソッド名は、「checkSelectedData」とします。
チュートリアルのプログラムを抜粋したものを以下に掲載します。(チュートリアルガジェットのロジックはこちら
    /** 検索結果のマスタ整合性チェック. */
    @Override
    protected List<ErrorDetailDto> checkSelectedData(Map<String, Object> dataMap, ProcessType processType) {
        List<ErrorDetailDto> result = new ArrayList<ErrorDetailDto>();
        for (Entry<String, Object> dataEs : dataMap.entrySet()) {
            if (BLOCK_KEY_TUTORIAL_TABLE.equals(dataEs.getKey())) {
                @SuppressWarnings("unchecked")
                List<GadgetTutorialManagerDto> sqlResultList = CollectionUtil.castListContent(
                        (List<? extends KaidenDto>) dataEs.getValue(), GadgetTutorialManagerDto.class);
                for (GadgetTutorialManagerDto sqlResult : sqlResultList) {
                    if (isNotEmpty(sqlResult.tutorialCurrencyCd) && isEmpty(sqlResult.tutorialCurrencyName)) {
                        String[] fieldId = getArgs("tutorialCurrencyCd", "tutorialCurrencyName");
                        String masterName = propertyHelper.getSurface(contextHelper.getLoginUserLocale(),
                                BaseProp.S.CURRENCY);
                        String[] values = getArgs(sqlResult.tutorialCurrencyCd, sqlResult.tutorialCurrencyName);
                        String message = propertyHelper.getMessage(ProductWorkflowProp.M.W0005, masterName);
                        result.add(new ErrorDetailDto(BLOCK_KEY_TUTORIAL_TABLE, fieldId, null, masterName, values,
                                message));
                    }
                }
            }
        }
        return result;
    }

解説

検索結果のマスタ整合性チェック処理を実装します。
この処理は「画面表示データ検索」「申請書コピーデータ検索」「過去案件詳細画面表示データ検索」で取得したデータに対して実施されます。
チュートリアルでは、トランザクションテーブルの通貨コードに紐づく|common_imm_name| 通貨マスタの整合性をチェックしています。

マスタ不整合が発生していると判定した場合、「フィールドキー」「マスタ名」「フィールド値」「エラーメッセージ」を、
エラー情報保持用のオブジェクトにセットして、返却します。

ノート

マスタ不整合情報として「フィールドキー」「マスタ名」「フィールド値」「エラーメッセージ」をセットして返却していますが、
intra-mart Accel Kaiden! 標準では画面に表示していません。(マスタ不整合が発生しているかどうかのみ)
詳細な不整合情報を画面に表示するための拡張向けの情報となります。

«  データの取得   ::   コンテンツ   ::   書式変換処理  »