DATA lv_tabixTYPE sy-tabix.
DATA l_tabixTYPE sy-tabixVALUE 0.
DATA lv_countTYPE char5.
DATA gt_updateTYPE TABLE OF ty_excel.
DATA gs_updateTYPE ty_excel.
DATA wa_alv_nextTYPE ty_excel.
DATA lt_returnTYPE TABLE OF bapiret2.
DATA ls_returnTYPE bapiret2.
"导入定义
DATA lt_glpcaTYPE TABLE OF glpca.
DATA ls_glpcaTYPE glpca.
DATA lt_documentsTYPE pcpp_t_posting_doc. "4.6a
DATA ls_documentsTYPE pcpp_s_posting_doc.
DATA l_recordsTYPE p.
IF lv_flagIS INITIAL.
LOOP AT gt_alvINTO gs_alvWHERE msgIS INITIAL.
lv_tabix= sy-tabix.
"把序列号相同的数据全部放入 GT_UPDATE表
lv_count= lv_count +1 .
gs_alv-num= lv_count.
APPEND gs_alvTO gt_update.
LOOP AT gt_updateINTO gs_updateWHERE buzei= lv_count.
ls_glpca-rldnr= '8A'.
ls_glpca-rrcty= '0'.
ls_glpca-rvers= '000'.
ls_glpca-ryear= gs_update-budat+(4).
ls_glpca-drcrk= gs_update-shkzg.
ls_glpca-poper= '001'.
ls_glpca-docln= gs_update-buzei.
ls_glpca-rbukrs= gs_update-rbukrs.
ls_glpca-rprctr= gs_update-rprctr.
* ls_glpca-rhoart = '01'.
ls_glpca-rfarea= gs_update-rfarea.
ls_glpca-kokrs= 'CN00'.
ls_glpca-racct= gs_update-racct.
* ls_glpca-activ = 'PRC5'.
* ls_glpca-afabe = '00'.
* ls_glpca-shoart = '00'.
ls_glpca-ksl= gs_update-ksl..
ls_glpca-sgtxt= gs_update-sgtxt.
ls_glpca-budat= gs_update-budat.
ls_glpca-bldat= gs_update-budat.
ls_glpca-wsdat= gs_update-budat.
ls_glpca-werks= gs_update-werks.
ls_glpca-kostl= gs_update-kostl.
ls_glpca-aufnr= gs_update-aufnr.
ls_glpca-matnr= gs_update-matnr.
ls_glpca-kunnr= gs_update-kunnr.
ls_glpca-lifnr= gs_update-lifnr.
APPEND ls_glpcaTO lt_glpca.
CLEAR ls_glpca.
ENDLOOP.
lv_tabix= lv_tabix +1.
READ TABLE gt_alvINTO wa_alv_nextINDEX lv_tabix.
IF sy-subrc <>0 OR ( sy-subrc= 0 AND wa_alv_next-buzei < gs_alv-buzei).
CALL FUNCTION 'PCA_ACTUALS_POST'
EXPORTING
i_docty= 'A0'
i_batch= ''
IMPORTING
e_records= l_records
TABLES
t_glpca= lt_glpca
t_documents= lt_documents
EXCEPTIONS
posting_error= 1
OTHERS = 2.
.
IF sy-subrc <>0.
* Implement suitable error handling here
ENDIF.
LOOP AT gt_updateINTO gs_update.
READ TABLE lt_documentsINTO ls_documentsINDEX 1.
IF ls_documents-key-docnrIS NOT INITIAL.
COMMIT WORK AND WAIT.
gs_update-msg= '导入成功:'&&'凭证' && ls_documents-key-docnr &&'过账成功'.
ELSE.
gs_update-msg= '导入失败'.
ENDIF.
APPEND gs_updateTO lt_alv.
ENDLOOP.
"读取消息返回ALV
CLEAR: lv_count,gt_update,lt_glpca,lt_documents,wa_alv_next.
ENDIF.
ENDLOOP.
CLEAR gt_alv.
APPEND LINES OF lt_alvTO gt_alv.
ELSE.
MESSAGE TEXT-e04TYPE 'S'DISPLAYLIKE 'E'.
ENDIF.