Hi Gurus,
I have created an automation of VF01/02 and create invoice for customer billing.
I have created the sales order with reference (VA02) and saved it.
Here is my code.
*&---------------------------------------------------------------------*
*& Form GET_SALESORD
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM get_salesord .
DATA i_fy(004) TYPE c.
DATA run_date TYPE dats.
run_date = sy-datum.
CALL FUNCTION 'HR_JP_MONTH_BEGIN_END_DATE'
EXPORTING
iv_date = run_date
IMPORTING
ev_month_begin_date = v_sdate
ev_month_end_date = v_edate.
SELECT *
INTO TABLE it_vbak
FROM vbak
WHERE erdat GE v_sdate
AND erdat LE v_edate
AND vbtyp = 'C'.
SELECT *
INTO TABLE it_konv
FROM konv
FOR ALL ENTRIES IN it_vbak
WHERE knumv = it_vbak-knumv.
BREAK-POINT.
SELECT *
FROM vbap
INTO TABLE it_vbap
FOR ALL ENTRIES IN it_vbak
WHERE erdat GE it_vbak-erdat.
ENDFORM. " GET_SALESORD
*&---------------------------------------------------------------------*
*& Form CREATE_BILL
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM create_bill .
LOOP AT it_vbak INTO wa_vbak.
wa_billingdatain-doc_number = wa_vbak-vbeln.
wa_billingdatain-created_by = wa_vbak-ernam.
wa_billingdatain-doc_type = wa_vbak-auart.
wa_billingdatain-ordbilltyp = wa_vbak-fkara.
wa_billingdatain-salesorg = wa_vbak-vkorg.
wa_billingdatain-distr_chan = wa_vbak-vtweg.
wa_billingdatain-division = wa_vbak-spart.
wa_billingdatain-sold_to = wa_vbak-kunnr.
wa_billingdatain-currency = wa_vbak-waerk.
wa_billingdatain-ref_doc = wa_vbak-vgbel.
wa_billingdatain-orderid = wa_vbak-aufnr.
wa_billingdatain-tax_depart_cty = wa_vbak-landtx.
wa_billingdatain-tax_dest_cty = wa_vbak-stceg_l.
wa_billingdatain-price_date = sy-datum.
LOOP AT it_vbap INTO wa_vbap
WHERE erdat = wa_vbak-erdat.
wa_billingdatain-itm_number = wa_vbap-posnr.
wa_billingdatain-origindoc = wa_vbap-vbelv.
wa_billingdatain-item = wa_vbap-posnv.
wa_billingdatain-item_categ = wa_vbap-pstyv.
wa_billingdatain-req_qty = wa_vbap-kwmeng.
wa_billingdatain-sales_unit = wa_vbap-vrkme.
wa_billingdatain-no_matmast = ' '.
wa_billingdatain-plant = wa_vbap-werks.
wa_billingdatain-material = wa_vbap-matnr.
wa_billingdatain-acctasgnmt = wa_vbap-ktgrm.
wa_billingdatain-ref_item = wa_vbap-vgpos.
wa_billingdatain-sales_unit = wa_vbap-vrkme.
wa_billingdatain-profit_ctr = wa_vbap-prctr.
wa_billingdatain-ref_doc_ca = wa_vbap-vgtyp.
wa_billingdatain-costcenter = wa_vbap-kostl.
wa_billingdatain-wbs_elem = wa_vbap-ps_psp_pnr.
ENDLOOP.
* LOOP AT it_konv INTO wa_konv
* WHERE knumv = wa_vbak-knumv.
* wa_conditiondatain-cond_type = wa_konv-kschl.
* wa_conditiondatain-cond_curr = wa_konv-kwaeh.
* wa_conditiondatain-cond_value = wa_konv-kbetr.
* wa_conditiondatain-cond_p_unt = wa_konv-kpein.
* wa_conditiondatain-cond_d_unt = wa_konv-kmein.
* ENDLOOP.
* wa_textdatain-ref_doc = wa_vbap-vgbel.
* wa_textdatain-ref_item = wa_vbap-vgpos.
* wa_textdatain-applobject = 'VBBK'.
* wa_textdatain-langu = 'EN'.
* wa_textdatain-text_id = 'ST'.
APPEND wa_billingdatain TO it_billingdatain.
* APPEND wa_conditiondatain TO it_conditiondatain.
* APPEND wa_textdatain TO it_textdatain.
CALL FUNCTION 'BAPI_BILLINGDOC_CREATEMULTIPLE'
EXPORTING
* CREATORDATAIN =
testrun = 'X'
* POSTING =
TABLES
billingdatain = it_billingdatain
* conditiondatain = it_conditiondatain
* CCARDDATAIN =
* textdatain = it_textdatain
errors = it_errors
return = it_return
success = it_success.
BREAK-POINT.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
* EXPORTING
* WAIT =
* IMPORTING
* RETURN =
.
ENDLOOP.
IF it_errors[] IS NOT INITIAL.
EXIT.
ENDIF.
ENDFORM. " CREATE_BILL
and it is giving me a result,
I | VF | 044 | The item is not relevant for billing |
Please suggest.
Regards