LKKP0TOP-S

本文介绍了SAP Function Pool KPP0,包括其在ABAP程序中的作用,如何开始一个函数组,以及函数池的使用和维护。内容涉及FUNCTION-POOL语句的语法和限制,以及与之相关的包含程序和数据结构。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

FUNCTION-POOL kpp0 MESSAGE-ID k9.
---- function-pool:里面定义的都是全局性变量
---- SAP Function Group KPP0
---- k9:

ABAP-程序开始语句(Introductory Statements)(三)——函数池
ABAP开始语句包含以下6种:
---- CLASS-POOL:开始一个类池
---- FUNCTION-POOL:开始一个函数组
---- INTERFACE-POOL:开始一个接口池
---- PROGRAM:开始一个模块池或者子例程池
---- REPORT:开始一个可执行程序
---- TYPE-POOL:开始一个类型池
函数池是一个ABAP程序,该程序只用于包含函数模块,通常通过函数模块的使用来加载。当前函数组可以只包含最多99个函数模块。支持自己的屏幕。
语法:FUNCTION-POOL fpool [list_options] [MESSAGE-ID mid]
FUNCTION-POOL语句引入一个函数组。在任何已存在的包含程序展开后,它必须是独立程序的第一个语句。对于FUNCTION-POOL语句,附加的条件同REPORT后面有同样的含义。
函数组可以使用ABAP工作台的函数构建器维护。工作台自动生成了一个框架程序和下面列出的包含程序。FUNCTION-POOL语句在top inlcude里被创建。

  • Includes
    INCLUDE kppxi001. "Allgemeine Konstanten
    INCLUDE kppxi002. "Allgemeine Variablen
    INCLUDE kppxi003. "Allgemeine Typen
    TYPE-POOLS: kpp, vrm, abap.
    INCLUDE kpp0comm. "Common-Part

class CL_ABAP_CHAR_UTILITIES definition load.

DATA: generator_versn LIKE sy-saprl
VALUE ‘013’.

  • Änderungshistorie: 008 3.0F EC303

  •                009 3.0D+ Attribute im CO-OM umgelegt
    
  •                010 4.0   Attribute im CO-OM umgelegt
    
  •                          Feldname_werte teilweise translated '&_'
    
  •                011 4.0C  Vorzeichengerechtes Summieren im EC-CS
    
  •                012 4.6A  ab Hot-Package 09, 4.6A Hot Package 01
    
  •                          wg. gen Forms ec301, ec303
    
  •                013 4.7   wg  Unicode Anpassungen im kpp0gsch
    
  • Tabellen
    TABLES: dfies, "DDIC Feldinformationen
    kpp0b, "Dynprofelder U02
    kpp1b, "Dynprofelder U02, ohne Loop
    tkes2, "Dynprofelder U02
    kpp0m, "Struktur Verprob.tab.
    kpp0r, "Reportkatalog
    mesg, "Struktur Message-Ausgabe
    tkes1, "Katalog Zeilen-/Spaltenstr.
    tka51, "Planerprofil für VTL
    tka52, "Vorparametrisierung
    trdir, "Reportdirectory
    kpp1l_key.

  • Typen

TYPES: chaintype(1) TYPE n, "Kettentypen
number(4) TYPE n. "Kettennummer

DATA: BEGIN OF itslhc_struc, "Tab. der zuletzt gültigen
fieldname LIKE kpp0d-fieldname, "Kopfkombination
value LIKE kpp0d-value,
init LIKE kpp0d-init,
END OF itslhc_struc.

  • Hilfstabelle mit Konvertierungsinfos für den Upload
    TYPES: BEGIN OF ys_conv_table,
    ratio LIKE kpp1l-ratio,
    col LIKE kpp1l-col,
    intlen LIKE kpp1l-intlen,
    leng LIKE kpp1l-leng,
    outputlen LIKE kpp1l-outputlen,
    inttype LIKE kpp1l-inttype,
    datatype LIKE kpp1l-datatype,
    convexit LIKE kpp1l-convexit,
    db_decim LIKE kpp1l-db_decim,
    END OF ys_conv_table,
    yt_conv_table TYPE ys_conv_table OCCURS 0.

  • Konstanten

