Application Development 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: 

save_text

former_member599326
Participant
0 Kudos

i m using sav_text function as below.. but my long text is not visible in tcode CT04.. when i select characteristics and double click on individual values in value tab.. a text editor gets open.. but text is not visible.. and sometimes i get error "No documentation exists"

CLEAR WA_HEAD.

   SORT IT_E1CAWNM BY SEGNUM.

   SORT IT_E1CAWTM BY SEGNUM.

   SORT IT_E1TXTL1 BY SEGNUM.

   LOOP AT IT_E1CAWNM INTO WA_E1CAWNM.

     CLEAR LV_TABIX.

     LV_TABIX = SY-TABIX.

     CLEAR WA_HEAD.

     WA_HEAD-TDOBJECT = 'FEATURE'.

     CONCATENATE 'JAG_OTH_S' 'XYZ1' INTO WA_HEAD-TDNAME SEPARATED BY '_'.

     WA_HEAD-TDID = 'VALU'.

     WA_HEAD-TDTITLE = 'TEST'.

     WA_HEAD-TDFORM = 'SYSTEM'.

     WA_HEAD-TDFUSER = SY-UNAME.

     WA_HEAD-TDVERSION = '00001'.

     WA_HEAD-TDFRELES = '700'.

     WA_HEAD-TDFDATE = SY-DATUM.

     WA_HEAD-TDLUSER = SY-UNAME.

     WA_HEAD-TDLDATE = SY-DATUM.

     WA_HEAD-TDLINESIZE = '999'.

     WA_HEAD-TDTXTLINES = '00001'.

     WA_HEAD-TDMACODE1 =  'WE19SAPMSED7'.

     READ TABLE IT_E1CAWTM INTO WA_E1CAWTM INDEX LV_TABIX.

     IF SY-SUBRC = 0.

       WA_HEAD-TDSPRAS = WA_E1CAWTM-SPRAS.

       REFRESH IT_STXH.

       SELECT TDOBJECT

              TDNAME

              TDID

              TDSPRAS

       FROM STXH

       CLIENT SPECIFIED

       INTO TABLE IT_STXH

       WHERE MANDT     = SY-MANDT

       AND   TDOBJECT  = WA_HEAD-TDOBJECT

       AND   TDNAME    = WA_HEAD-TDNAME

       AND   TDID      = WA_HEAD-TDID

       AND   TDSPRAS   = WA_E1CAWTM-SPRAS.

       IF SY-SUBRC = 0.

         DELETE FROM STXH CLIENT SPECIFIED

         WHERE MANDT    = SY-MANDT

         AND   TDOBJECT = WA_HEAD-TDOBJECT

         AND   TDNAME   = WA_HEAD-TDNAME

         AND   TDID     = WA_HEAD-TDID

         AND   TDSPRAS  = WA_E1CAWTM-SPRAS.

         IF SY-SUBRC = 0.

           COMMIT WORK.

         ENDIF.

       ENDIF.

     ENDIF.

     CLEAR WA_LINES.

     REFRESH GT_LINES.

     CALL FUNCTION 'READ_TEXT'

       EXPORTING

         CLIENT                  = SY-MANDT

         ID                      = WA_HEAD-TDID

         LANGUAGE                = WA_HEAD-TDSPRAS

         NAME                    = WA_HEAD-TDNAME

         OBJECT                  = WA_HEAD-TDOBJECT

         ARCHIVE_HANDLE          = 0

         LOCAL_CAT               = ' '

       IMPORTING

         HEADER                  = WA_HEAD

       TABLES

         LINES                   = GT_LINES

       EXCEPTIONS

         ID                      = 1

         LANGUAGE                = 2

         NAME                    = 3

         NOT_FOUND               = 4

         OBJECT                  = 5

         REFERENCE_CHECK         = 6

         WRONG_ACCESS_TO_ARCHIVE = 7

         OTHERS                  = 8.

     READ TABLE IT_E1TXTL1 INTO WA_E1TXTL1 INDEX LV_TABIX.

     IF SY-SUBRC = 0.

       CLEAR WA_LINES.

       WA_LINES-TDFORMAT = '*'.

       WA_LINES-TDLINE = WA_E1TXTL1-TDLINE.

       APPEND WA_LINES TO GT_LINES.

       CLEAR WA_E1TXTL1.

     ENDIF.

     CALL FUNCTION 'SAVE_TEXT'

       EXPORTING

         CLIENT          = SY-MANDT

         HEADER          = WA_HEAD

         INSERT          = C_MARK

         SAVEMODE_DIRECT = C_MARK

       TABLES

         LINES           = GT_LINES

       EXCEPTIONS

         ID              = 1

         LANGUAGE        = 2

         NAME            = 3

         OBJECT          = 4

         OTHERS          = 5.

     IF SY-SUBRC EQ 0.

       CALL FUNCTION 'COMMIT_TEXT'

         EXPORTING

           OBJECT          = WA_HEAD-TDOBJECT

           NAME            = WA_HEAD-TDNAME

           ID              = WA_HEAD-TDID

           LANGUAGE        = WA_HEAD-TDSPRAS

           SAVEMODE_DIRECT = 'X'

           KEEP            = ' '

           LOCAL_CAT       = ' '.

       COMMIT WORK.

     ENDIF.

     CLEAR : WA_E1CAWNM,WA_E1CAWTM,WA_E1TXTL1.

   ENDLOOP.

