Application Development and Automation Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

Script

Former Member
0 Likes
605

Hi All,

I need top modify a script with out distributing driver program. I need to fetch some relevant data from database and fill it in one window.

can any one help in this regard.

Best Regards,

Mahesh.

6 REPLIES 6
Read only

Former Member
0 Likes
568

hello,

you can do this by creating an subrouting pool and using the ITCSY structures.

In your layouut you can call this extenal subroutine as follows,

perform form in program pname changig itcsy.

Reward if it helps.

Regards,

krishna

Read only

Former Member
0 Likes
568

Hello Mahes,

U can do this with the help of perform stmt.

Ex:

PERFORM GET_VEND_NAME_MOD IN PROGRAM /RB17/YV_FORMS_PUTAWAY_LIST

USING &LTAK-VBELN&

USING &LTAP-POSNR&

USING &LTAK-LGNUM&

USING &LTAK-BWART&

USING &LTAK-BWLVS&

USING &LTAK-MBLNR&

USING &LTAK-MJAHR&

CHANGING &VEND_NAME&

CHANGING &TRAID&

CHANGING &SHIPPING_UNIT&

CHANGING &VEKP_VKORG&

CHANGING &VEKP_VTWEG&

FORM get_vend_name_mod TABLES in_tab STRUCTURE itcsy

out_tab STRUCTURE itcsy .

DATA : z_vbeln LIKE ltak-vbeln,

z_lgnum LIKE ltak-lgnum,

z_bwart LIKE ltak-bwart,

z_bwlvs LIKE ltak-bwlvs,

z_mblnr LIKE ltak-mblnr,

z_mjahr LIKE ltak-mjahr,

z_posnr LIKE ltap-posnr,

l_f_handle LIKE vevw-handle,

l_f_werks LIKE mseg-werks,

l_f_objkey(14) TYPE c,

l_f_stock1(35) TYPE c.

CONSTANTS : l_f_stock(35) TYPE c VALUE 'Stock Transfer from Plant 9060'.

CLEAR : likp,lfa1.

  • Get the delivery number

READ TABLE in_tab WITH KEY name = 'LTAK-VBELN'.

CHECK sy-subrc = 0.

z_vbeln = in_tab-value.

CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'

EXPORTING

input = z_vbeln

IMPORTING

output = z_vbeln.

  • position number

READ TABLE in_tab WITH KEY name = 'LTAP-POSNR'.

CHECK sy-subrc = 0.

z_posnr = in_tab-value.

CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'

EXPORTING

input = z_posnr

IMPORTING

output = z_posnr.

  • Warehouse number

READ TABLE in_tab WITH KEY name = 'LTAK-LGNUM'.

IF sy-subrc = 0.

z_lgnum = in_tab-value.

ENDIF.

  • Movement type

READ TABLE in_tab WITH KEY name = 'LTAK-BWART'.

IF sy-subrc = 0.

z_bwart = in_tab-value.

ENDIF.

READ TABLE in_tab WITH KEY name = 'LTAK-BWLVS'.

IF sy-subrc = 0.

z_bwlvs = in_tab-value.

ENDIF.

  • Material document number and year

READ TABLE in_tab WITH KEY name = 'LTAK-MBLNR'.

IF sy-subrc = 0.

z_mblnr = in_tab-value.

ENDIF.

READ TABLE in_tab WITH KEY name = 'LTAK-MJAHR'.

IF sy-subrc = 0.

z_mjahr = in_tab-value.

ENDIF.

CONCATENATE z_mblnr z_mjahr INTO l_f_objkey.

IF ( z_lgnum = 'A11' AND z_bwart = '301' AND z_bwlvs = '302' ).

SELECT SINGLE handle INTO l_f_handle FROM vevw

WHERE object = 'MM' AND

objkey = l_f_objkey.

IF sy-subrc EQ 0 AND

NOT l_f_handle IS INITIAL.

SELECT SINGLE * FROM vekp

WHERE handle = l_f_handle.

g_f_exidv = vekp-exidv.

ENDIF.

SELECT SINGLE werks INTO l_f_werks FROM mseg

WHERE

mblnr = z_mblnr AND

mjahr = z_mjahr AND

shkzg = 'H'.

IF sy-subrc EQ 0

AND l_f_werks EQ '9060'.

l_f_stock1 = l_f_stock.

ENDIF.

SELECT SINGLE * FROM likp

WHERE vbeln = z_vbeln .

IF sy-subrc EQ 0 .

SELECT SINGLE * FROM lfa1

WHERE lifnr = likp-lifnr.

ENDIF.

ELSE.

SELECT SINGLE * FROM likp

WHERE vbeln = z_vbeln .

IF sy-subrc EQ 0 .

SELECT SINGLE * FROM lfa1

WHERE lifnr = likp-lifnr.

l_f_stock1 = lfa1-name1.

ENDIF.

SELECT SINGLE vbeln FROM vbfa

INTO vbfa-vbeln

WHERE vbtyp_n = 'X'

AND vbelv = z_vbeln.

SELECT SINGLE * FROM vepo

WHERE venum = vbfa-vbeln.

IF sy-subrc EQ 0 .

SELECT SINGLE * FROM vekp

WHERE venum = vepo-venum.

ENDIF.

IF vekp-exidv IS INITIAL.

SELECT SINGLE * FROM vekp

WHERE vpobj IN ('01','03')

AND vpobjkey = z_vbeln.

g_f_exidv = vekp-exidv.

ENDIF.

ENDIF.

READ TABLE out_tab WITH KEY name = 'VEND_NAME'.

CHECK sy-subrc = 0.

out_tab-value = l_f_stock1.

SHIFT out_tab-value LEFT DELETING LEADING space.

MODIFY out_tab INDEX sy-tabix.

READ TABLE out_tab WITH KEY name = 'TRAID'.

CHECK sy-subrc = 0.

out_tab-value = likp-traid.

SHIFT out_tab-value LEFT DELETING LEADING space.

MODIFY out_tab INDEX sy-tabix.

READ TABLE out_tab WITH KEY name = 'SHIPPING_UNIT'.

CHECK sy-subrc = 0.

out_tab-value = g_f_exidv.

SHIFT out_tab-value LEFT DELETING LEADING space.

SHIFT out_tab-value LEFT DELETING LEADING '0'.

MODIFY out_tab INDEX sy-tabix.

READ TABLE out_tab WITH KEY name = 'VEKP_VKORG'.

CHECK sy-subrc = 0.

out_tab-value = vekp-vkorg.

MODIFY out_tab INDEX sy-tabix.

READ TABLE out_tab WITH KEY name = 'VEKP_VTWEG'.

CHECK sy-subrc = 0.

out_tab-value = vekp-vtweg.

MODIFY out_tab INDEX sy-tabix.

*} INSERT

ENDFORM. "get_vend_name_mod

If useful reward points.

Regards,

Vasanth

Read only

0 Likes
568

hi,

Use Perform statement in this way...

i.e,

PERFORM GET_VENDOR <b>IN PROGRAM VENDOR_LIST</b>
USING &VBAK-VBELN&
USING &VBAK-POSNR&
CHANGING &V_VBELN&
CHANGING &V_POSNR&.

Read only

Former Member
0 Likes
568

Refer the following links:

Regards,

Ravi

Read only

Former Member
0 Likes
568

so copy your current layout to a new Z layout.

then in that window use the variables to print like

&LFA1-LAND1& etc..

to get the values for those fields you should add up the logic to fetch either in driver program or write a z program for that & in that write a FORM routine & call that form routine in the script editor.

/: PERFORM F_GET_HEADER_DETAILS IN PROGRAM

ZPRG_FORMS(YOUR new Z program)

/: USING &LFA1-LIFNR&

/: CHANGING &LFA1-LAND1&.

FORM F_GET_HEADER_DETAILS TABLES ITAB STRUCTURE ITCSY

OTAB STRUCTURE ITCSY.

  • VENDOR NO

CLEAR V_LIFNR.

READ TABLE ITAB WITH KEY NAME = 'LFA1-LIFNR'

TRANSPORTING VALUE.

V_LIFNR = ITAB-VALUE.

THEN USE YOUR SELECT TO FETCH LAND1.

select single land1

into v_land1

from lfa1

where lifnr = v_lifnr.

OTAB-VALUE = V_LAND1.

MODIFY OTAB with key name = 'LFA1-LAND1'.

the value will be populated to your variable LAND1 & which will printed onthe layout

regards

srikanth

Read only

Former Member
0 Likes
568
          • write this perform statement in ur script window( on which window u r doing changes)

/: PERFORM COUNTRY_CODE IN PROGRAM 'Z_MM_R_MMPO'

/: USING &LFA1-LAND1& " availa ble field in ur program.

/: USING &LFA1-SPRAS& " availa ble field in ur program.

/: CHANGING &COUNTRY& " field added to ur script.

/: CHANGING &ANRED& " field added to ur script.

/: CHANGING &NAME1& " field added to ur script.

/: CHANGING &STREET& " field added to ur script.

/: CHANGING &STR_SUPPL3& " field added to ur script.

/: CHANGING &LOCATION& " field added to ur script.

/: CHANGING &STRSUPPL1& " field added to ur script.

/: CHANGING &NAME3& " field added to ur script.

/: CHANGING &NAME4& " field added to ur script.

/: CHANGING &CITY1& " field added to ur script.

/: CHANGING &CITY2& " field added to ur script.

create exc program with z_mm_r_mmpo . this is we r using in our perform statement.

FORM country_code TABLES in_tab STRUCTURE itcsy

out_tab STRUCTURE itcsy. "#EC CALLED

DATA : land1 TYPE lfa1-land1, "plant

spras TYPE lfa1-spras, "LANGUAGE

landx TYPE t005t-landx, "company code

werks TYPE ekpo-werks, "#EC *

adrnr TYPE lfa1-adrnr, "ADDRESS

lifnr TYPE lfa1-lifnr, "VENDOR CODE

