Ja klar. Probier mal ALINK_BARCODE_GLOBAL e.g.:Trulchen hat geschrieben: BDS_BAR_IN über einen Fuba oder ähnliches erzeugen ?
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.
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.