Précédent   Forum des professionnels en informatique > Logiciels > Solutions d'entreprise > ERP > SAP
SAP Forum d'entraide sur SAP et sur la programmation avec le langage ABAP
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 29/04/2008, 15h46   #1
Membre du Club
 
Inscription : août 2006
Messages : 61
Détails du profil
Informations forums :
Inscription : août 2006
Messages : 61
Points : 40
Points : 40
Par défaut Table interne dans une autre table interne

Bonjour tout le monde,

Quelqu'un a-t-il déjà déclaré une table interne contenant elle-même une autre table interne ?

Si oui (j'espère), comment fait-on pour accéder aux champs de la première table interne ? J'ai essayé avec des tirets mais cela ne semble pas fonctionner.

Code :
1
2
3
4
5
6
7
8
9
DATA: BEGIN OF st1 OCCURS 0,
            lifnr TYPE lfa1-lifnr,
            matnr TYPE mara-matnr,
            werks type mara-werks,
         END OF st1.

DATA: BEGIN OF st2 OCCURS 0,
            it1 TYPE TABLE OF st1 WITH HEADER LINE,
         END OF st2.
st2-st1-lifnr me génère une erreur!!!

Pouvez-vous me dire pourquoi ? Merci d'avance,

Sircus
sircus est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/04/2008, 15h53   #2
Rédacteur/Modérateur
 
Avatar de cladsam
 
Morgan Bourgeois
Inscription : août 2003
Messages : 1 730
Détails du profil
Informations personnelles :
Nom : Morgan Bourgeois
Âge : 32
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations forums :
Inscription : août 2003
Messages : 1 730
Points : 1 862
Points : 1 862
deja sans aller jusqu'aux tirets, est-ce que ton code avec les délcarations compile ? Chez moi il ne passe pas (outre le fait qu'il n'y a pas de werks dnas mara mais dans marc)
__________________
----------------------------------------------------
Consultant technico-fonctionnel SAP logistique -
Mon site sur developpez
---------------------------------------------------
Anakin Skywalker turn to the Dark Side after his failed attempt to upgrade R/2-D2 to R/3-D2.
cladsam est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/04/2008, 16h02   #3
Nouveau Membre du Club
 
Inscription : mai 2006
Messages : 220
Détails du profil
Informations forums :
Inscription : mai 2006
Messages : 220
Points : 37
Points : 37
Envoyer un message via MSN à xtiand4
Il faut peut être qu il déclare les tables mara et lfa1 ?
xtiand4 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/04/2008, 16h05   #4
Nouveau Membre du Club
 
Inscription : mai 2006
Messages : 220
Détails du profil
Informations forums :
Inscription : mai 2006
Messages : 220
Points : 37
Points : 37
Envoyer un message via MSN à xtiand4
Le champs de table que tu veux déclarer dans ta table interne ne serait ce pas plûtot WESCH ?

Car dans la table Mara il y a pas de zone WERKs
xtiand4 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/04/2008, 16h08   #5
Membre du Club
 
Inscription : août 2006
Messages : 61
Détails du profil
Informations forums :
Inscription : août 2006
Messages : 61
Points : 40
Points : 40
Oui Cladsam ça compile très bien, en fait j'ai un peu simplifié les tables internes là, elles sont bien plus consécantes dans mon prog mais par soucis de clarté et de lisibilité j'ai fait comme ça...

Mais pas de pb ça compile ! Je voulais simplement savoir comment faire pour avoir accés à un champ de la première table en passant par la deuxième ?
sircus est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/04/2008, 17h25   #6
Rédacteur/Modérateur
 
Avatar de cladsam
 
Morgan Bourgeois
Inscription : août 2003
Messages : 1 730
Détails du profil
Informations personnelles :
Nom : Morgan Bourgeois
Âge : 32
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations forums :
Inscription : août 2003
Messages : 1 730
Points : 1 862
Points : 1 862
Citation:
Envoyé par sircus Voir le message
Oui Cladsam ça compile très bien, en fait j'ai un peu simplifié les tables internes là, elles sont bien plus consécantes dans mon prog mais par soucis de clarté et de lisibilité j'ai fait comme ça...

Mais pas de pb ça compile ! Je voulais simplement savoir comment faire pour avoir accés à un champ de la première table en passant par la deuxième ?
C'est important parceque quand je mets ta syntaxe, il ne compile pas. Il me dit que le type st1 n'existe pas. Donc je pense que tu as fait une erreur dans tes déclarations ?

EDIT : pardon, une erreur dans les déclarations que tu as mise dans ton premier message, laquelle erreur n'existe pas dans ton prog d'origine qui compile
__________________
----------------------------------------------------
Consultant technico-fonctionnel SAP logistique -
Mon site sur developpez
---------------------------------------------------
Anakin Skywalker turn to the Dark Side after his failed attempt to upgrade R/2-D2 to R/3-D2.
cladsam est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/04/2008, 17h43   #7
Membre du Club
 
Inscription : août 2006
Messages : 61
Détails du profil
Informations forums :
Inscription : août 2006
Messages : 61
Points : 40
Points : 40
Hé Cladsam ta vue baisse on dirait, j'ai compris que le code que j'avais mis dans ce post ne compilait pas, mais on s'en tape car ce n'est pas l'objet de ma question ! lol

Ce que je voudrais savoir c'est comment on fait pour accéder aux données contenues dans la table interne qui est elle-même dans une autre table interne ... Quelqu'un a-t-il déjà fait ce genre de trucs ?

Petit rappel : j'ai essayé de faire "write : it1-it2-champ" mais ça ne marche pas

Merci qd mm Cladsam, c'est gentil de vouloir m'aider ;-)
sircus est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/04/2008, 18h16   #8
Membre confirmé
 
