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

  1. #1
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    août 2012
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : août 2012
    Messages : 18
    Points : 14
    Points
    14
    Par défaut Enregistrer un PDF à partir SAP scripting
    Bonjour à tous,

    Comme l'indique le titre, Je cherche à enregistrer un PDF à partir d'SAP.
    J'ai trouvé quelquechose d'interessant sur un forum anglais:
    https://stackoverflow.com/questions/...95476#58095476
    Mais je bute sur la toute dernière ligne:
    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
    Sub DocumentExtraction()
    
        Dim varResponse As Variant 'Prompts the user if macro should be run.
        varResponse = MsgBox("Are you sure you wish to run extraction macro?", vbYesNo, "Warning!")
        If varResponse <> vbYes Then Exit Sub
    
        Set SapGuiAuto = GetObject("SAPGUI") 'Obtains SAP GUI Scripting object.
        Set SAPApp = SapGuiAuto.GetScriptingEngine 'Obtains currently running SAP GUI.
        Set SAPCon = SAPApp.Children(0) 'Obtains the first system currently connected.
        Set session = SAPCon.Children(0) 'Obtains the first session (window) on that connection.
    
        ' SAP scripting starts here.
    
        session.findById("wnd[0]").maximize
        session.findById("wnd[0]/tbar[0]/okcd").Text = "/nFB03"
        session.findById("wnd[0]").sendVKey 0
        session.findById("wnd[0]/usr/txtRF05L-BELNR").Text = "930502016"
        session.findById("wnd[0]/usr/ctxtRF05L-BUKRS").Text = "7360"
        session.findById("wnd[0]/usr/txtRF05L-GJAHR").Text = "2019"
    
        ' These lines are not needed and just recorded by the script recorder of SAP
        'session.findById("wnd[0]/usr/txtRF05L-GJAHR").SetFocus
        'session.findById("wnd[0]/usr/txtRF05L-GJAHR").caretPosition = 4
    
        session.findById("wnd[0]").sendVKey 0
        session.findById("wnd[0]/titl/shellcont/shell").pressContextButton "%GOS_TOOLBOX"
        session.findById("wnd[0]/titl/shellcont/shell").selectContextMenuItem "%GOS_VIEW_ATTA"
        session.findById("wnd[1]/usr/cntlCONTAINER_0100/shellcont/shell").selectedRows = "0"
    
        ' Export of the attached file
        ' assumption is that it is a PDF file
        session.findById("wnd[1]/usr/cntlCONTAINER_0100/shellcont/shell").pressToolbarButton "%ATTA_EXPORT"
        session.findById("wnd[2]/usr/ctxtDY_FILENAME").Text = "930502016.PDF"
        session.findById("wnd[2]/tbar[0]/btn[11]").press 'message Error occurred when the function was executed
    
    End Sub
    En effet, sur la dernière ligne, j'ai le message "Error occurred when the function was executed".
    (Le message d'erreur est dans SAP, une option à cochée?)
    Quelqu'un aurait une solution?

    Merci par avance au forum :-)

  2. #2
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    août 2012
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : août 2012
    Messages : 18
    Points : 14
    Points
    14
    Par défaut
    Bonjour à tous,

    J'ai finalement trouvé une solution avec SendKeys:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    'Ouvre la boite de dialogue Save as
    Sleep 2000
    Application.SendKeys "%ds"
    
    'Attribue le nom de ma variable documentNumber et sauvegarde
    Sleep 2000
    Application.SendKeys "%n"
    Application.SendKeys "" & documentNumber & ".pdf~"
    Sleep 2000
    
    'Ferme le document
    Application.SendKeys "%dx"

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 4
    Dernier message: 30/08/2018, 12h39
  2. [XL-2007] Pb enregistrement PPT en pdf à partir d'excel
    Par gegejob dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 06/08/2012, 17h48
  3. Réponses: 1
    Dernier message: 20/05/2011, 18h19
  4. créer un pdf à partir d'un post script
    Par PadawanInPerl dans le forum Langage
    Réponses: 14
    Dernier message: 20/08/2010, 10h12
  5. Réponses: 3
    Dernier message: 06/03/2008, 16h16

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