新規投稿 記事一覧 ホーム
●ご利用方法,ご利用に際しての規約はこちらをお読みください。
こちらからの投稿は、先頭に表示されているコメントへの返信になります。
オンライン画面での入力情報取得について qtr2727 さん [ 9月28日(火) 18時28分 ]

    いつもおせわになっております。

    教えていただきたいことがあります。
    例えば受注入力画面というものがあり、入力項目が10こあるとします。
    そのとき入力した情報をそのまま取得(データベースなどに)することはできるのでしょうか。

    データベースに登録されたあとだとビジネスロジックを通るので入力された値が
    変わることがあるので、入力されたままの情報を取得できたらとおもいます。

    それにより同じデータでテストが何回も行えるとおもっているのですが、
    そういうことはできないのでしょうか。

    RE:オンライン画面での入力情報取得について IKD さん [ 9月29日(水) 11時52分 ]

      入力データをデータ・ベースに出力する、ということが
      目的であれば

      D DDS001        E DS                  EXTNAME(PGM001D)

      のようにして入力バッファー全体を取得してPGM で
      データ・ベースに出力することになりますが
      ご質問の趣旨は画面入力テストにおいて繰り返し同じ入力を
      することを避けて、自動的に同じ入力データによる入力を
      再現できないか ? ということであろうと推測できます。

      このことを実現するには 5250エミュレータのマクロ機能を
      使用することです。
      入力操作をマクロに記録しておいて、後で再生するようにすれば
      キー操作や入力値もすべて再現することができます。
      また、マクロそのものもテキストとして ローカルPCに保管されますので
      自分で解析してマクロそのものを修正することができます。

      さらにマクロは個別に名前をつけて保存することができますので
      再生時に指定することも容易です。
      一度、お試しください。

      RE:オンライン画面での入力情報取得について qtr2727 さん [ 9月29日(水) 14時42分 ]

        > 入力データをデータ・ベースに出力する、ということが
        > 目的であれば
        > 
        > D DDS001        E DS                  EXTNAME(PGM001D)
        > 
        > のようにして入力バッファー全体を取得してPGM で
        > データ・ベースに出力することになりますが
        > ご質問の趣旨は画面入力テストにおいて繰り返し同じ入力を
        > することを避けて、自動的に同じ入力データによる入力を
        > 再現できないか ? ということであろうと推測できます。

        回答ありがとうございます。これはRPGVでも可能なのでしょうか?
        ILEのようにおもえるのですが。
        実は今回ASからJAVAへコンバージョンする案件がありまして、現行のASでの日々の業務で入力した
        データ(例えば受注データベースに対して受注データを100件打つなど)を取得しておいてそれを
        JAVA側で入力データ(テストデータ)として使いたいと思っています。

        いわれているマクロも考えて実行してみたのですが、データのみを抽出するのは簡単ではないかなぁ
        と考えています。

        そういったことは難しいですかね・・・
        1つはDUMP命令でスプールにだして切り出すなども考えてみたのですけどね。

        RE:オンライン画面での入力情報取得について IKD さん [ 9月29日(水) 15時50分 ]

          弊社も実は RPG を Java への自動変換する依頼を受けていますので
          興味深いご質問であると思います。

          D DDS001        E DS                  EXTNAME(PGM001D)

          に関しては RPG III であっても同じ機能はあります。
          ご紹介しました 5250エミュレータのマクロを利用する方法は
          移行した Java でも DSPF を利用するのであれば
          5250エミュレータのマクロで RPG のときの動作を再現テストすることが
          できます。
          ただし JSP & Servlet に移行されるのであれば、この方法はできません。
          RPG を Java に書き換えるに当たっては

           - DSPF を利用するのであれば 24 * 80 の制約が残ってしまう。

          の問題がありますが JSP & Servlet であれば

           - JDBC であればパフォーマンスは低下してしまう。
           - CHAIN 命令が使用できないためビジネス・ロジックにかなりの制約が出てしまう。

          の問題も出てしまいます。
          いずれの場合にせよ、対話型プログラムのテスト手法をあらかじめ考えて
          おられるのは良いことであると思います。

          RE:オンライン画面での入力情報取得について qtr2727 さん [ 9月29日(水) 17時9分 ]

            > 弊社も実は RPG を Java への自動変換する依頼を受けていますので
            > 興味深いご質問であると思います。
            > 
            > D DDS001        E DS                  EXTNAME(PGM001D)
            > 
            > に関しては RPG III であっても同じ機能はあります。

            回答ありがとうございます。偶然とはいえ同じような問題があったのですね。
            RPG→javaへの自動変換ツールなどについても弊社で質問をうけましたがあるようですが
            実績がよくわからない感じのものがあり事実上はかきかえるしかないようにおもっています。
            javaのほうでは回帰テストなどのツールが充実してるらしく、入力データさえ
            あればそれを実行すれば品質を保てるということらしいです。
            上記で教えていただいたものは、このあとどのように使えばいいのでしょうか?

            PGM001Dの入力フィールドの値がDDS001に入ってくるということなのでしょうか?
            それをべたデータのDBに吐き出すようなロジックをくめばいいのでしょうか?

            質問ばかりで申し訳ありません。

          RE:オンライン画面での入力情報取得について qtr2727 さん [ 9月29日(水) 17時18分 ]


            > D DDS001        E DS                  EXTNAME(PGM001D)

            すいません、RPG3でD仕様書はないようなんですが、上記はどう定義するのでしょうか

            ちょっとサンプル的な書き方をおしえてもらうことはできないでしょうか?

            RE:オンライン画面での入力情報取得について IKD さん [ 9月29日(水) 18時3分 ]

              外部データ構造(データ・ストラクチャー) はご存じでしょうか ?

              任意のデータ・ベースや画面ファイルを DS の一部として再定義する方法です。
              外部データ・ベースとしての DS でデータ・ベースのバッファーをまとめて
              再定義しておいて、それを画面バッファーとして使用することができます。

              RPG III の例の参考として
              http://218.44.135.18/QSYS.LIB/PGMRLIB.LIB/QRPGSRC.FILE/ANS004.MBR
              をご覧ください。

              この中で DSPDTA が JUCHU というデータ・ベースのバッファーを利用していますが
              画面ファイル ANS004FM を入力バッファーを DSPDTA として定義することもできます。

お名前
パスワード
e-mailアドレス
タイトル
ホームページ
アドレス