FB READ_TEXT

Getting started ... Alles für einen gelungenen Start.
4 Beiträge • Seite 1 von 1
4 Beiträge Seite 1 von 1

FB READ_TEXT

Beitrag von jonas1996 (ForumUser / 24 / 7 / 0 ) »
Hallo Community

Ich habe die Aufgabe bekommen ein Unterprogramm für die Prüfung der Restlaufzeit(RLZ) der Handling Unit(HU) befor sie auf eine Lieferung verbucht werden zu schreiben.

Fals jemand eine Hu erfasst mit unterschrittener RLZ schreibe ich den Username und die betreffende HU in ein Textbaustein.
Ich lese bei jeder Erfassung den Textbaustein füge den neuen Eintrag hinzu und schreibe es dann zurück.

Jetzt habe ich das Problem das mir das Programm ein Fehler zurück gibt wenn der Textbaustein noch leer ist. Der Funktionsbaustein Text_Read funktioniert dann nicht weil er ja nichts zu lesen hat.

Ich will jetz ein einfaches if else einbauen weiss aber leider nicht wie ich Prüfen kann ob der Textbaustein leer ist oder nicht.

Code: Alles auswählen.

FORM PRUEFEN_RLZ
  using i_matnr like i_ve-matnr
        wa_hu type c.
  break joma.
data: lv_rlz type ALPFDBNUM,
      lv_pkzrlz type EXDTF,
      l_refdate type ALDATE,
      lv_answer type char10,
      ls_vepo like vepo,
      lt_nums TYPE TABLE OF BAPI1003_ALLOC_VALUES_NUM,
      lt_char     TYPE TABLE OF BAPI1003_ALLOC_VALUES_CHAR,
      lt_curr     TYPE TABLE OF BAPI1003_ALLOC_VALUES_CURR,
      lt_return   TYPE TABLE OF bapiret2,
      ls_nums type BAPI1003_ALLOC_VALUES_NUM,
      ls_char type BAPI1003_ALLOC_VALUES_CHAR,
      lv_matnr type BAPI1003_KEY-OBJECT,
      lv_fname type c value 'zscan_wa03' LENGTH 10,
      lv_text1 type c LENGTH 27,
      it_text1 type STANDARD TABLE OF tline,
      lv_HU type c LENGTH 21,
      lv_id type THEAD-TDID,
      lv_lang type THEAD-TDSPRAS,
      lv_name type THEAD-TDNAME,
      lv_obj TYPE THEAD-TDOBJECT,
      it_head TYPE STANDARD TABLE OF thead WITH HEADER LINE.

  lv_matnr = i_matnr.
  SELECT single * FROM vepo
  Into ls_vepo
  Where venum = i_ve-venum
  And vepos = i_ve-vepos.


CALL FUNCTION 'BAPI_OBJCL_GETDETAIL'
  EXPORTING
    objectkey              = lv_matnr
    objecttable            = 'MARA'
    classnum               = 'RESTLAUFZEIT_VERBR'
    classtype              = '001'
   KEYDATE                = SY-DATUM
*   UNVALUATED_CHARS       = ' '
   LANGUAGE               = SY-LANGU
* IMPORTING
*   STATUS                 =
*   STANDARDCLASS          =
  TABLES
    allocvaluesnum         = lt_nums
    allocvalueschar        = lt_char
    allocvaluescurr        = lt_curr
    RETURN                 = lt_return
          .


loop at lt_nums into ls_nums.
lv_rlz = ls_nums-value_from.
*ls_nums-VALUE_FROM
endloop.


loop at lt_char into ls_char.
  lv_pkzrlz = ls_char-VALUE_NEUTRAL.

endloop.

  CALL FUNCTION 'ZBC_CALC_DATE'
  EXPORTING
    in_rectype          = lv_pkzrlz
    in_nbr_dwxmqy       = lv_rlz
    in_date             = sy-datum
 IMPORTING
   OUT_DATE            = l_refdate
 EXCEPTIONS
   OTHER_ERROR         = 1
   OTHERS              = 2
          .

  IF ls_vepo-vfdat < l_refdate.
    CALL FUNCTION 'POPUP_TO_CONFIRM_STEP'
      EXPORTING
*       DEFAULTOPTION        = 'Y'
        TEXTLINE1            = 'Restlaufzeit wurde unterschritten wollen sie denoch fortfahren?'
*       TEXTLINE2            = ' '
        TITEL                = 'Restlaufzeit unterschritten'
