Skip to content

基本契約情報削除実装編#

1.1. 処理概要#

基本契約情報の検索で取得した情報をもとに、画面上で入力ができる形で基本契約情報を表示します。
削除ボタンが押された際に、基本契約情報の削除を行います。
本処理を行うには、API認証よりAPIを呼び出すためのアクセストークンが必要となります。

1.1.1. 呼出API#

以下、基本契約情報削除で呼び出すAPIとなります。

No API 処理内容 使用用途
1 POST /v2/api/basiccontract 基本契約を編集する 基本契約変更画面で削除ボタン押下時に基本契約情報を削除
2 GET /v2/api/basiccontract 基本契約を検索する 基本契約変更画面表示時に削除対象の基本契約情報を検索

1.1.2. 処理フロー#

基本契約情報削除を行うまでの処理は以下のフローとなります。

1.1.3. 実装例#

以下API呼出の実装例となります。
基本契約変更画面表示時の「基本契約を検索する」API呼び出しについては、「基本契約情報検索実装編」及び提供ソースをご確認ください。
※本マニュアルに記載している実装例は、分かりやすさを優先し簡易的に記載しております。提供しているソースと異なりますので詳細については提供ソースをご確認ください。

BasicContractChangeController.java

/**
 * 削除処理
 * @param model モデル
 * @param form 基本契約変更フォーム
 * @param result バリデーション結果
 * @return 基本契約変更
 */
@RequestMapping(value = "/BasicContractChange/delete", method = RequestMethod.POST)
public String delete(
        Model model,
        @Valid BasicContractChangeForm form,
        BindingResult result) {

    form.setMessage("");
    form.setErrorInformation("");
    model.addAttribute("basicContractChangeForm", form);
    basicContractChangeFormSession.setBasicContractChangeForm(form);

    if (result.hasErrors()) {
        return ControllerConstants.BASIC_CONTRACT_CHANGE_JSP;
    }

    Web_IFBasicContractEdition_I web_IFBasicContractEdition_I = new Web_IFBasicContractEdition_I();
    Web_IFBasicContractEdition_O web_IFBasicContractEdition_O = new Web_IFBasicContractEdition_O();

    web_IFBasicContractEdition_I.entry_id = CommonConstants.登録者ID;
    web_IFBasicContractEdition_I.administration_number = "1";
    web_IFBasicContractEdition_I.customer_id = SampleUtil.emptyToNull(form.getCustomerId());
    web_IFBasicContractEdition_I.group_id = SampleUtil.emptyToNull(form.getGroupNameCode());
    web_IFBasicContractEdition_I.apply_start_date = SampleUtil.emptyToNull(form.getBasicContractStartDate());
    web_IFBasicContractEdition_I.classification_of_contract = SampleUtil.emptyToNull(form.getClassificationOfContractCode());
    web_IFBasicContractEdition_I.bill_to_id = SampleUtil.emptyToNull(form.getBillToId());
    web_IFBasicContractEdition_I.bill_to_version_info = SampleUtil.emptyToNull(form.getBillToVersionInfo());
    web_IFBasicContractEdition_I.deletion_targeted_flag = "1";          |-- 削除対象フラグを設定することにより削除処理が行われる
    try {
        //サービス契約の件数を判定する
        //1件以上(true)の場合
        if(isNotZeroServiceContract(form, false)){
            return ControllerConstants.BASIC_CONTRACT_CHANGE_JSP;

        //0(false)の場合:削除処理を実行
        } else {
            //基本契約を編集する
            web_IFBasicContractEdition_O = basicContractService.basicContractEdition(web_IFBasicContractEdition_I);
            if (ControllerConstants.API_RESULT_NG.equals(web_IFBasicContractEdition_O.result_information.result)) {
                form.setErrorInformation(web_IFBasicContractEdition_O.result_information.detailed_result);
                return ControllerConstants.BASIC_CONTRACT_CHANGE_JSP;
            }
        }

    } catch (ApiException e) {
        if(ApiErrorType.排他エラー.equals(e.getErrorCode())){
            // メッセージ表示
            form.setErrorInformation(getMsg(MessageConstants.MSGE00001, 
                getMsg(MessageConstants.SCN000002)));
            return ControllerConstants.BASIC_CONTRACT_CHANGE_JSP;
        } else {
            model.addAttribute("errorCode", e.getErrorCode().getValue());
            return ControllerConstants.SYSTEM_ERROR_JSP;
        }

    } catch (Exception e) {
        return ControllerConstants.SYSTEM_ERROR_JSP;
    }

    // メッセージ表示
    form.setMessage(getMsg(MessageConstants.MSGI00004, 
        getMsg(MessageConstants.LBL000002), 
        web_IFBasicContractEdition_O.basic_contract_id));

    // 基本契約変更に戻る
    return ControllerConstants.BASIC_CONTRACT_CHANGE_JSP;
}

BasicContractService.java

/**
 * 基本契約_編集 API
 * 
 * @param web_IFBasicContractEdition_I IF基本契約_編集_入力
 * @return IF基本契約_編集_出力
 */
public Web_IFBasicContractEdition_O basicContractEdition(Web_IFBasicContractEdition_I web_IFBasicContractEdition_I) {

    // 通信設定
    String strURI = ClientUtil.makeURI(UriInfo.BasicContractEdition, null, null);
    HttpPost postMethod = ClientUtil.makeHttpPost(strURI, web_IFBasicContractEdition_I);

    return CommonHttpClient.httpPost(postMethod, Web_IFBasicContractEdition_O.class);

}

共通HTTPリクエストクラス[CommonHttpClient.java]の実装例についてはこちらをご参照ください。

Top