[NEWSboard IBMi Forum]
Seite 1 von 2 1 2 Letzte
  1. #1
    Registriert seit
    Sep 2015
    Beiträge
    18

    Logging beim CRTBNDRPG

    Hallo!

    Nachdem wir viele Entwickler im Hause haben, wurde die Idee geboren, daß bei jedem Compilieren eines Programmes (ILERPG bzw. CLLE) oder einer Tabelle (CRTPF, CRTLF) ein Log geschrieben wird.
    Ein anderer Ansatz wäre zu gucken, welches Objekt wann von wem in einer Entwicklungs-Bibliothek erstellt wurde, allerdings braucht ein DSPOBJD in ein Outfile über eine grosse Bibliothek ewig lange.

    Habe bis jetzt noch keine Möglichkeit gefunden auf irgendeiner Art mich in die Compilierungsbefehle zu hängen - vielleicht ist das aber auch ein falscher Einsatz.

    Hat jemand vielleicht eine andere Idee?

  2. #2
    Registriert seit
    Mar 2002
    Beiträge
    5.287
    ... es wäre wohl hilfreich, wenn Du erst das Problem definierst, welches ihr lösen wollt, bevor Du darüber nachdenkst/nachfragst, welche Lösung was taugt...

    D*B
    AS400 Freeware
    http://www.bender-dv.de
    Mit embedded SQL in RPG auf Datenbanken von ADABAS bis XBASE zugreifen
    http://sourceforge.net/projects/appserver4rpg/

  3. #3
    Registriert seit
    Dec 2014
    Beiträge
    310
    Eine Möglichkeit (von mehreren) wäre zB das Ganze über das Auditjournal zu machen.

  4. #4
    Registriert seit
    Nov 2003
    Beiträge
    2.307
    Zitat Zitat von rischer Beitrag anzeigen
    ... allerdings braucht ein DSPOBJD in ein Outfile über eine grosse Bibliothek ewig lange.
    Aber nur beim ersten Mal nach langer Zeit ...

  5. #5
    Registriert seit
    May 2002
    Beiträge
    1.121
    Ich denke API ist schneller wie DSPOBJD.

    QUSLOBJ müsste es glaube sein.

    Gruß
    Ronald

  6. #6
    Registriert seit
    May 2002
    Beiträge
    1.121
    Wenn ich mich nicht irre, dann hatte ich das mal mit foglenden Programm umgesetzt..

    DDS
    PHP-Code:
          *  SatzFormat                                                             
                    R GROBJDP1                                                      
          
    *  Felder                                                                 
                      OBJNAME       10          TEXT
    ('Objekt Name                 ')
                      
    OBJLIB        10          TEXT('Objekt Lib                  ')
                      
    OBJTYPE       10          TEXT('Objekt Type                 ')
                      
    OBJTYPE1      10          TEXT('Objekt Type erweitert       ')
                      
    OBJTEXT       50          TEXT('Beschreibung                ')
                      
    OBJEIGNER     10          TEXT('ObjektEigner                ')
                      
    OBJDOMAIN      2          TEXT('*U = User  *S = System      ')
                      
    CRTDATE        8S 0       TEXT('Erstellt Datum              ')
                      
    CRTTIME        6S 0       TEXT('Erstellt Zeit               ')
                      
    CHGDATE        8S 0       TEXT('Geändert Datum              ')
                      
    CHGTIME        6S 0       TEXT('Geändert Zeit               ')
                      
    SRCFILE       10          TEXT('Source File                 ')
                      
    SRCLIB        10          TEXT('Source Lib                  ')
                      
    SRCMBR        10          TEXT('Source Menber               ')
                      
    SRCUPDT       13          TEXT('Source File Update          ')
                      
    CRTUSER       10          TEXT('Erstellt von                ')
                      
    CRTSYSTEM      8          TEXT('Erstellt System             ')
                      
    SYSLEVEL       9          TEXT('System Version              ')
                      
    USEDATE        8S 0       TEXT('Last Use Datum              ')
                      
    USETIME        6S 0       TEXT('Last Use Time               ')
                      
    USEDAYS        6S 0       TEXT('Days used                   ')
                      
    CURRCD        10S 0       TEXT('Anzahl Sätze                ')
                      
    DELRCD        10S 0       TEXT('Gelöschte Sätze             ')
                      
    FILESIZE      10S 0       TEXT('File Größe                  '
    RPG
    PHP-Code:
     * ************************************************************************    
     * 
    Programm erstellen mit:                                                     
     *        
    CRTRPGMOD MODULE(MyLib/DSPOBJLSTSRCFILE(MyLib/QRPGLESRC)      
     *        
    CRTPGM PGM(MyLib/DSPOBJLSTBNDSRVPGM(MyLib/#USRSPAPI)          
     
    * ************************************************************************    
    h bnddir('QC2LE')                                                 
                                                                      
    fgrobjdp   uf a e             disk                                
                                                                      
    D
    UserSpace für Obj-Info's                                       
    D UserOK          S              1A                               
    D UserSpace       S             20A   INZ('
    QUSLOBJ   QTEMP     ') 
    D UsrSpcExtA      S             10A   INZ('
    PROD')                 
    D UsrSpcText      S             50A   INZ('
    Objekt Infos     ')    
    D LstFormat       S              8A   INZ('
    OBJL0700')             
    D Obj_Lib         s             20A                               
    D ObjType         s             10A   Inz('
    *ALL')                 
    D I_O_Err         s               *                               
    D                                                                 
    D* UserSpace für ILLE-Info'
    s                                      
    D UserOK1         S              1A                               
    D UserSpace1      S             20A   INZ
    ('QBNLPGMI  QTEMP     '
    D UsrSpcExtA1     S             10A   INZ('PROD')                 
    D UsrSpcText1     S             50A   INZ('ILLE Infos')           
    D LstFormat1      S              8A   INZ('PGML0100')  
    D                                                      
    D
    Für File-Infos                                      
    D Mbrd0200_Size   S              4b 0                  
    D LstFormat2      S              8A   INZ
    ('MBRD0200')  
    d Obj_Lib2        s             20a                    
    D MbrName         S             10A   inz
    ('*FIRST    ')
    D OvrProc         S              1A   inz('0')         
                                                           
                                                           
    D NbrEntries      s             10U 0                  
    D Count           s             10U 0                  
    D                                                      
    D InputFormat     s             10a   Inz
    ('*DTS'  )    
    D OutPutFormat    s             10a   Inz('*YYMD' )    
    d Obj_Lib1        s             20a                    
    d Bibliothek      s             10a                    
                                                           
    D MBRD0200        ds                                   
    D  CurRecNbr            141    144B 0
    D  DelRecNbr            145    148B 0
    D  DataSize             149    152B 0
    d  nix                  261    266   
    D                                    
    D PGML0100        ds                 
    d  xSourceFile           41     50   
    d  xSourceLib            51     60   
    d  xSourceMember         61     70   
    d  xSourceFileUp         94    106   
    d                                    
    D OBJL0700        ds                 
    D  ObjektName             1     10   
    D  ObjektLib             11     20   
    D  ObjektType            21     30   
    D  ObjektTyp1            32     41   
    D  ObjektText            42     91   
    D  ObjektEigner         113    122   
    D  ObjektDomain         123    124   
    D  Erstellt             125    132                          
    d  Geaendert            133    140                          
    d  SourceFile           173    182                          
    d  SourceLib            183    192                          
    d  SourceMember         193    202                          
    d  SourceFileUp         203    215                          
    d  CreateUser           216    225                          
    d  CreateSystem         226    233                          
    d  SystemLevel          234    242                          
    d  LastUse              533    540                          
    d  UsedDays             549    552b 0                       
    d                                                           
                                                                
     
    Prototype Lists                                          
    D
    /COPY QRPGLESRC,FUSPCP                                
                                                                
    D System          pr            10i 0 extproc
    ('system')     
    D                                 *   value options(*string)
    D                                                           
    D Get_Date        pr             8s 0                                                
    D                                8                                         Time
    -Stamp
    D Get_Time        pr             6s 0                                                
    D                                8                                         Time
    -Stamp
                                                                                         
    c                   
    Eval      UserOK   =   CrtUsrSpc(UserSpace       :               
    c                                                    UsrSpcExtA      :               
    c                                                    UsrSpcText      )               
    c                   Eval      UserOK1  =   CrtUsrSpc(UserSpace1      :               
    c                                                    UsrSpcExtA1     :               
    c                                                    UsrSpcText1     )               
    c                                                                                    
    c                   
    Eval      Obj_Lib '*ALL      ' +                               
    c                                       Bibliothek                                   
    c                   Call      
    'QUSLOBJ'                                              
    c                   Parm                    UserSpace                                
    c                   Parm                    LstFormat                                
    c                   Parm                    Obj_Lib                                  
    c                   Parm                    ObjType                                  
    c                   Parm                    I_O_Err                    
    c                                                                      
    c                                                                      
    c                   
    Eval      NbrEntries GetNumEnt(UserSpace)        
    c                                                                      
    c                   
    For       Count  =  1 to NbrEntries                
    c                   
    Eval      OBJL0700 =  GetSpcEnt(UserSpace Count
    c                                                                      
    c                   
    If        ObjektType '*PGM' and                  
    c                                   (ObjektTyp1 'RPGLE' or           
    c                                    ObjektTyp1 'CLLE'  or           
    c                                    ObjektTyp1 'CLE')               
    c                   ExSr      Get_ILLE_Src                             
    c                   
    EndIf                                              
                                                                           
    c                   ExSr      Ausgabe                                  
    c                   
    EndFor                                             
    c                                                                      
    c                   
    Eval      UserOK   =   DltUsrSpc(UserSpace)        
    c                   Eval      UserOK1  =   DltUsrSpc(UserSpace1)  
    c                                                                 
    c                   
    Eval      *InLr    =   *On                    
                                                                      
    c     Get_File_Info BegSr                                         
    c
    *                                                                
    c                   Eval      Mbrd0200_Size   = %SizeMBRD0200  )
    c                   Eval      Obj_Lib2 =   ObjektName ObjektLib 
    c                   Call  
    (e'QUSRMBRD'                          
    c                   Parm                    MBRD0200              
    c                   Parm                    Mbrd0200_Size         
    c                   Parm                    LstFormat2            
    c                   Parm                    Obj_Lib2              
    c                   Parm                    MbrName               
    c                   Parm                    OvrProc               
    c                   Parm                    I_O_Err               
    c                                                                 
    c                   
    If        not %Error                          
    c                   
    Eval      CurRcd        =  CurRecNbr          
    c                   
    Eval      DelRcd        =  DelRecNbr            
    c                   
    Eval      FileSize      =  DataSize             
    c                   
    EndIf                                           
    c*                                                                  
    c                   EndSr                                           
                                                                        
    c     Get_ILLE_Src  BegSr                                           
    c
    *                                                                  
    c                   Eval      Obj_Lib1 ObjektName ObjektLib     
    c                   Call  
    (e'QBNLPGMI'                            
    c                   Parm                    UserSpace1              
    c                   Parm                    LstFormat1              
    c                   Parm                    Obj_Lib1                
    c                   Parm                    I_O_Err                 
    c                                                                   
    c                   
    If        not %Error                            
    c                   
    Eval      PGML0100 =  GetSpcEnt(UserSpace1 1
    c                   Eval      SourceFile    =  xSourceFile          
    c                   
    Eval      SourceLib     =  xSourceLib           
    c                   
    Eval      SourceMember  =  xSourceMember    
    c                   
    Eval      SourceFileUp  =  xSourceFileUp    
    c                   
    EndIf                                       
    c*                                                              
    c                   EndSr                                       
                                                                    
    c     Ausgabe       BegSr                                       
    c
    *                                                              
    c                   Clear                   grobjdp1            
    c                                                               
    c                   
    Eval      objname    =  ObjektName          
    c                   
    Eval      objlib     =  ObjektLib           
    c                   
    Eval      objtype    =  ObjektType          
    c                   
    Eval      objtype1   =  ObjektTyp1          
    c                   
    Eval      objtext    =  ObjektText          
    c                   
    Eval      objeigner  =  ObjektEigner        
    c                   
    Eval      objdomain  =  ObjektDomain        
    c                   
    Eval      crtdate    =  Get_Date(Erstellt 
    c                   Eval      crttime    =  Get_Time(Erstellt 
    c                   Eval      chgdate    =  Get_Date(Geaendert)
    c                   Eval      chgtime    =  Get_Time(Geaendert)
    c                   Eval      srcfile    =  SourceFile         
    c                   
    Eval      srclib     =  SourceLib          
    c                   
    Eval      srcmbr     =  SourceMember       
    c                   
    Eval      srcupdt    =  SourceFileUp       
    c                   
    Eval      crtuser    =  CreateUser         
    c                   
    Eval      crtsystem  =  CreateSystem       
    c                   
    Eval      syslevel   =  SystemLevel        
    c                   
    If        UsedDays   >  0                  
    c                   
    Eval      usedate    =  Get_Date(LastUse  )
    c                   Eval      usetime    =  Get_Time(LastUse  )
    c                   EndIf                                      
    c                   Eval      usedays    =  UsedDays           
    c                   
    If        ObjektType '*FILE' and         
    c                                    (ObjektTyp1 'PF'  or    
    c                                     ObjektTyp1 'LF')       
    c                   ExSr      Get_File_Info                    
    c                   
    EndIf                                      
    c                                                     
    c                   Write     grobjdp1                
    c
    *                                                    
    c                   EndSr                             
                                                          
    c     
    *InzSr        BegSr                             
    c
    *                                                    
    c     *Entry        Plist                             
    c                   Parm                    Bibliothek
    c
    *                                                    
    c                   EndSr                             
                                                          
    P Get_Date        b                                   
    d                 pi             8s 0                 
    d  Input_Time_S                  8                    
    d                                                     
    d                 ds                                  
    d Datum_Zeit                    17a                   
    d  Datum                  1      8s 0                 
    d  Uhr                    9     14s 0                   
                                                            
    C                   Call 
    (e)  'QWCCVTDT'                
    C                   Parm                    InputFormat 
    C                   Parm                    Input_Time_S
    C                   Parm                    OutputFormat
    c                   Parm                    Datum_Zeit  
    c                   Parm                    I_O_Err     
    c                                                       
    c                   
    If        not %Error                
    c                   
    Return    Datum                     
    c                   
    Else                                
    c                   Return    0                         
    c                   
    EndIf                               
    c                                                       
                                                            
    p Get_Date        e                                     
                                                            
    P Get_Time        b                                     
    d                 pi             6s 0                   
    d  Input_Time_S                  8                      
    d                                                       
    d                 ds                                    
    d Datum_Zeit                    17a                     
    d  Datum                  1      8s 0                   
    d  Uhr                    9     14s 0                   
                                                            
    C                   Call 
    (e)  'QWCCVTDT'                
    C                   Parm                    InputFormat 
    C                   Parm                    Input_Time_S
    C                   Parm                    OutputFormat
    c                   Parm                    Datum_Zeit  
    c                   Parm                    I_O_Err     
    c                                                       
    c                   
    If        not %Error                
    c                   
    Return    Uhr                       
    c                   
    Else                                
    c                   Return    0                         
    c                   
    EndIf  
    c                          
                               
    p Get_Time        e 
    CMD
    PHP-Code:
     cmd 'Sammeln Objekt-Informationen'                     
                                                            
                 
    parm bibi                                
                      
    type(*name)                         + 
                      
    dft(*USRLIBL)                       + 
                      
    spcval((*ALLUSR) (*USRLIBL) (*LIBL)) +
                      
    min(0)                              + 
                      
    max(3)                              + 
                      
    prompt('Bibliothek'
    Programm dürfe so ca. 10-12 Jahr alt sein.
    Einfachmal testen und anpassen.

    Gruß
    Ronald

    Nachrag:
    #USRSPAPI
    PHP-Code:
     * ************************************************************************ 
     * 
    Service PGM erstellen mit:                                             
     *        
    CRTRPGMOD MODULE(MyLib/#USRSPAPI) SRCFILE(MyLib/QRPGLESRC)
     
    *        CRTSRVPGM SRVPGM(MyLib/#USRSPAPI) EXPORT(*ALL)                
     
    * ************************************************************************ 
     *                                                                          
     ************************************************************************** 
     *                                                                          
     *     
    Program NameFunctUsp                                               
     
    *    Program TitleUser Space Function Procedures                         
     
    *           Author:                                                        
     *      
    Origin Date:  1/23/1998                                             
     
    *        Revisions:                                                        
     *                                                                          
     ************************************************************************** 
    H NOMAIN                                                                    
                                                                                
     
    Prototype Lists                                                          
    D
    /COPY QRPGLESRC,FUSPCp 
                                                                               
     
    Generic Error Structure                                                 
    D
    /COPY dipsrvpgm/QRPGLESRC,QUSEC                                           
     
    User Space Generic Structure                                            
    D
    /COPY dipsrvpgm/QRPGLESRC,QUSGEN                                          
                                                                               
                                                                               
    D DS_Error        DS                                                       
    D Bytpv                   1      4b 0 inz
    (100)                             
    D Bytav                   5      8b 0 inz(0)                               
    D MSgid                   9     15                                         
    D Resvd                  16     16                                         
    D Exdta                  17    256                                         
    D Exdta52                17     67                                         
                                                                               
     
    **************************************************************************
     *                                                                         
     *  
    Procedure Name:  CrtUsrSpc                                             
     
    *                                                                         
     **************************************************************************
    P CrtUsrSpc       B                   EXPORT                               
    D CrtUsrSpc       PI             1A                                        
    D  UsrSpcName                   20A   VALUE                                
    D  UsrSpcExtA                   10A   VALUE                                
    D  UsrSpcText                   50A   VALUE                                
                                                                               
                                                                               
     
    Local Variables                                                         
                                                                               
     
    User Space API Fields                                                   
    D SpaceName       S             20A                                        
    D SpaceSize       S              9B 0 INZ
    (8388608)                         
    D SpaceInit       S              1A   INZ(x'00')                           
    D SpaceExtA       S             10A                                        
    D SpaceAut        S             10A   INZ
    ('*ALL')                          
    D SpaceText       S             50A                                        
    D SpaceRepl       S             10A   INZ
    ('*YES')                          
    D SpaceDom        S             10A   INZ('*USER')                         
                                                         
     *   
    Set error code structure to use basic feedback  
    C
    *****              EVAL      QUSBPRV 16           
                                                         
     
    Set up imported variables                         
    C                   
    EVAL      SpaceName UsrSpcName 
    C                   
    EVAL      SpaceExtA UsrSpcExtA 
    C                   
    EVAL      SpaceText UsrSpcText 
                                                         
    C                   CALL      
    'QUSCRTUS'             
    C                   PARM                    SpaceName
    C                   PARM                    SpaceExtA
    C                   PARM                    SpaceSize
    C                   PARM                    SpaceInit
    C                   PARM                    SpaceAut 
    C                   PARM                    SpaceText
    C                   PARM                    SpaceRepl
    C                   PARM                    DS_Error 
    C                   PARM                    SpaceDom 
                                                                               
    C                   SELECT                                                 
    C                   WHEN      Bytav 
    0                                    
    C                   
    RETURN    'Y'                                          
    C                   WHEN      Bytav <> 0                                   
    C     Bytav         DSPLY     
    'OS400'                                      
    C     MSgid         DSPLY     'OS400'                                      
    C     Exdta52       DSPLY     'OS400'                                      
    C                   RETURN    'N'                                          
    C                   ENDSL                                                  
                                                                               
    P CrtUsrSpc       E                                                        
                                                                               
     
    **************************************************************************
     *                                                                         
     *  
    Procedure Name:  GetUsrSpcP                                            
     
    *                                                                         
     **************************************************************************
    P GetUsrSpcP      B                   EXPORT                               
    D GetUsrSpcP      PI              
    *                    
    D  UsrSpcName                   20A   VALUE            
                                                           
    D SpaceName       S             20A                    
    D SpacePoint      S               
    *                    
                                                           
     *   
    Set error code structure to use basic feedback    
    C                   
    EVAL      QUSBPRV 16             
                                                           
     
    Set up imported variables                           
    C                   
    EVAL      SpaceName UsrSpcName   
                                                           
     
    Get the pointer for the user space                  
    C                   CALL      
    'QUSPTRUS'               
    C                   PARM                    SpaceName  
    C                   PARM                    SpacePoint 
    C                   PARM                    QUSEC      
                                                           
    C                   
    RETURN                  SpacePoint 
                                                                                
    P GetUsrSpcP      E                                                         
                                                                                
     
    ************************************************************************** 
     *                                                                          
     *  
    Procedure Name:  GetNumEnt                                              
     
    *                                                                          
     ************************************************************************** 
    P GetNumEnt       B                   EXPORT                                
    D GetNumEnt       PI             9B 0                                       
    D  UsrSpcName                   20A   VALUE                                 
                                                                                
     
    Local Variables                                                          
    D UsrSpcPntr      S               
    *                                         
    D BigField        S          32767A   BASED(UsrSpcPntr)                     
                                                                                
     * 
    Get the pointer for the user space                                       
    C                   
    EVAL      UsrSpcPntr GetUsrSpcP(UsrSpcName)           
                                                                                
     * 
    Move the based on pointer to                                            
    C                   MOVEL     BigField      QUSH0100                       
                                                                               
     
    * Return number of list entries                                           
    C                   
    RETURN    QUSNBRLE                                     
                                                                               
    P GetNumEnt       E                                                        
                                                                               
     
    **************************************************************************
     *                                                                         
     *  
    Procedure Name:  GetSpcEnt                                             
     
    *                                                                         
     **************************************************************************
    P GetSpcEnt       B                   EXPORT                               
    D GetSpcEnt       PI         32767A                                        
    D  UsrSpcName                   20A   VALUE                                
    D  EntNumber                     9B 0 VALUE                                
                                                                               
     
    Local Variables                                                         
    D UsrSpcPntr      S               
    *                                 
    D ListPointr      S               *                                 
    D BigField        S          32767A   BASED(ListPointr)             
    D BigFldOut       S          32767A                                 
                                                                        
     
    Get the pointer for the user space                               
    C                   
    EVAL      UsrSpcPntr GetUsrSpcP(UsrSpcName)   
                                                                        
     * 
    Move the based on pointer to get header information              
    C                   
    EVAL      ListPointr UsrSpcPntr               
    C                   MOVEL     BigField      QUSH0100                
                                                                        
     
    Check to see if  entry requested is <= user space number entries 
     
    *   If not, return a blank field                                   
    C                   
    IF        EntNumber QUSNBRLE                  
    C                   
    EVAL      BigFldOut = *BLANKS                   
    C                   
    RETURN    BigFldOut                             
    C                   
    ENDIF                                           
                                                                        
     * Return 
    specific list entry                                              
    C                   
    EVAL      EntNumber EntNumber 1                    
    C                   
    EVAL      ListPointr ListPointr QUSOLD +           
    C                                        (QUSSEE EntNumber)              
    C                   EVAL      BigFldOut = %SUBST(BigField:1:QUSSEE)        
                                                                               
    C                   RETURN    BigFldOut                                    
                                                                               
    P GetSpcEnt       E                                                        
     
    **************************************************************************
     *                                                                         
     *  
    Procedure Name:  DltUsrSpc                                             
     
    *                                                                         
     **************************************************************************
    P DltUsrSpc       B                   EXPORT                               
    D DltUsrSpc       PI             1A                                        
    D  UsrSpcName                   20A   VALUE                                
                                                                               
     
    Local Variables                                    
                                                          
     
    User Space API Fields                              
    D SpaceName       S             20A                   
                                                          
     
    *   Set error code structure to use basic feedback   
    C                   
    EVAL      QUSBPRV 16            
                                                          
     
    Set up imported variables                          
    C                   
    EVAL      SpaceName UsrSpcName  
                                                          
    C                   CALL      
    'QUSDLTUS'              
    C                   PARM                    SpaceName 
    C                   PARM                    QUSEC     
                                                          
    C                   SELECT                            
    C                   WHEN      QUSBAVL 
    0             
    C                   
    RETURN    'Y'                     
    C                   WHEN      QUSBAVL <> 0            
    C                   
    RETURN    'N'                        
    C                   ENDSL                                
                                                             
    P DltUsrSpc       E 

  7. #7
    Registriert seit
    Feb 2001
    Beiträge
    20.241
    Was glaubst du wohl, wie DSPOBJD an seine Daten kommt?
    Das API von dir verwendet dürfte da nicht so viel schneller sein.

    Die Alternative wäre eher, die CRT-Befehle für Public/PGMR zu sperren und z.B. D*B's Compiler-Aufrufe unter Owner laufen zu lassen.
    a) flexiblere Erstellmöglichkeiten
    b) Anpassbar bzgl. Logging-Funktionen
    c) APP-User-Integration durch Ersteller quasi automatisch
    Ggf. kann man ähnliches auch vom RDi aus verwenden.
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  8. #8
    Registriert seit
    Aug 2014
    Beiträge
    179
    Es geht auch mit SQL

    SELECT * FROM TABLE (QSYS2.OBJECT_STATISTICS('MYLIB','*ALL') ) AS X

    Quelle: https://www.ibm.com/developerworks/c...ase%20of%20use

    Herzliche Grüße
    Rainer

  9. #9
    Registriert seit
    May 2002
    Beiträge
    1.121
    Naja,
    ich hatte da noch in Erinnerung, das die eigene Lösung über API schneller war....
    ... kann mich aber auch täuschen. Aber einen Grund wir es geha haben, das ich mir die Arbeit gemacht habe...

    Gruß
    Ronald

  10. #10
    Registriert seit
    Feb 2001
    Beiträge
    20.241
    Meisten liegt es an den Selektionsmöglichkeiten, dass man API's verwendet.
    Zusätzlich braucht man keine Datei und kann in RPGLE direkt damit arbeiten.
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  11. #11
    Registriert seit
    Jun 2001
    Beiträge
    1.975
    wir wandeln, wie viele andere auch, nicht mit 14/15/26 ... sondern mit einem PDM Kürzel.
    Das Pgm erkennt was gewandelt werden soll und mach es, punkt.
    Bei uns werden dabei u.a. History Einträge in ein PF Protokolliert: Wer hat wann, warum, was, ... gewandelt.
    Da würde ich ansetzen.

    Robi
    Das Notwendige steht über dem technisch machbaren.
    (klingt komisch, funktioniert aber!)

  12. #12
    Registriert seit
    Aug 2003
    Beiträge
    1.508
    Wir wandeln die Sourcen auch mit einem selbst gestrickten Tool um.
    Für die Historie jedoch verwenden wir ein Versionsverwaltungstool wie SVN, GIT oder Merqurial.
    Dies ist auch gleich kombinierbar mit anderen Plattformen und Sprachen .Net, Java, PHP, (ja sogar Android), usw.
    Und wenn man irgendwann einmal auch noch etwas mehr will kann es mit ein paar Klicks z.B. in ein Ticket- oder Projektmanagement Tool integrieren ... und noch vieles mehr.

    lg Andreas

Similar Threads

  1. Logging von FTP Überträgen
    By MGJ79 in forum NEWSboard Programmierung
    Antworten: 11
    Letzter Beitrag: 12-11-14, 11:26
  2. Fehler beim GET im FTP
    By malzusrex in forum IBM i Hauptforum
    Antworten: 1
    Letzter Beitrag: 23-04-03, 17:15
  3. CRTBNDRPG ??
    By Gimli in forum IBM i Hauptforum
    Antworten: 3
    Letzter Beitrag: 04-04-03, 12:15
  4. SMTP-Mailserver auf iSeries/400 - Logging?
    By sho1 in forum IBM i Hauptforum
    Antworten: 2
    Letzter Beitrag: 31-01-02, 15:08
  5. Probleme beim Hochfahren !!!
    By Markus in forum IBM i Hauptforum
    Antworten: 3
    Letzter Beitrag: 31-01-01, 13:51

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • You may not post attachments
  • You may not edit your posts
  •