1 ACCEPTED SOLUTION

Former Member
0 Kudos

hi Santhsh,

it just straight forward, please have a look at my code which i have done and works when i update the text.

before you use SAVE_TEXT get the HEADER DETAILS. i just used and it is working i dint even use Commit work still works.

let me know if you have any issues.

data : x_header TYPE thead.

DATA : l_text_tab LIKE tline OCCURS 100 WITH HEADER LINE.


   x_header-tdobject = 'C_SHES_INP'.

   x_header-tdname   = lt_name . "

   x_header-tdid     = '0001'.

   x_header-tdspras  = 'E'.

CALL FUNCTION 'SAVE_TEXT'

     EXPORTING

       CLIENT                = SY-MANDT

       HEADER                = X_HEADER

*       INSERT                = ' '

       SAVEMODE_DIRECT       = 'X'

*       OWNER_SPECIFIED       = ' '

*       LOCAL_CAT             = ' '

*     IMPORTING

*       FUNCTION              =

*       NEWHEADER             =

     TABLES

       LINES                   = l_text_tab"IT_TLINES

      EXCEPTIONS

        ID                    = 1

        LANGUAGE              = 2

        NAME                  = 3

        OBJECT                = 4

        OTHERS                = 5

             .

   IF SY-SUBRC <> 0.

*--ERROR.

   ELSE.

*--SUCCESS.

   ENDIF.

11 REPLIES 11

Former Member
0 Kudos

Hi Santosh,

Better try with CREATE_TEXT function module. This may solve your problem.

Regards,

Bharathkumar.MG

Former Member
0 Kudos

hi Santhsh,

it just straight forward, please have a look at my code which i have done and works when i update the text.

before you use SAVE_TEXT get the HEADER DETAILS. i just used and it is working i dint even use Commit work still works.

let me know if you have any issues.

data : x_header TYPE thead.

DATA : l_text_tab LIKE tline OCCURS 100 WITH HEADER LINE.


   x_header-tdobject = 'C_SHES_INP'.

   x_header-tdname   = lt_name . "

   x_header-tdid     = '0001'.

   x_header-tdspras  = 'E'.

CALL FUNCTION 'SAVE_TEXT'

     EXPORTING

       CLIENT                = SY-MANDT

       HEADER                = X_HEADER

*       INSERT                = ' '

       SAVEMODE_DIRECT       = 'X'

*       OWNER_SPECIFIED       = ' '

*       LOCAL_CAT             = ' '

*     IMPORTING

*       FUNCTION              =

*       NEWHEADER             =

     TABLES

       LINES                   = l_text_tab"IT_TLINES

      EXCEPTIONS

        ID                    = 1

        LANGUAGE              = 2

        NAME                  = 3

        OBJECT                = 4

        OTHERS                = 5

             .

   IF SY-SUBRC <> 0.

*--ERROR.

   ELSE.

*--SUCCESS.

   ENDIF.

0 Kudos

i m not understanding how to get the TDNAME.. because when i go to CT04 .. and manually create a text.. it shows the uniform no like ..'00000013090002' .. i m not getting from where system picks this no when we manually create a long text.

0 Kudos

Hi Santhosh,

TDNAME is nothing but the name of particular characteristics.

From CABN table you can get the value for particular characteristic by giving input with characteristic name in ATNAM field and you can get the value of that from ATINN field.

For example: ATINN - 0000000878 and ATNAM - SAMPLE.

Then concatenate this ATINN value with characteristic series no. 0001(This will change depends upon your no. of characteristics ) to TDNAME.

So finally TDNAME = 00000008780001.

