Skip to main content

SAP ABAP FV60 : Park Document Using Custom Function Module


 



I_Header Structure





LT_GLACCOUNT structure



LT_WIHTAX Structure


Complete Source Code :

function z_vim_park_fv60.
*"----------------------------------------------------------------------
*"*"Local Interface:
*"  IMPORTING
*"     REFERENCE(I_HEADER) TYPE  ZSVIM_LIVNPO_HEADER
*"  TABLES
*"      LT_GLACCOUNT STRUCTURE  ZSVIM_LIVNPO_GL OPTIONAL
*"      LT_WIHTAX STRUCTURE  ZSVIM_LIVNPO_WHT OPTIONAL
*"      LT_RETURN STRUCTURE  BDCMSGCOLL
*"----------------------------------------------------------------------

  data :
     ls_gl      type zsvim_livnpo_gl,
     ls_wihtax  type zsvim_livnpo_wht,
     ls_bdcopt  type ctu_params,
     str_bldat  type char10,
     str_budat  type char10,
     str_zfbdt  type char10,
     itabidx(2type n,
     strbdcfld  type string.

  refresh bdc_data.

  clear str_bldatstr_budatstr_zfbdt.

  concatenate i_header-bldat+6(2'.' i_header-bldat+4(2'.' i_header-bldat(4into str_bldat.
  concatenate i_header-budat+6(2'.' i_header-budat+4(2'.' i_header-budat(4into str_budat.
  concatenate i_header-zfbdt+6(2'.' i_header-zfbdt+4(2'.' i_header-zfbdt(4into str_zfbdt.

  "New
  perform bdc_dynpro      using 'SAPMF05A' '1100'.
  perform bdc_field       using 'BDC_OKCODE'
                                '=DUMMY'.
  perform bdc_field       using 'RF05A-BUSCS'
                                'R'.
  perform bdc_field       using 'BDC_CURSOR'
                                'INVFO-MWSKZ'.
  perform bdc_field       using 'INVFO-ACCNT'
                                i_header-lifnr.
  perform bdc_field       using 'INVFO-BLDAT'
                                str_bldat.
  perform bdc_field       using 'INVFO-XBLNR'
                                i_header-xblnr.
  perform bdc_field       using 'INVFO-BUDAT'
                                str_budat.
  perform bdc_field       using 'INVFO-WAERS'
                                i_header-waers.
  perform bdc_field       using 'INVFO-MWSKZ'
                                i_header-mwskz1.
  perform bdc_field       using 'INVFO-BUPLA'
                                i_header-bupla.
  perform bdc_field       using 'INVFO-SGTXT'
                                i_header-sgtxt.

  perform bdc_dynpro      using 'SAPMF05A' '1100'.
  perform bdc_field       using 'BDC_OKCODE'
                                '/ECCDE'.
  perform bdc_dynpro      using 'SAPLACHD' '1000'.
  perform bdc_field       using 'BDC_CURSOR'
                                'BKPF-BUKRS'.
  perform bdc_field       using 'BDC_OKCODE'
                                '=ENTR'.
  perform bdc_field       using 'BKPF-BUKRS'
                                i_header-bukrs.

  perform bdc_dynpro      using 'SAPMF05A' '1100'.
  perform bdc_field       using 'BDC_OKCODE'
                                '/00'.
  perform bdc_field       using 'RF05A-BUSCS'
                                'R'.
  perform bdc_field       using 'INVFO-ACCNT'
                                i_header-lifnr.
  perform bdc_field       using 'INVFO-BLDAT'
                                str_bldat.
  perform bdc_field       using 'INVFO-XBLNR'
                                i_header-xblnr.
  perform bdc_field       using 'INVFO-BUDAT'
                                str_budat.
  perform bdc_field       using 'INVFO-WAERS'
                                i_header-waers.
  perform bdc_field       using 'INVFO-MWSKZ'
                                i_header-mwskz1.
  perform bdc_field       using 'INVFO-BUPLA'
                                i_header-bupla.
  perform bdc_field       using 'INVFO-SGTXT'
                                i_header-sgtxt.

  "GL DATA
  clear ls_glitabidx.
  loop at lt_glaccount into ls_gl.
    itabidx itabidx + 1.

    if itabidx >= 4.
      itabidx 4.
    endif.

    clear strbdcfld.
    concatenate 'ACGL_ITEM-HKONT(' itabidx ')' into strbdcfld.
    perform bdc_field       using 'BDC_CURSOR'
                                  strbdcfld.

    clear strbdcfld.
    concatenate 'ACGL_ITEM-HKONT(' itabidx ')' into strbdcfld.
    perform bdc_field       using strbdcfld
                                  ls_gl-hkont.

    clear strbdcfld.
    concatenate 'ACGL_ITEM-WRBTR(' itabidx ')' into strbdcfld.
    perform bdc_field       using strbdcfld
                                  ls_gl-adjamount.

    clear strbdcfld.
    concatenate 'ACGL_ITEM-ZUONR(' itabidx ')' into strbdcfld.
    perform bdc_field       using strbdcfld
                                  ls_gl-zuonr.

    clear strbdcfld.
    concatenate 'ACGL_ITEM-SGTXT(' itabidx ')' into strbdcfld.
    perform bdc_field       using strbdcfld
                                  ls_gl-adtext.

    clear strbdcfld.
    concatenate 'ACGL_ITEM-GSBER(' itabidx ')' into strbdcfld.
    perform bdc_field       using strbdcfld
                                  i_header-bupla.

    clear strbdcfld.
    concatenate 'ACGL_ITEM-KOSTL(' itabidx ')' into strbdcfld.
    perform bdc_field       using strbdcfld
                                  ls_gl-kostl.

    if itabidx >= 4.
      clear strbdcfld.
      concatenate 'ACGL_ITEM-MARKSP(' itabidx ')' into strbdcfld.
      perform bdc_field       using strbdcfld
                              'X'.
      perform bdc_dynpro      using 'SAPMF05A' '1100'.
      perform bdc_field       using 'BDC_OKCODE'
                                    '=0005'.
    else.
      perform bdc_dynpro      using 'SAPMF05A' '1100'.
      perform bdc_field       using 'BDC_OKCODE'
                                    '/00'.
    endif.

    clear ls_gl.
  endloop.

  perform bdc_field       using 'BDC_OKCODE'
                                '=DUMMY'.
  perform bdc_field       using 'RF05A-BUSCS'
                                'R'.
  perform bdc_field       using 'BDC_CURSOR'
                                'INVFO-XMWST'.
  perform bdc_field       using 'INVFO-ACCNT'
                                i_header-lifnr.
  perform bdc_field       using 'INVFO-BLDAT'
                                str_bldat.
  perform bdc_field       using 'INVFO-XBLNR'
                                'FAKTURPAJAK'.
  perform bdc_field       using 'INVFO-BUDAT'
                                str_budat.
  perform bdc_field       using 'INVFO-WRBTR'
                                i_header-rmwwr.
  perform bdc_field       using 'INVFO-XMWST'
                                'X'.
  perform bdc_field       using 'INVFO-MWSKZ'
                                i_header-mwskz1.
  perform bdc_field       using 'INVFO-BUPLA'
                                i_header-bupla.
  perform bdc_field       using 'INVFO-SGTXT'
                                i_header-sgtxt.
  perform bdc_dynpro      using 'SAPMF05A' '1100'.
  perform bdc_field       using 'BDC_OKCODE'
                                '=PAYM'.
  perform bdc_field       using 'RF05A-BUSCS'
                                'R'.
  perform bdc_field       using 'BDC_CURSOR'
                                'INVFO-XMWST'.
  perform bdc_field       using 'INVFO-ACCNT'
                                i_header-lifnr.
  perform bdc_field       using 'INVFO-BLDAT'
                                str_bldat.
  perform bdc_field       using 'INVFO-XBLNR'
                                i_header-xblnr.
  perform bdc_field       using 'INVFO-BUDAT'
                                str_budat.
  perform bdc_field       using 'INVFO-WRBTR'
                                i_header-rmwwr.
  perform bdc_field       using 'INVFO-XMWST'
                                'X'.
  perform bdc_field       using 'INVFO-MWSKZ'
                                i_header-mwskz1.
  perform bdc_field       using 'INVFO-BUPLA'
                                i_header-bupla.
  perform bdc_field       using 'INVFO-SGTXT'
                                i_header-sgtxt.
  perform bdc_dynpro      using 'SAPMF05A' '1100'.
  perform bdc_field       using 'BDC_OKCODE'
                                '/00'.
  perform bdc_field       using 'BDC_CURSOR'
                                'INVFO-ZTERM'.
  perform bdc_field       using 'INVFO-ZFBDT'
                                str_zfbdt.
  perform bdc_field       using 'INVFO-ZTERM'
                                i_header-zterm.

  perform bdc_dynpro      using 'SAPMF05A' '1100'.
  perform bdc_field       using 'BDC_OKCODE'
                                '=MORE'.
  perform bdc_field       using 'BDC_CURSOR'
                                'INVFO-ZTERM'.
  perform bdc_field       using 'INVFO-ZFBDT'
                                str_zfbdt.
  perform bdc_field       using 'INVFO-ZTERM'
                                i_header-zterm.

  perform bdc_dynpro      using 'SAPMF05A' '1100'.
  perform bdc_field       using 'BDC_OKCODE'
                                '/00'.
  perform bdc_field       using 'BDC_CURSOR'
                                'INVFO-GSBER'.
  perform bdc_field       using 'INVFO-ZUONR'
                                i_header-zuonr.
  perform bdc_field       using 'INVFO-BKTXT'
                                i_header-bktxt.
  perform bdc_field       using 'INVFO-GSBER'
                                i_header-bupla.
  perform bdc_dynpro      using 'SAPMF05A' '1100'.
  perform bdc_field       using 'BDC_OKCODE'
                                '=WT'.
  perform bdc_field       using 'BDC_CURSOR'
                                'INVFO-GSBER'.
  perform bdc_field       using 'INVFO-ZUONR'
                                i_header-zuonr.
  perform bdc_field       using 'INVFO-BKTXT'
                                i_header-bktxt.
  perform bdc_field       using 'INVFO-GSBER'
                                i_header-bupla.
  perform bdc_dynpro      using 'SAPMF05A' '1100'.
  perform bdc_field       using 'BDC_OKCODE'
                                '/00'.


  clear ls_wihtaxitabidx.
  loop at lt_wihtax into ls_wihtax.
    itabidx itabidx + 1.

    clear strbdcfld.
    concatenate 'ACWT_ITEM-WT_WITHCD(' itabidx ')' into strbdcfld.
    perform bdc_field       using 'BDC_CURSOR'
                                  strbdcfld.

    clear strbdcfld.
    concatenate 'ACWT_ITEM-WT_WITHCD(' itabidx ')' into strbdcfld.
    perform bdc_field       using strbdcfld
                                  ls_wihtax-wt_withcd.

    clear strbdcfld.
    concatenate 'ACWT_ITEM-WT_QSSHB(' itabidx ')' into strbdcfld.
    perform bdc_field       using strbdcfld
                                  ls_wihtax-wt_amount.

    clear ls_wihtax.
  endloop.

                                '10000'.
  perform bdc_dynpro      using 'SAPMF05A' '1100'.
  perform bdc_field       using 'BDC_OKCODE'
                                '=BP'.
  perform bdc_field       using 'BDC_CURSOR'
                                'ACWT_ITEM-WT_QSSHB(01)'.

  ls_bdcopt-dismode   'N'"A=FOREGROUND N=BACKGROUND E=ERROR
  ls_bdcopt-updmode   'A'"S=SYNCHRONOUS A=ASYNCHRONOUS L=LOCAL
  ls_bdcopt-defsize   'X'.
  ls_bdcopt-racommit  'X'.

  refresh lt_return.
  call transaction 'FV60'
  using bdc_data
        messages into lt_return
        options from ls_bdcopt.

endfunction.




Comments

Popular posts from this blog

How to Create a REST API in SAP ABAP — Step-by-step Guide

How to Create a REST API in SAP ABAP — Step-by-step Guide Summary: This tutorial shows how to build a REST API in SAP ABAP by creating a handler class, configuring SICF service, registering endpoints with cl_rest_router , implementing endpoint logic (example GET method), and testing the API. Based on an internal implementation reference. Why expose REST APIs from SAP? REST APIs allow SAP systems to integrate with web, mobile, and external services using standard HTTP and JSON payloads. Implementing REST endpoints in ABAP provides secure, reusable, and maintainable integration points for modern applications. Prerequisites Access to an SAP system with authorization to create classes (SE24) and SICF services (SICF). Familiarity with ABAP object-oriented concepts and basic SAP transaction codes. ABAP classes CL_REST_RESOURCE , CL_REST_ROUTER and utilities like /UI2/CL_JSON . High-level overview (4 steps) Create an API handler class (e.g. ZCL_API_HANDLER ). R...

SAP ABAP - User Exit Set Batch Characteristic Value In MIGO Goods Receipt

Customer Exit  :  MBCFC004 ( EXIT_SAPMM07M_004) Set Up Customer Exit for Classification of User-Defined Characteristics You use SAP enhancement MBCFC004 EXIT_SAPMM07M_004, which contains function module exit EXIT_SAPMM07M_004 to classify user-defined characteristics automatically during goods movements in Inventory Management. This is only possible for characteristics which are not assigned values during quality inspection. Requirements 1. The class of the batch to be classified must be known.  This means that a class must be assigned either to the material or at least to one batch of this material. 2. The exit call must be activated for the respective movement type in activity Activate batch classification during goods movements in IM using indicator 'Extended classification' . Open tcode OMC...

IT Asset Management Dengan PHP MySQL

Pada postingan kali saya akan share sebuah aplikasi IT Asset management yang fungsinya untuk memonitoring semua Asset khusus IT, contohnya : Laptop/komputer , Printer, Router, Hardisk, dll. Dalam aplkasi ini kita bisa mengetahui Asset IT posisinya dimana dan digunakan oleh siapa. untuk data-data yang dibutuhkan antara lain : 1. data kategori asset dalam menu ini kita bisa meng-input jenis2 kategory asset : tambah kategori asset : 2. data department 3. data karyawan 4. data department per karyawan 5. data asset location  6. data satuan asset dan untuk transaksi yang ada dalam aplikasi ini adalah,  1. create asset, pada menu create asset ini kita akan mengalokasikan sebuah asset ke karyawan/personnel tampilannya seperti berikut: setelah klik tombol save akan muncul seperti dibawah : untuk melihat detail asset yang sudah dibuat tadi, kita bisa pilih...