Consultance SAP
  
 English (United States) Français (France)
Register  
 
Thursday, February 23, 2012
Publicité
  
Le forum SAP-integration.net
Subject: [RSCSEL] - Select options data
Prev Next
You are not authorized to post a reply.

Author Messages

Adilou
Messages:83

27/01/2012 13:02:02  

Bonjour à toutes et à tous,

Dans mon programme ABAP, je mets en place un select option sur les numéros d'articles dont j'ai besoin. L'utilisateur entrera toutes ses références en cliquant sur le bouton  de sélections multiples du select options. Ce qui va le ramener sur lune fenêtre où il pourra inclure ses données.

Je voulais donc savoir comment faire pour récupérer toutes les références qu'il entrera dans cette liste ? Sachant que la structure associée est la RSCSEL.

J'espère avoir été clair sur mon problème.

Merci d'avance pour vos réponses.

Adilou.


Celdrøn
Messages:1913

27/01/2012 13:35:43  

Salut,

Si c'est un option de sélection et que tu veux récupérer toutes les références alors il suffit juste de faire une requête sur la table des données articles (MARA) et dans ta condition WHERE sur MATNR tu mets :

WHERE matnr IN so_matnr.

Tu récupéreras au final toutes tes références articles.


Soutenez moi dans ma lutte contre le webmaster : http://celdron.labrute.fr

ABAPeloula !!! ça va dumper !!!
Sur un air de musique, ça pourrait faire le nouveau tube de l'été ^_^

Adilou
Messages:83

27/01/2012 13:39:57  

Salut Celdron,

Si ce n'était que ça cela aurait été simple et du coup je n'aurais pas posté sur le forum. Nous avons passé en revue toutes les solutions et seule celle la peut être efficace.

Bien à toi.

Adilou


Celdrøn
Messages:1913

27/01/2012 15:45:08  

Ben si je reprends tes mots : «je mets en place un select option sur les numéros d'articles».

Ce que j'ai compris c'est que t'as un options de sélection sur les références articles, l'utilisateur fera sa sélection via un écran de sélection puis quand il lancera l'exécution, un tableau devra s'afficher avec l'ensemble des références articles sélectionnées. Il pourra ensuite remplir ses données.

Donc si ce n'est pas si simple, alors non tu n'as pas dû être assez clair.

Soit tu utilises un options de sélection et dans ce cas, ce que j'ai dit est possible, sauf s'il y a des contraintes que tu n'as pas portées à notre connaissance, soit tu utilises ce que tu crois être un options de sélection mais qui n'en est pas réellement un et donc cela change tout ou une partie de la logique.

Donc, réexplique plus en détail ce qui bloque.


Soutenez moi dans ma lutte contre le webmaster : http://celdron.labrute.fr

ABAPeloula !!! ça va dumper !!!
Sur un air de musique, ça pourrait faire le nouveau tube de l'été ^_^

Adilou
Messages:83

27/01/2012 16:01:21  

A chaque écran de sélection tu as un bouton. En cliquant dessus une fenetre s'ouvre. Tu peux entrer plusieurs références articles qui vont être pris en compte dans ton select options.

C'est cette liste que je veux récupérer dans une table interne. Je sais pas si tu vois ce que je veux dire.

Bien à toi.

Adil.


Celdrøn
Messages:1913

30/01/2012 9:05:45  

Le bouton en question, c'est celui lié à l'options de sélection? Si c'est le cas, la fenêtre devrait être celle de la sélection multiple.
Et si je termine sur mon idée, tu dois avoir la liste des sélections dans ton options de sélection, qui est en réalité une table.

Est-ce que je me trompe?

Pas facile de comprendre sans le code ou sans copie écran sous les yeux.


Soutenez moi dans ma lutte contre le webmaster : http://celdron.labrute.fr

ABAPeloula !!! ça va dumper !!!
Sur un air de musique, ça pourrait faire le nouveau tube de l'été ^_^

Sh@m@n
Messages:1119

30/01/2012 14:10:02  
Le SELECT-OPTION d'un écran de sélection est de type RANGE, mais il peut être géré comme une table interne.
Tout ce qui est saisi dans le POP-UP où tu insères tes valeurs sera dans ton "so_matnr" (en reprenant la déclaration de Cel).
Par exemple, si l'utilisateur indique 3 valeurs , tu auras :

