Вы находитесь на странице: 1из 13

REPORT zsd_0530_load_pbclin_tbl

NO STANDARD PAGE HEADING


MESSAGE-ID zfi.
*--------------------------------------------------------------------------*
* Program name : ZSD_0530_LOAD_PBCLIN_TBL
*
* Transaction code : ?????????
*
* Specication ID: TS-SD-C-0530 Previously Billed by ACRN
*
* Author
: Widdy Shek copied from Louis Stein
*
* Date Written : 05/17/2007 (copied 7/3/08)
*
*--------------------------------------------------------------------------*
* Description : This program loads the ZSDPBCLIN table from an input
*
*
file of CORT data.
*
*
Based on LSMW load use by OWEGO (MS2 Copied from Aero)
*
* Transaction : ????????????
*
*--------------------------------------------------------------------------*
* Program History :
*
* Transport User
Date
Description
REL/VER*
* --------- ------------- ---------- -------------------------------------*
* DE1K901169 Louis Stein 05/17/2007 Initial Development
*
* DE1K901960 ESQUIPM
08/21/2007 Remove loop statement to allow
*
*
a straight modification to ztbl v001*
* --------- ------------- ---------- -------------------------------------*
*
Widdy Shek
07/03/2008 MS2 CFS copied from Aero
*
*--------------------------------------------------------------------------*
*----------------------------------------------------------------------*
*
Selection-Screen Options & Parameters
*
*----------------------------------------------------------------------*
*&At selection-screen on value-request for infile.
SELECTION-SCREEN BEGIN OF BLOCK system-opt
WITH FRAME
TITLE text-t01.
PARAMETERS:
p_legfil LIKE rlgrap-filename OBLIGATORY. "Source legacy filename
* p_year
TYPE gjahr,
"Year of legacy data
* p_hdrtxt TYPE bktxt.
"Header text
SELECTION-SCREEN END OF BLOCK system-opt.
SELECTION-SCREEN SKIP 1.
PARAMETERS: p_ser
p_loc

RADIOBUTTON GROUP r1,


RADIOBUTTON GROUP r1 DEFAULT 'X'.

SELECTION-SCREEN SKIP 1.
*----------------------------------------------------------------------*
*
Global Declarations Work Area
*
*----------------------------------------------------------------------*
DATA: w_infile(080).
PARAMETERS: testmode AS CHECKBOX DEFAULT 'X'.
*----------------------------------------------------------------------*
*
Types Work Area
*
*----------------------------------------------------------------------*
TYPES:
BEGIN OF input_rec,
rectype(004)
TYPE c,
deptcode(003)
TYPE c,
primereqnum(006)
TYPE c,

contractponum(022)
contractboacallnum(004)
seqnum(002)
filler(027)
END OF input_rec.
DATA: BEGIN OF pc_data OCCURS
detail(100) TYPE c,
*
rectype(004)
*
deptcode(003)
*
primereqnum(006)
*
contractponum(022)
*
contractboacallnum(004)
*
seqnum(002)
*
filler(200)
END OF pc_data.
DATA: in_rec
wa_in_rec

TYPE
TYPE
TYPE
TYPE

c,
c,
n,
c,

0,
TYPE
TYPE
TYPE
TYPE
TYPE
TYPE
TYPE

c,
c,
c,
c,
c,
c,
c,

TYPE string,
TYPE input_rec.

