Professional Documents
Culture Documents
Zmmi Send Po To Onbase
Zmmi Send Po To Onbase
TABLES ekko.
INCLUDE zmmi_send_po_to_onbase_top.
*INCLUDE zmmi_send_po_to_onbase_sel.
SELECTION-SCREEN BEGIN OF BLOCK select WITH FRAME TITLE text-s02.
AT SELECTION-SCREEN OUTPUT.
IF p_nrml EQ c_x.
LOOP AT SCREEN.
IF screen-name EQ 'S_EBELN-LOW' OR
screen-name EQ 'S_EBELN-HIGH'.
screen-input = '0'.
MODIFY SCREEN.
ENDIF.
ENDLOOP.
ELSEIF p_sel EQ c_x.
LOOP AT SCREEN.
IF screen-name EQ 'S_EBELN-LOW' OR
screen-name EQ 'S_EBELN-HIGH'.
screen-input = '1'.
MODIFY SCREEN.
ENDIF.
ENDLOOP.
ENDIF.
*-------------------------------------------------------------------------------*
START-OF-SELECTION.
*-------------------------------------------------------------------------------*
*get the POs that need to be sent to Onbase from the table ZMM_PO_TO_ONBASE
PERFORM get_po_docs.
PERFORM fill_file.
*-------------------------------------------------------------------------------*
END-OF-SELECTION.
*-------------------------------------------------------------------------------*
CLEAR: l_i_path,
l_path.
CLEAR l_path.
CALL FUNCTION 'RFC_SYSTEM_INFO'
IMPORTING
rfcsi_export = l_rfcsi_export.
l_ser_name = l_rfcsi_export-rfcdest.
it_dynp-fieldname = fld_name.
APPEND it_dynp.
IF sy-subrc = 0.
READ TABLE it_dynp INDEX 1.
p_apfile = it_dynp-fieldvalue.
IF sy-subrc EQ 0.
SORT git_po_header_data BY ebeln.
ENDIF.
*----------------------------------------------------------------------------------
------*
*__{Begin of WO#226892
*__Delete the lines of po line item based on del/block indicator
DELETE git_po_item_data WHERE loekz EQ c_del OR loekz EQ c_block.
*__After filtering from line item, if all the lines items in a PO is block/lock
*__ then there will be no line for that po in line item table, similarly those
*__po are not required in header table also.Now we will filter the header table
*__{Start of WO#57083
SELECT ebeln ebelp sakto kostl anln1 aufnr wempf ps_psp_pnr kokrs FROM ekkn
"Adding of wempf
INTO CORRESPONDING FIELDS OF TABLE git_po_acc_data
FOR ALL ENTRIES IN git_po_header_data
WHERE ebeln = git_po_header_data-ebeln.
*__}End of WO#57083
IF sy-subrc EQ 0.
SORT git_po_acc_data BY ebeln ebelp.
LOOP AT git_po_acc_data ASSIGNING <lfs_acc_data>.
ENDLOOP.
ENDIF.
IF sy-subrc EQ 0.
SORT git_po_deli_data BY ebeln ebelp.
ENDIF.
ENDIF.
git_send_po_data-multi_cc_flg = c_x.
EXIT.
ENDIF.
ENDLOOP.
ENDIF.
ENDLOOP.
MOVE : gwa_po_header_data-ebeln TO git_tot_val-ebeln,
l_no_item TO git_tot_val-tot_items,
l_tot_net TO git_tot_val-tot_net,
l_tot_tax TO git_tot_val-tot_tax,
l_tot_po TO git_tot_val-tot_po.
APPEND git_tot_val.
CLEAR : git_tot_val,
l_no_item.
ENDLOOP.
CLEAR : git_po_header_data,
git_po_item_data,
git_send_po_data,
git_po_acc_data,
git_po_deli_data,
git_po_to_onbase,
gwa_po_to_onbase,
gwa_po_header_data,
gwa_po_item_data,
gwa_po_acc_data,
gwa_po_deli_data,
git_file,
git_cc2pcg_onbase,
gwa_cc2pcg_onbase,
git_tax_onbase,
gwa_tax_onbase,
gwa_t001, "WO#404970
gwa_tvarvc. "WO#404970
* git_pcg_2_pc.
REFRESH:git_po_header_data,
git_po_item_data,
git_send_po_data,
git_po_acc_data,
git_po_deli_data,
git_po_to_onbase,
git_file,
git_cc2pcg_onbase,
git_tax_onbase,
git_t001, "WO#404970
git_tvarvc. "WO#404970
* git_pcg_2_pc.
IF p_nrml EQ c_x.
SELECT * FROM zmm_po_to_onbase INTO TABLE git_po_to_onbase
WHERE status EQ c_space.
ENDIF.
*
* DATA: lit_fwste TYPE STANDARD TABLE OF rtax1u15.
*
* REFRESH lit_fwste.
* CLEAR lit_fwste.
l_name = p_ebeln.
IF sy-subrc EQ 0.
LOOP AT lit_tline.
CONCATENATE p_hrtxt lit_tline-tdline INTO p_hrtxt.
ENDLOOP.
ENDIF.
LOOP AT git_send_po_data.
*__Begin of {WO#115440
*__ We will be getting the total number of lines in the final table
DESCRIBE TABLE git_send_po_data LINES lv_po_tot_lines.
*__Calculating the curent line item uased and adding 1 to get the next lines for
*__ further getting the tax lines
lv_po_lines = sy-tabix.
IF lv_po_lines LT lv_po_tot_lines.
lv_po_lines_n = lv_po_lines + 1.
ENDIF.
*__End of {WO#115440
APPEND git_file.
l_no_lines = l_no_lines + 1.
CLEAR git_file.
APPEND git_file. l_no_lines = l_no_lines + 1.
IF l_tax_flg EQ c_x.
MOVE c_yes TO git_file+50(20).
ELSE.
MOVE c_no TO git_file+50(20).
ENDIF.
IF git_send_po_data-waers EQ 'USDN'.
CLEAR l_amt.
l_amt = git_tot_val-tot_po / 1000.
WRITE : l_amt TO git_file+16(19) LEFT-JUSTIFIED,
git_send_po_data-waers TO git_file+12(4) LEFT-JUSTIFIED,
git_send_po_data-ernam TO git_file+83(65) LEFT-JUSTIFIED.
*WO#257811
*BOC NAIKP 04/24/2013
* ELSEIF git_send_po_data-waers EQ 'JPY'.
"WO#131467
ELSEIF git_send_po_data-waers EQ 'JPY' OR "WO#131467
git_send_po_data-waers EQ 'KRW'. "WO#131467
CLEAR l_amt1.
l_amt1 = git_tot_val-tot_po * 100.
WRITE : l_amt1 TO git_file+16(19) LEFT-JUSTIFIED,
git_send_po_data-waers TO git_file+12(4) LEFT-JUSTIFIED,
git_send_po_data-ernam TO git_file+83(65) LEFT-JUSTIFIED.
*EOC NAIKP 04/24/2013
ELSE.
WRITE : git_tot_val-tot_po TO git_file+16(19) LEFT-JUSTIFIED,
git_send_po_data-waers TO git_file+12(4) LEFT-JUSTIFIED,
git_send_po_data-ernam TO git_file+83(65) LEFT-JUSTIFIED.
ENDIF.
APPEND git_file. l_no_lines = l_no_lines + 1.
CLEAR git_file.
LOOP AT git_po_item_data INTO gwa_po_item_data WHERE ebeln =
git_send_po_data-ebeln.
IF gwa_po_item_data-matkl EQ 'PCH200252' OR gwa_po_item_data-matkl EQ
'PCH200253' OR
gwa_po_item_data-matkl EQ 'PCH300014' OR gwa_po_item_data-matkl EQ
'PCH300015'.
l_it_flg = c_x.
EXIT.
ENDIF.
ENDLOOP.
MOVE text-f23 TO git_file+35(15).
IF l_it_flg EQ c_x.
MOVE c_yes TO git_file+50(20).
ELSE.
MOVE c_no TO git_file+50(20).
ENDIF.
APPEND git_file. l_no_lines = l_no_lines + 1.
ENDIF.
MOVE : text-f03 TO git_file(12),
text-f17 TO git_file+35(15),
text-f20 TO git_file+70(12),
git_send_po_data-lifnr TO git_file+12(23),
git_send_po_data-name1 TO git_file+83(65).
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT'
EXPORTING
input = git_file+12(10)
IMPORTING
output = git_file+12(10).
SELECT SINGLE text1 FROM t052u INTO l_pyt_txt WHERE spras EQ 'E' AND zterm
EQ git_send_po_data-zterm.
IF l_pyt_txt IS NOT INITIAL.
CONCATENATE git_send_po_data-zterm l_pyt_txt INTO git_file+50(20)
SEPARATED BY ' - '.
ELSE.
MOVE git_send_po_data-zterm TO git_file+50(20).
ENDIF.
APPEND git_file. l_no_lines = l_no_lines + 1.
CLEAR git_file.
APPEND git_file. l_no_lines = l_no_lines + 1.
*first find the how many entries are there in the table zmm_cc2pcg_onbas for the
given company code
* LOOP AT git_cc2pcg_onbase INTO gwa_cc2pcg_onbase WHERE bukrs =
git_send_po_data-bukrs.
* MOVE gwa_cc2pcg_onbase TO lwa_cc2pcg_onbase.
* APPEND lwa_cc2pcg_onbase TO lit_cc2pcg_onbase.
* ENDLOOP. "Commented by CHHABRAT - 07/30/2012 - TK 196479
ELSEIF l_cc2pcg EQ 0.
MOVE git_send_po_data-bukrs TO git_file+14(23).
PERFORM get_cc_txt USING git_send_po_data-bukrs
CHANGING l_cc_txt.
MOVE l_cc_txt TO git_file+83(65).
ENDIF.
IF l_hdr_flg EQ c_x.
CLEAR l_hdr_flg.
ENDIF.
ENDIF.
l_uebto = git_send_po_data-uebto.
l_tax_% = ( git_send_po_data-tax_val / git_send_po_data-netwr ) * 100.
WRITE : l_tax_% TO l_tax_perc LEFT-JUSTIFIED.
* MOVE : git_send_po_data-matkl TO git_file+4(9),
* git_send_po_data-meins TO git_file+55(3),
* git_send_po_data-mwskz TO git_file+61(2),
* git_send_po_data-uebto TO git_file+84(3).
IF git_send_po_data-bsart EQ c_zb.
WRITE : git_send_po_data-matkl TO git_file+4(12) RIGHT-JUSTIFIED.
SELECT SINGLE wgbez FROM t023t INTO l_matkl_txt WHERE spras = 'E' AND
matkl = git_send_po_data-matkl.
WRITE : l_matkl_txt TO git_file+17(29) LEFT-JUSTIFIED.
ELSEIF git_send_po_data-bsart EQ c_za.
WRITE : git_send_po_data-anln1 TO git_file+4(12) RIGHT-JUSTIFIED.
SELECT SINGLE anlhtxt FROM anlh INTO l_anln1_txt WHERE bukrs =
git_send_po_data-bukrs AND anln1 = git_send_po_data-anln1.
WRITE : l_anln1_txt TO git_file+17(29) LEFT-JUSTIFIED.
ENDIF.
WRITE: l_gl_txt TO git_file+62(23) LEFT-JUSTIFIED,
git_send_po_data-mwskz TO git_file+85(3) CENTERED.
*{Begin of WO#57083
*__ Pass the collected location from line item to file
WRITE: git_send_po_data-wempf TO git_file+92(10) LEFT-JUSTIFIED.
*}End of WO#57083
*{Begin of WO#18220
*__ Pass the collected project Id from line item to file
WRITE: git_send_po_data-bednr TO git_file+110(10) LEFT-JUSTIFIED.
APPEND git_file. l_no_lines = l_no_lines + 1.
CLEAR : git_file.
*}End of WO#18220
*__ delete the records which are not match with line item
DELETE git_taxes WHERE kposn+1(5) NE git_send_po_data-ebelp.
*__ Sort and delete the duplicate lines
SORT git_taxes BY kposn stunr.
DELETE ADJACENT DUPLICATES FROM git_taxes.
*__ filter the table by removing the base amount
DELETE git_taxes WHERE kntyp EQ lc_k.
DELETE git_taxes WHERE kntyp EQ lc_base.
*__ Delete 0 amount tax records
DELETE git_taxes WHERE kbetr EQ 0.
*__ Get the condition type description
IF git_taxes[] IS NOT INITIAL.
SELECT *
FROM t685t
INTO
TABLE git_t685t
FOR
ALL ENTRIES IN git_taxes
WHERE spras = sy-langu
AND kvewe = lc_a
AND kappl = git_taxes-kappl
AND kschl = git_taxes-kschl.
ENDIF.
IF git_send_po_data-waers EQ 'USDN'.
CLEAR l_amt.
l_amt = git_tot_val-tot_net / 1000.
WRITE: l_amt TO git_file+125(18) RIGHT-JUSTIFIED.
CLEAR l_amt.
*WO#257811
*BOC NAIKP 04/24/2013
* ELSEIF git_send_po_data-waers EQ 'JPY'.
"WO#131467
ELSEIF git_send_po_data-waers EQ 'JPY' OR "WO#131467
git_send_po_data-waers EQ 'KRW'. "WO#131467
CLEAR l_amt1.
l_amt1 = git_tot_val-tot_net * 100.
WRITE: l_amt1 TO git_file+125(18) RIGHT-JUSTIFIED.
CLEAR l_amt1.
*EOC NAIKP 04/24/2013
ELSE.
WRITE : git_tot_val-tot_net TO l_tot_net LEFT-JUSTIFIED,
l_tot_net TO git_file+125(18) RIGHT-JUSTIFIED.
ENDIF.
APPEND git_file. l_no_lines = l_no_lines + 1.
CLEAR : git_file,
l_tot_net.
MOVE : text-f11 TO git_file+101(13).
CONCATENATE '(' git_send_po_data-waers ')' INTO git_file+118(7).
IF git_send_po_data-waers EQ 'USDN'.
CLEAR l_amt.
l_amt = git_tot_val-tot_tax / 1000.
WRITE: l_amt TO git_file+125(18) RIGHT-JUSTIFIED.
CLEAR l_amt.
*WO#257811
*BOC NAIKP 04/24/2013
** ELSEIF git_send_po_data-waers EQ 'JPY'.
" WO#131467
ELSEIF git_send_po_data-waers EQ 'JPY' OR " WO#131467
git_send_po_data-waers EQ 'KRW'. " WO#131467
CLEAR l_amt1.
l_amt1 = git_tot_val-tot_tax * 100.
WRITE: l_amt1 TO git_file+125(18) RIGHT-JUSTIFIED.
CLEAR l_amt1.
*EOC NAIKP 04/24/2013
*__{Begin of WO#131467
ELSE.
WRITE : git_tot_val-tot_tax TO l_tot_net LEFT-JUSTIFIED,
l_tot_net TO git_file+125(18) RIGHT-JUSTIFIED.
ENDIF.
APPEND git_file. l_no_lines = l_no_lines + 1.
CLEAR : git_file,
l_tot_net.
MOVE : text-f12 TO git_file+101(16).
CONCATENATE '(' git_send_po_data-waers ')' INTO git_file+118(7).
IF git_send_po_data-waers EQ 'USDN'.
CLEAR l_amt.
l_amt = git_tot_val-tot_po / 1000.
WRITE: l_amt TO git_file+125(18) RIGHT-JUSTIFIED.
CLEAR l_amt.
*WO#257811
*BOC NAIKP 04/24/2013
** ELSEIF git_send_po_data-waers EQ 'JPY'.
"WO#131467
ELSEIF git_send_po_data-waers EQ 'JPY' OR "WO#131467
git_send_po_data-waers EQ 'KRW'. "WO#131467
CLEAR l_amt1.
l_amt1 = git_tot_val-tot_po * 100.
WRITE: l_amt1 TO git_file+125(18) RIGHT-JUSTIFIED.
CLEAR l_amt1.
*EOC NAIKP 04/24/2013
ELSE.
WRITE : git_tot_val-tot_po TO l_tot_net LEFT-JUSTIFIED,
l_tot_net TO git_file+125(18) RIGHT-JUSTIFIED.
ENDIF.
APPEND git_file. l_no_lines = l_no_lines + 1.
CLEAR : git_file,
l_tot_net.
WHILE l_no_lines NE 49.
APPEND git_file. l_no_lines = l_no_lines + 1.
ENDWHILE.
CLEAR l_no_lines.
*_ Case 2:More then 1 record and we are displaying the same with total
-----------------*
ELSEIF lv_po_lines NE lv_po_lines_n.
*----------------------------------------------------------------------------------
--------*
* Case 2 contain 2 senario 1) if this record is last line item record for po as
there are multiple po
*__If the po last line item is there then display the total at the end.
IF git_tot_val-tot_items EQ l_lines_cnt .
WHILE l_no_lines NE 42.
APPEND git_file. l_no_lines = l_no_lines + 1.
ENDWHILE.
IF git_send_po_data-waers EQ 'USDN'.
CLEAR l_amt.
l_amt = git_tot_val-tot_net / 1000.
WRITE: l_amt TO git_file+125(18) RIGHT-JUSTIFIED.
CLEAR l_amt.
*WO#257811
*BOC NAIKP 04/24/2013
** ELSEIF git_send_po_data-waers EQ 'JPY'.
"WO#131467
ELSEIF git_send_po_data-waers EQ 'JPY' OR "WO#131467
git_send_po_data-waers EQ 'KRW'. "WO#131467
CLEAR l_amt1.
l_amt1 = git_tot_val-tot_net * 100.
WRITE: l_amt1 TO git_file+125(18) RIGHT-JUSTIFIED.
CLEAR l_amt1.
*EOC NAIKP 04/24/2013
ELSE.
WRITE : git_tot_val-tot_net TO l_tot_net LEFT-JUSTIFIED,
l_tot_net TO git_file+125(18) RIGHT-JUSTIFIED.
ENDIF.
APPEND git_file. l_no_lines = l_no_lines + 1.
CLEAR : git_file,
l_tot_net.
MOVE : text-f11 TO git_file+101(13).
CONCATENATE '(' git_send_po_data-waers ')' INTO git_file+118(7).
IF git_send_po_data-waers EQ 'USDN'.
CLEAR l_amt.
l_amt = git_tot_val-tot_tax / 1000.
WRITE: l_amt TO git_file+125(18) RIGHT-JUSTIFIED.
CLEAR l_amt.
*WO#257811
*BOC NAIKP 04/24/2013
** ELSEIF git_send_po_data-waers EQ 'JPY'.
"WO#131467
ELSEIF git_send_po_data-waers EQ 'JPY' OR "WO#131467
git_send_po_data-waers EQ 'KRW'. "WO#131467
CLEAR l_amt1.
l_amt1 = git_tot_val-tot_tax * 100.
WRITE: l_amt1 TO git_file+125(18) RIGHT-JUSTIFIED.
CLEAR l_amt1.
*EOC NAIKP 04/24/2013
ELSE.
WRITE : git_tot_val-tot_tax TO l_tot_net LEFT-JUSTIFIED,
l_tot_net TO git_file+125(18) RIGHT-JUSTIFIED.
ENDIF.
APPEND git_file. l_no_lines = l_no_lines + 1.
CLEAR : git_file,
l_tot_net.
MOVE : text-f12 TO git_file+101(16).
CONCATENATE '(' git_send_po_data-waers ')' INTO git_file+118(7).
IF git_send_po_data-waers EQ 'USDN'.
CLEAR l_amt.
l_amt = git_tot_val-tot_po / 1000.
WRITE: l_amt TO git_file+125(18) RIGHT-JUSTIFIED.
CLEAR l_amt.
*WO#257811
*BOC NAIKP 04/24/2013
** ELSEIF git_send_po_data-waers EQ 'JPY'.
"WO#131467
ELSEIF git_send_po_data-waers EQ 'JPY' OR "WO#131467
git_send_po_data-waers EQ 'KRW'. "WO#131467
CLEAR l_amt1.
l_amt1 = git_tot_val-tot_po * 100.
WRITE: l_amt1 TO git_file+125(18) RIGHT-JUSTIFIED.
CLEAR l_amt1.
*EOC NAIKP 04/24/2013
ELSE.
WRITE : git_tot_val-tot_po TO l_tot_net LEFT-JUSTIFIED,
l_tot_net TO git_file+125(18) RIGHT-JUSTIFIED.
ENDIF.
APPEND git_file. l_no_lines = l_no_lines + 1.
CLEAR : git_file,
l_tot_net.
WHILE l_no_lines NE 49.
APPEND git_file. l_no_lines = l_no_lines + 1.
ENDWHILE.
CLEAR l_no_lines.
*----------------------------------------------------------------------------------
--------*
*Case 2 for 2 where same po line item are going on so we are checking if they have
cross the 40
* line by calculating the next line item number and if it cross 40 then call the
header if not then nothing
ELSE.
*__To check if last line is not reached
READ TABLE git_send_po_data INTO gwa_send_po_data INDEX lv_po_lines_n .
IF sy-subrc EQ 0.
PERFORM get_next_line_text USING gwa_send_po_data-ebeln
gwa_send_po_data-ebelp
CHANGING lv_count.
ENDIF.
*__Add the 2 as each line take 2 lines atleast so we are adding tax lines also
lv_count_check = lv_count + 2.
IF git_send_po_data-waers EQ 'USDN'.
CLEAR l_amt.
l_amt = git_tot_val-tot_net / 1000.
WRITE: l_amt TO git_file+125(18) RIGHT-JUSTIFIED.
CLEAR l_amt.
*WO#257811
*BOC NAIKP 04/24/2013
** ELSEIF git_send_po_data-waers EQ 'JPY'.
"WO#131467
ELSEIF git_send_po_data-waers EQ 'JPY' OR "WO#131467
git_send_po_data-waers EQ 'KRW'. "WO#131467
CLEAR l_amt1.
l_amt1 = git_tot_val-tot_net * 100.
WRITE: l_amt1 TO git_file+125(18) RIGHT-JUSTIFIED.
CLEAR l_amt1.
*EOC NAIKP 04/24/2013
ELSE.
WRITE : git_tot_val-tot_net TO l_tot_net LEFT-JUSTIFIED,
l_tot_net TO git_file+125(18) RIGHT-JUSTIFIED.
ENDIF.
APPEND git_file. l_no_lines = l_no_lines + 1.
CLEAR : git_file,
l_tot_net.
MOVE : text-f11 TO git_file+101(13).
CONCATENATE '(' git_send_po_data-waers ')' INTO git_file+118(7).
IF git_send_po_data-waers EQ 'USDN'.
CLEAR l_amt.
l_amt = git_tot_val-tot_tax / 1000.
WRITE: l_amt TO git_file+125(18) RIGHT-JUSTIFIED.
CLEAR l_amt.
*WO#257811
*BOC NAIKP 04/24/2013
** ELSEIF git_send_po_data-waers EQ 'JPY'.
"WO#131467
ELSEIF git_send_po_data-waers EQ 'JPY' OR "WO#131467
git_send_po_data-waers EQ 'KRW'. "WO#131467
CLEAR l_amt1.
l_amt1 = git_tot_val-tot_tax * 100.
WRITE: l_amt1 TO git_file+125(18) RIGHT-JUSTIFIED.
CLEAR l_amt1.
*EOC NAIKP 04/24/2013
ELSE.
WRITE : git_tot_val-tot_tax TO l_tot_net LEFT-JUSTIFIED,
l_tot_net TO git_file+125(18) RIGHT-JUSTIFIED.
ENDIF.
APPEND git_file. l_no_lines = l_no_lines + 1.
CLEAR : git_file,
l_tot_net.
MOVE : text-f12 TO git_file+101(16).
CONCATENATE '(' git_send_po_data-waers ')' INTO git_file+118(7).
IF git_send_po_data-waers EQ 'USDN'.
CLEAR l_amt.
l_amt = git_tot_val-tot_po / 1000.
WRITE: l_amt TO git_file+125(18) RIGHT-JUSTIFIED.
CLEAR l_amt.
*WO#257811
*BOC NAIKP 04/24/2013
** ELSEIF git_send_po_data-waers EQ 'JPY'.
"WO#131467
ELSEIF git_send_po_data-waers EQ 'JPY' OR "WO#131467
git_send_po_data-waers EQ 'KRW'. "WO#131467
CLEAR l_amt1.
l_amt1 = git_tot_val-tot_po * 100.
WRITE: l_amt1 TO git_file+125(18) RIGHT-JUSTIFIED.
CLEAR l_amt1.
*EOC NAIKP 04/24/2013
ELSE.
WRITE : git_tot_val-tot_po TO l_tot_net LEFT-JUSTIFIED,
l_tot_net TO git_file+125(18) RIGHT-JUSTIFIED.
ENDIF.
APPEND git_file. l_no_lines = l_no_lines + 1.
CLEAR : git_file,
l_tot_net.
WHILE l_no_lines NE 49.
APPEND git_file. l_no_lines = l_no_lines + 1.
ENDWHILE.
CLEAR l_no_lines.
ENDIF.
SELECT SINGLE butxt FROM t001 INTO p_txt WHERE bukrs = p_bukrs.
l_name = p_ebeln.
IF sy-subrc EQ 0.
READ TABLE lit_tline INDEX 1.
IF sy-subrc EQ 0.
p_poatxt = lit_tline-tdline.
ENDIF.
ENDIF.
ENDFORM. " GET_PO_APP_TEXT
*&---------------------------------------------------------------------*
*& Form DOWNLOAD_FILE
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM download_file .
DATA : l_file_name(30),
l_date(8),
l_time(8),
l_len TYPE i.
CLEAR : l_file_name,
l_date,
l_time,
l_len.
IF p_file+l_len(1) EQ '/'.
**** OPEN DATASET p_file FOR OUTPUT IN TEXT MODE ENCODING default.
OPEN DATASET p_file FOR OUTPUT IN LEGACY TEXT MODE BIG
ENDIAN CODE PAGE '1100' IGNORING CONVERSION ERRORS..
IF sy-subrc EQ 0.
LOOP AT git_file.
TRANSFER git_file TO p_file.
ENDLOOP.
WRITE: / 'File is created:'(008), p_file.
ELSE.
WRITE: / 'File cannot be opened:'(007), p_file.
ENDIF.
CLOSE DATASET p_file.
LOOP AT git_tot_val.
TRY.
UPDATE zmm_po_to_onbase SET status = c_x WHERE ebeln = git_tot_val-ebeln.
CATCH cx_sy_dynamic_osql_error.
WRITE: / 'Error while updating the table ZMM_PO_TO_ONBASE'.
ENDTRY.
ENDLOOP.
l_name = p_ebeln.
IF p_bsart EQ c_zb.
CALL FUNCTION 'READ_TEXT'
EXPORTING
id = c_f98
language = sy-langu
name = l_name
object = c_ekko
TABLES
lines = lit_tline
EXCEPTIONS
id = 1
language = 2
name = 3
not_found = 4
object = 5
reference_check = 6
wrong_access_to_archive = 7
OTHERS = 8.
ELSEIF p_bsart EQ c_za.
CALL FUNCTION 'READ_TEXT'
EXPORTING
id = c_f12
language = sy-langu
name = l_name
object = c_ekko
TABLES
lines = lit_tline
EXCEPTIONS
id = 1
language = 2
name = 3
not_found = 4
object = 5
reference_check = 6
wrong_access_to_archive = 7
OTHERS = 8.
ENDIF.
IF sy-subrc EQ 0.
READ TABLE lit_tline INDEX 1.
IF sy-subrc EQ 0.
p_txt = lit_tline-tdline.
ENDIF.
ENDIF.
CLEAR : lwa_cepc,
lwa_sethier,
lwa_sethier2,
lit_sethier,
lv_tabix_found,
lv_level_found,
lv_subrc.
REFRESH : lit_sethier.
*__Begin of WO#087402
*__--------------------------------------------------------------------------------
-------------
*__Pass the corrct setid based on controlling area
READ TABLE git_tka01 INTO gwa_tka01 WITH KEY kokrs = lwa_cepc-kokrs.
IF sy-subrc EQ 0 .
CONCATENATE lc_setid gwa_tka01-kokrs gwa_tka01-phinr INTO gv_setid.
" Create a setid that contains 0106+Controlling Area+Profit center area
ELSE.
gv_setid = lc_set_d.
ENDIF.
*__--------------------------------------------------------------------------------
-------------
CALL FUNCTION 'G_SET_TREE_IMPORT'
EXPORTING
setid = gv_setid
TABLES
set_hierarchy = lit_sethier
EXCEPTIONS
set_not_found = 1
illegal_field_replacement = 2
illegal_table_replacement = 3
set_is_damaged = 4
OTHERS = 5.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
ENDIF.
*&---------------------------------------------------------------------*
*& Form GET_NEXT_LINE_TEXT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->P_GIT_SEND_PO_DATA_EBELN text
* -->P_GIT_SEND_PO_DATA_EBELP text
* <--P_LV_COUNT text
*----------------------------------------------------------------------*
*__Begin of {WO#115440
FORM get_next_line_text USING p_git_send_po_data_ebeln
p_git_send_po_data_ebelp
CHANGING p_lv_count.
REFRESH: git_taxes_n[].
CLEAR: p_lv_count,gv_vtext,lt_temp2,lwa_t686t,lwa_taxes.
CALL FUNCTION 'ZGET_PO_TAX_DATA'
EXPORTING
ebeln = p_git_send_po_data_ebeln
ebelp = p_git_send_po_data_ebelp
TABLES
et_taxes = git_taxes_n.
*__ delete the records which are not match with line item
DELETE git_taxes_n WHERE kposn+1(5) NE p_git_send_po_data_ebelp.