2013 Jun 13 8:31 PM
Hello guys
I need to use the command update dynamic but he does not accept the set dynamic
how can I do this command:
UPDATE (v_tbnam) SET (field) = 'TBRA'.
He says that the set is wrong.
Thanks.
2013 Jun 14 6:16 AM
Hi,
see the SAP example:
Dynamic conversion of the content of an arbitrary column in an arbitrary database table of a previous currency in Euro.
PARAMETERS: table TYPE c LENGTH 30,
column TYPE c LENGTH 30,
old_curr TYPE sycurr.
DATA: set_expr TYPE string,
condition TYPE string.
CONCATENATE column ` = 'EUR'`
INTO set_expr.
CONCATENATE column ` = old_curr`
INTO condition.
TRY.
UPDATE (table)
SET (set_expr)
WHERE (condition).
CATCH cx_sy_dynamic_osql_error.
MESSAGE `Error in update!` TYPE 'I'.
ENDTRY.
Regards,
Klaus
2013 Jun 14 6:16 AM
Hi,
see the SAP example:
Dynamic conversion of the content of an arbitrary column in an arbitrary database table of a previous currency in Euro.
PARAMETERS: table TYPE c LENGTH 30,
column TYPE c LENGTH 30,
old_curr TYPE sycurr.
DATA: set_expr TYPE string,
condition TYPE string.
CONCATENATE column ` = 'EUR'`
INTO set_expr.
CONCATENATE column ` = old_curr`
INTO condition.
TRY.
UPDATE (table)
SET (set_expr)
WHERE (condition).
CATCH cx_sy_dynamic_osql_error.
MESSAGE `Error in update!` TYPE 'I'.
ENDTRY.
Regards,
Klaus
2013 Jun 14 9:45 AM
Better type 'A' so in case of an error all previous updates are rolled back to have a consistent state.
2013 Jun 14 6:29 AM
Hi,
Provide the where condition along with this.
Please see below:
TRY.
UPDATE (table)
SET (set_expr)
WHERE (condition).
CATCH cx_sy_dynamic_osql_error.
MESSAGE `Error in update!` TYPE 'I'.
ENDTRY.
Regards,
Jayshree.
2013 Jun 14 6:34 AM
Hi Ronaldo,
I never do this, but the SAP logic would be :
Update (W_TBNAME) SET (W_SET) WHERE (WHERE).
regards
Fred
2013 Jun 14 6:40 AM
Hi Ronaldo,
Use Field Symbol to achieve your goal.
Use the following Syntax:
DATA tbnam TYPE TABLE OF v_tbnamt.
FIELD-SYMBOLS <fs_tbnam> TYPE v_tbnam.
SELECT * FROM v_tbnamt INTO TABLE tbnamt.
IF sy-subrc = 0.
LOOP AT tbnamt ASSIGNING <fs_tbnam>.
<fs_tbnam>-field = New_value.
ENDLOOP.
ENDIF.
UPDATE (v_tbnam) FROM TABLE tbnam.
Thanks
Dileep Kumar
2013 Jun 14 6:46 AM
Hi,
You can do it like this.
TABLE_NAME = 'ZMYTABLE'
CONCATENATE 'MYFIELDNAME = ' '''' 'MYVALUE' '''' INTO T_SET.
UPDATE (TABLE_NAME) SET (T_SET).
BR
Yakub Shah
2013 Jun 14 6:59 AM
You have to put the whole logical condition into a variable:
[code]
concatenate fieldname `=` value into condition.
update (v_tbname) set (condition),
[code]
2013 Jun 14 7:09 AM
2013 Jun 14 8:13 AM
2013 Jun 14 8:23 AM
2013 Jun 14 8:36 AM
2013 Jun 17 8:12 PM