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 26/09/2011, 13h58   #1
Futur Membre du Club
 
Homme
Consultant SAP
Inscription : janvier 2007
Messages : 25
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 28
Localisation : France, Ain (Rhône Alpes)

Informations professionnelles :
Activité : Consultant SAP

Informations forums :
Inscription : janvier 2007
Messages : 25
Points : 19
Points : 19
Par défaut Match code & dynpro

Hello,

je tente de mettre en place un matchcode dans un Dynpro ... jusque là facile. La partie difficile est que j'ai du mal à comprendre comment reprendre les N zones du matchodes dans mon dynpro.

Ex:
n° partenaire (matchcode renvoyant partenaire + contrat)
n° contrat

Ici, seul mon partenaire se faire enrichir par la valeur de retour, et le contrat reste totalement vide.

Je me demande si les "ID" des éléments de données, ceux sur lesquels sont gérés les champs du dynpro, sont pour quelque chose. Si vous avez une idée, je suis preneur.

Merci.
Nalack est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/09/2011, 08h52   #2
Membre confirmé
 
Inscription : août 2009
Messages : 226
Détails du profil
Informations forums :
Inscription : août 2009
Messages : 226
Points : 239
Points : 239
Bonjour,

pour que ça fonctionne sans ABAP, il faut que les noms de tes zones Dynpro soient sur le même nom de structure DDic et la composante (du genre SFLIGHT-CARRID), dans laquelle structure DDic on associe la search help et en paramètres (retour) on indique les autres zones de la structure.

Sandra
sandraros est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/09/2011, 15h03   #3
Futur Membre du Club
 
Homme
Consultant SAP
Inscription : janvier 2007
Messages : 25
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 28
Localisation : France, Ain (Rhône Alpes)

Informations professionnelles :
Activité : Consultant SAP

Informations forums :
Inscription : janvier 2007
Messages : 25
Points : 19
Points : 19
Merci de cette réponse.

A la base j'avais cette méthode, mais le retour n'était pas des plus concluants. J'ai donc mis en place l’événement "ON PROCESS VALUE REQUEST" avec lequel j'appel moi même une aide à la saisie et je remplis ensuite dynamiquement mes champs à l'écran.

Le code est le suivant (veuillez excuser les bouts de codes en dur ...)

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
128
129
130
131
132
133
134
135
136
137
*----------------------------------------------------------------------*
*  FORM f_set_adrr_div
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
FORM f_set_adrr_div USING
                      iv_search          TYPE flag
                    CHANGING
                      ms_zecp_mi_mo_alv  TYPE zecp_mi_mo_alv
                      mt_dynfields       TYPE dynpread_tabtype.
*----------------------------------------------------------------------*
* TOP
*----------------------------------------------------------------------*
  DATA:
* Tables internes
    lt_return_tab_adrr TYPE STANDARD TABLE OF ddshretval,
    lt_dynfields_adrr  TYPE STANDARD TABLE OF dynpread,
* Pointeurs
    lr_return_tab_adrr TYPE REF TO ddshretval,
    lr_dynfields_adrr  TYPE REF TO dynpread,
* Variables
    lv_last_name_adrr  TYPE but000-name_last,
    lv_first_name_adrr TYPE but000-name_first,
    lv_title_adrr      TYPE but000-title_let,
    lv_adrr_div_adrr   TYPE zecp_mi_mo_alv-inv_add_adrc.

