Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Discussion :

Mode Restreint via WRKJOBSCDE


Sujet :

AS/400

  1. #41
    Nouveau membre du Club
    Profil pro
    Inscrit en
    avril 2009
    Messages
    148
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : avril 2009
    Messages : 148
    Points : 39
    Points
    39
    Par défaut
    D'accord je vais faire ça avec le DSPLOG.

    En ce qui concerne le DSPTAP ? tu le fais manuellement à chaque fois ou tu l'automatise pour qu'il sorte sur une imprimante ou tu le génère en PDF ? Car actuellement je fais un DSPTAP (*OUTFILE) mais je ne le trouve pas terrible (moins parlant) celui la comparé au dsptap *PRINT.

  2. #42
    Nouveau membre du Club
    Profil pro
    Inscrit en
    avril 2009
    Messages
    148
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : avril 2009
    Messages : 148
    Points : 39
    Points
    39
    Par défaut
    J'aimerai bien pouvoir convertir le résultat cette commande : DSPTAP DEV(TAP01) DATA(*SAVRST) OUTPUT(*PRINT) en .CSV ou en .PDF vous pensez que c'est possible ? Car Si je fais un DSPTAP dans une OUTFILE j'arrive à me le générer en PDF par contre le contenu dans un outfile n'est pas très parlant.

    Si vous avez une idée pour que je puisse récupérer mon spoule généré pas le *PRINT je suis preneur.

  3. #43
    Membre confirmé
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    octobre 2006
    Messages
    485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Jura (Franche Comté)

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : Distribution

    Informations forums :
    Inscription : octobre 2006
    Messages : 485
    Points : 648
    Points
    648
    Par défaut
    Bonjour,

    Tu crées une session imprimante dont l'imprimante en sortie est un outil comme PDFCReator par exemple.
    Ou si tu utilises I Access Client Solutions et un mac, directement en PDF.

  4. #44
    Nouveau membre du Club
    Profil pro
    Inscrit en
    avril 2009
    Messages
    148
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : avril 2009
    Messages : 148
    Points : 39
    Points
    39
    Par défaut
    D'accord mais tu peux l'automatiser ca la création du spoule en PDF ou c'est obligatoirement manuel ?

  5. #45
    Membre confirmé
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    octobre 2006
    Messages
    485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Jura (Franche Comté)

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : Distribution

    Informations forums :
    Inscription : octobre 2006
    Messages : 485
    Points : 648
    Points
    648
    Par défaut
    Drôle de question.
    La sortie spoule se fait automatiquement sur une session, mais il faut que la session soit active pour que le document soit généré.

  6. #46
    Nouveau membre du Club
    Profil pro
    Inscrit en
    avril 2009
    Messages
    148
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : avril 2009
    Messages : 148
    Points : 39
    Points
    39
    Par défaut
    Non je me suis mal exprimé, désolé.

    C'est bon j'ai réussi, dans mon CL je génére le spoule que j'enregistre directement sur IFS en PDF sans passer par une imprimante en PDF.

  7. #47
    Nouveau membre du Club
    Profil pro
    Inscrit en
    avril 2009
    Messages
    148
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : avril 2009
    Messages : 148
    Points : 39
    Points
    39
    Par défaut
    Est-il possible via un CL de récupérer le contenu d'une DTAARA afin de le mettre dans un spoule ?

  8. #48
    Membre régulier
    Profil pro
    Inscrit en
    février 2009
    Messages
    92
    Détails du profil
    Informations personnelles :
    Localisation : France, Morbihan (Bretagne)

    Informations forums :
    Inscription : février 2009
    Messages : 92
    Points : 116
    Points
    116
    Par défaut
    DSPDTAARA avec option *PRINT
    Ou RTVDTAARA et transmission de la valeur dans ton programme d'impression

  9. #49
    Nouveau membre du Club
    Profil pro
    Inscrit en
    avril 2009
    Messages
    148
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : avril 2009
    Messages : 148
    Points : 39
    Points
    39
    Par défaut
    Je me permet de vous re-soliciter car j'aimerai savoir si c'est possible via un CL de lancer une tache présente dans le WRKJOBSCDE ?

    Car je vous explique ma problématique, lorsque j'effectue mes sauvegardes il faut avant que les sauvegardes commence que j'arrête certain programme qui tourne comme notre application de cluster entre nos machine. J'ai un CL pour arrêter et démarrer cette application de réplication mais actuellement le CL est lancé via un WRKJOBSCDE avec un compte spécifique à l'applicatif qui n'est pas QSECOFR hors mon CL de sauvegarde lui est lancé en tant que QSECOFR.

    J'aimerai donc garder la tache planifié pour l'arrêt de la réplication et d'y faire un appel via mon CL de sauvegarde, le but étant que mon CL de sauvegarde contrôle l'ensemble des tâches à effectuer.

  10. #50
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    septembre 2008
    Messages
    940
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : septembre 2008
    Messages : 940
    Points : 1 409
    Points
    1 409
    Par défaut
    Bonjour.
    Il n'y a pas de commande pour exécuter un travail du scheduler. Vous avez juste l'option 10 mais en interactif depuis la commande wrkjobscde.
    Par contre, j'avais trouvé il y a de cela un certain temps, un petit programme qui fait cela.
    Programme SBMJOBSCDE :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    PGM       (&RQSJOB &RQSPMT &RQSJOBD &RQSJOBQ &RQSOUTQ &RQSMSGQ &RQSUSER)
                                                                           
    DCL        &RQSJOB  *CHAR 10                                           
    DCL        &RQSPMT  *CHAR  4                                           
    DCL        &RQSJOBD *CHAR 20                                           
    DCL        &RQSJOBQ *CHAR 20                                           
    DCL        &RQSOUTQ *CHAR 20                                           
    DCL        &RQSMSGQ *CHAR 20                                           
    DCL        &RQSUSER *CHAR 10                                           
                                                                           
    /* ----------------------------------------------------------------- */
    /*        Soumission d'un travail configuré dans le scheduler        */
    /* ----------------------------------------------------------------- */
                                                                           
    DCL        &USNAME *CHAR 10 'SBMJOBSCDE'                               
    DCL        &USLIB  *CHAR 10 'QTEMP     '                               
    DCL        &USRSPC *CHAR 20                                            
    DCL        &USFMT  *CHAR  8 'SCDL0200'                                 
    DCL        &USENTR *DEC  10                                            
    DCL        &USOFFS *DEC  10                                            
    DCL        &USCONT *CHAR 16             
    DCL        &USSTRT *DEC   5             
    DCL        &USDATA *CHAR    X'1000'     
    DCL        &USSIZE *CHAR  4 X'00001000' 
                                            
    DCL        &ERROR  *CHAR 16 X'00000010' 
    DCL        &JOBTYP *CHAR  1             
                                            
    DCL        &SCCMD  *CHAR 512            
    DCL        &SCCMDL *DEC    3            
    DCL        &SCINFO *CHAR   1            
    DCL        &SCJOB  *CHAR  10            
    DCL        &SCJOBQ *CHAR  10            
    DCL        &SCJBQL *CHAR  10            
    DCL        &SCJOBD *CHAR  10            
    DCL        &SCJBDL *CHAR  10            
    DCL        &SCMSGQ *CHAR  10            
    DCL        &SCMSGL *CHAR  10            
    DCL        &SCUSER *CHAR  10            
                                            
    DCL        &CMD    *CHAR 4096           
                                                                   
    DCL        &ABEND  *LGL                                        
    DCL        &MSGID  *CHAR    7                                  
    DCL        &MSGDTA *CHAR  256                                  
    DCL        &MSGF   *CHAR   10                                  
    DCL        &MSGFL  *CHAR   10                                  
    DCL        &MSGKEY *CHAR    4                                  
    DCL        &RTNTYP *CHAR    2                                  
    DCL        &PGM    *CHAR   10                                  
    DCL        &SENDER *CHAR   80                                  
                                                                   
    MONMSG     CPF0000 *N GOTO ABEND                               
                                                                   
    /* Récupère le nom du programme courant */                     
    SNDPGMMSG  ' ' TOPGMQ(*SAME) MSGTYPE(*INFO) KEYVAR(&MSGKEY)    
    RCVMSG     PGMQ(*SAME) MSGTYPE(*INFO) SENDER(&SENDER) RMV(*YES)
    CHGVAR     &PGM %SST(&SENDER 56 10)                            
                                                                   
    /* Création d'un user space */                                 
    CHGVAR     &USRSPC  (&USNAME !! &USLIB)                        
    CALL       QUSCRTUS (&USRSPC ' ' &USSIZE ' ' *ALL &ERROR)      
    MONMSG     CPF0000                                                 
                                                                       
    /* Récupère la définition du travail */                            
    CALL       QWCLSCDE (&USRSPC &USFMT &RQSJOB &USCONT &ERROR)        
    CALL       QUSRTVUS (&USRSPC x'00000001' &USSIZE &USDATA &ERROR)   
                                                                       
    /* A-t-on récupéré une entrée ? */                                 
    CHGVAR     &USENTR  %BIN(&USDATA 133 4)                            
    IF         (&USENTR < 1) DO                                        
               CHGVAR &MSGDTA ('Travail planifié' !> &RQSJOB !> +      
                               'non trouvé ...')                       
               SNDPGMMSG MSGID(CPF9897) MSGF(QCPFMSG) MSGTYPE(*DIAG) + 
                         MSGDTA(&MSGDTA)                               
               GOTO ESCAPE                                             
               ENDDO                                                   
                                                                       
    /* Récupère l'entrée du user space */                              
    CHGVAR     &USOFFS  %BIN(&USDATA 125 4)                            
    CHGVAR     &USSTRT (&USOFFS + 1)                                   
    CHGVAR     &SCINFO  %SST(&USDATA  &USSTRT 1)                       
    CHGVAR     &USSTRT (&USOFFS + 2)                                   
    CHGVAR     &SCJOB   %SST(&USDATA  &USSTRT 10)     
    CHGVAR     &USSTRT (&USOFFS + 198)                
    CHGVAR     &SCJOBQ  %SST(&USDATA  &USSTRT 10)     
    CHGVAR     &USSTRT (&USOFFS + 208)                
    CHGVAR     &SCJBQL  %SST(&USDATA  &USSTRT 10)     
    CHGVAR     &USSTRT (&USOFFS + 527)                
    CHGVAR     &SCJOBD  %SST(&USDATA  &USSTRT 10)     
    CHGVAR     &USSTRT (&USOFFS + 537)                
    CHGVAR     &SCJBDL  %SST(&USDATA  &USSTRT 10)     
    CHGVAR     &USSTRT (&USOFFS + 547)                
    CHGVAR     &SCUSER  %SST(&USDATA  &USSTRT 10)     
    CHGVAR     &USSTRT (&USOFFS + 557)                
    CHGVAR     &SCMSGQ  %SST(&USDATA  &USSTRT 10)     
    CHGVAR     &USSTRT (&USOFFS + 567)                
    CHGVAR     &SCMSGL  %SST(&USDATA  &USSTRT 10)     
    CHGVAR     &USSTRT (&USOFFS + 641)                
    CHGVAR     &SCCMDL  %BIN(&USDATA  &USSTRT 4)      
    CHGVAR     &USSTRT (&USOFFS + 645)                
    CHGVAR     &SCCMD   %SST(&USDATA  &USSTRT &SCCMDL)
                                                      
    /* Affichage du prompt ? */                       
    RTVJOBA    Type(&JOBTYP)                                                
    IF         (&JOBTYP='1') DO                                             
         IF    (&RQSPMT='*YES') DO                                          
               CHGVAR &CMD '?'                                              
         ENDDO                                                              
    ENDDO                                                                   
                                                                            
    /* Création de la commande complète */                                  
    CHGVAR     &CMD (&CMD !< 'SBMJOB' !> &RQSJOB)                           
    IF         (&RQSJOBD *EQ '*SCDJOB' *AND &SCJBDL *EQ ' ') DO             
    CHGVAR     &CMD (&CMD !> 'JOBD(' !<                   &SCJOBD !< ')')   
    ENDDO                                                                   
    IF         (&RQSJOBD *EQ '*SCDJOB' *AND &SCJBDL *NE ' ') DO             
    CHGVAR     &CMD (&CMD !> 'JOBD(' !< &SCJBDL !< '/' !< &SCJOBD !< ')')   
    ENDDO                                                                   
    IF        (&RQSJOBD *NE '*SCDJOB' *AND %SST(&RQSJOBD 11 10) *EQ ' ') DO 
    CHGVAR     &CMD (&CMD !> 'JOBD(' !< %SST(&RQSJOBD  1 10) !< ')')        
    ENDDO                                                                   
    IF        (&RQSJOBD *NE '*SCDJOB' *AND %SST(&RQSJOBD 11 10) *NE ' ') DO 
    CHGVAR     &CMD (&CMD !> 'JOBD(' !< %SST(&RQSJOBD 11 10) !< '/' +       
                                     !< %SST(&RQSJOBD  1 10) !< ')')        
    ENDDO                                                                   
    IF         (&RQSJOBQ *EQ '*SCDJOB' *AND &SCJBQL *EQ ' ') DO             
    CHGVAR     &CMD (&CMD !> 'JOBQ(' !<                   &SCJOBQ !< ')')   
    ENDDO                                                                   
    IF         (&RQSJOBQ *EQ '*SCDJOB' *AND &SCJBQL *NE ' ') DO             
    CHGVAR     &CMD (&CMD !> 'JOBQ(' !< &SCJBQL !< '/' !< &SCJOBQ !< ')')   
    ENDDO                                                                   
    IF        (&RQSJOBQ *NE '*SCDJOB' *AND %SST(&RQSJOBQ 11 10) *EQ ' ') DO 
    CHGVAR     &CMD (&CMD !> 'JOBQ(' !< %SST(&RQSJOBQ  1 10) !< ')')        
    ENDDO                                                                   
    IF        (&RQSJOBQ *NE '*SCDJOB' *AND %SST(&RQSJOBQ 11 10) *NE ' ') DO 
    CHGVAR     &CMD (&CMD !> 'JOBQ(' !< %SST(&RQSJOBQ 11 10) !< '/' +       
                                     !< %SST(&RQSJOBQ  1 10) !< ')')        
    ENDDO                                                                   
    CHGVAR     &CMD (&CMD !> 'CMD( ' !< %SST(&SCCMD 1 &SCCMDL)    !< ')')   
    IF         (&RQSUSER *EQ '*SCDJOB') DO                                  
    CHGVAR     &CMD (&CMD !> 'USER(' !< &SCUSER                   !< ')')   
    ENDDO                                                                   
    IF         (&RQSUSER *NE '*SCDJOB') DO                                  
    CHGVAR     &CMD (&CMD !> 'USER(' !< &RQSUSER                  !< ')')   
    ENDDO                                                                   
    IF         (&RQSMSGQ *EQ '*SCDJOB' *AND &SCMSGL *EQ ' ') DO             
    CHGVAR     &CMD (&CMD !> 'MSGQ(' !<                   &SCMSGQ !< ')')   
    ENDDO                                                                   
    IF         (&RQSMSGQ *EQ '*SCDJOB' *AND &SCMSGL *NE ' ') DO             
    CHGVAR     &CMD (&CMD !> 'MSGQ(' !< &SCMSGL !< '/' !< &SCMSGQ !< ')')   
    ENDDO                                                                   
    IF        (&RQSMSGQ *NE '*SCDJOB' *AND %SST(&RQSMSGQ 11 10) *EQ ' ') DO 
    CHGVAR     &CMD (&CMD !> 'MSGQ(' !< %SST(&RQSMSGQ  1 10) !< ')')        
    ENDDO                                                                   
    IF        (&RQSMSGQ *NE '*SCDJOB' *AND %SST(&RQSMSGQ 11 10) *NE ' ') DO 
    CHGVAR     &CMD (&CMD !> 'MSGQ(' !< %SST(&RQSMSGQ 11 10) !< '/' +       
                                     !< %SST(&RQSMSGQ  1 10) !< ')')        
    ENDDO                                                                   
    IF         (&RQSOUTQ *EQ '*SCDJOB') DO                                  
    CHGVAR     &CMD (&CMD !> 'OUTQ(*JOBD)')                                 
    ENDDO                                                                   
    IF        (&RQSOUTQ *NE '*SCDJOB' *AND %SST(&RQSOUTQ 11 10) *EQ ' ') DO 
    CHGVAR     &CMD (&CMD !> 'OUTQ(' !< %SST(&RQSOUTQ  1 10) !< ')')        
    ENDDO                                                                   
    IF        (&RQSOUTQ *NE '*SCDJOB' *AND %SST(&RQSOUTQ 11 10) *NE ' ') DO 
    CHGVAR     &CMD (&CMD !> 'OUTQ(' !< %SST(&RQSOUTQ 11 10) !< '/' +       
                                     !< %SST(&RQSOUTQ  1 10) !< ')') 
    ENDDO                                                            
    CHGVAR     &CMD (&CMD !> 'SYSLIBL(*SYSVAL) CURLIB(*USRPRF) ')    
    CHGVAR     &CMD (&CMD !> 'INLLIBL(*JOBD) PRTDEV(*JOBD)     ')    
    CHGVAR     &CMD (&CMD !> 'PRTTXT(*JOBD) RTGDTA(*JOBD)      ')    
                                                                     
    /* Soumission du travail */                                      
    CALL       QCMDEXC (&CMD 4096)                                   
                                                                     
    RCVMSG     MSGTYPE(*LAST) MSGF(&MSGF) MSGFLIB(&MSGFL) +          
               MSGID(&MSGID) MSGDTA(&MSGDTA)                         
    SNDPGMMSG  MSGID(&MSGID) MSGF(&MSGFL/&MSGF) MSGTYPE(*COMP) +     
               MSGDTA(&MSGDTA)                                       
    RETURN                                                           
                                                                     
    /* Routine de traitement des erreurs */                          
    ABEND:                                                           
    IF         &ABEND  RETURN                                        
    CHGVAR     &ABEND  '1'                                           
                                                                     
    FORWARD:                                                         
    RCVMSG     MSGTYPE(*ANY) MSGID(&MSGID) MSGF(&MSGF) MSGFLIB(&MSGFL) +
               MSGDTA(&MSGDTA) RTNTYPE(&RTNTYP)                         
    IF         (&RTNTYP='02' *OR &RTNTYP='15' *OR &RTNTYP='17') DO      
               SNDPGMMSG MSGID(&MSGID) MSGF(&MSGFL/&MSGF) +             
                         MSGDTA(&MSGDTA) MSGTYPE(*DIAG)                 
    ENDDO                                                               
    IF         (&RTNTYP *NE ' ') GOTO FORWARD                           
                                                                        
    ESCAPE:                                                             
    SNDPGMMSG  MSGID(CPF9898) MSGF(QCPFMSG) MSGTYPE(*ESCAPE) +          
               MSGDTA('Fin anormale du programme ...')                  
    ENDPGM
    Commande SBMJOBSCDE :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    CMD        PROMPT('Soumettre un travail schedulé')                    
                                                                          
    PARM       JOB    *NAME MIN(1) PROMPT('Nom du travail')               
    PARM       PROMPT *CHAR 4 PROMPT('Affichage du prompt') +             
                      DFT(*NO) RSTD(*YES) VALUES(*YES *NO)                
    PARM       JOBD   QN PROMPT('Description de travail') +               
                      PMTCTL(*PMTRQS) DFT(*SCDJOB) SNGVAL(*SCDJOB)        
    PARM       JOBQ   QN PROMPT('File d''attente de travaux') +           
                      PMTCTL(*PMTRQS) DFT(*SCDJOB) SNGVAL(*SCDJOB *JOBD)  
    PARM       OUTQ   QN PROMPT('File d''attente en sortie') +            
                      PMTCTL(*PMTRQS) DFT(*SCDJOB) +                      
                      SNGVAL(*SCDJOB *CURRENT *USRPRF *JOBD)              
    PARM       MSGQ   QN PROMPT('File d''attente de messages') +          
                      PMTCTL(*PMTRQS) DFT(*SCDJOB) SNGVAL(*SCDJOB *USRPRF)
    PARM       USER   *NAME PROMPT('Utilisateur') +                       
                      PMTCTL(*PMTRQS) DFT(*SCDJOB) +                      
                      SPCVAL(*SCDJOB *JOBD *CURRENT)                      
    QN: +                                                                 
    QUAL              *NAME                                               
    QUAL              *NAME DFT(*LIBL) SPCVAL(*LIBL) +                    
                      PROMPT('Bibliothèque :')
    En espérant que cela puisse t'aider.
    Note : Comme c'est une soumission de travail, il faudra faire attention à ajouter un dlyjob avant d'arrêter tous les sous-systèmes, car sinon tu arrêtera le travail soumis avant qu'il ne soit terminé.
    Vérifies aussi dans le scheduler si la commande utilisée n'est pas un vulgaire endsbs ...

Discussions similaires

  1. Réponses: 5
    Dernier message: 29/07/2009, 16h53
  2. Imprimer une feuille excel en mode paysage via le language Java ?
    Par otisotis dans le forum Général Java
    Réponses: 8
    Dernier message: 10/06/2009, 17h22
  3. ouvrir une requete en mode sql via vba
    Par moimemessssssssss dans le forum VBA Access
    Réponses: 3
    Dernier message: 02/09/2008, 11h43
  4. [formulaire]mode edition via liste deroulante
    Par profane dans le forum IHM
    Réponses: 1
    Dernier message: 20/04/2007, 15h57
  5. ouvrir requête en mode création via VBA
    Par fpecastaing dans le forum Requêtes et SQL.
    Réponses: 12
    Dernier message: 14/02/2007, 10h29

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo