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

F4 HELP

Former Member
0 Likes
700

HI ALL,

actually i need to get f4 HELP FOR ZLSCH field.

the probelm is if i am giving only one company code i am getting correct values for zlsch. if iam giving 2 company codes i am getting only zlsch values for first company code.

please help how to get zlsch values fo whatever i give in s_bukrs.

please help me.

the code i have written is

s_bukrs FOR lfb1-bukrs no intervals OBLIGATORY,

s_zlsch FOR t042e-zlsch no intervals.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR s_zlsch-low.

data : l_dyname type standard table of DYNPREAD with header line.

l_dyname-FIELDNAME = 'S_BUKRS-LOW'.

append l_dyname.

CALL FUNCTION 'DYNP_VALUES_READ'

EXPORTING

dyname = sy-cprog

dynumb = sy-dynnr

tables

dynpfields = l_dyname

.

IF sy-subrc <> 0.

  • MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

  • WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.

refresh s_bukrs.

loop at l_dyname.

s_bukrs-low = l_dyname-FIELDVALUE.

s_bukrs-SIGN = 'I'.

s_bukrs-OPTION = 'EQ'.

append s_bukrs.

endloop.

SELECT zbukr

zlsch

FROM t042e

INTO TABLE gt_t042e

WHERE zbukr IN s_bukrs.

CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'

EXPORTING

retfield ='ZLSCH'

dynpprog = sy-cprog

dynpnr = '1000' "sy-dynnr

dynprofield = 'S_ZLSCH'

  • VALUE = '*'

value_org = 'S'

TABLES

value_tab = gt_t042e

  • RETURN_TAB = return_tab

EXCEPTIONS

parameter_error = 1

no_values_found = 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.

please help do i need to anything else.

please urgent

5 REPLIES 5
Read only

Former Member
0 Likes
663

Hi ,

you have read the HIGH value also .

l_dyname-FIELDNAME = 'S_BUKRS-LOW'.

append l_dyname.

l_dyname-FIELDNAME = 'S_BUKRS-HIGH'.

append l_dyname.

This is also appicable if you enter two values in low .

below also fill high when you get the high .

loop at l_dyname.

s_bukrs-low = l_dyname-FIELDVALUE.

s_bukrs-SIGN = 'I'.

s_bukrs-OPTION = 'EQ'.

append s_bukrs.

endloop.

Please reward if useful.

Read only

Former Member
0 Likes
663

REPORT yf4 .

TABLES:VBAK.

PARAMETERS:P_VBELN TYPE VBELN_VA,P_VKORG TYPE VKORG.

SELECT-OPTIONS:P_KUNNR FOR VBAK-KUNNR.

*PARAMETERS:P_KUNNR TYPE KUNNR.

TYPES: BEGIN OF ty_VBAK,

VBELN TYPE VBELN_VA,

VKORG TYPE VKORG,

KUNNR TYPE KUNNR,

END OF TY_VBAK.

DATA: T_VBAK TYPE TABLE OF TY_VBAK INITIAL SIZE 0.

DATA: BEGIN OF T_KUNNR OCCURS 0,

KUNNR TYPE KUNNR,

END OF T_KUNNR.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_VBELN.

PERFORM SUB_F4_VBELN.

FORM SUB_F4_VBELN.

select vbeln VKORG KUNNR from vbak into table t_vbak up to 20 rows.

*SELECT KUNNR FROM VBAK INTO TABLE T_KUNNR UP TO 20 ROWS.

CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'

EXPORTING

  • DDIC_STRUCTURE = ' '

retfield = 'VBELN'

  • PVALKEY = ' '

DYNPPROG = SY-REPID

DYNPNR = SY-DYNNR "'1000'

DYNPROFIELD = 'P_VBELN'

  • STEPL = 0

  • WINDOW_TITLE =

  • VALUE = ' '

VALUE_ORG = 'S'

  • MULTIPLE_CHOICE = ' '

  • DISPLAY = ' '

  • CALLBACK_PROGRAM = ' '

  • CALLBACK_FORM = ' '

  • MARK_TAB =

  • IMPORTING

  • USER_RESET =

tables

value_tab = T_VBAK

  • FIELD_TAB =

  • RETURN_TAB =

  • DYNPFLD_MAPPING =

  • EXCEPTIONS

  • PARAMETER_ERROR = 1

  • NO_VALUES_FOUND = 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.

ENDFORM.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_VKORG.

PERFORM SUB_F4_VKORG.

FORM SUB_F4_VKORG.

CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'

EXPORTING

  • DDIC_STRUCTURE = ' '