*----------------------------------------------------------------------*
*
Internal Tables Work Area
*
*----------------------------------------------------------------------*
TYPES:
BEGIN OF tp_acrntot,
rectype(004) TYPE c,
deptcode(003) TYPE c,
primereqnum(006) TYPE c,
contractponum(022) TYPE c,
contractboacallnum(004) TYPE c,
acrnseqnum(002) TYPE n,
acrnnum(002) TYPE c,
acrntot(012) TYPE n,
acrnstatuscode(001) TYPE c,
filler(012) TYPE c,
END OF tp_acrntot.
DATA: tbl_acrntot TYPE STANDARD TABLE OF tp_acrntot WITH HEADER LINE.
TYPES:
BEGIN OF tp_clinacrn,
rectype(004) TYPE c,
deptcode(003) TYPE c,
primereqnum(006) TYPE c,
contractponum(022) TYPE c,
contractboacallnum(004) TYPE c,
clinseqnum(002) TYPE n,
acrnseqnum(002) TYPE n,
clinitmnum(006) TYPE c,
slinitmnum(006) TYPE c,
acrnnum(002) TYPE c,
filler(011) TYPE c,
END OF tp_clinacrn.
DATA: tbl_clinacrn TYPE STANDARD TABLE OF tp_clinacrn WITH HEADER LINE.
TYPES:
BEGIN OF tp_clintot,
rectype(004) TYPE c,
deptcode(003) TYPE c,
primereqnum(006) TYPE c,
contractponum(022) TYPE c,
contractboacallnum(004) TYPE c,
clinseqnum(002) TYPE n,

clinitmnum(006) TYPE c,
slinitmnum(006) TYPE c,
clintot(012) TYPE c,
clinstatuscode(001) TYPE c,
filler(002) TYPE c,
END OF tp_clintot.
DATA: tbl_clintot TYPE STANDARD TABLE OF tp_clintot WITH HEADER LINE.
TYPES:
BEGIN OF tp_fmstot,
rectype(004) TYPE c,
deptcode(003) TYPE c,
primereqnum(006) TYPE c,
contractponum(022) TYPE c,
contractboacallnum(004) TYPE c,
fmsseqnum(002) TYPE n,
fmscountrycode(002) TYPE c,
fmstot(012) TYPE n,
filler(013) TYPE c,
END OF tp_fmstot.
DATA: tbl_fmstot TYPE STANDARD TABLE OF tp_fmstot WITH HEADER LINE.
TYPES: BEGIN OF tp_zsdpbclin.
INCLUDE STRUCTURE zsdpbclin.
TYPES: END OF tp_zsdpbclin.
DATA: tbl_zsdpbclin TYPE STANDARD TABLE OF tp_zsdpbclin
WITH HEADER LINE.
DATA: wa_zsdpbclin TYPE tp_zsdpbclin.
*----------------------------------------------------------------------*
*
Tables Work Area
*
*----------------------------------------------------------------------*
TABLES: zsdpbclin.
*----------------------------------------------------------------------*
*
Constants Work Area
*
*----------------------------------------------------------------------*
CONSTANTS: c_cc_5000
TYPE bukrs VALUE '5000',
"Company code 5000
c_cc_5403
TYPE bukrs VALUE '5403',
"Company code 5403
c_usd
TYPE waers VALUE 'USD',
"US Dollars
c_gl_acct
TYPE saknr VALUE '0099991000', "Offsetting Acct
c_rfbu_bus_act TYPE glvor VALUE 'RFBU',
c_doctype
TYPE blart VALUE 'ZZ'.
"Doc Type ZZ
*----------------------------------------------------------------------*
*
Variables Work Area
*
*----------------------------------------------------------------------*
* Counters
DATA:
read_cnt(5)
TYPE n,
cnt_failed(5)
TYPE n,
cnt_success(5)
TYPE n,
cnt_clin_input(5)
TYPE n,
cnt_clna_input(5)
TYPE n,
cnt_acrn_input(5)
TYPE n,
cnt_fms_input(5)
TYPE n,
cnt_cln_orig(5)
TYPE n,
cnt_acrn_orig(5)
TYPE n,
cnt_clna_orig(5)
TYPE n,
cnt_fms_orig(5)
TYPE n,
cnt_cln_only(5)
TYPE n,
cnt_clna_only(5)
TYPE n,

