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. ###raw>post.musername###
    Nouveau Candidat au Club
    Importer une date Excel dans une transaction SAP Gui
    Bonjour a tous,

    Je suis nouveau sur le forum, j'apprends actuellement a automatiser une transaction par SAP et faire un extraction sur SAP.

    Je m'explique plus en détails :

    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
    SAP_session.findById("wnd[0]").Maximize
    SAP_session.findById("wnd[0]/tbar[0]/okcd").Text = "ZMOP"
    SAP_session.findById("wnd[0]").sendVKey 0
    SAP_session.findById("wnd[0]/usr/ctxtP_WERKS").Text = "F5UT"
    SAP_session.findById("wnd[0]/usr/ctxtS_TPLNR-LOW").Text = "*LT000P*0I*"
    SAP_session.findById("wnd[0]/usr/ctxtS_AUART-LOW").Text = "ZM01"
    SAP_session.findById("wnd[0]/usr/ctxtS_GSTRP-LOW").Text = " Date du jour " 
    SAP_session.findById("wnd[0]/usr/ctxtS_GSTRP-HIGH").Text = " Date moins 5 jours "
    SAP_session.findById("wnd[0]/usr/ctxtS_GSTRP-HIGH").SetFocus
    SAP_session.findById("wnd[0]/usr/ctxtS_GSTRP-HIGH").caretPosition = 8
    SAP_session.findById("wnd[0]/tbar[1]/btn[8]").press
    SAP_session.findById("wnd[0]/usr/cntlCONTAINER_0100/shellcont/shell").PressToolbarContextButton "&MB_EXPORT"
    SAP_session.findById("wnd[0]/usr/cntlCONTAINER_0100/shellcont/shell").SelectContextMenuItem "&HTML"
    SAP_session.findById("wnd[1]/usr/ctxtDY_PATH").Text = "\\Ltrsfsd01\partages espace permanent\TECHNIQUE\Maintenance Mirage\Rel?ve"
    SAP_session.findById("wnd[1]/usr/ctxtDY_FILENAME").Text = "OTmirage.htm"
    SAP_session.findById("wnd[1]/usr/ctxtDY_FILENAME").caretPosition = 8
    SAP_session.findById("wnd[1]/tbar[0]/btn[11]").press
    SAP_session.findById("wnd[0]/tbar[0]/btn[12]").press

    En fait, j'aimerais automatiser ceci pour avoir toujours la date du jour en premier et en deuxième la date du jour -5 jours.

    L'objectif est d'avoir une extraction des ordres de travaux des 5 derniers jours.

    Deux possibilités, soit que tout soit automatisé avec SAP en interne, soit mettre les dates sur Excel et que SAP sache venir chercher les dates dans les cases prévues à cet effet, que je pourrai éventuellement automatiser avec les fonctions comme Now () …

    Si vous avez des idées n'hésitez pas, merci d'avance pour votre aide.

    Florent
      0  0

  2. #2
    Membre éprouvé
    Bonjour,

    Je ne vais pas pouvoir t'être d'une grande aide, cependant j'ai remarqué quelque chose qui va te bloquer. À la vue des champs d'écran que tu remplis, je constate que tu remplis un select-option, reconnaissable avec les "-LOW" et "-HIGH" en fin, qui est soumis à certaines règles de contrôle, notamment pour ceux servant à saisir une date.

    L'une de ces règles est que la date de début "LOW" ne peut pas être supérieure à la date de fin "HIGH" d'une intervalle de date. Donc, dans la logique, il faut saisir :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SAP_session.findById("wnd[0]/usr/ctxtS_GSTRP-LOW").Text = "Date du jour - 5"
    SAP_session.findById("wnd[0]/usr/ctxtS_GSTRP-HIGH").Text = " Date du jour"
    Sinon, pour le reste, je ne me suis jamais intéressé aux extractions depuis Excel, SAP possédant nativement des fonctionnalités d'extraction vers Excel, notamment via les tableaux type grille ALV.
    Boaf...signature <= ça suffira ça ??

  3. #3
    Nouveau Candidat au Club
    Bonjour et merci beaucoup pour ta réponse même si oui elle ne m'aide pas trop à résoudre mon problème, je suis toujours content de lire des réponses constructives.

    Ce script à été crée automatiquement avec l'outils "Enregistrement et playback de script…" .

    Le script généré et qui fonctionne est le suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SAP_session.findById("wnd[0]/usr/ctxtS_GSTRP-LOW").Text = "01.01.20" 
    SAP_session.findById("wnd[0]/usr/ctxtS_GSTRP-HIGH").Text = "31.12.20"
    Donc malgrès le contrôle que je viens de faire, je t'assure que sa fonctionne.
    Je ne doute cependant pas de tes compétences qui peuvent être que supérieurs aux miennes puisque je pars de rien

  4. #4
    Membre éprouvé
    Oui, parce que la date "01.01.20" est bien inférieure à "31.12"20", mais si tu tentes de faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SAP_session.findById("wnd[0]/usr/ctxtS_GSTRP-LOW").Text = "31.12.20"
    SAP_session.findById("wnd[0]/usr/ctxtS_GSTRP-HIGH").Text = "01.01.20"
    Tu constateras que tu obtiendras un message d'erreur de type :
    Lower limit is greater than upper limit

    Diagnosis

    With ranges, the lower limit must not be greater than the upper limit.
    Boaf...signature <= ça suffira ça ??

  5. #5
    Nouveau Candidat au Club
    Salut

    Merci pour ta réponse, effectivement sa me donne un message d'erreur si les dates sont inversés mais sa me semble normal

  6. #6
    Membre éprouvé
    Voilà, c'était juste ça que je voulais te faire remarquer, même si j'imagine que tu t'en serais aperçu tout seul…

    Mais comme je ne voyais personne te répondre, je me suis dis que j'allais répondre quelque chose d'utile, même si ça ne répondait pas vraiment à la question que tu posais, au moins ça garde le topic en haut de la liste. ^^

    J'espère en tout cas que quelqu'un répondra à la question que tu posais. D'ailleurs, pour en revenir à ce sujet, est-ce que tu peux donner plus de détails sur l'automatisation en soi ?
    T'as imaginé trois cas qui semblent à première vue faisable, mais qu'est-ce qui te bloque dans la mise en place de ces trois solutions ?
    Boaf...signature <= ça suffira ça ??

  7. #7
    Nouveau Candidat au Club
    Coordonnées cellule
    Bonjour,

    je comprends que tu veux lancer un script VBA d'Excel et utiliser la fonction Aujourd'hui() pour automatiquement saisir le jour dans la transaction SAP utilisée ?

    En renseigant : SAP_session.findById("wnd[0]/usr/ctxtS_GSTRP-LOW").Text = Cells(L, C) avec L et C les coordonnées de la cellule de la feuille Excel active sur laquelle tu auras saisi la date, ça devrait marcher non ?
    Pour utiliser la fonction Aujourd'hui() je pense aussi qu'il faudra remplacer les "/" par des "." dans ton scripte VBA.

    Je ne sais pas si j'ai bien compris ta demande, bonne chance en tout cas

  8. #8
    Membre à l'essai
    Bonjour,

    Voici ce que j'utilise :

    Sur Excel, j'ai mis la date que je voulais dans la colonne A, pour ma part, c'est le dernier jour ouvré via la formule : =SERIE.JOUR.OUVRE.INTL(AUJOURDHUI();-1;1;G2:G8)

    Sur la colonne B, j'ai transposé cette date en date SAP via la formule :
    =TEXTE(A2;"jj.mm.aaaa")

    Voir ce que cela donne :


    Du coup, mon code vient chercher la date de la cellule B2 en mettant une variable en début de code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    'Attribution des variables
    Jour = Cells(ligne, 2).Value
    Puis, tout simplement en allant chercher cette variable pour la mettre dans le champ que je souhaite :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MasessionPGI.findById("wnd[0]/usr/ctxtS_BDTER-LOW").Text = Jour
    J'espère que cela peut t'aider.

###raw>template_hook.ano_emploi###