SAP Function Modules

OIU_PPN_MAIN SAP Function module - Main call function for the ppn routine







OIU_PPN_MAIN is a standard SAP function module available within R/3 SAP systems depending on your version and release level. Below is the pattern details for this FM showing its interface including any import and export parameters, exceptions etc as well as any documentation contributions (Comments) specific to the object.

See here to view full function module documentation and code listing, simply by entering the name OIU_PPN_MAIN into the relevant SAP transaction such as SE37 or SE80.

Associated Function Group: OIU_PPN_ROUTINE
Released Date: Not Released
Processing type: Start update immediately (start immed)
update module start immediate settings


Pattern for FM OIU_PPN_MAIN - OIU PPN MAIN





CALL FUNCTION 'OIU_PPN_MAIN' "Main call function for the ppn routine
  EXPORTING
*   ppn_subsystem_cd =          " oiu_pr_ppnh-sub_sys_cd
*   ppn_dn_no =                 " oiu_pr_ppnh-dn_no
*   ppn_majpd_cd =              " oiu_pr_ppnh-majpd_cd
*   ppn_e_from_dt =             " oiu_pr_ppnh-prd_dt
*   ppn_eff_to_dt =             " oiu_pr_ppnh-prd_dt
*   ppn_freq_cd =               " oiu_pr_ppnh-freq_cd
*   ppn_mp_no =                 " oiu_pr_mp-mp_no
*   ppn_wl_no =                 " oiu_pr_wc-wl_no
*   ppn_wc_no =                 " oiu_pr_wc-wc_no
*   ppn_ct_no =                 " oiu_rv_ct-ct_no
*   ppn_co =                    " oiu_do_di-bukrs
*   ppn_venture =               " oiu_do_di-vname
*   ppn_doi_no =                " oiu_do_di-doi_no
    ppn_pgm_id =                " oiu_pr_ppnh-pgm_id
    ppn_user_id =               " oiu_pr_ppnh-oiu_cruser
*   ppn_activity =              " oiu_cm_txn_ctl-mcode
*   ppn_pop_up = ' '            " oiu_pr_dnvd-al_fl
*   ppn_bapi_flag = ' '         " oiu_pr_dnvd-al_fl
*   ppn_current_subsys =        " oiu_pr_ppnh-sub_sys_cd  Allocation indicator
  TABLES
*   ppn_data_val =              " oiu_pr_ppnh
    ppn_dtl_cnt =               " oiu_pr_ppnd
  EXCEPTIONS
    INVALID_DATA = 1            "
    VOLUME_ALLOCATION_RUNNING = 2  "
    CONTRACT_ALLOCATION_RUNNING = 3  "
    REVENUE_BATCH_RUNNING = 4   "
    NUMBER_RANGE_ERROR = 5      "
    CANCEL_PPN_GENERATION = 6   "
    VL_ALLOCATION_RUNNING = 7   "
    .  "  OIU_PPN_MAIN

ABAP code example for Function Module OIU_PPN_MAIN





The ABAP code below is a full code listing to execute function module OIU_PPN_MAIN including all data declarations. The code uses the latest in-line data DECLARATION SYNTAX but I have included an ABAP code snippet at the end to show how declarations would look using the original method of declaring data variables up front. This will allow you to compare and fully understand the new inline method. Please note some of the newer syntax such as the @DATA is not available until a later 4.70 service pack (SP8).

DATA:
it_ppn_data_val  TYPE STANDARD TABLE OF OIU_PR_PPNH,"TABLES PARAM
wa_ppn_data_val  LIKE LINE OF it_ppn_data_val ,
it_ppn_dtl_cnt  TYPE STANDARD TABLE OF OIU_PR_PPND,"TABLES PARAM
wa_ppn_dtl_cnt  LIKE LINE OF it_ppn_dtl_cnt .


SELECT single SUB_SYS_CD
FROM OIU_PR_PPNH
INTO @DATA(ld_ppn_subsystem_cd).


SELECT single DN_NO
FROM OIU_PR_PPNH
INTO @DATA(ld_ppn_dn_no).


SELECT single MAJPD_CD
FROM OIU_PR_PPNH
INTO @DATA(ld_ppn_majpd_cd).


SELECT single PRD_DT
FROM OIU_PR_PPNH
INTO @DATA(ld_ppn_e_from_dt).


SELECT single PRD_DT
FROM OIU_PR_PPNH
INTO @DATA(ld_ppn_eff_to_dt).


