追加開発

アビリスツと一緒に、お客様のメインプラグインとサブプラグインの開発手順


アビリスツのプラグインのための追加開発

● 開発のためのインストールおよび構成

  1. Java 8 インストール
    https://openjdk.java.net/install/
    
  2. Gradle 3.3 インストール
    https://services.gradle.org/distributions/gradle-3.3-all.zip
    
  3. Eclipse インストール
    https://www.eclipse.org/
    


● 開発キットとソースのダウンロード

  1. Gitでabilists_clientをCloneする
    $ git clone https://github.com/abilists/abilists_client.git
    
    会社自体の会社の固有業務向けの機能開発できるようにClient Controllerを無料で提供しています。
    以下は、ソース(abilists_client)をCloneしてダウンロードし、Controllerのソースコードをオープンしたイメージです。

    www.abilists.com

  2. アビリスツ(abilists)ベースで使用することができる新しいプラグイン開発について説明します。
    詳細については、以下の[プラグイン]> [新しいプラグイン開発]またはGitのREADME.mdをご確認ください。
    https://github.com/abilists/plugin_sample
    
    Gitでabilists_pluginsをCloneする
    $ git clone https://github.com/abilists/plugin_sample.git
    
    以下は、サンプルプラグインのソースをCloneして、Eclipseでオープンしたソースです。

    www.abilists.com



開発方法

● ソースの構成とそれぞれの役割を説明します。

  1. Controller内で画面端に表現できるようにModelオブジェクトを生成します。すべてのデータの出力は、abilistsModelを通じて示しています。
    新しい画面に新しいデータを作成して表現するには、AbilistsModelをextendsして表現してください。
    AbilistsModel abilistsModel = new AbilistsModel();
    
    ログインユーザーの情報をセッションで持ってきます。
    this.handleSessionInfo(request.getSession(), sltSamplePara);
    
    入力データのチェック後にエラーがあることを確認します。エラーがある時にエラー画面に切り替わります。
    Map mapErrorMessage = new HashMap();
    if (bindingResult.hasErrors()) {
    	response.setStatus(400);
    	mapErrorMessage = this.handleErrorMessages(bindingResult.getAllErrors(), locale);
    	model.addAttribute("mapErrorMessage",  mapErrorMessage);
    	return "apps/errors/parameterErrors";
    }
    
    ワンタイムトーク(OPT)をチェックします。 ユーザーが多ければ、トークンストアをmemcachedに移すことをお勧めします。
    String key = this.makeKey(istSamplePara.getUserId(), AbstractBaseController.PREFIX_IST_KEY);
    if (!istSamplePara.getToken().equals(commonBean.getTokenExpireMap(key))) {
    	mapErrorMessage.put("errorMessage", message.getMessage("parameter.error.token.message", null, locale));
    	model.addAttribute("errorMessage", mapErrorMessage);
    	return "apps/errors/parameterErrors";
    }
    
    データ処理が正常な場合に、画面端にメッセージを表示するための部分です。
    redirectAttributes.addFlashAttribute("save", "completed");
    
  2. ClientServiceImplクラスで処理するCRUDビジネスロジックです。
    データ取得するMethodです。 (slt = select)
    @Override
    public List sltCleintList(CommonPara commonPara) throws Exception {
    	
    
    	return null;
    }
    
    データ入力するMethodです。 (ist = insert)
    @Override
    @Transactional(rollbackFor = Exception.class, propagation = Propagation.REQUIRED)
    public boolean istCleint(CommonPara commonPara) throws Exception {
    
    	return true;
    }
    
    データ更新するMethodです。 (udt = update)
    @Override
    @Transactional(rollbackFor = Exception.class, propagation = Propagation.REQUIRED)
    public boolean udtUCleint(CommonPara commonPara) throws Exception {
    
    	return true;
    }
    
    データ削除するMethodです。 (dlt = delete)
    @Override
    @Transactional(rollbackFor = Exception.class, propagation = Propagation.REQUIRED)
    public boolean dltCleint(CommonPara commonPara) throws Exception {
    
    	return true;
    }
    

● 開発環境で実行します。

  1. abilists_clientをJettyを介してLocalで実行します。
    *エラーが発行する際には、gradle cleanコマンドを一度実行してJettyを起動します。
    $ cd ~/git/abilists_client
    $ gradle clean
    $ gradle jettyRun