cnt_acrn_only(5)
cnt_fms_only(5)
cnt_clna(5)
cnt_acrn(5)
cnt_clin(5)
cnt_fms(5)
cnt_temp_ztbl(5)
cnt_actual_zsdpbclin(5)
cnt_ztbl_clna_rec(5)
cnt_ztbl_clin_rec(5)
cnt_ztbl_acrn_rec(5)
cnt_ztbl_fms_rec(5)
cnt_ztbl_append_rec(5)
cnt_ztbl_load_rec(5)
cnt_clna_cln_delete(5)
cnt_clna_acrn_delete(5)
cnt_clna_acrn_cln_delete(5)

TYPE
TYPE
TYPE
TYPE
TYPE
TYPE
TYPE
TYPE
TYPE
TYPE
TYPE
TYPE
TYPE
TYPE
TYPE
TYPE
TYPE

n,
n,
n,
n,
n,
n,
n,
n,
n,
n,
n,
n,
n,
n,
n,
n,
n.

* Variables
DATA:
v_errmsg(128),
v_amount(13),
v_clintabix LIKE sy-tabix,
v_acrntabix LIKE sy-tabix,
v_clnamismatch,
v_lin
LIKE sy-tabix.

"v001

*INCLUDE ZSDRAERO_0525_PREVIOUS_BILLTOP.
*----------------------------------------------------------------------*
*
At Selection-Screen
*
*----------------------------------------------------------------------*
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_legfil.
PERFORM get_local_filename USING p_legfil.
* CALL FUNCTION '/SAPDMC/LSM_F4_SERVER_FILE'
*
EXPORTING
*
directory
= '/AERO'
"UNIX directory
**
directory
= 'd:\data\steinl\My Documents\SAP\Build Tasks\TS-0530_
task'
*
IMPORTING
*
serverfile
= p_legfil
"File name
*
EXCEPTIONS
*
canceled_by_user = 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.
*----------------------------------------------------------------------*
*
Start-of-Selection
*
*----------------------------------------------------------------------*
START-OF-SELECTION.
* Initialization and Prep
PERFORM init_and_prep.
PERFORM read_dataset.
PERFORM sort_tables.

PERFORM loop_tables.
PERFORM load_zsdpbclin_table.
END-OF-SELECTION.

*&---------------------------------------------------------------------*
*&
Form read_dataset
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
FORM read_dataset.
IF p_loc IS INITIAL.
* Read Input file from UNIX server
PERFORM open_input_file.
PERFORM input_file_processing.
PERFORM close_input_file.
ELSE.
PERFORM pc_file.
PERFORM pc_file_processing.
ENDIF.
ENDFORM.

"read_dataset

*&---------------------------------------------------------------------*
*&
Form pc_file
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
FORM pc_file.
DATA: f_filen TYPE string.
f_filen = p_legfil.
REFRESH pc_data.
CALL FUNCTION 'GUI_UPLOAD'
EXPORTING
filename
filetype
TABLES
data_tab
EXCEPTIONS
file_open_error
file_read_error
no_batch
gui_refuse_filetransfer
invalid_type
no_authority
unknown_error
bad_data_format
header_not_allowed
separator_not_allowed
header_too_long
unknown_dp_error
access_denied

= f_filen
= 'DAT'
= pc_data
=
=
=
=
=
=
=
=
=
=
=
=
=

1
2
3
4
5
6
7
8
9
10
11
12
13

dp_out_of_memory
=
disk_full
=
dp_timeout
=
OTHERS
=
IF sy-subrc <> 0.
MESSAGE e000 WITH text-902.
ENDIF.

ENDFORM.

14
15
16
17.
"Error upload File.

"read_dataset

