新規投稿 記事一覧 ホーム
●ご利用方法,ご利用に際しての規約はこちらをお読みください。
こちらからの投稿は、先頭に表示されているコメントへの返信になります。
FTP転送処理について どん さん [ 10月24日(金) 11時31分 ]

    以下の処理でAS400上のファイルをPCサーバーへ転送処理を行っております。
    処理WSID毎にFTPCMDXXXを作成しています。

    現在だと実行するWSIDが増えるたびにCLに修正を加え、
    FTPCMDソースを作成する必要があります。

    記述を物理等でもって処理できるのであれば、
    メンテナンスが非常に楽になると考えております。

    説明が拙く分かりにくいと思われますので、
    他に必要な内容がありましたら指摘下さい。

    宜しくお願い致します。

    TESTLB/QCLSRC SAMPLCL
    OVRDBF     FILE(INPUT) TOFILE(TESTLB/QFTPIN) +  
                 MBR(FTPCMDXXX) LVLCHK(*NO)           
    OVRDBF     FILE(OUTPUT) TOFILE(TESTLB/QFTPOUT) +
                 MBR('TT' *TCAT &WDATE) LVLCHK(*NO)   
    FTP        RMTSYS('XXX.XXX.XXX.XXX') 

    TESTLB/QFTPIN FTPCMDXXX
    XXXXXXXX XXXXXXXX                          
    CD XXXX                                 
    CD XXXX/XXXX                      
    LTYPE C 932                            
    PUT    QTEMP/TESTPF   TESTPF.CSV     
    QUIT                                                      

    RE:FTP転送処理について IKD さん [ 10月24日(金) 15時10分 ]

       ユーザー・スペースを作成してから、
      構成リストAPI : QDCLCFGD を使って、ユーザー・スペースを
      検索して、ご使用中のCLP を実行するようにすれば可能ですが
      すべての DEVD に Ftp送信してよいのかを、まず
      WRKDEVD *DSP で確認してください。

      RE:FTP転送処理について どん さん [ 10月24日(金) 16時39分 ]

        IKDさん
        ご返信ありがとうございます。

        勉強してから改めて質問します。

        >  ユーザー・スペースを作成してから、
        > 構成リストAPI : QDCLCFGD を使って、ユーザー・スペースを
        > 検索して、ご使用中のCLP を実行するようにすれば可能ですが
        > すべての DEVD に Ftp送信してよいのかを、まず
        > WRKDEVD *DSP で確認してください。

    RE:FTP転送処理について 伊集院博 さん [ 10月24日(金) 17時27分 ]

      何故WSID毎にFTP転送記述を持つ必要があるのか
      文面から読取れませんでしたが、
      FTP転送記述の内容を物理ファイルに持って、
      転送記述をメンバーに書出すプログラムを用意して、
      転送の度に毎回作成してあげたらどうでしょうか。
      (上記の場合ですとTESTLB/QFTPIN(FTPCMDXXX)のメンバーを
      物理ファイルを読込んで、作成してからFTP転送を行う感じです。)

      弊社でも定期的にPCサーバへあるファイルをFTP転送していますが
      転送先のファイル名に日付を変えて累積させている為、少々面倒ですが
      記載の様な事を行っております。
      的外れでしたらすみません。

      RE:FTP転送処理について どん さん [ 10月24日(金) 17時57分 ]

        伊集院博 さん
        ご返信ありがとうございます。

        印刷データをFTP転送しているのですが、
        WSID毎の作成する必要性は処理端末毎に印刷プリンタが違う為です。

        >転送記述をメンバーに書出すプログラムを用意して、
        >転送の度に毎回作成してあげたらどうでしょうか。
        >(上記の場合ですとTESTLB/QFTPIN(FTPCMDXXX)のメンバーを
        >物理ファイルを読込んで、作成してからFTP転送を行う感じです。)

        まさに上記のイメージです。
        物理ファイルに転送記述を持たせて、実行WSIDで検索をかけて処理をしたい。

        ただそのイメージを形にする為に調べてみてはしましたが。。。

        IKDさんからも返信をいただいたのですが、
        折角の回答を理解できずで。(まずはAPIというものを学習中)

        宜しくお願い致します。

        API使わなくてもできますよ 伊集院博 さん [ 10月24日(金) 19時20分 ]

          私もAPIのやり方は良く分かりません。
          弊社の場合、転送先のファイル名の一部を置換えるだけなので
          FTP転送記述のメンバーの一部をRPGにて書き換えて更新しています。
          何をやっているか解り難いかも知れませんが、
          弊社のソースを掲載します。参考になれば...

          AS/400の監査ログを定期的にPCサーバにFTP転送する為の転送記述です。
          H DATEDIT(*YMD/)                                                       
           *==============================================================*      
           *                     ファイル仕様                             *      
           *==============================================================*      
           * FTP転送記述テンプレート                                          
          FAUDFTP    UF   E             DISK    EXTFILE('MYLIB/QTXTSRC')         
          F                                     EXTMBR('AUDFTP')                 
          F                                     RENAME(QTXTSRC:AUDFTPR)          
          DSRCDTA           DS                                                   
          D  @REC                   1    108A                                    
          D  DATE1                 17     22A                                    
          D  DATE2                 33     38A                                    
           *==============================================================*      
           *#            メ イ ン 処 理                               *      
           *==============================================================*      
           *                                                                     
          C                   MOVE      *DATE         W@DATE            6 0      
          C                   DO        *HIVAL        I                 2 0      
          C                   READ      AUDFTPR                                90
          C   90              LEAVE                                              
          C                   SELECT                                             
          C                   WHEN      I >= 2  AND I <= 15                      
          C                   MOVE      W@DATE        DATE1                      
          C                   UPDATE    AUDFTPR                                  
          C                   WHEN       I >= 17 AND I <= 28                     
          C                   MOVE      W@DATE        DATE2                      
          C                   UPDATE    AUDFTPR                                  
          C                   ENDSL                                              
          C                   ENDDO                                              
           *                                                                     
          C                   SETON                                        LR    
          C                   RETURN                                             

          (説明)
          MYLIB/QTXTSRC(AUDFTP)のFTP転送記述のテンプレートとなるものを
          予め用意しています。
          メンバーを1レコードずつ読込み、2行目〜15行目と
          17行目〜28行目の転送記述のファイル名に日付を組み込んで
          更新しています。
          もっと簡単な方法があるかも知れませんが、
          私のレベルではこれが精一杯でした。

          RE:API使わなくてもできますよ どん さん [ 10月28日(火) 15時4分 ]

            お世話になっております。
            ご教授いただいた内容でご確認させていただきたいのですが

            > FAUDFTP    UF   E             DISK    EXTFILE('MYLIB/QTXTSRC')
            > F                               EXTMBR('AUDFTP')    
            > F                               RENAME(QTXTSRC:AUDFTPR)
            →MYLIB/QTXTSRC(AUDFTP)は転送記述のTEXTソースで、
            OBJを指定しているものではない。
            という理解で宜しいでしょうか?

            以下の様なレコードを持っていて、このRPGで修正するという事でしょうか?
            XXXXXXXX XXXXXXXX                          
            CD XXXX                                 
            CD XXXX/XXXX                      
            LTYPE C 932                            
            PUT    QTEMP/TESTPF   TESTPF.CSV     
            QUIT                               

            宜しくお願い致します。        

            RE:API使わなくてもできますよ 伊集院博 さん [ 10月28日(火) 16時39分 ]

              OKです。認識は間違っていないと思います。

              > FAUDFTP    UF   E             DISK    EXTFILE('MYLIB/QTXTSRC')
              > F                               EXTMBR('AUDFTP') 
              > F                               RENAME(QTXTSRC:AUDFTPR)
              上記は、TEXTソースで存在しているメンバー(ソース)を読込み、更新します。
              このRPGの上位にCLを用意して
              OVRDBF FILE(AUDFTP) TOFILE(MYLIB/QTXTSRC) MBR(AUDFTP)
              とするのと同じ意味です。
              ちなみに、ソースメンバーもAS/400の世界ではOBJ(オブジェクト)になります。

              解決:御礼 どん さん [ 10月31日(金) 13時56分 ]

                伊集院博 さん
                ご教授いただいた内容で解決できました。

                IKD さん
                APIにつきましても、今後学んで行きたいと思います。

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

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