1 I EQ 000000000000100049 blanc
2 I EQ 000000000000100055 blanc
3 I EQ 000000000000100080 blanc

En premier, tu as l'index de ta table interne.
En second, le signe IN ou OUT
En troisième la règle : égale, compris entre, différent de, etc...
En quatrième, la valeur minimum
En cinquième, la valeur maximum (vide pour une valeur simple)

Donc si tu veux traiter tes données dons une table interne bien particulière, tu peux effectuer une boule sur ton SO_MATNR pour alimenter ta table interne.

Est-ce que cela répond à ta question?

"Il n'existe que deux choses infinies, l'univers et la bêtise humaine... mais pour l'univers, je n'ai pas de certitude absolue." A.E.

Adilou
Messages:83

01/02/2012 8:23:41  

Bonjour à tous,

Celdron c'est bien ça, c'est la liste des objets mis dans le tableau de la sélection multiple que je voudrais récupérer.

Shaman je ne sais pas ce que va mettre l'utilisateur dans le select option donc je ne peux pas rentrer les les lignes de codes que tu m'as montré. Par contre quand je rempli mon select-option (SO_MATNR) quand je boucle dessus je n'arrive pas à récupérer toutes les valeurs comprises entre SO_MATNR-LOW et SO_MATNR-HIGH.


Celdrøn
Messages:1913

01/02/2012 9:02:23  

Adilou,

Comme je l'ai compris, c'est que l'utilisateur va rentrer dans la fenêtre de sélection multiple, de l'options de sélection, plusieurs valeurs et plusieurs intervalles. Ce qui va au final te remplir la table interne SO_MATNR, pour reprendre mon exemple, comme l'a très bien expliqué Sh@m@n.

Si seulement des valeurs individuelles à inclure sont saisies, jusque là, pas de souci, la valeur renseigné correspond exactement à ce qu'on veut récupérer, sauf dans le cas d'un modèle de donnée (CP - Contain Pattern) bien entendu.

Cependant, la tâche se corse lors de saisies d'intervalles, de modèles de données, de données à exclure, etc. je ne vais pas tous les citer.

Donc je reviens donc à ce que j'ai dit en première réponse, si tu souhaites récupérer l'ensemble des références articles correspondant aux sélections mutltiples saisies dans ton options de sélection, alors il faut que tu fasses une requête sur la table de base des articles en utilisant ton options de sélection. Ainsi, tu récupéreras une liste de référence article que tu pourras traiter à ta guise, sans te casser la tête avec ce qui a été saisi. Tu récupéreras en un seul coup tes références articles correspondant aux valeurs individuelles, aux intervalles, au modèle de données, en excluant les entrées qui sont à exclure.

Donc dès que ton options de sélection est rempli :

CLEAR t_mara.

SELECT matnr
  FROM mara
  INTO TABLE t_mara
  WHERE matnr IN so_matnr.


IF NOT t_mara IS INITIAL.
  WRITE : 'J’ai récupéré ma liste d’articles'.
ENDIF.


Soutenez moi dans ma lutte contre le webmaster : http://celdron.labrute.fr

ABAPeloula !!! ça va dumper !!!
Sur un air de musique, ça pourrait faire le nouveau tube de l'été ^_^

Sh@m@n
Messages:1119

01/02/2012 16:18:32  
J'espère qu'il n'y a pas trop d'article dans leur base, car faire cette sélection juste pour avoir les article lié au sélect option, c'est dur ^^

"Il n'existe que deux choses infinies, l'univers et la bêtise humaine... mais pour l'univers, je n'ai pas de certitude absolue." A.E.

Celdrøn
Messages:1913

01/02/2012 16:28:39  

Bah, tu tapes sur la clé primaire, donc ça devrait rester relativement rapide... après c'est sûr que ça dépend de la volumétrie couverte par les sélections faites.

Sinon, je ne vois pas comment faire autrement pour récupérer la liste des articles... ou alors faut obliger les utilisateurs à ne renseigner que des valeurs individuelles, mais bon, ça risque de faire grincer quelques dents.


