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 :

Table et Structure


Sujet :

SAP

  1. #1
    Membre régulier
    Inscrit en
    Février 2011
    Messages
    98
    Détails du profil
    Informations forums :
    Inscription : Février 2011
    Messages : 98
    Points : 70
    Points
    70
    Par défaut Table et Structure
    Bonjour,

    J'aimerai savoir s'il on peut créer une table (pas une table interne) à partir d'une structure ou d'une table interne ?

    Merci d'avance pour vos réponses.

  2. #2
    Membre éclairé Avatar de beuzy
    Femme Profil pro
    SAP
    Inscrit en
    Novembre 2008
    Messages
    612
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : SAP
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2008
    Messages : 612
    Points : 705
    Points
    705
    Par défaut
    Salut,
    Tu veux dire générer une table du dictionnaire (comme on ferait via SE11) dans une programme spécifique à partir d'une structure ou table interne de ton programme?
    Pensez à récompenser les réponses utiles et au tag

    Passez nous voir sur le chat chat.developpez.com ou http://87.98.168.209/

  3. #3
    Membre régulier
    Inscrit en
    Février 2011
    Messages
    98
    Détails du profil
    Informations forums :
    Inscription : Février 2011
    Messages : 98
    Points : 70
    Points
    70
    Par défaut
    Oui je pense que c'est cela...

    Pour un peu plus te situer mon problème:

    En fait, un de mes prédécesseurs à réaliser un programme qui affiche dans les résultats dans l'ALV, ces derniers ne sont pas stockés dans une table (table que l'on pourrait faire avec se11).
    J'ai donc créer une table semblable à la structure qu'il emploi dans son code afin de la remplir seulement je me heurte à un bon paquet de messages d'erreur d’où ma demande un peu plus haut...

  4. #4
    Membre éclairé Avatar de beuzy
    Femme Profil pro
    SAP
    Inscrit en
    Novembre 2008
    Messages
    612
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : SAP
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2008
    Messages : 612
    Points : 705
    Points
    705
    Par défaut
    Ah ok je ne sais pas si c'est possible mais ton ALV n'a pas une structure fixe? sinon tu peux toujours sauvegarder sur un fichier sur le serveur les données en attendant.
    Chez nous ils font ça avec les données d'un spool qu'ils mettent dans access au final
    Pensez à récompenser les réponses utiles et au tag

    Passez nous voir sur le chat chat.developpez.com ou http://87.98.168.209/

  5. #5
    Membre régulier
    Inscrit en
    Février 2011
    Messages
    98
    Détails du profil
    Informations forums :
    Inscription : Février 2011
    Messages : 98
    Points : 70
    Points
    70
    Par défaut
    Sa structure est fixe, cependant sauvegarder dans des fichiers ne pas durer bien longtemps...comme tu dis, "en attendant"^^.
    J'ai pourtant créer une table de structure identique à la sienne mais impossible d'y insérer des données, j'ai une erreur du genre "Table interne non autorisée comme zone de travail"..?

  6. #6
    Membre du Club
    Homme Profil pro
    Développeur ABAP
    Inscrit en
    Août 2012
    Messages
    55
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur ABAP

    Informations forums :
    Inscription : Août 2012
    Messages : 55
    Points : 63
    Points
    63
    Par défaut
    Salut,

    Je pense que ce sera plus facile si tu nous montre ton code ou t'essaies d'insérer les donnée.

    Imaginons que ta table s'appelle zcol016t_arc:

    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
    *Tu déclares une ligne du type de ta table
    data: lwa_zcol016t_arc type zcol016t_arc.
    
    *Tu mets lui passes les données de la ligne que tu veux insérer
    lwa_zcol016t_arc-opbuk = iwa_vkont-opbuk.
    lwa_zcol016t_arc-vkont = iwa_vkont-vkont.
    lwa_zcol016t_arc-gpart = iwa_vkont-gpart.
    lwa_zcol016t_arc-solvc = iwa_vkont-solvc_new.
    
    *Tu insères
    insert into zcol016t_arc values lwa_zcol016t_arc.
    
    *Tu fais commit
    commit work.
    
    *Et lá tu devrais avoir ta ligne dans ta table!

  7. #7
    Membre régulier
    Inscrit en
    Février 2011
    Messages
    98
    Détails du profil
    Informations forums :
    Inscription : Février 2011
    Messages : 98
    Points : 70
    Points
    70
    Par défaut
    Je test et reviens vers vous avec du code si erreur il y 'a encore

  8. #8
    Membre régulier
    Inscrit en
    Février 2011
    Messages
    98
    Détails du profil
    Informations forums :
    Inscription : Février 2011
    Messages : 98
    Points : 70
    Points
    70
    Par défaut
    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
    DATA: BEGIN OF s_display,
          AUFNR TYPE S022-AUFNR," Ordre
          VORNR TYPE S022-VORNR," Opérations
          ARBPL TYPE S022-ARBPL," Poste de travail
          KTEXT TYPE CRTX-KTEXT," Désignation Magasin
          STEUS TYPE CRHD-STEUS," Clé de commande => PPO1 (déclaratif) ou ZP01 (<> déclaratif)
          KAPAR TYPE S022-KAPAR," Type de capacité
          MATNR TYPE S022-MATNR," Articles
          MAKTX TYPE MAKT-MAKTX," Désignation article
          FEVOR TYPE MARC-FEVOR," Agent d'ordonnancement
          MATGR TYPE MARC-MATGR," Groupe d'articles
          DISPO TYPE MARC-DISPO," Gestionnaire
          MAABC TYPE MARC-MAABC," Code ABC
          DSNAM TYPE t024D-DSNAM," Nom gestionnaire
          KBEAS TYPE S022-KBEAS," Besoin capacité de traitement théorique
          MGVRG TYPE S022-MGVRG," Quantité opérations
          GMNGA TYPE S022-GMNGA," Rendement confirmé
          LMNGA TYPE S022-LMNGA," Rendement confirmé
          CHCE  TYPE P DECIMALS 3," Temps restant - calculée dans le FORM FILL_QTE_REST => WS_DISPLAY-CHCE = ( WS_OP_PDT-KBEAS / WS_OP_PDT-MGVRG ) * WS_DISPLAY-QTE_R
          QTE_R TYPE OPRZ1," Quantité restante - calculée dans le FORM FILL_QTE_REST
          ASVRG TYPE S022-ASVRG," Quantité rebutée
          XMNGA TYPE S022-XMNGA," Rebut confirmé
          S_DFZ TYPE S022-S_DFZ," Temps d'éxecution théorique
          I_DFZ TYPE S022-I_DFZ," Temps d'éxecution réel
          LOEKZ TYPE AUFK-LOEKZ," Témoin de suppression
          DGLTS TYPE AFPO-DGLTS." Fin ordonnancée
    DATA: END OF s_display.
    
    DATA: BEGIN OF s_chof,
    INCLUDE TYPE ZANALYSE_CHARGE.
    DATA: END OF s_chof.
    *&---------------------------------------------------------------------*
    *& Tables internes
    *&---------------------------------------------------------------------*
    DATA wt_op_pdt    LIKE TABLE OF s_op_pdt.
    DATA wt_display   LIKE TABLE OF s_display.
    DATA wt_chof      LIKE TABLE OF s_chof."rajout POUR MODIFS
    
    DATA l_chof LIKE LINE OF wt_chof ."rajout
    *&---------------------------------------------------------------------*
    *& Structures
    *&---------------------------------------------------------------------*
    DATA:
           ws_op_pdt    LIKE s_op_pdt,
           ws_display   LIKE s_display,
           ws_chof      LIKE s_chof "rajout POUR MODIFS
           .
    Dans cette premiere partie du code vous pouvez voir la structure s_display de mon predecesseur.
    La table ZANALYSE_CHARGE est celle que j'ai crée en me basant sur s_display.

    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
    LOOP AT P_WT_OP_PDT INTO WS_OP_PDT. " Si mon type était égal à rien et qu'il est désormais différent de blanc
    
    ..........................
    ..........................
    ..........................
    ..........................
    ..........................
    ..........................
    ..........................
    ..........................
    ..........................
    ..........................etc...(pas important du moins je pense, ce ne sont que des calculs).
    
    
        MOVE-CORRESPONDING WS_OP_PDT TO WS_DISPLAY.
    
    *    MOVE-CORRESPONDING WS_OP_PDT TO WS_CHOF."rajout POUR MODIFS
    
        APPEND WS_DISPLAY TO  P_WT_DISPLAY. "On intégre dans la table display
    
    
        WS_chof-AUFNR = WS_DISPLAY-AUFNR.
        WS_CHOF-VORNR  = WS_DISPLAY-VORNR .
        WS_CHOF-KTEXT = WS_DISPLAY-KTEXT.
        WS_CHOF-STEUS = WS_DISPLAY-STEUS.
        WS_CHOF-KAPAR = WS_DISPLAY-KAPAR.
        WS_CHOF-MATNR = WS_DISPLAY-MATNR.
        WS_CHOF-MAKTX = WS_DISPLAY-MAKTX.
        WS_CHOF-FEVOR = WS_DISPLAY-FEVOR.
        WS_CHOF-MATGR = WS_DISPLAY-MATGR.
        WS_CHOF-DISPO = WS_DISPLAY-DISPO.
        WS_CHOF-MAABC = WS_DISPLAY-MAABC.
        WS_CHOF-DSNAM = WS_DISPLAY-DSNAM.
        WS_CHOF-KBEAS = WS_DISPLAY-KBEAS.
        WS_CHOF-MGVRG = WS_DISPLAY-MGVRG.
        WS_CHOF-GMNGA = WS_DISPLAY-GMNGA.
        WS_CHOF-LMNGA = WS_DISPLAY-LMNGA.
        WS_CHOF-CHCE = WS_DISPLAY-CHCE.
        WS_CHOF-QTE_R = WS_DISPLAY-QTE_R.
        WS_CHOF-ASVRG = WS_DISPLAY-ASVRG.
        WS_CHOF-XMNGA = WS_DISPLAY-XMNGA.
        WS_CHOF-S_DFZ = WS_DISPLAY-S_DFZ.
        WS_CHOF-I_DFZ = WS_DISPLAY-I_DFZ.
        WS_CHOF-LOEKZ = WS_DISPLAY-LOEKZ.
        WS_CHOF-DGLTS = WS_DISPLAY-DGLTS.
    
        APPEND WS_CHOF TO  WT_CHOF. "rajout POUR MODIFS
    
      ENDLOOP.
    
        DELETE FROM ZANALYSE_CHARGE.
        loop at WT_CHOF into l_chof.
        INSERT INTO ZANALYSE_CHARGE VALUES WT_CHOF.
        ENDLOOP.
    
    
    ENDFORM.
    Dans cette deuxieme partie, j'obtiens une erreur me disant :
    L'objet de données "WS_CHOF" ne possède aucun membre avec le nom AUFNR...

    Idem lorsque je remplace "ws_chof" par "s_chof"...

    Je sèche totalement, ma table ZANALYE est faite exactement comme s_display et s_chof et une structure basée dessus...

  9. #9
    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 normal que ça plante, ton problème vient de ton instruction INSERT qui a mal été codée.

    Après le VALUES, c'est une structure qui doit être indiquée, pas une table interne, sauf si celle-ci n'est pas pure (avec entête) ce qui n'est pas ton cas.

    Deux solutions:
    - Soit tu indiques une structure, ce qui devrait être alors L_CHOF.
    - Soit tu indiques une table interne, dans ce cas là, une boucle (LOOP) est inutile et ton instruction devient:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    INSERT ZANALYSE_CHARGE FROM TABLE WT_CHOF.
    En espérant que ça t'aide.
    Boaf...signature <= ça suffira ça ??

  10. #10
    Membre du Club
    Homme Profil pro
    Développeur ABAP
    Inscrit en
    Août 2012
    Messages
    55
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur ABAP

    Informations forums :
    Inscription : Août 2012
    Messages : 55
    Points : 63
    Points
    63
    Par défaut
    Dans ton code tu fais:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    loop at WT_CHOF into l_chof.
    	INSERT INTO ZANALYSE_CHARGE VALUES WT_CHOF.
    ENDLOOP.
    mais il me semble que tu devrais faire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    loop at WT_CHOF into l_chof.
    	INSERT INTO ZANALYSE_CHARGE VALUES l_chof.
    ENDLOOP.
    Car tu veux insérer ligne à ligne (l_chof) et non la table (WT_CHOF).

    Mais tu peux remplacer le loop par l'instruction que Celdrøn t'as conseillé!

  11. #11
    Membre régulier
    Inscrit en
    Février 2011
    Messages
    98
    Détails du profil
    Informations forums :
    Inscription : Février 2011
    Messages : 98
    Points : 70
    Points
    70
    Par défaut
    Merci beaucoup à tous, j'ai résolu mon problème...mais sans utiliser ni l'une et l'autre de vos solutions (qui fonctionnent très bien, j'ai testé après coup ).

    Je m'en suis sorti en supprimant les structures que j'avais pu ajouter au programme et en faisant :

    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
    MOVE-CORRESPONDING WS_OP_PDT TO WS_DISPLAY.
    
        APPEND WS_DISPLAY TO  P_WT_DISPLAY. "On intégre dans la table display
    
    
        ZANALYSE_CHARGE-AUFNR = WS_DISPLAY-AUFNR.
        ZANALYSE_CHARGE-VORNR  = WS_DISPLAY-VORNR.
        ZANALYSE_CHARGE-KTEXT = WS_DISPLAY-KTEXT.
        ZANALYSE_CHARGE-STEUS = WS_DISPLAY-STEUS.
        ZANALYSE_CHARGE-KAPAR = WS_DISPLAY-KAPAR.
        ZANALYSE_CHARGE-MATNR = WS_DISPLAY-MATNR.
        ZANALYSE_CHARGE-MAKTX = WS_DISPLAY-MAKTX.
        ZANALYSE_CHARGE-FEVOR = WS_DISPLAY-FEVOR.
        ZANALYSE_CHARGE-MATGR = WS_DISPLAY-MATGR.
        ZANALYSE_CHARGE-DISPO = WS_DISPLAY-DISPO.
        ZANALYSE_CHARGE-MAABC = WS_DISPLAY-MAABC.
        ZANALYSE_CHARGE-DSNAM = WS_DISPLAY-DSNAM.
        ZANALYSE_CHARGE-KBEAS = WS_DISPLAY-KBEAS.
        ZANALYSE_CHARGE-MGVRG = WS_DISPLAY-MGVRG.
        ZANALYSE_CHARGE-GMNGA = WS_DISPLAY-GMNGA.
        ZANALYSE_CHARGE-LMNGA = WS_DISPLAY-LMNGA.
        ZANALYSE_CHARGE-CHCE = WS_DISPLAY-CHCE.
        ZANALYSE_CHARGE-QTE_R = WS_DISPLAY-QTE_R.
        ZANALYSE_CHARGE-ASVRG = WS_DISPLAY-ASVRG.
        ZANALYSE_CHARGE-XMNGA = WS_DISPLAY-XMNGA.
        ZANALYSE_CHARGE-S_DFZ = WS_DISPLAY-S_DFZ.
        ZANALYSE_CHARGE-I_DFZ = WS_DISPLAY-I_DFZ.
        ZANALYSE_CHARGE-LOEKZ = WS_DISPLAY-LOEKZ.
        ZANALYSE_CHARGE-DGLTS = WS_DISPLAY-DGLTS.
    
        INSERT INTO ZANALYSE_CHARGE VALUES ZANALYSE_CHARGE. "rajout POUR MODIFS
    
      ENDLOOP.
    
    ENDFORM.
    Dites moi ce que vous en pensez, je suis pas sure que ce soit très pro mais ça marche...

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

Discussions similaires

  1. Vue sur 2 tables de structures différentes
    Par thesmall dans le forum Langage SQL
    Réponses: 7
    Dernier message: 08/08/2007, 21h18
  2. Réponses: 2
    Dernier message: 31/01/2007, 23h52
  3. Limite de 255 tables par structure
    Par Anddi dans le forum 4D
    Réponses: 3
    Dernier message: 31/10/2006, 21h36
  4. fusionner 2 tables de structure différente
    Par Rcanada dans le forum Access
    Réponses: 9
    Dernier message: 21/04/2006, 09h54
  5. Comparer 2 tables de structure identique.
    Par FMaz dans le forum Requêtes
    Réponses: 13
    Dernier message: 31/03/2006, 22h48

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