|
|
|
|
Publiée le February 26, 2010 16:13  | nombre de lecture : 4590
Si vous avez besoin de faire une pause dans votre programme ABAP j'ai deux solutions
Des pauses en secondes :
FORM MYDELAYINSECOND
USING nbofseconds type I.
DATA: TIM LIKE SY-UZEIT.
TIM = SY-UZEIT.
TIM = TIM + nbofseconds.
DO.
GET TIME.
IF TIM < SY-UZEIT.
EXIT.
ENDIF.
ENDDO.
ENFORM.
Des pauses en micro secondes :
FORM DELAYINMICROSECOND using mydelay type INT4. DATA: myTime TYPE INT4, mycurrenttime TYPE INT4. GET RUN TIME FIELD mytime. mytime = mytime + mydelay. DO. GET RUN TIME FIELD mycurrenttime. IF myTime < mycurrenttime. EXIT. ENDIF. ENDDO. ENDFORM.
Tuesday, March 02, 2010 7:21 AM
Et l'instruction de pause? Il n'y a pas un wait qui manquerait?
Tuesday, March 02, 2010 7:33 AM
WAIT UP TO cnt SECONDS. pour les pauses en secondes Qui a besoin de pauses en microsecondes ?
Tuesday, March 02, 2010 8:50 AM
Bah moi j'ai eu besoin de faire un low balancing qui fonctionne en micro seconde... Oui j'ai oublié le wait up to x SECONDS...
Tuesday, March 02, 2010 9:46 AM
Rien à voir avec les délais, c'est un conseil d'ordre général pour tous les langages: remplace tes x = x + y par add y to x -> tu gagnes en lisibilité -> tu gagnes en performance (pas en ABAP mais en Java, en C, ...)
Tuesday, March 02, 2010 12:42 PM
là je ne suis pas convaincu....
Tuesday, March 02, 2010 1:16 PM
Tu gagnes en lisibilité, c'est indubitable (et ce seul argument devrait même suffire). Pour le gain en performance il faut penser assembleur : Quand tu fais x = x + y tu sauvegardes x dans un registre, tu calcules x+y dans un autre. Quand tu fais add y to x tu utilises une seule instruction et un seul registre. CQFD.
Tuesday, March 02, 2010 1:23 PM
Je vais me rajouter à cette discussion, même si elle me semble éloignée du sujet principal. l'abap étant un langage interprété compilé, au même titre que JAVA. Je ne suis pas sûr qu'il y ait une différence entre les 2 manières d'écrire, puisqu'à la fin ce sera certainement traduit en assembleur. Donc merci pour l'indication de l'information du traitement en assembleur, j'aurai appris quelque chose. Enfin, pour ce qui est de la lisibilité, cela dépend de chacun. A part les compteurs, il y a peu de chance que j'utilise ADD, parce que j'aurai des calcules complexes à faire. Il y a peu de personnes qui pensent assembleur en programmant de l'ABAP. Mais cela se défend.
Tuesday, March 02, 2010 1:30 PM
En ABAP tu ne gagneras rien du tout avec le ADD. Mais çe te servira dans d'autres langages. La lisibilité n'est pas à négliger. J'en connais qui utilisent encore des constantes OK et KO; à la fin de la journée, à force de lire des IF valeur = OK ou IF valeur = KO tu as besoin d'aspro !
Tuesday, March 02, 2010 2:23 PM
DataWorlf.... j'aime ton propos alors le plus simple est de le mettre à l'épreuve d'un bench mark... Par contre pour la lisibilité je préfère 0 + 0 = la tete toto plutot que Add 0 to 0 = pas la tete à toto ... Pour le C# ton argument ne marche pas non plus...
Tuesday, March 02, 2010 2:33 PM
Tant pis... pour toi.
Tuesday, March 02, 2010 3:27 PM
lol ....
|
|
Les maques SAP, ABAP, BSP, Microsoft, .net, sont des marques déposées par leurs ayant-droiits.
Le site www.sap-integration.net est un site indépendant de SAP et de Microsoft et de tout autre éditeurs de logiciels ou fabricants de matériels.
|
|
|
|
|
|