Hitachi

TP1/COBOL adapter for Cosminexus ユーザーズガイド


付録E.1 ソースイメージの生成例(TP1/Client/PおよびTP1/Client/W)

「Bean生成ツール」で「TP1/Client/PまたはW経由のアクセスを使用する。」を選択した場合の生成例です。(他のチェックボックスはデフォルト指定です。)

入力用原文指定時はcall/callTo/sendメソッドとsetterおよびコンストラクタ中のsetInXXXを,出力用原文指定時はreceive/receive2メソッドとgetterおよびコンストラクタ中のsetOutXXXを生成します。

〈この項の構成〉

(1) OCCURS句がない場合

TP1/COBOLの引数にOCCURS句がない場合の例を次に示します。

<入力用>
01 PERSONAL-DATA-IN.
 05 P-NUMBER   PIC 9(9) USAGE COMP.
 05 P-NAME     PIC X(50).
 05 P-ADDRESS  PIC X(100).
 05 P-GIF      PIC X(50).
<出力用>
01 PERSONAL-DATA-OUT.
 05 P-NUMBER   PIC 9(9) USAGE COMP.
 05 P-NAME     PIC X(50).
 05 P-ADDRESS  PIC X(100).
 05 P-GIF      PIC X(100).

橙色の部分は条件によって生成文字列が異なります。

ウィザード処理で別名を指定した場合,次のファイル中のデータ名は,すべて別名に置き換わります。

package パッケージ名;
 
import jp.co.hitachi_sk.j2cb.*;
 
public class クラス名 extends TP1RPC {
/*
 *Generated by TP1/COBOL adapter for Cosminexus Version 2 02-10
 *DO NOT EDIT THIS FILE
 *2007/09/28
 */
  private static final long serialVersionUID = 1153786728653L;
  private static boolean noload = true;
  //入力項目
  private static final int inIndex = 0;
  protected static GroupAccess myInGroup = null;
  //出力項目
  private static final int outIndex = 1;
  protected static GroupAccess myOutGroup = null;
/**
 *コンストラクタ
 */
  public クラス名() {
    super();
    //データアクセスのための情報を設定
    setInSize(204);
    setInLvl("01,05,05,05,05");
    setInName("personal_data_in,p_number,p_name,p_address,p_gif");
    setInType("G,UI0900,C(50),C(100),C(50)");
    setInAddress("0,0,4,54,154");
    setOutSize(254);
    setOutLvl("01,05,05,05,05");
    setOutName("personal_data_out,p_number,p_name,p_address,p_gif");
    setOutType("G,UI0900,C(50),C(100),C(100)");
    setOutAddress("0,0,4,54,154");
  }
/**
 *初期化処理
 */
  private void init( ) throws J2CBException {
    //初期ロードのみ実行する
    if (noload) {
      init2();
    }
    else {
      setInformation(myInGroup, myOutGroup);
    }
  }
/**
 *初期化処理2
 */
  private synchronized void init2( ) throws J2CBException {
    if (noload) {
      makeGroupAccess();
      myInGroup = inGroup;
      myOutGroup = outGroup;
      noload = false;
    }
    else {
      setInformation(myInGroup, myOutGroup);
    }
  }
/**
 *RPC
 */
  public void call( int cltid, String group, String service, int flags) throws J2CBException {
    init();
    super.call(cltid, group, service, flags);
  }
  public void callTo( int cltid, String hostnm, int scdport, String group, String service, int flags) throws J2CBException {
    init();
    super.callTo(cltid, hostnm, scdport, group, service, flags);
  }
  public void send( int cltid, String hostname, int portnum, int flags) throws J2CBException {
    init();
    super.send(cltid, hostname, portnum, flags);
  }
  public void receive( int cltid, int timeout, int flags) throws J2CBException {
    init();
    super.receive(cltid, timeout, flags);
  }
  public void receive2( int cltid, int timeout, int flags) throws J2CBException {
    init();
    super.receive2(cltid, timeout, flags);
  }
 
