EIPO-GRWRT
Hi
In a pro forma invoice, I need to manipiulate the value of EIPO-GRWRT.
The value is read fro condition type GRWR, with SAP exchange rate. But my issue is that I need to determine a special exchange rate for this, for the conversion between the condition type GRWR and teh field EIPO-GRWRT in the pro forma invoice.
In the documentation for FM "EXIT_SAPLV50E_003" and "EXIT_SAPLV50E_001" it says that the value and currency is overwritten.
Do anybody have any experience with this?
Regards
Magnus
Hi
In a pro forma invoice, I need to manipiulate the value of EIPO-GRWRT.
The value is read fro condition type GRWR, with SAP exchange rate. But my issue is that I need to determine a special exchange rate for this, for the conversion between the condition type GRWR and teh field EIPO-GRWRT in the pro forma invoice.
In the documentation for FM "EXIT_SAPLV50E_003" and "EXIT_SAPLV50E_001" it says that the value and currency is overwritten.
Do anybody have any experience with this?
Regards
Magnus
Similar Messages
-
Header is not coming in alv list display- urgent
hi all,
i am sending my code below....
my requirement is in selection screen i have 4 radio buttons . if i click 1 radio button it will duiisplay data and and its header. report is working fine. my requirement id when i click r_mssng radio button(missing radio button) it is showing data correctsly. here i want to show header as 'Missing details report'.
this is not coming in my report. anybody can suggest me.
i am sending my code below....
report zvra0001ftb13 message-id zv.
Confidential and Proprietary
* Celestica Corporation
* All Rights Reserved
*ABAP Name: ZVRA0001FTB13
*Created by: Srinivasa Chakravarthi
*Created on: 26/03/2003
*SAP Version: 4.6 C
*Description: This report displays details of foreign trades
and EHS based on the deliveries made to the outside
countries.
*Input: Selection Screen Criteria includes country of
origin,Company code, Sales Organisation,
Ship-to-party, Sold-to-paarty, Goods movement date,
Invoice number, Invoice type, Material , Material
Type, Exporter ID, Province of origin.
*Output: ALV output that contains Mode of Transport, Export
HS number, Commodity Description, Quantity, UOM,
Value, Country of Destination, Goods Origin
*Dependency: Nil
*Modification Log:
*CR# Date Coded Transport Description
*====== ======== ========= ============= ===============================
*5147 26/03/2003 Srinivas ED1K922286 New Development
*8700 02/11/2004 H.Arular ED1K938380 To check if entries of Comm
Code(HS code)is less than 8
digits and give a warning
message.
*18684 25/07/2007 MAHEEDHAR Merge the logic from report
ZVRA0001FTB13_ERROR into
report ZVRA0001FTB13 and
added two radio buttons
called missing data and non
missing data, addedc logic
accoriding to the radio
buttons.
*Declaring Tables.
tables: likp, "Delivery document Header
lips, "Delivery Document Item
vbfa, "Sales document Flow
bkpf, "Accounting Document Header
eikp, "Foreign Trade:Export/Import Data
eipo, "Foreign Trade:Export/ Import
"Header data
t618t, "Forein Trade:Mode of Transport
"Description
t604t, "Foreign Trade: Commodity Code/
"Import Code number Description.
mara, "Material master data.
t005, "Countries
t001, "Company Codes
tvko, "Sales Organisations
kna1, "Customer Master
t003, "Document types
t134, "Material types
tvfk,
konv,
vbrk.
constants : c_rep like vbrk-fkart value 'YGFB',
c_for(10) value 'Foreign'.
*Decalre Type pool for ALV
type-pools: slis.
*Type declaration for LIKP.
types: begin of t_data1,
vbeln like likp-vbeln, "Delivery
kunnr like likp-kunnr,
end of t_data1.
*Type declaration for LIPS,VBFA.
types: begin of t_data2,
vbeln like lips-vbeln, "Delivery
posnr like lips-posnr, "Delivery Item
vbelv like vbfa-vbelv, "Preceding SD document
posnv like vbfa-posnv, "Preceding item of SD document
matnr like lips-matnr, "Material Number
meins like lips-meins, "Base unit of measure
lfimg like lips-lfimg, "Actual Quantity Delivered
mtart like mara-mtart,
end of t_data2.
**Type declaration for BKPF.
*types: begin of t_data3,
belnr like bkpf-belnr, "Accounting Documnet number
bukrs like bkpf-bukrs, "Company Code
end of t_data3.
*Type declaration for BKPF.
types: begin of t_data3,
vbeln like vbrk-belnr, " Billing Doc
fkart like vbrk-fkart,
land1 like vbrk-land1,
end of t_data3.
*Type declaration for EIPO.
types: begin of t_data4,
vbeln like lips-vbeln, "Delivery
posnr like lips-posnr, "Delivery Item
matnr like vbrp-matnr,
fkimg like vbrp-fkimg,
meins like vbrp-meins,
verld like eipo-verld, "Country of dispatch for Foreign
"trade
herkl like eipo-herkl, "Country of origin of material
grwrt like eipo-grwrt, "Statistical value for Foreign
" trade
stawn like eipo-stawn, "Commodity code for foreign trade
expvz like eikp-expvz, "Mode of transport for foreign
"trade
end of t_data4.
*Type declaration for T618T.
types: begin of t_data5,
land1 like t618t-land1, "Country key
expvz like t618t-expvz, "Mode of Transport
bezei like t618t-bezei, "Description
end of t_data5.
*Type declaration for T604T.
types: begin of t_data6,
land1 like t604t-land1, "Country key
stawn like t604t-stawn, "Commodity Code
text1 like t604t-text1, "Description
end of t_data6.
*Type declaration for T604T.
types: begin of t_mara,
matnr like mara-matnr,
end of t_mara.
types : begin of rep_val,
vbelv like vbfa-vbelv,
posnv like vbfa-posnv,
vbeln like vbfa-vbeln,
posnn like vbfa-posnn,
uepos like vbap-uepos,
posnr like vbap-posnr,
netwr like vbap-netwr,
end of rep_val.
types : begin of t_price,
vbeln like vbak-vbeln,
posnr like vbap-posnr,
knumv like konv-knumv,
kposn like konv-kposn,
kbetr like konv-kbetr,
kpein like konv-kpein,
end of t_price.
data : t_sord type rep_val occurs 0 with header line.
data : t_dord type rep_val occurs 0 with header line.
data : t_rord type rep_val occurs 0 with header line.
data : t_hord type rep_val occurs 0 with header line.
data : t_ford type rep_val occurs 0 with header line.
data : i_price type t_price occurs 0 with header line.
data : i_price1 type t_price occurs 0 with header line.
data : i_mara type t_mara occurs 0 with header line.
data : i_sort type slis_t_sortinfo_alv.
DATA: t_layout TYPE slis_layout_alv.
*Declaring Selection screen.
selection-screen begin of block b1 with frame title text-101.
select-options:
s_verld for eipo-verld, "Country of Dest.
s_bukrs for bkpf-bukrs, "Company code
s_vkorg for likp-vkorg, "Sales Organisation
s_kunnr for likp-kunnr, "Ship-to-Party
s_kunag for likp-kunag, "Sold-to-party
s_wadat for likp-wadat_ist, "Goods Movement date
s_belnr for vbrk-vbeln, "Invoice number
s_blart for vbrk-fkart. "Invoice type.
selection-screen end of block b1.
selection-screen begin of block b2 with frame title text-101.
select-options:
s_matnr for mara-matnr, "Material
s_mtart for mara-mtart. "Material Type
selection-screen end of block b2.
selection-screen begin of block b3 with frame title text-101.
parameters:
p_export(30) type c default '1366770724RM' obligatory , "Exporter ID
p_provi(30) type c default 'ONTARIO' obligatory ,
p_sumid(30) type c default 'SUM0704'.
"Province of Origin
selection-screen end of block b3.
selection-screen begin of block b4 with frame title text-104.
parameters:
r_summ radiobutton group zsum,
r_dets radiobutton group zsum,
r_mssng radiobutton group zsum, " maheedhar
R_NMSNG RADIOBUTTON GROUP ZSUM. " MAHEEDHAR
selection-screen skip.
parameter : p_sum as checkbox .
selection-screen end of block b4.
selection-screen begin of block b5 with frame title text-105.
select-options : s_i_kun for likp-kunnr.
selection-screen end of block b5.
*Data Declaration
data: i_fieldcat type slis_t_fieldcat_alv.
data: l_fieldcat type slis_fieldcat_alv .
data: v_lin type i.
data: v_lfstk type c value 'C'.
data: v_vbtyp type c value 'U'.
data: i_data1 type t_data1 occurs 0 with header line.
data : begin of t_T005t occurs 0.
include structure t005t.
data : end of t_t005t.
data: i_data2 type t_data2 occurs 0 with header line.
data: t_delv type t_data2 occurs 0 with header line.
data: t_bild type t_data2 occurs 0 with header line.
data: i_data3 type t_data3 occurs 0 with header line.
data: i_data4 type t_data4 occurs 0 with header line.
data: i_data5 type t_data5 occurs 0 with header line.
data: i_data6 type t_data6 occurs 0 with header line.
*Declare Internal table for ALV output.
data: begin of i_output occurs 0,
belnr like vbrk-vbeln,
posnr like vbrp-posnr,
bezei like t618t-bezei,
stawn like eipo-stawn,
text1 like t604t-text1,
quantity type p decimals 2,
meins like lips-meins,
value type p decimals 2,
verld like t_t005t-landx,
herkl like t_t005t-landx,
strlen, "ED1K938380
end of i_output.
maheedhar-start.
data : i_output1 like i_output occurs 0 with header line,
i_output2 like i_output occurs 0 with header line.
maheedhar-end
data : buff_out like i_output occurs 0 with header line.
data: begin of t_outsum occurs 0,
bezei like t618t-bezei,
stawn like eipo-stawn,
text1 like t604t-text1,
quantity type p decimals 2,
meins like lips-meins,
value type p decimals 2,
verld like t_t005t-landx,
herkl like t_t005t-landx,
end of t_outsum.
data : v_ans.
data : variante LIKE disvariant.
data : v_repid LIKE sy-repid.
data : wa_listheader TYPE slis_listheader.
data : t_listheader TYPE slis_t_listheader.
data : b_text(250).
data: evntS type slis_t_event with header line. " MAHEEDHAR
EVENT AT SELECTION-SCREEN
at selection-screen.
*For Autorisation check
perform authorisation_check.
Validation of Selection screen
perform check_entry.
EVENT START-OF-SELECTION
start-of-selection.
*Get data
perform select_data.
**For calling ALV function modules
MAHEEDHAR - START
if r_mssng eq 'X'.
DELETE I_OUTPUT WHERE BEZEI NE SPACE AND
STAWN NE SPACE AND
HERKL NE SPACE AND
VERLD NE SPACE.
DESCRIBE TABLE I_OUTPUT LINES V_LIN.
IF V_LIN > 0.
PERFORM DISPLAY_OUTPUT.
ELSE.
MESSAGE E000 WITH TEXT-130.
ENDIF.
elseif R_SUMM eq 'X' OR R_DETS EQ 'X'. "ENDIF. " MAHEEDHAR
MAHEEDHAR-END
describe table i_output lines v_lin.
if v_lin > 0.
buff_out[] = i_output[].
Begin of ED1K938380
delete buff_out where stawn ne space or "ED1K938380
verld eq space or
herkl eq space.
delete buff_out where strlen ne 'X' or
verld eq space or
herkl eq space.
End of ED1K938380
describe table buff_out lines v_lin.
Lines with no commodity code exists.
if v_lin gt 0.
concatenate text-902 text-903 into b_text.
concatenate text-906 text-907 into b_text. "ED1K938380
CALL FUNCTION 'POPUP_TO_CONFIRM'
EXPORTING
TITLEBAR = Text-901
TEXT_QUESTION = b_text
TEXT_BUTTON_1 = 'Yes'
TEXT_BUTTON_2 = 'No'
DEFAULT_BUTTON = '2'
IMPORTING
ANSWER = v_ans.
if v_ans eq '1'.
perform display_output.
endif.
else.
perform display_output.
endif.
else. " MAHEEDHAR
message e000 with text-130.
endif.
MAHEEDHAR-START
*"-- If non missing details radiobutton is selected
elseif r_nmsng = 'X'.
*"-- move data from i_output to i_output1.
i_output1[] = i_output[].
sort i_output by belnr.
sort i_output1 by belnr.
*"-- to get missing data
delete i_output1 where bezei ne space and
stawn ne space and
herkl ne space and
verld ne space.
loop at i_output.
*"-- compare two int tables with respective document number
read table i_output1 with key belnr = i_output-belnr.
if sy-subrc ne 0.
move-corresponding i_output to i_output2.
append i_output2.
clear i_output2.
endif.
endloop.
describe table i_output2 lines v_lin.
if v_lin gt 0.
perform display_output.
else.
message e000 with text-130.
endif.
MAHEEDHAR-END.
ENDIF. " MAHEEDHAR
FORM SELECT_DATA *
form select_data.
Data:l_strlen type i. "ED1K938380
*Get details from LIKP.
if s_i_kun[] is initial.
select likpvbeln likpkunnr
into corresponding fields of table i_data1
from likp
inner join vbuk on likpvbeln = vbukvbeln
where
likp~vkorg in s_vkorg and
likp~kunnr in s_kunnr and
likp~kunag in s_kunag and
likp~wadat_ist in s_wadat and
vbuk~wbstk = 'C' .
else.
select likpvbeln likpkunnr
into corresponding fields of table i_data1
from likp
inner join vbuk on likpvbeln = vbukvbeln
where
( ( likp~vkorg in s_vkorg and
likp~kunnr in s_kunnr and
likp~kunag in s_kunag and
likp~wadat_ist in s_wadat and
vbuk~wbstk = 'C' )
or
likp~kunnr in s_i_kun and
likp~wadat_ist in s_wadat and
vbuk~wbstk = 'C' ) .
endif.
if sy-subrc ne 0.
message e000 with text-200.
endif.
*Get details from table LIPS
select lips~vbeln
lips~posnr
vbfa~vbeln
vbfa~posnn
lips~matnr
lips~meins
lips~lfimg
mara~mtart
from lips
inner join vbfa on vbfavbelv = lipsvbeln
and vbfaposnv = lipsposnr
inner join mara on maramatnr = lipsmatnr
into table i_data2
for all entries in i_data1
where
lips~vbeln = i_data1-vbeln and
lips~matnr in s_matnr and
vbfa~vbeln in s_belnr and
mara~mtart in s_mtart and
vbfa~vbtyp_n = 'U'.
if sy-subrc ne 0.
message e000 with text-201.
endif.
t_delv[] = i_data2[].
t_bild[] = i_data2[].
sort t_delv by vbeln.
delete adjacent duplicates from t_delv comparing vbeln.
sort t_bild by vbeln ascending vbelv descending.
delete adjacent duplicates from t_bild comparing vbeln.
*Get details of Accounting document number
select vbeln fkart land1 from vbrk
into table i_data3
for all entries in t_bild
where vbeln = t_bild-vbelv and
bukrs in s_bukrs and
fkart in s_blart and
vkorg in s_vkorg and " MAHEEDHAR
land1 in s_verld. " MAHEEDHAR
sort i_data3.
*Get details from EIPO.
select vbrp~vbeln
vbrp~posnr
vbrp~matnr
vbrp~fkimg
vbrp~meins
eipo~verld
eipo~herkl
eipo~grwrt
eipo~stawn
eikp~expvz
from eikp
inner join vbrp on vbrp~vbeln = eikp~refnr
inner join eipo on eikp~exnum = eipo~exnum
and eipo~expos = vbrp~posnr
into table i_data4 for all entries in i_data3
where vbrp~vbeln = i_data3-vbeln.
eipo~verld in s_verld.
if sy-subrc ne 0.
message e000 with text-201.
endif.
IF R_MSSNG NE 'X' or r_nmsng = 'X'. " MAHEEDHAR
perform get_price.
ENDIF. " MAHEEDHAR
Get details from T618T.
select land1
expvz
bezei
from t618t
into table i_data5
for all entries in i_data4
where
land1 = 'CA' and " Getting for Canada only
expvz = i_data4-expvz and
spras = sy-langu.
select matnr from mara into table i_mara where matnr in s_matnr
and mtart in s_mtart.
Get details from T604T.
select land1
stawn
text1
from t604t
into table i_data6
for all entries in i_data4
where
land1 = i_data4-VERLD and
stawn = i_data4-stawn and
spras = sy-langu.
select * from T005t into table t_T005t where spras = sy-langu.
loop at i_data3.
loop at i_data4 where vbeln eq i_data3-vbeln.
clear : i_data1, i_data2.
read table i_data2 with key vbelv = i_data4-vbeln
posnv = i_data4-posnr.
read table i_data1 with key vbeln = i_data2-vbeln.
if not s_i_kun[] is initial.
check ( ( i_data1-kunnr in s_i_kun ) or
( i_data3-land1 in s_verld ) ).
else.
check i_data3-land1 in s_verld .
endif.
read table i_mara with key matnr = i_data4-matnr.
if sy-subrc eq 0.
read table i_data5 with key expvz = i_data4-expvz .
land1 = i_data3-land1.
read table i_data6 with key stawn = i_data4-stawn
land1 = i_data4-VERLD.
move i_data4-vbeln to i_output-belnr.
move i_data4-posnr to i_output-posnr.
move i_data5-bezei to i_output-bezei.
move i_data6-text1 to i_output-text1.
Begin of ED1K938380.
l_strlen = strlen( i_data4-stawn ).
if l_strlen < 8.
move 'X' to i_output-strlen.
endif.
End of ED1K938380.
move i_data4-stawn to i_output-stawn.
move i_data4-meins to i_output-meins.
read table t_T005t with key land1 = i_data3-land1.
move t_t005t-landx to i_output-verld.
if p_sum eq space.
if i_data4-herkl ne 'CA'.
i_output-herkl = c_for.
else.
read table t_T005t with key land1 = i_data4-herkl.
move t_t005t-landx to i_output-herkl.
endif.
else.
read table t_T005t with key land1 = i_data4-herkl.
move t_t005t-landx to i_output-herkl.
endif.
move i_data4-fkimg to i_output-quantity.
if i_data3-fkart eq c_rep.
read table t_dord with key vbeln = i_data4-vbeln
posnn = i_data4-posnr.
if sy-subrc eq 0.
read table t_sord with key vbeln = t_dord-vbelv
posnn = t_dord-posnv.
if sy-subrc eq 0.
read table t_hord with key vbeln = t_sord-vbelv
posnr = t_sord-posnv.
if sy-subrc eq 0.
read table t_ford with key vbeln = t_hord-vbeln
posnr = t_hord-uepos.
if sy-subrc eq 0.
read table i_price with key vbeln = t_ford-vbeln
posnr = t_ford-posnr.
if sy-subrc eq 0.
read table i_price1 with key knumv = i_price-knumv
kposn = t_ford-posnr.
if sy-subrc eq 0.
if i_price1-kpein ne 0.
i_output-value =
( i_price1-kbetr / i_price1-kpein ) *
i_data4-fkimg.
endif.
endif.
endif.
endif.
endif.
endif.
endif.
else.
move i_data4-grwrt to i_output-value.
endif.
append i_output.
clear i_output.
clear : i_data5, i_data6.
endif.
endloop.
endloop.
sort i_output by verld herkl bezei stawn.
endform.
FORM DISPLAY_OUTPUT *
This form is to create the ALV output
form display_output.
data: xevents type slis_t_event,
ls_event type slis_alv_event,
slis_ev_top_of_page type slis_formname value 'TOP_OF_PAGE',
slis_ev_end_of_list type slis_formname value 'END_OF_LIST'.
*Call Function 'REUSE_ALV_EVENTS' for top of page
call function 'REUSE_ALV_EVENTS_GET'
EXPORTING
i_list_type = 0
IMPORTING
et_events = xevents
EXCEPTIONS
list_type_wrong = 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.
read table xevents with key name = slis_ev_top_of_page
into ls_event.
if sy-subrc = 0.
move slis_ev_top_of_page to ls_event-form.
append ls_event to xevents.
endif.
read table xevents with key name = slis_ev_end_of_list
into ls_event.
if sy-subrc = 0.
move slis_ev_end_of_list to ls_event-form.
append ls_event to xevents.
endif.
if r_dets ne space.
*Call Function 'REUSE_ALV_FIELD_CATALOG_MERGE' for position fixing in
*the output.
call function 'REUSE_ALV_FIELDCATALOG_MERGE'
exporting
i_program_name = 'ZVRA0001FTB13'
i_internal_tabname = 'I_OUTPUT'
i_inclname = 'ZVRA0001FTB13'
I_STRUCTURE_NAME =
I_CLIENT_NEVER_DISPLAY = 'X'
I_INCLNAME =
i_bypassing_buffer = 'X'
i_buffer_active = ' '
changing
ct_fieldcat = i_fieldcat
exceptions
inconsistent_interface = 1
program_error = 2
others = 3.
if sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
endif.
loop at i_fieldcat into l_fieldcat.
l_fieldcat-key = ' '.
case l_fieldcat-fieldname.
when 'BELNR'.
l_fieldcat-seltext_m = text-912.
l_fieldcat-seltext_l = text-912.
l_fieldcat-reptext_ddic = text-912.
l_fieldcat-col_pos = '1'.
l_fieldcat-just = 'C'.
l_fieldcat-outputlen = '12'..
when 'POSNR'.
l_fieldcat-seltext_m = text-913.
l_fieldcat-seltext_l = text-913.
l_fieldcat-reptext_ddic = text-913.
l_fieldcat-col_pos = '2'.
l_fieldcat-just = 'C'.
l_fieldcat-outputlen = '6'.
when 'BEZEI'.
l_fieldcat-seltext_m = text-911.
l_fieldcat-seltext_l = text-911.
l_fieldcat-reptext_ddic = text-911.
l_fieldcat-col_pos = '3'.
l_fieldcat-just = 'C'.
l_fieldcat-outputlen = '15'..
when 'STAWN'.
l_fieldcat-seltext_m = text-111.
l_fieldcat-seltext_l = text-111.
l_fieldcat-reptext_ddic = text-111.
l_fieldcat-col_pos = '4'.
l_fieldcat-just = 'C'.
l_fieldcat-outputlen = '30'.
when 'TEXT1'.
l_fieldcat-seltext_m = text-112.
l_fieldcat-seltext_l = text-112.
l_fieldcat-outputlen = '40'.
l_fieldcat-col_pos = '5'.
l_fieldcat-just = 'C'.
l_fieldcat-reptext_ddic = text-112.
when 'QUANTITY'.
l_fieldcat-outputlen = '18'.
l_fieldcat-reptext_ddic = text-113.
l_fieldcat-seltext_m = text-113.
l_fieldcat-col_pos = '6'.
l_fieldcat-just = 'C'.
l_fieldcat-seltext_l = text-113.
when 'MEINS'.
l_fieldcat-outputlen = '8'.
l_fieldcat-reptext_ddic = text-114.
l_fieldcat-seltext_m = text-114.
l_fieldcat-col_pos = '7'.
l_fieldcat-just = 'C'.
l_fieldcat-seltext_l = text-114.
when 'VALUE'.
l_fieldcat-outputlen = '20'.
l_fieldcat-seltext_m = text-115.
l_fieldcat-seltext_l = text-115.
l_fieldcat-just = 'C'.
l_fieldcat-reptext_ddic = text-115.
when 'VERLD'.
l_fieldcat-outputlen = '20'.
l_fieldcat-seltext_m = text-116.
l_fieldcat-seltext_l = text-116.
l_fieldcat-just = 'C'.
l_fieldcat-reptext_ddic = text-116.
when 'HERKL'.
l_fieldcat-seltext_m = text-117.
l_fieldcat-seltext_l = text-117.
l_fieldcat-outputlen = '30'.
l_fieldcat-just = 'C'.
l_fieldcat-reptext_ddic = text-117.
when others.
l_fieldcat-no_out = 'X'.
endcase.
modify i_fieldcat from l_fieldcat.
endloop.
Call Function 'REUSE_ALV_LIST_DISPLAY' for dispaly of data in ALV.
call function 'REUSE_ALV_LIST_DISPLAY'
EXPORTING
i_callback_program = 'ZVRA0001FTB13'
it_fieldcat = i_fieldcat
it_events = xevents
is_layout = t_layout
i_save = 'A'
i_bypassing_buffer = 'X'
i_buffer_active = ' '
TABLES
t_outtab = i_output
EXCEPTIONS
program_error = 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.
else. " MAHEEDHAR
ELSEIF R_SUMM EQ 'X'. " MAHEEDHAR
sort i_output by verld herkl stawn bezei.
loop at i_output.
move-corresponding i_output to t_outsum.
collect t_outsum.
endloop.
*Call Function 'REUSE_ALV_FIELD_CATALOG_MERGE' for position fixing in
*the output.
call function 'REUSE_ALV_FIELDCATALOG_MERGE'
EXPORTING
i_program_name = 'ZVRA0001FTB13'
i_internal_tabname = 'T_OUTSUM'
i_inclname = 'ZVRA0001FTB13'
i_bypassing_buffer = 'X'
i_buffer_active = ' '
CHANGING
ct_fieldcat = i_fieldcat
EXCEPTIONS
inconsistent_interface = 1
program_error = 2
others = 3.
if sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
endif.
loop at i_fieldcat into l_fieldcat.
l_fieldcat-key = ' '.
case l_fieldcat-fieldname.
when 'BEZEI'.
l_fieldcat-seltext_m = text-911.
l_fieldcat-seltext_l = text-911.
l_fieldcat-reptext_ddic = text-911.
l_fieldcat-col_pos = '1'.
l_fieldcat-just = 'C'.
l_fieldcat-outputlen = '15'..
when 'STAWN'.
l_fieldcat-seltext_m = text-111.
l_fieldcat-seltext_l = text-111.
l_fieldcat-reptext_ddic = text-111.
l_fieldcat-col_pos = '2'.
l_fieldcat-just = 'C'.
l_fieldcat-outputlen = '30'.
when 'TEXT1'.
l_fieldcat-seltext_m = text-112.
l_fieldcat-seltext_l = text-112.
l_fieldcat-outputlen = '40'.
l_fieldcat-col_pos = '3'.
l_fieldcat-just = 'C'.
l_fieldcat-reptext_ddic = text-112.
when 'QUANTITY'.
l_fieldcat-outputlen = '18'.
l_fieldcat-reptext_ddic = text-113.
l_fieldcat-seltext_m = text-113.
l_fieldcat-col_pos = '4'.
l_fieldcat-just = 'C'.
l_fieldcat-seltext_l = text-113.
when 'MEINS'.
l_fieldcat-outputlen = '8'.
l_fieldcat-reptext_ddic = text-114.
l_fieldcat-seltext_m = text-114.
l_fieldcat-col_pos = '5'.
l_fieldcat-just = 'C'.
l_fieldcat-seltext_l = text-114.
when 'VALUE'.
l_fieldcat-outputlen = '20'.
l_fieldcat-seltext_m = text-115.
l_fieldcat-seltext_l = text-115.
l_fieldcat-col_pos = '6'.
l_fieldcat-just = 'C'.
l_fieldcat-reptext_ddic = text-115.
when 'VERLD'.
l_fieldcat-outputlen = '20'.
l_fieldcat-seltext_m = text-116.
l_fieldcat-seltext_l = text-116.
l_fieldcat-col_pos = '7'.
l_fieldcat-just = 'C'.
l_fieldcat-reptext_ddic = text-116.
when 'HERKL'.
l_fieldcat-seltext_m = text-117.
l_fieldcat-seltext_l = text-117.
l_fieldcat-outputlen = '30'.
l_fieldcat-col_pos = '8'.
l_fieldcat-just = 'C'.
l_fieldcat-reptext_ddic = text-117.
when others.
l_fieldcat-no_out = 'X'.
endcase.
modify i_fieldcat from l_fieldcat.
endloop.
Call Function 'REUSE_ALV_LIST_DISPLAY' for dispaly of data in ALV.
call function 'REUSE_ALV_LIST_DISPLAY'
EXPORTING
i_callback_program = 'ZVRA0001FTB13'
it_fieldcat = i_fieldcat
it_events = xevents
i_save = 'A'
is_layout = t_layout
i_default = 'X'
is_variant = variante
i_bypassing_buffer = 'X'
i_buffer_active = ' '
TABLES
t_outtab = t_outsum
EXCEPTIONS
program_error = 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.
MAHEEDHAR-START.
*"-- if detail summary checkbox is selected
elseIF R_MSSNG = 'X'.
PERFORM PREPARE_HEADER.
call function 'REUSE_ALV_FIELDCATALOG_MERGE'
exporting
i_program_name = 'ZVRA0001FTB13'
i_internal_tabname = 'I_OUTPUT'
i_inclname = 'ZVRA0001FTB13'
I_STRUCTURE_NAME =
I_CLIENT_NEVER_DISPLAY = 'X'
I_INCLNAME =
i_bypassing_buffer = 'X'
i_buffer_active = ' '
changing
ct_fieldcat = i_fieldcat
exceptions
inconsistent_interface = 1
program_error = 2
hi,
*& Report ZALV_FIELD_GRID1
REPORT ZALV_FIELD_GRID1
NO STANDARD PAGE HEADING.
TABLES MARA.
type-pools :slis.
TYPES : BEGIN OF TMARA ,
MATNR LIKE MARA-MATNR,
MEINS LIKE MARA-MEINS,
ERSDA LIKE MARA-ERSDA,
color(4) type c,
SEL type c,
LIGHT TYPE C,
END OF TMARA.
TYPES: BEGIN OF TMAKT,
MATNR LIKE MAKT-MATNR,
MAKTX LIKE MAKT-MAKTX,
MAKTG LIKE MAKT-MAKTG,
SEL TYPE C,
COLOR(4),
END OF TMAKT.
DATA: ITAB TYPE TMARA OCCURS 0 WITH HEADER LINE,
ITAB1 TYPE TMAKT OCCURS 0 WITH HEADER LINE,
wa_fieldcat type slis_fieldcat_alv,
fieldcat type slis_fieldcat_alv occurs 0,
i_layout type slis_layout_alv,
WA_LISTHEADER TYPE SLIS_LISTHEADER ,
i_LISTHEADER TYPE SLIS_LISTHEADER OCCURS 0,
V_EVENTS TYPE SLIS_T_EVENT ,
WA_EVENT TYPE SLIS_ALV_EVENT,
I_TITLE_MARA TYPE LVC_TITLE VALUE 'FIRST LIST DISPLAYED',
I_TITLE_MAKT TYPE LVC_TITLE VALUE 'SECONDRY LIST DISPLAYED',
SORT TYPE slis_t_sortinfo_alv WITH HEADER LINE,
PRINT_CONT type slis_print_alv.
SELECTION SCREE
selection-screen begin of block screen1 with frame title TEXT-001.
SELECTION-SCREEN SKIP.
SELECTION-SCREEN COMMENT /32(35) COMM1.
SELECTION-SCREEN ULINE /27(35).
SELECTION-SCREEN SKIP.
SELECT-OPTIONS MATNR FOR MARA-MATNR.
SELECTION-SCREEN SKIP.
SELECTION-SCREEN ULINE.
SELECTION-SCREEN COMMENT /30(50) COMM2.
SELECTION-SCREEN ULINE /27(40).
SELECTION-SCREEN SKIP.
SELECT-OPTIONS ERSDA FOR MARA-ERSDA.
SELECTION-SCREEN SKIP.
selection-screen end of block screen1.
INITIALIZATION
INITIALIZATION.
MATNR-low = '23'.
MATNR-high = '1000'.
MATNR-option = 'BT'.
MATNR-sign = 'I'.
APPEND MATNR.
ERSDA-low = '20030124'.
ERSDA-high = '20050302' .
APPEND ERSDA.
PERFORM FILLFIELD.
PERFORM FILLLAYOUT.
PERFORM build_print_params.
PERFORM FILL_SORT.
PERFORM EVENT_CALL.
PERFORM POPULATE_EVENT.
SELECTION-SCREEN OUTPUT
AT SELECTION-SCREEN OUTPUT.
comm1 ='SELECT MATERIAL NUMBER RANGE'.
comm2 ='SELECT MATERIAL CREATION DATE'.
START-OF-SELECTION
START-OF-SELECTION.
PERFORM READDATA.
PERFORM POPDATA.
*& Form READDATA
text
FORM READDATA .
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
INPUT = MATNR-LOW
IMPORTING
OUTPUT = MATNR-LOW.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
INPUT = MATNR-HIGH
IMPORTING
OUTPUT = MATNR-HIGH.
SELECT MATNR
ERSDA
MEINS
FROM MARA
INTO CORRESPONDING FIELDS OF
TABLE ITAB
WHERE MATNR IN MATNR AND ERSDA IN ERSDA.
LOOP AT ITAB.
data id_color type i VALUE 1.
data id_colors(2) type c.
IF ITAB-MATNR < '000000000000000100'.
ITAB-LIGHT = '1'.
ELSEIF ITAB-MATNR < '000000000000000150' AND ITAB-MATNR >
'000000000000000100' .
ITAB-LIGHT = '2'.
ELSE.
ITAB-LIGHT = '3'.
ENDIF.
id_color = id_color + 1.
if id_color > 7.
id_color = 1.
endif.
id_colors = id_color.
concatenate 'C' id_colors '10' into itab-color.
modify itab.
CLEAR ITAB.
endloop.
ENDFORM. " READDATA
Form FILLFIELD
FORM FILLFIELD .
WA_FIELDCAT-FIELDNAME = 'MATNR'.
WA_FIELDCAT-KEY = 'X'.
WA_FIELDCAT-COL_POS = '1'.
WA_FIELDCAT-outputlen = 20.
WA_FIELDCAT-HOTSPOT = 'X'.
wa_fieldcat-seltext_m = 'MATERIAL NUMBER'.
*WA_FIELDCAT-EMPHASIZE = 'C210'.
APPEND WA_FIELDCAT TO FIELDCAT.
clear wa_fieldcat.
WA_FIELDCAT-FIELDNAME = 'MEINS'.
WA_FIELDCAT-COL_POS = '2'.
*WA_FIELDCAT-EMPHASIZE = 'C510'.
WA_FIELDCAT-outputlen = 10.
wa_fieldcat-seltext_m = 'UNIT'.
APPEND WA_FIELDCAT TO FIELDCAT.
clear wa_fieldcat.
WA_FIELDCAT-FIELDNAME = 'ERSDA'.
WA_FIELDCAT-COL_POS = '3'.
WA_FIELDCAT-outputlen = 15.
*WA_FIELDCAT-EDIT_MASK = 'DD.MM.YYYY'.
*WA_FIELDCAT-EMPHASIZE = 'C710'.
wa_fieldcat-seltext_m = 'CREAT DATE'.
APPEND WA_FIELDCAT TO FIELDCAT.
clear wa_fieldcat.
ENDFORM. "FILLFIELD
Setup print parameters
form build_print_params.
PRINT_CONT-reserve_lines = '3'. "Lines reserved for footer
PRINT_CONT-no_coverpage = 'X'.
endform. " BUILD_PRINT_PARAMS
Form POPDATA
FORM POPDATA .
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_INTERFACE_CHECK = ' '
I_BYPASSING_BUFFER = ' '
I_BUFFER_ACTIVE = ' '
I_CALLBACK_PROGRAM = sy-repid
I_CALLBACK_PF_STATUS_SET = ' '
I_CALLBACK_USER_COMMAND = 'USER-COMMAND'
I_CALLBACK_TOP_OF_PAGE = 'TOPPAGE'
I_CALLBACK_HTML_TOP_OF_PAGE = ' '
I_CALLBACK_HTML_END_OF_LIST = ' '
I_STRUCTURE_NAME =
I_BACKGROUND_ID = ' '
I_GRID_TITLE = I_TITLE_MARA
I_GRID_SETTINGS =
IS_LAYOUT = I_LAYOUT
IT_FIELDCAT = fieldcat
IT_EXCLUDING =
IT_SPECIAL_GROUPS =
IT_SORT = SORT[]
IT_FILTER =
IS_SEL_HIDE =
I_DEFAULT = 'X'
I_SAVE = ' '
IS_VARIANT =
IT_EVENTS = V_EVENTS
IT_EVENT_EXIT =
IS_PRINT = PRINT_CONT
TABLES
T_OUTTAB = ITAB
EXCEPTIONS
PROGRAM_ERROR = 1
OTHERS = 2
ENDFORM. " POPDATA
Form TOPPAGE
FORM TOPPAGE.
REFRESH I_LISTHEADER.
DATA: ld_lines type i,
ld_linesc(10) type c,
I_DATE(10) TYPE C,
I_INFO LIKE WA_LISTHEADER-INFO.
WA_LISTHEADER-TYP = 'H'.
WA_LISTHEADER-INFO = 'MATERIAL DETAIL'.
APPEND WA_LISTHEADER TO I_LISTHEADER.
CLEAR WA_LISTHEADER.
WA_LISTHEADER-TYP = 'S'.
WA_LISTHEADER-KEY = 'DATE :'.
CONCATENATE SY-DATUM+6(2) '.'
SY-DATUM+4(2) '.'
SY-DATUM(4) INTO I_DATE.
WA_LISTHEADER-INFO = I_datE.
APPEND WA_LISTHEADER TO I_LISTHEADER.
CLEAR WA_LISTHEADER.
describe table ITAB lines ld_lines.
ld_linesc = ld_lines.
concatenate 'TOTAL NUMBER OF RECORD SELECTED: ' ld_linesc
into I_INFO separated by space.
WA_LISTHEADER-TYP = 'A'.
WA_LISTHEADER-INFO = I_INFO.
append WA_LISTHEADER to I_LISTHEADER.
clear: WA_LISTHEADER , I_INFO.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
IT_LIST_COMMENTARY = I_LISTHEADER
I_LOGO = 'ENJOYSAP_LOGO'.
ENDFORM. "TOPPAGE
Form FILLLAYOUT
FORM FILLLAYOUT .
i_layout-zebra = 'X'.
i_layout-info_fieldname = 'COLOR'.
i_layout-box_fieldname = 'SEL'.
I_LAYOUT-lights_fieldname = 'LIGHT'.
I_LAYOUT-EDIT ='X'.
I_LAYOUT-colwidth_optimize = 'X'.
I_LAYOUT-window_titlebar = 'EXAMPLE FOR ALV GRID'.
I_LAYOUT-no_totalline = 'X'.
ENDFORM. "FILLLAYOUT
Form FILL_SORT
FORM FILL_SORT .
SORT-DOWN = 'X'.
SORT-SPOS = 1.
SORT-FIELDNAME = 'MATNR'.
SORT-tabname = 'MARA'.
APPEND SORT.
ENDFORM. " FILL_SORT
Form EVENT_CALL
FORM EVENT_CALL .
DATA: I_EVENT LIKE V_EVENTS.
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
I_LIST_TYPE = 0
IMPORTING
ET_EVENTS = V_EVENTS.
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. " EVENT_CALL
Form POPULATE_EVENT
FORM POPULATE_EVENT .
READ TABLE V_EVENTS INTO WA_EVENT WITH KEY NAME = 'USER_COMMAND'.
IF SY-SUBRC EQ 0.
WA_EVENT-FORM = 'USER_COMMAND'.
MODIFY V_EVENTS FROM WA_EVENT TRANSPORTING FORM WHERE NAME =
WA_EVENT-NAME.
READ TABLE V_EVENTS WITH KEY NAME = SLIS_EV_END_OF_PAGE
INTO WA_EVENT.
IF SY-SUBRC = 0.
move 'END_OF_PAGE' to WA_EVENT-FORM.
MODIFY V_EVENTS FROM WA_EVENT TRANSPORTING FORM WHERE NAME =
WA_EVENT-NAME.
endif.
ENDIF.
ENDFORM. "POPULATE_EVENT
FORM END_OF_PAGE.
write: sy-uline(50).
skip.
write:/40 'Page:', sy-pagno .
ENDFORM.
*& Form USER_COMMAND
FORM USER_COMMAND USING R_UCOMM LIKE SY-UCOMM
RS_SELFIELD TYPE SLIS_SELFIELD.
CASE R_UCOMM.
WHEN '&IC1'.
CASE RS_SELFIELD-FIELDNAME.
when 'MATNR'.
read table itab with key matnr = RS_SELFIELD-VALUE.
if sy-subrc = 0.
PERFORM DATA_RETRIEVAL_MAKT USING RS_SELFIELD-VALUE.
PERFORM BUILD_FIELDCATLOG_MAKT.
PERFORM FILLLAYOUT_MAKT.
PERFORM DISPLAY_ALV_MAKT.
CLEAR RS_SELFIELD.
ENDIF.
ENDCASE.
ENDCASE.
ENDFORM. "user_command
Form DATA_RETRIEVAL_MAKT
FORM DATA_RETRIEVAL_MAKT USING TMATNR .
SELECT MATNR
MAKTX
MAKTG
UP TO 100 ROWS
FROM MAKT
INTO TABLE ITAB1
WHERE SPRAS = 'EN' AND MATNR = TMATNR.
LOOP AT ITAB1.
data id_color type i VALUE 1.
data id_colors(2) type c.
id_color = id_color + 1.
if id_color > 7.
id_color = 1.
endif.
id_colors = id_color.
concatenate 'C' id_colors '10' into itab1-color.
modify itab1.
CLEAR ITAB1.
ENDLOOP.
ENDFORM. "DATA_RETRIEVAL_MAKT
Form FILLLAYOUT_MAKT
FORM FILLLAYOUT_MAKT .
CLEAR I_LAYOUT.
i_layout-zebra = 'X'.
i_layout-info_fieldname = 'COLOR'.
i_layout-box_fieldname = 'SEL'.
I_LAYOUT-EDIT ='X'.
I_LAYOUT-colwidth_optimize = 'X'.
I_LAYOUT-window_titlebar = 'EXAMPLE FOR ALV GRID'.
ENDFORM. " LAYOUT_MAKT
Form BUILD_FIELDCATLOG_MAKT
FORM BUILD_FIELDCATLOG_MAKT .
REFRESH FIELDCAT.
WA_FIELDCAT-FIELDNAME = 'MATNR'.
WA_FIELDCAT-KEY = 'X'.
WA_FIELDCAT-COL_POS = '1'.
*WA_FIELDCAT-EDIT_MASK = 'DD.MM.YYYY'.
WA_FIELDCAT-EMPHASIZE = 'C510'.
wa_fieldcat-seltext_m = 'MATERIAL NUMBER'.
APPEND WA_FIELDCAT TO FIELDCAT.
clear wa_fieldcat.
WA_FIELDCAT-FIELDNAME = 'MAKTX'.
WA_FIELDCAT-COL_POS = '2'.
WA_FIELDCAT-EMPHASIZE = 'C710'.
wa_fieldcat-seltext_m = 'MATERIAL DESCRIPTION'.
APPEND WA_FIELDCAT TO FIELDCAT.
clear wa_fieldcat.
WA_FIELDCAT-FIELDNAME = 'MAKTG'.
WA_FIELDCAT-COL_POS = '3'.
WA_FIELDCAT-EMPHASIZE = 'C210'.
wa_fieldcat-seltext_m = 'MATERIAL DESCRIPTION'.
APPEND WA_FIELDCAT TO FIELDCAT.
clear wa_fieldcat.
ENDFORM. " BUILD_FIELDCATLOG_MAKT
Form DISPLAY_ALV_MAKT
FORM TOP-OF-PAGE.
REFRESH I_LISTHEADER.
DATA: ld_lines type i,
ld_linesc(10) type c,
I_DATE(10) TYPE C,
I_INFO LIKE WA_LISTHEADER-INFO.
WA_LISTHEADER-TYP = 'H'.
WA_LISTHEADER-INFO = 'MATERIAL DESCRIPTION FOR SELECTED NUMBER'.
APPEND WA_LISTHEADER TO I_LISTHEADER.
CLEAR WA_LISTHEADER.
WA_LISTHEADER-TYP = 'S'.
WA_LISTHEADER-KEY = 'DATE :'.
CONCATENATE SY-DATUM+6(2) '.'
SY-DATUM+4(2) '.'
SY-DATUM(4) INTO I_DATE.
WA_LISTHEADER-INFO = I_datE.
APPEND WA_LISTHEADER TO I_LISTHEADER.
CLEAR WA_LISTHEADER.
describe table ITAB1 lines ld_lines.
ld_linesc = ld_lines.
concatenate 'TOTAL NUMBER OF RECORD SELECTED: ' ld_linesc
into I_INFO separated by space.
WA_LISTHEADER-TYP = 'A'.
WA_LISTHEADER-INFO = I_INFO.
append WA_LISTHEADER to I_LISTHEADER.
clear: WA_LISTHEADER , I_INFO.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
IT_LIST_COMMENTARY = I_LISTHEADER
I_LOGO = 'ENJOYSAP_LOGO'.
I_END_OF_LIST_GRID =
I_ALV_FORM =
ENDFORM. "TOP-OF-PAGE
*& Form DISPLAY_ALV_MAKT
text
FORM DISPLAY_ALV_MAKT .
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = SY-REPID
I_CALLBACK_TOP_OF_PAGE = 'TOP-OF-PAGE'
I_GRID_TITLE = I_TITLE_MAKT
IS_LAYOUT = I_LAYOUT
IT_FIELDCAT = fieldcat
TABLES
T_OUTTAB = ITAB1
EXCEPTIONS
PROGRAM_ERROR = 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. " DISPLAY_ALV_MAKT
Regards
Ashok kumar -
Function module for updating EIPO-STAWN
Hi all,
I need to update the standard table EIPO with the field STAWN. If there are any Function Modules existing for this, please do let me know.
Your inputs are greatly appreciated.
Thanks in advance,
Vamsee.Hi,
It looks like there is no FM available for this. Instead please check the following link.
Foreign Trade Data
Thanks
Ernesto. -
Problem with field EIPO-SEGAL in Foreing trade
Hi all,
We have a problem with a field of foreign trade. The field is the EIPO-SEGAL. We customizing (path: Sales and Distribution -> Foreign Trade / Customs -> Periodic Declarations -> Control Data -> Inclusion and Exclusion Indicators -> Assign Item Categories for SD to Sales Orders / Assign to Item Categories for Deliveries SD) for a standard item category (TAX = Non-stock item) the exclusion indicator (01 = Exclusion indicator INTRASTAT). The material is a service provided to a client community, so it is not necessary to consider the bill in the Intrastat declaration (legal services do not have to testify).
We have also cleared the GRWR condition for the particular sector of the material (50 = Services)
The problem we detected is that this field is not automatically determined by generating a delivery document. This causes that when the invoice is generated, with reference to delivery, can not create the accounting document automatically require data on foreign trade.
We have tried to locate some OSS note but without result for our problem.
We do not know if it is a problem of customizing or is it a program error.
Could anyone guide me on how to resolve this?
I hope I explained it so that it understands (my English is not very good)
Best Regards.
Marga LluvaHi all,
We have a problem with a field of foreign trade. The field is the EIPO-SEGAL. We customizing (path: Sales and Distribution -> Foreign Trade / Customs -> Periodic Declarations -> Control Data -> Inclusion and Exclusion Indicators -> Assign Item Categories for SD to Sales Orders / Assign to Item Categories for Deliveries SD) for a standard item category (TAX = Non-stock item) the exclusion indicator (01 = Exclusion indicator INTRASTAT). The material is a service provided to a client community, so it is not necessary to consider the bill in the Intrastat declaration (legal services do not have to testify).
We have also cleared the GRWR condition for the particular sector of the material (50 = Services)
The problem we detected is that this field is not automatically determined by generating a delivery document. This causes that when the invoice is generated, with reference to delivery, can not create the accounting document automatically require data on foreign trade.
We have tried to locate some OSS note but without result for our problem.
We do not know if it is a problem of customizing or is it a program error.
Could anyone guide me on how to resolve this?
I hope I explained it so that it understands (my English is not very good)
Best Regards.
Marga Lluva -
How to link tables EKKO, EKPO, EIKP and EIPO
What I'm trying to do is create a view based on these four tables. EKPO contains multiple rows with the same values for EBELN. EKKO contains all distinct values for EBELN. I am trying to pick up all rows from both tables where EBELN in EKPO is the same as in EKKO. This is simple enough for a select statement to handle, without creating a view. The tricky part is linking the relevant rows selected from EKKO and EKPO to EIKP and EIPO. I tried using EXNUM to link EKKO, EIKP and EIPO, but I'm not sure that EXNUM contains distinct values for all 3 tables. In the case of EIKP it doesn't matter because the values for the fields I want (VORNU and VORNA) will be the same for the rows selected from EKKO and EKPO. The problem is with linking EIPO to my selections. If I knew that EXNUM was distinct for all rows in EIPO there would be no problem. However, I have seen some cases where multiple rows in EIPO have the same values for EXNUM. If I am using EXNUM in EIPO as a key field I have no way of being sure that the fields I want to pick up from EIPO (NACNU, BEHOE, NACD2, PRUEL and NACN3) contain the correct values I require. An example of what I am trying to do might make this clearer:
Table EKKO:
EBELN BEDAT WAERS
420000001 10.08.2007 USD
Table EKPO:
EBELN WERKS MATNR MENGE NETWR NETPR TXZ01
420000001 3500 m1 q1 nw1 cnf1 mat1
420000001 3500 m2 q2 nw2 cnf2 mat2
420000001 3000 m3 q3 nw3 cnf3 mat3
Table EIKP:
VORNU VORDA
125/45 12.08.2007
Table EIPO: (Corresponding to the above three rows in EKPO)
NACNU BEHOE NACD2 PRUEL NACN3
1234 1001 30.08.2007 28.08.2007 xx
1235 1002 27.08.2007 29.08.2007 yy
1236 1003 18.08.2007 16.08.2007 zz
So basically, given the above table entries, I want that the result of my selection should be:
| ROW1 | ROW2 | ROW3
EBELN: | 420000001 | 420000001 | 420000001
BEDAT: | 10.08.2007 | 10.08.2007 | 10.08.2007
WAERS: | USD | USD | USD
WERKS: | 3500 | 3500 | 3000
MATNR: | m1 | m2 | m3
MENGE: | q1 | q2 | q3
NETWR: | nw1 | nw2 | nw3
NETPR: | cnf1 | cnf2 | cnf3
TXZ01: | mat1 | mat2 | mat3
VORNU: | 125/45 | 125/45 | 125/45
VORDA: | 12.08.2007 | 12.08.2007 | 12.08.2007
NACNU: | 1234 | 1235 | 1236
BEHOE: | 1001 | 1002 | 1003
NACD2: | 30.08.2007 | 27.08.2007 | 18.08.2007
PRUEL: | 28.08.2007 | 29.08.2007 | 16.08.2007
NACN3: | xx | yy | zz
Sorry for the extremely long post. If anyone can shed some light on this I'd really appreciate it. Thanks.
Kalselect req. fields + a~exnum
from ekko as a
inner join ekpo as b
on aebeln = bebeln
into table gt_ekko_ekpo
where.........if u any conditions...
select req.fields from
eikp
into table gt_eikp
for all entries in gt_ekko_ekpo
where exnum = gt_ekko_ekpo-exnum.
select req.fields
from eipo
into table gt_eipo
for all entries in gt_eikp
where exnum = gt_eikp-exnum.
and also ekpo and eipo are line items tables , so for each exnum, will have multiple lines items in eipo table.
imp. the above and check whether, getting the req. result or not.
next in view , maintain rel. among these 4 tables.
ekko -ekpo, ekko-eikp, eikp-eiko. -
How to Update the INTRASTAT field for Inclusion/Exclulsion (EIPO-SEGAL)
I would need to know how to update this field in transaction ENPA when the invoice is already posted ( so we cannot use the VF02) from an ABAP program that update the INTRASTAT data for an Exportation.
This field can be found in EIPO-SEGAL
Thanks in advance.Hi
See the Std Doc of this field
Exclusion/Inclusion indicator for declara. to authorities
Using this indicator, you can control if a document or a document item (SD billing document, MM purchase order) will be excluded from or included in one or more types of declarations to the authorities.
Proceed as follows:
1. Define the inclusion or exclusion indicator. Define for which declaration type an inclusion or exclusion is to take place.
2. Assign the indicator to the document or document item that you want to include in or exclude from a declaration. The assignment takes place in the Foreign Trade data of the document.
3. If you also want to exclude document items with particular item types from a declaration, assign an exclusion indicator to the corresponding item types in Customizing.
Example
You want to define an exclusion indicator that excludes documents from the EXTRASTAT and KOBRA declaration. Create an exclusion indicator and select the "exclusion column" in the definition of exclusion indicators for the EXTRASTAT and KOBRA declaration types.
As soon as this indicator is assigned to a document, this document will not be included in the EXTRASTAT and KOBRA declarations.
Note
Inclusion or exclusion indicators assigned at FT data header level in the document apply to all document items if there is no other indicator at item level.
in our case the values for this field are '01'
take the help of a functional consultant to populate this field
Reward if useful
regards
Anji -
How to populate EIPO-HERKL in VL01N for domestic shipments
hi experts,
i am trying to populate the field 'country of origin' (EIPO-HERKL) while creating deliveries using VL01N. the field gets populated for export shipments, but remains blank in case of domestic shipments. i tried user exit EXIT_SAPLV50E_003, but it is not getting hit for domestic shipments. kindly advise other alternatives in terms of user exits / BADIs.
thanks and regards,
GurleenHello, I have the same problem , how to populate EIPO-HERKL in VL01N for domestic shipments ?
感谢您的协助和持续支持
Thanks again for your assistance & continued support.
Fiorenzo Di Marco -
BADI/user exit to be used EIPO-TEXT1 field of the outbound delivery line item?
Hi ABAPERS,
Need some help on an enhancement with reference to outbound delivery in SCM module.I have a requirement for an enhancement to ensure that the License Check is performed for each Delivery Item based on the Material`s Export Control Parameters and updating the license number identified against each of the line item in the outbound delivery in a predetermined field.
Basically, Using enhancement, find the appropriate License based on the information fetched from the Delivery Document and check if this is matching with the available License Information. Then the appropriate License fetched should be visible in the License Log of the Delivery Document.
The valid License No. fetched should be updated at the Delivery Document Item – Foreign Trade – Comments Tab-Description Field 1.(ie. populate the license T606Z-GENNR in EIPO-TEXT1 field of the outbound delivery line item.).
Could you please advise on the BADI/user exit to be used in this case. Request your inputs.I found the solution myself. I was actually not needing a user-exit to do this. I just simply solved it by using function modules READ_TEXT and SAVE_TEXT in a customer program.
Regards. -
User Exit for VL01N/VL2N to modify eipo-herkl
Hi.
I want to modify value of eipo-herkl(Country of origin) when save data, in T-CD VL01N/VL02N.
I find the User-Exit: MV50AFZ1(form: USEREXIT_SAVE_DOCUMENT).
But it cannot be done.
Can anybody tell me, how can i update eipo-herkl instead of default value in T-CD VL01N/VL02N when push save button?
regards,
HuangHi all, thank you for response.
The User-Exit EXIT_SAPLV50E_003 is for VL01N only, and executed only one time when you input item data. It is for export item data default.
In EXIT_SAPLV50E_003, you can not change the value of eipo-herkl.
What I want is to change value of eipo-herkl when Save button is pushed, for VL01N and VL02N both.
Is there any Badi can do it?
regards,
Huang -
Trying to link EIPO foreign trade data to VBAK,LIPS,LIKP,KNA1,TVROT
Hi
I am trying to link table EIKO - Foreign Trade data on delivery item data to my existing Quickview which has the following tables,
VBAK - Sales Doc header
LIPS - Delivery item
LIKP - Delivery header
TVROT - Route
KNA1 - general data in customer master
But when added SAP says 'no relationship Found'
Do i need to add another table as a common link ?- if so which one?
Many thanks for your help and advise
TonyHi
I'm not sure what you want to do. But the link is in EIKP-REFNR. With this field you can link to PO, deliv, invoice and so on.
I hope this helps you
Regards
Eduardo -
Retreive company code data from t001k and plants from t001w based on bwkey
here is my sample code pls.
pls look into the perform <b>PERFORM F_GET_COMPANY_CODE</b>.
and also the link between the tables (custom) like ysda_exp_prtlog,
Purpose: The Monthly export declaration summarizes all SAD *
export documents produced by the system. For each *
plant in France this declaration has to be handed to *
the Customs Authorities, together with copies of all *
invoices mentioned in the report. *
Preds/Successors : - *
External Datasets: - *
INCLUDE PROGRAM : YYSDFORM *
MODIFICATION LOG
Date | Change Number | Initials | Description
*01/10/03| G9DK943416 | AXJIRAP | INITIAL PROGRAM *
*03/10/03| G9DK943416 | TXHONGP | CREATE PRINT-PROGRAM FOR ACCELIO *
*26/10/03| G9DK943416 | KXSAWAS | Merge all Accelio forms into one *
*02/02/04| G9DK959869 | KXSAWAS | Bug fix for Intercompany invoice *
| | | and updating printing no. in *
| | | YSDA_DOC_NUMBER.
*09/02/04| G9DK960368 | KXSAWAS | TICKET AM6219029 various fix *
| G9DK960972 | KXUMNAUY | -Add yuei for download file *
| G9DK961073 | | -Calculate invoice in case *
| G9DK961190 | | invoce is not yet made *
| G9DK961211 | | -Fixed message type when there is*
| | | no data found *
*18/02/04| G9DK961418 | PXSOPHO | -Shift the position in download *
| | | file
*26/02/04| G9DK962077 | kxumnauy | TICKET AM6219029 various fix *
| G9DK962238 | | TICKET AM6289971 fix export file *
| G9DK962271 | |
*18/03/04| G9DK963806 | PXSOPHO | TICKET AM6442955,AM6384438
| G9DK964432 | | - print only 4 chars of the
| G9DK964590 | | export procedure *
| | KXUMNAUY | - Fix internal report
| | KXSAWAS | - Fix invoice currency to EUR.
| | | - Fix SUASUNIC probelm when
| | | download file
*09/06/04| G9DK968994 | KXUMNAUY |TICKET AM6789203
| G9DK969188 | |- Fix box 4 to print the department
| G9DK969246 | |code(first 2 char of the postal)
| G9DK969319 | |- Fix to print all invoice numbers
| G9DK969345 | |reported in the section 3
| G9DK969466 | |- Fix in case invoice currency is
| | |not EUR, use local currency from
| | |accounting document
| | |- Fix in case there are different
| | |codes are loaded on one truck
| | |- Fix the invoice amount in column
| | |27 has to be the amount relating to
| | |the line item
| | |- Fix the issue that Pro forma
| | |invoice for STO (ZF8)shouldn't be
| | |counted to be the final Interco
| | |invoice
*20/08/04| G9DK972875 | KXUMNAUY |AM7387219
| G9DK973032 | |-Exclude samples from the internal
| | |sections 1 and 2
| | |-Data pages: Column 11. When the
| | |invoice amount is less then 1.000
| | |EUR and the quantity is less then.
| | |1.000 then "******" (6 x *) has to
| | |be printed
*07/02/05| G9DK983160 | RXBOONG |AM8522207
| G9DK983168 | |Fix download to unix file
*17/08/06| G9DK9A02DZ | NKONGNG |AM1983727:
| G9DK9A02IK | |-do not show sample orders
| | | (order type FD or ZFD)
| | |AM2985407:
| | |-skip all T2L* documents
*15/12/06| G9DK9A05GB | ZZPWANA | AM10208238
| | The Monthly Export Declaration for plant FR95
| | is showing invoice amounts in SGD in column
| | 27, where amounts in EUR should be shown. As
| | the amounts are labeled as EUR in column 26
| | this is unacceptable.The second issue is that
| | there are no invoice numbers shown in column
| | REM.
| | >> ZZPWANA:AM10208238:G9DK9A05GB <<
| | >> ZZPWANA:AM10208238:G9DK9A05GJ <<
*05/02/07| G9BK900812 | PPATTAN |AM10687113
| G9DK9A0661 | |Correction to the Monthly Export
| | |Declaration alpha character to
| | |numeric field
| |
*09/07/07| G9DK9A09ND |VSRKODA Replace plant with companycode,add
new column plant ,add new logic to
verify that we had received * *
BAEcOMPLETE RESPONSE (fROM FC)
for all the export transactions
REPORT YSDF5092 LINE-SIZE 310
LINE-COUNT 65
NO STANDARD PAGE HEADING
MESSAGE-ID YSD_GENERAL.
INCLUDE PROGRAM FOR ACCELIO *
INCLUDE YYSDFORM. "Include for Accelio Print Process
INCLUDE YSDF006B_INCLUDE.
T A B L E S *
TABLES: NAST.
T Y P E S *
TYPES : BEGIN OF TY_RAW,
WERKS LIKE YSDA_EXP_PRTLOG-YY_PLANT,
*-->Begin of G9DK9A09ND -VSRKODA -09/07/2007
BWKEY LIKE YSDA_EXP_PRTLOG-YY_PLANT,
VALUE_FROM LIKE YCACEDI-VALUE_FROM,
*<-- End of G9DK9A09ND
HEADER_SHT LIKE YSDA_EXP_PRTLOG-YY_HEADER_TYP,
INTERNAL_NO LIKE YSDA_EXP_PRTLOG-YY_INTERNAL_NO, "G9DK962238
PRINT_DATE LIKE YSDA_EXP_PRTLOG-YY_PRINT_DATE,
PRINT_TIME LIKE YSDA_EXP_PRTLOG-YY_PRINT_TIME,
DOCUMENT_CODE LIKE YSDA_EXP_PRTLOG-YY_DOCUMENT_CODE,
HEADER_TYP LIKE YSDA_EXP_PRTLOG-YY_HEADER_TYP,
DELIVERY LIKE YSDA_EXP_PRTLOG-YY_DELIVERY,
INVOICE_AMT LIKE YSDA_EXP_PRTLOG-YY_INVOICE_AMT,
EX_RATE LIKE YSDA_EXP_PRTLOG-YY_EX_RATE,
CURRENCY LIKE YSDA_EXP_PRTLOG-YY_CURRENCY,
INTERNAL_NO LIKE YSDA_EXP_PRTLOG-YY_INTERNAL_NO, "G9DK962238
EXTERNAL_NO LIKE YSDA_EXP_PRTLOG-YY_EXTERNAL_NO,
COMMODITY LIKE YSDA_EXP_PRTLOG-YY_COMMODITY,
REPORT_FLAG LIKE YSDA_EXP_PRTLOG-YY_REPORT_FLAG, "G9DK962077
END OF TY_RAW.
TYPES : BEGIN OF TY_DATA,
HEADER_TYP LIKE YSDA_EXP_PRTLOG-YY_HEADER_TYP,
INTERNAL_NO LIKE YSDA_EXP_PRTLOG-YY_INTERNAL_NO,
PRINT_DATE LIKE YSDA_EXP_PRTLOG-YY_PRINT_DATE,
ZOLLA LIKE EIKP-ZOLLA,
STGBE LIKE EIKP-STGBE,
EXPVZ LIKE EIKP-EXPVZ,
CONTA LIKE EIKP-CONTA,
IEVER LIKE EIKP-IEVER,
PDEST LIKE KNA1-LAND1,
1DEST LIKE KNA1-LAND1,
COMMODITY LIKE YSDA_EXP_PRTLOG-YY_COMMODITY,
STATISTIC TYPE I,
LFIMG LIKE LIPS-LFIMG,
L15 TYPE I,
REGFI(2),
CURRENCY LIKE YSDA_EXP_PRTLOG-YY_CURRENCY,
INVOICE_AMT TYPE I,
ZDELN LIKE VBRK-VBELN,
LIVRE(4),
EXPRF LIKE EIPO-EXPRF,
EXART LIKE EIPO-EXART,
NTGEW LIKE LIKP-NTGEW,
YY_SEQTAXNO LIKE VBRK-YY_SEQTAXNO, "G9DK959869
END OF TY_DATA.
TYPES : BEGIN OF TY_HEADER,
HEADER_SHT LIKE YSDA_EXP_PRTLOG-YY_HEADER_TYP,
HEADER_TYP LIKE YSDA_EXP_PRTLOG-YY_HEADER_TYP,
PRINT_NO LIKE YSDA_DOC_NUMBER-YY_PRINT_NO,
WERKS LIKE T001W-WERKS,
*-->Begin of G9DK9A09ND -VSRKODA -09/07/2007
BUKRS LIKE T001K-BUKRS,
BWKEY LIKE T001K-BWKEY,
VALUE_FROM LIKE YCACEDI-VALUE_FROM,
*<-- End of G9DK9A09ND
NAME1 LIKE T001W-NAME1,
COM_NAME LIKE YSDA_DOC_FIXTEXT-YY_TEXT,
POST_LOC LIKE YSDA_DOC_FIXTEXT-YY_TEXT,
CUST_OFFICE LIKE YSDA_DOC_FIXTEXT-YY_TEXT,
POST_CODE LIKE YSDA_DOC_FIXTEXT-YY_TEXT,
DATE(25),
ETAB LIKE YSDA_DOC_FIXTEXT-YY_TEXT,
NO_SIREN LIKE YSDA_DOC_FIXTEXT-YY_TEXT,
TEXT2 LIKE YSDA_DOC_FIXTEXT-YY_TEXT,
TEXT5 LIKE YSDA_DOC_FIXTEXT-YY_TEXT,
TEXT7A LIKE YSDA_DOC_FIXTEXT-YY_TEXT,
TEXT7B LIKE YSDA_DOC_FIXTEXT-YY_TEXT,
TEXT8 LIKE YSDA_DOC_FIXTEXT-YY_TEXT,
END OF TY_HEADER.
TYPES : BEGIN OF TY_DELIVERY,
VBELN LIKE LIKP-VBELN,
POSNR LIKE LIPS-POSNR, "G9DK961190
VBUND LIKE LIKP-VBUND,
LFIMG LIKE LIPS-LFIMG,
MEINS LIKE LIPS-MEINS,
EXNUM LIKE LIKP-EXNUM,
KUNNR LIKE LIKP-KUNNR,
KUNAG LIKE LIKP-KUNAG,
L15 LIKE LIPS-LFIMG,
WADAT_IST LIKE LIKP-WADAT_IST,
LDDAT LIKE LIKP-LDDAT,
NTGEW LIKE LIKP-NTGEW,
MATNR LIKE MARA-MATNR,
VRKME LIKE LIPS-VRKME, "G9DK960368
VGBEL LIKE LIPS-VGBEL, "G9DK961190
VGPOS LIKE LIPS-VGPOS, "G9DK961190
UECHA LIKE LIPS-UECHA, "G9DK961190
END OF TY_DELIVERY.
TYPES : BEGIN OF TY_INVOICE,
ZDELN LIKE VBRK-VBELN,
NETWR LIKE VBRK-NETWR,
WAERK LIKE VBRK-WAERK,
KURRF LIKE VBRK-KURRF,
FKIMG LIKE VBRP-FKIMG,
VRKME LIKE VBRP-VRKME,
END OF TY_INVOICE.
TYPES : BEGIN OF TY_INVOICE_TEMP,
ZDELN LIKE VBRK-VBELN,
FKART LIKE VBRK-FKART,
YY_SEQTAXNO LIKE VBRK-YY_SEQTAXNO,
END OF TY_INVOICE_TEMP.
TYPES : BEGIN OF TY_EXPORT,
EXNUM LIKE EIKP-EXNUM,
ZOLLA LIKE EIKP-ZOLLA,
STGBE LIKE EIKP-STGBE,
EXPVZ LIKE EIKP-EXPVZ,
CONTA LIKE EIKP-CONTA,
IEVER LIKE EIKP-IEVER,
EXPRF LIKE EIPO-EXPRF,
EXART LIKE EIPO-EXART,
EXPOS LIKE EIPO-EXPOS, "G9DK961190
STAWN LIKE EIPO-STAWN, "G9DK961190
END OF TY_EXPORT.
TYPES : BEGIN OF TY_HFILE,
POS1(8),
POS2(4),
POS3(2),
POS4,
POS5(8),
POS6(4),
POS7(14),
POS8(20),
POS9(20),
POS10(20),
POS11(8),
END OF TY_HFILE.
TYPES : BEGIN OF TY_DFILE,
pos1(18), "G9DK961418
POS1(19), "G9DK961418
POS1(18), "G9DK962238
POS2(4),
POS3(8),
POS4(6),
POS5(6),
POS5A(4),
POS6(9),
POS6A(5), "G9DK962238
POS7(5),
POS8(5),
POS8A(22),
POS9,
POS10,
POS11,
POS12,
POS13(5),
POS13A,
POS14(13),
POS14A(31),
POS15(2),
POS16(2),
POS16A(3),
POS17(4),
POS17A(3),
POS18(3),
POS18A(9), "G9DK962238
POS19,
POS20(11),
POS21(11),
POS22(10),
POS23(10),
POS23A(40),
POS24(4),
POS25(3),
POS26,
POS26A,
POS27,
POS28(3),
POS29,
END OF TY_DFILE,
BEGIN OF TY_TVKO, "G9DK959869
VKORG LIKE TVKO-VKORG, "G9DK959869
BUKRS LIKE TVKO-BUKRS, "G9DK959869
KUNNR LIKE TVKO-KUNNR, "G9DK959869
END OF TY_TVKO. "G9DK959869
D A T A *
DATA: GV_CUST_NUM LIKE YSDA_DOC_FIXTEXT-YY_TEXT,
GV_SIREN LIKE YSDA_DOC_FIXTEXT-YY_TEXT,
GV_REP_NO LIKE YSDA_DOC_NUMBER-YY_PRINT_NO,
GV_SEQ_NO TYPE I VALUE 0,
GV_PRNTER LIKE TSP01-RQDEST, "Printer Name
GV_DATE(8) TYPE C, "DATE
GV_MONTH(2) TYPE C, "MONTH
GV_DAY(2) TYPE C, "DAY
GV_YEAR(4) TYPE C, "YEAR
GV_ADD1(30) TYPE C, "TEXT-SIMBOL H01A
GV_ADD2(30) TYPE C, "TEXT-SIMBOL H01B
GV_COUNT TYPE I, "COUNT SEQUENCE
GV_SEQUENCE(5) TYPE C, "SEQUENCE
GV_COPYNO TYPE C, "NUMBER OF COPY
GV_DATETEMP(10) TYPE C, "DATE
GV_SECTIONPAGE(2) TYPE C, "NO. OF PAGE IN SECTION
GV_ITEM TYPE I, "NO. OF ITEM
GV_EUR LIKE VBRK-WAERK VALUE 'EUR',
GV_INVOICE_NO LIKE VBRK-VBELN, "G9DK959869
GV_INVOICE_INTERCOM LIKE VBRK-VBELN, "G9DK959869
GV_PRO_FORMA_STO LIKE VBRK-VBELN, "G9DK969466
GV_TEXT46 LIKE YSDA_DOC_FIXTEXT-YY_TEXT. "G9DK959869
C O N S T A N T S *
CONSTANTS: GC_M VALUE 'M',
GC_J VALUE 'J',
GC_C VALUE 'C',
GC_D VALUE 'D',
GC_E VALUE 'E',
GC_F VALUE 'F',
GC_U VALUE 'U',
GC_X VALUE 'X',
GC_0 VALUE '0',
GC_2 VALUE '2',
GC_3 VALUE '3',
GC_MEXP(4) VALUE 'MEXP',
GC_ZAAD(4) VALUE 'ZAAD',
GC_ZSAD(4) VALUE 'ZSAD',
GC_CY(2) VALUE 'CY',
GC_M1(2) VALUE 'M1',
GC_M2(2) VALUE 'M2',
GC_M4(2) VALUE 'M4',
GC_M5(2) VALUE 'M5',
GC_M6(2) VALUE 'M6',
GC_M7(2) VALUE 'M7',
GC_M8(2) VALUE 'M8',
GC_M9(2) VALUE 'M9',
GC_C3(2) VALUE 'C3',
GC_00(2) VALUE '00',
GC_C1(2) VALUE 'C1',
GC_C2(2) VALUE 'C2',
GC_SI(2) VALUE 'SI',
GC_N1(2) VALUE 'N1',
GC_N2(2) VALUE 'N2',
GC_FR(2) VALUE 'FR',
GC_EN(2) VALUE 'EN',
GC_TON LIKE T006-MSEHI VALUE 'TO',
GC_L15 LIKE T006-MSEHI VALUE 'L15',
GC_GRWR(4) VALUE 'GRWR',
GC_SAISUNIC(8) VALUE 'SAISUNIC',
GC_000000(6) VALUE '000000',
GC_1 VALUE '1', "G9BK900812
GC_1 LIKE PLFH-MGVGW VALUE '1', "G9BK900812
GC_DOT(1) VALUE '.',
GC_TYP_EU(3) TYPE C VALUE 'EU ',
GC_TYP_EX(3) TYPE C VALUE 'EX ',
GC_TYP_COM(3) TYPE C VALUE 'COM',
GC_BIS(3) TYPE C VALUE 'BIS',
GC_EUR(3) TYPE C VALUE 'EUR',
GC_IV(2) TYPE C VALUE 'IV',
GC_ZTDR(4) TYPE C VALUE 'ZTDR',
GC_ZF8(3) TYPE C VALUE 'ZF8',
GC_ZIV(3) TYPE C VALUE 'ZIV',
GC_FALSE(1) TYPE C VALUE ' ', "yuie
GC_STRUCT(31) TYPE C VALUE 'DATA', "yuie
GC_TOTAL TYPE VTXTM VALUE 'TOTAL NET UNIT PRICE',"G9DK960368
GC_INTER_PERCENT TYPE VTXTM VALUE 'Inter-company %'."G9DK960368
I N T E R N A L T A B L E S *
DATA: BEGIN OF IT_DOC OCCURS 0,
VBELN LIKE LIKP-VBELN,
FKART LIKE VBRK-FKART,
ERDAT LIKE VBFA-ERDAT,
ERZET LIKE VBFA-ERZET,
ZDELN LIKE VBRK-VBELN,
END OF IT_DOC,
BEGIN OF IT_VBRK OCCURS 0,
ZDELN LIKE VBRK-VBELN,
END OF IT_VBRK,
BEGIN OF IT_SALES OCCURS 0,
VBELN LIKE LIKP-VBELN,
VBELV LIKE VBAK-VBELN, "Order Number
AUART LIKE VBAK-AUART,
KNUMV LIKE VBAK-KNUMV,
KALSM LIKE VBAK-KALSM, "G9DK960368
WAERK LIKE VBAK-KALSM, "G9DK960368
KNUMA LIKE VBAK-KNUMA, "G9DK960368
END OF IT_SALES,
*--> begin of G9DK961190 kxumnauy 13 feb 2004
BEGIN OF IT_VBAP OCCURS 0,
VBELN LIKE VBAK-VBELN, " Sale doc.
POSNR LIKE VBAP-POSNR, " Sales document item
KNUMV LIKE VBAK-KNUMV, " No. of the document cond.
KALSM LIKE VBAK-KALSM,
WAERK LIKE VBAK-KALSM,
KNUMA LIKE VBAK-KNUMA,
END OF IT_VBAP,
*<-- end of G9DK961190
BEGIN OF IT_KSCHL OCCURS 0,
KNUMV LIKE KONV-KNUMV,
KBETR LIKE KONV-KBETR,
WAERS LIKE KONV-WAERS, "G9DK960368
END OF IT_KSCHL,
BEGIN OF IT_VBKD OCCURS 0,
VBELV LIKE VBAK-VBELN,
INCO1 LIKE VBKD-INCO1,
END OF IT_VBKD,
BEGIN OF IT_COUNTRY OCCURS 0,
KUNNR LIKE KNA1-KUNNR,
LAND1 LIKE KNA1-LAND1,
END OF IT_COUNTRY,
BEGIN OF IT_CNO OCCURS 0,
HEADER_TYP LIKE YSDA_EXP_PRTLOG-YY_HEADER_TYP,
INTERNAL_NO LIKE YSDA_EXP_PRTLOG-YY_INTERNAL_NO,
PRINT_DATE LIKE YSDA_EXP_PRTLOG-YY_PRINT_DATE,
INVOICE_AMT LIKE YSDA_EXP_PRTLOG-YY_INVOICE_AMT,
CURRENCY LIKE YSDA_EXP_PRTLOG-YY_CURRENCY,
*-->Begin of G9DK9A09ND -VSRKODA -16/07/2007
PLANT LIKE YSDA_EXP_PRTLOG-YY_PLANT,
*<--End of G9DK9A09ND
END OF IT_CNO,
BEGIN OF IT_LNO OCCURS 0,
HEADER_TYP LIKE YSDA_EXP_PRTLOG-YY_HEADER_TYP,
INTERNAL_NO LIKE YSDA_EXP_PRTLOG-YY_INTERNAL_NO,
PRINT_DATE LIKE YSDA_EXP_PRTLOG-YY_PRINT_DATE,
INVOICE_AMT LIKE YSDA_EXP_PRTLOG-YY_INVOICE_AMT,
CURRENCY LIKE YSDA_EXP_PRTLOG-YY_CURRENCY,
*-->Begin of G9DK9A09ND -VSRKODA -16/07/2007
PLANT LIKE YSDA_EXP_PRTLOG-YY_PLANT,
*<--End of G9DK9A09ND
END OF IT_LNO,
BEGIN OF IT_LINV OCCURS 0,
HEADER_TYP LIKE YSDA_EXP_PRTLOG-YY_HEADER_TYP,
INTERNAL_NO LIKE YSDA_EXP_PRTLOG-YY_INTERNAL_NO,
PRINT_DATE LIKE YSDA_EXP_PRTLOG-YY_PRINT_DATE,
INVOICE_AMT LIKE YSDA_EXP_PRTLOG-YY_INVOICE_AMT,
CURRENCY LIKE YSDA_EXP_PRTLOG-YY_CURRENCY,
*-->Begin of G9DK9A09ND -VSRKODA -16/07/2007
PLANT LIKE YSDA_EXP_PRTLOG-YY_PLANT,
*<--End of G9DK9A09ND
EX_RATE LIKE YSDA_EXP_PRTLOG-YY_EX_RATE,
LFIMG LIKE LIPS-LFIMG,
ZDELN LIKE VBRK-YY_SEQTAXNO,
END OF IT_LINV,
BEGIN OF IT_DIFF OCCURS 0,
HEADER_TYP LIKE YSDA_EXP_PRTLOG-YY_HEADER_TYP,
VBELV LIKE VBAK-VBELN,
INTERNAL_NO LIKE YSDA_EXP_PRTLOG-YY_INTERNAL_NO,
PRINT_DATE LIKE YSDA_EXP_PRTLOG-YY_PRINT_DATE,
INVOICE_AMT LIKE YSDA_EXP_PRTLOG-YY_INVOICE_AMT,
CURRENCY LIKE YSDA_EXP_PRTLOG-YY_CURRENCY,
*-->Begin of G9DK9A09ND -VSRKODA -16/07/2007
PLANT LIKE YSDA_EXP_PRTLOG-YY_PLANT,
*<--End of G9DK9A09ND
EX_RATE LIKE YSDA_EXP_PRTLOG-YY_EX_RATE,
LFIMG LIKE LIPS-LFIMG,
NETWR LIKE VBRK-NETWR,
WAERK LIKE VBRK-WAERK,
KURRF LIKE VBRK-KURRF,
FKIMG LIKE VBRP-FKIMG,
ZDELN LIKE VBRK-YY_SEQTAXNO,
END OF IT_DIFF.
*-->Begin of G9DK9A09ND -VSRKODA -09/07/2007
Data :Begin of it_t001k occurs 0,
bwkey like t001k-bwkey,
bukrs like t001k-bukrs,
werks like t001w-werks,
end of it_t001k.
TABLES: T001W.
Data :Begin of it_t001w occurS 0,
bwkey like t001w-bwkey,
werks like t001w-werks,
end of it_t001w.
*<-- End of G9DK9A09ND
*-->Begin of G9DK9A09ND -VSRKODA -09/07/2007
DATA: BEGIN OF IT_SIREN OCCURS 0,
VALUE_FROM LIKE YCACEDI-VALUE_FROM,
MESTYP LIKE YCACEDI-MESTYP,
DIRECT LIKE YCACEDI-MESTYP,
ORG_LEVEL LIKE YCACEDI-ORG_LEVEL,
ORG_VALUE LIKE YCACEDI-ORG_VALUE,
FIELDNAME LIKE YCACEDI-FIELDNAME,
END OF IT_SIREN.
*<-- End of G9DK9A09ND
*--> Begin of G9DK959869 KXSAWAS 02/02/2004
DATA: BEGIN OF IT_ORDER OCCURS 0,
VBELN LIKE VBAK-VBELN, " Order no.
VKORG LIKE VBAK-VKORG, " Sale Org. of order
END OF IT_ORDER,
BEGIN OF WA_T001W,
WERKS LIKE T001W-WERKS, " Plant
BUKRS LIKE T001K-BUKRS,
*-->Begin of G9DK9A09ND -VSRKODA -09/07/2007
BWKEY LIKE T001K-BWKEY,
*<-- End of G9DK9A09ND
VKORG LIKE T001W-VKORG, " Sale Org. of plant
COUNC LIKE T001W-COUNC, " Country code
LAND1 LIKE T001W-LAND1, "
ADRNR LIKE T001W-ADRNR,
ORT01 LIKE T001W-ORT01,
END OF WA_T001W,
BEGIN OF IT_LIKP OCCURS 0,
VBELN LIKE LIKP-VBELN, " Delivery
VKORG LIKE LIKP-VKORG, " Sale organization
KUNNR LIKE LIKP-KUNNR, " Ship-to party
INCO1 LIKE LIKP-INCO1, " Incoterm part1
INCO2 LIKE LIKP-INCO2, " Incoterm part2
END OF IT_LIKP.
*<-- End of G9DK959869
DATA: IT_RAW TYPE TABLE OF TY_RAW WITH HEADER LINE,
IT_DATA TYPE TABLE OF TY_DATA WITH HEADER LINE,
IT_EXPORT TYPE TABLE OF TY_EXPORT WITH HEADER LINE,
IT_DELIVERY TYPE TABLE OF TY_DELIVERY WITH HEADER LINE,
IT_INVOICE TYPE TABLE OF TY_INVOICE WITH HEADER LINE,
IT_FILE TYPE TABLE OF TY_DFILE WITH HEADER LINE,
IT_HEADER TYPE TABLE OF TY_HEADER WITH HEADER LINE,
IT_SELTAB TYPE TABLE OF RSPARAMS WITH HEADER LINE,
IT_INVOICE_TEMP TYPE TABLE OF TY_INVOICE_TEMP WITH HEADER LINE,
IT_TVKO_ORDER TYPE TABLE OF TY_TVKO WITH HEADER LINE,"G9DK959869
IT_DEL TYPE TABLE OF TY_DELIVERY WITH HEADER LINE. "G9DK960368
*--> Begin of G9DK960368 KXSAWAS 05/02/2004
DATA: BEGIN OF YUIE_ITAB OCCURS 0,
RECID(31),
DATA(1024).
DATA: END OF YUIE_ITAB.
TYPE-POOLS: YUIEX.
*DATA : it_komv2 LIKE komv OCCURS 0 WITH HEADER LINE. "G9DK961190
*<-- End of G9DK960368
*Begin of G9DK964590 kxumnauy 30 mar 2003
DATA: BEGIN OF KEY_ZBAT01,
MANDT TYPE ZBAT01-MANDT,
REPID TYPE ZBAT01-REPID,
FUNCT TYPE ZBAT01-FUNCT,
END OF KEY_ZBAT01.
*End of G9DK964590
*--> Begin of G9DK968994 kxumnauy
DATA: BEGIN OF IT_INVOICE_ITEM OCCURS 0,
VBELN LIKE VBRP-VBELN,
POSNR LIKE VBRP-POSNR,
NETWR LIKE VBRP-NETWR,
VGBEL LIKE VBRP-VGBEL,
VGPOS LIKE VBRP-VGPOS,
MATNR LIKE VBRP-MATNR,
fkimg LIKE VBRP-fkimg, "G9DK969188
vrkme LIKE VBRP-vrkme, "G9DK969188
ntgew LIKE VBRP-ntgew, "G9DK969188
gewei LIKE VBRP-gewei, "G9DK969188
END OF IT_INVOICE_ITEM.
*<-- End of G9DK968994
RANGES: S_LAST FOR SY-DATUM,
S_PERIOD FOR SY-DATUM.
W O R K A R E A S *
DATA: WA_RAW TYPE TY_RAW,
WA_DATA TYPE TY_DATA,
WA_EXPORT TYPE TY_EXPORT,
WA_DOC LIKE IT_DOC,
WA_SALES LIKE IT_SALES,
WA_SALES1 LIKE IT_SALES, "G9DK972875
WA_KSCHL LIKE IT_KSCHL,
WA_VBKD LIKE IT_VBKD,
WA_COUNTRY LIKE IT_COUNTRY,
WA_DELIVERY TYPE TY_DELIVERY,
WA_INVOICE TYPE TY_INVOICE,
WA_LINV LIKE IT_LINV,
WA_CNO LIKE IT_CNO,
WA_LNO LIKE IT_LNO,
WA_DIFF LIKE IT_DIFF,
WA_HEADER TYPE TY_HEADER,
WA_VBRK LIKE IT_VBRK,
WA_FILE TYPE TY_DFILE,
WA_HFILE TYPE TY_HFILE,
WA_SELTAB TYPE RSPARAMS,
WA_INVOICE_TEMP TYPE TY_INVOICE_TEMP,
WA_TVKO_PLANT TYPE TY_TVKO, "G9DK959869
WA_LIKP LIKE IT_LIKP, "G9DK959869
WA_DEL LIKE IT_DELIVERY, "G9DK960368
WA_KOMK LIKE KOMK, "G9DK960368
*-->Begin of G9DK9A09ND -VSRKODA -09/07/2007
WA_T001K LIKE T001K.
*<-- End of G9DK9A09ND
S E L E C T - O P T I O N S / P A R A M E T E R S *
SELECTION-SCREEN BEGIN OF BLOCK SCR1 WITH FRAME TITLE TEXT-001.
*Begin of change VSRKODA
PARAMETERS: P_BUKRS LIKE T001K-BUKRS,
S_WERKS LIKE T001W-WERKS,
*end of change VSRKODA
P_MNR LIKE T247-MNR,
P_YEAR LIKE VBRK-GJAHR.
SELECT-OPTIONS: S_WERKS FOR T001W-WERKS.
PARAMETERS: P_PRNTER LIKE TSP01-RQDEST. "Printer Name
p_file AS CHECKBOX. "yuie
SELECTION-SCREEN END OF BLOCK SCR1.
*--> Begin of G9DK960368 KXSAWAS 05/02/2004
*--- Comment out ---
*SELECTION-SCREEN BEGIN OF BLOCK b2
WITH FRAME TITLE text-t01.
*PARAMETERS: p_fname LIKE rlgrap-filename .
*SELECTION-SCREEN END OF BLOCK b2.
SELECTION-SCREEN BEGIN OF BLOCK B2 WITH FRAME TITLE TEXT-T01.
PARAMETERS: P_FILE AS CHECKBOX.
PARAMETERS: P_FNAME TYPE EPSFILNAM LOWER CASE, "interface UNIX file
P_SPATH TYPE EPSDIRNAM DEFAULT
'/opt/mobil/batch/gem/other/common/data/' LOWER CASE.
SELECTION-SCREEN END OF BLOCK B2.
SELECTION-SCREEN BEGIN OF BLOCK B3 WITH FRAME TITLE TEXT-T03.
PARAMETERS: P_INTID TYPE YINT_IDS DEFAULT 'DCG_REPORT',
P_SUBID TYPE YINT_SUB_IDS DEFAULT 'MAIN'.
SELECTION-SCREEN END OF BLOCK B3.
*<-- End of G9DK960368
AT SELECTION SCREEN
AT SELECTION-SCREEN.
To validate the data that user entered in the selection screen
PERFORM F_VALIDATE_DATA.
PERFORM F_GET_COMPANY_CODE.
I N I T I A L I Z A T I O N *
INITIALIZATION.
P_MNR = SY-DATUM+4(2).
P_YEAR = SY-DATUM+0(4).
*--> Begin of G9DK960368 KXSAWAS 05/02/2004
*---Set default unix file name yuie
CONCATENATE 'DCG_SAISUNIC' SY-UNAME
INTO P_FNAME
SEPARATED BY '_'.
*<-- End of G9DK960368
B E G I N - O F - S E L E C T I O N *
START-OF-SELECTION.
GV_PRNTER = P_PRNTER.
PERFORM F_INIT_PERIOD.
PERFORM F_GET_CURRENT_REPORT_NUMBER.
PERFORM F_GET_COMPANY_CODE.
PERFORM F_EXTRACT_RAW_DATA.
PERFORM F_PROCESS_DATA.
IF SY-BATCH EQ GC_X.
PERFORM F_UPDATE_REPORT_NUMBER.
ENDIF.
END-OF-SELECTION.
IF NOT ( IT_HEADER[] IS INITIAL AND IT_DATA[] IS INITIAL AND
IT_CNO[] IS INITIAL AND IT_LNO[] IS INITIAL AND
IT_LINV[] IS INITIAL AND IT_DIFF[] IS INITIAL ).
PERFORM F_PRINT_ACCELIO.
ELSE.
MESSAGE ID 'YM' TYPE 'I' NUMBER '032' "G9DK961073
WITH 'No data found for entered criteria'(E01).
EXIT.
ENDIF.
*If run by batch job print invoice
IF SY-BATCH EQ GC_X.
PERFORM F_PRINT_INVOICE.
ENDIF.
B E G I N O F F O R M *
*& Form F_INIT_PERIOD
Period
FORM F_INIT_PERIOD.
DATA: LV_FIRST LIKE SY-DATUM,
LV_CURRENT LIKE SY-DATUM,
LV_LAST LIKE SY-DATUM,
LV_DTEMP_FIRST(12) TYPE C,
LV_DTEMP_LAST(12) TYPE C.
LV_FIRST+0(4) = P_YEAR.
LV_FIRST+4(2) = P_MNR.
LV_FIRST+6(2) = '01'.
LAST DAY OF CURRENT MONTH
CALL FUNCTION 'LAST_DAY_OF_MONTHS'
EXPORTING
DAY_IN = LV_FIRST
IMPORTING
LAST_DAY_OF_MONTH = LV_CURRENT
EXCEPTIONS
DAY_IN_NO_DATE = 1
OTHERS = 2.
IF SY-SUBRC = 0.
IF P_MNR < '2'.
LV_FIRST+0(4) = P_YEAR - 1.
LV_FIRST+4(2) = '12'.
LV_FIRST+6(2) = '01'.
ELSE.
LV_FIRST+0(4) = P_YEAR.
LV_FIRST+4(2) = P_MNR - 1.
LV_FIRST+6(2) = '01'.
ENDIF.
LAST DAY OF LAST MONTH
CALL FUNCTION 'LAST_DAY_OF_MONTHS'
EXPORTING
DAY_IN = LV_FIRST
IMPORTING
LAST_DAY_OF_MONTH = LV_LAST
EXCEPTIONS
DAY_IN_NO_DATE = 1
OTHERS = 2.
IF SY-SUBRC = 0.
LV_FIRST = '20040101'. "G9DK973032
LAST MONTH
S_LAST-SIGN = 'I'.
S_LAST-OPTION = 'BT'.
S_LAST-LOW = LV_FIRST.
S_LAST-HIGH = LV_LAST.
APPEND S_LAST.
LAST MONTH AND CURRENT MONTH
S_PERIOD-SIGN = 'I'.
S_PERIOD-OPTION = 'BT'.
S_PERIOD-LOW = LV_FIRST.
S_PERIOD-HIGH = LV_CURRENT.
APPEND S_PERIOD.
ENDIF.
ENDIF.
ENDFORM. " F_INIT_PERIOD
*& Form F_GET_CURRENT_REPORT_NUMBER
Get current Seq. no. from YSDA_DOC_NUMBER
FORM F_GET_CURRENT_REPORT_NUMBER.
DATA: LV_RC LIKE SY-SUBRC.
CHECK SY-BATCH = GC_X.
DO 3 TIMES.
PERFORM F_LOCK_OBJECT CHANGING LV_RC.
IF LV_RC <> 0.
PERFORM F_WAIT.
ELSE.
EXIT.
ENDIF.
ENDDO.
IF LV_RC <> 0.
PERFORM F_UNLOCK_OBJECT.
PERFORM F_LOCK_OBJECT CHANGING LV_RC.
ENDIF.
SELECT SINGLE YY_PRINT_NO
INTO GV_REP_NO
FROM YSDA_DOC_NUMBER
*-->Begin of G9DK9A09ND -VSRKODA -09/07/2007
where yy_plant = P_WERKS
*<-- End of G9DK9A09ND
WHERE YY_PLANT IN S_WERKS
AND YY_YEAR = P_YEAR
AND YY_DOCUMENT_CODE = GC_MEXP.
*--> Begin of G9DK959869 KXSAWAS 02/02/2004
IF SY-BATCH = GC_X.
GV_REP_NO = GV_REP_NO + 1.
ELSE.
GV_REP_NO = 0.
ENDIF.
*<-- End of G9DK959869
ENDFORM. " F_GET_CURRENT_REPORT_NUMBER
*& Form F_GET_COMPANY_CODE
text
--> p1 text
<-- p2 text
FORM F_GET_COMPANY_CODE.
CLEAR: it_t001k-bwkey.
Validate input data against master table of SAP
Validate company code against T001k
IF NOT P_BUKRS IS INITIAL.
SELECT T001K~BUKRS
T001K~BWKEY
T001W~WERKS
INTO CORRESPONDING FIELDS OF TABLE IT_T001K
FROM T001K
INNER JOIN T001W ON T001W~BWKEY = T001K~BWKEY
WHERE BUKRS = P_BUKRS
AND WERKS IN S_WERKS.
APPEND IT_T001K.
select t001kbukrs t001kbwkey t001w~werks
into corresponding fields of table itab
from t001w
inner join t001k
on t001kbwkey = t001wbwkey.
LOOP AT IT_T001K.
it_t001k-bwkey = it_t001w-werks.
ENDLOOP.
ENDIF.
ENDFORM. " F_GET_COMPANY_CODE
*& Form F_EXTRACT_RAW_DATA
Extract entries from YSDA_EXP_PRTLOG
FORM F_EXTRACT_RAW_DATA.
SELECT YY_PLANT
YY_HEADER_TYP
YY_INTERNAL_NO
YY_PRINT_DATE
YY_PRINT_TIME
YY_DOCUMENT_CODE
YY_HEADER_TYP
YY_DELIVERY
YY_INVOICE_AMT
YY_EX_RATE
YY_CURRENCY
YY_INTERNAL_NO "G9DK962238
YY_EXTERNAL_NO
YY_COMMODITY
YY_REPORT_FLAG "G9DK962077
INTO corresponding fields of TABLE IT_RAW
FROM YSDA_EXP_PRTLOG
WHERE YY_PLANT IN S_WERKS
**-->Begin of G9DK9A09ND -VSRKODA -09/07/2007
where yy_plant = s_werks
**<-- End of G9DK9A09ND
and YY_PRINT_DATE IN S_PERIOD+
AND YY_REPORT_FLAG <> 'X' "G9DK973032
AND YY_HEADER_TYP <> 'T2L' "G9DK9A02DZ
AND YY_ANNULATION <> 'X'.
*If run by batch job
*--> Begin of G9DK959869 KXSAWAS 02/02/2004
*--- Comment out ---
IF sy-batch EQ gc_x.
IF NOT it_raw[] IS INITIAL.
LOOP AT it_raw.
**Update YY_REPORT_FLAG EQ 'X'
UPDATE ysda_exp_prtlog SET yy_report_flag = gc_x
WHERE yy_plant = p_werks
AND yy_print_date = it_raw-print_date
AND yy_print_time = it_raw-print_time
AND yy_document_code = it_raw-document_code.
ENDLOOP.
ENDIF.
ENDIF.
*<-- End of G9DK959869
LOOP AT IT_RAW.
IT_RAW-HEADER_SHT = IT_RAW-HEADER_SHT+0(3).
MODIFY IT_RAW.
ENDLOOP.
SORT IT_RAW BY WERKS HEADER_SHT INTERNAL_NO "G9DK962271
PRINT_DATE. "G9DK962238
ENDFORM. " F_EXTRACT_RAW_DATA
*& Form F_PROCESS_DATA
Extract all required data
FORM F_PROCESS_DATA.
PERFORM F_EXTRACT_DOC_FLOW.
PERFORM F_EXTRACT_INCO_TERM.
PERFORM F_EXTRACT_DELIVERY_DATA.
PERFORM F_EXTRACT_INVOICE_DATA.
PERFORM F_EXTRACT_EXPORT_DATA.
PERFORM F_EXTRACT_HEADER_DATA.
PERFORM F_EXTRACT_COMPANY. "G9DK959869
PERFORM F_CLASSIFY_DATA.
ENDFORM. " F_PROCESS_DATA
*& Form F_EXTRACT_DOC_FLOW
Extract Sale data
FORM F_EXTRACT_DOC_FLOW.
IF NOT IT_RAW[] IS INITIAL.
SELECT VBELV
VBTYP_N
ERDAT
ERZET
VBELN
INTO TABLE IT_DOC
FROM VBFA
FOR ALL ENTRIES IN IT_RAW
WHERE VBELV = IT_RAW-DELIVERY
AND ( VBTYP_N = 'M'
OR VBTYP_N = '5' ).
SELECT A~VBELN
A~VBELV
B~AUART
B~KNUMV
B~KALSM "G9DK960368
B~WAERK "G9DK960368
B~KNUMA "G9DK960368
INTO TABLE IT_SALES
FROM VBFA AS A INNER JOIN VBAK AS B
ON AVBELV = BVBELN
FOR ALL ENTRIES IN IT_RAW
WHERE A~VBELN = IT_RAW-DELIVERY
AND A~VBTYP_N = GC_J.
ENDIF.
SORT IT_SALES BY VBELN VBELV.
DELETE ADJACENT DUPLICATES FROM IT_SALES COMPARING ALL FIELDS.
SORT IT_DOC BY VBELN ASCENDING
FKART ASCENDING
ERDAT DESCENDING
ERZET DESCENDING.
DELETE ADJACENT DUPLICATES FROM IT_DOC COMPARING ALL FIELDS.
IF NOT IT_SALES[] IS INITIAL.
SELECT KNUMV
KBETR
WAERS "G9DK960368
INTO TABLE IT_KSCHL
FROM KONV
FOR ALL ENTRIES IN IT_SALES
WHERE KNUMV = IT_SALES-KNUMV
AND KSCHL = GC_GRWR.
ENDIF.
SORT IT_KSCHL BY KNUMV.
ENDFORM. " F_EXTRACT_DOC_FLOW
*& Form F_EXTRACT_INCO_TERM
Extract inco term
FORM F_EXTRACT_INCO_TERM.
IF NOT IT_SALES[] IS INITIAL.
SELECT VBELN
What's wrong with F_GET_COMPANY_CODE ? Below is similar code - try running this and seeing what you get:
report zlocal_jc_t001w.
tables:
t001k, "Valuation area
t001w. "Plants/Branches
parameters:
p_bukrs like t001k-bukrs default '1000'.
select-options:
s_werks for t001w-werks.
start-of-selection.
perform get_data.
*& Form get_data
form get_data.
data:
begin of gt_t001k occurs 10,
bukrs like t001k-bukrs,
bwkey like t001k-bwkey,
werks like t001w-werks,
end of gt_t001k.
select
t001k~bukrs
t001k~bwkey
t001w~werks
into corresponding fields of table gt_t001k
from t001k as t001k
inner join t001w as t001w on t001w~bwkey = t001k~bwkey
where t001k~bukrs = p_bukrs
and t001w~werks in s_werks.
loop at gt_t001k.
write: /
gt_t001k-bukrs,
gt_t001k-bwkey,
gt_t001k-werks.
endloop.
endform. "get_data
As for links to locally defined database tables, that will depend on what the keys defined in SE11 are e.g. there will be a primary key plus relationships to other tables (for example "WERKS LIKE YSDA_EXP_PRTLOG-YY_PLANT" indicates YY_PLANT relates to T001W).
Jonathan -
Foreign Trade / Intrastat - data order-related billing (downpayments)
Hi,
Shortly we have implemented the down payment functionality in our flows. Because downpayments require order-related billing the intrastat/foreign trade data is not copied into the closing invoice.
Apparently it is only possible to copy the data from a delivery.
We are in a make-to-order environment and we still create deliveries but because of the down payments, the invoice is created from the sales order and hence no intrastat data is copied which ofcourse is required ...
Can't find a suitable user exit for filling this data into the billing document. Also tried using copy data transfer (vofm) filling up tables eikp and eipo but that didn't work.
The only option open for me at the moment is creating a proforma invoice automatically from the delivery. This document can then be included in the intrastat reporting.
Is there another solution ?
with regardsHi,
in the copy control between order and invoice you need to set the 'determine export data' to 'B' so that it will be redetermined in the invoice. After that the relevant foreign trade userexits will work as well.
Balazs -
Periodic Declarations Intrastat reporting.
Periodic Declarations Intrastat reporting. -
The purchase order beeing reported har the following information:
Country of origin (EIPO-HERKL) has the value country DK
Country of destination (RL50E-HLAND) has the value country SE
When running the intrastat report the fields for the above mentioned give the wrong value for country of destination
Country of origin field URSPRSLND gives the value DK (correct)
Country of destination BESTILAND gives the value DK (wrong)
It looks wright when you see it in SAP but it is wrong when it is send via EDICOM to the receiver in SCB.se.
Has anybody had simular problems sending the periodic report of intrastat.I assume you do Intrastat for country SE.
Is your PO a standard PO or a third party PO?
In a standard PO the Country of destination is not changable and should default from the receiving plant.
You may check the Intrastat record in transaction VEFU if the destination country is wrong in the record, too.
If you see this wrong destination country just in the list, then see OSS note 393569 - Intrastat:List output-Country of destinatn instd of dispatch -
Dear All.
Till this day the duty-form for a company were performed through a
special Form Program, it is performed via processing routines.
The first Form Routine's name is entry.
Form was printed-out for each Transport up to now.
Current Requirements are for next time as follows:
Printing out one form for every delivery (shipment) instead of
for each Transport as so far. Please notice one Transport may
consist of many deliveries (Shipment). 1 Transport : n Shipment.
DATA:
lc_wa_usrdata TYPE /Z2a/ty_lw_usrdata.
INCLUDE rvadtabl.
SET EXTENDED CHECK OFF.
TABLES: vbpla, thead, ttxer, ttxit, t005, vbddl, stxh, sadr."SADR40A
INCLUDE vttkdata. "Shipment Header
INCLUDE vttsdata. "Shipment Segment
INCLUDE vttpdata. "Shipment Items
INCLUDE vbpadata. "Partner
INCLUDE vtfadata. "Flow
INCLUDE sadrdata. "Address
INCLUDE vtlfdata. "Delivery Selection
INCLUDE vsedata. "shipping units
INCLUDE rv56acom. "I/O-Structure
SET EXTENDED CHECK ON.
TABLES: /Z2a/tv_schein.
FORM entry USING return_code us_screen.
DATA: lf_retcode TYPE sy-subrc.
screen = us_screen.
PERFORM processing USING us_screen
CHANGING lf_retcode.
IF lf_retcode NE 0.
return_code = 1.
ELSE.
return_code = 0.
ENDIF.
ENDFORM.
FORM processing USING proc_screen
CHANGING cf_retcode.
DATA: ls_print_data_to_read TYPE ledlv_print_data_to_read.
DATA: ls_dlv_delnote TYPE ledlv_delnote.
DATA: lf_fm_name TYPE rs38l_fnam.
DATA: ls_control_param TYPE ssfctrlop.
DATA: ls_composer_param TYPE ssfcompop.
DATA: ls_recipient TYPE swotobjid.
DATA: ls_sender TYPE swotobjid.
DATA: lf_formname TYPE tdsfname.
DATA: ls_addr_key LIKE addr_key.
DATA: ls_header LIKE /Z2a/ss_pv_kopf.
DATA: tb_daten LIKE /Z2a/ss_pv_daten OCCURS 1.
DATA: lc_va_lfnr TYPE nrlevel.
DATA: lc_va_year TYPE char4.
DATA: lc_va_keyseg_pv TYPE /dca/p000_keyseg.
DATA: lc_tb_bwdat_pv TYPE /dca/p000_ty_tb_bwdat.
DATA: lc_wa_bwdat_pv TYPE /dca/p000_ty_wa_bwdat.
DATA: lc_wa_bwm_res_pv TYPE /Z2a/dat_cu_pvschein.
DATA: lc_va_lifnr TYPE kunnr.
DATA: lc_va_nr TYPE nrnr.
DATA: lc_va_anz TYPE /Z2a/anz_pv.
DATA: lc_va_no TYPE /Z2a/anz_kein_pv.
DATA: lc_wa_pvschein LIKE /Z2a/tv_schein.
DATA: lc_va_line LIKE sy-tabix.
DATA: lc_va_flag_zoll TYPE segal,
lc_va_rqident TYPE rspoid,
lc_va_vsart TYPE vsarttr,
lc_va_tknum TYPE tknum.
DATA: lc_va_obj TYPE nrobj.
DATA: lc_va_printer TYPE rspopname.
DATA: lc_va_pv_kz TYPE char4.
DATA: lc_va_tplst TYPE tplst.
* SmartForm from customizing table TNAPR
lf_formname = tnapr-sform.
* determine print data
PERFORM set_print_data_to_read USING lf_formname
CHANGING ls_print_data_to_read
cf_retcode.
IF cf_retcode = 0.
* select print data
PERFORM get_data_pv TABLES tb_daten
CHANGING ls_header
lc_va_flag_zoll
lc_va_vsart
lc_va_tplst
cf_retcode.
ENDIF.
lc_va_tknum = nast-objky.
IF cf_retcode = 0.
ELSE.
PERFORM protocol_nast_update.
cf_retcode = 4.
EXIT.
ENDIF.
IF cf_retcode = 0.
* determine smartform function module for delivery note
CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'
EXPORTING formname = lf_formname
IMPORTING fm_name = lf_fm_name
EXCEPTIONS no_form = 1
no_function_module = 2
OTHERS = 3.
IF sy-subrc <> 0.
ENDIF.
ENDIF.
DESCRIBE TABLE tb_daten LINES lc_va_line.
IF lc_va_line <> 0.
lc_va_pv_kz = 'JA'.
SELECT SINGLE lifnr
FROM vtpa
INTO lc_va_lifnr
WHERE vbeln = nast-objky
AND parvw = 'YL'.
lc_va_keyseg_pv = ls_header-kunnr.
lc_va_keyseg_pv+10(10) = lc_va_lifnr.
lc_va_keyseg_pv+20(2) = lc_va_vsart.
lc_va_keyseg_pv+22(4) = lc_va_pv_kz.
CALL FUNCTION '/ZTR/P000_MCDATA_FROM_'
EXPORTING
cv_va_keytyp = '/Z2a/KEY_CU_PVSCHEIN'
cv_va_keyseg = lc_va_keyseg_pv
TABLES
cr_tb_bwdat = lc_tb_bwdat_pv.
IF lc_tb_bwdat_pv[] IS INITIAL.
cf_retcode = 4.
ELSE.
LOOP AT lc_tb_bwdat_pv INTO lc_wa_bwdat_pv.
lc_wa_bwm_res_pv = lc_wa_bwdat_pv-datseg.
lc_va_obj = lc_wa_bwm_res_pv(10).
lc_va_nr = lc_wa_bwm_res_pv+10(2).
lc_va_anz = lc_wa_bwm_res_pv+12(8).
lc_va_printer = lc_wa_bwm_res_pv+20(4).
SELECT SINGLE pvno
FROM /Z2a/tv_schein
INTO lc_va_lfnr
WHERE tknum = nast-objky.
IF sy-subrc = 0.
ELSE.
CALL FUNCTION 'NUMBER_GET_NEXT'
EXPORTING
nr_range_nr = lc_va_nr
object = lc_va_obj
IMPORTING
number = lc_va_lfnr
IF sy-subrc <> 0.
ENDIF.
ENDIF.
ENDLOOP.
ENDIF.
* call smartform delivery note
ls_composer_param-tddest = lc_va_printer.
* ls_control_param-device = lc_va_printer.
lc_va_year = sy-datum(4).
PERFORM set_print_param USING ls_addr_key
lc_va_lfnr
CHANGING ls_control_param
ls_composer_param
ls_recipient
ls_sender
cf_retcode.
lc_wa_usrdata-mandt = sy-mandt.
lc_wa_usrdata-udate = sy-datum.
lc_wa_usrdata-uzeit = sy-uzeit.
lc_wa_usrdata-usr = sy-uname.
lc_wa_usrdata-sysid = sy-sysid.
DO lc_va_anz TIMES.
CALL FUNCTION lf_fm_name
EXPORTING
archive_index = toa_dara
archive_parameters = arc_params
control_parameters = ls_control_param
mail_recipient = ls_recipient
mail_sender = ls_sender
output_options = ls_composer_param
user_settings = ' '
ls_header = ls_header
lc_va_lfnr = lc_va_lfnr
lc_va_year = lc_va_year
lc_va_tplst = lc_va_tplst
lc_wa_usrdata = lc_wa_usrdata
TABLES
tb_daten = tb_daten
EXCEPTIONS formatting_error = 1
internal_error = 2
send_error = 3
user_canceled = 4
OTHERS = 5.
IF sy-subrc <> 0.
ENDIF.
ENDDO.
ELSE.
lc_va_pv_kz = 'NEIN'.
SELECT SINGLE lifnr
FROM vtpa
INTO lc_va_lifnr
WHERE vbeln = nast-objky
AND parvw = 'YL'.
lc_va_keyseg_pv = ls_header-kunnr.
lc_va_keyseg_pv+10(10) = lc_va_lifnr.
lc_va_keyseg_pv+20(2) = lc_va_vsart.
lc_va_keyseg_pv+22(4) = lc_va_pv_kz.
CALL FUNCTION '/ZTR/P000_MCDATA_FROM_'
EXPORTING
cv_va_keytyp = '/Z2a/KEY_CU_PVSCHEIN'
cv_va_keyseg = lc_va_keyseg_pv
TABLES
cr_tb_bwdat = lc_tb_bwdat_pv.
IF lc_tb_bwdat_pv[] IS INITIAL.
cf_retcode = 4.
ELSE.
LOOP AT lc_tb_bwdat_pv INTO lc_wa_bwdat_pv.
lc_wa_bwm_res_pv = lc_wa_bwdat_pv-datseg.
lc_va_obj = lc_wa_bwm_res_pv(10).
lc_va_nr = lc_wa_bwm_res_pv+10(2).
lc_va_anz = lc_wa_bwm_res_pv+12(8).
lc_va_printer = lc_wa_bwm_res_pv+20(4).
SELECT SINGLE pvno
FROM /Z2a/tv_schein
INTO lc_va_lfnr
WHERE tknum = nast-objky.
IF sy-subrc = 0.
UPDATE /Z2a/tv_schein
SET flag_pv = ' '
WHERE tknum = nast-objky.
ELSE.
* laufende nummer füllen, bei keinen PV-Teilen Nummernkreis 99
CALL FUNCTION 'NUMBER_GET_NEXT'
EXPORTING
nr_range_nr = lc_va_nr
object = lc_va_obj
* QUANTITY = '1'
* SUBOBJECT = ' '
* TOYEAR = '0000'
* IGNORE_BUFFER = ' '
IMPORTING
number = lc_va_lfnr
* QUANTITY =
* RETURNCODE =
* EXCEPTIONS
* INTERVAL_NOT_FOUND = 1
* NUMBER_RANGE_NOT_INTERN = 2
* OBJECT_NOT_FOUND = 3
* QUANTITY_IS_0 = 4
* QUANTITY_IS_NOT_1 = 5
* INTERVAL_OVERFLOW = 6
* BUFFER_OVERFLOW = 7
* OTHERS = 8
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.
ENDLOOP.
lc_va_year = sy-datum(4).
ls_composer_param-tddest = lc_va_printer.
PERFORM set_print_param USING ls_addr_key
lc_va_lfnr
CHANGING ls_control_param
ls_composer_param
ls_recipient
ls_sender
cf_retcode.
lc_wa_usrdata-mandt = sy-mandt.
lc_wa_usrdata-udate = sy-datum.
lc_wa_usrdata-uzeit = sy-uzeit.
lc_wa_usrdata-usr = sy-uname.
lc_wa_usrdata-sysid = sy-sysid.
DO lc_va_anz TIMES.
CALL FUNCTION lf_fm_name
EXPORTING
archive_index = toa_dara
archive_parameters = arc_params
control_parameters = ls_control_param
mail_recipient = ls_recipient
mail_sender = ls_sender
output_options = ls_composer_param
user_settings = ' '
ls_header = ls_header
lc_va_lfnr = lc_va_lfnr
lc_va_year = lc_va_year
lc_va_tplst = lc_va_tplst
lc_wa_usrdata = lc_wa_usrdata
TABLES
tb_daten = tb_daten
EXCEPTIONS formatting_error = 1
internal_error = 2
send_error = 3
user_canceled = 4
OTHERS = 5.
IF sy-subrc <> 0.
ENDIF.
ENDDO.
ENDIF.
ENDIF.
SELECT SINGLE *
FROM /Z2a/tv_schein
INTO lc_wa_pvschein
WHERE tknum = nast-objky.
IF sy-subrc = 0.
ELSE.
IF NOT lc_va_lfnr IS INITIAL.
lc_wa_pvschein-mandt = sy-mandt.
lc_wa_pvschein-tknum = nast-objky.
INSERT INTO /Z2a/tv_schein
VALUES lc_wa_pvschein.
UPDATE /Z2a/tv_schein SET
pvno = lc_va_lfnr
vsart = lc_va_vsart
exti1 = ls_header-schiffname
signi = ls_header-siegel
flag_zoll = lc_va_flag_zoll
exti2 = ls_header-contnr
lifex = ls_header-mbcnr
dalen = ls_header-dalen
dptbg = ls_header-dptbg
kunnr = ls_header-kunnr
add03 = ls_header-add03
parnr = lc_va_lifnr
datum_druck = sy-datum
uzeit_druck = sy-uzeit
ernam_druck = sy-ucomm
WHERE tknum = nast-objky.
IF tb_daten IS INITIAL.
UPDATE /Z2a/tv_schein SET
flag_pv = ' '
WHERE tknum = nast-objky.
ELSE.
UPDATE /Z2a/tv_schein SET
flag_pv = 'X'.
ENDIF.
ENDIF.
ENDIF.
* get SmartForm protocoll and store it in the NAST protocoll
* PERFORM ADD_SMFRM_PROT. DEL_HP_335958
ENDFORM.
FORM get_data_pv TABLES lc_tb_daten
CHANGING cs_header TYPE /Z2a/ss_pv_kopf
lc_va_flag_zoll TYPE segal
lc_va_vsart TYPE vsarttr
lc_va_tplst TYPE tplst
cf_retcode.
TYPES: BEGIN OF ty_wa_vbeln,
vbeln TYPE vbeln_vl,
END OF ty_wa_vbeln,
ty_tb_vbeln TYPE STANDARD TABLE OF ty_wa_vbeln
WITH DEFAULT KEY
INITIAL SIZE 0,
ty_wa_lips LIKE lips,
ty_tb_lips TYPE STANDARD TABLE OF ty_wa_lips
WITH DEFAULT KEY
INITIAL SIZE 0.
DATA: lc_tb_cond LIKE /Z2a/ss_pv_daten OCCURS 1.
DATA: lc_wa_daten TYPE /Z2a/ss_pv_daten.
DATA: lc_wa_cond TYPE /Z2a/ss_pv_daten.
DATA: lc_va_tknum TYPE tknum,
lc_tb_lips TYPE ty_tb_lips,
lc_wa_lips TYPE ty_wa_lips,
lc_va_kunnr TYPE kunnr,
lc_va_pvvkz TYPE /Z2a/pvvkz,
lc_va_exprf TYPE exprf,
lc_va_matnr TYPE matnr,
lc_va_menge TYPE lfimg.
DATA: lc_tb_vbeln TYPE ty_tb_vbeln,
lc_wa_vbeln TYPE ty_wa_vbeln,
lc_va_land1 TYPE land1,
lc_va_lifnr TYPE lifnr.
DATA: lc_va_exnum TYPE exnum.
DATA: lc_va_keyseg TYPE /dca/p000_keyseg.
DATA: lc_tb_bwdat TYPE /dca/p000_ty_tb_bwdat.
DATA: lc_wa_bwdat TYPE /dca/p000_ty_wa_bwdat.
DATA: lc_wa_bwm_result TYPE /Z2a/dat_cu_pvabwicklung.
DATA language LIKE nast-spras.
DATA shipment_number LIKE vttk-tknum.
CLEAR cf_retcode.
* get data
language = nast-spras.
shipment_number = nast-objky.
CALL FUNCTION 'RV_SHIPMENT_PRINT_VIEW'
EXPORTING
shipment_number = shipment_number
option_tvtk = 'X' "Shipmenttype J/N
option_ttds = 'X' "Disposition J/N
language = language
option_items = 'X' "Transport Items J/N
option_segments = 'X' "Transport Segments J/N
option_partners = 'X' "Partners J/N
option_sales_orders = 'X' "Sales orders J/N
option_export_data = 'X' "Export data J/N
option_packages = 'X' "Packages J/N
option_flow = ' ' "Flow J/N
option_no_refresh = ' ' "Refresh Tables J/N
IMPORTING
f_vttkvb = vttkvb "Shipment Header
f_tvtk = tvtk "Shipmenttype
f_tvtkt = tvtkt "Description Shipmenttype
f_ttds = ttds "Disposition
f_ttdst = ttdst "Description Disposition
f_vbpla = vbpla "Packages
TABLES
f_vttp = xvttp "Shipment Items
f_trlk = slk "Delivery
f_trlp = slp "Delivery Item
f_vtts = xvtts "Shipment Segments
f_vtsp = xvtsp "Segments/Items
f_vbpa = xvbpa "Partner
f_vbadr = xvbadr "Address
f_vtfa = xvtfa "Flow
f_vbplk = xvbplk "Shipment Unit Header
f_vbplp = xvbplp "Shipment Unit
f_vbpls = xvbpls "Shipment Unit Sum
EXCEPTIONS
not_found = 1.
cs_header-tknum = nast-objky.
cs_header-schiffname = vttkvb-exti1.
cs_header-abfahrt = vttkvb-dptbg.
cs_header-contnr = vttkvb-exti2.
cs_header-normt = vttkvb-add01.
cs_header-siegel = vttkvb-signi.
cs_header-gewbr = vttkvb-text2.
cs_header-gewnt = vttkvb-text3.
cs_header-dalen = vttkvb-dalen.
cs_header-dptbg = vttkvb-dptbg.
cs_header-add03 = vttkvb-add03.
lc_va_tplst = vttkvb-tplst.
lc_va_vsart = vttkvb-vsart.
SELECT vbeln
FROM vttp
INTO TABLE lc_tb_vbeln
WHERE tknum = lc_va_tknum.
LOOP AT lc_tb_vbeln INTO lc_wa_vbeln.
SELECT SINGLE kunnr lifex
FROM likp
INTO (lc_va_kunnr, cs_header-mbcnr)
WHERE vbeln = lc_wa_vbeln-vbeln.
SELECT *
FROM lips
INTO TABLE lc_tb_lips
WHERE vbeln = lc_wa_vbeln-vbeln.
ENDLOOP.
LOOP AT lc_tb_lips INTO lc_wa_lips.
SELECT SINGLE pvvkz
FROM /Z2a/ldm_kun
INTO lc_va_pvvkz
WHERE kunnr = lc_va_kunnr.
IF lc_va_pvvkz NE 'X'.
cf_retcode = 4.
EXIT.
ELSE.
SELECT SINGLE exnum segal
FROM eikp
INTO (lc_va_exnum, lc_va_flag_zoll)
WHERE refnr = lc_wa_lips-vbeln.
SELECT SINGLE exprf
FROM eipo
INTO lc_va_exprf
WHERE exnum = lc_va_exnum
AND expos = lc_wa_lips-posnr.
lc_va_keyseg = lc_va_exprf.
CALL FUNCTION '/ZTR/P000_MCDATA_FROM_'
EXPORTING
cv_va_keytyp = '/Z2a/KEY_CU_PVABWICKLUNG'
cv_va_keyseg = lc_va_keyseg
TABLES
cr_tb_bwdat = lc_tb_bwdat.
IF NOT lc_tb_bwdat[] IS INITIAL.
LOOP AT lc_tb_bwdat INTO lc_wa_bwdat.
lc_wa_bwm_result = lc_wa_bwdat-datseg.
IF lc_wa_bwm_result-pv_relevant = 'X'.
* Kumulieren
lc_wa_cond-matnr = lc_wa_lips-matnr.
SELECT SINGLE maktx
FROM makt
INTO lc_wa_cond-arktx
WHERE matnr = lc_wa_lips-matnr
AND spras = 'DE'.
lc_wa_cond-menge = lc_wa_lips-lfimg.
lc_wa_cond-me = lc_wa_lips-meins.
COLLECT lc_wa_cond INTO lc_tb_cond.
ENDIF.
ENDLOOP.
ENDIF.
ENDIF.
ENDLOOP.
cs_header-kunnr = lc_va_kunnr.
SELECT SINGLE name1 name2 land1
INTO (cs_header-name1,
cs_header-name2,
lc_va_land1)
FROM kna1
WHERE kunnr = lc_va_kunnr.
SELECT SINGLE landx
INTO cs_header-land
FROM t005t
WHERE spras = sy-langu
AND land1 = lc_va_land1.
* Sortieren Aufsteigend nach Materialnr
SORT lc_tb_cond ASCENDING BY matnr.
* Übergabe an Ausgabetabelle
LOOP AT lc_tb_cond INTO lc_wa_cond.
MOVE-CORRESPONDING lc_wa_cond TO lc_wa_daten.
APPEND lc_wa_daten TO lc_tb_daten.
ENDLOOP.
ENDFORM. " get_data_spat
FORM set_print_data_to_read
USING if_formname LIKE tnapr-sform
CHANGING cs_print_data_to_read TYPE ledlv_print_data_to_read
cf_retcode.
FIELD-SYMBOLS: <fs_print_data_to_read> TYPE xfeld.
DATA: lt_fieldlist TYPE tsffields.
DATA: ls_fieldlist TYPE LINE OF tsffields.
DATA: lf_field1 TYPE LINE OF tsffields.
DATA: lf_field2 TYPE LINE OF tsffields.
DATA: lf_field3 TYPE LINE OF tsffields.
CALL FUNCTION 'SSF_FIELD_LIST'
EXPORTING
formname = if_formname
* VARIANT = ' '
IMPORTING
fieldlist = lt_fieldlist
EXCEPTIONS
no_form = 1
no_function_module = 2
OTHERS = 3.
IF sy-subrc <> 0.
cf_retcode = sy-subrc.
CLEAR lt_fieldlist.
ELSE.
* set print data requirements
LOOP AT lt_fieldlist INTO ls_fieldlist.
SPLIT ls_fieldlist AT '-' INTO lf_field1 lf_field2 lf_field3.
* <<<< START_OF_INSERTION_HP_350342 >>>>
IF lf_field1 = 'IS_DLV_DELNOTE' AND lf_field2 = 'IT_SERNR'.
lf_field2 = 'IT_SERNO'.
ENDIF.
* <<<< END_OF_INSERTION_HP_350342 >>>>
ASSIGN COMPONENT lf_field2 OF STRUCTURE
cs_print_data_to_read TO <fs_print_data_to_read>.
IF sy-subrc = 0.
<fs_print_data_to_read> = 'X'.
ENDIF.
ENDLOOP.
* header data is always required
cs_print_data_to_read-hd_gen = 'X'.
* adress is always required for print param
cs_print_data_to_read-hd_adr = 'X'.
* organisational data is always required for include texts
cs_print_data_to_read-hd_org = 'X'.
ENDIF.
ENDFORM. " set_print_data_to_read
*& Form set_print_param
* text
* -->P_LS_ADDR_KEY text
* <--P_LS_CONTROL_PARAM text
* <--P_LS_COMPOSER_PARAM text
* <--P_LS_RECIPIENT text
* <--P_LS_SENDER text
* <--P_CF_RETCODE text
FORM set_print_param USING is_addr_key LIKE addr_key
* lc_va_tknum
lc_va_lfnr TYPE nrlevel
CHANGING cs_control_param TYPE ssfctrlop
cs_composer_param TYPE ssfcompop
cs_recipient TYPE swotobjid
cs_sender TYPE swotobjid
cf_retcode TYPE sy-subrc.
DATA: ls_itcpo TYPE itcpo.
DATA: lf_repid TYPE sy-repid.
DATA: lf_device TYPE tddevice.
DATA: ls_recipient TYPE swotobjid.
DATA: ls_sender TYPE swotobjid.
DATA: lc_va_suffix TYPE rspo2name.
lf_repid = sy-repid.
CALL FUNCTION 'WFMC_PREPARE_SMART_FORM'
EXPORTING
pi_nast = nast
pi_addr_key = is_addr_key
pi_repid = lf_repid
IMPORTING
pe_returncode = cf_retcode
pe_itcpo = ls_itcpo
pe_device = lf_device
pe_recipient = cs_recipient
pe_sender = cs_sender.
SHIFT lc_va_lfnr LEFT DELETING LEADING '0'.
CONCATENATE 'PV' lc_va_lfnr INTO lc_va_suffix.
IF cf_retcode = 0.
MOVE-CORRESPONDING ls_itcpo TO cs_composer_param.
cs_composer_param-tdsuffix2 = lc_va_suffix.
cs_control_param-device = lf_device.
cs_control_param-no_dialog = 'X'.
cs_control_param-preview = screen.
cs_control_param-getotf = ls_itcpo-tdgetotf.
cs_control_param-langu = nast-spras.
ENDIF.
ENDFORM. " set_print_param
FORM protocol_nast_update.
CALL FUNCTION 'NAST_PROTOCOL_UPDATE'
EXPORTING
msg_arbgb = '/Z2a/PVSCHEIN'
msg_nr = '001'
msg_ty = 'E'
* MSG_V2 = SYST-MSGV2
* MSG_V3 = SYST-MSGV3
* MSG_V4 = SYST-MSGV4
* MSG_V1 = SYST-MSGV1
EXCEPTIONS
OTHERS = 1.
ENDFORM.Hello!
I have to customize the enclosed source code so it does the following:
print out for each shipment (see FuBa:RV_SHIPMENT_PRINT_VIEW
parameter slp) really seperated by for every shipment item LIKP-VBELN
and not for the whole VTTP-TKNUM.
The parameter "slp" must be stripted so by leaving
of the routine "get_data_pv" has only the datas of the current
LIKP-VBELN, and in the next step taking the next LIKP-VBELN
and so on. Right now it performs only one time for one VTTP-TKNUM.
If you don't understand VTTP-TKNUM and LIKP-VBELN please refer
to Transaction SE11.
Reagrds
Ilhan -
Looking for a FM to download entirely PO/CTR data from R/3
Hi all gurus,
as told in subject, I'm looking for a way to dowload all the data of a contract or a purchase order into a local file on my client.
For those who are familiar with SRM, there's a transaction, BBP_PD, which - given a contract or po number - offers all the data of the documents splitted into corresponding DB tables, e.g:
- for what concerns the header: BBP_PDHGP, CRMD_ORDERADM_H and so on...
- for what concerns the items: BBP_PDIGP, CRMD_ORDERADM_I etc....
Now, assuming I'm dealing with a certain R/3 document and that this backend doesn't support versioning ( = there's only a single version for each document), how can I export - say in an EXCEL/csv file - all the data of that document splitted into corresponding tables?
Is there something standard? I could code such a report but I actually don't know all the DB tables involved in Contract/PO creation/modification but only the major ones, like EKKO, EKPO, ESLL, ESKL... I'm sure I will miss some information. Moreover, not all the links which connect the tables are straightforward and clear to rebuild.
Of course, a getdetail() is not a solution as the sensation is that it doesn't extract everything but only the relevant data.
Thanks in advance.Hi,
If you want to know absolutely ALL the tables that are related to a purchase order you can execute transaction SARA. It will give you the list of all the tables related to a particular object. For purchase order use MM_EKKO in the initial screen and press 'DB Tables'. The complete listing is this:
A068, A081, A082, A215, ADR10, ADR11, ADR12, ADR13, ADR2, ADR3, ADR4, ADR5, ADR6, ADR7, ADR8, ADR9, ADRCOMC, ADRCT, ADRG, ADRGP, ADRT, ADRU, ADRV, ADRVP, AUSP, CDCLS, CDHDR, CDPOS_STR, CDPOS_UID, CMFK, CMFP, DJEST, EIKP, EIPO, EKAB, EKBE, EKBEH, EKBZ, EKBZH, EKEH, EKEK, EKES, EKET, EKETH, EKKN, EKKO, EKPA, EKPO, EKPV, EKUB, EREV, ESKL, ESKN, ESLH, ESLL, ESSR, ESUC, ESUH, FPLA, FPLT, IBADDR, IBIB, IBIBOBS, IBIBT, IBIN, IBINDOMAINS, IBINOBS, IBINOWN, IBINT, IBINTX, IBINVALUES, IBSP, IBST, IBSTREF, IBSYMBOL, INOB, JCDO, JCDS, JEST, JSTO, KAPOL, KOCLU, KONH, KONM, KONP, KONW, KSSK, MLBE, MLBECR, MLWERE, NAST, RESB, S111, STXB, STXH, STXL
Of course, there may be tables you are not interested in such as pricing (konm, konp, know, konh), adresses (ADR*), sapscript texts (STXH, stxl), messages (NAST), etc..
Maybe you are looking for
-
IPhone driver not recognized in windows 7
When I plugin my iphone 4s to windows 7, it is detected as generic usb device and is not shown up in itunes..Itunes is able to detect my iPod classic device though..
-
AS2 Sender Adapter -- Need few details.
Hi Seeburger Experts, Im new to seeburger and i just to know regarding AS2 adapter. Im a bit clear about the AS2 receiver adapter there we have an option of giving partner Server,URL and Port to send the messages from XI. In the same way, I couldn't
-
Refreshing materialized view fails
Hi, I'm trying to refresh a materialized view. I've set up everything according to the documentation but when I try to do a refresh of the MV I get an end-of-file on communication channel. I know there is not a single cause of this error but maybe so
-
Hello Guys, We are using SAP ECC 6.00 version.I use SAP IN BUILT integrated viewer to view the auto CAd files.i have customized relevent info in DC30 for the workstation network. My problem is ,when i open any Original of autocad from DIR ,it opens t
-
Downloaded Photos but did not save, all lost?
I'm new to iPhoto and to my Nikon CoolPix995 Camera. I transfered 63 pictures to iPhoto and, thinking they were on my computer, erased them from my camera. I've searched all my gif, tiff, pic, picture, etc., files in my Finder without any luck. I