*&---------------------------------------------------------------------*
*&
Form pc_file_processing
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
FORM pc_file_processing.
LOOP AT pc_data.
read_cnt = read_cnt + 1.
wa_in_rec = pc_data.
IF wa_in_rec-rectype
= 'CLNA'.
APPEND wa_in_rec TO tbl_clinacrn.
cnt_clna_input = cnt_clna_input + 1.
ELSEIF wa_in_rec-rectype = 'CLN '.
APPEND wa_in_rec TO tbl_clintot.
cnt_clin_input = cnt_clin_input + 1.
ELSEIF wa_in_rec-rectype = 'ACRN'.
APPEND wa_in_rec TO tbl_acrntot.
cnt_acrn_input = cnt_acrn_input + 1.
ELSEIF wa_in_rec-rectype = 'FMS '.
APPEND wa_in_rec TO tbl_fmstot.
cnt_fms_input = cnt_fms_input + 1.
ENDIF.
ENDLOOP.
ENDFORM.
"pc_file_processing
*----------------------------------------------------------------------*
*
FORM Init_And_Prep
*
*----------------------------------------------------------------------*
FORM init_and_prep.
PERFORM clear_source_tables.
ENDFORM.

"Init_And_Prep

*----------------------------------------------------------------------*
*
FORM Open_Input_File
*
*----------------------------------------------------------------------*
FORM open_input_file.
OPEN DATASET p_legfil FOR INPUT IN TEXT MODE ENCODING DEFAULT.
IF sy-subrc = 0.
ELSE.
WRITE:/ 'Unable to Open Input File'.
STOP.
ENDIF.

ENDFORM.

"OPEN_INPUT_FILE

*----------------------------------------------------------------------*
*
FORM Close_Input_File
*
*----------------------------------------------------------------------*
FORM close_input_file.
CLOSE DATASET: p_legfil.
ENDFORM.
"CLOSE_INPUT_FILE
*----------------------------------------------------------------------*
*
FORM Input_File_Processing
*
*----------------------------------------------------------------------*
FORM input_file_processing.
READ DATASET p_legfil INTO in_rec.
WHILE sy-subrc = 0.
read_cnt = read_cnt + 1.
wa_in_rec = in_rec.
IF wa_in_rec-rectype
= 'CLNA'.
APPEND wa_in_rec TO tbl_clinacrn.
cnt_clna_input = cnt_clna_input + 1.
ELSEIF wa_in_rec-rectype = 'CLN '.
APPEND wa_in_rec TO tbl_clintot.
cnt_clin_input = cnt_clin_input + 1.
ELSEIF wa_in_rec-rectype = 'ACRN'.
APPEND wa_in_rec TO tbl_acrntot.
cnt_acrn_input = cnt_acrn_input + 1.
ELSEIF wa_in_rec-rectype = 'FMS '.
APPEND wa_in_rec TO tbl_fmstot.
cnt_fms_input = cnt_fms_input + 1.
ENDIF.
READ DATASET p_legfil INTO in_rec.
ENDWHILE.
ENDFORM.

"INPUT_FILE_PROCESSING

*----------------------------------------------------------------------*
*
FORM Sort_Tables
*
*----------------------------------------------------------------------*
FORM sort_tables.
SORT tbl_clintot BY rectype
deptcode
primereqnum
contractponum
contractboacallnum
clinseqnum.
SORT tbl_acrntot BY rectype
deptcode
primereqnum
contractponum
contractboacallnum
acrnseqnum.
* Get the starting total number of CLN records
DESCRIBE TABLE tbl_clintot LINES cnt_cln_orig.
* Get the starting total number of ACRN records

DESCRIBE TABLE tbl_acrntot LINES cnt_acrn_orig.


