Académique Documents
Professionnel Documents
Culture Documents
Ecran de Selection
Select-options :
Structure interne du Select-Options
Il existe une table interne correspondant au 'Select-options' (Ex : date).
On peut utiliser cette table interne comme toute autre table interne du programme.
Exemple : SELECT-OPTIONS:
*compte client
p_comcli FOR zecr-zcompteclient.
SELECT-OPTIONS: w_bldat FOR bsad-bldat MODIF ID pie.
SELECT-OPTIONS : S_HKONT FOR BSEG-HKONT NO-DISPLAY.
Parameters :
nom_zone : zone de saisie simple
PARAMETERS <nom> TYPE <type>
PARAMETERS <nom> LIKE <champ-objet de donnée>(l’objet doit être déclaré dans le pgm)
Radio bouton :
parameters :
p_tole radiobutton group bloc,
p_liti radiobutton group bloc,
p_depa radiobutton group bloc.
Case à cocher : parameters :
P_CREDOS AS CHECKBOX.
Selection-screen :
AT SELECTION-SCREEN OUTPUT.
LOOP AT SCREEN.
IF screen-group1 = 'RAP'.
IF r1 = 'X'.
screen-active = '1'.
ELSE.
screen-active = '0'.
ENDIF.
MODIFY SCREEN.
ENDIF.
IF screen-group1 = 'PIE'.
IF r2 = 'X'.
screen-active = '1'.
ELSE.
screen-active = '0'.
ENDIF.
MODIFY SCREEN.
ENDIF.
ENDLOOP.
Exemple :
SELECTION-SCREEN BEGIN OF BLOCK prep_stru
WITH FRAME
TITLE text-020.
*bouton radion preparation des structure BTCI 'oui'
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT (37) text-045.
PARAMETERS: p_pri1 RADIOBUTTON GROUP pri DEFAULT 'X'.
SELECTION-SCREEN COMMENT 42(5) text-043.
*bouton radion preparation des structure BTCI 'non'
PARAMETERS: p_pri2 RADIOBUTTON GROUP pri .
SELECTION-SCREEN COMMENT 52(5) text-044.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN SKIP.
*bouton radion reprise par rapport a ZECR_fac 'non'
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT (37) text-021.
PARAMETERS: p_rep1 RADIOBUTTON GROUP rep DEFAULT 'X'.
SELECTION-SCREEN COMMENT 42(5) text-043.
*bouton radion reprise par rapport a ZECR_fac 'oui'
PARAMETERS: p_rep2 RADIOBUTTON GROUP rep .
SELECTION-SCREEN COMMENT 52(5) text-044.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN SKIP.
SELECTION-SCREEN BEGIN OF LINE.
* nom logique du fichier à traiter
SELECTION-SCREEN COMMENT (27) text-041.
PARAMETERS :p_nomfic(10) TYPE c DEFAULT 'KEC2'.
*Lot de traitement repris
SELECTION-SCREEN COMMENT 42(25) text-040.
PARAMETERS :p_lot_p(10) TYPE c. "Lot de traitement repris
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN END OF BLOCK prep_stru.
(*) : la longueur en octets peut être précisée. Pour ces types de données
Type
Type description
Length
Initial value
position
C
Text (Character)
1
Space
Centrer à gauche
N
Numeric text
1
'00...0'
Droite
D
Date YYYYMMDD)
8
'00000000'
T
Time (HHMMSS)
6
‘000000'
X
Hexadecimal
1
X'00'
Droite
I
Whole number (integer)
4
0
Droite
P
Packed number
8
0
Droite
F
Floating point number
8
'0.0'
droite
* ranges
*il faut que la variable soit déclaré
RANGES: r_dec01 FOR w_typfc.
• La Header Line
Lorsque l'on déclare une table interne, il est possible de lui attacher une 'Header Line', c'est à dire une zone
d’échange entre la table interne et le programme.
S'il n'y a pas de 'Header Line', il faut définir un enreg. pour pouvoir manipuler les enregistrement de la table
interne.
• La Header Line
déclaration
Chaine de zone (avec OCCURS cela correspond à une table interne)
DATA: Zone-1 type I,
BEGIN OF groupe-zone [OCCURS <n>], (la table est générée avec un HEADER LINE)
zone-2 TYPE...,
zone-3 LKE...,
END OF groupe-zone.
adressage : groupe-zone-zone-2
Exemple :
******************************** table interne avec ajout de champ et créé sur un includ*******************************
DATA: BEGIN OF WT_VISU OCCURS 0.
INCLUDE STRUCTURE ZMM_ART_STK_T.
DATA: NAME_LAST LIKE ADRP-NAME_LAST, "Nom
NAME_FIRST LIKE ADRP-NAME_FIRST, Prenom
TELNR_LONG LIKE ADR2-TELNR_LONG, "n° tel
BUILDING LIKE ADCP-BUILDING, "Site
EQUI LIKE MARA-MATNR, "equivalence
ETAT LIKE ICON-ID, "bloqué/non bloqué
END OF WT_VISU.
:*******************************déclaration d’une table field-groups*******************************************
FIELD-GROUPS
HEADER,
DETAIL.
*****************************************structure*******************************************************************
DATA : BEGIN OF WT_MAJ_CRE
MATNR LIKE MARC-MATNR,
ETFZ1 LIKE EKPO-ETFZ1,
FXHOR LIKE MARC-FXHOR,
KZSTU LIKE EKPO-KZSTU,
END OF WT_MAJ_CRE.
*********************************structure pour recuperer les vues *****************************************************
DATA: BEGIN OF BDC OCCURS 0
INCLUDE STRUCTURE BDCDATA.
DATA: END OF BDC.
* table interne pour eviter les acceds zdec01
DATA : BEGIN OF t_stru_kec_ex .
INCLUDE STRUCTURE zaa_kec_cordouan_1n.
DATA : compteur TYPE z_compteur_fc.
DATA : END OF t_stru_kec_ex.
INCLUDE de programme .
INCLUDE zbccommun.
INCLUDE zbc_kec.
Report :
Le nom du programme ne peut exceder plus de huit caracteres.
L’option NO STRANDARD PAGE HEADING supprime l’affichage de l’intitulé du programme au debut de chaque page d’édition
défini dans ses attributs lors de sa création.
Write :
Write : / ‘Bienvenue dans mon programme’ Intensified Hotspot Inverse Color <i>, <n2><nom_table_-nom_champ>.
Write At /<n>(<lg>) <f>. = Edition du f sur la ligne (/) en position <n1> sur une longueur <lg>Color<i> : coloration de l’edition en
arriere plan ,1 bleu gris,2 gris clair, 3 jaune,4 bleu vert, 5 vert, 6 rouge, 7 violet. Inverse Color <i>
= coloration direct de l’edition, Intensified color <i> = les couleurs sont intensifiees,
Hotspots = main
Write <f> <options> Left-justified =cadrage a gauche, Centered = centrage, Right-justified = cadrage au droite, Under en dessous
,No-gap = suppressions des colonnes de séparations, No-Zero = Sup. des zero initiaux (type N,P),Decimals<d> = <d> decimals apres
la virgule.
Zones Systemes
pour liste secondaire : Sy-lsind = numero de liste ,Sy-lisel = pour selectionner une ligne et recupérer le contenue,
Hide <zone> cette instruction permet de memoriser le contenue des zone cle ou autre pour une liste seconddaire,
Sy-curow = pos du curseur(ligne), sy-cucol = pos du curseur en colonne, Sy-cpage = numero de la page courante, sy-staco = 1er
colonne de la liste affichee a l’ecran, sy-staro = premiere ligne de la liste affichee a l’ecran, sy-listi = index du niv. De la liste
selectionnée, Sy-lilli = n° de la ligne selectionnee.
Selection de Zones :
Get cursor field <zone1> Value <zone2> = ces instruction permettent de collecter interractivement des informations
complémentaire Get cursor line <lin>. relatives à une zone que l’utilisateur à déterminé avec le curseur. Field = zone
d’édition, Value= valeur éditée, Line = variante permettant de rechercher le curseur de maniere dynamique dans les crans
Position du curseur :
Set cursor field <zone1>. = dans la zone d’écran zone 1, Set cursor <colonne><ligne>. Set cursor line <lin>
Imprimer :
fonction GET_print_paramters : pour imprimer
Reserve<n> Llines:
Evite la separation de Nlignes par une rupture de page.
Print control :
Definit le format de l’impression
Exemple :
IF sy-subrc NE 0 .
FORMAT COLOR 6 INTENSIFIED.
WRITE : text-t10 . " err
SKIP.
FORMAT RESET.
ENDIF.
Write : /3 text-004 color 1 intensified on, 15 tabcom-vkbur color 1 intensified off, 24 text-040 color 5 intensified on, 44 tabcom-netwr color 5 intensified off, / sy-uline.
FORMAT INTENSIFIED ON.
WRITE : /10 'ZFIE0020 - COMPTE-RENDU d''''exéction du', sy-datum ,
'à', sy-uzeit .
WRITE : /1 sy-vline ,
3 text-026 COLOR 3,
11 sy-vline,
13 text-027 COLOR 3,
26 sy-vline,
28 text-028 COLOR 3,
47 sy-vline,
49 text-029 COLOR 3,
68 sy-vline,
70 text-030 COLOR 3,
88 sy-vline,
90 text-031 COLOR 3,
110 sy-vline,
112 text-032 COLOR 3,
130 sy-vline,
132 text-033 COLOR 3,
151 sy-vline,
153 text-034 COLOR 3,
180 sy-vline,
182 text-035 COLOR 3,
208 sy-vline.
.
ULINE AT /1(208).
FORMAT INTENSIFIED OFF.
*lecture de tab_zecr_btci pour compter les dif. statut*
PERFORM lecture_statut_purge.
WRITE : /1 sy-vline ,
s_cpt_rendu_purg-z_znomficlog UNDER text-026,
11 sy-vline,
s_cpt_rendu_purg-z_zlottrt UNDER text-027,
26 sy-vline,
s_cpt_rendu_purg-z_prep_lues2 UNDER text-028,
47 sy-vline,
s_cpt_rendu_purg-z_prep_pur2 UNDER text-029,
68 sy-vline,
s_cpt_rendu_purg-z_exc_lues8 UNDER text-030,
88 sy-vline,
s_cpt_rendu_purg-z_exc_purg8 UNDER text-031,
110 sy-vline,
s_cpt_rendu_purg-z_exc_lues9 UNDER text-032,
130 sy-vline,
s_cpt_rendu_purg-z_exc_purg9 UNDER text-033,
151 sy-vline,
s_cpt_rendu_purg-z_lo_np_lues01 UNDER text-034,
180 sy-vline,
s_cpt_rendu_purg-z_lot_np_pur01 UNDER text-035,
208 sy-vline.
ULINE AT /1(208).
ENDAT.
ENDLOOP.
****************************************************
* compte rendu prise en compte F.sesame & exclusion*
****************************************************
* taille des colonnes cpt rendu prise en compte F.sesame & exclusion
DATA : w_largeur_compte_rendu TYPE i VALUE 76,
w_col_fichier TYPE i VALUE 15,
w_col_lot TYPE i VALUE 16,
w_col_nb_ecr_kec TYPE i VALUE 16,
w_col_nb_ecr_exc1 TYPE i VALUE 26,
w_largeur_tous_col1 TYPE i VALUE 115,
w_col_nb_ecr_exc2 TYPE i VALUE 26.
WRITE :/.
WRITE :/5 'Compte-rendu Prise en compte F. Sésame & Exclusion'.
WRITE AT /5(50) sy-uline.
SKIP.
ENDSELECT
AT LINE-SELECTION.déclenche l’affichage d’un état “détail”Les données courante sont celles
de la ligne sélectionnée “
WRITE : / tcurr-kurst, tcurr-fcurr, tcurr-tcurr.
END-OF-SELECTION.
FORM <nom-form>….
ENDFORM <nom-form>….
Variable système utile : SY-SLIND : niveau de détail s’incrémente (se décrémente) à chaque descente
(remontée) (attention : même s’il n’y a pas de niveau de détail supplémentaire, elle s’incrémente à chaque double
clic sur une ligne détail de l’état de détail)
• Evènements
Il existe des évènements pour initialiser des actions sur l’écran de sélection. Ils sont exécutés avant
l’ ordre Start-of-selection.
• initialization
Déclenché une seule fois au début du programme et avant le traitement de l’écran de
sélection.
• at selection-screen output
Exécuté avant que les données de l’écran de sélection soient affichées (sur touche
ENTREE)
• at selection-screen on p/s
Exécuté après que l’utilisateur ait spécifié le paramètre P ou l’option se sélection S.
• at selection-screen
Exécuté après que l’utilisateur ait spécifié tous les paramètres.
commentaires :
* : en début de ligne indique que toute la ligne est du commentaire
" : en cours de ligne indique que la suite de la ligne est du commentaire
report zpillon2 .
tables : tcurr,t001,t001k.
start-of-selection.
select * from tcurr.
write : / sy-lsind, tcurr-fcurr, tcurr-tcurr, tcurr-ukurs.
HIDE : tcurr-fcurr, tcurr-tcurr.
endselect.
at line-selection.
*** 1er niveau de détail
if sy-lsind = 1.
select * from t001 where waers = tcurr-fcurr
write : / sy-lsind, t001-bukrs, t001-butxt
HIDE : t001-bukrs
endselect
endif.
ésultats
0 FRF BEF 6.14447
0 FRF BEF 6.13500
0 FRF DEM 0.29833
0 FRF DEM 0.29900
*-----------------------------------------------------------------------
form en-tete-colonnes.
*-----------------------------------------------------------------------
write at /1(w_largeur_etat) sy-uline.
write : /1 sy-vline.
write : at (w_col_comma) text-001 centered, sy-vline.
write : at (w_col_piece) text-002 centered, sy-vline.
write : at (w_col_socie) text-003 centered, sy-vline.
write : at (w_col_creat) text-004 centered, sy-vline.
write : at (w_col_date) text-005 centered, sy-vline.
write : at (w_col_total) text-006 centered, sy-vline.
write : at (w_col_fourn) text-007 centered, sy-vline.
format color off.
write at /1(w_largeur_etat) sy-uline.
endform.
*-----------------------------------------------------------------------
form ligne.
*-----------------------------------------------------------------------
format color col_normal.
write : /1 sy-vline.
write : at (w_col_comma) t_bseg-ebeln, sy-vline.
write : at (w_col_piece) t_bseg-belnr, sy-vline.
write : at (w_col_socie) t_bseg-bukrs, sy-vline.
write : at (w_col_creat) ekko-ernam, sy-vline.
write : at (w_col_date) t_bseg-budat, sy-vline.
write : at (w_col_total) t_bseg-dmbtr, sy-vline.
write : at (w_col_fourn) lfa1-name1, sy-vline.
hide : t_bseg-belnr, t_bseg-ebeln, t_bseg-bukrs, t_bseg-gjahr.
if sy-linno eq 64.
write at /1(w_largeur_etat) sy-uline.
endif.
endform.
Double clic avec curseur sur 'nom_ecran' (Si l’écran n’existe pas, proposition de le créer : validez)
Cliquer sur le bouton ( vert avec flèche orientée en bas)associé à ‘Touche de fonction’
Positions 8 - 14
Positions 15 - 21
Positions 22 - 28
Positions 29 - 35
Résultat :
Nous sommes le 01/07/1998
-- ligne blanche
Nouvelle ligne
Encore une autre ligne
--
--
--
3 lignes vides
Select : AGREGAT Select Max ( Nom du champ ) <<la plus grande valeur du champs
Min ( Nom du champ ) <<la plus petite valeur
AVG( Nom du champ ) << Moyenne d’un champ numerique
SUM( Nom du champ ) <<Somme d’un champ numerique
COUNT (*) <<Nombre total d’enregistr. From <nom de table> Into (<zone de travail1>, (<zone de travail1>).
1) Selection * From <nom de table> Into Corresponding Fields Of <zone de travail1> .
2) Selection * From <nom de table> Into Corresponding Fields Of Table <nom de table interne> = Seuls les champs communs aux
deux tables seront lus dans la table et transferes dansla table interne.
3) Selection * From <nom de table> Appending Corresponding Fields Of Table <nom de table interne>. Cette instruction ne remplace
pas les entrees de tables existantes, mais en ajoute simplement de nouvelles.
4) Selection * From <nom de table> Where <zone de travail1> Like ‘_A%’. endselect. = selection de tous les enregistrements ou
apparaît un <<A>> en deuxieme position dans la zone de table et qui sont suivis d’une sequence de caracteres.
5) Selection * From <nom de table> Appending Table <nom de table interne> = Ajout d’enregistrement aux entrees existantes.
6) Selection * From <nom de table> For All Entries In <nom de table interne> Where <condition> Endselect = Extraction de toutes les
entrees obltenues lors du remplacement des zones de la table interne adressee par la condition where, par les valeur correspondantes
des entrees de la table.
7) Selection * From <nom de table> Order By <zone1> <zone2> Endselect. = Extraction des entrees de la base de donnees dans un
ordre Selection <A1> <A2> Into (<F1> <F2>) From <nom de table> Groupe By … Endselect. =Un groupe est constitué des entrees
figurant dans les colonnes indiquees apres Groupe By et possedant des valeurs identiques.
8) Selection * From <nom de table> By Passing Buffer. Endselect = lecture des donnees de la base et non celles se trouvant dans la
memoire tampon.
Exemple : select mdv01 from mkal up to 1 rows (lorsque l’on a pas la cle complète a la dif. Select single)
Select spmon pmnux wenux basme absat lagri from s076 into corresponding fields of s076 where **
SELECT F1~EBELN F1~MATNR F1~ETFZ2 F2~BSART F2~BSTYP***** avec jointure simple
INTO
(WT_ART_DIV-EBELN,
WT_ART_DIV-MATNR,
WT_ART_DIV-ETFZ2,
WT_ART_DIV-BSART,
WT_ART_DIV-BSTYP)
FROM EKPO AS F1 INNER JOIN
EKKO AS F2
ON F1~EBELN = F2~EBELN
WHERE F1~MATNR = WT_VISU_ECRAN-MATNR
OR F1~ETFZ2 > WT_VISU_ECRAN-ETFZ1
AND F2~BSART = 'LPA'
AND F2~BSTYP = 'L'.
SELECT f2~dokar f2~doknr f2~doktl MAX( f2~dokvr ) ***** avec jointure avec max
INTO (draw-dokar, draw-doknr, draw-doktl, draw-dokvr)
FROM drad as f1
INNER JOIN draw as f2
ON f1~dokar = f2~dokar
AND f1~doknr = f2~doknr
AND f1~dokvr = f2~dokvr
AND f1~doktl = f2~doktl
WHERE ( f1~objky IN (ekpo-matnr, ekpo-ematn)
AND f1~dokar IN ('R2M', 'R12') )
OR ( f1~objky IN (ekpo-ematn) AND f1~dokar IN ('Q10') )
AND f2~dokst = '06'
GROUP BY f2~dokar f2~doknr f2~doktl.
SELECT marc~sernp marc~matnr mseg~bwart mseg~mblnr mseg~zeile mseg~menge ***** double jointure sans fisans renommer
INTO (w_profil, w_article, w_bwart, w_commande, w_poste, w_quantite)
FROM mkpf
INNER JOIN mseg ON mkpf~mblnr = mseg~mblnr
* début modif 250301: SJAL
AND mkpf~mjahr = mseg~mjahr
INNER JOIN marc ON mseg~matnr = marc~matnr
AND mseg~werks = marc~werks
* fin modif 250301
WHERE mkpf~budat = p_date
AND vgart = 'WA'
AND ( bwart = '915' OR bwart = '961' )
AND mseg~werks = p_werks
AND mseg~lgort = p_lgort
AND sernp IN p_critere.
OPTIMISATION
Ce chapitre aborde les principaux points de programmation qui vont nous permettre d’optimiser au mieux les
développements : accès aux tables, utilisation des index ...
LA CONDITION WHERE
Toujours spécifier les conditions dans la clause WHERE. Le système de base de données peut alors utiliser
un index (s’il existe).
Ne pas sélectionner de données qui seront filtrées ensuite (par un CHECK par exemple).
Eviter les WHERE complexes (ex : les OR abusifs). Ne pas utiliser l’opérateur NOT.
Exemple
A EVITER A UTILISER
SELECT * FROM SBOOK. SELECT * FROM SBOOK
CHECK: SBOOK-CARRID = 'LH' AND WHERE CARRID = 'LH' AND
SBOOK-CONNID = '0400'. CONNID = '0400'.
ENDSELECT. ENDSELECT.
SELECT SINGLE
Le SELECT SINGLE n’effectue qu’un seul accès à la base de données au lieu de deux pour un SELECT-
ENDSELECT.
A EVITER A UTILISER
SELECT * FROM SCARR SELECT SINGLE * FROM SCARR
WHERE CARRID = 'LH'. WHERE CARRID = 'LH'.
ENDSELECT.
LES AGGREGATS
Afin de trouver le maximum, le minimum, la somme, la valeur moyenne ou le nombre d’enregistrement d’une
table, utiliser un SELECT avec les instructions aggrégées.
Exemple
A EVITER A UTILISER
C4A = '000'. SELECT MAX( MSGNR ) FROM T100 INTO C4A
SELECT * FROM T100 WHERE SPRSL = 'D' AND
WHERE SPRSL = 'D' AND ARBGB = '00'.
ARBGB = '00'.
CHECK: T100-MSGNR > C4A.
C4A = T100-MSGNR.
ENDSELECT.
LES VUES
Pour traiter une jointure, utiliser une vue au lieu de SELECT imbriqués
Exemple
A EVITER A UTILISER
SELECT * FROM DD01L SELECT * FROM DD01V
WHERE DOMNAME LIKE 'CHAR%' WHERE DOMNAME LIKE 'CHAR%'
AND AS4LOCAL = 'A'. AND DDLANGUAGE = SY-LANGU.
SELECT SINGLE * FROM DD01T ENDSELECT.
WHERE DOMNAME = DD01L-DOMNAME
AND AS4LOCAL = 'A'
AND AS4VERS = DD01L-AS4VERS
AND DDLANGUAGE = SY-LANGU.
ENDSELECT.
Il est possible d'améliorer les accès à une combinaison de tables en utilisant les vues existantes dans
le dictionnaire de données ou en créant des vues spécifiques.
En utilisant la transaction SE11 et en faisant un cas d'emploi sur une table en cochant 'Utilisation dans
Vues', on obtient une liste de vues qui peuvent être utilisées.
Exemple : Cas d'emploi sur VBAK permet de trouver 25 occurrences dont VBAKUK, VIVEDA et
M_VMVAA.
Les aides à la recherche et les matchcodes sont construits sur des vues.
Pour les commandes : M_VMVAx avec x = A,B …
Pour les livraisons : M_VMVLx
Pour les factures : M_VMCFx
Remarque : toutes les zones des tables ne sont pas forcément toutes présentes dans les vues. Il faut
donc bien analyser le cas à traiter et l'ensemble des vues existantes avant de faire un choix technique.
Dernier enregistrement le 17/04/09 page 21 / 77
Instruction JOIN
Il est des cas où il n'existe pas de vue. Si les critères de sélection se rapportent à deux tables ou plus,
il est alors intéressant de créer des jointures "éphémères" ; c'est à dire qui n'existent que pour la
durée du programme. Pour que ce travail soit efficace, il faut que le lien entre ces tables portent sur
des champs clé.
Les index
Il est possible de créer des index en fonction des besoins spécifiques du client. Pour optimiser cette
démarche il faut savoir que la notion d'index est réellement efficace lorsque la zone utilisée comporte
un grand nombre de valeurs par rapport au nombre d'enregistrements de la table.
Exemple :
Dans la table des commandes, VBAK ( plus de 300.000 enregistrements) il peut être intéressant de
créer un index sur la zone SUBMI (utilisée pour stocker un n° de commande client) qui comporte
quasiment autant d'occurrences que de commandes crées. Ce n'est pas le cas de la zone VKORG
(organisation commerciale) qui comporte uniquement 4 valeurs.
LA BUFFERISATION
Utiliser les buffers autant que possible. L'instruction BYPASSING BUFFER ne doit être utilisée que si c'est
vraiment nécessaire.
Les instructions suivantes n’utilisent pas le buffer : DISTINCT, SINGLE FOR UPDATE et les instructions
aggrégées du SELECT.
Exemple
A EVITER A UTILISER
SELECT SINGLE * FROM T100 SELECT SINGLE * FROM T100
BYPASSING BUFFER WHERE SPRSL = 'D'
WHERE SPRSL = 'D' AND ARBGB = '00'
AND ARBGB = '00' AND MSGNR = '999'.
AND MSGNR = '999'.
LA MISE A JOUR
Utiliser la mise à jour par colonne au lieu d’une mise à jour ligne à ligne. Ne mettre à jour que les champs
concernés par UPDATE. Eviter l'écrasement systématique de la ligne complète par la zone de travail de la table.
Exemple
A EVITER A UTILISER
SELECT * FROM SFLIGHT. UPDATE SFLIGHT
SFLIGHT-SEATSOCC = SET SEATSOCC = SEATSOCC - 1.
SFLIGHT-SEATSOCC - 1.
UPDATE SFLIGHT.
ENDSELECT.
Dernier enregistrement le 17/04/09 page 22 / 77
LES INDEX
Exploiter les index pour une utilisation plus efficace des WHERE. Pour cela les champs d'index devront être
sélectionnés avec un opérateur EQ (=).
Exemple
A EVITER A UTILISER
SELECT * FROM T100 SELECT * FROM T002.
WHERE ARBGB = '00' SELECT * FROM T100
WHERE SPRSL = T002-SPRAS
AND MSGNR = '999'. AND ARBGB = '00'
ENDSELECT. AND MSGNR = '999'.
ENDSELECT.
ENDSELECT.
A EVITER A UTILISER
REFRESH X006. SELECT * FROM T006 INTO TABLE X006
SELECT * FROM T006 INTO X006.
APPEND X006.
ENDSELECT.
Exemple 2
SELECT : récupération des valeurs des champs lus dans postes de table
select WTG001 WOG001 from coss
into TABLE t_coss
where ( wtg001 <> coss-wog001 )
or ( wtg001 <> coss-wkg001 ).
A EVITER A UTILISER
SELECT * FROM DD01L SELECT DOMNAME FROM DD01L
INTO DD01L-DOMNAME
WHERE DOMNAME LIKE 'CHAR%' WHERE DOMNAME LIKE 'CHAR%'
AND AS4LOCAL = 'A'. AND AS4LOCAL = 'A'.
ENDSELECT. ENDSELECT.
INSERT
Utiliser la mise à jour tableau au lieu d’une mise à jour ligne à ligne.
Exemple
A EVITER A UTILISER
LOOP AT TAB. INSERT CUSTOMERS FROM TABLE TAB.
INSERT INTO CUSTOMERS VALUES TAB.
ENDLOOP.
Exemple 2
SELECT (T_FIELDS) FROM (P_TABLE)
APPENDING CORRESPONDING FIELDS OF TABLE T_TABLE
FOR ALL ENTRIES IN T_JCDS
WHERE LEDNR = '00'
AND OBJNR = T_JCDS-OBJNR
AND WRTTP = '04'.
Sélection des enr. De P_table dont certains champs ont des valeurs spécifiques
et dont le champ objnr est une valeur de la table T_JCDS
Select
• Statistiques
select count(*) into wcpt from salarié.
La variable système SY-DBCNT contient le nombre de lignes traitées par le dernier select.
– Sélection.
select * from salarié.
write : / salarié-nom.
endselect.
Permet de sélectionner tous les champs de toutes les lignes de la table salarié.
Une zone de travail est allouée à la table par défaut.
Select / Endselect constitue une boucle de lecture.
– Loop / Endloop
data itab_salarié like salarié occurs 100
with header line.
select * from salarié into itab_salarié.
loop at itab_salarié.
write : / itab_salarié-nom.
endloop.
PERFORM T_FIELDS_COSL.
PERFORM RECHERCHE_TABLE TABLES T_COSL USING 'COSL '.
FORM T_FIELDS_COSL.
* Initialisation
CLEAR : W_PERIO, T_FIELDS, T_FIELDS[].
FREE T_FIELDS.
* Champs d'en-tête
Dernier enregistrement le 17/04/09 page 26 / 77
T_FIELDS-FNAME = 'LEDNR '. APPEND T_FIELDS.
T_FIELDS-FNAME = 'OBJNR '. APPEND T_FIELDS.
T_FIELDS-FNAME = 'GJAHR '. APPEND T_FIELDS.
T_FIELDS-FNAME = 'WRTTP '. APPEND T_FIELDS.
T_FIELDS-FNAME = 'VERSN '. APPEND T_FIELDS.
T_FIELDS-FNAME = 'VRGNG '. APPEND T_FIELDS.
T_FIELDS-FNAME = 'PERBL '. APPEND T_FIELDS.
T_FIELDS-FNAME = 'MEINH '. APPEND T_FIELDS.
* Champs valeur
DO 13 TIMES.
ADD 1 TO W_PERIO.
CONCATENATE 'LST' W_PERIO INTO T_FIELDS-FNAME.
APPEND T_FIELDS.
ENDDO.
INSERT : Num_art Div Mag Into Hearder, Stock_div Into Division, Stock_mag Into Magasin.
Création des enregistrements. Extract <fg> créer un enregistrement contenant les valeurs des zones du HEADER puis des zones du
field-group <fg> au moment de l’EXTRACT. EXTRACT DIVISION. EXTRACT MAGAZIN. Num_art_ div Mag Stock_div
DIVISION . Num_art_ div Mag Stock_mag MAGASIN.
Pour ajouter une ligne d’en-tete a la table, on utilise l’instruction With Hearder Line .
FIELD-GROUPS: header, detail.
INSERT : we_rec-centre we_rec-sep1 we_rec-hyp INTO header.
* Insertion des donnees en fonction des paramètres de tri
INSERT: we_rec INTO detail. "-centre,
SELECT SINGLE * FROM zco_nat_hyp WHERE ktopl IN s_ktopl
AND hkont = coss-kstar.
and hkont = cosp-kstar.MG001
IF sy-subrc = 0.
MOVE zco_nat_hyp-zcod_hyp TO we_rec-hyp.
EXTRACT detail. "mg003
Endif.
LOOP AT WT_DONNEES_CAL.
AT NEW MATNR.
CLEAR : SUM_VMSAL , SUM_VMKUM.
ENDAT.
AT END OF MATNR.
WT_FIC_DONNEES-PMP-2 = SUM_VMSAL / SUM_VMKUM.
IF WT_FIC_DONNEES-PMP-2 NE 0.
MOVE WT_FIC_DONNEES-PMP-2 TO WT_FIC_DONNEES-PMP-2.
APPEND WT_FIC_DONNEES.
ELSE.
MESSAGE S001(ZZ) WITH TEXT-010 WT_DONNEES_CAL-MATNR.
ENDIF.
ENDAT.
Evenement : TOP-OF-PAGE, END-OF-PAGE = evenement se produisant en en-tete et pied de tete de page d’edition.
START-OF-SELECTION = Marque le debut du corps du programme(declare le debut du programme apres l’ecran de selection)
END-OF-SELECTION= Marque la fin du corps du programme (declare la fin de la consultation de la BDL)
At the end of the program
AT SELE CTION-SCREEN evenement utilise pour le reporting interactif. Il est declenché après la saisie de l’ecran de selection)
Table transparente
– tables salarié.
salarié-nom = 'EINSTEIN'.
salarié-prénom = 'Albert'.
insert salarié.
– tables salarié.
select * from salarié into itab_salarié
where prénom = space.
Loop at itab_salarié.
itab_salarié-prénom = 'Inconnu'.
modify itab_salarié.
endloop.
update salarié from table itab_salarié.
– tables salarié.
update salarié set prénom = 'Inconnu'
where prénom = space.
– DELETE
Dernier enregistrement le 17/04/09 page 29 / 77
Read table all_salarié with key nom = 'Durand'.
if sy-subrc = 0.
delete all_salarié index sy-tabix.
endif.
– DELETE
nom = 'durand'.
– delete salarié.
suppression nom = durand
• La Header Line
Lorsque l'on déclare une table interne, il est possible de lui attacher une 'Header Line', c'est à dire une zone
d’échange entre la table interne et le programme.
S'il n'y a pas de 'Header Line', il faut définir un enreg. pour pouvoir manipuler les enregistrement de la table
interne.
• La Header Line
déclaration
Chaine de zone (avec OCCURS cela correspond à une table interne)
DATA: Zone-1 type I,
BEGIN OF groupe-zone [OCCURS <n>], (la table est générée avec un HEADER LINE)
zone-2 TYPE...,
zone-3 LKE...,
END OF groupe-zone.
adressage : groupe-zone-zone-2
MOVE CORRESPONDING <f1> TO <f2> : transfert des zones de f1 vers zone de f2 de même nom; f1 et f2
n'ont pas forcément la même structure
MOVE <f1> TO <f2> : transfert des zones de f1 vers zone de f2 de même nom; f1 et f2 ont la même structure
– Loop / endloop
Le résultat de la recherche peut toujours être testé avec la zone système SY-SUBRC.
SY-SUBRC = 0 quand recherche OK.
– SORT
– sort all_salarié.
L'ordre du tri est implicitement déterminé par le séquencement des champs dans la structure.
La colonne la plus à gauche représente le critère de tri le plus élevé.
• Les ruptures
– at first / endat
traitement exécuté au début de la table.
– at new f / endat
traitement exécuté lorsque le contenu du champ f (ou des champs précédents) a changé.
– at end of f / endat
traitement exécuté lorsque le contenu du champ f (ou des champs précédents) va changer au prochain
passage.
– at last / endat
traitement exécuté à la fin de la table.
– REFRESH
refresh itab_salarié.
Permet de détruire toutes les lignes de la table interne en une seule instruction.
Attention : Si la table interne a une Hearder Line, celle-ci n’est pas mise à jour.
– CLEAR
clear itab_salarié.
Permet d’effacer le contenu de la Header Line.
–
Collect : L’ordre collect cree les postes de table en considérant les zones de type D,C,N comme clé de la table et les zones de F,P,I comme zone
de cumul. Pour une meme cle,Collect ne crée qu’un seul poste de table et additionne les valeurs dans les zones de cumul.
Data : begin of tab occurs 10, zonec(1) type c, zonen(3) type n, zonep(3) type p,end of tab.
Move ‘AB’ to zonec. Move ‘999’ to zonen. Move 5 to zonep. Collect tab. Move ‘AB’ to zonec. Move ‘999’ to zonen. Move 2 to
zonep. Collect tab. RESULTAT AB99900007C
Consultation de table : loop-endloop. = Lecture ou parcours séquentiel de table loop at tab from indx1 to indx2 = en spécifiant les index aux bornes de
l’intervalle. Loop at tab where zone1 = AA. En acces direct renseignez la clé de la table interne (zone de type c,d,n) au préalable.
Move ‘ab’ to tab-zonec. Move ‘999’ to tab-zonen. Read table tab. If sy-subrc ne 0. Else. Endif. Il est posible de specifier la clé l’option
With key w_cle Binary Searsh. Permet une recherche dichotomique plus rapide. Cette methode necessite un tri préalable de la table.
Refresh.
Suppression d’une entree de table : Refresh = elimine toutes les entrees de la table. Clear = elimine l’en tete de la table . Delete = pour supprimer un poste
particulier en specifiant l’indexe.
Insert = ajouter un poste de table , Modify = permettent de modifier un poste de table, Delete = supprimer un poste de table
Describe : = demande d’information . Lines = retourne le nombre d’entrées . Occurs = Retourne la valeur du parametre Occurs.
(data : l_count type i, l_occurs type i. describe table tab1. Lines l_count. Occurs l_occurs.
Tables
standard Doublons sur clés
Triée
Addresses calculées
Traitement individuel ajout APPEND APPEND w-tab TO tab (tables standard)
Traitement individuel insère INSERT INSERT w-tab INTO tab condition
- table standard = append
- table triée = insertion à la bonne place
- table d’adr. calc. = insertion suivant algor. :
Traitement individuel Lire READ READ tab INTO w-tab condition [WITH TABLE KEY
[avec adresse calculée] nom-1 = ‘ ‘
Traitement individuel modifier MODIFY MODIFY nom_table [FROM w_gr_zones]
Traitement d’un groupe modifier MODIFY MODIFY nom_table WHEREcondition
Traitement individuel Supprimer DELETE DELETE tab condition
Traitement individuel Ajouter/modi COLLECT Cumul sur toutes les zones numériques
fier avec Toutes les zones alphanumériques sont considérées comme composant
cumul de la clé
Traitement par groupe boucle LOOP..END LOOP AT nom_table [INTO wa_ffff]…..ENDLOOP
LOOP
Traitement par groupe supprimer DELETE DELETE table condition
Traitement par groupe insérer INSERT INSERT tab2 condition2 [FROM tab1] WHERE condition1
Traitement par groupe Ajouter APPEND APPEND tab2 condition2 [FROM tab1] WHERE condition1
contenu
FREE, SORT, REFRESH, SORT
Calculs de date : Lorsque vous affectez une zone date à une zone packée , abap IV calcule le nombre de jour depuis 1900, les zone de date sont
converties en valeurs packees avant toute opération arimétique.
Datej = sy-datum . date du jour | datedm+6(2) = ‘01’. jour début de mois | datefm = datedm –1. date fin mois précédent |
datej = datedm –datej. Nombre de jour |
Cas : calculez le premier et le dernier jour du mois.
Data : datedm like sy-datum. « date debut du mois | data : datefm like sy-datum. « date fin mois
sort : Sur les tables internes, la clé de la table est constituée des champs non alphanumériques (<>P,F,I).
(ascending,descending) et les zones de tri. Dans ce cas, les zones de tri doivent etre dans le header.
concatenate : A B C ABC = Concatenate A B C into ABC separated by space.
X Y Z XYZ = split XYZ into X Y Z . Search = recherche chaine de caracteres. Replace = substitution de caracteres.
Translate = Translation (majuscule, minuscule). Condense = supprime les espaces (no-gap).
DO : EXIT : Sortie de la boucle. STOP : arret du programme. REJECT : sortie de la boucle. Do n Times. Traitement. Enddo.
Une forme plus complète de l’instruction do permet de faire varier la valeur d’une zone lors de chaque iteration.
Data : begin of val, zone1(1) type c value ‘1’, zone1(2) type c value ‘2’, end of val. Data : Zone like val-zone1.
Do 2 times varying zone from val-zone 1 next val-zone2. Write : zone. Enddo.
Boucle
CHECK expression logique : dans une boucle, si l'expression logique n'est pas vérifié passage à l'itération
suivante
EXIT : dans une boucle, met fin au traitement de la boucle courante
Lecture unitaire
READ TABLE <nom_table_interne> WITH KEY '...'. IF SY-SUBRC NOT = 0 ...ENDIF.
READ TABLE <nom_table_interne> WITH KEY <k1> = <v1> <k2> = <v2>. IF SY-SUBRC NOT = 0
...ENDIF.
While : la seconde forme de boucle avec condition While i>7. I = i + 1. Write : i. endwhile.
Avec modification a chaque boucle While i < a vary zone from val-zone1 next val-zone2. I=i+1. Traitement…….Endwhile.
Initial. : le teste d’une valeur nulle se fait sous forme . If zone1 is Initial. Le test d’une valeur non nulle sous forme If not zone1 is initial.
Opérateur :
IF Conditions
Perform le sous programme peut etre ecrit dans un autre programme. Le nom de ce programme doit etre
spécifié lors de l’appel. ex : Perform sp-lecture(zfreap01).
Il est aussi possible de transferer des tables internes. Perform sp-lecture(zfreap01) tables tab1 tab2.
Forms sp-lecture tables tab1 tab2. **** endform.
Sous-programme : FORM
FORM <nom-form>
USING <Paramètre> TYPE la modification dans le ss-pgm est gardée
USING VALUE (<Paramètre>) TYPE la modification dans le ss-pgm n’est pas gardée
CHANGING <Paramètre> TYPE la modification dans le ss-pgm est gardée
CHANGING VALUE (<Paramètre>) TYPE la modification dans le ss-pgm ???
Subroutines ef fonctions
• Form ou Subroutines
procédures dans un programme.
perform toto.
Form toto.
do 100 times.
i = i + 1.
enddo.
endform.
Passage de paramètres :
perform toto changing p1
using p2.
form toto changing p1 using p2.
endform.
• Fonctions
Composant global pouvant être appelé par différents programmes.
Call function 'TOTO'.
...
Function 'TOTO'.
write 'Fonction'.
Endfunction.
Concatenate
debut = 'Con'.
milieu = 'ca'.
fin = 'tenate'.
Split
liste = 'abc,defgh,ijklm’.
shift
nom1 = 'Dupont'.
nom2 = 'Durant'.
nom3 = 'Duchemin---'.
nom4 = 'Salut les gars'.
– shift nom1.
Replace
nom4 = 'Salut les gars' .
translate
expression = ' a ** 2 + b ** 2 = c ** 2'
Search
nom = 'Salut les gars' .
Continue rrent loop pass within a DO, WHILE, LOOP or (Pour arrerla finde la boucle et reprendre au debut)
DynproL SCREEN N° : Appelle un ecran et les suivants.
SET SCREEN N° : Ecrase un ecran puis revient à l’ecran de depart
LEAVE TO SCREEN : Quitte l’ecran
LEAVE PROGRAM : Quitte le programme
Call transaction
Par opposition au batch input, cette fonction permet de passer les données directement à l’interface de dialogue (sans
utilisation de la file d’attente),
Une table interne de structure BDCDATA est utilisée pour stocker les données à traiter,
La transaction est appelée et les données transférées directement vers les écrans de transaction.
– A : Affiche tout,
– E : N’affiche qu’en cas d’erreur,
– N : N’affiche rien.
« Mode de mise à jour » :
– S : Mode synchrone
– A : Mode asynchrone
L’option «Messages» permet de conserver tous les messages générés dans une table interne, de structure
BDCMSGCOLL.
Code retour
Signification Valeur
SY-SUBRC
Succès O
Zones système
Signification Zone
Id de message SY-MSGID
Les fichiers
• Lecture de données
• Fermeture fichier
WS_DOWNLOAD / WS_UPLOAD
Afin de pouvoir lire et écrire des données sur le PC en local, il est nécessaire d’utiliser
les fonctions suivantes :
• WS_DOWNLOAD
Permet de sauvegarder une table interne sous forme de fichier.
• WS_UPLOAD
Permet de charger un fichier plat dans une table interne.
• WS_UPLOAD
tables : salarié.
data itab_salarié like salarié occurs 100 with header line.
call function ‘WS_UPLOAD’
exporting
filename = ‘monfichier’
tables
data_tab = itab_salarié
exceptions
file_open_error = 1
others = 2.
case sy-subrc.
when 1.
write ‘Erreur ouverture fichier’. exit.
when 2.
write ‘erreur autre’. exit.
endcase.
• WS_DOWNLOAD
tables : salarié.
data itab_salarié like salarié occurs 100 with header line.
select * from salarié into table itab_salarié.
call function ‘WS_DOWNLOAD’
exporting
filename = ‘monfichier’
tables
data_tab = itab_salarié
exceptions
file_open_error = 1
others = 2.
case sy-subrc.
when 1.
write ‘Erreur ouverture fichier’. exit.
when 2.
write ‘erreur autre’. exit.
endcase.
fermeture du fichier
PERFORM fermeture_fichier USING p_fic.
SKIP.
Batch input
Les modules fonction
Démarche
• zone PROGRAM
– ‘ X’ ou ' '
• zone FNAM
– valeur de la zone,
ou
• call ‘BDC_OPEN_GROUP’
...
• call ‘BDC_INSERT’
...
• call ‘BDC_CLOSE_GROUP’
...
Mode de traitement
A Avant Plan Affiche toutes les étapes du dialogue
N Affichage des erreurs Affiche les étapes du dialogue uniquement pour les messages d’interruption ou d’erreur
uniquement
Arrière Plan Traitement en arrière plan. Etapes du dialogue non affichées
Mode correction
Permet de contrôler le traitement du dossier en saisissant une commande dans la ligne de commande
Fonction OK Code
Statut du dossier
Par opposition au batch input, cette fonction permet de passer les données directement à l’interface de dialogue (sans
utilisation de la file d’attente),
Une table interne de structure BDCDATA est utilisée pour stocker les données à traiter,
La transaction est appelée et les données transférées directement vers les écrans de transaction.
– A : Affiche tout,
– E : N’affiche qu’en cas d’erreur,
– N : N’affiche rien.
« Mode de mise à jour » :
– S : Mode synchrone
– A : Mode asynchrone
L’option «Messages» permet de conserver tous les messages générés dans une table interne, de structure
BDCMSGCOLL.
Code retour
Signification Valeur
SY-SUBRC
Succès O
Zones système
Signification Zone
Id de message SY-MSGID
MG/composantes inter-
application/classification/outil/ reprise de
donnees / classes/ realiser transfert de
données
RCCLBI02 CLB1 RCCLBISC
IMG/composantes inter-
application/classification/outil/ reprise de
donnees / classes/ realiser transfert de
données :réaliser transfert de données via
procédé batch input
Rmmbim0 Omsu,ov/4 Rmmmbime
Articles
Rfbide00 Ot38,ov/2 Rfbideto
Clients
Rm07ie31 Mie1
Commandes client
Rvinvb00 Ov/6 Rvinvbt0
Condition
RM06BBIO OMHK RM06BBIE
DEMANDES D4ACHAT
RMMM60BI OMPF
Données de gammes
RM07II40 MI40,OMC9
Ecarts d’inventaire
RMDATSHO Omy0
Fiche article
RFBIKR00 OMSV,OT39,OV/3 RFBIKRT0
Fournisseurs
RCCTBI01 CT21
IMG/composantes inter-
application/classification/outil/ reprise de
donnees / caracteristiques/ realiser
transfert de données
RAALTD01 OA13
Immobilisations
RM06IBIO OMFL RM06IBIE
Info achats
RM07MMBL MBBM,OMC5
Mouvement de stock
SAPMFM00 OF03
Moyen de paiment
RCSBI010 OS41
Nomenclature
RHALTD00 OODT
Personnel
RLBEST00 LX19 RLBEST20
Stock
RFBIBL00 OBG4
Piece comptable
RM07RRES OMCA
Reservation de stock
RCVBI010 OD91 RCVBI005
Transfert de document
FORM traitement_bdc.
LOOP AT wt_in.
* AT NEW contrat_cadre.
* premier écran de modification d'un contrat
PERFORM bdc_dynpro USING 'SAPMM06E' '0205'.
PERFORM bdc_field USING 'RM06E-EVRTN' wt_in-contrat_cadre.
PERFORM bdc_okcode USING '/00'.
* ENDAT.
* AT NEW poste.
SELECT SINGLE * FROM ekpo WHERE ebeln = wt_in-contrat_cadre
AND ebelp = wt_in-poste.
* verification du delai pour traitement de cette partie
IF NOT wt_in-delai IS INITIAL OR
NOT wt_in-typ_px IS INITIAL . "modif £08 et £09
*selection du poste.
PERFORM selec_poste USING sy-subrc .
* synthese poste contrat-cadre une ligne
PERFORM bdc_dynpro USING 'SAPMM06E' '0220'.
PERFORM bdc_okcode USING '=DETZ'.
PERFORM bdc_cursor USING 'RM06E-EVRTP(01)'.
* ENDAT.
* chargement du délai de livraison au niveau des postes dans la vue
* "données supplémentaires"
PERFORM bdc_dynpro USING 'SAPMM06E' '0212'.
PERFORM bdc_field USING 'EKPO-PLIFZ' wt_in-delai.
PERFORM bdc_field USING 'EKPO-MEPRF' wt_in-typ_px. "modif £09 £08
PERFORM bdc_okcode USING '=BACK'.
* supprimer le poste**************************
ENDIF.
IF wt_in-temoin = 'X'.
PERFORM selec_poste USING sy-subrc.
* selection du poste complet.
IF p_credos IS INITIAL.
PERFORM call_transaction_msg USING 'ME32' 'A'.
ELSE.
PERFORM bdc_transaction USING 'ME32'.
ENDIF.
ENDIF.
* ENDAT.
ENDLOOP.
Les composants d’un formulaire Les pages, les fenêtres de page, les données d’en-tête, les
fenêtres (type VAR (texte sur une seule page) ou MAIN
(textes sur plus. pages) de chaque page
Les paragraphes utilisables dans le texte
Les éléments d’une fenêtre
‘PC editeur painter’ (no recommandé) En mode ‘form painter graphique’ permet de modifier le
texte directement dans la fenêtre (après avoir cliqué sur
éléments de textes ? ?)
‘form painter graphique’ En cochant ‘disposition’: sur L’écran se superposent 2
fenêtres :
à droite : la maquette du formulaire
à gauche : la définition de l’objet sélectionné
Lister les éléments par fenêtre (être en mode non SE71 / saisie du nom du formulaire / cocher bouton
graphique) radio ‘fenêtre’
Sélectionner la fenêtre par double-click sur la ligne
Cliquer sur l’icône crayon ou menu ‘traiter’ choix
‘éléments de texte’‘
Connaître le pgm qui est appelé Manip ‘Lister les éléments par fenêtre’
Marquer un éléments et cliquer sur l’icône avec bulle
‘définition de symbole’ ou menu ‘saut’ / choix
‘programme d’impression’ / choix ’définition de
symbole’
Aller sur le pgm qui est appelé Manip ‘Connaître le pgm qui est appelé’
Cliquer sur le bouton ‘récupérer’
Les symboles
système
DATE,
DAY NAME_OF_DAY
MONTH, NAME_OF_MONTH
YEAR
TIME, HOURS, MINUTES, SECONDS
PAGE, NEXTPAGE
SPACE, ULINE, VLINE Espace, sous-lignement, ligne verticale
Options de formatage
&symbole&
&symbole+4& Décalage
&symbole(5)& Longueur
&symbole(I)& Non affiché si valeur intiale
&symbole(Z)& Supprime zéros initiaux
&symbole( C)& Comprime espaces vides
&symbole( R)& Alignement à droite
&symbole(S)& Supprime opérateurs
&symbole(*)& Longueur dictionnaire
&symbole(8.2)& Format décimal
&’Text1’SYMBOL’text2’&symbole& Insertion texte avant et après
report zscnveuf .
*----------------------------------------------------------------------*
* Syntaxe de l'appel depuis le formulaire *
*----------------------------------------------------------------------*
** /: PERFORM CONVERSION_FRANC_EURO IN PROGRAM ZSCNVEUF. *
** /: USING &montant_en_franc&. *
Dernier enregistrement le 17/04/09 page 53 / 77
** /: CHANGING &MONTANT-en_EURO&. *
** /: ENDPERFORM. *
* *
*----------------------------------------------------------------------*
* conversion d'un montant en franc en un montant en euro *
* la routine est normalement appelée d'un formulaire *
* le pgm principal sert à tester la conversion par saisie d'un montant *
* la récupération des valeurs se fait à partir de l'index de la table *
* (READ TABLE winput INDEX 1.) *
* plutot que par la zone 'name' pour permettre *
* (READ TABLE WINPUT WITH KEY NAME = 'REGUD-SWRBT'.) *
* son utilisation généralisée *
* idem pour l'écriture dans la table en sortie *
*----------------------------------------------------------------------*
* le montant provenant d'une zone texte , il est nécessaire de le *
* transformer pour qu'il soit reconnu comme un montant *
* - suppression de tous les blancs *
* - supression du '.' des milliers *
* - remplacement de la ',' décimale par le '.' décimal *
* *
* ATTENTION : la zone montant doit être écrite dans une zone texte *
* intermédaire avant d'être écrite dans la zone 'value' *
* de la table pour être correctement récupérée dans *
* le formulaire *
*----------------------------------------------------------------------*
* données en entree : 1 enr. de la table de structure ITCSY *
* *
* (zone 'name' et zone 'value') *
* données en sortie : 1 enr. de la table de structure ITCSY *
*----------------------------------------------------------------------*
tables : itcsy .
data : begin of w_itcsy_in occurs 0.
include structure itcsy.
data : end of w_itcsy_in.
data : begin of w_itcsy_out occurs 0 .
include structure itcsy.
data : end of w_itcsy_out.
data : w_valeur_retour(15) type c.
*-----------------------------------------------------------------*
parameters : s_mont like bseg-dmbtr.
*-----------------------------------------------------------------*
start-of-selection.
clear w_itcsy_in.
write s_mont to w_itcsy_in-value .
append w_itcsy_in.
append w_itcsy_out.
perform conversion_franc_euro tables w_itcsy_in
w_itcsy_out .
loop at w_itcsy_out.
*-----------------------------------------------------------------*
read table woutput index 1.
write w_montant_euro_2 to w_zone_19.
write w_zone_19 to woutput-value.
endform.
*-----------------------------------------------------------------*
• R : Report SAP,
• M : ModulePool,
– Type :
• 1 : programme Online,
• I : Include,
• M : ModulePool,
• F : Fonctions
• T : Programme Test,
• P : Programme de Production,
• K : Programme Client,
• S : Programme Système
•
– Application
Identifie le domaine applicatif
• F : Comptabilité Financière,
• K : Comptabilité Analytique,
• S : Système
– Groupe Autorisation
Permet de gérer les accès au programme.
– Classe de Développement
Zone : Les caractéristique technique (longueur,format, contrôle) de la zone sont géreer par le domaine et la documentation et libellé sont
gérer par l’élément de données.
Elément de donnée : gère pour la zone les libéllés(court, moyen, long et intitulé). Les intitulés sont utilisé lors de l’affichage de la table des valeurs et de la
gestion avec la transaction SM31. Un élément de données est enrelation avec seul domaine.Il gere aussi le Parametre ID
Domaine : le domaine décrit les caractéristique technique d’une zone. Format et longueeur. Les valeurs admises pour la zone liste de constantes,
Ou,table de valeur(voir clé externe).Un domaine peut etre affecté à plusieur élément de données différent dans la meme table.
Clé externe : Une clé externe permet le contrôle de la valeur d’une zone par rapport à la valeur d’une autre table(table de contrôle). La zone de la
table de contrôle doit etre une clé.
Gestion des tables : Pour créer l’écran de gestion , dans le meme écran appuyer dans le menu environnement >G2N2R Gest tab.
La gestion à 1 niv consiste à afficher et à gérer les données sur le méme écran.
La gestion à 2 niv. Consiste à afficher les données sur le premier écran et gérer les données sur le 2 eme
Index secondaire : il améliore less performances d’accés aux tables relationnelles.Il constitue un nouveau chemin d’accés aux données d’une table
un index secondaire est constitué de zones de la table. C’est zones générent une clé de substitution à la clé primaire.
Le systeme crée une table index. Un index permeet d’accéder directement aux données d’une table sans faire appel aux clé primaires de
celle ci. Les indexes secondaire ne s’appliquent qu’aux tables transparentes.
Une VUE : une vue est une table virtuelle composée des colonnes d’une ou plusieur tables.
Type de Vues : Vue de base de données. Accés uniquement en lecture. Une vue équivalente est crée dans la base de données. Les
données sont selectionnées à partir des tables source suivants les condition de jointure.
Vue de projection : Composée d’une selection de colonnes d’une seule table.
Vue d’aide : utilisee par l’aide à la saisie pour la sélection des valeurs possibles d’un champ, association d’une valeur et de sa
désignation . 1 vue d’aide par table transparente.
Vue de gestion. ; c’est une vue constitué de plusieurs tables dont les liens (criteres de selection) sont les clés externes.
Objet de blocage : est utilisé pour bloquer en registrement de table lors d’une mise à jour par plusieur utilisateurs de facon simultanée.
Les champs de l’objet de blocage sont des champs clé de toutes les tables impliquées dans le blocage.
La transaction SM12 permet une gestion manuelle des objets de blocage attention transaction dangereuse !
Matchcode : Sont des tables ou des vues SAP. Ils peuvent prendre une forme virtuelle ou physique. Il sont utilisé comme un chemin secondaire
lorsque le primaire est inconnu. Un matchcode peut comprendre des champs de plusieurs tables , transparentes ou non. Des conditions
de selection peuvent etre stipulées. Un matchcode repose sur une objet de matchcode est sur un identifiant de matchcode.
Objet de matchcode : l’objet de matchcode definit une vue d’une ou plusieur tables et/ou un pool de tables.
La structure repose sur les relations existantes entre ces tables (clé étrangéres).
L’objet de matchcode indique les tables et leurs zones sur lesquelles pourra etre définit l’identifiant de matchcode.
La zone cicle est la zone dont on veut récupérer la valeur. 1 seule zone cicle par matchcode.
Identifiant de matchcode : Projection sur l’objet de matchcode.
L’identifiant décrit les zones du matchcode selectionnées parmi clles de l’objet de matchcode et qui vont apparaître dans la popup.
Les zones définit dans l’identifiant seront utilisé pour la recherche de la données. 36 maxi par objet
C'est sommaire des transactions du module d'accès du contrôle (CA) de la version 3.x du système SÈVE R/3:
TRANSACTIONS DE LOGISTIQUE
C'est sommaire des transactions du module de la logistique largement (MM) de la version 3.x du système SÈVE
R/3:
C'est sommaire des transactions du module de ressources humaines (HR) de la version 3.x du système SÈVE
R/3:
C'est sommaire des transactions du module de ventes et distribution (SD) de la version 3.x du système SÈVE
R/3:
C'est sommaire des transactions administration financière (FI) de la version 3.x du système SÈVE R/3:
TRANSACTIONS
/n : Retour racine.
/o : Gestion des modes.
/h : Débuggeur.
Transactions SE :
EI = Ecran Initial
SE01 : Transport Organizer ( Vue Etendue )
SE03 : Outils de Transport Organizer
SE06 : Suivi après Installation Transport-Organizer
SE07 : Affichage Statuts du Change and Transport System
SE09 / SE10 : TRANSPORT ORGANIZER (Ordres de Transport)
Transactions SE (suite):
EI = Ecran Initial
SE77 : Traduction de Feuilles de Styles SAPScript
SE78 : SAPScript Gestion des Graphiques
SE80 : Lancement Application Object Navigator
SE81 : Hiérarchie des Applications
SE82 : Création Hiérarchie des Applications
SE83 : Afficher Reuse Library
SE84 / SE85 / SE86 / SE87 / SE88 / SE90 : Système d’Information du R/3 Repository
(Dictionnaire ABAP)
SE89 : SI du Repository : Gestion de la Structure Arborescente
SE91 : Gestion des Messages (EI)
SE92 : Gestion des Messages SysLog (EI)
SE93 : Gestion des Transactions
SE94 : Simulation : Extension Client à SE38
SE95 : Modification Browser : Sélection d’Objets
SE97 : Contrôler Autorisation de lancement Transaction lors d’Appels Transaction
Transactions SM :
EI = Ecran Initial
SM01 : Table TSTC : Bloquer / Débloquer Codes de transaction
SM02 : Messages Système
SM04 : Liste des Utilisateurs
SM12 : Sélectionner Entrées de Blocage
SM13 : Enregistrement de Mise à jour : Sélection
SM14 : Administration Tâches de Mise à Jour
SM18 : Audit de sécurité : Supprimer les Anciens Fichiers d’Audit
SM19 : Audit de sécurité : Administrer profil d’Audit
SM20 : Journal d’Audit : Analyse Locale de « victoria »
SM21 / SM22 : SysLog : Analyse Locale sur « victoria »
SM28 : Contrôle de Cohérence Initial de SAP
SM29 : Tables - Reprise de Modèle
SM30 / SM31 : Gestion des Vues de Tables (EI)
SM32 / SM33 : Tables : Accès
SM34 : Gestion des Clusters de Vues
SM35 : Batch – input : Synthèse des Dossiers
SM36 : Définir Job
SM37 : Sélection de Jobs Simples
SM38 : File d’Attente (EI)
SM39 : cf SM37
SM49 : Commandes de Système Exploitation Externes
SM50 : Synthèse des Processus
SM51 : Serveur SAP
Transactions SM (suite):
EI = Ecran Initial
SM54 : Gestion de la Table TXCOM
SM55 : Gestion de la Table THOST
SM56 : Mémoire Tampon Tranches de Numéro
SM58 : RFC Transactionnel
SM59 : Affichage et Gestion des Destinations RFC
SM61 : Afficher Liste des Objets de Commandes
SM62 : Afficher / Gérer : Désignation d’ Evénements
SM63 : Afficher / Gérer : Set des Modes d’Exploitation
SM64 : Eclater Evénement du Traitement en Arrière – Plan
SM65 : Outil d’Analyse Traitement en Arrière – Plan (tests simples)
SM66 : ?
SM69 : Commandes de Système Exploitation Externes
Transactions AL :
EI = Ecran Initial
AL01 : CCMS : Regroupement de Moniteurs Fonction de Gestion Désactivées
Dernier enregistrement le 17/04/09 page 64 / 77
AL02 / AL04 / AL05 : SAP Performance Monitor
AL03 : Graphiques de Monitorage du Système d’Exploitation
AL06 : Performance Report : Upload / Download
Report for Customer System
AL07 : Performance Report : Early Watch Data Collection
AL08 : Current Active Users
AL09 : Télédéchargement MONI
AL10 : Download des Données, Performance vers Early Watch
AL11 : Répertoire SAP (chemin fichier)
AL12 / AL13 : ? (application)
AL15 : Destination SAPOSCOL
AL16 / AL18 : Local (Victoria) / SAP Operating System Monitor
AL17 / AL19 : cf AL15 (bloqué)
AL21 : Analyse de Programmes ABAP/4
AL22 : Affichage des Objets Dépendants
Transactions Diverses :
EI = Ecran Initial
SHDB : Enregistrement de Transaction : Synthèse des Enregistrements
SPAD : Administration Spool
/C : Débogueur ABAP
/H : Activation débogueur
/I : Fin de Session ?
/N : Lancer « SAP Easy Access »
/O : Liste des Modes
Transactions VA :
EI = Ecran Initial
VA01 : Créer une Commande Client (EI)
VA02 : Modifier une Commande Client
VA03 : Afficher une Commande Client
VA05 : Liste Commandes Client
VA07 : Comparaison Achats-Ventes (Sélection via N° de Commande Client)
VA08 : Comparaison Achats-Ventes (Sélection via Données Organisation)
VA11 : Créer une Demande d’Offre (EI)
VA12 : Modifier une Demande d’Offre
VA13 : Afficher une Demande d’Offre
VA15 : Liste des Appels d’Offre
VA21 : Créer une Offre (EI)
VA22 : Modifier une Offre
VA23 : Afficher une Offre
Dernier enregistrement le 17/04/09 page 65 / 77
VA25 / VA26 : Liste des Offres
VA31 : Créer un Programme de Livraison (EI)
VA32 : Modifier un Programme de Livraison
VA33 : Afficher un Programme de Livraison
VA35 : Liste des Programmes de Livraison
VA41 : Créer un Contrat (EI)
VA42 : Modifier un Contrat
VA43 : Afficher un Contrat
VA44 : Définir Périmètre Analytique
VA45 / VA46 : Liste des Contrats
VA51 : Créer une Proposition de Poste (EI)
VA52 : Modifier une Proposition de Poste
VA53 : Afficher une Proposition de Poste
VA55 : Liste des Propositions de Poste
A017
A018
FICHE INFO ARTICLE
CHAMPS ELEMENT DE DONNEE TYPE LONG. TAB .CTRL LIBELLE DU CHAMPS
KAPPL KAPPL CHAR 2 T681A Application
KSCHL KSCHA CHAR 4 T685 Type de condition
LIFNR ELIFN CHAR 10 LFA1 Numéro de compte fournisseur
MATNR MATNR CHAR 18 MARA Numéro d'article
EKORG EKORG CHAR 4 T024E Organisation d'achats
ESOKZ ESOKZ CHAR 1 Type de la fiche infos-achats
DATBI KODATBI DATS 8 Fin de la période de validité d
RELATION KONP ET EINE
KONP
CONDITION DE POSTES
CHAMPS ELEMENT DE DONNEE TYPE LONG. TAB .CTRL LIBELLE DU CHAMPS
KNUMH NUMH CHAR 10 Numéro de l'enregistrement cond
KOPOS OPOS NUMC 2 Numéro d'ordre de la condition
RELATION A019 , A017 , A016 , A018
A016
POSTE DE CONTRAT
CHAMPS ELEMENT DE DONNEE TYPE LONG. TAB .CTRL LIBELLE DU CHAMPS
KAPPL KAPPL CHAR 2 T681A Application
KSCHL KSCHA CHAR 4 T685 Type de condition
EVRTN E BELN CHAR 10 EKKO Numéro du document d'achat
EVRTP EBELP NUMC 5 EKPO Numéro du poste du document d'a
DATBI KODATBI DATS 8 Fin de la période de validité d
RELATION A019, KONP , EKKO, EKPO
EINA
FICHE INFO ACHAT DONNEE GENERALES
CHAMPS ELEMENT DE DONNEE TYPE LONG. TAB .CTRL LIBELLE DU CHAMPS
INFNR INFNR CHAR 10 T681A Numéro de la fiche infos-achats
RELATION EBAN, EINE, A017, EINA, EKPO , A018, EIPA
EBKN
IMPUTATION DEMANDE D’ACHAT
CHAMPS ELEMENT DE DONNEE TYPE LONG. TAB .CTRL LIBELLE DU CHAMPS
BANFN BANFN CHAR 10 Numéro de la demande d'achat
BNFPO BNFPO NUMC 5 Numéro du poste de la D.A.
ZEBKN ZEBKN NUMC 2 EKKO Numéros des segments d'imputati
RELATION EBAN
EBAN
DEMANDE D’ACHAT
CHAMPS ELEMENT DE DONNEE TYPE LONG. TAB .CTRL LIBELLE DU CHAMPS
BANFN BANFN CHAR 10 Numéro de la demande d'achat
BNFPO BNFPO NUMC 5 Numéro du poste de la D.A.
RELATION EBKN, EKPO, MARA, LFA1
EKKO
EN TETE DOCUMENT D’ACHAT
CHAMPS ELEMENT DE DONNEE TYPE LONG. TAB .CTRL LIBELLE DU CHAMPS
EBELN EBELN CHAR 10 EKKO Numéro du document d'achat
RELATION EKKO, A016, EINA, EINE, EIPA, EKAB, EKET, KONV, LFA1, EKES, EKBE, EKPA
EKPO
POSTE DOCUMENT D’ACHAT
CHAMPS ELEMENT DE DONNEE TYPE LONG. TAB .CTRL LIBELLE DU CHAMPS
EBELN EBELN CHAR 10 EKKO Numéro du document d'achat
EBELP EBELP NUMC 5 EKKO Numéro du poste du document d'a
RELATION EBAN
EKET
ECHEANCE DU PROGRAMME DE LIVRAISON
CHAMPS ELEMENT DE DONNEE TYPE LONG. TAB .CTRL LIBELLE DU CHAMPS
EBELN EBELN CHAR 10 EKKO Numéro du document d'achat
EBELP EBELP NUMC 5 EKKO Numéro du poste du document d'a
ETENR EETEN NUMC 4 Compteur des échéances
RELATION EKPO
EINE
FICHE INFO ACHAT DONNEES DE L’ORGANISATION D’ACHAT
CHAMPS ELEMENT DE DONNEE TYPE LONG. TAB .CTRL LIBELLE DU CHAMPS
INFNR INFNR CHAR 10 EINA Numéro de la fiche infos-achats
EKORG EKORG CHAR 4 T024E Organisation d'achats
ESOKZ ESOKZ CHAR 1 Type de la fiche infos-achats
EIPA
DETERMINATION PRIX DE COMMANDE ENREGISTREMENT INFO
CHAMPS ELEMENT DE DONNEE TYPE LONG. TAB .CTRL LIBELLE DU CHAMPS
INFNR INFNR CHAR 10 EINA Numéro de la fiche infos-achats
EBELN EBELN CHAR 10 EKKO Numéro du document d'achat
EBELP EBELP NUMC 5 EKKO Numéro du poste du document d'a
RELATION EKPO, EINA
EKAB
DOCUMENT D’APPEL SUR CONTRAT
CHAMPS ELEMENT DE DONNEE TYPE LONG. TAB .CTRL LIBELLE DU CHAMPS
KONNR KONNR CHAR 10 EKKO N° du contrat-cadre supérieur
KTPNR KTPNR CHAR 5 EKPO Numéro du poste du contrat-cadr
EBELN EBELN CHAR 10 EKKO Numéro du document d'achat
EBELP EBELP NUMC 5 EKPO Numéro du poste du document d'a
RELATION EKPO
KONV
CONDITION (DONNEES ALTERNATIVES)
CHAMPS ELEMENT DE DONNEE TYPE LONG. TAB .CTRL LIBELLE DU CHAMPS
KNUMV KNUMV CHAR 10 Numéro de la condition du docum
KPOSN KPOSN NUMC 6 Numéro du poste pour lequel des
STUNR STUNR NUMC 3 Numéro de niveau
ZAEHK ZAEHK NUMC 2 Compteur de conditions
KAPPL KAPPL CHAR 2 T681A Application
RELATION EKKO, EKPO
EKPA
FONCTION PARTENAIRE DANS LES ACHAT
CHAMPS ELEMENT DE DONNEE TYPE LONG. TAB .CTRL LIBELLE DU CHAMPS
EBELN EBELN CHAR 10 EKKO Numéro du document d'achat
EBELP EBELP NUMC 5 EKKO Numéro du poste du document d'a
EKORG EKORG CHAR 4 T024E Organisation d'achats
LTSNR LTSNR CHAR 6 WYT1 Sous-gamme fournisseur
WERKS WERKS_D CHAR 4 T001W Division
PARVW PARVW CHAR 2 TPAR Fonction de partenaire (ex. WE
PARZA PARZA NUMC 3 Compteur de partenaires
RELATION LFA1, EKPO
EKPA
FONCTION PARTENAIRE DANS LES ACHAT
CHAMPS ELEMENT DE DONNEE TYPE LONG. TAB .CTRL LIBELLE DU CHAMPS
EBELN EBELN CHAR 10 EKKO Numéro du document d'achat
EBELP EBELP NUMC 5 EKKO Numéro du poste du document d'a
ZEKKN ZEKKN NUMC 2 Numéro de l'imputation
VGABE VGABE CHAR 1 Type d'opération historique de
GJAHR MJAHR NUMC 4 Exercice du document article
BELNR MBLNR CHAR 10 Numéro de document article
BUZEI MBLPO NUMC 4 Poste du document article
RELATION MARA, EKPO ,MKPF, MSEG
MKPF
ENTETE DE DOCUMENT D’ARTICLE
CHAMPS ELEMENT DE DONNEE TYPE LONG. TAB .CTRL LIBELLE DU CHAMPS
MBLNR MBLNR CHAR 10 Numéro de document article
MJAHR MJAHR NUMC 4 Exercice du document article
RELATION EKBE, MSEG
MSEG
SEGMENT DE DOCUMENT POUR ARTICLE
CHAMPS ELEMENT DE DONNEE TYPE LONG. TAB .CTRL LIBELLE DU CHAMPS
MBLNR MBLNR CHAR 10 Numéro de document article
MJAHR MJAHR NUMC 4 Exercice du document article
ZEILE MBLPO NUMC 4 Poste du document article
RELATION LFA1,MARA , EKBE,,MKPF
LFB1
FICHE FOURNISSEUR SOCIETE
CHAMPS ELEMENT DE DONNEE TYPE LONG. TAB .CTRL LIBELLE DU CHAMPS
LIFNR ELIFN CHAR 10 LFA1 Numéro de document article
BUKRS BUKRS CHAR 4 T001 Société
RELATION LFA1
LFB1
FICHE FOURNISSEUR SOCIETE
CHAMPS ELEMENT DE DONNEE TYPE LONG. TAB .CTRL LIBELLE DU CHAMPS
LIFNR ELIFN CHAR 10 LFA1 Numéro de document article
RELATION LFB1, LFM1, MSEG, EKPA, EKPO, EKKO, EBAN , AMPL, EORD
EKES
CONFIRMATION DES COMMANDES
CHAMPS ELEMENT DE DONNEE TYPE LONG. TAB .CTRL LIBELLE DU CHAMPS
EBELN EBELN CHAR 10 EKKO Numéro du document d'achat
EBELP EBELP NUMC 5 EKKO Numéro du poste du document d'a
ETENS ETENS NUMC 4 Numéro de la confirmation de co
RELATION MARA ,EKPO
EQUP
FICHIER QUATAS POSTE
CHAMPS ELEMENT DE DONNEE TYPE LONG. TAB .CTRL LIBELLE DU CHAMPS
QUNUM QUNUM CHAR 10 Nº de la répartition des quotas
QUPOS QUPOS NUMC 3 Poste quotas
RELATION EQUK
EQUK
CONFIRMATION DES COMMANDES
CHAMPS ELEMENT DE DONNEE TYPE LONG. TAB .CTRL LIBELLE DU CHAMPS
MATNR MATNR CHAR 18 MARA Numéro d'article
WERKS WERKS_D CHAR 4 T001W Division
BDATU QUOBI DATS 8 Fin de validité de la période d
RELATION MARA
MARA
FICHE ARTICLE DONNEES GENERALES
CHAMPS ELEMENT DE DONNEE TYPE LONG. TAB .CTRL LIBELLE DU CHAMPS
MATNR MATNR CHAR 18 MARA Numéro d'article
RELATION EQUK, EBAN EKPO, EKES, AMPL,MARC, MAKT, EORD, EKBE
MARC
FICHE ARTICLE SEGMENT C (DIVISION)
CHAMPS ELEMENT DE DONNEE TYPE LONG. TAB .CTRL LIBELLE DU CHAMPS
MATNR MATNR CHAR 18 MARA Numéro d'article
WERKS WERKS_D NUMC 4 T001W Division
RELATION MARA, MBEW
AMPL
TABLE DES PIECES FABRICANT AUTORIS2ES
CHAMPS ELEMENT DE DONNEE TYPE LONG. TAB .CTRL LIBELLE DU CHAMPS
BMATN MPMAT CHAR 18 MARA Numéro de l'article propre à l'
AMPNR AMPNR NUMC 5 Numéro de l'enregistrement des
RELATION MARA, MARA, LFA1
MAKT
DESIGNATION DES ARTICLES
CHAMPS ELEMENT DE DONNEE TYPE LONG. TAB .CTRL LIBELLE DU CHAMPS
MATNR MATNR CHAR 18 MARA Numéro d'article
SPRAS SPRAS LANG 1 T002 Code langue
RELATION MARA
EORD
REP. SOURCE APPROVISIONNEMENT ACHAT
CHAMPS ELEMENT DE DONNEE TYPE LONG. TAB .CTRL LIBELLE DU CHAMPS
MATNR MATNR CHAR 18 MARA Numéro d'article
WERKS WERKS_D NUMC 4 T001W Division
ZEORD ZEORD NUMC 5 T149D Numéro fiche rép.sources appro.
RELATION MARA, LFA1
Définition MM
Définition d’une DA
Une DA (Demande d’Achat : EBAN-BANFN) est un document interne qui décrit un besoin d’achat permettant de répondre à un impératif de production ou de non-production.
Ce besoin est le résultat du Calcul des besoins (CBN) ou la conséquence d’une demande ponctuelle.
Ce besoin concerne une Division (EBAN-WERKS), pour un ou plusieurs Articles (EBAN-MATNR), dans certaines quantités (EBAN-MENGE), pour une ou plusieurs dates
de besoins. ? ? ?Test effectué : La division est obligatoire à la création d’une DA.
La fiche article doit exister pour la division traitée.
Au niveau de la DA, le besoin exprimé n’est pas forcément lié à un fourniseur.
La DA est structurée en postes (1 ou N) (EBAN-BNFPO). Il n’y a pas de notion d’entête et pas de notion d’échéance pour une DA.
Types de DA
Un contrat (EKKO-EBELN) est un document d’achat contractuel vis à vis d’un fournisseur (EKKO-LIFNR) pour une période de validité déterminée.
Le fournisseur d’un contrat correspond au partenaire de type FR.
La période de validité correspond à [Début de la période de validité (EKKO-KBDAT) ; Fin de période de validité (EKKO-KDATE)].
Lorsque la date de fin de validité est dépassée, aucune commande ne peut être passée au titre de ce contrat.
Le contrat est composé d’une entête et de 1 à N postes.
Types de contrat
Une commande d’achat est identifiée par un numéro de commande (EKKO-EBELN) et une catégorie du type de document d’achat (EKKO-BSTYP = F).
Une commande est composée de 1 à N postes identifiés par le numéro de la commande (EKPO-EBELN) et un numéro de poste (EKPO-EBELP). A chaque poste de
commande est associé à 1 ou N échéances.
Les échéances sont identifiées par le numéro de la commande (EKET-EBELN), le numéro du poste (EKET-EBELP) et un numéro d’échéance (EKET-ETENR).
Types de Commande
Pour être utilisé tout au long du flux Achats, la Fiche article doit également être définie au niveau division SAP pour les vues MRP (Material Ressource Planning), Achats
(table MARC), Comptabilité et magasin pour les vues Stocks (hors périmètre du projet Achats).
Tout ce qui concerne la valorisation de l’article (prix, types de prix, stocks, valorisations) est renseigné dans la table MBEW.
Le domaine de valorisation est le niveau de valorisation auquel doivent être effectuées les valorisations de l’article. Il correspond soit à une division, soit à l’ensemble des
divisions d’une société (c’est-à-dire la société elle-même). A la SAGEM, le domaine de valorisation est la division SAP.
La zone groupe de valorisation permet de faire plusieurs valorisations pour un couple article / domaine de valorisation. Il n’est pas utilisé actuellement à la SAGEM. On a
donc :
zone MBEW.BWTAR = ‘ ‘ (1 blanc)
Dans la table MBEW, on aura par article un PMP ou un prix standard (en fonction du code prix) par division SAP.
Une éventuelle agrégation de ces prix à des niveaux supérieurs au couple article / division SAP n’est pas pertinente fonctionnellement pour les Achats. On entre alors dans le
périmètre de la comptabilité fournisseur (hors périmètre du projet).
Un article peut avoir une vue générale (c’est-à-dire un enregistrement dans MARA) sans avoir de vue Achat, MRP, Stock, Comptabilité…
Il n’est donc pas obligatoire d’avoir pour chaque article un enregistrement dans les table MARC et MBEW.
Cependant, si l’article a une vue Achats pour une ou plusieurs divisions, on aura un enregistrement par couple article / division dans la table MARC.
La Fiche fournisseur
Définitions
Rappel : A la SAGEM, on travaille avec une seule société et une seule organisation d’achats.
La société est un niveau des données organisationnelles dans SAP (on a une comptabilité par société), juste au-dessous du mandant.
L’introduction des données concernant la Tchéquie dans SAP entraînera la création d’une nouvelle soc iété, dont les règles de gestion ne sont
pas actuellement définies.
L’organisation d’achats n’est pas un niveau des données organisationnelles dans SAP. Il s’agit d’une unité d’organisation achats qui détermine les modalités générales des achats
pour
une ou plusieurs divisions (dans le cas SAGEM, il s’agit de l’ensemble des divisions).
Il s’agit d’un document interne qui fait le lien entre un article et un fournisseur. Ce document n’est jamais envoyé au fournisseur.
Ses données sont renseignées suite aux négociations avec le fournisseur sur l’article, mais ce ne sont pas des informations contractuelles.
Son objectif est de regrouper des informations sur un couple article / fournisseur, valables au niveau :
organisation d’achats :
l’organisation d’achat étant unique à la SAGEM, la FIA est alors valable pour l’ensemble des divisions SAP.
organisation d’achat / division :
La création d'une FIA au niveau Division est normalement "interdite" à la Sagem.
Aucun blocage n’ayant été mis en place dans SAP, les utilisateurs peuvent donc créer des FIA en précisant la division.
Certaines données de la FIA seront redescendues dans les documents d’achats (contrat, commande) créés en référence, mais toutes ces informations seront modifiables au
niveau du document d’achats.
Remarque : si on crée une commande sur un article acheté auprès d’un fournisseur, et qu’il n’existe pas de FI A correspondante (c’est-à-dire pour l’article géré en stock
associé à l’article acheté et le fournisseur traité), le système en crée une automatiquement. Le système renseignera alors la FIA en récupérant les données de la commande.
Pour un article géré en stock et une division, le RSA propose l’ensemble des sources d’approvisionnement externes ou internes possibles.
3 sources d’approvisionnement possibles :
Cas 1 : les contrats existants pour l’article géré en stock et la division traités.
Cas 2 : les FIA existantes pour l’article géré en stock et la division traités.
Cas 3 : les divisons d’approvisionnement de l’article géré en stock traité.
Cas 4 : les programmes de livraisons (bientôt dans SAP).
Non traité dans le projet Achats pour l’ instant.
Le RSA n’est ni généré, ni mis à jour automatiquement à la création ou à la modification d’une nouvelle source d’approvisionnement.
Il faut une intervention manuelle ou programmée dans le système pour définir les RSA.
Les quotas interviennent dans l’attribution automatique par le Material Ressource Planning (MRP) d’une source d’approvisionnement à un document d’achat (DA, commande),
mais il possible de créer des documents d’achats sans faire intervenir les quotas.
Les quotas sont définis pour un article géré en stock, une division et une période de validité.
Domaines MM et WM
Voir note OSS n° 0191492
Domaines PP et PM
Voir note OSS n° 0
Transactions Diverses
recherche Icône jumelle (préaffichage zone courante) et jumelle + (suivant)
EWK1 recherche Recherche de chaines de car. Dans pgm
SE11 Dico Dictionnaire : zones, tables, structures - Maj table : passer par ‘insérer’
Accès au contenu d’une table : ‘Utilitaire’/’contenu de la table’
SE16 Tables Affichage du contenu d’une table
Choix : zones de sélection et zones de la liste
Affichage vertical complet d’un enr. : double-click sur un champ quelconque d’une ligne
SE37 Fonction Editeur et exécution d’une Fonction
SE38 Pgm Editeur programme ABAP
SE51 Dynpro Gestion des écrans : dynpro
SE71 Formulaire Formulaires
SE80 navigateur Navigateur sur tous les objets ABAP
SE84 transactions Liste des transactions : Prog/env. dév./transation
SE93 transactions Création code transaction
SF10 Transport Libératon d’une tache/ ordre
SPRO Customizing F5 : paramétrage SAP
SM30 Tables Maj des tables
SM51 Job Pour interrompre processus : pour tuer un job : cliquer sur ligne , cocher la ligne du job à tuer
SQ01 Queries Queries
Dernier enregistrement le 17/04/09 page 73 / 77
STMS transport Importation d’un ordre
Les subdivisions :
Logistique mandant société division-domaine de valorisation /secteur / domaine
d’activité
Comptabilité financière périmètre financier /société
Comptabilité financière périmètre financier / périmètre analytique
Comptabilité financière Domaine de contrôle des crédits / société
Comptabilité financière Domaine d’Activité de consolidation / domaine d’activité
Gestion des articles Société / organisation d’achat
Gestion des articles division / organisation d’achat