Friday, 19 February 2021

SAP ABAP Parking Invoice With Purchase Order Using BAPI

 REPORT ZPARK_INVOICE.


DATA :
  HEADERDATA       TYPE BAPI_INCINV_CREATE_HEADER,
  ITEMDATA         TYPE TABLE OF BAPI_INCINV_CREATE_ITEM,
  LSEMDATA         TYPE BAPI_INCINV_CREATE_ITEM,
  ACCOUNTINGDATA   TYPE TABLE OF BAPI_INCINV_CREATE_ACCOUNT,
  GLACCOUNTDATA     TYPE TABLE OF BAPI_INCINV_CREATE_GL_ACCOUNT,
  LSACCOUNTDATA     TYPE BAPI_INCINV_CREATE_GL_ACCOUNT,
  ITRETURN         TYPE TABLE OF BAPIRET2,
  INVOICEDOCNUMBER TYPE BAPI_INCINV_FLD-INV_DOC_NO,
  FISCALYEAR       TYPE BAPI_INCINV_FLD-FISC_YEAR.

CLEAR HEADERDATA.
HEADERDATA-INVOICE_IND 'X'.
HEADERDATA-DOC_TYPE 'KR'.
HEADERDATA-DOC_DATE   SY-DATUM.
HEADERDATA-PSTNG_DATE SY-DATUM.
HEADERDATA-BLINE_DATE SY-DATUM.
HEADERDATA-REF_DOC_NO 'IV/PO000000001'.
HEADERDATA-COMP_CODE  '1000'.
HEADERDATA-CURRENCY   'IDR'.
HEADERDATA-GROSS_AMOUNT '2000000'.
HEADERDATA-HEADER_TXT   'Parking INV'.

CLEAR LSEMDATA.
LSEMDATA-INVOICE_DOC_ITEM '000010'.
LSEMDATA-PO_NUMBER        '4500003809'.
LSEMDATA-PO_ITEM          '000010'.
LSEMDATA-ITEM_AMOUNT      '1050000'.
LSEMDATA-QUANTITY         '300'.
LSEMDATA-PO_UNIT          'ST'.
LSEMDATA-ITEM_TEXT        'Parking INV'.
APPEND LSEMDATA TO ITEMDATA.

CLEAR LSACCOUNTDATA.
LSACCOUNTDATA-INVOICE_DOC_ITEM '000010'.
LSACCOUNTDATA-GL_ACCOUNT       '0063003000'.
LSACCOUNTDATA-ITEM_AMOUNT      '1050000'.
LSACCOUNTDATA-DB_CR_IND        'S'.
LSACCOUNTDATA-COMP_CODE        '1000'.
LSACCOUNTDATA-TAX_CODE         'I1'.
APPEND LSACCOUNTDATA TO GLACCOUNTDATA.

CALL FUNCTION 'BAPI_INCOMINGINVOICE_PARK'
  EXPORTING
    HEADERDATA       HEADERDATA
*   ADDRESSDATA      =
  IMPORTING
    INVOICEDOCNUMBER INVOICEDOCNUMBER
    FISCALYEAR       FISCALYEAR
  TABLES
    ITEMDATA         ITEMDATA
*   ACCOUNTINGDATA   =
    GLACCOUNTDATA    GLACCOUNTDATA
*   MATERIALDATA     =
*   TAXDATA          =
*   WITHTAXDATA      =
*   VENDORITEMSPLITDATA       =
    RETURN           ITRETURN
*   EXTENSIONIN      =
*   TM_ITEMDATA      =
*   NFMETALLITMS     =
  .

Sunday, 31 January 2021

SAP ABAP - Create Purchase Order Text in Material Master Using BAPI CREATE_TEXT

 DATA :

    FID       TYPE  THEAD-TDID,
    FLANGUAGE TYPE  THEAD-TDSPRAS,
    FNAME     TYPE  THEAD-TDNAME,
    FOBJECT   TYPE  THEAD-TDOBJECT.

  FID       'BEST'.
  FNAME     = 'MAT0001'. "Material Number
  FOBJECT   'MATERIAL'.
  FLANGUAGE 'EN'.

  REFRESH IT_FLINES.
  CLEAR IT_FLINES.
  IT_FLINES-TDFORMAT '*'.
  IT_FLINES-TDLINE   = 'Long Text Purchase Order Text'.
  APPEND IT_FLINES.

   CALL FUNCTION 'CREATE_TEXT'
    EXPORTING
      FID         FID
      FLANGUAGE   SY-LANGU
      FNAME       FNAME
      FOBJECT     FOBJECT
      SAVE_DIRECT 'X'
      FFORMAT     '*'
    TABLES
      FLINES      IT_FLINES[]
    EXCEPTIONS
      NO_INIT     1
      NO_SAVE     2
      OTHERS      3.

    CALL FUNCTION 'COMMIT_TEXT'
      EXPORTING
        OBJECT          FOBJECT
        NAME            FNAME
        ID              FID
        LANGUAGE        SY-LANGU
        SAVEMODE_DIRECT 'X'
        KEEP            ''.

    CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
      EXPORTING
        WAIT 'X'.


SAP ABAP - Add Custom Field In MB52

1. Add custom field declaration in structure bestand




Custom field can be added directly with Insert line area or using enhancement point

2. Add New Enhancement Point in list_ouput sub routines



ENHANCEMENT 1  ZMB52_ADDITIONALFIELD.    "active version
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""$"$\SE:(134) Form LIST_OUTPUT, Start, Enhancement ZMB52_ADDITIONALFIELD, Start                                                                               A
  datawa_fcat LIKE LINE OF fieldcat,
          g_tabix LIKE sy-tabix.

    CLEAR wa_fcat.
    wa_fcat-fieldname 'LGPBE'.
    wa_fcat-tabname   'BESTAND'.
    wa_fcat-seltext_m 'Storage Bin'.
    APPEND wa_fcat to fieldcat.

    CLEAR wa_fcat.
    wa_fcat-fieldname 'BISMT'.
    wa_fcat-tabname   'BESTAND'.
    wa_fcat-seltext_m 'Old Material Number'.
    APPEND wa_fcat TO fieldcat.

  SELECT matnr,
         werks,
         lgort,
         lgpbe
    FROM mard
    INTO TABLE @Data(lt_mard)
          FOR ALL ENTRIES IN @bestand
          WHERE matnr @bestand-matnr
          AND  werks @bestand-werks
          AND  lgort @bestand-lgort.

    SELECT matnr,
           bismt
      FROM mara
      INto TABLE @data(lt_mara)
          FOR ALL ENTRIES IN @bestand
          WHERE matnr @bestand-matnr.

    LOOP AT bestand[] ASSIGNING FIELD-SYMBOL(<lfs_output>).
    READ TABLE lt_mard INTO DATA(ls_mardWITH KEY matnr <lfs_output>-matnr
                                                   werks <lfs_output>-werks
                                                   lgort <lfs_output>-lgort.
      IF sy-subrc 0.
      <lfs_output>-lgpbe ls_mard-lgpbe.
      ENDIF.
    READ TABLE lt_mara INTO data(ls_marawith key matnr <lfs_output>-matnr.
      IF sy-subrc 0.
      <lfs_output>-bismt ls_mara-bismt.
      ENDIF.
    ENDLOOP.
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""$"$\SE:(135) Form LIST_OUTPUT, Start, Enhancement ZMB52_ADDITIONALFIELD, End                                                                                 A
ENDENHANCEMENT.






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...