* Get the starting total number of CLNA records
DESCRIBE TABLE tbl_clinacrn LINES cnt_clna_orig.
* Get the starting total number of FMS records
DESCRIBE TABLE tbl_fmstot LINES cnt_fms_orig.
ENDFORM.
"SORT_TABLES
*----------------------------------------------------------------------*
*
Loop through Internal tables to load internal SDPBCLIN table
*
*----------------------------------------------------------------------*
FORM loop_tables.
LOOP AT tbl_clinacrn.
CLEAR: tbl_clintot, v_clintabix.
READ TABLE tbl_clintot WITH KEY
rectype = 'CLN '
deptcode = tbl_clinacrn-deptcode
primereqnum = tbl_clinacrn-primereqnum
contractponum = tbl_clinacrn-contractponum
contractboacallnum = tbl_clinacrn-contractboacallnum
clinseqnum = tbl_clinacrn-clinseqnum
BINARY SEARCH.
v_clintabix = sy-tabix.
IF sy-subrc NE 0.
v_clnamismatch = 'X'.
FORMAT COLOR 6.
WRITE:/ 'No CLIN record found for CLNA record'.
CONCATENATE tbl_clinacrn-rectype
tbl_clinacrn-deptcode
tbl_clinacrn-primereqnum
tbl_clinacrn-contractponum
tbl_clinacrn-contractboacallnum
tbl_clinacrn-clinseqnum
INTO v_errmsg SEPARATED BY space.
WRITE:/ v_errmsg.
FORMAT RESET.
CONTINUE.
ENDIF.
CLEAR: tbl_acrntot, v_acrntabix.
READ TABLE tbl_acrntot WITH KEY
rectype = 'ACRN'
deptcode = tbl_clinacrn-deptcode
primereqnum = tbl_clinacrn-primereqnum
contractponum = tbl_clinacrn-contractponum
contractboacallnum = tbl_clinacrn-contractboacallnum
acrnseqnum = tbl_clinacrn-acrnseqnum
BINARY SEARCH.
v_acrntabix = sy-tabix.
IF sy-subrc NE 0.
v_clnamismatch = 'X'.
FORMAT COLOR 6.
WRITE:/ 'No ACRN record found for CLNA record'.
CONCATENATE tbl_clinacrn-rectype
tbl_clinacrn-deptcode
tbl_clinacrn-primereqnum
tbl_clinacrn-contractponum
tbl_clinacrn-contractboacallnum
tbl_clinacrn-clinseqnum
INTO v_errmsg SEPARATED BY space.
WRITE:/ v_errmsg.
FORMAT RESET.
CONTINUE.

ENDIF.
* Append the CLINACRN records to the temp table that is used to
* update the ZSDPBCLIN table
PERFORM append_clna_recs.
* Mark this tbl_clintot record for later deletion
tbl_clintot-clintot = 'XXXXXXXXXXXX'.
MODIFY tbl_clintot INDEX v_clintabix.
DELETE tbl_acrntot INDEX v_acrntabix.
cnt_clna_acrn_delete = cnt_clna_acrn_delete + 1.
ENDLOOP.
* Delete those tbl_clintot recs that were marked with x's in their clintot field
s
LOOP AT tbl_clintot WHERE clintot = 'XXXXXXXXXXXX'.
DELETE tbl_clintot INDEX sy-tabix.
cnt_clna_acrn_cln_delete = cnt_clna_cln_delete + 1.
ENDLOOP.
* Append the CLIN records to the table that will update the ZSDPBCLIN table
LOOP AT tbl_clintot.
PERFORM append_clin_recs.
cnt_cln_only = cnt_cln_only + 1.
ENDLOOP.
* Append the ACRN records to the table that will update the ZSDPBCLIN table
LOOP AT tbl_acrntot.
PERFORM append_acrn_recs.
cnt_acrn_only = cnt_acrn_only + 1.
ENDLOOP.
* Append the FMS records to the table that will update the ZSDPBCLIN table
LOOP AT tbl_fmstot.
PERFORM append_fms_recs.
cnt_fms_only = cnt_fms_only + 1.
ENDLOOP.
IF testmode EQ space.
IF v_clnamismatch EQ space.
LOOP AT tbl_zsdpbclin.
tbl_zsdpbclin-mandt = sy-mandt.
MODIFY zsdpbclin FROM tbl_zsdpbclin.
IF sy-subrc NE 0.
CONCATENATE 'Modify failed for' tbl_zsdpbclin+0(107)
INTO v_errmsg SEPARATED BY space.
FORMAT COLOR 6.
WRITE:/ v_errmsg.
FORMAT RESET.
cnt_failed = cnt_failed + 1.
ELSE.
cnt_success = cnt_success + 1.
ENDIF.
ENDLOOP.
WRITE:/ 'Successful Modifications:',
cnt_success.
WRITE:/ 'Failed Modifications:',
cnt_failed.
ELSE.
ULINE.

