|
Hi, The code that i have is this one: H BNDDIR('QC2LE') actgrp('QILE') DFTACTGRP(*NO) ** int sprintf( char *buffer, const char *format [, argument] ... ); D sprintf4 PR 10I 0 ExtProc('sprintf') D szRecvVar * VALUE Options(*STRING) D szFormat * VALUE Options(*STRING) D szData1 * VALUE OPTIONS(*STRING) D szData2 * VALUE OPTIONS(*STRING: *NOPASS) D szData3 * VALUE OPTIONS(*STRING: *NOPASS) D szData4 * VALUE OPTIONS(*STRING: *NOPASS) * D api_error S 21A ** Variáveis utilizadas na SndPgmMsg API D szMsgID S 7A Inz('CPF9898') D szMsgFile S 20A Inz('QCPFMSG QSYS' ) D szMsgText S 255A D nMsgLen S 10I 0 D szMsgType S 10A D szToPgmQ S 10A D nToPgmQ S 10I 0 D szMsgKey S 4A ** A pointer to the receiving buffer, used by sprintf D pBuffer S * D szBuffer S Like(szMsgText) ** Tells the APIs how long the buffers are that are being used. D nBufLen S 10I 0 ** The structure returned by the QusRMBRD API. D szMbrd0100 DS INZ D nBytesRtn 10I 0 D nBytesAval 10I 0 D szFileName 10A D szLibName 10A D szMbrName 10A D szFileAttr 10A D szSrcType 10A D dtCrtDate 13A D dtLstChg 13A D szMbrText 50A D bIsSource 1A * D RecCount 10I 0 D DltRecCnt 10I 0 D DataSpaceSz 10I 0 D AccpthSz 10I 0 D NbrBasedOnMbr 10I 0 * D pMbrText S * ** Source file name D szSrcFile S 10A D szSrcLib S 10A D szSrcMbr S 10A **---------------------------------------------------------------- ** Parâmetros de input da QUSRMBRD API **---------------------------------------------------------------- ** Formato a ser devolvido D szFmt S 8A Inz('MBRD0200') ** Nome do ficheiro e da biblioteca D szQualName S 20A ** Whether or not to ignore overrides (0=Ignore, 1 = Apply) D bOvr S 1A Inz('0') **---------------------------------------------------------------- ** Chamar este programa com 3 parâmetros: ** ** (Nome do ficheiro) (Nome da biblioteca) (Nome do Membro) **---------------------------------------------------------------- C *ENTRY PLIST C Parm szSrcFile C Parm szSrcLib C Parm szSrcMbr C if %Parms < 3 C Eval szMsgText = 'CE3-Invalid parameter list' C else **---------------------------------------------------------------- ** Faz o call ao QusRMBRD para obter os atributos dos membros **---------------------------------------------------------------- C Eval szQualName = szSrcFile + szSrcLib C Eval nBufLen = %size(szMbrD0100) **---------------------------------------------------------------- C Call(E) 'QUSRMBRD' C Parm szMbrD0100 C Parm nBufLen C Parm szFmt C Parm szQualName C Parm szSrcMbr C Parm bOvr **---------------------------------------------------------------- ** If RTFMBRD failed, we tell the FTP client that it failed. **---------------------------------------------------------------- C if %Error C Eval szMsgText = 'CE3-RTVMBRD Failed' ** Otherwise, just keep on going! C else C Eval szBuffer= *ALLX'00' C Eval pBuffer = %addr(szBuffer) C eval szMbrText = %TrimR(szMbrText)+X'00' C eval pMbrText = %addr(szMbrText) **---------------------------------------------------------------- ** Use the C runtime sprintf() to concatenate everything nicely **---------------------------------------------------------------- C CallP sprintf4(pBuffer : C 'CX3%s%s%s%s' : C szSrcType : C bIsSource : C dtLstChg : C pMbrText ) ** The formatted response text gets sent as msg data C Eval szMsgText = %str(pBuffer) C endif C endif ** Tell the API how long the message text (actually Msgdata) is. C Eval nMsgLen = %Len(%trimr(szMsgText)) **---------------------------------------------------------------- ** SndPgmMsg MSGID(CPF9898) MSGF(QSYS/QCPFMSG) TOPGMQ(*PRV) + ** MSGDTA(szMsgText) MSGTYPE(*ESCAPE) **---------------------------------------------------------------- C Call 'QMHSNDPM' C Parm 'CPF9898' szMsgID C Parm szMsgFile C Parm szMsgText C Parm nMsgLen C Parm '*ESCAPE' szMsgType C Parm '*PGMBDY' szToPgmQ C Parm 1 nToPgmQ C Parm szMsgKey C Parm api_error ** Note, we return here to improve performance for subsequent calls ** The program will end when the FTP server's job itself ends. ** If you are uncomfortable with this, uncomment the *INLR line: C**** MOVE *ON *INLR C return Please respond to RPG programming on the AS400 / iSeries <rpg400-l@xxxxxxxxxxxx> Sent by: rpg400-l-bounces@xxxxxxxxxxxx To: "'RPG programming on the AS400 / iSeries'" <rpg400-l@xxxxxxxxxxxx> cc: Subject: RE: QUSRMBRD API Luis what is the problem ? Is it that the program isn't working or are you asking how the member got to have a blank change date ? If you do a DSPFD FILE({lib}/{file}) TYPE(*MBRLIST) OUTPUT(*OUTFILE) does the member have a Last change date (MLCHGD)? If it doesn't then it could be that the file/member is very old and doesn't have one. Remember that attributes/features have been added at new releases of OS/400. I have created a working version based on your program and it appears to work ok. HTH Mike >Subject: QUSRMBRD API > >Can anyone help me with this ? > >Can anyoner tell me, why the "dtLstChg" information came with "blanks" in > the QUSRMBRD api ? -- ********************************************************************** The information transmitted is intended only for use by the addressee and may contain confidential and/or privileged material. Any review, re-transmission, dissemination or other use of it, or the taking of any action in reliance upon this information by persons and/or entities other than the intended recipient is prohibited. If you received this in error, please inform the sender and/or addressee immediately and delete the material. Thank you ********************************************************************** -- This is the RPG programming on the AS400 / iSeries (RPG400-L) mailing list To post a message email: RPG400-L@xxxxxxxxxxxx To subscribe, unsubscribe, or change list options, visit: http://lists.midrange.com/mailman/listinfo/rpg400-l or email: RPG400-L-request@xxxxxxxxxxxx Before posting, please take a moment to review the archives at http://archive.midrange.com/rpg400-l. Luis Martins Finibanco, S.A. Tel.: 21 0002331 - Fax: 21 3114509 http://www.finibanco.pt __________________________________________________ Esta mensagem e quaisquer ficheiros anexos são confidenciais, destinando-se ao uso exclusivo da pessoa e/ou entidade a que se dirigem. Caso não se lhe destine, ou não seja responsável pelo seu encaminhamento ao destinatário, informamos que a recebeu por engano. Qualquer utilização, distribuição, reencaminhamento ou outra forma de revelação a terceiros, impressão ou cópia são expressamente proibidos; sendo que agradecemos que destrua a mensagem de imediato, informando o seu emissor ou o Finibanco do sucedido. Não obstante o Finibanco utilizar software anti-vírus como precaução, não é possível garantir que a presente mensagem e eventuais ficheiros anexos não contêm vírus, pelo que não consideramos da responsabilidade desta instituição eventuais consequências inerentes. Alerta-se, ainda, que as mensagens transmitidas por este meio podem ser interceptadas, corrompidas, perdidas, destruídas ou entregues com atraso ao destinatário.
As an Amazon Associate we earn from qualifying purchases.
This mailing list archive is Copyright 1997-2025 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].
Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.