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

AFTER AT SELECTION ON VALUE REQUEST

Former Member
0 Likes
482

HI after at selection on value request for p_vbeln

example.

i am giving input selection criterai

entering

material ' c2010110'

batch 'd0032'

plant '1109'.

after at selection on valuie request for p_vbeln

it shows enteires

material value space

batch value space'

plant value sapce

pls let me know wht is the wrong

the input selection entries will shows null values

AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_vbeln.

SELECT * FROM lips INTO CORRESPONDING FIELDS OF TABLE p_it_values

where werks = p_werks

AND matnr = p_matnr

AND charg = p_charg

and vbeln = p_vbeln.

thanks

suma

3 REPLIES 3
Read only

Former Member
0 Likes
459

Hi,

Check these code if it is usefull

Hi..

This is the Code to generate F4 help in selection screen.. modify as per ur need.

*

REPORT ZSEL_F4HELP.

*---Report with selection screen and to display the list of

  • possible entries for field 'B' as per the value in field 'A'.

PARAMETERS: p_vbeln TYPE vbaP-VBELN,

p_posnr TYPE vbap-posnr,

P_MATKL TYPE VBAP-MATKL.

DATA : IT_RTAB TYPE TABLE OF DDSHRETVAL WITH HEADER LINE.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_posnr.

DATA: BEGIN OF help_item OCCURS 0,

posnr TYPE vbap-posnr,

matnr TYPE vbap-matnr,

MATKL TYPE VBAP-MATKL,

END OF help_item.

DATA: dynfields TYPE TABLE OF dynpread WITH HEADER LINE.

dynfields-fieldname = 'P_VBELN'.

APPEND dynfields.

**Read the Values of the SCREEN FIELDs

CALL FUNCTION 'DYNP_VALUES_READ'

EXPORTING

dyname = sy-cprog

dynumb = sy-dynnr

translate_to_upper = 'X'

TABLES

dynpfields = dynfields

EXCEPTIONS

invalid_abapworkarea = 1

invalid_dynprofield = 2

invalid_dynproname = 3

invalid_dynpronummer = 4

invalid_request = 5

no_fielddescription = 6

invalid_parameter = 7

undefind_error = 8

double_conversion = 9

stepl_not_found = 10

OTHERS = 11.

**Find out the Value of P_VBELN

READ TABLE dynfields WITH KEY fieldname = 'P_VBELN'.

p_vbeln = dynfields-fieldvalue.

**Convert the Value into internal format

CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'

EXPORTING

input = p_vbeln

IMPORTING

output = p_vbeln.

**Fetch the correponding itemnos from VBAP

SELECT posnr matnr MATKL INTO TABLE help_item

FROM vbap

WHERE vbeln = p_vbeln.

**Generate the F4 help with internal table values

CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'

EXPORTING

  • DDIC_STRUCTURE = ' '

retfield = 'POSNR'

dynprofield = 'P_POSNR'

dynpprog = sy-cprog

dynpnr = sy-dynnr

  • STEPL = 0

  • WINDOW_TITLE =

  • VALUE = ' '

VALUE_ORG = 'S'

  • MULTIPLE_CHOICE = ' '

  • DISPLAY = ' '

  • CALLBACK_PROGRAM = ' '

  • CALLBACK_FORM = ' '

  • MARK_TAB =

  • IMPORTING

  • USER_RESET =

TABLES

VALUE_TAB = HELP_ITEM

  • FIELD_TAB =

RETURN_TAB = IT_RTAB

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

  • CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'

  • EXPORTING

  • retfield = 'POSNR'

  • dynprofield = 'P_POSNR'

  • dynpprog = sy-cprog

  • dynpnr = sy-dynnr

  • value_org = 'S'

  • TABLES

  • value_tab = help_item.

*********************************************************

READ TABLE IT_RTAB WITH KEY RETFIELD = 'MATKL'.

IF SY-SUBRC = 0.

READ TABLE dynfields WITH KEY fieldname = 'P_MATKL'.

dynfields-fieldvalue = IT_RTAB-FIELDVAL.

MODIFY DYNFIELDS INDEX SY-TABIX

TRANSPORTING FIELDVALUE.

CALL FUNCTION 'DYNP_VALUES_UPDATE'

EXPORTING

DYNAME = SY-CPROG

DYNUMB = SY-DYNNR

TABLES

