Skip to content

サービス契約情報登録実装編#

1.1. 処理概要#

画面の入力内容をもとにサービス契約情報の登録を行います。
本処理を行うには、API認証よりAPIを呼び出すためのアクセストークンが必要となります。

1.1.1. 呼出API#

以下、サービス契約情報登録で呼び出すAPIとなります。

No API 処理内容 使用用途
1 POST /API/v2/api/servicecontracts サービス契約を編集する サービス契約登録画面で登録ボタン押下時にサービス契約情報を作成

1.1.2. 処理フロー#

サービス契約情報登録を行うまでの処理は以下のフローとなります。

1.1.3. 実装例#

以下API呼び出しの実装例となります。
※本マニュアルに記載している実装例は、分かりやすさを優先し簡易的に記載しております。提供しているソースと異なりますので詳細については提供ソースをご確認ください。

ServiceContractRegistController.java

/**
 * 登録処理
 * @param model モデル
 * @param form サービス契約登録フォーム
 * @param result バリデーション結果
 * @return サービス契約登録
 */
@RequestMapping(value = "/ServiceContractRegist/regist", method = RequestMethod.POST)
public String regist(
        Model model,
        @Valid ServiceContractRegistForm form,
        BindingResult result) {

    form.setMessage("");
    form.setErrorInformation("");
    model.addAttribute("serviceContractRegistForm", form);
    serviceContractRegistFormSession.setServiceContractRegistForm(form);

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

    Web_IFServiceContractEdition_I web_IFServiceContractEdition_I = new Web_IFServiceContractEdition_I();
    Web_IFServiceContractEdition_O web_IFServiceContractEdition_O = new Web_IFServiceContractEdition_O();

    web_IFServiceContractEdition_I.entry_id = CommonConstants.登録者ID;
    web_IFServiceContractEdition_I.administration_number = "1";
    web_IFServiceContractEdition_I.customer_id = SampleUtil.emptyToNull(form.getCustomerId());
    Web_IndividualizedServiceContractEditionList web_IndividualizedServiceContractEditionList = new Web_IndividualizedServiceContractEditionList();
    web_IndividualizedServiceContractEditionList.version_info = "1";
    web_IndividualizedServiceContractEditionList.bill_to_id = SampleUtil.emptyToNull(form.getBillToId());
    web_IndividualizedServiceContractEditionList.service_code = SampleUtil.emptyToNull(form.getServiceCode());
    web_IndividualizedServiceContractEditionList.price_plan_code = SampleUtil.emptyToNull(form.getPricePlanCode());
    web_IndividualizedServiceContractEditionList.number_of_contracts = SampleUtil.emptyToNull(form.getNumberOfContracts());
    web_IndividualizedServiceContractEditionList.service_application_date = DateUtil.nowDate();
    web_IndividualizedServiceContractEditionList.apply_start_date = DateUtil.nowDate();
    web_IndividualizedServiceContractEditionList.charging_start_date = DateUtil.nowDate();
    web_IndividualizedServiceContractEditionList.free_item1 = SampleUtil.emptyToNull(form.getNote());
    web_IFServiceContractEdition_I.individualized_service_contract_edition_list.add(web_IndividualizedServiceContractEditionList);

    try {
        // サービス契約を編集する
        web_IFServiceContractEdition_O = serviceContractService.serviceContractEdition(web_IFServiceContractEdition_I);

        if (ControllerConstants.API_RESULT_NG.equals(web_IFServiceContractEdition_O.result_information.result)) {
            form.setErrorInformation(web_IFServiceContractEdition_O.result_information.detailed_result);
            return ControllerConstants.SERVICE_CONTRACT_REGIST_JSP;
        }

    } catch (ApiException e) {
        model.addAttribute("errorCode", e.getErrorCode().getValue());
        return ControllerConstants.SYSTEM_ERROR_JSP;

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

    form.setServiceContractId(web_IFServiceContractEdition_O.servicecontract_id_information_list.get(0).service_contract_id);

    model.addAttribute("serviceContractRegistForm", form);
    // メッセージ表示
    form.setMessage(getMsg(MessageConstants.MSGI00001, 
            getMsg(MessageConstants.LBL000001), 
            web_IFServiceContractEdition_O.servicecontract_id_information_list.get(0).service_contract_id));

    return ControllerConstants.SERVICE_CONTRACT_REGIST_JSP;
}

ServiceContractService.java

/**
 * サービス契約_編集 API
 * 
 * @param web_IFServiceContractEdition_I IFサービス契約_編集_入力
 * @return IFサービス契約_編集_出力
 */
public Web_IFServiceContractEdition_O serviceContractEdition(Web_IFServiceContractEdition_I web_IFServiceContractEdition_I) {

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

    // 通信実行
    return CommonHttpClient.httpPost(postMethod, Web_IFServiceContractEdition_O.class);

}

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

Top