Re: FTPAPI

Marco Facchinetti <marco.facchinetti-kthxv0ud/[email protected]>
Newsgroups gmane.comp.lang.as400.rpg
Message-ID <CAMsgu4oi5YeFvXzKfP0UoKYNpQBPfwWshNOxRmTZ+k9v2NMUQw@mail.gmail.com>
Hi Greg, store a timestamp before FTPAPI invocation and when is done store
a new one.

Dcl-s NulInd               int(5) inz(0) dim(5);
Dcl-s i                    int(10);
Dcl-s l                    int(10);
Dcl-s nFileOut             varchar(200) inz('');
Dcl-s LineOut              varchar(2000);
Dcl-s TsBegin              timestamp;
Dcl-s TsEnd                timestamp;

Dcl-Ds wSql               qualified;
  Ts                       timestamp;
  Txt                      varchar(1024);
  JobName                  varchar(28);
End-Ds;

EXEC SQL SET OPTION COMMIT = *NONE;

TsEnd = %timestamp();
TsBegin = TsEnd - %minutes(5);

exec SQL DECLARE C1 CURSOR FOR
         SELECT MESSAGE_TIMESTAMP, MESSAGE_TEXT , QUALIFIED_JOB_NAME
         FROM TABLE (QSYS2.JOBLOG_INFO('*'))
         WHERE MESSAGE_TEXT IS NOT NULL
           AND MESSAGE_TIMESTAMP BETWEEN :TsBegin AND :TsEnd;
exec sql Open C1;
for i = 1 to 100000;
  exec sql fetch C1 into :wSql:NulInd;
  if sqlcod <> 0;
    leave;
  EndIf;
  if nFileOut = '';
    wSql.JobName = %scanrpl('/':'_':wSql.JobName);
    nFileOut = '/tmp/' + wSql.JobName + %char(%timestamp()) + '.log';
  EndIf;
  LineOut = %char(wSql.Ts) + ' - ' + wSql.Txt;
  exec sql CALL QSYS2.IFS_WRITE_UTF8(PATH_NAME => :nFileOut,
                                     LINE => :LineOut,
                                     OVERWRITE => 'APPEND',
                                     END_OF_LINE => 'LF');

EndFor;

exec sql Close C1;

*inlr = *on;
Return;

HTH


--
Marco Facchinetti

Mr S.r.l.

Tel. 035 962885
Cel. 393 9620498

Skype: facchinettimarco


Il giorno mar 16 dic 2025 alle ore 20:07 Greg Wilburn <
gwilburn-kuYYJ3CQfvZxq3Q2jbZZw/[email protected]> ha scritto:

> And.. I'm not sure how to put the code below in an rpg program with "exec
> sql"
>
> The filename and path would always be variable.
>
>
> I'm not 100% sold on using the joblog - it's way to verbose for what I
> want.  I would like to just see the FTP commands and results (i.e. like you
> would see in an interactive session)
>
> -----Original Message-----
> From: RPG400-L <rpg400-l-bounces-+hD5IHI5Xscn3HwCXmMcX9BPR1lH4CV8@public.gmane.org> On Behalf Of Marco
> Facchinetti
> Sent: Tuesday, December 16, 2025 12:04 PM
> To: RPG programming on IBM i <[email protected]>
> Subject: Re: FTPAPI
>
> With Sql it's very easy:
>
> BEGIN
>     CALL QSYS2.IFS_WRITE(
>         PATH_NAME *=>* '/tmp/logsample',
>         LINE *=>* '',
>         FILE_CCSID *=>* *1200*,
>         OVERWRITE *=>* 'REPLACE',
>         END_OF_LINE *=>* 'NONE'
>     );
>     FOR SELECT (*CHAR*(MESSAGE_TIMESTAMP) || ' - ' || MESSAGE_TEXT) AS
>  LOGLINE
>         FROM TABLE (
>                 QSYS2.JOBLOG_INFO('216955/MYUSER/MYJOB')
>             )
>         DO
>             CALL QSYS2.IFS_WRITE(
>                 PATH_NAME *=>* '/tmp/logsample',
>                 FILE_CCSID *=>* *1200*,
>                 LINE *=>* LOGLINE,
>                 OVERWRITE *=>* 'APPEND',
>                 END_OF_LINE *=>* 'CRLF'
>             );
>     END FOR;
> END;
>
> HTH
> --
> Marco Facchinetti
>
> Mr S.r.l.
>
> Tel. 035 962885
> Cel. 393 9620498
>
> Skype: facchinettimarco
>
>
> Il giorno mar 16 dic 2025 alle ore 16:16 Greg Wilburn <
> gwilburn-kuYYJ3CQfvZxq3Q2jbZZw/[email protected]> ha scritto:
>
> > I use Scott's LIBFTP (FTPAPI) occasionally instead of an FTP Script when
> > exchanging data.
> >
> > I would like to have a simple "text" log on the IFS for each FTP session.
> > With a script, I override OUTPUT to a PF in QTEMP, then using CPYTOIMPF
> to
> > create the text file.
> > (As CYA, I typically have DIR or LS in the script before I get and remove
> > files)
> >
> > With FTPAPI, the logging can go to the joblog by enabling FTP Logging.
> >  So, I'm considering using CPYSPLF to send the entire joblog to the IFS.
> > Just wondering if anyone has done something similar?
> >
> > TIA,
> > Greg
> > [Logo]<
> https://protect.checkpoint.com/v2/r01/___https://www.totalbizfulfillment.com/___.YzJ1OnRvdGFsYml6ZnVsZmlsbG1lbnQxOmM6bzplYTE0YmZlMWIxMjFhNTMzMDhkYTQ0Y2Y2OTAzYzY2Mjo3OjFmMDQ6MzdjZWRjMjcxOTU1NmMyYWEyOTJhMjU0NTJlOTBiZTEyNjA1NGFiMTcyMGVlZDMzOWZjYjU2Y2UzZjY1YzVmYTpwOlQ6Rg>
>   Greg Wilburn
> > Director of IT
> > 301.895.3792 ext. 1231
> > 301.895.3895 direct
> > gwilburn-kuYYJ3CQfvZxq3Q2jbZZw/[email protected]<mailto:gwilburn-kuYYJ3CQfvZxq3Q2jbZZw/[email protected]
> >
> > 1 Corporate Dr
> > Grantsville, MD 21536
> >
> https://protect.checkpoint.com/v2/r01/___www.totalbizfulfillment.com___.YzJ1OnRvdGFsYml6ZnVsZmlsbG1lbnQxOmM6bzplYTE0YmZlMWIxMjFhNTMzMDhkYTQ0Y2Y2OTAzYzY2Mjo3OjE3MzA6Y2RjMjcwM2Q2NmRlYzFjZjE0MGY1NWQ1ZDM4NDZkZjM2NjVjM2NhN2M0MGI5MmQ2M2RlNTYwZjdiMDA3MWM2MDpwOlQ6Rg
> <
> https://protect.checkpoint.com/v2/r01/___http://www.totalbizfulfillment.com___.YzJ1OnRvdGFsYml6ZnVsZmlsbG1lbnQxOmM6bzplYTE0YmZlMWIxMjFhNTMzMDhkYTQ0Y2Y2OTAzYzY2Mjo3OmUxODY6NjgyMTU2Nzk0MTBiMzQ2ZDc1MWMwMGMzZGI3MjZiYzUzYWFkOWNlYTgwYzI3ZDQyMzRmMmZhYjE5NTk1YzA0YTpwOlQ6Rg
> >
> > --
> > This is the RPG programming on IBM i (RPG400-L) mailing list
> > To post a message email: [email protected]
> > To subscribe, unsubscribe, or change list options,
> > visit:
> https://protect.checkpoint.com/v2/r01/___https://lists.midrange.com/mailman/listinfo/rpg400-l___.YzJ1OnRvdGFsYml6ZnVsZmlsbG1lbnQxOmM6bzplYTE0YmZlMWIxMjFhNTMzMDhkYTQ0Y2Y2OTAzYzY2Mjo3OmY2YmU6NjdlMjI4ZDdkZjhiODI2YmZkYjIyYjkzOTc1Y2ZjMmM0NjUyMWFiOTMyNDU1NjJmMjRlODU1Y2I4MDk5MjE0OTpwOlQ6Rg
> > or email: RPG400-L-request-+hD5IHI5Xscn3HwCXmMcX9BPR1lH4CV8@public.gmane.org
> > Before posting, please take a moment to review the archives
> > at
> https://protect.checkpoint.com/v2/r01/___https://archive.midrange.com/rpg400-l___.YzJ1OnRvdGFsYml6ZnVsZmlsbG1lbnQxOmM6bzplYTE0YmZlMWIxMjFhNTMzMDhkYTQ0Y2Y2OTAzYzY2Mjo3OjFiN2I6MTZmNmM2YjUwMmI3NDFjMGIwMDYyZTJkNjJjY2ZhOTAwM2JmZGVjZTQwNTYzZTRiZjViZDU3MmEyYmU3YjJiMTpwOlQ6Rg
> .
> >
> > Please contact support-FMtJrHiV//lnDLsaKlm4mFaTQe2KTcn/@public.gmane.org for any subscription related
> > questions.
> >
> >
> --
> This is the RPG programming on IBM i (RPG400-L) mailing list
> To post a message email: [email protected]
> To subscribe, unsubscribe, or change list options,
> visit:
> https://protect.checkpoint.com/v2/r01/___https://lists.midrange.com/mailman/listinfo/rpg400-l___.YzJ1OnRvdGFsYml6ZnVsZmlsbG1lbnQxOmM6bzplYTE0YmZlMWIxMjFhNTMzMDhkYTQ0Y2Y2OTAzYzY2Mjo3OmRiNmQ6MWY0OWUzZjRkNzVkMjQxNWNmNWExZGYzY2E5MjhiMjQxMTIzNjE3ZDIwNmIyMDA3OWRiY2VkYTVhMTgyMDM0ODpwOlQ6Rg
> or email: RPG400-L-request-+hD5IHI5Xscn3HwCXmMcX9BPR1lH4CV8@public.gmane.org
> Before posting, please take a moment to review the archives
> at
> https://protect.checkpoint.com/v2/r01/___https://archive.midrange.com/rpg400-l___.YzJ1OnRvdGFsYml6ZnVsZmlsbG1lbnQxOmM6bzplYTE0YmZlMWIxMjFhNTMzMDhkYTQ0Y2Y2OTAzYzY2Mjo3OmVjNzE6YTk4MWYzYTI1NTllNGVlYjhlODBlMzIxMzZiOWQ0M2Y2Y2Y1ODVmZTZlMDUxZDdkYmM4MDU4ZTBhYzNiNzFhMTpwOlQ6Rg
> .
>
> Please contact support-FMtJrHiV//lnDLsaKlm4mFaTQe2KTcn/@public.gmane.org for any subscription related
> questions.
>
>
>
> Greg Wilburn
> Director of IT
> 301.895.3792 ext. 1231
> --
> This is the RPG programming on IBM i (RPG400-L) mailing list
> To post a message email: [email protected]
> To subscribe, unsubscribe, or change list options,
> visit: https://lists.midrange.com/mailman/listinfo/rpg400-l
> or email: RPG400-L-request-+hD5IHI5Xscn3HwCXmMcX9BPR1lH4CV8@public.gmane.org
> Before posting, please take a moment to review the archives
> at https://archive.midrange.com/rpg400-l.
>
> Please contact support-FMtJrHiV//lnDLsaKlm4mFaTQe2KTcn/@public.gmane.org for any subscription related
> questions.
>
>
-- 
This is the RPG programming on IBM i (RPG400-L) mailing list
To post a message email: [email protected]
To subscribe, unsubscribe, or change list options,
visit: https://lists.midrange.com/mailman/listinfo/rpg400-l
or email: RPG400-L-request-+hD5IHI5Xscn3HwCXmMcX9BPR1lH4CV8@public.gmane.org
Before posting, please take a moment to review the archives
at https://archive.midrange.com/rpg400-l.

Please contact support-FMtJrHiV//lnDLsaKlm4mFaTQe2KTcn/@public.gmane.org for any subscription related questions.
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.