Inscription : octobre 2007
Messages : 209
Détails du profil
Informations forums :
Inscription : octobre 2007
Messages : 209
Points : 211
Points : 211
a priori tu te trompes de sens

il faut faire it2-it1-champs
splash1 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/05/2008, 11h33   #9
Membre expérimenté

 
SAP for Banking
Inscription : juin 2002
Messages : 539
Détails du profil
Informations personnelles :
Âge : 35
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : SAP for Banking
Secteur : Conseil

Informations forums :
Inscription : juin 2002
Messages : 539
Points : 566
Points : 566
bonjour,
Il faut faire une boucle sur la seconde table interne apres assignement sur une seconde structure.
L.
__________________
TRY.
N/A
CATCH cx_root.
ludovic.fernandez est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/05/2008, 07h50   #10
Membre du Club
 
Inscription : août 2005
Messages : 60
Détails du profil
Informations personnelles :
Âge : 41
Localisation : France, Nord (Nord Pas de Calais)

Informations forums :
Inscription : août 2005
Messages : 60
Points : 43
Points : 43
Envoyer un message via MSN à balawoo
Bonjour

j'ai déjà fait cela, donc voici le code:
Code :
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
116
117
118
119
120
121
122
123
124
125
126
127
** Déclaration
** Données pour traitement du fichier en entrée
** Table interne pour récupération des données XML
TYPES: BEGIN OF psaleorder,
        i_kschl TYPE komv-kschl,    "Type de condition
        i_itemprice(19) TYPE c,     "Prix unitaire
        i_kpein TYPE komv-kpein,    "Base
        i_kmein TYPE komv-kmein,    "Unité condition prix
        i_kbetr TYPE komv-kbetr,    "Montant du poste
        i_itemdisc(8) TYPE p DECIMALS 3,  "Remise sur article
        i_discamount TYPE komv-kbetr,"Montant de la remise
        i_itemamount TYPE komv-kbetr,"Montant du poste remisé
        i_vrkme TYPE vbap-vrkme,    "Unité de prix
        i_addvat TYPE c,            "Add TVA
      END OF psaleorder.

**Table pour récupération des données de commande
*Type de table pour subitem N3 (Correspond au subitem)
TYPES: BEGIN OF s_subitem,
        i_itid(5) TYPE c,         "ID du poste
        i_itlabel(50) TYPE c,     "Désignation grpe article
        i_itdescr(100) TYPE c,    "Description
        i_itpstyv TYPE vbap-pstyv,"Type de poste
        i_nogrp(3) TYPE c,        "Indic affi. grpe article
        i_itnum(6) TYPE c,        "N° poste MKG
        i_itreqdate(20) TYPE c,    "Date de soumission
        i_itreqpost(30) TYPE c,   "Champ libre pour lot 2
        i_itemid(12) TYPE c,      "Code article MKG
        i_fixepx TYPE c,          "Prix fixé
        i_ntgew TYPE vbap-ntgew,  "Poids
        i_gewei TYPE vbap-gewei,  "Unité de poids
        i_matnr TYPE vbap-matnr,   "Code Article SAP
        i_formula(2) TYPE c,      "Formule de calcul
        i_kwmeng TYPE vbap-kwmeng, "Quantité
        i_vrkme TYPE vbap-vrkme,   "Unité de quantité = unité de vente?
        i_ubase TYPE vbap-vrkme,   "Unité de base de la quantité
        i_zterm TYPE vbkd-zterm,   "Condition ou Délais de paiement
        i_zlsch TYPE vbkd-zlsch,   "Type de paiement
        i_prctr TYPE vbap-prctr,   "Centre de profit = Ligne de produit
        i_of(15) TYPE c,            "Ordre de fabrication
        price TYPE psaleorder OCCURS 0,
       END OF s_subitem.