This may solve your problem. Try this and let me know.

Regards,

Bharathkumar.MG

0 Kudos

see by the method of Bharathkumar.. text is getting created. but for every value in CT04 text name remains the same.. my text is getting created but in CT04 when i double click on any values.. it is not visible.. my code is below..

CLEAR WA_HEAD.

  CLEAR LV_TDTXTLINES.

  LV_TDTXTLINES = '0'.

  SORT IT_E1CAWNM BY SEGNUM.

  SORT IT_E1CAWTM BY SEGNUM.

  SORT IT_E1TXTL1 BY SEGNUM.

  LOOP AT IT_E1CAWNM INTO WA_E1CAWNM.

    CLEAR LV_TABIX.

    LV_TABIX = SY-TABIX.

    CLEAR WA_HEAD.

    WA_HEAD-TDOBJECT = 'FEATURE'.

    WA_HEAD-TDID = 'VALU'.

    LV_TDTXTLINES = LV_TDTXTLINES + 1.

    CONCATENATE LV_ATINN LV_TDTXTLINES INTO WA_HEAD-TDNAME.

    READ TABLE IT_E1CAWTM INTO WA_E1CAWTM INDEX LV_TABIX.

    IF SY-SUBRC = 0.

      WA_HEAD-TDSPRAS = WA_E1CAWTM-SPRAS.

    ENDIF.

    CLEAR WA_LINES.

    REFRESH GT_LINES.

    CALL FUNCTION 'READ_TEXT'

      EXPORTING

        CLIENT                  = SY-MANDT

        ID                      = WA_HEAD-TDID

        LANGUAGE                = WA_HEAD-TDSPRAS

        NAME                    = WA_HEAD-TDNAME

        OBJECT                  = WA_HEAD-TDOBJECT

      TABLES

        LINES                   = GT_LINES

      EXCEPTIONS

        ID                      = 1

        LANGUAGE                = 2

        NAME                    = 3

        NOT_FOUND               = 4

        OBJECT                  = 5

        REFERENCE_CHECK         = 6

        WRONG_ACCESS_TO_ARCHIVE = 7

        OTHERS                  = 8.

    IF SY-SUBRC = 0.

      READ TABLE IT_E1TXTL1 INTO WA_E1TXTL1 INDEX LV_TABIX.

      IF SY-SUBRC = 0.

        CLEAR WA_LINES.

        WA_LINES-TDFORMAT = '*'.

        WA_LINES-TDLINE = WA_E1TXTL1-TDLINE.

        APPEND WA_LINES TO GT_LINES.

        CLEAR WA_E1TXTL1.

      ENDIF.

      CALL FUNCTION 'SAVE_TEXT'

        EXPORTING

          CLIENT          = SY-MANDT

          HEADER          = WA_HEAD

          SAVEMODE_DIRECT = C_MARK

        TABLES

          LINES           = GT_LINES

        EXCEPTIONS

          ID              = 1

          LANGUAGE        = 2

          NAME            = 3

          OBJECT          = 4

          OTHERS          = 5.

      IF SY-SUBRC EQ 0.

        CALL FUNCTION 'COMMIT_TEXT'

          EXPORTING

            OBJECT          = WA_HEAD-TDOBJECT

            NAME            = WA_HEAD-TDNAME

            ID              = WA_HEAD-TDID

            LANGUAGE        = WA_HEAD-TDSPRAS

            SAVEMODE_DIRECT = 'X'

            KEEP            = ' '

            LOCAL_CAT       = ' '.

        COMMIT WORK.

      ENDIF.

    ELSE.

      CALL FUNCTION 'SAVE_TEXT'

        EXPORTING

          CLIENT          = SY-MANDT

          HEADER          = WA_HEAD

          INSERT          = C_MARK

          SAVEMODE_DIRECT = C_MARK

        TABLES

          LINES           = GT_LINES

        EXCEPTIONS

          ID              = 1

          LANGUAGE        = 2

          NAME            = 3

          OBJECT          = 4

          OTHERS          = 5.

      IF SY-SUBRC EQ 0.

        CALL FUNCTION 'COMMIT_TEXT'

          EXPORTING

            OBJECT          = WA_HEAD-TDOBJECT

            NAME            = WA_HEAD-TDNAME

            ID              = WA_HEAD-TDID

            LANGUAGE        = WA_HEAD-TDSPRAS

            SAVEMODE_DIRECT = 'X'

            KEEP            = ' '

            LOCAL_CAT       = ' '.

        COMMIT WORK.

      ENDIF.

    ENDIF.

    CLEAR : WA_E1CAWNM,WA_E1CAWTM,WA_E1TXTL1.

  ENDLOOP.

