Wie kann man in SAP in einem ABAP-Programm feststellen, ob ein gegebenes Land ein EU-Land ist?
Die Eigenschaft, eines Landes, Mitglied der EU zu sein, findet sich in der Ländertabelle T005 in der Spalte XEGLD = „Kennzeichen: Mitglied der EU“.
Ab besten verpackst du diese Prüfung ein einer Methode. (Siehe „Coding ABAP like Java“ im Abschnitt „Put Everything in Classes and Methods“)
Das könnte dann z.B. so aussehen:
class zcl_util definition public create public . public section. class-methods is_eu_member_country importing value(i_country) type land1 optional returning value(r_is_eu_member) type flag . protected section. private section. endclass. class zcl_util implementation. * <SIGNATURE>---------------------------------------------------------------------------------------+ * | Static Public Method ZCL_UTIL=>IS_EU_MEMBER_COUNTRY * +-------------------------------------------------------------------------------------------------+ * | [--->] I_COUNTRY TYPE LAND1(optional) * | [<-()] R_IS_EU_MEMBER TYPE FLAG * +--------------------------------------------------------------------------------------</SIGNATURE> method is_eu_member_country. data: ls_t005 type t005. select single * from t005 into ls_t005 where land1 = i_country. if sy-subrc <> 0. return. endif. r_is_eu_member = ls_t005-xegld. endmethod. endclass.
Wenn du das Flag xegld verwenden willst, dann achte bitte darauf, ob dieses Flag richtig gepflegt ist. In manch älterem System sind ggf. nicht alle Mitglieder nach der Aufnahme in die EU eingetragen. Und außerdem ist Großbritannien auszutragen.
Bildquelle Flagge: Bild von S. Hermann & F. Richter auf Pixabay