  //入力項目用メソッド
/**
 *p_numberI設定メソッド
 *@param p_numberI Integerオブジェクト
 */
  public void setP_numberI( Object p_numberI) throws J2CBException {
    setInData(inIndex, "personal_data_in.p_number", p_numberI);
  }
/**
 *p_nameI設定メソッド
 *@param p_nameI Stringオブジェクト
 */
  public void setP_nameI( Object p_nameI) throws J2CBException {
    setInData(inIndex, "personal_data_in.p_name", p_nameI);
  }
/**
 *p_addressI設定メソッド
 *@param p_addressI Stringオブジェクト
 */
  public void setP_addressI( Object p_addressI) throws J2CBException {
    setInData(inIndex, "personal_data_in.p_address", p_addressI);
  }
/**
 *p_gifI設定メソッド
 *@param p_gifI Stringオブジェクト
 */
  public void setP_gifI( Object p_gifI) throws J2CBException {
    setInData(inIndex, "personal_data_in.p_gif", p_gifI);
  }
  //出力項目用メソッド
/**
 *p_numberO取得メソッド
 *@return Integerオブジェクト
 */
  public Object getP_numberO( ) throws J2CBException {
    return getOutData(outIndex, "personal_data_out.p_number");
  }
/**
 *p_nameO取得メソッド
 *@return Stringオブジェクト
 */
  public Object getP_nameO( ) throws J2CBException {
    return getOutData(outIndex, "personal_data_out.p_name");
  }
/**
 *p_addressO取得メソッド
 *@return Stringオブジェクト
 */
  public Object getP_addressO( ) throws J2CBException {
    return getOutData(outIndex, "personal_data_out.p_address");
  }
/**
 *p_gifO取得メソッド
 *@return Stringオブジェクト
 */
  public Object getP_gifO( ) throws J2CBException {
    return getOutData(outIndex, "personal_data_out.p_gif");
  }
}

(2) OCCURS句がある場合

TP1/COBOLの引数にOCCURS句がある場合の例を次に示します。

01 G1.
 02 G2 OCCURS 10.
  03 B1 PIC X(50).
 
 
  //入力項目用メソッド
/**
 *b1I設定メソッド
 *@param data Stringオブジェクト
 *@param dim1 int
 */
  public void setB1I( Object data,int dim1) throws J2CBException {
    StringBuffer wkbuf;
    String acsstr1 = "g1.g2[";
    String acsstr2 = "].b1";
    wkbuf = new StringBuffer(acsstr1);
    wkbuf.append(dim1);
    wkbuf.append(acsstr2);
    setInData(inIndex, wkbuf.toString(), data);
  }
  //出力項目用メソッド
/**
 *b1O取得メソッド
 *@param dim1 int
 *@return Stringオブジェクト
 */
  public Object getB1O( int dim1) throws J2CBException {
    StringBuffer wkbuf;
    String acsstr1 = "g1.g2[";
    String acsstr2 = "].b1";
    wkbuf = new StringBuffer(acsstr1);
    wkbuf.append(dim1);
    wkbuf.append(acsstr2);
    return getOutData(outIndex, wkbuf.toString());
  }

(3) OCCURS DEPENDING ON指定がある場合

TP1/COBOLの引数にOCCURS DEPENDING ON指定がある場合の例を次に示します。

01 G1. 
  02 I PIC S9(9) USAGE COMP.
  02 G2 OCCURS 10 DEPENDING ON I.
    03 B1 PIC X.
 
 
package パッケージ名;
 
import jp.co.hitachi_sk.j2cb.*;
 