*Type de table pour item N2 (correspond au block OrderItem)
TYPES: BEGIN OF s_itemn2,
        i_itid(5) TYPE c,         "ID du poste
        i_itlabel(40) TYPE c,     "Désignation grpe article
        i_itdescr(100) TYPE c,    "Description
        i_itpstyv TYPE vbap-pstyv,"Type de poste
        i_nogrp(3) TYPE c,        "Indic affi. grpe article
        i_itnum(6) TYPE c,        "N° poste MKG
        i_itreqdate(20) TYPE c,    "Date de soumission
        i_itreqpost(30) TYPE c,   "Champ libre pour lot 2
        i_itemid(12) TYPE c,      "Code article MKG
        i_fixepx TYPE c,          "Prix fixé
        i_ntgew TYPE vbap-ntgew,  "Poids
        i_gewei TYPE vbap-gewei,  "Unité de poids
        i_matnr TYPE vbap-matnr,   "Code Article SAP
        i_formula(2) TYPE c,      "Formule de calcul
        i_kwmeng TYPE vbap-kwmeng, "Quantité
        i_vrkme TYPE vbap-vrkme,   "Unité de quantité = unité de vente?
        i_ubase TYPE vbap-vrkme,   "Unité de base de la quantité
        i_zterm TYPE vbkd-zterm,   "Condition ou Délais de paiement
        i_zlsch TYPE vbkd-zlsch,   "Type de paiement
        i_prctr TYPE vbap-prctr,   "Centre de profit = Ligne de produit
        i_of(15) TYPE c,            "Ordre de fabrication
        price TYPE psaleorder OCCURS 0,
        subitem TYPE s_subitem OCCURS 0,
       END OF s_itemn2.

*Type de table pour item N1 (Correspond au block Group)
TYPES: BEGIN OF s_item,
        i_itid(5) TYPE c,         "ID du poste
        i_itlabel(40) TYPE c,     "Désignation grpe article
        i_itdescr(100) TYPE c,    "Description
        i_itpstyv TYPE vbap-pstyv,"Type de poste
        i_nogrp(3) TYPE c,        "Indic affi. grpe article
        i_itnum(6) TYPE c,        "N° poste MKG
        i_itreqdate(20) TYPE c,    "Date de soumission
        i_itreqpost(30) TYPE c,   "Champ libre pour lot 2
        i_itemid(12) TYPE c,      "Code article MKG
        i_fixepx TYPE c,          "Prix fixé
        i_ntgew TYPE vbap-ntgew,  "Poids
        i_gewei TYPE vbap-gewei,  "Unité de poids
        i_matnr TYPE vbap-matnr,   "Code Article SAP
        i_formula(2) TYPE c,      "Formule de calcul
        i_kwmeng TYPE vbap-kwmeng, "Quantité
        i_vrkme TYPE vbap-vrkme,   "Unité de quantité = unité de vente?
        i_ubase TYPE vbap-vrkme,   "Unité de base de la quantité
        i_zterm TYPE vbkd-zterm,   "Condition ou Délais de paiement
        i_zlsch TYPE vbkd-zlsch,   "Type de paiement
        i_prctr TYPE vbap-prctr,   "Centre de profit = Ligne de produit
        i_of(15) TYPE c,            "Ordre de fabrication
       price TYPE psaleorder OCCURS 0,
       itemn2 TYPE s_itemn2 OCCURS 0,
       END OF s_item.

*Type pour table de traitement
TYPES: BEGIN OF s_itaborder,
*Données d'en-tête de la commande <Order>
        h_orderid(12) TYPE c,    "N°Commande DMF
        h_auart TYPE vbak-auart, "Type de document commercial
        h_groupid(24) TYPE c,    "N° du devis DMF
        h_custid(10) TYPE c,     "N° point de vente DMF
        h_kunnr TYPE vbpa-kunnr, "Code client SAP
*       h_ivat  TYPE c,          "Soumis à TVA ou non
        h_kdgrp TYPE vbkd-kdgrp, "Groupe vendeur (annonceur)
        h_ncamp(100) TYPE c,     "Nom de la campagne
        h_headertxt(150) TYPE c, "Texte d'entête sur la facture
        h_footertxt(150) TYPE c, "Texte de bas de page dans la facture
        h_messtyp TYPE c,        "Type de message 4 création, 5 modif.
        h_dateheure(20) TYPE c,  "Date action = envoie du fichier
        h_creator(3) TYPE c,     "Créateur du message 'MKG' pour DMF
        h_siteprod(4) TYPE c,    "Identifiant du site de production
*       h_reqdate(8) TYPE c,     "Date de soumission à production
        h_vtweg TYPE vbak-vtweg, "Canal de distribution
        h_spart TYPE vbak-spart, "Secteur d'activité
        h_waerk TYPE vbak-waerk, "Devise
        h_bukrs TYPE vbak-bukrs_vf, "Organisation Commercial
       itemn1 TYPE s_item OCCURS 0,
       END OF s_itaborder.

**Tables de traitement
DATA: itsaleord TYPE STANDARD TABLE OF s_itaborder,
      itsaleord_id TYPE STANDARD TABLE OF s_itaborder WITH HEADER LINE,
      s_itsaleord TYPE s_itaborder.
Bonne journée
balawoo est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 23h46.


 
 
 
 
Partenaires

Hébergement Web