‎2020 May 25 6:36 AM
In screen 1, requirement is leave Purchase Order number blank – automatically get the next purchase order number from ZKKO_nn upon pressing Create


So far i have created 3 records for PO, 45000000, 45000003 and 45000004 from zekko database table myself.
Logically it should auto create PO from 45000001, 45000002, 45000005 and so forth.
Another requirement is in screen 2, use the same button "Save Edit" (function code - SVE) which i also used for update statement to save the created entry.
The PO data are created by myself. Full code as shown below:
TABLES: ZEKKO_03,
ZEKPO_03.
CONTROLS: TC_ZEKPO TYPE TABLEVIEW USING SCREEN 9002.
DATA : OK_CODE TYPE SY-UCOMM,
GT_ZEKKO TYPE TABLE OF ZEKKO_03,
GWA_ZEKKO TYPE ZEKKO_03,
GT_ZEKPO TYPE TABLE OF ZEKPO_03,
GWA_ZEKPO LIKE LINE OF GT_ZEKPO,
F1 TYPE CHAR1,
GV_LINES TYPE I,
GV_TABIX TYPE SY-TABIX,
gv_edit TYPE c LENGTH 1,
gv_create TYPE c LENGTH 1.
*&---------------------------------------------------------------------*
*& Include MZDLGPROG_03_REPORTO01
*&---------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*& Module STATUS_9001 OUTPUT
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
MODULE STATUS_9001 OUTPUT.
SET PF-STATUS 'ZSTATUS'.
SET TITLEBAR 'ZTITLE'.
ENDMODULE.
*&---------------------------------------------------------------------*
*& Module FETCH_DATA OUTPUT
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
MODULE FETCH_DATA OUTPUT.
* SET PF-STATUS 'xxxxxxxx'.
* SET TITLEBAR 'xxx'.
SELECT EBELN LIFNR EKORG EKGRP BUKRS WAERS ZTERM ZDESC FROM ZEKKO_03
INTO CORRESPONDING FIELDS OF TABLE GT_ZEKKO
WHERE EBELN = GWA_ZEKKO-EBELN.
SELECT SINGLE EBELN LIFNR EKORG EKGRP BUKRS WAERS ZTERM ZDESC FROM ZEKKO_03
INTO CORRESPONDING FIELDS OF GWA_ZEKKO
WHERE EBELN = GWA_ZEKKO-EBELN.
READ TABLE GT_ZEKKO INTO GWA_ZEKKO INDEX SY-TABIX.
SELECT EBELP MATNR WERKS LGORT MENGE MEINS
INTO CORRESPONDING FIELDS OF TABLE GT_ZEKPO FROM ZEKPO_03
WHERE EBELN = GWA_ZEKKO-EBELN.
ENDMODULE.
*&---------------------------------------------------------------------*
*& Module OPERATIONS OUTPUT
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
MODULE OPERATIONS OUTPUT.
CASE OK_CODE.
WHEN 'EDIT'.
gv_edit = 'X'.
LOOP AT SCREEN.
"""header
IF SCREEN-NAME = 'GWA_ZEKKO-EBELN'.
SCREEN-INPUT = 1.
MODIFY SCREEN.
ENDIF.
IF SCREEN-NAME = 'GWA_ZEKKO-EKGRP'.
SCREEN-INPUT = 1.
MODIFY SCREEN.
ENDIF.
IF SCREEN-NAME = 'GWA_ZEKKO-EKORG'.
SCREEN-INPUT = 1.
MODIFY SCREEN.
ENDIF.
IF SCREEN-NAME = 'GWA_ZEKKO-BUKRS'.
SCREEN-INPUT = 1.
MODIFY SCREEN.
ENDIF.
IF SCREEN-NAME = 'GWA_ZEKKO-LIFNR'.
SCREEN-INPUT = 1.
MODIFY SCREEN.
ENDIF.
IF SCREEN-NAME = 'GWA_ZEKKO-WAERS'.
SCREEN-INPUT = 1.
MODIFY SCREEN.
ENDIF.
IF SCREEN-NAME = 'GWA_ZEKKO-ZTERM'.
SCREEN-INPUT = 1.
MODIFY SCREEN.
ENDIF.
IF SCREEN-NAME = 'GWA_ZEKKO-ZDESC'.
SCREEN-INPUT = 1.
MODIFY SCREEN.
ENDIF.
ENDLOOP.
LOOP AT SCREEN.
"""line item
IF ( SCREEN-GROUP1 = 'GRP' ).
SCREEN-INPUT = 1.
ENDIF.
MODIFY SCREEN.
ENDLOOP.
WHEN 'CREATE'.
gv_create = 'X'.
LOOP AT SCREEN.
"""header
IF SCREEN-NAME = 'GWA_ZEKKO-EKGRP'.
SCREEN-INPUT = 1.
MODIFY SCREEN.
ENDIF.
IF SCREEN-NAME = 'GWA_ZEKKO-EKORG'.
SCREEN-INPUT = 1.
MODIFY SCREEN.
ENDIF.
IF SCREEN-NAME = 'GWA_ZEKKO-BUKRS'.
SCREEN-INPUT = 1.
MODIFY SCREEN.
ENDIF.
IF SCREEN-NAME = 'GWA_ZEKKO-LIFNR'.
SCREEN-INPUT = 1.
MODIFY SCREEN.
ENDIF.
IF SCREEN-NAME = 'GWA_ZEKKO-WAERS'.
SCREEN-INPUT = 1.
MODIFY SCREEN.
ENDIF.
IF SCREEN-NAME = 'GWA_ZEKKO-ZTERM'.
SCREEN-INPUT = 1.
MODIFY SCREEN.
ENDIF.
IF SCREEN-NAME = 'GWA_ZEKKO-ZDESC'.
SCREEN-INPUT = 1.
MODIFY SCREEN.
ENDIF.
ENDLOOP.
LOOP AT SCREEN.
"""line item
IF ( SCREEN-GROUP1 = 'GRP' ).
SCREEN-INPUT = 1.
ENDIF.
MODIFY SCREEN.
ENDLOOP.
ENDCASE.
ENDMODULE.
*&---------------------------------------------------------------------*
*& Module STATUS_9002 OUTPUT
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
MODULE STATUS_9002 OUTPUT.
SET PF-STATUS 'ZSTATUS'.
SET TITLEBAR 'ZTITLE1'.
ENDMODULE.
*&---------------------------------------------------------------------*
*& Include MZDLGPROG_03_REPORTI01
*&---------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*& Module USER_COMMAND_9002 INPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE USER_COMMAND_9002 INPUT.
SET PF-STATUS 'ZSTATUS' .
SET TITLEBAR 'ZTITLE1'.
CASE OK_CODE.
WHEN 'BACK'.
SET SCREEN 0.
LEAVE TO SCREEN 0.
WHEN 'DEL'.
GET CURSOR LINE GV_TABIX.
F1 = 1.
PERFORM FETCH_DATA.
IF F1 = 1.
DELETE ZEKKO_03 FROM TABLE GT_ZEKKO.
DELETE FROM ZEKPO_03 WHERE EBELN = GWA_ZEKKO-EBELN.
COMMIT WORK.
ENDIF.
WHEN 'SVE'.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
INPUT = GWA_ZEKKO-EBELN
IMPORTING
OUTPUT = GWA_ZEKKO-EBELN.
if GV_EDIT EQ 'X' .
UPDATE ZEKKO_03 SET
EKGRP = GWA_ZEKKO-EKGRP
EKORG = GWA_ZEKKO-EKORG
BUKRS = GWA_ZEKKO-BUKRS
LIFNR = GWA_ZEKKO-LIFNR
WAERS = GWA_ZEKKO-WAERS
ZTERM = GWA_ZEKKO-ZTERM
ZDESC = GWA_ZEKKO-ZDESC
WHERE EBELN = GWA_ZEKKO-EBELN.
COMMIT WORK.
UPDATE ZEKPO_03 SET
EBELP = GWA_ZEKPO-EBELP
MATNR = GWA_ZEKPO-MATNR
WERKS = GWA_ZEKPO-WERKS
LGORT = GWA_ZEKPO-LGORT
MENGE = GWA_ZEKPO-MENGE
MEINS = GWA_ZEKPO-MEINS
WHERE EBELN = GWA_ZEKKO-EBELN.
COMMIT WORK.
endif.
ENDCASE.
CLEAR GT_ZEKKO.
CLEAR GT_ZEKPO.
ENDMODULE.
*&---------------------------------------------------------------------*
*& Module USER_COMMAND_9001 INPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE USER_COMMAND_9001 INPUT.
CASE OK_CODE.
WHEN 'BACK' OR 'EXIT' OR 'CANC'.
LEAVE PROGRAM.
WHEN 'DELETE' OR 'DISPLAY'.
IF GWA_ZEKKO-EBELN IS INITIAL .
MESSAGE 'Please enter document number' TYPE 'E'.
ELSE.
PERFORM FETCH_DATA.
CALL SCREEN 9002.
ENDIF.
WHEN 'EDIT' .
CALL SCREEN 9002.
WHEN 'CREATE'.
CALL SCREEN 9002.
ENDCASE.
ENDMODULE.
*&---------------------------------------------------------------------*
*& Form FETCH_DATA
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& --> p1 text
*& <-- p2 text
*&---------------------------------------------------------------------*
FORM FETCH_DATA .
IF F1 NE 1.
SELECT EBELN LIFNR EKORG EKGRP BUKRS WAERS ZTERM ZDESC FROM ZEKKO_03
INTO CORRESPONDING FIELDS OF TABLE GT_ZEKKO
WHERE EBELN = GWA_ZEKKO-EBELN.
SELECT SINGLE EBELN LIFNR EKORG EKGRP BUKRS WAERS ZTERM ZDESC FROM ZEKKO_03
INTO CORRESPONDING FIELDS OF GWA_ZEKKO
WHERE EBELN = GWA_ZEKKO-EBELN.
READ TABLE GT_ZEKKO INTO GWA_ZEKKO INDEX SY-TABIX.
SELECT EBELP MATNR WERKS LGORT MENGE MEINS
INTO CORRESPONDING FIELDS OF TABLE GT_ZEKPO FROM ZEKPO_03
WHERE EBELN = GWA_ZEKKO-EBELN.
ENDIF.
ENDFORM.
‎2020 May 25 6:07 PM
Hi A.S.
The function you called data type is wrong.
Step 1.
You should create a number generation object through SNRO. Only after that use that object in the following function
Step 2.
DATA : number_generated type INRI-NRRANGENR.
CALL FUNCTION 'NUMBER_GET_NEXT'
EXPORTING
NR_RANGE_NR = <=== THIS SHOULD BE TWO CHAR LEGNTH (Step 1)
OBJECT = <==== THIS SHOULD BE A OBJECT CREAETED THROUG SNRO step 1.
* QUANTITY = '1'
* SUBOBJECT = ' '
* TOYEAR = '0000'
* IGNORE_BUFFER = ' '
IMPORTING
NUMBER = number_generated
* 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
.
GWA_ZEKKO-EBELN = number_generated.
REgards
Venkat
‎2020 May 25 9:31 AM
arnold92,
It seems you have tried explaining the requirement, kindly explain what is the issue or where you are stuck at.
Regards!
‎2020 May 25 11:56 AM
Dear A.S.
Do the steps as below
Step 1. Add the code in these section
WHEN 'CREATE'.
gv_create = 'X'.
gv_edit = ''. <=== add this statement
WHEN 'EDIT'.
gv_edit = 'X'.
gv_create = ''. <=== add this staement
Step 2. Add the following code in this section
WHEN 'SVE'.
if gv_create EQ 'X'.
generate next po number and assign it to gwa_ekko-ebeln and gwa_ekpo-ebeln
write here your insert statements accordingly.
endif.
if sy-subrc = 0.
message..'Database entry created...' type 'S' display like 'S'.
else.
message..'Database entry Failed...' type 'S' display like 'S'.
endif.Regards,
Venkat
‎2020 May 25 5:24 PM
Hi sir
Thanks for your reply. It is still giving me the same error upon pressing the save edit (SVE) in screen-2, i also tried to hardcode NR_RANGE_NR to 45000000 (so it would start creating with 8 digit onwards)
Error: https://answers.sap.com/storage/attachments/1811662-error.png
WHEN 'EDIT'.
GV_EDIT = 'X'.
GV_CREATE = ' '.
LOOP AT SCREEN.
"""header
IF SCREEN-NAME = 'GWA_ZEKKO-EBELN'.
SCREEN-INPUT = 1.
MODIFY SCREEN.
ENDIF.
IF SCREEN-NAME = 'GWA_ZEKKO-EKGRP'.
SCREEN-INPUT = 1.
MODIFY SCREEN.
ENDIF.
IF SCREEN-NAME = 'GWA_ZEKKO-EKORG'.
SCREEN-INPUT = 1.
MODIFY SCREEN.
ENDIF.
IF SCREEN-NAME = 'GWA_ZEKKO-BUKRS'.
SCREEN-INPUT = 1.
MODIFY SCREEN.
ENDIF.
IF SCREEN-NAME = 'GWA_ZEKKO-LIFNR'.
SCREEN-INPUT = 1.
MODIFY SCREEN.
ENDIF.
IF SCREEN-NAME = 'GWA_ZEKKO-WAERS'.
SCREEN-INPUT = 1.
MODIFY SCREEN.
ENDIF.
IF SCREEN-NAME = 'GWA_ZEKKO-ZTERM'.
SCREEN-INPUT = 1.
MODIFY SCREEN.
ENDIF.
IF SCREEN-NAME = 'GWA_ZEKKO-ZDESC'.
SCREEN-INPUT = 1.
MODIFY SCREEN.
ENDIF.
ENDLOOP.
LOOP AT SCREEN.
"""line item
IF ( SCREEN-GROUP1 = 'GRP' ).
SCREEN-INPUT = 1.
ENDIF.
MODIFY SCREEN.
ENDLOOP.
WHEN 'CREATE'.
GV_CREATE = 'X'.
GV_EDIT = ' '.
LOOP AT SCREEN.
"""header
IF SCREEN-NAME = 'GWA_ZEKKO-EKGRP'.
SCREEN-INPUT = 1.
MODIFY SCREEN.
ENDIF.
IF SCREEN-NAME = 'GWA_ZEKKO-EKORG'.
SCREEN-INPUT = 1.
MODIFY SCREEN.
ENDIF.
IF SCREEN-NAME = 'GWA_ZEKKO-BUKRS'.
SCREEN-INPUT = 1.
MODIFY SCREEN.
ENDIF.
IF SCREEN-NAME = 'GWA_ZEKKO-LIFNR'.
SCREEN-INPUT = 1.
MODIFY SCREEN.
ENDIF.
IF SCREEN-NAME = 'GWA_ZEKKO-WAERS'.
SCREEN-INPUT = 1.
MODIFY SCREEN.
ENDIF.
IF SCREEN-NAME = 'GWA_ZEKKO-ZTERM'.
SCREEN-INPUT = 1.
MODIFY SCREEN.
ENDIF.
IF SCREEN-NAME = 'GWA_ZEKKO-ZDESC'.
SCREEN-INPUT = 1.
MODIFY SCREEN.
ENDIF.
ENDLOOP.
LOOP AT SCREEN.
"""line item
IF ( SCREEN-GROUP1 = 'GRP' ).
SCREEN-INPUT = 1.
ENDIF.
MODIFY SCREEN.
ENDLOOP.
WHEN 'SVE'.
IF GV_CREATE EQ 'X'.
CALL FUNCTION 'NUMBER_GET_NEXT'
EXPORTING
NR_RANGE_NR = GWA_ZEKKO-EBELN
OBJECT = 'ebeln'
* QUANTITY = '1'
* SUBOBJECT = ' '
* TOYEAR = '0000'
* IGNORE_BUFFER = ' '
IMPORTING
NUMBER = GWA_ZEKKO-EBELN
* 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
.
INSERT ZEKKO_03 FROM GWA_ZEKKO.
CALL FUNCTION 'NUMBER_GET_NEXT'
EXPORTING
NR_RANGE_NR = GWA_ZEKPO-EBELN
OBJECT = 'ebeln'
* QUANTITY = '1'
* SUBOBJECT = ' '
* TOYEAR = '0000'
* IGNORE_BUFFER = ' '
IMPORTING
NUMBER = GWA_ZEKPO-EBELN
* 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
.
INSERT ZEKPO_03 FROM GWA_ZEKPO.
ENDIF.
IF SY-SUBRC = 0.
MESSAGE 'Entry created' TYPE 'S'.
ELSE.
MESSAGE 'Create entry failed' TYPE 'E'.
ENDIF.
‎2020 May 25 7:34 PM
Too much spoon feeding here... The short dump tells you exactly what the problem is and where it's located.
It would be better that you explain what you understand and what you don't understand, so that people can help you precisely. Instead, people give solutions but don't explain...
‎2020 May 25 12:21 PM
Im stuck on the auto create new ebeln number upon pressing create in screen-1
screen1: https://answers.sap.com/storage/attachments/1811640-screen1.png
screen2: https://answers.sap.com/storage/attachments/1811641-screen2.png
Its throwing me the following error with the number range, im not sure if im using the right FM

