新規投稿 記事一覧 ホーム
●ご利用方法,ご利用に際しての規約はこちらをお読みください。
こちらからの投稿は、先頭に表示されているコメントへの返信になります。
CLからSBMJOB実行時のパラメータ どん さん [ 9月9日(金) 15時23分 ]

    お世話になります。
    CLから
    SBMJOB CMD(CALL PGM(&W2LIB/&W2MBR) PARM(&W2PRM)) JOBQ(QBATCH)
    を実行しようとしています。
    以下はDDSで入力される任意の値。
    &W2LIB:10
    &W2MBR:10
    &W2PRM:250
    画面で入力したパラメータがサブミットで実行された際に、
    '2011' '201105' 'LIBXXX' '2011'
    ->
    ''2011''''201105''''LIBXXX''''2011''
    の様になってしまいます。
    どの様に処理を組めばよいのかご教授戴ければと思います。

    宜しくお願い致します。

    RE:CLからSBMJOB実行時のパラメータ IKD さん [ 9月9日(金) 17時50分 ]

      [例]
      下記のように DSPLIB xxxx ( xxxxは DSPF から入力されるライブラリー名) を
      実行する小さなCLP を作成して実行しましたが、特に変数が引用符で囲まれるような
      症状はなく正常に指定したライブラリー名で実行されます。
      作成されたDSPF と CLP のソースをお知らせ頂いたほうが問題の解決は
      早まると思いますのでよろしければソースの内容をお知らせください。


      ・DSPF
      0001.00      A                                      DSPSIZ(24 80 *DS3) 
      0002.00      A                                      MSGLOC(24)         
      0003.00      A                                      PRINT              
      0004.00      A          R DSPHEAD                                      
      0005.00      A                                      TEXT(' 初期画面 ') 
      0006.00      A                                      CF03(03 ' 終了 ')  
      0007.00      A                                  1 27' ジョブの投入 '   
      0008.00      A                                      DSPATR(HI)         
      0009.00      A                                  2  2' ライブラリー名 ' 
      0010.00      A            LIB           10A  B  2 22                   
      0011.00      A                                 23  2'F3= 終了 '        
      0012.00      A                                      COLOR(BLU)         

      ・CLP
      0001.00              PGM                                               
      0002.00 /*---------------------------------------------------------*/  
      0003.00 /*   SBM001CL    :  ジョブの投入                           */  
      0004.00 /*---------------------------------------------------------*/  
      0005.00              DCLF       FILE(TEST.COM/SBM001D)                 
      0006.00                                                                
      0007.00              SNDRCVF    RCDFMT(DSPHEAD)                        
      0008.00              IF         COND(&IN03 *EQ '1') THEN(RETURN)       
      0009.00              SBMJOB     CMD(DSPLIB LIB(&LIB) OUTPUT(*PRINT)) + 
      0010.00                           JOB(DSPLIB) MSGQ(*WRKSTN)            
      0011.00              ENDPGM               

      RE:CLからSBMJOB実行時のパラメータ どん さん [ 9月9日(金) 18時18分 ]

        IKD殿、早速のご連絡ありがとうございます。
        ソースを貼らせて戴きます。

        宜しくお願い致します。

        ・DSPF
        0026.00      A          R RUNSQLW2                                            
        0027.00      A                                      OVERLAY                   
        0028.00      A                                  1  2'RUNSQLW2'                
        0029.00      A            PCOMP          3A  O  1 12DSPATR(HI)                
        0030.00      A                                      DSPATR(UL)                
        0031.00      A            PCOMN         42A  O  1 18DSPATR(HI)                
        0032.00      A                                      DSPATR(UL)                
        0033.00      A                                  1 64DATE                      
        0034.00      A                                      EDTCDE(Y)                 
        0035.00      A                                  1 73TIME                      
        0036.00      A            W2CMD          1A  B  4 12COLOR(BLU)                
        0037.00      A                                  4 15'1:SQL / 2:SBMJOB(NO PARM)
        0038.00      A                                      OB(PARM) / 4:SYSTEM'      
        0039.00      A                                  6 12'SOURCE FILE :'           
        0040.00      A            W2SRC         10A  B  6 26COLOR(BLU)                
        0041.00      A                                  8 12'LIB         :'           
        0042.00      A            W2LIB         10A  B  8 26COLOR(BLU)                
        0043.00      A                                 10 12'SRCMBR      :'       
        0044.00      A            W2MBR         10A  B 10 26COLOR(BLU)            
        0045.00      A                                 12 12'PARM        :'       
        0046.00      A            W2PRM        250A  B 12 26COLOR(BLU)            
        0047.00      A                                 24  2' 03: 終了 '          
        0048.00      A                                      DSPATR(HI)            
        0049.00      A                                 24 29' ENTER: 実行 !!    ' 
        ・CLP
        0075.00  STEP02:                                                               
        0076.00  SNDRCVF RCDFMT(RUNSQLW2)                                              
        0077.00  /* F03:終了 */                                                    
        0078.00  IF      COND(&IN03 *EQ '1') THEN(GOTO END)                            
        0079.00 /* ================================================================= */
        省略
        0328.00  IF      COND(&W2LIB *EQ '          ') THEN(GOTO STEP02)              
        0329.00  IF      COND(&W2MBR *EQ '          ') THEN(GOTO STEP02)              
        0330.00  IF      COND(&W2PRM *EQ *BLANK)       THEN(GOTO STEP02)              
        0331.00  IF      COND(&LB00  *EQ '0') THEN(DO)                                
        0332.00          SBMJOB CMD(CALL PGM(&W2LIB/&W2MBR) PARM(&W2PRM)) JOBQ(QBATCH)
        0333.00  ENDDO                                                                








    RE:CLからSBMJOB実行時のパラメータ AAA さん [ 9月13日(火) 10時34分 ]

      引用符自体は引用符2個で、記述する。
      これで、正しいはず。

      RE:CLからSBMJOB実行時のパラメータ IKD さん [ 9月13日(火) 16時3分 ]

        問題になるソースであるようには見えません。
        下記の記述が気になるのですが、各入力項目欄に
        '2011' のように引用符を両端に付加して入力されているのでしょうか ?
        もし万が一、そうであればご指摘のようにW-引用符が両端に付加されます。
        意図的に両端に引用符をつけたいという希望であれば
        理由をお聞かせください。

        画面で入力したパラメータがサブミットで実行された際に、
        '2011' '201105' 'LIBXXX' '2011'
        ->
        ''2011''''201105''''LIBXXX''''2011''
        の様になってしまいます。

        RE:CLからSBMJOB実行時のパラメータ どん さん [ 9月13日(火) 19時2分 ]

          お疲れ様です。
          AAA,IKDさん御回答ありがとうございます。
          引用符ですが、
          コマンドライン、CLでLIB、PGM、PARM固定では、以下の様な入力で実行できています。
          SBMJOB CMD(CALL PGM(TESTLIB/TESTPGM) PARM('2011' '201105' 'LIBXXX' '2011')) 
          JOBQ(QBATCH)

          画面で同じように以下を入力してやれば実行できないかと思いました。
          LIB:TESTLIB
          PGM:TESTPGM
          PARM:'2011' '201105' 'LIBXXX' '2011'

          '2011'と入力しているのは、上記のPARM('2011' '201105' 'LIBXXX' '2011')の
          ()内を手打ちしているイメージで処理を作ったつもりだからです。
          結果的に、W-引用符が付く結果になってしまいました。

          宜しくお願い致します。

          RE:CLからSBMJOB実行時のパラメータ AAA さん [ 9月13日(火) 20時12分 ]

            引用符の解釈が、2回あるからです。
            1. 2個の引用符が1個に変換される。
            2. 文字の始まりとして解釈されたのち、除去される。


            RE:CLからSBMJOB実行時のパラメータ どん さん [ 9月14日(水) 9時28分 ]

              AAAさん、ご回答ありがとうございます。
              引用符の解釈、その様に処理されていたとは知りませんでした。

              > 引用符の解釈が、2回あるからです。
              > 1. 2個の引用符が1個に変換される。
              > 2. 文字の始まりとして解釈されたのち、除去される。
              > 
              しかし、どの様な形でパラメータに値を渡してやるのが良いのかが分かりません。
              宜しくお願い致します。

              RE:CLからSBMJOB実行時のパラメータ AAA さん [ 9月15日(木) 10時54分 ]

                パラメーターは、わたさない。
                これって、これだけで10年飯が食える内容だから、
                SBMJOBのマニュアルを精読する。

              RE:CLからSBMJOB実行時のパラメータ どん さん [ 9月16日(金) 15時35分 ]

                解決しました。
                ありがとうございました。

                > AAAさん、ご回答ありがとうございます。
                > 引用符の解釈、その様に処理されていたとは知りませんでした。
                > 
                > > 引用符の解釈が、2回あるからです。
                > > 1. 2個の引用符が1個に変換される。
                > > 2. 文字の始まりとして解釈されたのち、除去される。
                > > 
                > しかし、どの様な形でパラメータに値を渡してやるのが良いのかが分かりません。
                > 宜しくお願い致します。

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