retfield = 'VKORG'

  • PVALKEY = ' '

DYNPPROG = SY-REPID

DYNPNR = SY-DYNNR "'1000'

DYNPROFIELD = 'P_VKORG'

  • STEPL = 0

  • WINDOW_TITLE =

  • VALUE = ' '

VALUE_ORG = 'S'

  • MULTIPLE_CHOICE = ' '

  • DISPLAY = ' '

  • CALLBACK_PROGRAM = ' '

  • CALLBACK_FORM = ' '

  • MARK_TAB =

  • IMPORTING

  • USER_RESET =

tables

value_tab = T_VBAK

  • FIELD_TAB =

  • RETURN_TAB =

  • DYNPFLD_MAPPING =

  • EXCEPTIONS

  • PARAMETER_ERROR = 1

  • NO_VALUES_FOUND = 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.

ENDFORM.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_KUNNR-LOW.

PERFORM SUB_F4_KUNNR.

FORM SUB_F4_KUNNR.

CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'

EXPORTING

  • DDIC_STRUCTURE = ' '

retfield = 'KUNNR'

  • PVALKEY = ' '

DYNPPROG = SY-REPID

DYNPNR = SY-DYNNR "'1000'

DYNPROFIELD = 'P_KUNNR'

  • STEPL = 0

  • WINDOW_TITLE =

  • VALUE = ' '

VALUE_ORG = 'S'

  • MULTIPLE_CHOICE = ' '

  • DISPLAY = ' '

  • CALLBACK_PROGRAM = ' '

  • CALLBACK_FORM = ' '

  • MARK_TAB =

  • IMPORTING

  • USER_RESET =

tables

value_tab = T_VBAK

  • FIELD_TAB =

  • RETURN_TAB =

  • DYNPFLD_MAPPING =

  • EXCEPTIONS

  • PARAMETER_ERROR = 1

  • NO_VALUES_FOUND = 2

  • OTHERS = 3

.

IF sy-subrc <> 0.

  • MESSAGE ID SY-MSGID TYP

Read only

sachin_mathapati
Contributor
0 Likes
663

Hi..

try this ...

l_dyname-fieldname = 'S_BUKRS-LOW'.

APPEND l_dyname.

l_dyname-fieldname = 'S_BUKRS-HIGH'.

APPEND l_dyname.

CALL FUNCTION 'DYNP_VALUES_READ'

EXPORTING

dyname = sy-cprog

dynumb = sy-dynnr

tables

dynpfields = l_dyname

.

IF sy-subrc 0.

MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.

refresh s_bukrs.

loop at l_dyname.

s_bukrs-low = l_dyname-FIELDVALUE.

s_bukrs-SIGN = 'I'.

s_bukrs-OPTION = 'EQ'.

append s_bukrs.

endloop.

SELECT zbukr

zlsch

FROM t042e

INTO TABLE gt_t042e

WHERE zbukr IN s_bukrs.

CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'

EXPORTING

retfield ='ZLSCH'

dynpprog = sy-cprog

dynpnr = '1000' "sy-dynnr

dynprofield = 'S_ZLSCH'

VALUE = '*'

value_org = 'S'

TABLES

value_tab = gt_t042e

RETURN_TAB = return_tab

EXCEPTIONS

parameter_error = 1

no_values_found = 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.

Read only

0 Likes
663

I HAVE WRITTEN LIKE THIS l_dyname-FIELDNAME = 'S_BUKRS-LOW'.

append l_dyname.

l_dyname-FIELDNAME = 'S_BUKRS-HIGH'.

append l_dyname.

CALL FUNCTION 'DYNP_VALUES_READ'

EXPORTING

dyname = sy-cprog

dynumb = sy-dynnr

tables

dynpfields = l_dyname

.

IF sy-subrc <> 0.

  • MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

  • WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.

refresh s_bukrs.

loop at l_dyname.

s_bukrs-low = l_dyname-FIELDVALUE.

s_bukrs-SIGN = 'I'.

s_bukrs-OPTION = 'EQ'.

append s_bukrs.

s_bukrs-HIGH = l_dyname-FIELDVALUE.

s_bukrs-SIGN = 'I'.

s_bukrs-OPTION = 'EQ'.

append s_bukrs.

endloop.

BUT ITS GOING TO DUMP,

SAYING INVALID DYNPFIELD.

Read only

Former Member
0 Likes
663

Hi,

Check the defination if i_dyname.

It should be something like this:

DATA: BEGIN OF i_dynameOCCURS 3.

INCLUDE STRUCTURE dynpread.

DATA: END OF i_dyname.

Regards

Raju Chitale