Manuell Einträge in BDS_BARCODE_IN erzeugen

Alles rund um die Sprache ABAP®: Funktionsbausteine, Listen, ALV
3 Beiträge • Seite 1 von 1
3 Beiträge Seite 1 von 1

Manuell Einträge in BDS_BARCODE_IN erzeugen

Beitrag von Trulchen (Specialist / 241 / 4 / 1 ) »
Hallo,

und zwar folgendes Problem:

Es kommt immer wieder vor das wir in der OAM1 bzw. in der Tabelle BDS_BARCODE_EX einträge haben die keine Beleg zugeordenet werden können.
In den meisten Fällen ist es so das der Beleg bereits gescannt wurde also bereits Archiviert wurde und der zugehörige Eintrag in der BDS_BAR_IN fehlt.

Bisher wurde das immer mühsam Manuell geprüft und der Barcode neu Erzeugt.

Kann ich wenn ich über den Barcode die Belegnummer bekannt ist eine Eintrag in der BDS_BAR_IN über einen Fuba oder ähnliches erzeugen ?

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


Re: Manuell Einträge in BDS_BARCODE_IN erzeugen

Beitrag von Tron (Top Expert / 1327 / 35 / 331 ) »
Moin.
Trulchen hat geschrieben: BDS_BAR_IN über einen Fuba oder ähnliches erzeugen ?
Ja klar. Probier mal ALINK_BARCODE_GLOBAL e.g.:

Code: Alles auswählen.

DATA:
object_id       TYPE toav0-object_id,
barcode         TYPE toav0-arc_doc_id,
object_type     TYPE toav0-sap_object VALUE 'TRAVEL',
i_document_type TYPE toav0-ar_object VALUE 'Z_REISRECH'.

* check barcode already exist
SELECT SINGLE COUNT(*) FROM bds_bar_in WHERE
barcode = encoding AND docutype = i_document_type.

IF sy-subrc NE 0.

  object_id = encoding.
  barcode = encoding.

  CALL FUNCTION 'ALINK_BARCODE_GLOBAL'
    EXPORTING
      object_type      = object_type
      object_id        = object_id
      i_document_type  = i_document_type
      barcode          = barcode
      no_doc_change    = 'X'
      no_popup         = 'X'
*     UPDATETASK       =
      no_check         = 'X'
    EXCEPTIONS
      no_authority     = 1
      no_customizing   = 2
      error_connection = 3
      error_parameter  = 4
      user_exit        = 5
      general_error    = 6
      OTHERS           = 7.
gruß Jens
<:: 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: Manuell Einträge in BDS_BARCODE_IN erzeugen

Beitrag von Trulchen (Specialist / 241 / 4 / 1 ) »
Ahhh perfekt :)

Ich hatte derzweil auch etwas gefunden hier mal mein Coding . Mit dem Funktionsbaustein von dir ist es natürlich wesentlich Komfortabler.

Code: Alles auswählen.

"Wir lesen alle offenen Barcodes die noch nicht Verknüpft sind!

SELECT *
FROM bds_bar_ex
INTO CORRESPONDING FIELDS OF TABLE lt_barcode_ex.

LOOP AT lt_barcode_ex into ls_barcode_Ex.
    ls_BAPIBDS01-barcode = ls_barcode_Ex-BARCODE.
    lv_beleg = ls_barcode_Ex-BARCODE .
    ls_BAPIBDS01-CLASSNAME = 'LIKP'.

    "Unschöne Programierung
    SHIFT lv_beleg  LEFT DELETING LEADING '0'.
    lv_length = strlen( lv_beleg  ) - 1. "Die Prüfziffer muss weg
    lv_string = lv_beleg(lv_length).
    CONCATENATE '00'  lv_string INTO lv_string.

    "Wir überprüfen ob es dazu eine Lieferung gibt.
    SELECT SINGLE *
    FROM LIKP
    Into ls_likp
    WHERE vbeln =  lv_string .
    IF sy-subrc = 0.

      select single * from toacm
      into ls_toacm
      where sap_object = ls_BAPIBDS01-CLASSNAME
      and ar_object = 'ZLSRUECK'.

      REFRESH lt_properties.
      ls_properties-name = 'BDS_DOCUMENTTYPE'.
      ls_properties-VALUE = 'ZLSRUECK'.
      append ls_properties to lt_properties.

    endif.

    ls_BAPIBDS01-OBJKEY = lv_string.


  IF lt_properties is not INITIAL and ls_toacm is not INITIAL.
    CALL FUNCTION 'BDS_BARCODE_CREATE'
      EXPORTING
        BARCODE        = ls_BAPIBDS01-barcode
        CLASSNAME      = ls_BAPIBDS01-CLASSNAME
        CLASSTYPE      = 'BO'
        OBJKEY         = ls_BAPIBDS01-OBJKEY
        S_TOACM        = ls_toacm
      TABLES
        PROPERTIES     = lt_properties
      EXCEPTIONS
        ERROR_BARCODE  = 1
        ERROR_KPRO     = 2
        INTERNAL_ERROR = 3
        OTHERS         = 4.
    if sy-subrc = 0.
      CONCATENATE 'Barcode' ls_BAPIBDS01-barcode 'für Beleg ' ls_BAPIBDS01-OBJKEY 'Objekt' ls_BAPIBDS01-CLASSNAME 'wurde angelegt' into lv_message SEPARATED BY space.
      Write : lv_message.
      refresh: lt_properties.
      clear ls_toacm.
    endif.

  else.
    CONCATENATE 'Zu Barcode' ls_barcode_Ex-BARCODE 'wurde kein Beleg gefunden.' into lv_message SEPARATED BY space.
     Write : lv_message.
  endif.
  clear lv_message.
endloop.

Seite 1 von 1

Vergleichbare Themen

0
Antw.
2074
Views
Aus SAPscript heraus PDF mit Barcode erzeugen?
von b0rsti » 12.03.2008 20:52 • Verfasst in Dialogprogrammierung
0
Antw.
1193
Views
ODS manuell weiterverbuchen
von Kerstin » 06.08.2015 13:31 • Verfasst in Sonstige Module
0
Antw.
1294
Views
Naturalrabatt manuell änderbar...
von Niekohle » 24.04.2007 11:51 • Verfasst in Sales and Distribution
6
Antw.
4219
Views
Transaktionscode manuell setzen
von lausek » 06.03.2018 13:50 • Verfasst in Dialogprogrammierung
1
Antw.
1496
Views
Verursachervormerkung OCM manuell anlegen
von Aba » 17.04.2019 15:36 • Verfasst in Material Management & Produktionsplanung

Ü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.