Professional Documents
Culture Documents
it_head = input-mt_invoice-data[].
it_det = input-mt_invoice-invoice_details-item[].
LOOP AT it_head INTO wa_head.
CLEAR : username,
header_txt,
comp_code,
doc_date,
pstng_date,
doc_type,
bus_act,
invoice_no.
username = wa_head-username.
header_txt = wa_head-header_txt.
comp_code = wa_head-comp_code.
CALL FUNCTION 'CONVERT_DATE_TO_INTERNAL'
EXPORTING
date_external
= wa_head-doc_date
ACCEPT_INITIAL_DATE
=
IMPORTING
date_internal
= doc_date
EXCEPTIONS
date_external_is_invalid
= 1
OTHERS
= 2
.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
*
DOC_DATE = WA_HEAD-DOC_DATE.
CALL FUNCTION 'CONVERT_DATE_TO_INTERNAL'
EXPORTING
date_external
= wa_head-pstng_date
*
ACCEPT_INITIAL_DATE
=
IMPORTING
date_internal
= pstng_date
EXCEPTIONS
date_external_is_invalid
= 1
OTHERS
= 2
.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
*
PSTNG_DATE = WA_HEAD-PSTNG_DATE.
doc_type = wa_head-doc_type.
bus_act = wa_head-bus_act.
invoice_no = wa_head-ref_doc_no_long.
lv_valuepart1 = 'XREF1_HD'.
lv_valuepart2 = wa_head-DEALTYPE.
ENDLOOP.
LOOP AT it_det INTO wa_det WHERE itemno_acc IS NOT INITIAL.
wa_post-itemno_acc = wa_det-itemno_acc.
wa_post-newbs = wa_det-newbs.
wa_post-gl_account = wa_det-gl_account.
wa_post-item_text = wa_det-item_text.
wa_post-customer = wa_det-customer.
wa_post-SP_GL_IND = wa_det-SP_GL_IND.
wa_post-ref_key_1 = wa_det-ref_key_1.
wa_post-ref_key_2 = wa_det-ref_key_2.
wa_post-ref_key_3 = wa_det-ref_key_3.
wa_post-comp_code = wa_det-comp_code.
wa_post-bus_area = wa_det-bus_area.
wa_post-pmnttrms = wa_det-pmnttrms.
wa_post-profit_ctr = wa_det-profit_ctr.
wa_post-curr_type = wa_det-curr_type.
wa_post-currency = wa_det-currency.
wa_post-amt_doccur = wa_det-amt_doccur.
wa_post-alloc_nmbr = wa_det-alloc_nmbr.
wa_post-costcenter = wa_det-costcenter.
wa_post-pymt_meth = wa_det-pymt_meth.
wa_post-businessplace = wa_det-businessplace.
wa_post-tax_code = wa_det-tax_code.
wa_post-exch_rate = wa_det-exch_rate.
APPEND wa_post TO it_post.
ENDLOOP.
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
= IT_POST[].
AND
koart = '
and
bukrs = c
and
gjahr = l
D'
omp_code
v_fiscal.
endif.
READ TABLE it_bseg into wa_bseg INDEX 1.
READ TABLE it_post into wa_post1 WITH key CUSTOMER = wa_bseg-kunnr.
READ TABLE it_bseg into wa_bseg with key bschl = wa_post1-NEWBS.
if sy-subrc ne 0.
ashishp2010
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
""""" changes by
=
=
=
=
=
=
=
=
=
=
username
header_txt
comp_code
doc_date
pstng_date
doc_type
bus_act
invoice_no
LV_VALUEPART1
LV_VALUEPART2
= doc_no
= error_text
= reference_no
= it_post[]
= 1
= 2
= 3
= 4
= 5
= 6
= 7
= 8
= 9
= 10
= 11
= 12
= 13
= 14
= 15
= 16
= 17
= 18
= 19
= 20
= 21
= 22
*
*
*
*
*
23_AMT_DOCCUR_NOT_FOUND
= 23
24_ALLOC_NMBR_NOT_FOUND
= 24
25_COSTCENTER_NOT_FOUND
= 25
26_PYMT_METH_NOT_FOUND
= 26
27_BUSINESSPLACE_NOT_FOUND
= 27
OTHERS
= 28
.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
**
**
*
*
*
**
**
*
**
**
**
**
**
**
**
**
**
**
**
**
**
**
**
*
**
**
**
**
*
*
*
*
*
*
*
*
*
*
wa_ret-reference_no = reference_no.
wa_ret-doc_no = doc_no.
IF sy-msgid IS NOT INITIAL.
CASE sy-msgid.
WHEN '3'.
wa_ret-error_text = 'COMP_CODE_NOT_FOUND'.
WHEN '4'.
wa_ret-error_text = 'DOC_DATE_NOT_FOUND'.
WHEN '5'.
wa_ret-error_text = 'POSTNG_DATE_NOT_FOUND'.
WHEN '8'.
wa_ret-error_text = 'Invoice_no_not_found'.
WHEN '24'.
wa_ret-error_text = 'AMT_DOCCUR_NEGATIVE'.
ENDCASE.
ELSEIF error_text IS INITIAL AND wa_ret-doc_no IS NOT INITIAL.
CLEAR wa_post.
READ TABLE it_post INTO wa_post WITH KEY newbs = '40'.
IF sy-subrc EQ 0.
wa_ret-error_text = 'Invoice Cancelled'.
ELSE.
wa_ret-error_text = 'Invoice Created'.
ENDIF.
ENDIF.
wa_ret-error_text = sy-msgid.
wa_ret-resp_type = 'INV'.
IF wa_ret-error_text IS INITIAL.
wa_ret-error_text = error_text.
ENDIF.
APPEND wa_ret TO it_ret.
TRY.
CREATE OBJECT prxy.
ENDTRY.
TRY.
it_trans-mt_res_prxy-item = it_ret.
CALL METHOD prxy->si_out_invresp
EXPORTING
output = it_trans.
COMMIT WORK.
CATCH cx_ai_system_fault.
DATA fault TYPE REF TO cx_ai_system_fault.
CREATE OBJECT fault.
WRITE :/ fault->errortext.
ENDTRY.
CLEAR wa_post.
READ TABLE it_post INTO wa_post WITH KEY newbs = '40'.
IF sy-subrc EQ 0.
wa_ret-error_text = 'Invoice Cancelled'.
ELSE.
wa_ret-error_text = 'Invoice Created'.
ENDIF.
wa_ret-error_text = error_text.
wa_ret-resp_type = 'INV'.
APPEND wa_ret TO it_ret.
TRY.
CREATE OBJECT prxy.
ENDTRY.
TRY.
it_trans-mt_res_prxy-item = it_ret.
CALL METHOD prxy->si_out_invresp
EXPORTING
output = it_trans.
COMMIT WORK.
CATCH cx_ai_system_fault.
DATA fault1 TYPE REF TO cx_ai_system_fault.
CREATE OBJECT fault1.
WRITE :/ fault1->errortext.
ENDTRY.
ENDIF.
Elseif sy-subrc = 0. """"" changes by ashishp2010
wa_ret-reference_no = invoice_no.
wa_ret-doc_no = wa_bseg-belnr.
wa_ret-error_text = 'Duplicate Entry'.
wa_ret-resp_type = 'INV'.
APPEND wa_ret TO it_ret.
TRY.
CREATE OBJECT prxy.
ENDTRY.
TRY.
it_trans-mt_res_prxy-item = it_ret.
CALL METHOD prxy->si_out_invresp
EXPORTING
output = it_trans.
COMMIT WORK.
CATCH cx_ai_system_fault.
data fault2 TYPE REF TO cx_ai_system_fault.
CREATE OBJECT fault1.
WRITE :/ fault2->errortext.
ENDTRY.
endif.
endmethod.