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

SAP Discussion :

Récupérer la valeur d'une zone Dynpro sous excel


Sujet :

SAP

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2013
    Messages
    55
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2013
    Messages : 55
    Points : 37
    Points
    37
    Par défaut Récupérer la valeur d'une zone Dynpro sous excel
    Bonjour à tous,

    Je cherche une macro Excel me permettant la chose suivante :

    - accéder à une transaction
    - Remplir un champs
    - exécuter
    - récupérer la valeur d'une zone DynPro sous Excel


    Est-ce possible ?

    Si possible sans modification du côté SAP !

    Je vous remercie d'avance.


    Charles

  2. #2
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 617
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 617
    Points : 5 912
    Points
    5 912
    Par défaut
    Bonjour,

    Oui, c'est possible.
    Si tu as les droits d'utilisation des enregistrements de macros.

    Dans l'écran d'accueil, tapes Alt-F12 et choisis Enregistrement et playback de script.
    Dans la petite fenêtre qui apparaît, clique "Plus>>" pour retrouver (et/ou changer) le répertoire où sont enregistrés les scripts.
    Change le nom du fichier pour quelque chose de reconnaissable.
    Et démarre l'enregistrement (bouton rouge)
    Roule ton script................................
    Quand ta requête est terminée, clique le bouton jaune.
    Le fichier généré (.vbs) peut être ouvert dans le bloc-note ou Notepad++ ou autre

    Pour la zone dynpro, si tu sélectionnes le champ et que tu tapes F1, une fenêtre s'ouvre.
    Clique le bouton avec des outils pour connaître les différentes valeurs dont le dynpro si disponible...
    Autrement, en lisant le script que tu as fais, tu peux essayer de décrypter le code pour retrouver ce que tu recherches.
    MPi²

  3. #3
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 617
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 617
    Points : 5 912
    Points
    5 912
    Par défaut
    Quelle est la transaction que tu utilises ?
    Je pourrais voir si j'y ai accès.
    MPi²

  4. #4
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2013
    Messages
    55
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2013
    Messages : 55
    Points : 37
    Points
    37
    Par défaut
    c'est une transaction interne ...

    mais peut être aurait tu la syntaxe pour :

    - une connexion ?
    - l'accès à une transaction "TTT" depuis l'écran d'accueil
    - valider
    - Remplir un champs Dynpro "XXX" selon une variable excel "X"
    - Exécuter
    - Récupérer la valeur d'un champs dynpro "YYY" sous excel dans "Y"

  5. #5
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 617
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 617
    Points : 5 912
    Points
    5 912
    Par défaut
    Pour une connection, j'utilise ce modèle
    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
        Dim SapGuiAuto As Object
        Dim AppliSAP As Object  'SAPFEWSELib.GuiApplication
        Dim Connection As Object  'SAPFEWSELib.GuiConnection
        Dim Session As Object  'SAPFEWSELib.GuiSession
        Dim Grille As Object  'SAPFEWSELib.GuiTableControl
    
        On Error GoTo Erreur
        
        Set SapGuiAuto = GetObject("SAPGUI")
        If Not IsObject(SapGuiAuto) Then
            Exit Sub
        End If
        
        Set AppliSAP = SapGuiAuto.GetScriptingEngine()
        If Not IsObject(AppliSAP) Then
            Exit Sub
        End If
        
        Set Connection = AppliSAP.Connections(0)
        If Not IsObject(Connection) Then
            Exit Sub
        End If
        
        Set Session = Connection.Sessions(0)
        If Not IsObject(Session) Then
            Exit Sub
        End If
        
        'Connexion à la transaction
        Session.FindById("wnd[0]/tbar[0]/okcd").Text = "/nme23n"
        Session.FindById("wnd[0]/tbar[0]/btn[0]").Press
        
        Set Grille = Nothing
        Set Session = Nothing
        Set Connection = Nothing
        Set AppliSAP = Nothing
        Set SapGuiAuto = Nothing
    
        Exit Sub
    Erreur:
        If Err.Number = -2147221020 Or Err.Number = 614 Then
            MsgBox "Démarrer une session SAP", vbExclamation, "Erreur SAP"
            Application.WindowState = xlMaximized
            Exit Sub
            
        ElseIf Err.Number = 619 Then
            MsgBox Err.Description & vbCrLf & "S'il y a une session BW ouverte, la fermer avant de rouler la macro", vbInformation, "Erreur SAP"
        
        ElseIf Err.Number = 613 Then
            Resume Next
            
        Else
            MsgBox Err.Number & vbCrLf & Err.Description
            Stop
            Resume
        End If
        Stop
        Resume
    Les variables sont déclarées As Object si tu ne crées pas de références
    Autrement, tu peux créer des références à SAP GUI Scripting API dans
    c:\program files (x86)\sap\frontend\sapqui\sapfewse.ocx
    et utiliser les types de variables que j'ai mis en commentaire
    J'utilise aussi une référeence au GridView control dans
    c:\program files (x86)\sap\frontend\sapqui\gridview.ocx
    Ça peut être utile pour voir les propriétés et méthodes dans la fenêtre Espions

    Par contre, je ne peux pas vraiment t'aider plus loin sans avoir accès à ta transaction.
    En faisant comme je t'ai indiqué (enregistreur et touche F1 sur les contrôles), tu devrais pouvoir avancer un peu...
    MPi²

Discussions similaires

  1. récupérer les valeurs d'une zone de liste à sélection multiple
    Par garsflo dans le forum Requêtes et SQL.
    Réponses: 5
    Dernier message: 09/07/2009, 21h19
  2. Récupérer derniere valeur d'une zone de liste
    Par alexkickstand dans le forum IHM
    Réponses: 3
    Dernier message: 17/12/2007, 18h47
  3. comment récupérer la valeur d'une zone texte ?
    Par jessy212 dans le forum Access
    Réponses: 2
    Dernier message: 24/08/2006, 14h59
  4. Réponses: 2
    Dernier message: 08/06/2006, 13h38
  5. Réponses: 2
    Dernier message: 12/04/2006, 10h00

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