SELECT single FREQ_CD
FROM OIU_PR_PPNH
INTO @DATA(ld_ppn_freq_cd).


SELECT single MP_NO
FROM OIU_PR_MP
INTO @DATA(ld_ppn_mp_no).


SELECT single WL_NO
FROM OIU_PR_WC
INTO @DATA(ld_ppn_wl_no).


SELECT single WC_NO
FROM OIU_PR_WC
INTO @DATA(ld_ppn_wc_no).


SELECT single CT_NO
FROM OIU_RV_CT
INTO @DATA(ld_ppn_ct_no).


SELECT single BUKRS
FROM OIU_DO_DI
INTO @DATA(ld_ppn_co).


SELECT single VNAME
FROM OIU_DO_DI
INTO @DATA(ld_ppn_venture).


SELECT single DOI_NO
FROM OIU_DO_DI
INTO @DATA(ld_ppn_doi_no).


SELECT single PGM_ID
FROM OIU_PR_PPNH
INTO @DATA(ld_ppn_pgm_id).


SELECT single OIU_CRUSER
FROM OIU_PR_PPNH
INTO @DATA(ld_ppn_user_id).


SELECT single MCODE
FROM OIU_CM_TXN_CTL
INTO @DATA(ld_ppn_activity).


SELECT single AL_FL
FROM OIU_PR_DNVD
INTO @DATA(ld_ppn_pop_up).


SELECT single AL_FL
FROM OIU_PR_DNVD
INTO @DATA(ld_ppn_bapi_flag).


SELECT single SUB_SYS_CD
FROM OIU_PR_PPNH
INTO @DATA(ld_ppn_current_subsys).


"populate fields of struture and append to itab
append wa_ppn_data_val to it_ppn_data_val.

"populate fields of struture and append to itab
append wa_ppn_dtl_cnt to it_ppn_dtl_cnt. . CALL FUNCTION 'OIU_PPN_MAIN' EXPORTING * ppn_subsystem_cd = ld_ppn_subsystem_cd * ppn_dn_no = ld_ppn_dn_no * ppn_majpd_cd = ld_ppn_majpd_cd * ppn_e_from_dt = ld_ppn_e_from_dt * ppn_eff_to_dt = ld_ppn_eff_to_dt * ppn_freq_cd = ld_ppn_freq_cd * ppn_mp_no = ld_ppn_mp_no * ppn_wl_no = ld_ppn_wl_no * ppn_wc_no = ld_ppn_wc_no * ppn_ct_no = ld_ppn_ct_no * ppn_co = ld_ppn_co * ppn_venture = ld_ppn_venture * ppn_doi_no = ld_ppn_doi_no ppn_pgm_id = ld_ppn_pgm_id ppn_user_id = ld_ppn_user_id * ppn_activity = ld_ppn_activity * ppn_pop_up = ld_ppn_pop_up * ppn_bapi_flag = ld_ppn_bapi_flag * ppn_current_subsys = ld_ppn_current_subsys TABLES * ppn_data_val = it_ppn_data_val ppn_dtl_cnt = it_ppn_dtl_cnt EXCEPTIONS INVALID_DATA = 1 VOLUME_ALLOCATION_RUNNING = 2 CONTRACT_ALLOCATION_RUNNING = 3 REVENUE_BATCH_RUNNING = 4 NUMBER_RANGE_ERROR = 5 CANCEL_PPN_GENERATION = 6 VL_ALLOCATION_RUNNING = 7 . " OIU_PPN_MAIN
IF SY-SUBRC EQ 0. "All OK ELSEIF SY-SUBRC EQ 1. "Exception "Add code for exception here ELSEIF SY-SUBRC EQ 2. "Exception "Add code for exception here ELSEIF SY-SUBRC EQ 3. "Exception "Add code for exception here ELSEIF SY-SUBRC EQ 4. "Exception "Add code for exception here ELSEIF SY-SUBRC EQ 5. "Exception "Add code for exception here ELSEIF SY-SUBRC EQ 6. "Exception "Add code for exception here ELSEIF SY-SUBRC EQ 7. "Exception "Add code for exception here ENDIF.







ABAP code to compare 7.40 inline data declaration with original syntax

The below ABAP code uses the older none in-line data declarations. This allows you to see the coding differences/benefits of the later inline syntax. It may also be useful if you are using an older version of SAP as some of the newer syntax above, such as the @DATA is not available until 4.70 EHP 8.