Function code for screen-1 - create
WHEN 'CREATE'.
CALL SCREEN 9002.
CALL FUNCTION 'NUMBER_GET_NEXT'
EXPORTING
NR_RANGE_NR = gwa_zekko-ebeln <<<< error originated from here
OBJECT = 'ebeln'
* QUANTITY = '1'
* SUBOBJECT = ' '
* TOYEAR = '0000'
* IGNORE_BUFFER = ' '
IMPORTING
NUMBER = gwa_zekko-ebeln
* 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.
* Implement suitable error handling here
ENDIF.
if gv_create eq 'X'.
INSERT zekko_03 FROM gwa_zekko.
endif.
ENDCASE.
function code for screen-2 - save changes
WHEN 'SVE'.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
INPUT = GWA_ZEKKO-EBELN
IMPORTING
OUTPUT = GWA_ZEKKO-EBELN.
if GV_EDIT EQ 'X' .
UPDATE ZEKKO_03 SET
EKGRP = GWA_ZEKKO-EKGRP
EKORG = GWA_ZEKKO-EKORG
BUKRS = GWA_ZEKKO-BUKRS
LIFNR = GWA_ZEKKO-LIFNR
WAERS = GWA_ZEKKO-WAERS
ZTERM = GWA_ZEKKO-ZTERM
ZDESC = GWA_ZEKKO-ZDESC
WHERE EBELN = GWA_ZEKKO-EBELN.
COMMIT WORK.
UPDATE ZEKPO_03 SET
EBELP = GWA_ZEKPO-EBELP
MATNR = GWA_ZEKPO-MATNR
WERKS = GWA_ZEKPO-WERKS
LGORT = GWA_ZEKPO-LGORT
MENGE = GWA_ZEKPO-MENGE
MEINS = GWA_ZEKPO-MEINS
WHERE EBELN = GWA_ZEKKO-EBELN.
COMMIT WORK.
endif.
if GV_create EQ 'X' .
UPDATE ZEKKO_03 SET
ebeln = gwa_zekko-ebeln <<< added this since need to update the latest ebeln number as well, logically
EKGRP = GWA_ZEKKO-EKGRP
EKORG = GWA_ZEKKO-EKORG
BUKRS = GWA_ZEKKO-BUKRS
LIFNR = GWA_ZEKKO-LIFNR
WAERS = GWA_ZEKKO-WAERS
ZTERM = GWA_ZEKKO-ZTERM
ZDESC = GWA_ZEKKO-ZDESC
WHERE EBELN = GWA_ZEKKO-EBELN.
COMMIT WORK.
UPDATE ZEKPO_03 SET
EBELP = GWA_ZEKPO-EBELP
MATNR = GWA_ZEKPO-MATNR
WERKS = GWA_ZEKPO-WERKS
LGORT = GWA_ZEKPO-LGORT
MENGE = GWA_ZEKPO-MENGE
MEINS = GWA_ZEKPO-MEINS
WHERE EBELN = GWA_ZEKKO-EBELN.
COMMIT WORK.
endif.
‎2020 May 25 6:07 PM
Hi A.S.
The function you called data type is wrong.
Step 1.
You should create a number generation object through SNRO. Only after that use that object in the following function
Step 2.
DATA : number_generated type INRI-NRRANGENR.
CALL FUNCTION 'NUMBER_GET_NEXT'
EXPORTING
NR_RANGE_NR = <=== THIS SHOULD BE TWO CHAR LEGNTH (Step 1)
OBJECT = <==== THIS SHOULD BE A OBJECT CREAETED THROUG SNRO step 1.
* QUANTITY = '1'
* SUBOBJECT = ' '
* TOYEAR = '0000'
* IGNORE_BUFFER = ' '
IMPORTING
NUMBER = number_generated
* 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
.
GWA_ZEKKO-EBELN = number_generated.
REgards
Venkat
‎2020 May 26 7:03 AM
‎2020 May 26 12:27 PM
Venket, is it possible to use insert <dbtab> with index tc_zekpo-current_line or with where clause?
Cant seem to find these statements as my table control create is empty upon saving, only header display data.
Currently im using these statements.
INSERT ZEKKO_03 FROM GWA_ZEKKO .
insert zekpo_03 FROM gwa_zekpo.
Thanks
‎2020 May 26 12:47 PM
arnold92 I don't understand what is the relationship between your comment about "insert <dbtab> with index" and Venkat answer about SNRO and NUMBER_GET_NEXT. Or maybe your comment is not at the right place?
‎2020 May 26 3:32 PM
Hi Sandra, the question is relevant to this thread, need to open new thread for this?
‎2020 May 25 7:29 PM
Not related to your question: I see that you convert the values from external to internal format and vice versa. If you create a dynpro structure in SE11, and use this name of DDIC structure instead of GWA_EKKO in your dynpro (+ say yes for link to DDIC) and in your program (declare the structure via TABLES otherwise that won't work well at all), the conversions will be done automatically. Using DDIC structure for dynpro fields may also help a lot for search helps.