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 :

Module fonction RFC pour Read_Text


Sujet :

SAP

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Août 2017
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Août 2017
    Messages : 71
    Points : 25
    Points
    25
    Par défaut Module fonction RFC pour Read_Text
    Bonjour à tous,

    Je suis novice en développement SAP et aujourd'hui pour un programme externe à SAP j'ai besoin de pouvoir appeler depuis l'extérieur la fonction de SAP standard Read_Text

    J'ai donc créé une module fonction appelable par l'extérieur (RFC) Z_READ_TEXT dans lequel je fais un CALL Function de Read_Text

    Dans l'onglet "Imporation" du programme j'ai ajouté un paramètre avec le nom IW_THEAD catégorisé "TYPE" et typé réf. "THEAD"

    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
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    FUNCTION Z_READ_TEXT.
    
    *"----------------------------------------------------------------------
    
    *"*"Interface locale :
    
    *"  IMPORTING
    
    *"     VALUE(IW_THEAD) TYPE  THEAD OPTIONAL
    
    *"  EXPORTING
    
    *"     VALUE(EW_SUBRC) TYPE  SYSUBRC
    
    *"  TABLES
    
    *"      LINES STRUCTURE  TLINE
    
    *"  EXCEPTIONS
    
    *"      ID
    
    *"      LANGUAGE
    
    *"      NAME
    
    *"      NOT_FOUND
    
    *"      OBJECTREFERENCE_CHECK
    
    *"      WRONG_ACCESS_TO_ARCHIVE
    
    *"----------------------------------------------------------------------
    
    
    
       DATA : l_textlines TYPE TABLE OF tline WITH HEADER LINE.
    
       DATA : l_thead TYPE thead.
    
    
    
       DATA : stream TYPE line.
    
    
    
       l_thead = iw_thead.
    
    
          CALL FUNCTION 'READ_TEXT'
    
            EXPORTING
    
              client                  = '141'
    
              object                  = iw_thead-tdobject
    
              name                    = iw_thead-tdname
    
              id                      = iw_thead-tdid
    
              language                = iw_thead-tdspras
    
              local_cat               = 'G'
    
    *        IMPORTING
    
    *         header                  = gs_textheader
    
            TABLES
    
              lines                   = l_textlines[]
    
            EXCEPTIONS
    
              id                      = 01
    
              language                = 02
    
              name                    = 03
    
              not_found               = 04
    
              object                  = 05
    
              reference_check         = 06
    
              wrong_access_to_archive = 07
    
              OTHERS                  = 16.
    
    
    
          IF sy-subrc = 0.
    
            LOOP AT l_textlines.
    
              AT FIRST.
    
                CONTINUE. "skip first line which is description
    
              ENDAT.
    
              CONDENSE l_textlines-tdline.
    
              line = l_textlines-tdline.
    
              APPEND line TO stream.
    
            ENDLOOP.
    
          ENDIF.
    
    
    ENDFUNCTION.
    J'obtiens une erreur : Zone "LINE" inconnue. Une zone avec un nom similaire "LINES" existe.

    Merci par avance pour votre aide.

  2. #2
    Membre éprouvé Avatar de Celdrøn
    Homme Profil pro
    Consultant SAP
    Inscrit en
    Juillet 2007
    Messages
    614
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Consultant SAP

    Informations forums :
    Inscription : Juillet 2007
    Messages : 614
    Points : 1 008
    Points
    1 008
    Par défaut
    Bonjour,

    C'est juste que tu t'es trompé dans ta syntaxe en ligne 106~108. À aucune moment tu ne déclares de variable/structure « LINE », cela provoque donc une erreur de compilation. De plus, le type LINE, ayant servi à déclarer STREAM, étant un type de structure, STREAM n'est donc pas une table mais une structure, tu ne peux donc pas faire de APPEND sur cette donnée.

    Voilà qui devrait t'aider.
    Boaf...signature <= ça suffira ça ??

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Août 2017
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Août 2017
    Messages : 71
    Points : 25
    Points
    25
    Par défaut
    Bonour Celdrøn,

    merci beaucoup pour ta réponse rapide !

    Cependant je ne comprends pas concrètement comment régler le problème ?

    Ceci est mon premier programme ABAP !

    Merci pour le coup de pouce.

  4. #4
    Membre éprouvé Avatar de Celdrøn
    Homme Profil pro
    Consultant SAP
    Inscrit en
    Juillet 2007
    Messages
    614
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Consultant SAP

    Informations forums :
    Inscription : Juillet 2007
    Messages : 614
    Points : 1 008
    Points
    1 008
    Par défaut
    Version revue et corrigée, tu peux t'en inspirer pour corriger ton code.

    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
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    function z_read_text.
    
    *"----------------------------------------------------------------------
    *"*"Interface locale :
    *"  IMPORTING
    *"     VALUE(IW_THEAD) TYPE  THEAD OPTIONAL
    *"  EXPORTING
    *"     VALUE(EW_SUBRC) TYPE  SYSUBRC
    *"  TABLES
    *"      T_LINES STRUCTURE  TLINE
    *"  EXCEPTIONS
    *"      ID
    *"      LANGUAGE
    *"      NAME
    *"      NOT_FOUND
    *"      OBJECTREFERENCE_CHECK
    *"      WRONG_ACCESS_TO_ARCHIVE
    *"----------------------------------------------------------------------
    
      data : lt_textlines type table of tline,
             ls_textlines like line of  lt_textlines.
    
      data : ls_thead type thead.
    
      data : ls_stream type line,
             ls_line   type line.
    
      ls_thead = iw_thead.
    
      call function 'READ_TEXT'
        exporting
          client                  = '141'
          object                  = iw_thead-tdobject
          name                    = iw_thead-tdname
          id                      = iw_thead-tdid
          language                = iw_thead-tdspras
          local_cat               = 'g'
    *        importing
    *     header                  = gs_textheader
        tables
          lines                   = lt_textlines[]
        exceptions
          id                      = 01
          language                = 02
          name                    = 03
          not_found               = 04
          object                  = 05
          reference_check         = 06
          wrong_access_to_archive = 07
          others                  = 16.
    
      if sy-subrc is initial.
    
        loop at lt_textlines into ls_textlines from 2.
    
          "at first.
    
          "  continue. "skip first line which is description
    
          "endat.
    
          condense ls_textlines-tdline.
    
          "ls_line = ls_textlines-tdline.
    
          append ls_textlines-tdline to t_lines.
    
        endloop.
    
      endif.
    
    endfunction.
    Boaf...signature <= ça suffira ça ??

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Août 2017
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Août 2017
    Messages : 71
    Points : 25
    Points
    25
    Par défaut
    Salut, merci pour ta réponse

    J'obtiens une erreur en ligne 65

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     append ls_textlines-tdline to t_lines.
    Zone "T_LINES" inconnues. Une zone avec un nom similaire "LINES" existe.

    Merci

  6. #6
    Membre éprouvé Avatar de Celdrøn
    Homme Profil pro
    Consultant SAP
    Inscrit en
    Juillet 2007
    Messages
    614
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Consultant SAP

    Informations forums :
    Inscription : Juillet 2007
    Messages : 614
    Points : 1 008
    Points
    1 008
    Par défaut
    Parce que je n'ai pas nommé la table tout à fait pareil, du fait que je n'ai pas les mêmes normes de dev

    *" TABLES
    *" T_LINES STRUCTURE TLINE
    Boaf...signature <= ça suffira ça ??

  7. #7
    Nouveau membre du Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Août 2017
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Août 2017
    Messages : 71
    Points : 25
    Points
    25
    Par défaut
    Salut merci

    Je dois changer ça dans le code en commentaire du coup ?

    A+ et merci !

  8. #8
    Membre averti
    Inscrit en
    Octobre 2007
    Messages
    313
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 313
    Points : 375
    Points
    375
    Par défaut
    houla un condense sur une zone texte
    ca veut dire qu'on a mis une info applicative , c'est pas bien

    du coup un dev en plus ... mdr

  9. #9
    Nouveau membre du Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Août 2017
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Août 2017
    Messages : 71
    Points : 25
    Points
    25
    Par défaut
    Citation Envoyé par splash1 Voir le message
    houla un condense sur une zone texte
    ca veut dire qu'on a mis une info applicative , c'est pas bien

    du coup un dev en plus ... mdr

    Salut !

    Merci pour ta réponse.

    Tu peux peut-être la rendre plus utile en me conseillant un endroit plus adapté ou mettre une info dans une opération sur un ordre de fabrication ?

    Merci.

  10. #10
    Membre averti
    Inscrit en
    Octobre 2007
    Messages
    313
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 313
    Points : 375
    Points
    375
    Par défaut
    desolé pour le mode un peu brutal

    en fait avec l'exp on s'apercoit que les champs textes ne sont pas adaptés car dans ces champs ca ne doit etre que de l'info vraiment secondaire tu n'as pas de controle, des saisies multi lignes etc...
    le squattage de zone existente c'est dangereux aussi car on perd des fonctionalités pour plus tard

    bref generalement il vaut mieux opter pour un ajout de zone spe (c'est du dev egalement) mais pour moi plus propre et plus maitrise

Discussions similaires

  1. Réponses: 4
    Dernier message: 26/03/2014, 15h47
  2. Réponses: 5
    Dernier message: 16/06/2009, 16h03
  3. Réponses: 3
    Dernier message: 08/10/2008, 16h34
  4. Fonction/méthode pour obtenir l'IP de la machine
    Par sirex007 dans le forum Web & réseau
    Réponses: 3
    Dernier message: 10/04/2003, 14h36
  5. Réponses: 3
    Dernier message: 02/09/2002, 18h49

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