DATA: chaintype_mdc TYPE chaintype "Kettentypen
VALUE ‘1’,
chaintype_cls TYPE chaintype
VALUE ‘2’,
chaintype_atr TYPE chaintype
VALUE ‘3’,
chaintype_vtl TYPE chaintype
VALUE ‘4’,
chaintype_pfo TYPE chaintype
VALUE ‘5’,
count_reports LIKE sy-tfill "Anz. mögl. Planreports
VALUE ‘999’. "pro Reportwurzel
DATA: row_1lg_for_single_column LIKE "Zeilennr. in KPP1LG bei
kpp1lg-row VALUE ‘001’, "Einfachspalten
col_1lg_for_complex_column LIKE "Spaltennr. in KPP1LG für
kpp1lg-col VALUE ‘001’. "die komplexe Spalte
*

  • Festwerte für Routine SAVE/LOAD_HEADER_COMBI
    

DATA: slhc_save TYPE char1 VALUE ‘S’,
slhc_load TYPE char1 VALUE ‘L’.

  • Festwerte des Feldes ITEIBIND-VALUETYPE
    

DATA: valuetype_empty VALUE ‘1’, "kein Wert in 1LA
valuetype_fixed VALUE ‘2’, "fester Wert in 1LA
valuetype_noroot VALUE ‘3’, "keine Wurzelvar. in 1LA
valuetype_root VALUE ‘4’. "Wurzelvariable in 1LA

  • Konstante für die Dezimalstellen des Wertes aus dem Pop-Up zur

  • zur Funktion “Werte ändern”.
    CONSTANTS popup_decim_umwe LIKE kpp1l-db_decim VALUE 2.
    DATA popup_decim_aktp TYPE kpp1l-scr_decim VALUE 2.

  • Variablen
    DATA: subscreen_prog LIKE d020s-prog,
    subscreen_dnum LIKE d020s-dnum,
    subscreen_prog_dummy LIKE subscreen_prog VALUE ‘SAPLKPP0’,
    subscreen_dnum_dummy LIKE subscreen_dnum VALUE ‘1100’.
    DATA: input_from, "Von-Wert eingabebereit?
    input_to, "Bis-Wert eingabebereit?
    input_set, "Set-Wert eingabebereit?
    active_from, "Von-Wert aktiv?
    active_to, "Bis-Wert aktiv?
    active_set. "Set-Wert aktiv?

DATA: acheck(1) TYPE c, "Kz.:Spezieller Appl.-Check?
answer(1) TYPE c, "schnittstelle zu pop-Up
buchen(1) TYPE c, "Kz.: Soll gebucht werden?
buchen_for_ec016(1) TYPE c, "Kz.: Ist gebucht worden?
bildtyp_erfassung LIKE kpp2d-bildtyp, "Bildtyp der Erfassungsm.
"(Übersicht oder Perioden)
g_bildtyp_o99 LIKE kpp2d-bildtyp, "Pseudo lokale Variable
chain_vtl_lfdnr TYPE number, "lfde. Nr. für Kettentyp
chain_cls_lfdnr TYPE number,
chain_atr_lfdnr TYPE number,
chain_mdc_lfdnr TYPE number,
count_itdtree LIKE sy-tfill, "Anz. Einträge ITDTREE
count_itleadcol LIKE sy-tfill, "Anz. Einträge ITLEADCOL
counter LIKE sy-tfill. "lokaler Zähler
DATA: current_entry_tka52 LIKE sy-tabix, "Eintrag in der tka52
last_entry_tka52 LIKE sy-tabix, "letzter Eintrag in der tka5
new_while_einstieg. "Neue Schleife Einstiegsb.

  • (falls der Fehler auf dem Dynpro im i02 auftritt, kann man
    
  • keinen Returncode zurückgeben)
    

