动态表迁移程序【两个SAP系统之间表迁移】
2018-02-23 18:05阅读:
Source Code
*&---------------------------------------------------------------------*
*& Report
ZR_MIG_STUFF_REQUEST_PR
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
REPORT
zr_mig_stuff_request_pr.
TABLES:ztpr_header.
SELECT-OPTIONS:s_banfn FOR
ztpr_header-banfn.
FIELD-SYMBOLS: TYPE
table,
TYPE
any,
TYPE
table,
TYPE
any.
DATA:go_pr_header
TYPE REF TO
data,
go_pr_item
TYPE REF
TO
data,
gt_ztpr_header
TYPE TABLE OF
ztpr_header,
gt_ztpr_item
TYPE TABLE OF
ztpr_item.
START-OF-SELECTION.
PERFORM
frm_get_data.
PERFORM
frm_process_data.
PERFORM
frm_write_data.
*&---------------------------------------------------------------------*
*& Form
FRM_GET_DATA
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
* --> p1
text
* <-- p2
text
*----------------------------------------------------------------------*
FORM frm_get_data .
DATA: lv_dest
TYPE
rfcdest,
lo_table TYPE
REF TO
data,
lv_subrc(1)
TYPE
c,
lv_success TYPE
boolean.
CALL FUNCTION
'ZBBP_GET_SRMSUS'
IMPORTING
ev_dest
= lv_dest.
***************************************************************************
*PR Header Dynamic Table Field
Catelog
PERFORM frm_ddif_get_table
USING
lv_dest
'ZTJC001'
CHANGING
lo_table
lv_subrc.
IF lv_subrc <>
'0'.
MESSAGE
'Error' TYPE
'S' DISPLAY LIKE
'E'.
LEAVE
LIST-PROCESSING.
STOP.
ENDIF.
ASSIGN
lo_table->* TO
.
CREATE DATA
go_pr_header LIKE
LINE OF
.
ASSIGN
go_pr_header->* TO
.
***************************************************************************
*PR Item Dynamic Table Field
Catelog
PERFORM frm_ddif_get_table
USING
lv_dest
'ZTJC001_DTL'
CHANGING
lo_table
lv_subrc.
IF lv_subrc <>
'0'.
MESSAGE
'Error' TYPE
'S' DISPLAY LIKE
'E'.
LEAVE
LIST-PROCESSING.
STOP.
ENDIF.
ASSIGN
lo_table->* TO
.
CREATE DATA
go_pr_item LIKE LINE
OF .
ASSIGN
go_pr_item->* TO
.
CALL FUNCTION
'ZRFC_SYNC_ZJC_PR' DESTINATION
lv_dest
IMPORTING
ev_success
= lv_success
TABLES
et_pr_header
=
et_pr_items
=
it_so_pr
=
s_banfn.
IF sy-subrc
<> 0 OR
lv_success <> abap_true
.
MESSAGE
'No Data' TYPE
'S' DISPLAY LIKE
'E'.
LEAVE
LIST-PROCESSING.
STOP.
ENDIF.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form
FRM_DDIF_GET_TABLE
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
*
-->P_LV_DEST text
* -->P_0039
text
*
<--P_DY_TABLE text
*
<--P_LV_SUBRC text
*----------------------------------------------------------------------*
FORM frm_ddif_get_table
USING
pv_dest
pv_table_name
CHANGING co_table
cv_subrc.
DATA: lt_table
LIKE TABLE OF
dntab,
ls_table TYPE
dntab,
lt_fcat TYPE lvc_t_fcat