IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
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

AS/400 Discussion :

Copier spool automatique


Sujet :

AS/400

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2010
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Février 2010
    Messages : 32
    Points : 9
    Points
    9
    Par défaut Copier spool automatique
    Bonjour à tous,

    Je voudrais savoir si c'est possible de copier automatiquement un rapport spécifique vers un fichier DB2 avec la fonction CPYSPLF. Manuel ça marche mais je voudrais savoir comment le faire automatiquement. Je dois avoir accès à ce rapport en dehors de l'AS400 (PC) sans que l'utilisateur ai à faire quoi que ce soit.

    Merci d'avance.

    Bizz

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    821
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Mai 2008
    Messages : 821
    Points : 1 084
    Points
    1 084
    Par défaut
    En quelle version es-tu ?
    Ton spool, tu le veux-tu en texte, pdf, html ?
    Qu'entends-tu par automatique ? le spool tombe dans une OUTQ, sur quel pc ou serveur doit-il se retrouver ? ou y a t'il une action à faire de l'utilisateur afin qu'il se retrouve sur son pc ?
    sois plus précis(e)....

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2010
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Février 2010
    Messages : 32
    Points : 9
    Points
    9
    Par défaut
    Version 5R4.

    Comme cité dans ma demande, le fichier doit être utilisable avec SQL. Un fichier texte serait parfait. Mon fichier existe déjà, il s'appel testpf. Je veux qu'un rapport en particulier se retrouve dans ce fichier. Avec la commande CPYSPLF ça fonctionne, mais je dois la faire à chaque fois manuellement. Ce que je veux savoir, es-ce possible que quand ce rapport est envoyer au spool, il soit automatiquement envoyer dans mon fichier pour utilisation externe.

    Merci

    P.S: Désolé, je croyais que ma demande était assez clair.

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    821
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Mai 2008
    Messages : 821
    Points : 1 084
    Points
    1 084
    Par défaut
    Avec la commande CRTOUTQ ou CHGOUTQ tu peux lui associer une DATA QUEUE (mot clé DTAQ) ex:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    CHGOUTQ OUTQ(monoutq) DTAQ(mabib/madataQ) 
    
    Créer la DataQueue 
    CRTDTAQ DTAQ(mylib/mydataQ) MAXLEN(256) SENDERID(*YES) AUTORCL(*YES)
    Chaque fois qu'un spool "tombera" dans cette OUTQ, une entrée sera ajoutée dans la DTAQ. Pour lire une DTAQ, soit tu le fais depuis l'IBM i avec l'API QRCVDTAQ, soit tu le fais depuis un PC avec la toolbox livrée avec client/access en VB, C/C++, Java etc...

    Si tu veux le faire depuis l'IBM i avec l'api QRCVDTAQ, il te faudra un programme qui tourne en permanence en tâche de fond qui va attendre une éventuelle entrée dans la DTAQ. Ci-dessous une partie de code glanée sur un autre forum et empruntée à notre ami RECUYER de toulouse :


    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
                                                                                                   
     * Attributs d'un spoule.......................................................................
    d Ds_Attrib       Ds                                                                           
    D   SpA_a                 1   3780                                                             
    D   SpA_SplNam           75     84                                                             
    D   SpA_Formtyp          89     98                                                             
    D   SpA_UsrDta           99    108                                                             
    D   SpA_Lpi             181    184b 0                                                          
    D   SpA_Cpi             185    188b 0                                                          
    D   SpA_OutQ            191    200                                                             
    D   SpA_PgmOpn          244    253                                                             
    D   SpA_DevTyp          327    336                                                             
    D   SpA_PageL           433    436b 0                                                          
    D   SpA_PageW           437    440b 0                                                          
    D   SpA_TotPag          149    152b 0                                                          
    D   SpA_Bufsiz          861    864b 0                                                          
    D   SpA_BufNbr          997   1000b 0                                                          
                                                                                                   
    d  Spl_QuaJob     s             26                                                             
    d  Spl_IntJob     s             16                                                             
    d  Spl_IntSpl     s             16                                                             
    d  Spl_Nam        s             10                                                             
    d  Spl_Num        s             10i 0                                                          
    d  W_NomSpl       s             10                                                             
                                                                                                   
    d  Ds_globale     ds                                                                           
    d    Gal_Lenght           1      4b 0                                                           
    
     *                                                                                           
      * data queue ............................................................                   
     D DtqNam          s             10     Inz('OUTQ_BIG')                                       
     D DtqLib          s             10     Inz('OUTILS')                                         
     D DtqLen          s              5p 0                                                        
     D DtqKeyL         s              3p 0                                                        
     D DtqSndL         s              3p 0                                                        
     D DtqKeyD         s             10                                                           
      *                                                                                           
     D DtqDta          ds                                                                         
     d   Dta_typ                     10                                                           
     d   Dta_fil                      2                                                           
     d   Dta_Jobnam                  10                                                           
     d   Dta_Jobusr                  10                                                           
     d   Dta_Jobnum                   6                                                           
     d   Dta_Splnam                  10                                                           
     d   Dta_Splnum                  10i 0                                                        
     d   Dta_Outq                    10                                                           
     d   Dta_OutqLib                 10                                                           
     *                                                                 
    D DtqWait         s              5p 0                              
     * ____________________________________________________________________________________________ 
     *  Interfaces appels programmes                                                                
     * ____________________________________________________________________________________________ 
     *                                                                                              
     * Lecture DataQueue .......................................................................... 
    d LireDataQueue   pr                  ExtPgm('QRCVDTAQ')                                        
    d   p_DtqNam                          Const like( DtqNam )                                      
    d   p_DtqLib                          Const like( DtqLib )                                      
    d   p_DtqLen                          Const like( DtqLen )                                      
    d   p_DtqDta                          Const like( DtqDta )                                      
    d   p_DtqWait                         Const like( DtqWait)     
     * ___________________________________________________________________________________________  
     * Traitement                                                                                   
     * ___________________________________________________________________________________________                                   
     /free                                                                                         
        DtqWait = -1 ;                                                                             
        DtqNam = 'OUTQ_BIG' ;                                                                      
        DtqLib = 'OUTILS' ;                                                                        
                                                                                                   
        Dow 1 = 1 ;                                                                                
           LireDataQueue ( DtqNam : DtqLib : DtqLen : DtQdta : DtqWait ) ;                         
                                                                                                   
           // Un spoule à traiter                                                                  
           If DtqLen <> 0 And Dta_Typ = '*SPOOL' ;
           Ici traiter le spoule les infos seront dans la DS DtqDTA
           Endif ;                                                 
    
        Enddo ;                 
        *Inlr = *on ;           
                                
     /end-free                  
    
     *                                                                                              
     *  Attributs d'un spoule                                                                       
    c     Att_Spoule    Begsr                                                                       
    c                   Clear                   Ds_attrib                                           
    c                   Eval      Spl_QuaJob =                                                      
    c                              Dta_JobNam +                                                     
    c                              Dta_JobUsr +                                                     
    c                              Dta_JobNum                                                       
    c                   Eval      Spl_Num = W_SplNum                                                
    c                   Eval      Spl_NAm = Dta_SplNam                                              
     *                                                                                              
    c                   Clear                   Apierror                                            
    c                   Call(e)   'QUSRSPLA'                                                        
    c                   parm                    Ds_Attrib                                           
    c                   parm      3780          Gal_Lenght
    c                   parm      'SPLA0200'    Api_fmt           8                             
    c                   parm                    Spl_QuaJob                                      
    c                   parm                    Spl_IntJob                                      
    c                   parm                    Spl_IntSpl                                      
    c                   parm                    Spl_Nam                                         
    c                   parm                    Spl_Num                                         
    c                   parm                    Apierror                                        
     *                                                                                          
    c                   Endsr
    La modification modification que j'aurais personnellement à apporter au programme de richard est de remplacer le
    par


    C'est sur ce principe que fonctionnent la plupart des "progiciels" qui proposent de convertir des spools en PDF ou autre.
    Sache qu'en V6R1, les spools peuvent être directement placés dans l'IFS et convertis en PDF.

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2010
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Février 2010
    Messages : 32
    Points : 9
    Points
    9
    Par défaut
    Merci K2R400,

    Ouff, ça fait beaucoup d'information, je vais voir tout ça et je te reviens sûrement avec des question !!!

    Pour le ToolBox, crois-tu que je peux m'en servir avec Delphi, car ici c'est Delphi que nous utilisons ?

    La commande QRCVDTAQ n'est pas trouver sur mon AS400.

    Merci en attendant, maintenant j'ai de quoi tester un peut.

    Bizz

  6. #6
    Membre expérimenté

    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 298
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 298
    Points : 1 578
    Points
    1 578
    Par défaut
    Citation Envoyé par Bizounett
    Comme cité dans ma demande, le fichier doit être utilisable avec SQL. Un fichier texte serait parfait. Mon fichier existe déjà, il s'appel testpf. Je veux qu'un rapport en particulier se retrouve dans ce fichier. Avec la commande CPYSPLF ça fonctionne, mais je dois la faire à chaque fois manuellement. Ce que je veux savoir, es-ce possible que quand ce rapport est envoyer au spool, il soit automatiquement envoyer dans mon fichier pour utilisation externe.
    Si tu as possibilité de modifier le programme CL qui appelle le programme d'édition de ton spool, tu peux simplement ajouter ta commande CPYSPLF dans ce CL après le CALL au programme d'édition et le tour est joué !

  7. #7
    Membre éprouvé
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    821
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Mai 2008
    Messages : 821
    Points : 1 084
    Points
    1 084
    Par défaut
    QRCVDTAQ n'est pas une commande mais une API qui te permet de lire le contenu d'une DTAQ.
    Il va falloir faire un programme en HLL (RPG, COBOL, C/C++, Java..) ou un script shell pour répondre à ta demande, c'est à dire programmer un minimum.
    Concernant le toolkit, tu le trouveras sur le CD client access, il te permettra depuis un programme Delphi ou VB de lire la DTAQ sans passer par l'API citée plus haut.

  8. #8
    Membre éprouvé
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    821
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Mai 2008
    Messages : 821
    Points : 1 084
    Points
    1 084
    Par défaut
    Voici le programme complet :

    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
      /*  Program : PRCRDYSPLF                                         */
      /*  Version : 3.00                                               */
      /*  System  : iSeries                                            */
      /*  Author :  Herman Van der Staey                               */
      /*                                                               */
      /*  Description : Process Ready Spooled files in an OUTQ         */
      /*                                                               */
      /*  Submit this program to jobq QSYSNOMAX or QUSRNOMAX           */
      /*  so that it stays active all the time.                        */
      /*                                                               */
      /*  Create a DTAQ with length 128 and connect it to the OUTQ     */
      /*  that must be processed.                                      */
      /*                                                               */
      /*  Execute this once  :                                         */
      /*                                                               */
      /*  CRTDTAQ    DTAQ(MYLIB/MYDTAQ) MAXLEN(128) TEXT('dtaq +       */
      /*             connected to outq MYOUTQ')                        */
      /*  CHGOUTQ    OUTQ(MYLIB/MYOUTQ) DTAQ(MYLIB/MYDTAQ)             */
      /*                                                               */
      /*  Each time a spooled files comes READY in the outq            */
      /*  an entry is written to the associated dataqueue.             */
    
     PRCRDYSPLF: PGM
    
                 DCL        VAR(&FLDLEN) TYPE(*DEC) LEN(5 0) VALUE(128)
                 DCL        VAR(&FIELD)  TYPE(*CHAR) LEN(128)
                 DCL        VAR(&WAIT)   TYPE(*DEC) LEN(5 0) VALUE(-1)
    
                 DCL        VAR(&JOBQUAL)    TYPE(*CHAR) LEN(26)
                 DCL        VAR(&JOBNAME)    TYPE(*CHAR) LEN(10)
                 DCL        VAR(&USER   )    TYPE(*CHAR) LEN(10)
                 DCL        VAR(&JOBNBR )    TYPE(*CHAR) LEN(6)
                 DCL        VAR(&SPLFILE)    TYPE(*CHAR) LEN(10)
                 DCL        VAR(&SPLNBRBIN)  TYPE(*CHAR) LEN(4)
                 DCL        VAR(&SPLNBRCHR)  TYPE(*CHAR) LEN(6)
                 DCL        VAR(&SPLNBRDEC)  TYPE(*DEC)  LEN(6 0)
                 DCL        VAR(&TOTPAGCHR)  TYPE(*CHAR) LEN(4)
                 DCL        VAR(&TOTPAGDEC)  TYPE(*DEC)  LEN(5 0)
                 DCL        VAR(&TOTCOPCHR)  TYPE(*CHAR) LEN(4)
                 DCL        VAR(&TOTCOPDEC)  TYPE(*DEC)  LEN(5 0)
                 DCL        VAR(&FORMTYPE)   TYPE(*CHAR) LEN(10)
    
                 DCL        VAR(&RECEIVER) TYPE(*CHAR) LEN(3000)
                 DCL        VAR(&RECLEN)   TYPE(*CHAR) LEN(4)
    
                 CHGVAR     VAR(%BIN(&RECLEN)) VALUE(3000)
    
                 /*  &wait = -1, which means : wait indefinitely  */
                 /*  until an entry arrives.                      */
     LOOP:       CALL       PGM(QRCVDTAQ) PARM('MYDTAQ    '  'MYLIB     '  &FLDLEN +
                              &FIELD &WAIT)
    
                 IF         COND(&FLDLEN *NE 0) THEN(DO) /* entry +
                              received */
    
                 CHGVAR     VAR(&JOBQUAL)   VALUE(%SST(&FIELD 13 26))
                 CHGVAR     VAR(&JOBNAME)   VALUE(%SST(&FIELD 13 10))
                 CHGVAR     VAR(&USER)      VALUE(%SST(&FIELD 23 10))
                 CHGVAR     VAR(&JOBNBR)    VALUE(%SST(&FIELD 33 6))
                 CHGVAR     VAR(&SPLFILE)   VALUE(%SST(&FIELD 39 10))
                 CHGVAR     VAR(&SPLNBRBIN) VALUE(%SST(&FIELD 49 4))
                 CHGVAR     VAR(&SPLNBRDEC) VALUE(%BIN(&FIELD 49 4))
                 CHGVAR     VAR(&SPLNBRCHR) VALUE(&SPLNBRDEC)
    
       /*  Here you can retrieve spooled file attributes.        */
       /*  I give an example with Formtype, total pages and      */
       /*  total copies.                                         */
    
                 CALL       PGM(QUSRSPLA) PARM(&RECEIVER &RECLEN +
                              'SPLA0100' &JOBQUAL ' ' ' ' &SPLFILE +
                              &SPLNBRBIN)
    
                 CHGVAR     VAR(&FORMTYPE) VALUE(%SST(&RECEIVER 81 10))
    
                 CHGVAR     VAR(&TOTPAGDEC) VALUE(%BIN(&RECEIVER 141 4))
                 CHGVAR     VAR(&TOTPAGCHR) VALUE(&TOTPAGDEC)
    
                 CHGVAR     VAR(&TOTCOPDEC) VALUE(%BIN(&RECEIVER 169 4))
                 CHGVAR     VAR(&TOTCOPCHR) VALUE(&TOTCOPDEC)
    
    
      /*  Put here the instructions you want to perform when    */
      /*  a spooled file arrives in the outq                    */
      /*                                                        */
    
        Here at this location in the program you have the
        &JOBNAME, &USER, &JOBNBR, &SPLFILE and &SPLNBRCHR
        variables available to identify the new spooled file
        that became READY in the outq. 
    
        CVTSPLSTMF .....
        
    
    
                 SNDPGMMSG  MSG('New spooled file arrived')
    
      /*  read next dataqueue entry                             */
    
                 GOTO       CMDLBL(LOOP)
    
                 ENDDO
    
     END:        ENDPGM
    tu peux ainsi transformer ton spool en TEXTE, PDF, HTML etc.. grâce à l' utilitaire CVTSPLSTMF et pourquoi pas l'envoyer par mail dès qu'il arrivera dans l'OUTQ et ce, automatiquement.

  9. #9
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2010
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Février 2010
    Messages : 32
    Points : 9
    Points
    9
    Par défaut
    Citation Envoyé par K2R400 Voir le message
    QRCVDTAQ n'est pas une commande mais une API qui te permet de lire le contenu d'une DTAQ.
    Il va falloir faire un programme en HLL (RPG, COBOL, C/C++, Java..) ou un script shell pour répondre à ta demande, c'est à dire programmer un minimum.
    Concernant le toolkit, tu le trouveras sur le CD client access, il te permettra depuis un programme Delphi ou VB de lire la DTAQ sans passer par l'API citée plus haut.
    J'ai regarder et je ne vois rien concernant delphi, le CD m'a été copier sur mon serveur par mon cellège des US. C'est quoi le répertoire exacte que j'ai besoin ? Si j'utilise le toolbox, ai-je besoin encore du programme RPG ?

    Si quelqu'un pourrais me donne les commandes exactes pour compiler le programme RPG poster ce serais bien. Je ne suis pas un programmeur RPG mais Delphi. Mais avec les commandes exacte je serais capable de le compiler et l'installer en tâche de fond.

    Merci

    Bizz

  10. #10
    Membre éprouvé
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    821
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Mai 2008
    Messages : 821
    Points : 1 084
    Points
    1 084

  11. #11
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2010
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Février 2010
    Messages : 32
    Points : 9
    Points
    9
    Par défaut
    Citation Envoyé par K2R400 Voir le message
    Merci pour le lien. Ce que je veux faire exactement c'est ceci :

    Nous utilisons un programme appelé Mapics sur notre AS400. C'est un programme MRP, gestion des stocks, comptabilité, vente, achat, etc. Donc il est notre colonne vertébrale ici. Des personnes, 8 pour être plus précis, doivent créer des pièces dans ce système. Avec les écrans d'entrées de Mapics c'est assez long et ardu. À force de chercher, j'ai découvert que nous pouvions créer les pièces à l’extérieur du système et puis faire un OFFLINE LOAD depuis Mapics de ces pièces. Une fois le OFFLINE LOAD terminé, il crée 4 rapports pour afficher le résultat, record accepté et record refusé. C'est ce rapport que je veux récupérer avec mon application Delphi pour afficher automatiquement le résultat, sinon ils doivent allez dans le spool de l'imprimante à chaque fois. Comme de raison les 8 personnes peuvent faire leurs OFFLINE LOAD quand ils veulent et peuvent en faire plusieurs par jour.

    Je crois que le DATA QUEUE n'est peut-être pas la solution idéale pour moi, d'après ce que j'au pus lire, car une fois la données lu elle n'est plus la et il faut être certain que c'est l'information pour le bon utilisateur. Donc je demande vos lumières.

    L’idéale pour moi ce serais de l'avoir accessible par SQL. Je sais qu'en copiant le contenue du rapport dans un PF ça fonctionne, mais je ne sais pas comment faire pour que chaque fois que ces rapport se retrouve dans la queue il se copie automatiquement dans un PF avec la commande : CPYSPLF.

    À moins qu'il ai un autre façon de faire, vos idées sont les bienvenue.

    Merci d'avance

    Bizz

  12. #12
    Membre éprouvé
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Octobre 2006
    Messages
    691
    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 : 691
    Points : 996
    Points
    996
    Par défaut
    Bonjour,

    J'avoue ne pas connaître Delphi et ne pas savoir ce que le toolkit d'iSeries Access permet avec ce langage. Toutefois IBM fournit des exemples sur cette page, dont un pour Delphi 4 :
    http://www-03.ibm.com/systems/i/soft...llsamples.html
    Peut être qu'il t'aidera à trouver un moyen d'accéder directement au spool.

    Je ne voie pas tout à fait comment se déroule le scénario. Ton programme Delphi appelle/lance un programme Mapics, et tu attends le résultat, ou le lancement du programme Mapics se fait manuellement, ton programme n'étant pas au courant ?

    Pour info. Une entrée Dataqueue peut très bien être lue et non retirée de la liste. En revanche elle ne déclenche qu'une seule fois. Donc si tu as plusieurs postes qui attendent que la même DataQueue se remplisse, il faut faire des lectures à intervalle régulier, et non attendre un déclenchement auto, sinon seul le 1er à lire serait informé de l'arrivée d'une entrée dans la Dataqueue.

  13. #13
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2010
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Février 2010
    Messages : 32
    Points : 9
    Points
    9
    Par défaut
    Merci m4k-Hurrican,

    J’avais déjà trouvé cet information sur le site IBM. Le déroulement est comme suit : L'utilisateur entre les informations dans le programme Delphi. Quand il à terminé il appuie sur le bouton transfert, ce transfert rempli une table sur le AS400. Ensuite il va sur l’AS400 par l'émulateur, va dans l'application Mapics et démarre un programme qui lit cette table pour créer les pièces qui s'y trouve. À la fin du traitement, ce même programme génère 4 rapports pour indiquer si l'opération s'est bien dérouler. C'est ce rapport que je veux récupérer.

    Merci

  14. #14
    Membre éprouvé
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    821
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Mai 2008
    Messages : 821
    Points : 1 084
    Points
    1 084
    Par défaut
    Citation Envoyé par Bizounett Voir le message
    ...Ensuite il va sur l’AS400 par l'émulateur, va dans l'application Mapics et démarre un programme qui lit cette table pour créer les pièces qui s'y trouve.
    Ce traitement ne peut-il pas s'automatiser ? il faut forcément une intervention humaine ?

  15. #15
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2010
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Février 2010
    Messages : 32
    Points : 9
    Points
    9
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    CHGOUTQ OUTQ(monoutq) DTAQ(mabib/madataQ) 
    
    Créer la DataQueue 
    CRTDTAQ DTAQ(mylib/mydataQ) MAXLEN(256) SENDERID(*YES) AUTORCL(*YES)
    Je viens d'essayer cela sur un de mes spool d'impression. Je n'ai pas eu d'erreur, tout est bien créé. Mais je n'ai jamais rien dans ma data queue. J'y met des rapports et le data queue ne se rempli pas. Ai-je un autre commande à faire pour activer le tout ?

    EDIT :

    Citation Envoyé par K2R400 Voir le message
    Ce traitement ne peut-il pas s'automatiser ? il faut forcément une intervention humaine ?
    Je suis bien d'accord, c'est pour cela que j'ai créer une macro dans l'énulateur. C'est la partie du rapport que je jeux automatiser.

  16. #16
    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
    Je n'utilise plus Mapics depuis 6 ans mais il semble me rappeler que généralement les spools sont en général accompagnés/produits à partir de tables de travail (temporaires) .. tu dois donc pouvoir récupérer les infos de traitement directement dans ces tables.. Les fichiers ITEMASA/B/C et ITEMBL sont surement journalisés , tu dois donc pouvoir trouver aussi des infos dans les journaux.. C'est peut être plus simple que de récuperer les spools..

    Pour ton transfert automatqiue , tu peux aussi plutôt que de faire une macro , faire un traitement batch à intervalles regulier sur l'Iseries ...On utilisait ça pour les saisies de mouvements externes à MAPICS (lot externe)

  17. #17
    Membre éprouvé
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    821
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Mai 2008
    Messages : 821
    Points : 1 084
    Points
    1 084
    Par défaut
    Citation Envoyé par Bizounett
    Je viens d'essayer cela sur un de mes spool d'impression. Je n'ai pas eu d'erreur, tout est bien créé. Mais je n'ai jamais rien dans ma data queue.
    Comment fais-tu pour lire la DTAQ ???
    Sous QSH lance :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    dataq -rp /qsys.lib/mylib.lib/mydataq.dtaq
    il ne lira que la première entrée. Sans le -p, à chaque lecture, l'enregistrement lu de la dtaq est enlevé

  18. #18
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2010
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Février 2010
    Messages : 32
    Points : 9
    Points
    9
    Par défaut
    Citation Envoyé par K2R400 Voir le message
    Comment fais-tu pour lire la DTAQ ???
    Sous QSH lance :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    dataq -rp /qsys.lib/mylib.lib/mydataq.dtaq
    il ne lira que la première entrée. Sans le -p, à chaque lecture, l'enregistrement lu de la dtaq est enlevé
    C'est quoi Sous QSH ?

    C'est bon j'ai trouvé !!! Je test le tout.

  19. #19
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2010
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Février 2010
    Messages : 32
    Points : 9
    Points
    9
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    dataq: 001-2242 Path name /canada6.lib/qrene.dtaq must specify an object in t
    he QSYS.LIB file system.                                                     
    Press ENTER to end terminal session.                                         
    *SPOOL    01AMW1574937CRTEASDALE848891AMZ14RP                                
    Press ENTER to end terminal session.
    Voici mon résustat. la ligne *spool ... C'est mon rapport, mais je n'ai pas son contenue. Il faut aussi que j'imprime le rapport pour qu'il se retrouve la, sinon j'ai rien.

  20. #20
    Membre éprouvé
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    821
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Mai 2008
    Messages : 821
    Points : 1 084
    Points
    1 084
    Par défaut
    Citation Envoyé par Bizounett
    ...Il faut aussi que j'imprime le rapport pour qu'il se retrouve la, sinon j'ai rien.
    Déjà tu peux holder l'outq pour que rien ne s'imprime ou arrêter le writer, au choix.

    Maintenant, tu veux copier le spool automatiquement certes, mais dans quel fichier ? Si un spool existe déjà dans le fichier que fait-on ?
    Dans chaque spool, je présume que ce n'est pas le contenu entier qui t'interesse, est-ce une ligne particulière ? laquelle ?

Discussions similaires

  1. [VBA] Bug dans Copier/Coller automatique
    Par n0vocaine dans le forum Macros et VBA Excel
    Réponses: 12
    Dernier message: 15/07/2011, 15h27
  2. [XL-2007] macro copier/coller automatique
    Par climber91 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 18/03/2010, 10h37
  3. [XL-2003] copier en automatique le code d'un module d'une feuille EXCEL vers une autre feuille
    Par MichaSarah dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 30/05/2009, 00h13
  4. copier-coller automatiquement entre 2 fichiers
    Par christyn45 dans le forum Excel
    Réponses: 24
    Dernier message: 30/03/2009, 17h04
  5. Copier spools OUTQ vers JOBQ
    Par gege91 dans le forum AS/400
    Réponses: 2
    Dernier message: 12/12/2008, 11h51

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