DATA: dmac_for_help LIKE kpp0d-dmac, "fuer pf1, pf4
dummy_value_to LIKE kpp0d-value, "für EC002
dummy_init LIKE kpp0b-init, "
entry_required, "Kz.: Eintrag erzeugen?
entry_found, "Kz.: Eintrag gefunden?
error_mode, "Kz Front-End im Fehlerdial.
error_exists, "Kz.: Fehler aufgetreten?
exists(1) TYPE c, "Kz.: Eintrag existiert?
exit_code LIKE kpp0d-dobli, "Kz.: Exit-Command ausgel?
f4pr_for_help LIKE kpp0d-f4pr, "fuer pf1, pf4
f4fm_for_help LIKE kpp0d-f4fm, "fuer pf1, pf4
fieldname_for_help
LIKE help_info-fieldname, "fuer pf1, pf4
tabname_for_help
LIKE help_info-tabname, "fuer pf1, pf4
program_for_help
LIKE help_info-program, "fuer pf1, pf4
dynp_for_help
LIKE help_info-dynpro, "fuer pf1, pf4
dynprofld_for_help
LIKE help_info-dynprofld, "fuer pf1, pf4
links_for_help LIKE tline OCCURS 0, "fuer pf1, pf4
first_chain_cls_lfdnr "Nr. der 1. neuen Kette
LIKE chain_cls_lfdnr,
first_chain_atr_lfdnr
LIKE chain_atr_lfdnr,
first_chain_vtl_lfdnr
LIKE chain_vtl_lfdnr,
first_line_to_show LIKE kpp1l-row,
fuespa_komplex(1) TYPE c, "Kz: Komplexe Führungsspalte
formula_in_rows(1) TYPE c, "Kz: Zeilenformel(n) vorh.?
formula_in_cols(1) TYPE c, "Kz: Spaltenformel(n) vorh.?
forpl_new LIKE tka52-forpl, "Kz.:Formularpl.?
forpl_determined LIKE tka52-forpl, "Formularplanung bestimmt?
generate_input_flag(1) TYPE c. "für Reportgenerierung
DATA: help_input LIKE kpp0a-input,
help_modify LIKE kpp1l-modify,
help_calcm LIKE kpp0a-calcm,
help_calcd LIKE kpp0a-calcd,
h_value LIKE kpp0b-value,

  • kann man nicht HELP_VALUE nennen, da eine Inttab mauch so heißt,
    
  • die im programm ebenfalls verwendet wird
    help_init  LIKE kpp0b-init,
    help_setuse,
    help_btype LIKE kpp1lva-btype,
    highest_pointr LIKE kpp1lg-pointr,    "höchster Pointer Z/SpStrukt
    kpp1l_cursor LIKE kpp1l_key,          "schnittstelle zu kpp2
    identifier_missing(1),                "Eintrag fehlt in ITDTREE?
    level_act LIKE sy-tabix,              "aktueller Level in ITDTREE
    level_new LIKE sy-tabix,              "nächster Level in ITDTREE
    level_old LIKE sy-tabix,              "vorheriger Level in ITDTREE
    like_reportname LIKE sy-repid,        "für Gen. Zugriff auf KPP0R
    mc_object LIKE dd23l-mconame,         "Matchcode-Objekt
    modus_call LIKE  kpp0s-modus,         "gecalled?
    
  • wird derzeit noch unsauber gesetzt; hier muß noch nachgebessert werden
    modus_insert LIKE kpp0s-modus, "Einfügen von Einträgen erl?
    new_dtyperatio LIKE kpp0r-dtyperatio, "Feld für Reportgenerieung
    new_entry(1), "Kz.: Neuer Eintrag?
    no_variables_in_screen(1) TYPE c, "Kz.: Keine Variablen?
    ok_code LIKE rseu1-func_1. "OK-Code
    DATA: parsing_formula_necessary, "Kz.: es muß geparst werden
    plandata_exists(1) TYPE c, "Kz: Plandaten gefunden?
    poper_from LIKE kpp0z-poper, "Von-Zeiteinheit
    poper_to LIKE kpp0z-poper, "Bis-Zeiteinheit
    value_umwe LIKE kpp1b-popup_val, "Wert aus Pop-Up, umwerten
    value_aktp LIKE kpp1b-popup_val, "Wert aus Pop-Up, Aktion +
    internal_value_umwe LIKE kpp1b-popup_val, "s.o., internes Format
    internal_value_aktp LIKE kpp1b-popup_val, "s.o., internes Format
    internal_popup_value LIKE kpp1b-popup_val,
    "Wert aus Pop-Up, intern
    povstepl LIKE sy-stepl,
    ratio_act LIKE kpp0d-ratio, "akt. Kennzahlenbereich
    root(1) TYPE c, "Kz.: Variable=Wurzel?
    rowbegin LIKE sy-stepl,
    row_first_new LIKE kpp1l-row, "1. neue Zeile im PAI
    row_period_screen LIKE kpp1l-row. "ausgew. Zeile f. Periodb.
    DATA: save_formula_in_rows(1) TYPE c, "Für Übersichts-/Periodbild
    save_perflag LIKE t821s-perflag, "Für Verteilung der kum.
    save_periv LIKE t821s-periv, "Werte in Periodenwerte
    save_copa_extension(1), " dto.
    save_anzbp LIKE kpp0zg-anzbp,
    save_bildtyp LIKE bildtyp,
    save_datar LIKE sy-datar,
    save_export_ok_code LIKE rseu1-func_1, "für Übergabe nach außen
  • Variable wurde zu 4.0 neu eingeführt, wegen Bug in der Umstellungs-
  • aktion der globalen Schnittstelle des k_plan_dialog in eine lokale
  • Schnittstelle
    save_fieldname LIKE kpp1la-fieldname,
    save_first_line_to_show_ueb LIKE first_line_to_show,
    save_cursor_ueb LIKE kpp1l_key,
    save_headlines_hide_ueb,
    save_delete_double_val,
    save_forpl_ueb LIKE kpp1b-forpl,
    save_form LIKE tkes1-form,
    save_index LIKE sy-index,
    save_loopc LIKE sy-loopc,
    save_opt LIKE kpp1la-opt,
    save_scrtext_1 LIKE kpp0dd-scrtext_m,
    save_scrtext_2 LIKE kpp0dd-scrtext_m,
    save_subrc LIKE sy-subrc,
    save_subrc2 LIKE sy-subrc,
    save_tabix LIKE sy-tabix,
    save_tabix_1la LIKE sy-tabix,
    save_value LIKE kpp0b-value,
    save_variable LIKE kpp0b-value.
    DATA: send_s034(1), "Kz.: Message schon gesendet
    set_heading(1), "Kz.: Überschrift gesetzt?
    stop_after_first(1), "für EC002
    tab_count LIKE sy-tabix,
    tabix_stepl LIKE sy-tabix,
    tabix_kpp0b LIKE sy-tabix,
    tabix_kpp0d LIKE sy-tabix,
    tabix_kpp1la LIKE sy-tabix,
    memoryid_proz(32), "id für memory Proz.Daten
    memoryid_grep(32), "id für memory Gen. Report
    memoryid_appl(32), "id für memory Applikat.Dat
    memoryid_kpp2(32), "id für memory KPP2
    memoryid_call_grep(32), "id Call-Fähigk. gen. Report
    memoryid_call_post(32), "id Call-Fähigk. Verb.kontext
    last_version_stack LIKE sy-tabix, "für zurückladen im Fehlerf.
    g_stack_filled_in_pbo,
  • wird aus KPP2 übergeben, weil dort die Verwaltung ist
    use_zeit(1) TYPE c,                   "Kz, in welcher Dim Zeit?
    values_get_retcode LIKE sy-subrc,
    vorpara_datar LIKE sy-datar,          "Save SY-DATAR
    work(30).                             "lokales Arbeitsfeld
    

DATA: gen_report_in_any_case. "Kz in jedem Fall gen (Mastercode)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值