FORMAT COLOR 6.
WRITE:/ 'CLNA Mismatch - NO RECORDS LOADED'.
FORMAT RESET.
ULINE.
EXIT.
ENDIF.
ELSEIF testmode EQ 'X'.
FORMAT COLOR 2.
WRITE:/ 'Program running in TESTMODE. No Records Loaded'.
FORMAT RESET.
ENDIF.
* Get the finish total number of the temp ZSDPBCLIN table
DESCRIBE TABLE tbl_zsdpbclin LINES cnt_temp_ztbl.
FORMAT COLOR 1.
WRITE:/ '==========================================================='.
WRITE:/ '== Input Record Counts =================================='.
WRITE:/ 'CLNA Input Record Total:', cnt_clna_input.
WRITE:/ 'CLIN Input Record Total:', cnt_clin_input.
WRITE:/ 'ACRN Input Record Total:', cnt_acrn_input.
WRITE:/ 'FMS Input Record Total:', cnt_fms_input.
FORMAT COLOR 2.
WRITE:/ '==========================================================='.
WRITE:/ '== Original Table Record Counts ========================='.
WRITE:/ 'Original CLNA Record Total:', cnt_clna_orig.
WRITE:/ 'Original CLN Record Total:', cnt_cln_orig.
WRITE:/ 'Original ACRN Record Total:', cnt_acrn_orig.
WRITE:/ 'Original FMS Record Total:', cnt_fms_orig.
WRITE:/ '==========================================================='.
WRITE:/ '== Table Record Delete Counts ==========================='.
WRITE:/ 'CLN Records Deleted because CLIN-ACRN:', cnt_clna_cln_delete.
WRITE:/ 'ACRN Records Deleted because CLIN-ACRN:', cnt_clna_acrn_delete.
FORMAT COLOR 4.
WRITE:/ '==========================================================='.
WRITE:/ '== ZSDPBCLIN Temp Table Record Counts ===================='.
WRITE:/ 'CLNA Record Append Total for Temp ZSDPBCLIN:', cnt_ztbl_clna_rec.
WRITE:/ 'CLIN Record Append Total for Temp ZSDPBCLIN:', cnt_ztbl_clin_rec.
WRITE:/ 'ACRN Record Append Total for Temp ZSDPBCLIN:', cnt_ztbl_acrn_rec.
WRITE:/ 'FMS Record Append Total for Temp ZSDPBCLIN:', cnt_ztbl_fms_rec.
WRITE:/ 'CLNA Record Total for Temp ZSDPBCLIN:', cnt_clna.
WRITE:/ 'FMS Record Total for Temp ZSDPBCLIN:', cnt_fms.
WRITE:/ 'CLIN-only Record Total for Temp ZSDPBCLIN:', cnt_cln_only.
WRITE:/ 'ACRN-only Record Total for Temp ZSDPBCLIN:', cnt_acrn_only.
WRITE:/ 'FMS-only Record Total for Temp ZSDPBCLIN:', cnt_fms_only.
WRITE:/ '==========================================================='.
WRITE:/ 'Temp ztbl row count:', cnt_temp_ztbl.
FORMAT RESET.
ENDFORM.
"Loop_Tables
*----------------------------------------------------------------------*
* Loop through the temp ZSDPBCLIN table and load the records
*
* into the ZSDPBCLIN Z_table.
*
*----------------------------------------------------------------------*
FORM load_zsdpbclin_table.
* BEGIN OF INSERT V001
DESCRIBE TABLE tbl_zsdpbclin LINES v_lin.
IF NOT tbl_zsdpbclin[] IS INITIAL.
MODIFY zsdpbclin FROM TABLE tbl_zsdpbclin.