DATA:
ld_ppn_subsystem_cd  TYPE OIU_PR_PPNH-SUB_SYS_CD ,
it_ppn_data_val  TYPE STANDARD TABLE OF OIU_PR_PPNH ,
wa_ppn_data_val  LIKE LINE OF it_ppn_data_val,
ld_ppn_dn_no  TYPE OIU_PR_PPNH-DN_NO ,
it_ppn_dtl_cnt  TYPE STANDARD TABLE OF OIU_PR_PPND ,
wa_ppn_dtl_cnt  LIKE LINE OF it_ppn_dtl_cnt,
ld_ppn_majpd_cd  TYPE OIU_PR_PPNH-MAJPD_CD ,
ld_ppn_e_from_dt  TYPE OIU_PR_PPNH-PRD_DT ,
ld_ppn_eff_to_dt  TYPE OIU_PR_PPNH-PRD_DT ,
ld_ppn_freq_cd  TYPE OIU_PR_PPNH-FREQ_CD ,
ld_ppn_mp_no  TYPE OIU_PR_MP-MP_NO ,
ld_ppn_wl_no  TYPE OIU_PR_WC-WL_NO ,
ld_ppn_wc_no  TYPE OIU_PR_WC-WC_NO ,
ld_ppn_ct_no  TYPE OIU_RV_CT-CT_NO ,
ld_ppn_co  TYPE OIU_DO_DI-BUKRS ,
ld_ppn_venture  TYPE OIU_DO_DI-VNAME ,
ld_ppn_doi_no  TYPE OIU_DO_DI-DOI_NO ,
ld_ppn_pgm_id  TYPE OIU_PR_PPNH-PGM_ID ,
ld_ppn_user_id  TYPE OIU_PR_PPNH-OIU_CRUSER ,
ld_ppn_activity  TYPE OIU_CM_TXN_CTL-MCODE ,
ld_ppn_pop_up  TYPE OIU_PR_DNVD-AL_FL ,
ld_ppn_bapi_flag  TYPE OIU_PR_DNVD-AL_FL ,
ld_ppn_current_subsys  TYPE OIU_PR_PPNH-SUB_SYS_CD .


SELECT single SUB_SYS_CD
FROM OIU_PR_PPNH
INTO ld_ppn_subsystem_cd.


"populate fields of struture and append to itab
append wa_ppn_data_val to it_ppn_data_val.

SELECT single DN_NO
FROM OIU_PR_PPNH
INTO ld_ppn_dn_no.


"populate fields of struture and append to itab
append wa_ppn_dtl_cnt to it_ppn_dtl_cnt.

SELECT single MAJPD_CD
FROM OIU_PR_PPNH
INTO ld_ppn_majpd_cd.


SELECT single PRD_DT
FROM OIU_PR_PPNH
INTO ld_ppn_e_from_dt.


SELECT single PRD_DT
FROM OIU_PR_PPNH
INTO ld_ppn_eff_to_dt.


SELECT single FREQ_CD
FROM OIU_PR_PPNH
INTO ld_ppn_freq_cd.


SELECT single MP_NO
FROM OIU_PR_MP
INTO ld_ppn_mp_no.


SELECT single WL_NO
FROM OIU_PR_WC
INTO ld_ppn_wl_no.


SELECT single WC_NO
FROM OIU_PR_WC
INTO ld_ppn_wc_no.


SELECT single CT_NO
FROM OIU_RV_CT
INTO ld_ppn_ct_no.


SELECT single BUKRS
FROM OIU_DO_DI
INTO ld_ppn_co.


SELECT single VNAME
FROM OIU_DO_DI
INTO ld_ppn_venture.


SELECT single DOI_NO
FROM OIU_DO_DI
INTO ld_ppn_doi_no.


SELECT single PGM_ID
FROM OIU_PR_PPNH
INTO ld_ppn_pgm_id.


SELECT single OIU_CRUSER
FROM OIU_PR_PPNH
INTO ld_ppn_user_id.


SELECT single MCODE
FROM OIU_CM_TXN_CTL
INTO ld_ppn_activity.


SELECT single AL_FL
FROM OIU_PR_DNVD
INTO ld_ppn_pop_up.


SELECT single AL_FL
FROM OIU_PR_DNVD
INTO ld_ppn_bapi_flag.


SELECT single SUB_SYS_CD
FROM OIU_PR_PPNH
INTO ld_ppn_current_subsys.

Contribute (Add Comments)

Please help keep this info upto date and use the comments section below to add useful hints, tips and information specific to this SAP function. This will then be available for you and other users to easily find by simply searching on the object name OIU_PPN_MAIN or its description.