‎2006 Aug 11 11:49 PM
Hi all ,
This is my code. I need to copy data from 1 st internal order to 2 nd internal order .But long text not copying.
Cany any help me in this issue?
FORM CREATE_PLAN_TEXT_DETAIL .
DATA: STMPNAME LIKE THEAD-TDNAME, TTMPNAME LIKE THEAD-TDNAME.
CLEAR: TMPOBJNR.
CONCATENATE 'OR' SAUFNR INTO TMPOBJNR .
SELECT * FROM COSS
WHERE LEDNR = '00'
AND OBJNR = TMPOBJNR
AND GJAHR = SGJAHR
AND WRTTP = '01'
AND VERSN = SVERSN
AND ( VRGNG = 'RKP3' OR VRGNG = 'RKPZ' ).
CLEAR: TTMPNAME, STMPNAME,TMPOBJNR.
IF COSS-VRGNG = 'RKPZ' .
CONCATENATE '00OR' SAUFNR ' 2' SGJAHR+1(3) '01' STMPNAME SVERSN(3) INTO STMPNAME .
CONCATENATE STMPNAME COSS-KSTAR INTO STMPNAME SEPARATED BY SPACE.
CONCATENATE STMPNAME ' RKPZ' INTO STMPNAME.
CONCATENATE '00OR' TAUFNR ' 2' TGJAHR+1(3) '01' TTMPNAME SVERSN(3) INTO TTMPNAME .
CONCATENATE TTMPNAME COSS-KSTAR INTO TTMPNAME SEPARATED BY SPACE.
CONCATENATE TTMPNAME ' RKPZ' INTO TTMPNAME.
ELSE.
CONCATENATE '00OR' SAUFNR ' 2' SGJAHR+1(3) '01' SVERSN(2) INTO STMPNAME.
CONCATENATE STMPNAME COSS-KSTAR INTO STMPNAME SEPARATED BY SPACE.
CONCATENATE STMPNAME ' RKP3' COSS-PAROB+6(16) INTO STMPNAME.
CONCATENATE '00OR' TAUFNR ' 2' TGJAHR+1(3) '01' TVERSN(2) INTO TTMPNAME.
CONCATENATE TTMPNAME COSS-KSTAR INTO TTMPNAME SEPARATED BY SPACE.
CONCATENATE TTMPNAME ' RKP3' COSS-PAROB+6(16) INTO TTMPNAME.
ENDIF.
CALL FUNCTION 'READ_TEXT_INLINE'
EXPORTING
ID = 'COSS'
INLINE_COUNT = '1'
LANGUAGE = SY-LANGU
NAME = STMPNAME
OBJECT = 'CCSS'
TABLES
INLINES = INLINES
LINES = LINES
EXCEPTIONS
NOT_FOUND = 4.
IF SY-SUBRC = 0.
XTHEAD-TDOBJECT = 'CCSS'.
XTHEAD-TDNAME = TTMPNAME.
XTHEAD-TDID = 'COSS'.
XTHEAD-TDSPRAS = 'E'.
XTHEAD-TDLINESIZE = '72'.
CALL FUNCTION 'SAVE_TEXT'
EXPORTING
CLIENT = SY-MANDT
HEADER = XTHEAD
INSERT = ' '
SAVEMODE_DIRECT = 'X'
OWNER_SPECIFIED = ' '
LOCAL_CAT = ' '
IMPORTING
FUNCTION =
NEWHEADER = XTHEAD
TABLES
LINES = LINES.
CLEAR: LINES, INLINES.
REFRESH: LINES, INLINES.
CONCATENATE 'OR' TAUFNR INTO TMPOBJNR.
*
UPDATE COKS
SET TXFLG = 'X'
WHERE LEDNR = COSS-LEDNR
AND OBJNR = TMPOBJNR
AND GJAHR = TGJAHR
AND WRTTP = '01'
AND VERSN = TVERSN
AND KSTAR = COSS-KSTAR.
ENDIF.
ENDSELECT.
ENDFORM. " CREATE_PLAN_TEXT_DETAIL
&----
*& Form update_text
&----
text
----
--> p1 text
<-- p2 text
----
FORM UPDATE_TEXT .
DATA: TTMPOBJNR LIKE COSS-OBJNR,
STMPOBJNR LIKE COSS-OBJNR,
ITAB_COKS TYPE TABLE OF COKS WITH HEADER LINE.
CLEAR TMPOBJNR.
CONCATENATE 'OR' TAUFNR INTO TTMPOBJNR.
CONCATENATE 'OR' SAUFNR INTO STMPOBJNR.
SELECT * FROM COKS INTO TABLE ITAB_COKS
WHERE LEDNR = COSS-LEDNR
AND OBJNR = STMPOBJNR
AND GJAHR = SGJAHR
AND WRTTP = '01'
AND VERSN = SVERSN
AND TXFLG = 'X'.
LOOP AT ITAB_COKS.
ITAB_COKS-OBJNR = TTMPOBJNR.
MODIFY ITAB_COKS.
ENDLOOP.
UPDATE COKS FROM TABLE ITAB_COKS.
commit work and wait.
WAIT UP TO 20 SECONDS.
ENDFORM. " update_text
‎2006 Aug 11 11:55 PM
‎2006 Aug 11 11:55 PM
‎2006 Aug 11 11:57 PM
‎2006 Aug 11 11:57 PM
Hi prya,
it is more than risky to do changes on any SAP tables without using the transactions or (BAPI) functions designed for that purpose for a couple of reasons. Two important ones: SAP functionality will use a lock concept making it impossible for more than 1 user to change an object at the same time because you can not know what the result will be. The second and (as I think) more important reason is, that an unknown number of tables you do not know will be updated at the same time and you have no idea what will be the result of ignoring them.
OK, enough:
Standard texts can be updated using function SAVE_TEXT.
Regards,
Clemens