IF sy-subrc NE 0.
WRITE:/ text-u84.
ELSE.
cnt_ztbl_load_rec = v_lin.
ENDIF.
ELSE.
WRITE:/ text-u83.
ENDIF.
* END OF INSERT V001
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*

BEGIN OF DELETE V001


LOOP AT tbl_zsdpbclin INTO zsdpbclin.
IF sy-subrc = 0.
wa_zsdpbclin = tbl_zsdpbclin.
MODIFY zsdpbclin FROM TABLE tbl_zsdpbclin.
IF sy-subrc = 0.
cnt_ztbl_load_rec = cnt_ztbl_load_rec + 1.
ELSE.
CONCATENATE tbl_zsdpbclin-bstkd
tbl_zsdpbclin-zz_cust_orderno
tbl_zsdpbclin-zz_clinslin
tbl_zsdpbclin-zz_elin
tbl_zsdpbclin-zz_acrn
tbl_zsdpbclin-zz_fmscc
tbl_zsdpbclin-zz_clinslin_seq
tbl_zsdpbclin-zz_acrn_seq
INTO v_errmsg SEPARATED BY space.
WRITE:/ v_errmsg.
ENDIF.
ELSE.
WRITE:/ 'ZSDPBCLIN Load Error'.
ENDIF.
ENDLOOP.
END OF DELETE V001

WRITE:/
WRITE:/
WRITE:/
WRITE:/
ENDFORM.

'==========================================================='.
'== ZSDPBCLIN Table Record Counts ========================='.
'ZSDPBCLIN Records Loaded:', cnt_ztbl_load_rec.
'ZSDPBCLIN Records Appended:', cnt_ztbl_append_rec.
"Load_ZSDPBCLIN_Table

*&--------------------------------------------------*& Form clear_source_tables


*&--------------------------------------------------FORM clear_source_tables.
* CLEAR in_rec[].
CLEAR tbl_clintot[].
CLEAR tbl_acrntot[].
CLEAR tbl_fmstot[].
CLEAR tbl_clinacrn[].
DELETE zsdpbclin.
ENDFORM.

"clear_source_tables

*&--------------------------------------------------*& Form -- ABAP subprograms


*&
Load the ZSDPBCLIN table using the

*&
internal tables
*&--------------------------------------------------*& CLNA Table
*&--------------------------------------------------FORM append_clna_recs.
CLEAR tbl_zsdpbclin.
tbl_zsdpbclin-prodcode
= tbl_clinacrn-primereqnum.
tbl_zsdpbclin-bstkd
= tbl_clinacrn-contractponum.
tbl_zsdpbclin-zz_cust_orderno = tbl_clinacrn-contractboacallnum.
tbl_zsdpbclin-zz_clinslin
= tbl_clinacrn-clinitmnum.
tbl_zsdpbclin-zz_clinslin_seq = tbl_clinacrn-clinseqnum.
tbl_zsdpbclin-zz_elin
= tbl_clinacrn-slinitmnum.
tbl_zsdpbclin-zz_acrn
= tbl_acrntot-acrnnum.
tbl_zsdpbclin-zz_acrn_seq
= tbl_acrntot-acrnseqnum.
CONCATENATE tbl_acrntot-acrntot+0(9) '.'
tbl_acrntot-acrntot+9(3) INTO v_amount.
tbl_zsdpbclin-zz_btd
= v_amount.
APPEND tbl_zsdpbclin.
cnt_ztbl_clna_rec = cnt_ztbl_clna_rec + 1.
* WRITE:/ 'CLNA -- tbl_zsdpbclin:', tbl_zsdpbclin(113).
ENDFORM.

"append_clna_recs

*&--------------------------------------------------*& CLIN Table