0 Kudos

hi santhosh

are you sorted?

0 Kudos

no my problem is not sorted..

whenever i m creating text it is getting saved in table STXH and STXL...but not visible in tcode CT04

0 Kudos

Hi Santhosh,

I also tried the same thing, but the result is same as yours. It is getting stored in STXH table and also i can read the text through READ_TEXT function module but it is not visible in CT04 transaction.

Lets wait for some other expert answers.

Regards,

Bharathkumar.MG

0 Kudos

i have solved the problem.. but code is very poorly written.. suggetions r welcome

SORT IT_E1CAWNM BY SEGNUM.

   SORT IT_E1CAWTM BY SEGNUM.

   SORT IT_E1TXTL1 BY SEGNUM.

   LOOP AT IT_E1CAWNM INTO WA_E1CAWNM.

     READ TABLE IT_E1CAWTM INTO WA_E1CAWTM INDEX LV_TABIX.

     IF SY-SUBRC = 0.

       REFRESH : IT_RETURN,GT_LINES.

       CALL FUNCTION 'BAPI_CHARACT_GETLONGTEXT'

         EXPORTING

           CHARACTNAME  = WA_ATNAM-LOW

           VALUE_CHAR   = WA_E1CAWNM-ATWRT

           LANGUAGE_ISO = 'EN'

         TABLES

           LONGTEXT     = GT_LINES

           RETURN       = IT_RETURN.

       IF IT_RETURN[] IS INITIAL.

         IF GT_LINES[] IS NOT INITIAL.

           READ TABLE IT_E1TXTL1 INTO WA_E1TXTL1 INDEX LV_TABIX.

           IF SY-SUBRC = 0.

             CLEAR WA_LINES.

             WA_LINES-TDLINE = WA_E1TXTL1-TDLINE.

             APPEND WA_LINES TO GT_LINES.

             CLEAR WA_E1TXTL1.

           ENDIF.

           CALL FUNCTION 'BAPI_CHARACT_ADDLONGTEXT'

             EXPORTING

               CHARACTNAME  = WA_ATNAM-LOW

               VALUE_CHAR   = WA_E1CAWNM-ATWRT

               KEYDATE      = SY-DATUM

               LANGUAGE_ISO = 'EN'

             TABLES

               LONGTEXT     = GT_LINES

               RETURN       = IT_RETURN1.

           LOOP AT IT_RETURN1 ASSIGNING <FS_RETURN1> WHERE TYPE = 'I' OR TYPE = 'S'.

             CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'.

             EXIT.

           ENDLOOP.

         ENDIF.

       ENDIF.

       READ TABLE IT_RETURN ASSIGNING <FS_RETURN> WITH KEY TYPE = 'I' ID = 'C1' NUMBER = '020'.

       IF SY-SUBRC = 0.

         REFRESH : IT_RETURN1,GT_LINES.

         READ TABLE IT_E1TXTL1 INTO WA_E1TXTL1 INDEX LV_TABIX.

         IF SY-SUBRC = 0.

           CLEAR WA_LINES.

           WA_LINES-TDLINE = WA_E1TXTL1-TDLINE.

           APPEND WA_LINES TO GT_LINES.

           CLEAR WA_E1TXTL1.

         ENDIF.

         CALL FUNCTION 'BAPI_CHARACT_ADDLONGTEXT'

           EXPORTING

             CHARACTNAME  = WA_ATNAM-LOW

             VALUE_CHAR   = WA_E1CAWNM-ATWRT

             KEYDATE      = SY-DATUM

             LANGUAGE_ISO = 'EN'

           TABLES

             LONGTEXT     = GT_LINES

             RETURN       = IT_RETURN1.

         LOOP AT IT_RETURN1 ASSIGNING <FS_RETURN1> WHERE TYPE = 'I' OR TYPE = 'S'.

           CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'.

           EXIT.

         ENDLOOP.

       ENDIF.

     ENDIF.

     CLEAR : WA_E1CAWNM,WA_E1CAWTM,WA_E1TXTL1.

   ENDLOOP.

0 Kudos

Hi Santhosh,

Thanks for your reply. Code is also fine.

It is working fine through above mentioned BAPI. It is very useful.

Regards,

Bharathkumar.MG

0 Kudos

Could you also close BAPI_CHARACT_ADDLONGTEXT by providing link to your solution.

Regards,

Raymond