DYNPFIELDS = DYNFIELDS

  • EXCEPTIONS

  • INVALID_ABAPWORKAREA = 1

  • INVALID_DYNPROFIELD = 2

  • INVALID_DYNPRONAME = 3

  • INVALID_DYNPRONUMMER = 4

  • INVALID_REQUEST = 5

  • NO_FIELDDESCRIPTION = 6

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

Reward if Helpful

Read only

Former Member
0 Likes
459

I think you are doing validation for VBELN in at selection screen on value request

but value table for VBELN is VBUK so select the values from VBUK and validate VBELN

<b>SELECT-OPTIONS: s_inum FOR gs_vbrk-vbeln . " Invoice Number</b>

then

  • Validation for Invoice Number

AT SELECTION-SCREEN ON s_inum.

PERFORM sub_validate_invoice_number.

check below code for validation

&----


*& Form sub_validate_invoice_number

&----


  • Validation for Invoice Number

----


FORM sub_validate_invoice_number .

  • Validation for Invoice Number

TYPES: BEGIN OF ltt_vbeln,

vbeln TYPE vbuk-vbeln, " Invoice Number

END OF ltt_vbeln.

DATA: ls_svbeln LIKE LINE OF s_inum, " Invoice Number

ls_vbeln TYPE ltt_vbeln, " Invoice Number

ls_vbeln_n TYPE ltt_vbeln, "#EC NEEDED " Invoice Number

lt_vbeln TYPE TABLE OF ltt_vbeln, " Invoice Number

lt_vbeln_n TYPE TABLE OF ltt_vbeln. " Invoice Number

  • Build internal table with all values in S_INUM

IF NOT s_inum[] IS INITIAL.

LOOP AT s_inum INTO ls_svbeln.

  • FROM value

IF NOT ls_svbeln-low IS INITIAL.

ls_vbeln = ls_svbeln-low.

APPEND ls_vbeln TO lt_vbeln.

CLEAR ls_vbeln.

ENDIF.

  • TO Value

IF NOT ls_svbeln-high IS INITIAL.

ls_vbeln = ls_svbeln-high.

APPEND ls_vbeln TO lt_vbeln.

CLEAR ls_vbeln.

ENDIF.

ENDLOOP.

ENDIF.

  • Get data from table VBUK

IF NOT lt_vbeln[] IS INITIAL.

SORT lt_vbeln BY vbeln.

SELECT vbeln

INTO TABLE lt_vbeln_n

FROM vbuk

FOR ALL ENTRIES IN lt_vbeln

WHERE vbeln = lt_vbeln-vbeln.

IF sy-subrc <> 0.

MESSAGE e013 WITH space.

ENDIF.

SORT lt_vbeln_n BY vbeln.

  • Validate Invoice Number

LOOP AT lt_vbeln INTO ls_vbeln.

CLEAR ls_vbeln_n.

READ TABLE lt_vbeln_n INTO ls_vbeln_n WITH KEY vbeln = ls_vbeln-vbeln

BINARY SEARCH.

IF sy-subrc <> 0.

MESSAGE e013 WITH ls_vbeln-vbeln.

ENDIF.

ENDLOOP.

ENDIF.

ENDFORM. " sub_validate_invoice_number

Rewards if useful.....................

Minal

Read only

Former Member
0 Likes
459

Hi suma,

Your logic is not clear with that code.

Please refer the below code, you will get a better idea of how to do it.

SELECT-OPTIONS: s_date FOR mceks-buper NO-EXTENSION.

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

*Local variable declaration

DATA: li_ret_tab TYPE STANDARD TABLE OF ddshretval,

lwa_ret_tab LIKE LINE OF li_ret_tab.

*Functional Module to provide F4 help

CALL FUNCTION 'F4IF_FIELD_VALUE_REQUEST'

EXPORTING

tabname = ' '

fieldname = ' '

searchhelp = text-028

TABLES

return_tab = li_ret_tab

EXCEPTIONS

field_not_found = 1

no_help_for_field = 2

inconsistent_help = 3

no_values_found = 4

OTHERS = 5.

IF sy-subrc IS INITIAL.

READ TABLE li_ret_tab INTO lwa_ret_tab INDEX 1.

IF sy-subrc IS INITIAL.

CONCATENATE lwa_ret_tab-fieldval6(4) lwa_ret_tab-fieldval3(2)

INTO s_date-low.

ENDIF.

ENDIF.

Regards,

Sheron