Aide à la recherche manuelle avec multiples champs retournés

En règle générale, les outils standard de gestion des aides à la recherche sont suffisants. Il suffit par exemple de créer une zone de saisie sur un dynpro, de bien la typer selon un élément du dictionnaire de données qui ait lui-même une aide à la recherche ou une table de référence, et le dynpro proposera cette aide à la recherche automatiquement.

La limitation arrive lorsque l’on souhaite que la liste des valeurs possibles d’une zone soit dépendante de la valeur d’une autre zone, ou encore lorsque l’on veut que l’aide à la recherche retourne une valeur pour plusieurs zones.

J’ai récemment eu à traiter cette double problématique, aussi vais-je en profiter pour détailler la solution que j’ai utilisée. Il en existe peut-être d’autres et je ne garantis pas d’utiliser celle que recommanderait SAP, mais au moins, cela fonctionne.

Continue readingAide à la recherche manuelle avec multiples champs retournés

Réinitialiser le refus d’une commande d’achat

Pour simuler ME29N > Stratégie de lancement > Réinitialiser refus : data(lo_po_handler) = cl_po_handler_mm=>get_instance( ). lo_po_handler->open( exporting im_tcode = ‘ME29N’ im_trtyp = cl_mmpur_constants=>ver im_aktyp = cl_mmpur_constants=>ver im_po_number = lv_po_number importing ex_po_data = data(ls_po_data) ). ls_po_data-data-procstat = ’03’. ls_po_data-datax-procstat = abap_true. lo_po_handler->set_po( ls_po_data ). lo_po_handler->po_process( importing ex_messages = lt_message ). if lt_message is initial. lo_po_handler->po_check( importing …