*&--------------------------------------------------FORM append_clin_recs.
CLEAR tbl_zsdpbclin.
tbl_zsdpbclin-prodcode
= tbl_clintot-primereqnum.
tbl_zsdpbclin-bstkd
= tbl_clintot-contractponum.
tbl_zsdpbclin-zz_cust_orderno = tbl_clintot-contractboacallnum.
tbl_zsdpbclin-zz_clinslin
= tbl_clintot-clinitmnum.
tbl_zsdpbclin-zz_clinslin_seq = tbl_clintot-clinseqnum.
tbl_zsdpbclin-zz_elin
= tbl_clintot-slinitmnum.
CONCATENATE tbl_clintot-clintot+0(9) '.'
tbl_clintot-clintot+9(3) INTO v_amount.
tbl_zsdpbclin-zz_btd
= v_amount.
APPEND tbl_zsdpbclin.
cnt_ztbl_clin_rec = cnt_ztbl_clin_rec + 1.
* WRITE:/ 'CLIN -- tbl_zsdpbclin:', tbl_zsdpbclin(113).
ENDFORM.

"append_clin_recs

*&--------------------------------------------------*& ACRN Table


*&--------------------------------------------------FORM append_acrn_recs.
CLEAR tbl_zsdpbclin.
tbl_zsdpbclin-prodcode
= tbl_acrntot-primereqnum.
tbl_zsdpbclin-bstkd
= tbl_acrntot-contractponum.
tbl_zsdpbclin-zz_cust_orderno = tbl_acrntot-contractboacallnum.
tbl_zsdpbclin-zz_acrn
= tbl_acrntot-acrnnum.
tbl_zsdpbclin-zz_acrn_seq
= tbl_acrntot-acrnseqnum.
CONCATENATE tbl_acrntot-acrntot+0(9) '.'
tbl_acrntot-acrntot+9(3) INTO v_amount.

tbl_zsdpbclin-zz_btd
= v_amount.
APPEND tbl_zsdpbclin.
cnt_ztbl_acrn_rec = cnt_ztbl_acrn_rec + 1.
* WRITE:/ 'ACRN -- tbl_zsdpbclin:', tbl_zsdpbclin(113).
ENDFORM.

"append_acrn_recs

*&--------------------------------------------------*& FMS Table


*&--------------------------------------------------FORM append_fms_recs.
CLEAR tbl_zsdpbclin.
tbl_zsdpbclin-prodcode
= tbl_fmstot-primereqnum.
tbl_zsdpbclin-bstkd
= tbl_fmstot-contractponum.
tbl_zsdpbclin-zz_cust_orderno = tbl_fmstot-contractboacallnum.
tbl_zsdpbclin-zz_fmscc
= tbl_fmstot-fmscountrycode.
tbl_zsdpbclin-zz_fms_seq
= tbl_fmstot-fmsseqnum.
CONCATENATE tbl_fmstot-fmstot+0(9) '.'
tbl_fmstot-fmstot+9(3) INTO v_amount.
tbl_zsdpbclin-zz_btd
= v_amount.
APPEND tbl_zsdpbclin.
cnt_ztbl_fms_rec = cnt_ztbl_fms_rec + 1.
* WRITE:/ 'FMS -- tbl_zsdpbclin:', tbl_zsdpbclin(113).
ENDFORM.

"append_fms_recs

*&---------------------------------------------------------------------*
*&
Form get_local_filename
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
*
-->L_FILE
text
*----------------------------------------------------------------------*
FORM get_local_filename USING l_file LIKE rlgrap-filename.
CALL FUNCTION 'WS_FILENAME_GET'
EXPORTING
def_filename
= ' '
def_path
= 'C:\'
mask
= ',*.*,*.*.'
mode
= 'O'
IMPORTING
filename
= l_file
EXCEPTIONS
inv_winsys
= 1
no_batch
= 2
selection_cancel = 3
selection_error = 4
OTHERS
= 5.
ENDFORM.

" get_local_filename

Вам также может понравиться