Catégories
Développement ABAP

En ABAP, créer un fichier CSV UTF-8 qu’Excel comprend comme tel

Il suffit d’ajouter le Byte Order Mark lors de la création du fichier :
open dataset
     FILE_PATH for output
     in text mode
     encoding utf-8
     with byte-order mark
     ignoring conversion errors
     message ERROR_MESSAGE.

Catégories
Work

Chemin d’accès SPRO au paramétrage des Web Requests pour SAP SSM

En français
SPRO > Customer Relationship Management > Solutions Métiers > Secteur public > Services sociaux > Demande de service social > Demandes Web > Définir types de demande

En anglais
SPRO > Customer Relationship Management > Industry-Specific Solutions > Public Sector > Social Services > Social Application > Web Requests > Define Request Categories

Catégories
Développement ABAP

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.

Catégories
Développement ABAP

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 ex_messages = lt_message ).
if lt_message is initial.
lo_po_handler->po_post( importing ex_messages = lt_message ).
endif.
endif.
lo_po_handler->close( ).
free lo_po_handler.