Professional Documents
Culture Documents
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_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 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.
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.
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.
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.
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.