*----------------------------------------------------------------------*
* TRAITEMENT
*----------------------------------------------------------------------*
  IF iv_search IS NOT INITIAL AND ms_zecp_mi_mo_alv-inv_add_partner IS NOT INITIAL.
    "MF montrant uniquement les adresses du partenaire saisi
    CALL FUNCTION 'BUA_ADREFERENCE_POV'
      EXPORTING
        i_partner           = ms_zecp_mi_mo_alv-inv_add_partner
        i_xmemory           = c_true
        i_xwa               = c_true
        i_dyname            = sy-repid
        i_dynumb            = sy-dynnr
        i_fldnm_description = 'GS_ZECP_MI_MO_ALV-INV_ADD_ADRC'
        i_fldnm_xfix        = 'GS_ZECP_MI_MO_ALV-INV_ADD_ADRC'
        i_valdt_sel         = sy-datlo
      CHANGING
        c_addrnumber        = ms_zecp_mi_mo_alv-inv_add_adrc
      EXCEPTIONS
        invalide_partner    = 1
        OTHERS              = 2.

    IF sy-subrc NE 0.
      CALL FUNCTION 'BUA_ADREFERENCE_POV'
        EXPORTING
          i_partner           = ms_zecp_mi_mo_alv-inv_add_partner
          i_xmemory           = c_true
          i_dyname            = sy-repid
          i_dynumb            = sy-dynnr
          i_fldnm_description = 'GS_ZECP_MI_MO_ALV-INV_ADD_ADRC'
          i_fldnm_xfix        = 'GS_ZECP_MI_MO_ALV-INV_ADD_ADRC'
          i_valdt_sel         = sy-datlo
        CHANGING
          c_addrnumber        = ms_zecp_mi_mo_alv-inv_add_adrc
        EXCEPTIONS
          invalide_partner    = 1
          OTHERS              = 2.

      IF sy-subrc NE 0.
        RETURN.
      ENDIF.
    ENDIF.

    PERFORM f_set_adrr CHANGING ms_zecp_mi_mo_alv.
  ENDIF.

  CREATE DATA lr_dynfields_adrr.
  "Adresse
  MOVE:
    'GS_ZECP_MI_MO_ALV-INV_ADD_ADRC' TO lr_dynfields_adrr->fieldname,
    ms_zecp_mi_mo_alv-inv_add_adrc   TO lr_dynfields_adrr->fieldvalue.
  APPEND lr_dynfields_adrr->* TO mt_dynfields.

  "Rue
  MOVE:
    'GS_ZECP_MI_MO_ALV-INV_ADD_STREET' TO lr_dynfields_adrr->fieldname,
    ms_zecp_mi_mo_alv-inv_add_street   TO lr_dynfields_adrr->fieldvalue.
  APPEND lr_dynfields_adrr->* TO mt_dynfields.

  "N° de rue
  MOVE:
    'GS_ZECP_MI_MO_ALV-INV_ADD_NUMBER' TO lr_dynfields_adrr->fieldname,
    ms_zecp_mi_mo_alv-inv_add_number   TO lr_dynfields_adrr->fieldvalue.
  APPEND lr_dynfields_adrr->* TO mt_dynfields.

  "Code postale
  MOVE:
    'GS_ZECP_MI_MO_ALV-INV_ADD_ZIP' TO lr_dynfields_adrr->fieldname,
    ms_zecp_mi_mo_alv-inv_add_zip   TO lr_dynfields_adrr->fieldvalue.
  APPEND lr_dynfields_adrr->* TO mt_dynfields.

  "Ville
  MOVE:
    'GS_ZECP_MI_MO_ALV-INV_ADD_CITY' TO lr_dynfields_adrr->fieldname,
    ms_zecp_mi_mo_alv-inv_add_city   TO lr_dynfields_adrr->fieldvalue.
  APPEND lr_dynfields_adrr->* TO mt_dynfields.

  "Boîte postale
  MOVE:
    'GS_ZECP_MI_MO_ALV-INV_ADD_POST_NUM' TO lr_dynfields_adrr->fieldname,
    ms_zecp_mi_mo_alv-inv_add_post_num   TO lr_dynfields_adrr->fieldvalue.
  APPEND lr_dynfields_adrr->* TO mt_dynfields.

  "Pays
  MOVE:
    'GS_ZECP_MI_MO_ALV-INV_ADD_COUNTRY' TO lr_dynfields_adrr->fieldname,
    ms_zecp_mi_mo_alv-inv_add_country   TO lr_dynfields_adrr->fieldvalue.
  APPEND lr_dynfields_adrr->* TO mt_dynfields.

  IF iv_search IS NOT INITIAL AND ms_zecp_mi_mo_alv-inv_add_adrc IS NOT INITIAL.
    CALL FUNCTION 'DYNP_VALUES_UPDATE'
      EXPORTING
        dyname               = sy-repid
        dynumb               = sy-dynnr
      TABLES
        dynpfields           = mt_dynfields
      EXCEPTIONS
        invalid_abapworkarea = 1
        invalid_dynprofield  = 2
        invalid_dynproname   = 3
        invalid_dynpronummer = 4
        invalid_request      = 5
        no_fielddescription  = 6
        undefind_error       = 7
        OTHERS               = 8.

    IF sy-subrc NE 0.
      RETURN.
    ENDIF.
  ENDIF.

ENDFORM.                    "f_set_adrr_div
Nalack 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 18h13.


 
 
 
 
Partenaires

Hébergement Web