Creation Of Purchase Info Record Using BAPI 'ME_INFORECORD_MAINTAIN'


REPORT zcm_dummy_program.

DATA : lt_table         TYPE TABLE OF zssp_if_213_price_master_info,
       lt_cond_validity TYPE TABLE OF mewivalidity,
       lr_cond_validity TYPE mewivalidity,
       lt_condition     TYPE TABLE OF mewicondition,
       lr_condition     TYPE mewicondition,
       lr_eina          TYPE mewieina,
       lr_einax         TYPE mewieinax,
       lr_eine          TYPE mewieine,
       lr_einex         TYPE mewieinex,
       lr_eina_ex       TYPE mewieina,
       lr_eine_ex       TYPE mewieine,
       lt_return        TYPE mewi_t_return,
       lf_error_text    TYPE char200,
       lf_lifnr         TYPE lifnr,
       lf_matnr         TYPE matnr.

" Convert Supplier into internal format.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
  EXPORTING
    input  = '100103301'
  IMPORTING
    output = lf_lifnr. " lf_lifnr = '0100103301'

" Convert Material into internal format.
CALL FUNCTION 'CONVERSION_EXIT_MATN1_INPUT'
  EXPORTING
    input        = 'CL0120-0259-5-73-058'
  IMPORTING
    output       = lf_matnr
  EXCEPTIONS
    length_error = 1
    OTHERS       = 2.
IF sy-subrc <> 0.
* Implement suitable error handling here
ENDIF.

lr_eina-vendor      = lf_lifnr.
lr_eina-material    = lf_matnr.
" Update X for change parameters
lr_einax-vendor     = abap_true.
lr_einax-material   = abap_true.

lr_eine-currency   = 'JPY'.
lr_eine-plant      = '1031'.
lr_eine-purch_org  = '1030'.
lr_eine-nrm_po_qty = '1'.
lr_eine-plnd_delry = '1'.

" Update X for change parameters
lr_einex-currency   = abap_true.
lr_einex-plnd_delry = abap_true.
lr_einex-plant      = abap_true.
lr_einex-purch_org  = abap_true.
lr_einex-nrm_po_qty = abap_true.

" Passing values to condition validity table
lr_cond_validity-valid_from = sy-datum.
lr_cond_validity-valid_to   = '99991231'.
lr_cond_validity-plant      = '1031'.
APPEND lr_cond_validity TO lt_cond_validity.

" Passing values to condition table
lr_condition-cond_type  = 'PB00'.
lr_condition-cond_value = '10000'.
lr_condition-currency   = 'JPY'.
lr_condition-vendor_no  = lf_lifnr.
lr_condition-cond_p_unt = '100'.

APPEND lr_condition TO lt_condition.

CLEAR lt_return.
" Testrun for create purchase info record
CALL FUNCTION 'ME_INFORECORD_MAINTAIN'
  EXPORTING
    i_eina        = lr_eina
    i_einax       = lr_einax
    i_eine        = lr_eine
    i_einex       = lr_einex
    testrun       = 'X'
  IMPORTING
    e_eina        = lr_eina_ex
    e_eine        = lr_eine_ex
  TABLES
    cond_validity = lt_cond_validity
    condition     = lt_condition
    return        = lt_return.
READ TABLE lt_return INTO DATA(ls_return) WITH KEY type = 'E'.
IF sy-subrc = 0.
*  Display Error Messages
ELSE.
  CLEAR lt_return.
  " Create Info Record.
  CALL FUNCTION 'ME_INFORECORD_MAINTAIN'
    EXPORTING
      i_eina        = lr_eina
      i_einax       = lr_einax
      i_eine        = lr_eine
      i_einex       = lr_einex
    IMPORTING
      e_eina        = lr_eina_ex
      e_eine        = lr_eine_ex
    TABLES
      cond_validity = lt_cond_validity
      condition     = lt_condition
      return        = lt_return.
  IF sy-subrc = 0.
    COMMIT WORK.
  ENDIF.
  WRITE: 'Info Record',lr_eina_ex-info_rec, 'Created for ', lr_eina_ex-vendor.
ENDIF.
CLEAR: lr_eina, lr_eine, lr_einax, lr_einex, lr_eina_ex, lr_eine_ex, lr_cond_validity.

 

Output: 

Tables: EINA and EINE

T-code : ME13

Comments

Popular posts from this blog

CDS Views: Table Functions with Example

Passing Dynamic Variables to SO10 TEXT

Adobe Form/PDF Form Introduction