PROCESS ON VALUE-REQUEST.
FIELD gt_order-kunnr
MODULE f4_kunnr.
========================================================================================
MODULE f4_kunnr INPUT.
DATA : lv_stepl LIKE sy-stepl,
lt_return_tab TYPE TABLE OF ddshretval WITH HEADER LINE,
lt_mapping TYPE TABLE OF dselc WITH HEADER LINE,
lt_dynpread TYPE TABLE OF dynpread WITH HEADER LINE,
l_matnr LIKE mara-matnr.
DATA : BEGIN OF lt_value_tab OCCURS 0,
kunnr TYPE zsdt0120-kunnr,
name1 TYPE kna1-name1,
END OF lt_value_tab.
*--- Read Screen row index.
CALL FUNCTION 'DYNP_GET_STEPL'
IMPORTING
povstepl = lv_stepl
EXCEPTIONS
stepl_not_found = 1
OTHERS = 2.
*--- Set field to get from Screen
lt_dynpread-fieldname = 'GT_ORDER-MATNR'.
lt_dynpread-stepl = lv_stepl.
APPEND lt_dynpread.
CLEAR lt_dynpread.
*--- Read Screen
CALL FUNCTION 'DYNP_VALUES_READ'
EXPORTING
dyname = sy-repid
dynumb = sy-dynnr
TABLES
dynpfields = lt_dynpread.
READ TABLE lt_dynpread INDEX 1.
l_matnr = lt_dynpread-fieldvalue.
CLEAR : lt_dynpread, lt_dynpread[].
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
input = l_matnr
IMPORTING
output = l_matnr.
SELECT z~kunnr
k~name1
INTO CORRESPONDING FIELDS OF TABLE lt_value_tab
FROM zsdt0120 AS z
JOIN kna1 AS k
ON z~kunnr = k~kunnr
AND k~spras = sy-langu
WHERE z~matnr = l_matnr.
IF sy-subrc IS INITIAL.
*--- Set field mapping for return values.
lt_mapping-fldname = 'F0001'.
lt_mapping-dyfldname = 'GT_ORDER-KUNNR'.
APPEND lt_mapping.
CLEAR lt_mapping.
lt_mapping-fldname = 'F0002'.
lt_mapping-dyfldname = 'GT_ORDER-NAME1'.
APPEND lt_mapping.
CLEAR lt_mapping.
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
retfield = 'KUNNR'
dynpprog = sy-repid
dynpnr = sy-dynnr
dynprofield = 'GT_ORDER-KUNNR'
value_org = 'S'
TABLES
value_tab = lt_value_tab
return_tab = lt_return_tab
dynpfld_mapping = lt_mapping
EXCEPTIONS
parameter_error = 1
no_values_found = 2
OTHERS = 3.
IF sy-subrc EQ 0.
* Fill values according to step loop index to display on screen
CLEAR : lt_dynpread, lt_dynpread[].
LOOP AT lt_return_tab.
lt_dynpread-fieldname = lt_return_tab-retfield.
lt_dynpread-stepl = lv_stepl.
lt_dynpread-fieldvalue = lt_return_tab-fieldval.
APPEND lt_dynpread.
ENDLOOP.
CALL FUNCTION 'DYNP_VALUES_UPDATE'
EXPORTING
dyname = sy-repid
dynumb = sy-dynnr
TABLES
dynpfields = lt_dynpread
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.
CLEAR : lt_dynpread, lt_dynpread[].
ENDIF.
ELSEIF sy-subrc EQ 4.
MESSAGE s000 WITH 'No Data'.
ENDIF.
ENDMODULE. " F4_KUNNR INPUT
'SAP > ABAP' 카테고리의 다른 글
An Easy Reference for ALV Grid Control (0) | 2012.09.06 |
---|---|
Excel Dynamic Upload ver. 2.0 (0) | 2012.08.28 |
BAPI_COSTCENTER_CHANGEMULTIPLE (0) | 2012.08.14 |
ABAP 에서 ICON CODE 조회 (0) | 2012.07.26 |
Edit program in PROD / QA (0) | 2012.07.24 |