Soutenez moi dans ma lutte contre le webmaster : http://celdron.labrute.fr

ABAPeloula !!! ça va dumper !!!
Sur un air de musique, ça pourrait faire le nouveau tube de l'été ^_^

Sh@m@n
Messages:1119

02/02/2012 8:01:21  
Remarque, il est toujours possible de récupérer la liste des articles de SO_MATNR ou SIGN = EQ et d'accéder au contenu de MARA seulement si l'on a une ligne avec SIGN = BT, ça évite tjrs de le faire alors que ce n'est pas nécessaire ^^

"Il n'existe que deux choses infinies, l'univers et la bêtise humaine... mais pour l'univers, je n'ai pas de certitude absolue." A.E.

Celdrøn
Messages:1913

02/02/2012 8:28:47  

Ouai, mais tu crois qu'un utilisateur va s'amuser à remplir une centaine de valeurs individuelles à la main ?

Et puis, ce ne sont pas les valeurs individuelles qui vont impacter les performances. De plus, qu'est ce qui se passe si l'un des articles renseigné est incorrect? On affiche quand même la référence saisie dans le tableau? Faut penser à ça aussi.

Et quand bien même, qui serait assez fou pour traiter plus d'une centaine d'articles en même temps, en prenant le risque de tout perdre s'il y a un pépin. Personnellement, je pense que pour ne récupérer qu'une faible volumétrie de données, je pense que ça suffit largement.


Soutenez moi dans ma lutte contre le webmaster : http://celdron.labrute.fr

ABAPeloula !!! ça va dumper !!!
Sur un air de musique, ça pourrait faire le nouveau tube de l'été ^_^

Sh@m@n
Messages:1119

02/02/2012 14:25:00  
Alala, tu ne travailles pas assez avec les fonctionnels toi ou les utilisateur!!! ^^

combien de fois j'en ai vu partir d'une liste excel copier et l'insérer dans un select option
Et ce que je proposais plus haut, n'impact en rien ton idée, c'est juste une règle de gestion pour éviter d'avoir à toujours faire une sélection sur MARA, c'tout :)

"Il n'existe que deux choses infinies, l'univers et la bêtise humaine... mais pour l'univers, je n'ai pas de certitude absolue." A.E.

Celdrøn
Messages:1913

02/02/2012 15:53:53  

Haaaa si si si, j'ai déjà vu, mais bon s'ils font planter le programme, en quoi est-ce mon problème?

Bref, ce n'est pas une petite sélection sur mara en plus qui va tuer le monde. En plus, j'ai déjà vu quelque part que plus ça met de temps à s'exécuter, plus ça rassure... donc pourquoi se priver?


Soutenez moi dans ma lutte contre le webmaster : http://celdron.labrute.fr

ABAPeloula !!! ça va dumper !!!
Sur un air de musique, ça pourrait faire le nouveau tube de l'été ^_^

Sh@m@n
Messages:1119

06/02/2012 14:08:55  

 LoL

=> "plus ça met de temps à s'exécuter, plus ça rassure..." 
 
Va falloir que je montre ça à mes clients, car je ne suis jamais tombé sur des cas comme ça!!!

"Il n'existe que deux choses infinies, l'univers et la bêtise humaine... mais pour l'univers, je n'ai pas de certitude absolue." A.E.

Celdrøn
Messages:1913

13/02/2012 8:54:28  

Bah pourtant,

Étant donné la grosse volumétrie, ils estimaient que ça ne fonctionnait pas car ça allait trop vite, du coup des pauses ont dû être rajoutées dans le programme. ^_^


Soutenez moi dans ma lutte contre le webmaster : http://celdron.labrute.fr

ABAPeloula !!! ça va dumper !!!
Sur un air de musique, ça pourrait faire le nouveau tube de l'été ^_^

Sh@m@n
Messages:1119

13/02/2012 11:22:21  

Non mais sérieux?? O_O


"Il n'existe que deux choses infinies, l'univers et la bêtise humaine... mais pour l'univers, je n'ai pas de certitude absolue." A.E.
You are not authorized to post a reply.
Forums > Forums SAP > Technique : ABAP et ABAP OO > [RSCSEL] - Select options data



ActiveForums 3.7
  
 Print