*       START_COLUMN         = 25
*       START_ROW            = 6
*       CANCEL_DISPLAY       = 'X'
     IMPORTING
       ANSWER               = lv_answer
              .
  endif.

  lv_HU = wa_HU .
  lv_id = 'ZRLZ'.
  lv_lang = 'EN'.
  lv_obj = 'VBBK'.
  lv_name = wa_vbeln.
  CONCATENATE '*' sy-uname lv_HU INTO lv_text1 SEPARATED BY ' '.
   IF lv_answer = 'N'.
     return.
   elseif lv_answer = 'J'.

 CALL FUNCTION 'READ_TEXT'
   EXPORTING
*    CLIENT                        = SY-MANDT
     ID                            = lv_id
     LANGUAGE                      = lv_lang
     NAME                          = lv_name
     OBJECT                        = lv_obj
*    ARCHIVE_HANDLE                = 0
*    LOCAL_CAT                     = ' '
*  IMPORTING
*    HEADER                        =
*    OLD_LINE_COUNTER              =
   TABLES
     LINES                         = it_text1
  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.
** Implement suitable error handling here
* ENDIF.
 APPEND lv_text1 to it_text1.
it_head-tdobject = 'VBBK' .
it_head-tdname = wa_vbeln .
it_head-tdid = 'ZRLZ'.
it_head-tdspras = 'EN'.

 CALL FUNCTION 'SAVE_TEXT'
   EXPORTING
*    CLIENT                = SY-MANDT
     HEADER                = it_head
*    INSERT                = ' '
    SAVEMODE_DIRECT       = 'X'
*    OWNER_SPECIFIED       = ' '
*    LOCAL_CAT             = ' '
*  IMPORTING
*    FUNCTION              =
*    NEWHEADER             =
   TABLES
     LINES                 = it_text1
*  EXCEPTIONS
*    ID                    = 1
*    LANGUAGE              = 2
*    NAME                  = 3
*    OBJECT                = 4
*    OTHERS                = 5
           .
 IF SY-SUBRC <> 0.
* Implement suitable error handling here
 ENDIF.

   else.
return.
  ENDIF.
  clear sy-msgno.


ENDFORM.  
Liebe Grüsse
Jonas Marxer

gesponsert
Stellenangebote auf ABAPforum.com schalten
kostenfrei für Ausbildungsberufe und Werksstudenten


Re: FB READ_TEXT

Beitrag von Tron (Top Expert / 1327 / 35 / 333 ) »
Moin,
in der Kopftabelle aller Texte STXH gibt es ein Feld das die Anzahl der Zeilen des Textes enthält.
lg Jens

Folgende Benutzer bedankten sich beim Autor Tron für den Beitrag:
jonas1996

<:: XING-Gruppe Tricktresor::>
Die deutsche Rechtschreibung ist Freeware, du darfst sie kostenlos nutzen –
Aber sie ist nicht Open Source, d. h. du darfst sie nicht verändern oder in veränderter Form veröffentlichen.

Re: FB READ_TEXT

Beitrag von jonas1996 (ForumUser / 24 / 7 / 0 ) »
Wie kann ich dieses Feld lesen ?

Gruss
Jonas

Re: FB READ_TEXT

Beitrag von wreichelt (Top Expert / 1086 / 32 / 197 ) »
Hallo Jonas,

mittels: describe table xxx lines sy-tfill.

erhälst Du die Anzahl der Tabellenplätze.

Gruß
Wolfgang

Seite 1 von 1

Vergleichbare Themen

1
Antw.
11546
Views
Change Text(Header Text) of each: cl_salv_table
von jamiguel77 » 31.12.2014 20:27 • Verfasst in ABAP® für Anfänger
5
Antw.
2273
Views
Insert bei Read
von L0w-RiDer » 09.04.2019 15:46 • Verfasst in ABAP® für Anfänger
4
Antw.
4352
Views
Read mit OR Verknüpfung?
von fcmfanswr » 18.11.2010 09:24 • Verfasst in ABAP® Core
3
Antw.
5009
Views
read table
von kostonstyle » 27.03.2008 15:38 • Verfasst in ABAP® für Anfänger
0
Antw.
1163
Views
Read bzw. select
von Fiodora » 07.06.2014 23:33 • Verfasst in ABAP® für Anfänger

Über diesen Beitrag


Unterstütze die Community und teile den Beitrag für mehr Leser und Austausch

Newsletter Anmeldung

Keine Beiträge verpassen! Wöchentlich versenden wir lesenwerte Beiträge aus unserer Community.
Die letzte Ausgabe findest du hier.
Details zum Versandverfahren und zu Ihren Widerrufsmöglichkeiten findest du in unserer Datenschutzerklärung.