public class クラス名 extends TP1RPC {
/*
 *Generated by TP1/COBOL adapter for Cosminexus Version 2 02-10
 *DO NOT EDIT THIS FILE
 *2007/09/28
 */
  private static final long serialVersionUID = 1153786735781L;
  private static boolean noload = true;
  //入力項目
  private static final int inIndex = 0;
  protected static GroupAccess myInGroup = null;
  //出力項目
  private static final int outIndex = 1;
  protected static GroupAccess myOutGroup = null;
/**
 *コンストラクタ
 */
  public クラス名() throws J2CBException {
    super();
    //データアクセスのための情報を設定
    setInSize(14);
    setInLvl("01,02,02,03");
    setInName("g1,i,g2[10],b1");
    setInType("G,SI0900,G,C(1)");
    setInAddress("0,0,4,4");
    setOutSize(14);
    setOutLvl("01,02,02,03");
    setOutName("g1,i,g2[10],b1");
    setOutType("G,SI0900,G,C(1)");
    setOutAddress("0,0,4,4");
    init();
  }
/**
 *初期化処理
 */
  private void init( ) throws J2CBException {
    //初期ロードのみ実行する
    if (noload) {
      init2();
    }
    else {
      setInformation(myInGroup, myOutGroup);
    }
  }
/**
 *初期化処理2
 */
  private synchronized void init2( ) throws J2CBException {
    if (noload) {
      makeGroupAccess();
      myInGroup = inGroup;
      myOutGroup = outGroup;
      noload = false;
    }
    else {
      setInformation(myInGroup, myOutGroup);
    }
  }
/**
 *RPC
 */
  public void call( int cltid, String group, String service, int flags) throws J2CBException {
    super.call(cltid, group, service, flags);
    calcTimes();
  }
  public void callTo( int cltid, String hostnm, int scdport, String group, String service, int flags) throws J2CBException {
    super.callTo(cltid, hostnm, scdport, group, service, flags);
    calcTimes();
  }
  public void send( int cltid, String hostname, int portnum, int flags) throws J2CBException {
    super.send(cltid, hostname, portnum, flags);
  }
  public void receive( int cltid, int timeout, int flags) throws J2CBException {
    super.receive(cltid, timeout, flags);
    calcTimes();
  }
  public void receive2( int cltid, int timeout, int flags) throws J2CBException {
    super.receive2(cltid, timeout, flags);
    calcTimes();
  }
  //入力項目用メソッド
/**
 *iI設定メソッド
 *@param iI Integerオブジェクト
 */
  public void setII( Object iI) throws J2CBException {
    setInData(inIndex, "g1.i", iI);
    int[] acsInt = {2};
    InitInOcr(inIndex, acsInt, iI);
  }
/**
 *b1I設定メソッド
 *@param data Stringオブジェクト
 *@param dim1 int
 */
  public void setB1I( Object data,int dim1) throws J2CBException {
    StringBuffer wkbuf;
    String acsstr1 = "g1.g2[";
    String acsstr2 = "].b1";
    wkbuf = new StringBuffer(acsstr1);
    wkbuf.append(dim1);
    wkbuf.append(acsstr2);
    setInData(inIndex, wkbuf.toString(), data);
  }
  //出力項目用メソッド
/**
 *iO取得メソッド
 *@return Integerオブジェクト
 */
  public Object getIO( ) throws J2CBException {
    return getOutData(outIndex, "g1.i");
  }
/**
 *b1O取得メソッド
 *@param dim1 int
 *@return Stringオブジェクト
 */
  public Object getB1O( int dim1) throws J2CBException {
    StringBuffer wkbuf;
    String acsstr1 = "g1.g2[";
    String acsstr2 = "].b1";
    wkbuf = new StringBuffer(acsstr1);
    wkbuf.append(dim1);
    wkbuf.append(acsstr2);
    return getOutData(outIndex, wkbuf.toString());
  }
/**
 *制御変数処理メソッド
 */
  private void calcTimes( ) throws J2CBException {
    InitStart();
    int[] acsInt1 = {2};
    InitOutOcr(outIndex, acsInt1, getIO());
    InitEnd();
  }
}