anred TYPE lfa1-anred, "M/S

name1 TYPE adrc-name1, "NAME

name3 TYPE lfa1-name3,

name4 TYPE lfa1-name4,

city1 TYPE adrc-city1, "CITY1

city2 TYPE adrc-city2, "CITY2

street TYPE adrc-street, "STREET

str_suppl1 TYPE adrc-str_suppl1, "#EC *

str_suppl2 TYPE adrc-str_suppl2, "#EC *

adrnr1 TYPE t001w-adrnr, "#EC *

str_suppl3 TYPE adrc-str_suppl3, "STR_SUPPL3

location TYPE adrc-location, "LOCATION

post_code1 TYPE adrc-post_code1, "POSTCODE

region TYPE adrc-region,

bezei TYPE t005u-bezei,

email TYPE adr6-smtp_addr, "#EC *

fax TYPE adrc-fax_number. "FAX NUMBER

READ TABLE in_tab WITH KEY name = 'LFA1-LAND1'.

CHECK sy-subrc = c_zero.

land1 = in_tab-value.

READ TABLE in_tab WITH KEY name = 'LFA1-SPRAS'. "LFA1-SPRAS

CHECK sy-subrc = c_zero.

spras = in_tab-value.

*get COUNTRY NAME

SELECT SINGLE landx

INTO landx

FROM t005t

WHERE land1 = land1

AND spras = spras+0(1).

READ TABLE out_tab WITH KEY name = 'COUNTRY'. "COUNTRY

CHECK sy-subrc = c_zero.

out_tab-value = landx.

TRANSLATE landx TO UPPER CASE.

MODIFY out_tab INDEX sy-tabix.

READ TABLE in_tab WITH KEY name = 'EKKO-LIFNR'. "EKKO-LIFNR

CHECK sy-subrc = c_zero.

lifnr = in_tab-value.

*GET THE ADDRESS

SELECT SINGLE adrnr anred name3 name4

INTO (adrnr,anred,name3,name4)

FROM lfa1

WHERE lifnr = lifnr.

READ TABLE out_tab WITH KEY name = 'ANRED'. "M/S

CHECK sy-subrc = c_zero. "#EC *

out_tab-value = anred.

MODIFY out_tab INDEX sy-tabix.

SELECT SINGLE name1 city1 city2 post_code1 street location str_suppl3

region fax_number

INTO (name1, city1, city2, post_code1, street, location, str_suppl3,

region, fax)

FROM adrc

WHERE addrnumber = adrnr. "#EC *

        • GET STATE NAME.

SELECT SINGLE bezei FROM t005u INTO bezei WHERE spras = 'EN'

AND land1 = land1

AND bland = region.

TRANSLATE bezei TO UPPER CASE.

READ TABLE out_tab WITH KEY name = 'LANDX'. "COUNTRY

CHECK sy-subrc = c_zero.

out_tab-value = landx.

TRANSLATE landx TO UPPER CASE.

MODIFY out_tab INDEX sy-tabix.

READ TABLE out_tab WITH KEY name = 'BEZEI'. "STATE

CHECK sy-subrc = c_zero.

out_tab-value = bezei.

MODIFY out_tab INDEX sy-tabix.

READ TABLE out_tab WITH KEY name = 'NAME1'. "NAME1

CHECK sy-subrc = c_zero.

out_tab-value = name1.

MODIFY out_tab INDEX sy-tabix.

READ TABLE out_tab WITH KEY name = 'NAME3'. "NAME1

CHECK sy-subrc = c_zero.

out_tab-value = name3.

MODIFY out_tab INDEX sy-tabix.

READ TABLE out_tab WITH KEY name = 'NAME4'. "NAME1

CHECK sy-subrc = c_zero.

out_tab-value = name4.

MODIFY out_tab INDEX sy-tabix.

READ TABLE out_tab WITH KEY name = 'STREET'. "STREET

CHECK sy-subrc = c_zero.

out_tab-value = street.

MODIFY out_tab INDEX sy-tabix.

READ TABLE out_tab WITH KEY name = 'LOCATION'. "LOCATION

CHECK sy-subrc = c_zero.

out_tab-value = location.

MODIFY out_tab INDEX sy-tabix.

READ TABLE out_tab WITH KEY name = 'STRSUPPL3'. "STRSUPPL3

CHECK sy-subrc = c_zero.

out_tab-value = str_suppl3.

MODIFY out_tab INDEX sy-tabix.

READ TABLE out_tab WITH KEY name = 'CITY1'. "CITY1

CHECK sy-subrc = c_zero.

out_tab-value = city1.

MODIFY out_tab INDEX sy-tabix.

READ TABLE out_tab WITH KEY name = 'CITY2'. "CITY2

CHECK sy-subrc = c_zero.

out_tab-value = city2.

MODIFY out_tab INDEX sy-tabix.

READ TABLE out_tab WITH KEY name = 'POSTCODE'. "POSTCODE

CHECK sy-subrc = c_zero.

out_tab-value = post_code1.

MODIFY out_tab INDEX sy-tabix.

ENDFORM.