Tuesday, 29 August 2023

SAP ABAP - Create Profit Center With Using BAPI_PROFITCENTER_CREATE

 *&---------------------------------------------------------------------*

*& Report YPC_CREATE
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
REPORT ypc_create.
DATA:
  profitcenterid  TYPE  bapi0015id2,
  validfrom       TYPE  bapi0015_3-date,
  validto         TYPE  bapi0015_3-date,
  basicdata       TYPE  bapi0015_4,
  address         TYPE  bapi0015_5,
  communication   TYPE  bapi0015_6,
  indicators      TYPE  bapi0015_8,
  testrun         TYPE  bapi0015_9,
  language        TYPE  bapi0015_10,

  lt_companycodes  TYPE TABLE OF bapi0015_7,
  ls_companycodes  TYPE bapi0015_7,

  lsreturn        TYPE bapiret2,
  profitcenter    TYPE bapi0015id2-profit_ctr,
  controllingarea TYPE bapi0015id2-co_area.

START-OF-SELECTION.
  PERFORM append_data.
  PERFORM call_bapi.

FORM append_data.
  CLEARprofitcenteridbasicdatalanguage.
  profitcenterid-co_area    '2000'.
  profitcenterid-profit_ctr 'PC1000'.

  validfrom '20230101'.
  validto   '99991231'.

  "Basic Data
  basicdata-prctr_name 'Testing Profit Center'.
  basicdata-long_text  'Testing Profit Center'.
  basicdata-in_charge  'LOGISTIC'.
  basicdata-prctr_hier_grp 'PC10000'.

  "Language
  language-langu     sy-langu.
  language-langu_iso sy-langu.

  "Company Code
  REFRESH lt_companycodes.
  CLEAR ls_companycodes.
  ls_companycodes-comp_code       'SAP1'.
  ls_companycodes-assign_to_prctr 'X'.
  APPEND ls_companycodes TO lt_companycodes.
ENDFORM.

FORM call_bapi.
  CLEAR lsreturn.
  CALL FUNCTION 'BAPI_PROFITCENTER_CREATE'
    EXPORTING
      profitcenterid  profitcenterid
      validfrom       validfrom
      validto         validto
      basicdata       basicdata
*     ADDRESS         =
*     COMMUNICATION   =
*     INDICATORS      =
      testrun         testrun
      language        language
    IMPORTING
      return          lsreturn
      profitcenter    profitcenter
      controllingarea controllingarea
    TABLES
      companycodes    lt_companycodes.

  IF lsreturn-type 'S'.
    CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
      EXPORTING
        wait abap_true.

    MESSAGE lsreturn-message TYPE 'S' DISPLAY LIKE 'S'.
  ELSE.
    CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.
    MESSAGE lsreturn-message TYPE 'S' DISPLAY LIKE 'E'.
  ENDIF.

ENDFORM.

Thursday, 10 August 2023

SAP ABAP - Call AMDP With Select-Option

AMDP Code

CLASS zcl_amdp_acdoca DEFINITION
  PUBLIC
  FINAL
  CREATE PUBLIC .

  PUBLIC SECTION.
  INTERFACESif_amdp_marker_hdb.
  TYPES:
        BEGIN OF ty_acdoca,
            RCLNT  type acdoca-RCLNT,
            rbukrs type acdoca-rbukrs,
            belnr type acdoca-belnr,
            gjahr type acdoca-gjahr,
            DOCLN type acdoca-DOCLN,
            racct type acdoca-racct,
            budat type acdoca-budat,
        END OF ty_acdoca.

  TYPESzz_acdoca TYPE STANDARD TABLE OF ty_acdoca.

  class-METHODS:
    get_acdoca
      IMPORTING
        VALUE(lv_whereTYPE string
      EXPORTING
        VALUE(et_acdocaTYPE zz_acdoca.
  PROTECTED SECTION.
  PRIVATE SECTION.
ENDCLASS.



CLASS ZCL_AMDP_ACDOCA IMPLEMENTATION.


* <SIGNATURE>---------------------------------------------------------------------------------------+
* | Static Public Method ZCL_AMDP_ACDOCA=>GET_ACDOCA
* +-------------------------------------------------------------------------------------------------+
* | [--->] LV_WHERE                       TYPE        STRING
* | [<---] ET_ACDOCA                      TYPE        ZZ_ACDOCA
* +--------------------------------------------------------------------------------------</SIGNATURE>
    METHOD get_acdoca
        by DATABASE PROCEDURE FOR HDB LANGUAGE SQLSCRIPT
        OPTIONS READ-ONLY USING ACDOCA.

        ITAB select DISTINCT RCLNTrbukrsbelnrgjahrDOCLNracctbudat FROM ACDOCA WHERE RLDNR '0L';

        et_acdoca APPLY_FILTER :ITAB:lv_where );
    endmethod.
ENDCLASS.


ABAP Code

*&---------------------------------------------------------------------*
*& Report YCALL_AMDP_WITH_SEL
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
REPORT ycall_amdp_with_sel.
TABLES:
  acdoca.

TYPES:
  BEGIN OF ty_acdoca,
    RCLNT  type acdoca-RCLNT,
    rbukrs TYPE acdoca-rbukrs,
    belnr  TYPE acdoca-belnr,
    gjahr  TYPE acdoca-gjahr,
    docln  TYPE acdoca-docln,
    racct  TYPE acdoca-racct,
    budat  TYPE acdoca-budat,
  END OF ty_acdoca.

DATAlt_acdoca TYPE STANDARD TABLE OF ty_acdoca.

SELECT-OPTIONS:
  s_bukrs FOR acdoca-rbukrs,
  s_belnr FOR acdoca-belnr,
  s_gjahr FOR acdoca-gjahr.

START-OF-SELECTION.

  DATA(lv_wherecl_shdb_seltab=>combine_seltabs(
    it_named_seltabs VALUE #(
      name 'RBUKRS' dref REF #s_bukrs[] )
      name 'BELNR'  dref REF #s_belnr[] )
      name 'GJAHR'  dref REF #s_gjahr[] )
    )
    iv_client_field 'RCLNT'
  ).
  zcl_amdp_acdoca=>get_acdoca(
    EXPORTING
      lv_where lv_where
    IMPORTING
      et_acdoca lt_acdoca[]
  ).

  SORT lt_acdoca[] BY rbukrs belnr gjahr docln.

  cl_demo_output=>display_data(
    EXPORTING
      value lt_acdoca[]
  ).

Output






ABAP CDS View Part 10 : Authorization & DCL untuk ABAP CDS

Authorization & DCL di ABAP CDS | Panduan Lengkap (PFCG, @AccessControl, DCL) Authorization & DCL untuk ABAP CDS — Pandua...