Skip to Content
author's profile photo Former Member
Former Member

I/O error for text EKPO 450000090500001 F01 EN - error while adding text

HI All,

I am creating text for PO item through user exit.

If it contains any text already..it need to add the new text to the next line.

for this i am reading the existing data and appending taht data to internal table , appending new data to this internal table along with old data.

i am getting the error as " I/O error for text EKPO 450000090500001 F01 EN'.

please check my code and provide me the suggtions to avoid this error.

IF sy-tcode = 'ME21N' OR sy-tcode = 'ME22N' .

  DATA : v_thead       LIKE thead,
         v_tline       LIKE tline,
         t_it_tline    LIKE tline OCCURS 0,
         t_it_tline_r  LIKE tline OCCURS 0,
         wa_tline_r    TYPE tline,
         v_auart       TYPE auart,
         v_kdmat       TYPE kdmat.

  DATA: cc LIKE sy-index.
  DATA: t_object LIKE STANDARD TABLE OF stxdrobj.
  DATA: t_name LIKE STANDARD TABLE OF stxdrname.
  DATA: t_id LIKE STANDARD TABLE OF  stxdrid.
  DATA: t_language LIKE STANDARD TABLE OF stxdrlang.

  CLEAR : v_auart,
          v_kdmat,
          v_tline,
          v_thead.

  REFRESH t_it_tline.


  MOVE : 'F01'         TO v_thead-tdid,
         'EKPO'        TO v_thead-tdobject,
         sy-langu      TO v_thead-tdspras.

  LOOP AT xekpo.

    CLEAR v_tline.
    REFRESH t_it_tline.

    READ TABLE xekkn WITH KEY ebelp = xekpo-ebelp.

    IF sy-subrc = 0.

      SELECT SINGLE auart FROM vbak INTO v_auart WHERE
                                  vbeln = xekkn-vbeln.
      IF v_auart = 'ZYCA'.

        SELECT SINGLE kdmat FROM vbap INTO v_kdmat
                              WHERE vbeln = xekkn-vbeln
                                AND  posnr = xekkn-vbelp
                                AND  matnr = xekpo-matnr.

        CONCATENATE 'Customer Part No:' v_kdmat INTO v_tline-tdline.

        v_thead-tdname+0(10) = i_ekko-ebeln.
        v_thead-tdname+10(5) = xekpo-ebelp.

*If any text already exits.
        CALL FUNCTION 'READ_TEXT'
             EXPORTING
                  id                      = v_thead-tdid
                  language                = sy-langu
                  name                    = v_thead-tdname
                  object                  = v_thead-tdobject
             TABLES
                  lines                   = t_it_tline_r
             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.

          LOOP AT t_it_tline_r INTO wa_tline_r.
            IF NOT wa_tline_r-tdline CS v_tline-tdline  AND
                   wa_tline_r-tdline NE space.
              APPEND wa_tline_r TO t_it_tline.
            ENDIF.
          ENDLOOP.

*          CALL FUNCTION 'DELETE_TEXT'
*               EXPORTING
*                    id        = v_thead-tdid
*                    language  = sy-langu
*                    name      = v_thead-tdname
*                    object    = v_thead-tdobject
*               EXCEPTIONS
*                    not_found = 0
*                    OTHERS    = 0.
*          IF sy-subrc NE 0.
*          ENDIF.

        ENDIF.
*----- Now append the customer material part number to existing text.
        v_tline-tdformat = '*'.
        APPEND v_tline TO t_it_tline.

        CALL FUNCTION 'SAVE_TEXT'
             EXPORTING
                  header   = v_thead
             TABLES
                  lines    = t_it_tline
             EXCEPTIONS
                  id       = 1
                  language = 2
                  name     = 3
                  object   = 4
                  OTHERS   = 5.
        IF sy-subrc <> 0.
          MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
                  WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
        ENDIF.


        CALL FUNCTION 'COMMIT_TEXT'
             EXPORTING
                  object          = 'EKPO'
                  name            = '*'
                  id              = 'F01'
                  language        = sy-langu
                  savemode_direct = 'X'
             IMPORTING
                  commit_count    = cc
             TABLES
                  t_object        = t_object
                  t_name          = t_name
                  t_id            = t_id
                  t_language      = t_language.

        IF sy-subrc EQ 0.
*          MESSAGE s000(zm01) WITH text-m01.
        ENDIF.

      ENDIF.

    ENDIF.
  ENDLOOP.
ENDIF.

Edited by: Thomas Zloch on Oct 19, 2010 2:31 PM * please use tags!

Add a comment
10|10000 characters needed characters exceeded

Assigned Tags

Related questions

2 Answers

  • author's profile photo Former Member
    Former Member
    Posted on Oct 19, 2010 at 11:28 AM

    In debug, where does error occur? An additional point, I think you have to do the delete step.

    Add a comment
    10|10000 characters needed characters exceeded

  • author's profile photo Former Member
    Former Member
    Posted on Oct 19, 2010 at 11:28 AM

    Hi,

    dont pass sy-langu to language parameter tdspras. Check the document 4500000905 and item 00001 item text language .

    I am sure it is not EN as your login language.

    I hope you know how to check the item text tdid , tdname, tdobject and tdspras.

    Thanks,

    subash

    Add a comment
    10|10000 characters needed characters exceeded

Before answering

You should only submit an answer when you are proposing a solution to the poster's problem. If you want the poster to clarify the question or provide more information, please leave a comment instead, requesting additional details. When answering, please include specifics, such as step-by-step instructions, context for the solution, and links to useful resources. Also, please make sure that you answer complies with our Rules of Engagement.
You must be Logged in to submit an answer.

Up to 10 attachments (including images) can be used with a maximum of 1.0 MB each and 10.5 MB total.