2009-03-09 10 views
1

ABAP autorise-t-il l'écriture sur stdout et stderr? J'ai besoin d'écrire de petits programmes pour tester les connexions d'interface aux systèmes SAP via un planificateur de travail (Cronacle). Par exemple, démarrez/écrivez "Hello World!" + date + heure pour stdout/exit. Je suis un programmeur .net chargé de ce programme apparemment TRIVIAL et je suis coincé.ABAP Stdout et Stderr

Répondre

1

appliaction Log (Transaction SLG0, SLG1) Tables BAL *, est très très cool pour le traçage ... il est beaucoup plus amusant, parce qu'il est bon même pour le fond les tâches, les différents comptes utilisateur, invisibles pour l'utilisateur et l'effacement des anciennes entrées de trace peuvent être définis lors de leur création. c'est le paradis pour moi de ne plus devoir déboguer.

1

Je suppose que vous exécutez SAP sur un système basé sur UNIX/Linux avec une pile ABAP. SAP essaie de faire abstraction du plus possible de l'OS sous-jacent. Cette technique devrait tenir sur Windows avec quelques modifications mineures. Dans le SM49 "Commandes OS externes", vous pouvez configurer une commande pour exécuter cat et transmettre les valeurs que vous souhaitez écrire dans la console pour interagir avec le système d'exploitation.

Je pense que vous feriez mieux d'écrire vos messages dans un fichier sur le système hôte. Pour faire ça;

OPEN DATASET i_file FOR OUTPUT IN TEXT MODE ENCODING DEFAULT. 

puis d'écrire des données dans le fichier en utilisant;

TRANSFER wa_text TO i_file. 

alors quand votre fait ne pas oublier

CLOSE DATASET i_file. 

Vous pouvez alors regarder le contenu du fichier dans AL11 ou ramasser directement sur l'hôte. Si vous voulez voir les messages tels qu'ils sont imprimés sur l'hôte Unix. Connectez-vous avec une console et utilisez moins de + F/var/log/ou queue. Sur les fenêtres, je suis sûr qu'il y a un substitut égal.

1

Il existe plusieurs options pour écrire des "informations de débogage" comme ce que vous demandez. Deux possibilités mentionnées ici dans les réponses précédentes sont le journal d'application (modules de fonction SLG1 et SBAL *) et l'écriture dans un fichier.

Pour votre situation, cependant, vous mentionnez l'exécution de programmes en arrière-plan. Dans ce cas, le mieux est de simplement émettre des messages avec MESSAGE (vous pouvez restreindre l'émission de messages au traitement en arrière-plan en vérifiant la valeur de SY-BATCH).

Les messages émis par un programme exécuté en arrière-plan sont visibles dans le journal des travaux lorsque vous passez à SM37.

Questions connexes