Publicité
Discussion fermée
Affichage des résultats 1 à 4 sur 4
  1. #1
    Membre expérimenté Avatar de Homer-ac
    Profil pro
    Inscrit en
    octobre 2007
    Messages
    449
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : octobre 2007
    Messages : 449
    Points : 509
    Points
    509

    Par défaut [z/OS] Fonctions et Routines de service Enterprise COBOL for z/OS

    Voici un résumé succinct des différentes fonctions COBOL utilisables en z/OS : Enterprise Cobol V4.1
    En fonctions de la version Cobol installée, toutes ne seront pas accessibles, soit parce que plus récentes (NATIONAL-OF),
    soit parce que non activées dans le paramétrage cobol (DATEPROC pour le fenètrage siècle notemment)

    Ce résumé se veut complet pour Enterprise CObol z/OS 4.1 (dernière version IBM : V5 pour ceux qui sont en z/OS 1.9/1.10)
    Il ne s'agit que d'un aide mémoire, la brochure de référence est Enterprise COBOL for z/OS - Language Reférence : SC23.8528.00
    http://www-01.ibm.com/software/awdto...l/zos/library/

    L'utilisation des fonctions est à présent indissociable de la mise en oeuvre de Language Environnement.
    On peut pour la plupart de celles-ci préférer des appels à des routines de service L.E. essentiellement pour les raisons suivantes :
    - plus de sécurité : COBOL va 'planter' si on exécute une fonction date avec une date invalide, L.E. rendra un code retour
    - plus de possibilités : on peut fournir à L.E. le masque correspondant au format de la donnée que l'on fournit et celui de la donnée que l'on veut recevoir, ou encore le niveau de précision dans des fonctions mathématiques complexes
    - plus de facilités : Routines L.E complémentaires, supplémentaires ou plus précises (Millièmes de secondes via CEELOCT par ex. contre des centièmes par fonctions dates)

    Par rapport aux routines de services L.E. l'intérêt des fonctions COBOL reste bien entendu la lisibilité et la simplicité d'utilisation.
    (Encore qu'il conviendra de choisir à bon escient entre MOVE ou COMPUTE FUNCTION suivant que l'on travaille ou non sur des données numériques)


    Résumé des fonctions z/OS Enterprise Cobol 4.1 :
    Code :
    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
    ACOS	Valeur numérique en radians de l’arccosinus de l’argument
    	FUNCTION ACOS (Arg)
    	
    ANNUITY	Valeur numérique approchée d’une traite annuelle à la fin de chaque période, pour un taux d’intérêt donné 
    	FUNCTION ANNUITY(Taux-intérêt Nombre-périodes) 
    
    ASIN	Valeur numérique en radians de l’arcsinus de l’argument
    	FUNCTION ASIN (Arg) 
     
    ATAN	Valeur numérique en radians de l’arctangente de l’argument
    	FUNCTION ATAN (Arg) 
    
    CHAR	Fournit le caractère de l’alphabet correspondant à la position ordinale fournie (> 0)
    	FUNCTION CHAR (Arg) 
    
    COS	Fournit le cosinus de l’angle ou l’arc en radians dans l’argument
    	FUNCTION COS (Arg) 
    
    CURRENT-DATE	Fournit la date et l’heure sur 21 caractères alphanumériques 
    	ex: Display 'EXECUTION PROGRAMME LE ' function CURRENT-DATE(1:16) 
    	* Avec	1-4	Année (avec le siècle)
    		5-6	Mois		7-8	Jour
    		9-10	Heure		11-12	Minutes	13-14	Secondes
    		15-16	Centièmes de secondes
    		17	- ou + / heure < ou >= Greenwich
    		18-21	Excédant Heures et minutes / Greenwich
    
    DATE-OF-INTEGER	Convertit un entier relatif à une date pivot en une date au format SSAAAMMJJ
    	ex: Compute DATE-YYMD = Function DATE-OF-INTEGER (DATE-LILIAN)
    
    DATE-TO-YYYYMMDD Fenètrage si option DATEPROC activée : ajout du siécle dans Arg2 d'après la date AAMMJJ de Arg1
    	FUNCTION DATE-TO-YYYYMMDD (Arg1 Arg2)
     
    DATEVAL		Fenètrage (si option DATEPROC activée) : conversion d’un champ non date en champ date 
    	ex:	01	DATE1		Pic 9(8)    DATE FORMAT YYYYXXXX.
    		01	ZONE-INTER	Pic 9(6).
    	 	If Function Dateval (ZONE-INTER ‘YYXXXX’) Less Than DATE1 ... 
    		Move Function Dateval (ZONE-INTER ‘YYXXXX’) to DATE1 
     
    
    DAY-OF-INTEGER	Convertit un entier relatif à une date pivot en une date au format Julien SSAAAQQQ
    	ex: Compute DATE-YYAAQQQ = Function DAY-OF-INTEGER (DATE-LILIAN)
    
    DATE-TO-YYYYQQQ	Fenètrage si option DATEPROC activée : ajout du siécle dans Arg2 d'après la date AAQQQ de Arg1
    	FUNCTION DATE-TO-YYYYQQQ (Arg1 Arg2)   
    
    DISPLAY-OF	Retourne le caractère alphabétique correspondant à la valeur de l’argument pour le code page en argument 2
    	FUNCTION DISPLAY-OF (Arg1 [Arg2]) 
    
    FACTORIAL	Factorielle de l’argument
    	FUNCTION FACTORIAL (Arg) 
    
    
    INTEGER		Valeur de l'entier inférieur ou égal à l'argument
    	FUNCTION INTEGER (arg) ex : 2.5 -> 2 
    
    INTEGER-OF-DATE	Fournit le nombre de jours écoulés depuis une date pivot depuis une date au format SSAAMMJJ
    	FUNCTION INTEGER-OF-DATE (Arg) 
    
    
    INTEGER-OF-DAY	Fournit le nombre de jours écoulés depuis une date pivot depuis une date julien SSAAQQQ
    	FUNCTION INTEGER-OF-DAY (Arg) 
    
    INTEGER-PART	Fournit la partie entière de l’argument 
    	FUNCTION INTEGER-PART (Arg) 
     
    LENGTH		Fournit la longueur de l’argument
    	FUNCTION LENGTH (Arg)
    
    LOG		Fournit la valeur du logarithme de l’argument
    	FUNCTION LOG (Arg) 
    
    
    LOG10		Fournit la valeur du logarithme base 10 de l’argument
    	FUNCTION LOG10 (Arg) 
    
    LOWER-CASE	Traduction en minuscules 
    	FUNCTION LOWER-CASE (Arg) 
    
    MAX	Fournit le contenu de l’argument qui contient la valeur maximale 
    	FUNCTION MAX (Arg 1 Arg n)
    	ex: Move Function MAX(TABLE-VAL-ALPHA(ALL)) TO WS-MAXI 
    
    
    
    MEAN	Moyenne arithmétique des arguments ou d'un tableau (ALL)
    	FUNCTION MEAN (Arg1 Arg n) 
    
    MEDIAN	Valeur de largument approchant la valeur moyenne d'une liste d'arguments triés
    	FUNCTION MEDIAN (Arg1 Argn) 
    
    
    MIDRANGE Moyenne arithmétique du plus petit et du plus grand des arguments fournis
    	FUNCTION MIDRANGE (Arg1 Argn) 
    
    
    MIN	Valeur du plus argument d'une liste ou d'un tableau (ALL)
    	FUNCTION MIN (Arg1 Argn) 
    
    
    MOD	Valeur entière de Arg1 modulo Arg2
    	FUNCTION MOD (Arg 1 Arg 2) 
    
    NaTIONAL-OF Fournit le caractère nationnal correspondant à Arg1 d'après le code page fourni en Arg2
    	FUNCTION NaTIONAL-OF (Arg1 [Arg2]) 
     	
    
    NUMVAL	Fournit la valeur numérique d'un argument éditable qui peut contenir des blancs en début et fin de chaîne, les signes -, +, CR, DB, . et ,
    	FUNCTION NUMVAL (Arg) 
    
    
    NUMVAL-C Fonction est identique à NUMVAL mais pouvant également supprimer un symbole monétaire spécifié dans Arg2 
    	FUNCTION NUMVAL-C (Arg1 [Arg2])
    
    ORD 	Fournit la position ordinale (1 à 256) dans l’alphabet correspondant à la valeur du caractère spécifé dans l’argument (cf. CHAR)
    	FUNCTION ORD (Arg)
     
    
    ORD-MAX Fournit la position ordinale dans une liste d’arguments ou d'un tableau (ALL) de l’argument qui contient la valeur maximale (cf. MAX) 
    	FUNCTION ORD-MAX (Arg1 Argn) 
    
    
    ORD-MIN Fournit la position ordinale dans une liste d’arguments de l’argument qui contient la valeur minimale (cf. MIN) 
    	FUNCTION ORD-MIN (Arg1 Argn)
    
    PRESENT-VALUE	Valeur approchée d’un échéancier spécifié dans Arg2 pour le taux Arg1 
    	FUNCTION PRESENT-VALUE (Arg1 Arg2) 
    
    
    RANDOM	Fournit un (pseudo) nombre aléatoire éventuellement d’après un argument numérique (> 0)
    	FUNCTION RANDOM ([Arg]) 
    
    
    RANGE	Valeur de l’argument maxi moins la valeur de l’argument mini d'une liste d’arguments ou d'un tableau (ALL)
    FUNCTION RANGE (Arg1 Argn) 
    
    REM	Reste de la division de l’argument 1 par l’argument 2 
    FUNCTION REM (Arg1 Arg2) 
    
    
    REVERSE	Fournit une chaîne de caractères inversée
    	FUNCTION REVERSE (Arg) -> ABCD : restitué : DCBA
    
    
    SIN	Sinus de l’angle ou l’arc exprimé en radians dans l’argument
    	FUNCTION SIN (Arg) 
    
    SQRT	Fournit la racine carrée de l’argument
    	FUNCTION SQRT (Arg) 
    
    
    STANDARD-DEVIATION	Fournit la déviation entre les différents arguments 
    	FUNCTION STANDARD-DEVIATION (Arg1 Argn) 
    
    
    SUM	Somme des différents arguments
    	FUNCTION SUM (Arg1 Argn) 
    
    TAN	Tangente de l’angle ou l’arc exprimé en radians dans l’argument
    	FUNCTION TAN (Arg) 
    
    UNDATE	Fenètrage (si option DATEPROC activée) : conversion d’un champ date en champ non date (cf. DATEVAL)
    	FUNCTION DATE-TO-YYYYMMDD (Arg1 Arg2)
    
    UPPER-CASE	Traduit une chaîne de caractère en majuscules
    	FUNCTION UPPER-CASE (Arg) 
    
    
    VARIANCE	Variation entre les différents arguments 
    	FUNCTION VARIANCE(Arg1 Argn) 
    
    WHEN-COMPILED 	Date et l’heure de compilation du programme en 21 caractères alphanumériques (même format que fonction CURRENT-DATE) 
    	FUNCTION WHEN-COMPILED
    
    YEAR-TO-YYYY	Fenètrage si option DATEPROC activée : ajout du siécle dans Arg2 d'après l'année de Arg1
    	FUNCTION YEAR-TO-YYYY (Arg1 Arg2)   
    
    YEARWINDOW	Fenètrage si option DATEPROC activée : obtention de l'année de départ du siècle correspondant à la fenètre en cours
    	ex: Compute START-DATE-SSAA = Function YEARWINDOW
      0  0

  2. #2
    Expert Confirmé
    Homme Profil pro Hédhili Jaïdane
    Consultant/Formateur/Développeur AS/400, iSeries, System i et Cobol
    Inscrit en
    juin 2007
    Messages
    1 868
    Détails du profil
    Informations personnelles :
    Nom : Homme Hédhili Jaïdane
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Consultant/Formateur/Développeur AS/400, iSeries, System i et Cobol
    Secteur : Conseil

    Informations forums :
    Inscription : juin 2007
    Messages : 1 868
    Points : 3 254
    Points
    3 254

    Par défaut Remerciements

    Je trouve ça génial et de grand Coeur. Merci pour le bon travail que tu as fait..
      0  0

  3. #3
    Membre chevronné Avatar de Peut-êtreUneRéponse
    Homme Profil pro Guillaume VENTRE
    z/OS Senior Technical Leader, IBM Certified Database Associate - DB2 10.1 Fundamentals
    Inscrit en
    décembre 2006
    Messages
    543
    Détails du profil
    Informations personnelles :
    Nom : Homme Guillaume VENTRE
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : z/OS Senior Technical Leader, IBM Certified Database Associate - DB2 10.1 Fundamentals
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : décembre 2006
    Messages : 543
    Points : 666
    Points
    666

    Par défaut

    Merci
      0  0

  4. #4
    Membre expérimenté Avatar de Homer-ac
    Profil pro
    Inscrit en
    octobre 2007
    Messages
    449
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : octobre 2007
    Messages : 449
    Points : 509
    Points
    509

    Par défaut

    J'ajoute quelques informations sur les routines de service Language Environment (L.E pour les intimes), par rapport à l'utilisation des fonctions COBOL.
    Il serait un peu long et au final pas réellement indispensable d'expliquer chacune dans le détail.
    1) La doc reste très dépendante de la version L.E. pour le Z/OS installé. Elle est à mon avis mieux faite que les doc COBOL. Surtout, largement dotée d'exemples.
    2) On va retrouver des routines L.E. en alternatives au fonctions COBOL. En fait il y en a beaucoup plus.
    L'intérêt par rapport aux fonctions COBOL :
    1) La fiabilité : On dispose d'un code retour si une donnée est invalide ! (pour ceux qui ont fait le plein de S0C7).
    2) La précision : si on prend par exemple les routines mathématiques et scienifiques : CEESx..., le x se décline en
    I 32 bits binare
    S 32 bits virgule flottante simple
    D 64 bits virgule flottante double
    Q 128 bit virgule flottante étendue
    T 32 bits virgule flottante simple d'un nombre complexe
    E 64 bits virgule flottante double d'un nombre complexe
    R 128 bits virgule flottante étendue d'un nombre complexe
    Autre exemple, si la fonction Current-date permet d'avoir l'heure en centièmes de secondes, la fonction CEELOCT la restitue en millièmes.
    3) Le choix : Accessibles par les langages autres que COBOL et beaucoup plus de possibilités (routines pour gérer les problèmes (CEE3ABD, CEE3DMP ...) ou encore pour acquérir et libérer de la mémoire, convertir des données etc.

    Le plus simple est de soumettre un exemple.
    Pour hypothèse, un module de contrôle et de manipulation d'une date.
    En COBOL l'utilisation des fonctions dates suppose que l'on ait vérifié la date en amont. Non seulement elle doit être valide, mais elle doit être usuellement au format SSAAMMJJ.
    Les routines L.E permettent de facilement vérifier si une date est valide, via une conversion par un nombre de jours relatifs depuis une date pivot (date 'Lilian'), changer le format d'une date comme on le désire et en plus par fenêtrage ajouter le siècle en retour.
    Le fait de transiter par cette date pivot permet au passage de faire de l'incrément ou décrément de jours sur une date (et de vérifier facilement au passage si une année est bissextile) et bien entendu de convertir dans des formats multiples.
    Par exemple, masque de départ DDMMYY (JJMMAA) puis restitution YYYYDDD (SSAAQQQ)
    J'espère que cet exemple donnera une indée de l'intérêt de ces routine :
    Code :
    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
           Identification Division.                                         
            Program-Id. VERDATES.                                           
          *---------------------------------------------------------------  
          * Module COBOL exemple d'appel de fonctions intrinseques L.E.     
          * (alternative aux fonctions dates COBOL,sans risque de S0C7)     
          *---------------------------------------------------------------  
          * - RECOIT une zone de communication de 36 caractères contenant:  
          * - Zone de réception :                                           
          *   1C : Version d'appel = ' ' obligatoire (gestion évolutions)   
          *   8C : date à traiter et vérifier au format par défaut SSAAMMJJ    
          *   8C : format L.E. de la date de réception (défaut YYYYMMDD)    
          *   2C : (binary) incrément positif ou négatif de la date à       
          *        restituer au format SSAAMMJJ et SSAAQQQ                  
          *        (A zéro pour simple vérification et conversion format de la date)  
          * - Zone de restitution :                                         
          *   1C : Code retour :                                            
          *        '0' traitement OK                                        
          *        '1' date recue invalide / masque format date non conforme
          *        '2' erreur module (écrasement de données ?)              
          *        '3' version d'appel invalide (non blanc)                 
          *   8C : Date recalculée au format SSAAMMJJ                       
          *   7C : Date recalculée au format SSAAQQQ                        
          *   1C : Jour de la semaine (1 = Lundi etc ...)                   
          *---------------------------------------------------------------  
          * ! - COPY COBOL : CF. WDT-ZCOM en Linkage Section                
          *---------------------------------------------------------------  
           Environment Division.                                            
           Configuration Section.                                       
           Source-computer. z9.                                         
           Data Division.                                               
           Working-Storage Section.                                     
           01.                                                          
              05                    Pic  X(16) Value '* WSS VERDATES *'.
              05 WS-CNT             Pic  S9(4) Binary.                  
              05 WS-RC              Pic  X.                             
              05 WS-WEEKDAY         Pic  9.                             
                                                                        
          * Niveaux 01 pour les zones d'appel L.E.                      
           01 CEE-LILIAN            Pic  s9(8) Binary.                  
           01 CEE-WEEKDAY           Pic  S9(8) Binary.                  
           01 CEE-DATE.                                                 
              05 CEE-DATE-LONG      Pic  S9(4) Binary.                  
              05 CEE-DATE-DATA      Pic  X(256).                        
           01 CEE-FORM.                                                 
              05 CEE-FORM-LONG      Pic  S9(4) Binary.                  
              05 CEE-FORM-DATA      Pic  X(256).                        
          *   Codes retour L.E. (cf. COPY L.E. : CEEIGZCT)              
           01 FC.                                                       
                 10 FC-COND-ID.                                         
                    15 SEVERITE     Pic  S9(4) Binary.                  
                    15 MSG-NO       Pic  S9(4) Binary.                  
                    15              Pic   X(8).                         
                                                                        
           Linkage Section.                                             
                                                                        
           01 WDT-ZCOM.                                                     
              05 WDT-DATE-NVERS     Pic   X.                                
              05 WDT-DATE-RECUE     Pic   X(8).                             
              05 WDT-DATE-MASK      Pic   X(8).                             
              05 WDT-DATE-INCR      Pic  S9(4) Binary.                      
              05 WDT-DATE-OUT.                                              
                 10 WDT-DATE-RC     Pic   X.                                
                 10 WDT-DATE-SAMJ   Pic   X(8).                             
                 10 WDT-DATE-SAQQ   Pic   X(7).                             
                 10 WDT-DATE-JSEM   Pic   X.                                
                                                                            
           Procedure Division using WDT-ZCOM.                               
                                                                            
           MAIN Section.                                                    
               Move    '3'       to   WS-RC                                 
               If   WDT-DATE-NVERS not = space then perform RETOUR End-if   
               If   WDT-DATE-MASK not >  space                              
                    Move 'YYYYMMDD'    to  CEE-FORM-DATA                    
               Else                                                         
                    Move WDT-DATE-MASK to  CEE-FORM-DATA                    
               End-if                                                       
                                                                            
          * Calcul de la longueur du masque date et alimentation pour L.E   
               Move function Reverse(CEE-FORM-DATA) to CEE-DATE-DATA        
               Move 0  to WS-CNT                                            
               Inspect CEE-DATE-DATA  Tallying WS-CNT For Leading space     
               Compute CEE-FORM-LONG  = length of CEE-FORM-DATA - WS-CNT    
               Move    Space          to CEE-DATE     FC                    
               Move    CEE-FORM-LONG  to CEE-DATE-LONG                      
                                                                            
               Move    '1'       to   WS-RC                                 
               If   WDT-DATE-RECUE(1:CEE-DATE-LONG) not Numeric             
                       Perform RETOUR                                       
               End-if                                                       
               Move WDT-DATE-RECUE(1:CEE-DATE-LONG) to CEE-DATE-DATA        
                                                                            
          * Conversion date recue  en entier relatif (date LILIAN)          
               Call   'CEEDAYS' using    CEE-DATE CEE-FORM CEE-LILIAN FC    
               If FC-COND-ID NOT = LOW-VALUE    Perform RETOUR    End-if    
                                                                            
          * La date et le masque sont valides : incrément date LILIAN       
          * ---------------------------------------------------------       
               Move    '0'            to WS-RC                              
               Add     WDT-DATE-INCR  to CEE-LILIAN                         
                                                                            
          * Conversion date LILIAN en date SSAAMMJJ                         
               Move    space          to CEE-DATE FC                        
               Move    8              to CEE-DATE-LONG                      
                                         CEE-FORM-LONG                      
               Move   'YYYYMMDD'      to CEE-FORM-DATA                      
               Call   'CEEDATE' using    CEE-LILIAN CEE-FORM                
                                         CEE-DATE   FC                      
               Move CEE-DATE          to WDT-DATE-SAMJ                      
                                                                            
          * Conversion date LILIAN en date SSAAQQQ                          
               Move    space          to CEE-DATE FC                        
               Move    7              to CEE-DATE-LONG                     
                                         CEE-FORM-LONG                     
               Move   'YYYYDDD'       to CEE-FORM-DATA                     
               Call   'CEEDATE' using    CEE-LILIAN CEE-FORM               
                                         CEE-DATE   FC                     
               Move CEE-DATE          to WDT-DATE-SAQQ                     
                                                                           
          * Calcul du jour de la semaine depuis 1 = LUNDI                  
               Call   'CEEDYWK' using  CEE-LILIAN CEE-WEEKDAY FC           
               If FC-COND-ID NOT = LOW-VALUE  then                         
                  Move    '2' to   WS-RC                                   
                  Perform RETOUR                                           
               End-if                                                      
          *    CEEDYWK restitue de 1=Dimanche à 7=Samedi                   
          *            -On veut de 1=Lundi    à 7=Dimanche                 
               If CEE-WEEKDAY = 1                                          
                  Move          7 to   CEE-WEEKDAY                         
               Else                                                        
                  Subtract      1 from CEE-WEEKDAY                         
               End-if                                                      
               Move    CEE-WEEKDAY to WS-WEEKDAY                           
               Move    WS-WEEKDAY  to WDT-DATE-JSEM                        
                 .                                                         
           RETOUR.                                                         
               Move ZERO to Return-Code                                    
               Move WS-RC       to WDT-DATE-RC                             
               If WS-RC > '0'   then                                       
          *    Si erreur L.E. codes retours L.E. rendus dans date sortie   
                  Move FC       to WDT-DATE-SAMJ                          
               End-if                                                     
                                                                          
          *    WDT-DATE-RC est forcément numérique. Ce test évite juste   
          *    les Warning générés par COBOL pour non retour du PERFORM   
               If WDT-DATE-RC is numeric then                             
                  Goback                                                  
               End-if                                                     
                     .                                                    
           End Program VERDATES.
      0  0

Discussion fermée
Cette discussion est résolue.

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •