You are on page 1of 12

*&---------------------------------------------------------------------*

*& Report YNOX_FILE


*&
*&---------------------------------------------------------------------*
* Author: Engineering - CRO
* Modif ID: AS20171031
* Requested by: Angela Lucia
* Date: 31.10.2017
* Description: DIA01128 Nuove etichette e flusso corriere TNT
* Project: DiaSorin
*&---------------------------------------------------------------------*
REPORT ynox_file.
*&---------------------------------------------------------------------
*& TABLES
*&---------------------------------------------------------------------
TABLES: likp, t002.
*&---------------------------------------------------------------------
*& TYPES
*&---------------------------------------------------------------------
TYPES: BEGIN OF ty_sid,
client(3) TYPE c, "fixed
comp(5) TYPE c, "fixed "blank
bldat TYPE likp-bldat,
anzsn TYPE n, "lips-anzsn,
vbeln TYPE likp-vbeln,
soft(30) TYPE c, "fixed
vers(30) TYPE c, "fixed
verslo(10) TYPE c,
job(10) TYPE c, "blank
kunnr TYPE vbpa-kunnr,
END OF ty_sid,

BEGIN OF ty_gate,
land TYPE ynox_gate-land,
postal_code TYPE ynox_gate-postal_code,
vbeln TYPE vbpa-vbeln,
END OF ty_gate,

BEGIN OF ty_vbpa,
sid TYPE ty_sid,
kunnr TYPE vbpa-kunnr,
land1 TYPE vbpa-land1,
adrnr TYPE vbpa-adrnr,
parvw TYPE vbpa-parvw,
vbeln TYPE vbpa-vbeln,
vbeln1 TYPE likp-vbeln,
END OF ty_vbpa,

BEGIN OF ty_vid,
addres(10) TYPE c, "adrc-addrnumber, "fixed
upcou(4) TYPE c, "fixed
custid(10) TYPE c, "kna1-kunnr, "fixed
acc(10) TYPE c, "blank
abbr(1) TYPE c, "blank
compa(5) TYPE c, "blank
tour(10) TYPE c, "blank
END OF ty_vid,

BEGIN OF ty_kna1,
kunnr TYPE kna1-kunnr,
name1 TYPE kna1-name1,
name2 TYPE kna1-name2,
pstlz TYPE kna1-pstlz,
ort01 TYPE kna1-ort01,
land1 TYPE kna1-land1,
parvw TYPE vbpa-parvw,
END OF ty_kna1,

BEGIN OF ty_adrc,
addrnumber TYPE adrc-addrnumber,
vbeln TYPE vbpa-vbeln,
street TYPE adrc-street,
house_num1 TYPE adrc-house_num1,
END OF ty_adrc,

BEGIN OF ty_vvv,
kunnr TYPE kna1-kunnr,
name1 TYPE kna1-name1,
name2 TYPE kna1-name2,
street TYPE adrc-street,
house_num1 TYPE adrc-house_num1,
land1 TYPE kna1-land1,
pstlz TYPE kna1-pstlz,
ort01 TYPE kna1-ort01,
parvw TYPE vbpa-parvw,
END OF ty_vvv,

BEGIN OF ty_evv,
kunnr TYPE kna1-kunnr,
name1 TYPE kna1-name1,
name2 TYPE kna1-name2,
street TYPE adrc-street,
house_num1 TYPE adrc-house_num1,
land1 TYPE kna1-land1,
pstlz TYPE kna1-pstlz,
ort01 TYPE kna1-ort01,
parvw TYPE vbpa-parvw,
END OF ty_evv,

BEGIN OF ty_dls,
frank(2) TYPE c, "Depends on the contract between nox and the customer.
"0" means freight will be payd by sender.
prod(5) TYPE c, "Depends on the contract between nox and the customer.
"KNR" is delivery next day till 08:00a.m. for example
prod2(5) TYPE c, "blank
zl1(5) TYPE c, "blank
zl2(5) TYPE c, "blank
zl3(5) TYPE c, "blank
proj(30) TYPE c, "blank
END OF ty_dls,

BEGIN OF ty_pid,
package_barcode(30) TYPE c,
packi(30) TYPE c, "blank ?
weight(8) TYPE c, "Weight is mandatory
width(5) TYPE c, "if it's unknown it's blank
height(5) TYPE c, "if it's unknown it's blank
depth(5) TYPE c, "if it's unknown it's blank
volume(5) TYPE c, "volume is mandatory, even if it is "0" because it's
unknown
logic(30) TYPE c, "blank ?
vbeln TYPE vbpa-vbeln,
END OF ty_pid,

BEGIN OF ty_sum,
coanz(1) TYPE c, " fixed ?
weight TYPE string, "In Germany the decimal point is "," instead of ".".
It has to be the sum of all collo of the order.
carweigh(1) TYPE c, "blank
user(1) TYPE c, "blank
goods(1) TYPE c, "blank
currgv(1) TYPE c, "blank
freight(1) TYPE c, "blank
currfa(1) TYPE c, "blank
total(3) TYPE c, "volume is mandatory, even if it is "0" because it's
unknown
END OF ty_sum,

* BEGIN OF ty_struct,
* client(3) TYPE c, "fixed
* comp(5) TYPE c, "fixed "blank
* bldat TYPE likp-bldat,
* anzsn TYPE n, "lips-anzsn,
* vbeln TYPE likp-vbeln,
* soft(30) TYPE c, "fixed
* vers(30) TYPE c, "fixed
* verslo(10) TYPE c,
* job(10) TYPE c, "blank
*
* addres(10) TYPE c, "adrc-addrnumber, "fixed
* upcou(4) TYPE c, "fixed
* custid(10) TYPE c, "kna1-kunnr, "fixed
* acc(10) TYPE c, "blank
* abbr(1) TYPE c, "blank
* compa(5) TYPE c, "blank
* tour(10) TYPE c, "blank
*
* name1 TYPE kna1-name1,
* name2 TYPE kna1-name2,
* street TYPE adrc-street,
* house_num1 TYPE adrc-house_num1,
* land1 TYPE kna1-land1,
* pstlz TYPE kna1-pstlz,
* ort01 TYPE kna1-ort01,
*
* frank(2) TYPE c, "Depends on the contract between nox and the customer.
"0" means freight will be payd by sender.
* prod(5) TYPE c, "Depends on the contract between nox and the customer.
"KNR" is delivery next day till 08:00a.m. for example
* prod2(5) TYPE c, "blank
* zl1(5) TYPE c, "blank
* zl2(5) TYPE c, "blank
* zl3(5) TYPE c, "blank
* proj(30) TYPE c, "blank
*
* package_barcode(30) TYPE c,
* packi(30) TYPE c, "blank ?
* weight(8) TYPE c, "Weight is mandatory
* width(5) TYPE c, "if it's unknown it's blank
* height(5) TYPE c, "if it's unknown it's blank
* depth(5) TYPE c, "if it's unknown it's blank
* volume(5) TYPE c, "volume is mandatory, even if it is "0" because it's
unknown
* logic(30) TYPE c, "blank ?
*
* coanz(1) TYPE c, " fixed ?
* weight TYPE string, "In Germany the decimal point is "," instead of
".". It has to be the sum of all collo of the order.
* carweigh(1) TYPE c, "blank
* user(1) TYPE c, "blank
* goods(1) TYPE c, "blank
* currgv(1) TYPE c, "blank
* freight(1) TYPE c, "blank
* currfa(1) TYPE c, "blank
* total(3) TYPE c, "volume is mandatory, even if it is "0" because it's
unknown
* END OF ty_struct,

BEGIN OF ty_unit,
brgew TYPE lips-brgew,
gewei TYPE lips-gewei,
volum TYPE lips-volum,
voleh TYPE lips-voleh,
vbeln TYPE likp-vbeln,
posnr TYPE lips-posnr,
END OF ty_unit,

BEGIN OF ty_file,
file TYPE string,
END OF ty_file.
*&---------------------------------------------------------------------
*& GLOBAL VARIABLES
*&---------------------------------------------------------------------
DATA: gt_sid TYPE TABLE OF ty_sid,
gs_sid TYPE ty_sid,
gt_vid TYPE TABLE OF ty_vid,
gs_vid TYPE ty_vid,
gt_dls TYPE TABLE OF ty_dls,
gs_dls TYPE ty_dls,
gt_pid TYPE TABLE OF ty_pid,
gs_pid TYPE ty_pid,
gt_sum TYPE TABLE OF ty_sum,
gs_sum TYPE ty_sum,

gs_file TYPE ty_file,


gt_file TYPE TABLE OF ty_file,
gt_gate TYPE TABLE OF ty_gate,
gs_gate TYPE ty_gate,
gt_unit TYPE TABLE OF ty_unit,
gs_unit TYPE ty_unit,
gt_vbpa TYPE TABLE OF ty_vbpa,
gs_vbpa TYPE ty_vbpa,
gt_kna1 TYPE TABLE OF ty_kna1,
gs_kna1 TYPE ty_kna1,
gt_adrc TYPE TABLE OF ty_adrc,
gs_adrc TYPE ty_adrc,
gt_vvv TYPE TABLE OF ty_vvv,
gs_vvv TYPE ty_vvv,
gt_evv TYPE TABLE OF ty_evv,
gs_evv TYPE ty_evv.

DATA: gv_file TYPE string,


gv_msg TYPE string,
lv_post TYPE string,
gv_gate TYPE string.

gs_sum-carweigh = ''.
gs_sum-user = ''.
gs_sum-goods = ''.
gs_sum-currgv = ''.
gs_sum-freight = ''.
gs_sum-currfa = ''.
*&---------------------------------------------------------------------
*& SELECTION-SCREEN
*&---------------------------------------------------------------------
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME.
SELECT-OPTIONS: so_bldat FOR likp-bldat.
SELECTION-SCREEN END OF BLOCK b1.
SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME.
PARAMETERS: r_local RADIOBUTTON GROUP exp DEFAULT 'X' MODIF ID 001 USER-COMMAND
uc01,
p_local LIKE rlgrap-filename MODIF ID 002
DEFAULT 'C:\Users\andrei.simionescu\Desktop\tttt.txt',
r_server RADIOBUTTON GROUP exp MODIF ID 001,
p_server LIKE sapb-sappfad MODIF ID 003
DEFAULT 'K:\usr\sap\SRS\DVEBMGS00\work\test.txt'.
SELECTION-SCREEN END OF BLOCK b2.

AT SELECTION-SCREEN OUTPUT.
LOOP AT SCREEN.
CASE screen-group1.
WHEN '001' OR '002' OR '003'.
screen-input = '1'.
PERFORM inputoff USING r_local '002'.
PERFORM inputoff USING r_server '003'.
MODIFY SCREEN.
ENDCASE.
ENDLOOP.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_local.


IF r_local EQ 'X'.
PERFORM filename.
ENDIF.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_server.


IF r_server EQ 'X'.
PERFORM f4s.
ENDIF.

AT SELECTION-SCREEN ON p_local.
IF r_local EQ 'X' AND p_local = ''.
MESSAGE e368(00) WITH 'Enter a valid file name!'.
ENDIF.

AT SELECTION-SCREEN ON p_server.
IF p_server = '' AND r_server EQ 'X'.
MESSAGE e368(00) WITH 'Enter a valid file name!'.
ENDIF.
*&---------------------------------------------------------------------
*& START OF SELECTION
*&---------------------------------------------------------------------
START-OF-SELECTION.
PERFORM select.
* PERFORM convert.
*&---------------------------------------------------------------------*
*& Form SELECT
*&---------------------------------------------------------------------*
FORM select .
FIELD-SYMBOLS: <fs_sid> TYPE ty_sid,
<fs_vbpa> TYPE ty_vbpa.
* ------------------------------ SID ---------------------------------
SELECT bldat vbeln
FROM likp
INTO CORRESPONDING FIELDS OF TABLE gt_sid
WHERE bldat IN so_bldat.
IF gt_sid IS NOT INITIAL.
SORT gt_sid BY vbeln.
SELECT vbpa~vbeln vbpa~kunnr vbpa~land1 vbpa~adrnr vbpa~parvw likp~vbeln AS
vbeln1
FROM vbpa
INNER JOIN likp ON likp~vbeln EQ vbpa~vbeln
INTO CORRESPONDING FIELDS OF TABLE gt_vbpa
FOR ALL ENTRIES IN gt_sid
WHERE vbpa~vbeln EQ gt_sid-vbeln.
IF gt_vbpa IS NOT INITIAL.
* SELECT land postal_code
* FROM ynox_gate
* INTO CORRESPONDING FIELDS OF TABLE gt_gate
* FOR ALL ENTRIES IN gt_vbpa
* WHERE land EQ gt_vbpa-land1.
SELECT vbpa~vbeln ynox_gate~land ynox_gate~postal_code
FROM vbpa
INNER JOIN ynox_gate ON ynox_gate~land EQ vbpa~land1
INTO CORRESPONDING FIELDS OF TABLE gt_gate
FOR ALL ENTRIES IN gt_sid
WHERE vbpa~vbeln EQ gt_sid-vbeln
AND vbpa~land1 EQ ynox_gate~land.
ENDIF.
ENDIF.

* READ TABLE gt_vbpa INTO gs_vbpa INDEX 1.


SORT gt_gate BY vbeln.
LOOP AT gt_sid ASSIGNING <fs_sid>.
READ TABLE gt_gate INTO gs_gate WITH KEY vbeln = <fs_sid>-vbeln BINARY SEARCH.
IF sy-subrc = 0.
CONCATENATE gs_gate-land gs_gate-postal_code(2) INTO gv_gate.
ENDIF.
<fs_sid>-client = '001'.
<fs_sid>-comp = ''.
<fs_sid>-soft = 'Software BOMI'.
<fs_sid>-vers = 'Vers 01'.
<fs_sid>-verslo = gv_gate.
<fs_sid>-job = ''.
<fs_sid>-anzsn = '1'.
READ TABLE gt_sid INTO gs_sid INDEX sy-tabix.
LOOP AT gt_vbpa ASSIGNING <fs_vbpa>.
MOVE-CORRESPONDING <fs_sid> TO <fs_vbpa>-sid.
ENDLOOP.
ENDLOOP.
** ------------------------------ VID ---------------------------------
gs_vid-addres = '0030001493'. "'0030001228'. "'00000001'.
gs_vid-upcou = '0001'.
gs_vid-custid = '1122843042'. "'0000592100'. "'1000817'.
gs_vid-acc = ''.
gs_vid-abbr = ''.
gs_vid-compa = ''.
gs_vid-tour = ''.
APPEND gs_vid TO gt_vid.
** ----------------- CONSIGNER VN1 VST VOR ----------------------
IF gt_vbpa IS NOT INITIAL.
SELECT kunnr name1 name2 pstlz ort01 land1
FROM kna1
INTO CORRESPONDING FIELDS OF TABLE gt_kna1
FOR ALL ENTRIES IN gt_vbpa
WHERE kna1~kunnr EQ gt_vbpa-kunnr
AND kna1~land1 EQ gt_vbpa-land1.

SELECT adrc~addrnumber adrc~house_num1 adrc~street


FROM adrc
INTO CORRESPONDING FIELDS OF TABLE gt_adrc
FOR ALL ENTRIES IN gt_vbpa
WHERE adrc~addrnumber EQ gt_vbpa-adrnr.

LOOP AT gt_vbpa INTO gs_vbpa.


IF gs_vbpa-parvw EQ 'AG'.
SELECT SINGLE street house_num1
FROM adrc
INTO CORRESPONDING FIELDS OF gs_vvv
WHERE addrnumber EQ gs_vbpa-adrnr.

SELECT SINGLE name1 name2 pstlz ort01 land1 kunnr


FROM kna1
INTO CORRESPONDING FIELDS OF gs_vvv
WHERE kunnr EQ gs_vbpa-kunnr.
gs_vvv-parvw = 'AG'.
APPEND gs_vvv TO gt_vvv.
ELSEIF gs_vbpa-parvw EQ 'WE'.
SELECT SINGLE street house_num1
FROM adrc
INTO CORRESPONDING FIELDS OF gs_evv
WHERE addrnumber EQ gs_vbpa-adrnr.

SELECT SINGLE name1 name2 pstlz ort01 land1 kunnr


FROM kna1
INTO CORRESPONDING FIELDS OF gs_evv
WHERE kunnr EQ gs_vbpa-kunnr.
gs_evv-parvw = 'WE'.
APPEND gs_evv TO gt_evv.
ENDIF.
ENDLOOP.
ENDIF.
** ---------------------------- DLS -----------------------------
gs_dls-frank = '0'.
gs_dls-prod = 'KNR'.
gs_dls-prod2 = ''.
gs_dls-zl1 = ''.
gs_dls-zl2 = ''.
gs_dls-zl3 = ''.
gs_dls-proj = ''.
APPEND gs_dls TO gt_dls.
** ---------------------------- PID -----------------------------
"FIELD-SYMBOLS <fs_pid> TYPE ty_pid.
SELECT ynox_label~package_barcode vttp~vbeln
FROM vttp
INNER JOIN ynox_label ON ynox_label~tknum EQ vttp~tknum
INTO CORRESPONDING FIELDS OF TABLE gt_pid
FOR ALL ENTRIES IN gt_vbpa
WHERE vttp~vbeln EQ gt_vbpa-vbeln
AND ynox_label~tknum EQ vttp~tknum.

LOOP AT gt_pid INTO gs_pid.


gs_pid-packi = ''.
gs_pid-weight = '0.00'.
gs_pid-width = ''.
gs_pid-height = ''.
gs_pid-depth = ''.
gs_pid-volume = '0.000'.
gs_pid-logic = ''.
MODIFY gt_pid FROM gs_pid.
ENDLOOP.
** ---------------------------- SUM -----------------------------
SELECT lips~brgew lips~gewei lips~volum lips~voleh likp~vbeln lips~posnr
FROM likp
INNER JOIN lips ON lips~vbeln EQ likp~vbeln
INTO CORRESPONDING FIELDS OF TABLE gt_unit
FOR ALL ENTRIES IN gt_sid
WHERE likp~vbeln EQ gt_sid-vbeln.

IF sy-subrc EQ '0'.
PERFORM result.
ENDIF.
IF r_local EQ 'X' AND sy-subrc EQ '0' AND p_local IS NOT INITIAL.
PERFORM gui_download.
ELSEIF r_server EQ 'X' AND sy-subrc EQ '0'.
PERFORM server.
ENDIF.
ENDFORM. " SELECT
*&---------------------------------------------------------------------*
*& Form enable
*&---------------------------------------------------------------------*
FORM enable USING var TYPE any.
IF var = 'X'.
screen-input = '1'.
ELSE.
screen-input = '0'.
ENDIF.
ENDFORM. " ENABLE
*&---------------------------------------------------------------------*
*& Form F4S
*&---------------------------------------------------------------------*
FORM f4s .
CALL FUNCTION 'F4_DXFILENAME_TOPRECURSION'
EXPORTING
i_location_flag = 'A'
i_server = ' '
i_path = p_server
IMPORTING
o_path = p_server
EXCEPTIONS
rfc_error = 1
OTHERS = 2.

CALL FUNCTION '/SAPDMC/LSM_F4_SERVER_FILE'


EXPORTING
directory = 'K:\usr\sap\SRS\DVEBMGS00\work'
filemask = ' '
IMPORTING
serverfile = p_server
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.
ENDFORM. " F4S
*&---------------------------------------------------------------------*
*& Form FILENAME
*&---------------------------------------------------------------------*
FORM filename .
CALL FUNCTION 'F4_FILENAME'
EXPORTING
program_name = sy-repid
dynpro_number = sy-dynnr
field_name = 'p_local'
IMPORTING
file_name = p_local.
gv_file = p_local.
ENDFORM. " FILENAME
*&---------------------------------------------------------------------*
*& Form INPUTOFF
*&---------------------------------------------------------------------*
FORM inputoff USING radio TYPE any
group TYPE any.
IF screen-group1 EQ group.
IF radio EQ 'X'.
screen-input = '1'.
ELSE.
screen-input = '0'.
ENDIF.
ENDIF.
ENDFORM. " INPUTOFF
*&---------------------------------------------------------------------*
*& Form GUI_DOWNLOAD
*&---------------------------------------------------------------------*
FORM gui_download .
CALL FUNCTION 'GUI_DOWNLOAD'
EXPORTING
filename = gv_file
filetype = 'ASC'
write_field_separator = '|'
write_lf = '|'
TABLES
data_tab = gt_file
EXCEPTIONS
file_write_error = 1
no_batch = 2
gui_refuse_filetransfer = 3
invalid_type = 4
no_authority = 5
unknown_error = 6
header_not_allowed = 7
separator_not_allowed = 8
filesize_not_allowed = 9
header_too_long = 10
dp_error_create = 11
dp_error_send = 12
dp_error_write = 13
unknown_dp_error = 14
access_denied = 15
dp_out_of_memory = 16
disk_full = 17
dp_timeout = 18
file_not_found = 19
dataprovider_exception = 20
control_flush_error = 21
OTHERS = 22.
ENDFORM. " GUI_DOWNLOAD
*&---------------------------------------------------------------------*
*& Form SERVER
*&---------------------------------------------------------------------*
FORM server .
gv_file = p_server.
OPEN DATASET gv_file FOR OUTPUT IN TEXT MODE ENCODING DEFAULT MESSAGE gv_msg.
IF sy-subrc EQ '0'.
LOOP AT gt_file INTO gs_file.
CONCATENATE gs_file-file '|' INTO gv_file.
TRANSFER gs_file-file TO gv_file.
ENDLOOP.
CLOSE DATASET gv_file.
MESSAGE s268(00) WITH 'File succesfully saved!' DISPLAY LIKE 'S'.
ELSE.
MESSAGE s268(00) WITH 'Cannot open file!' gv_msg DISPLAY LIKE 'E'.
ENDIF.
ENDFORM. " SERVER
*&---------------------------------------------------------------------*
*& Form result
*&---------------------------------------------------------------------*
FORM result.
DATA : lv_count TYPE n,
lv_c TYPE n,
lv_co TYPE n,
gs_ev1 TYPE ty_evv,
gs_vv1 TYPE ty_vvv.
CLEAR gt_file.
SORT gt_vvv BY kunnr.
SORT gt_evv BY kunnr.
SORT gt_vbpa BY vbeln parvw.
SORT gt_pid BY vbeln.
SORT gt_unit BY vbeln.
TYPES: BEGIN OF ty_vbeln,
vbeln TYPE vbpa-vbeln,
END OF ty_vbeln.

DATA: gt_vbeln TYPE TABLE OF ty_vbeln,


gs_vbeln TYPE ty_vbeln,
gv_vbeln_old TYPE vbpa-vbeln,
gv_weigth TYPE string,
gv_vol TYPE string.

LOOP AT gt_vbpa INTO gs_vbpa.


CLEAR gs_vbeln.

IF gv_vbeln_old NE gs_vbpa-vbeln.
gv_vbeln_old = gs_vbpa-vbeln.
gs_vbeln-vbeln = gs_vbpa-vbeln.
APPEND gs_vbeln TO gt_vbeln.
ENDIF.

ENDLOOP.

LOOP AT gt_vbeln INTO gs_vbeln.


CLEAR: gs_ev1, gs_vv1, gs_vbpa, gs_pid, gs_unit, gv_weigth, gv_vol.
READ TABLE gt_vbpa INTO gs_vbpa WITH KEY vbeln = gs_vbeln-vbeln parvw = 'AG'
BINARY SEARCH.
AT NEW vbeln.
lv_count = lv_count + 1.
ENDAT.
* IF lv_count IS NOT INITIAL.
IF sy-subrc EQ 0.
CONCATENATE 'SID' gs_vbpa-sid-client gs_vbpa-sid-comp gs_vbpa-sid-bldat
gs_vbpa-sid-anzsn gs_vbpa-vbeln1 gs_vbpa-sid-soft gs_vbpa-sid-vers gs_vbpa-sid-
verslo gs_vbpa-sid-job INTO gs_file-file SEPARATED BY '|'.
APPEND gs_file TO gt_file.
ENDIF.
CONCATENATE 'VID' gs_vid-addres gs_vid-upcou gs_vid-custid gs_vid-acc gs_vid-
abbr gs_vid-compa gs_vid-tour INTO gs_file-file SEPARATED BY '|'.
APPEND gs_file TO gt_file.

READ TABLE gt_vvv INTO gs_vv1 WITH KEY kunnr = gs_vbpa-kunnr parvw = 'AG'
BINARY SEARCH.
IF sy-subrc EQ 0.
CONCATENATE 'VN1' gs_vv1-name1 gs_vv1-name2 INTO gs_file-file SEPARATED BY
'|'.
APPEND gs_file TO gt_file.
CONCATENATE 'VST' gs_vv1-street gs_vv1-house_num1 INTO gs_file-file SEPARATED
BY '|'.
APPEND gs_file TO gt_file.
CONCATENATE 'VOR' gs_vv1-land1 gs_vv1-pstlz gs_vv1-ort01 INTO gs_file-file
SEPARATED BY '|'.
APPEND gs_file TO gt_file.
ENDIF.

CLEAR gs_vbpa.
READ TABLE gt_vbpa INTO gs_vbpa WITH KEY vbeln = gs_vbeln-vbeln parvw = 'WE'
BINARY SEARCH.
READ TABLE gt_evv INTO gs_ev1 WITH KEY kunnr = gs_vbpa-kunnr parvw = 'WE'
BINARY SEARCH.
* IF lv_c IS NOT INITIAL.
IF sy-subrc EQ 0.
CONCATENATE 'EN1' gs_ev1-name1 gs_ev1-name2 INTO gs_file-file SEPARATED BY
'|'.
APPEND gs_file TO gt_file.
CONCATENATE 'EST' gs_ev1-street gs_ev1-house_num1 INTO gs_file-file SEPARATED
BY '|'.
APPEND gs_file TO gt_file.
CONCATENATE 'EOR' gs_ev1-land1 gs_ev1-pstlz gs_ev1-ort01 INTO gs_file-file
SEPARATED BY '|'.
APPEND gs_file TO gt_file.
ENDIF.

READ TABLE gt_pid INTO gs_pid WITH KEY vbeln = gs_vbeln-vbeln BINARY SEARCH.

CONCATENATE 'DLS' gs_dls-frank gs_dls-prod gs_dls-prod2 gs_dls-zl1 gs_dls-zl2


gs_dls-zl3 gs_dls-proj INTO gs_file-file SEPARATED BY '|'.
APPEND gs_file TO gt_file.

READ TABLE gt_unit INTO gs_unit WITH KEY vbeln = gs_vbeln-vbeln BINARY SEARCH.
IF sy-subrc EQ 0.
gv_weigth = gs_unit-brgew.
gv_vol = gs_unit-volum.
ENDIF.
CONCATENATE 'PID' gs_pid-package_barcode gs_pid-packi gv_weigth gs_pid-width
gs_pid-height gs_pid-depth gv_vol gs_pid-logic INTO gs_file-file SEPARATED BY '|'.
APPEND gs_file TO gt_file.
CONCATENATE 'SUM' '1' gs_sum-coanz gs_sum-carweigh gs_sum-user gs_sum-goods
gs_sum-currgv gs_sum-freight gs_sum-currfa gs_sum-total INTO gs_file-file SEPARATED
BY '|'.
APPEND gs_file TO gt_file.

CONCATENATE space space INTO gs_file-file SEPARATED BY space.


APPEND gs_file TO gt_file.
ENDLOOP.
ENDFORM. "result
**&---------------------------------------------------------------------*
**& Form CONVERT
**&---------------------------------------------------------------------*
*FORM convert .
* CALL FUNCTION 'CONVERT_SAP_LANG_TO_ISO_LANG' "Convert SAP language key -> ISO
language including check
* EXPORTING
* input = t002-spras
* IMPORTING
* output = t002-laiso
* EXCEPTIONS
* unknown_language = 1.
*ENDFORM. " CONVERT

You might also like