function module qr code€¦ · m 2 perform f_get_qrcode_from_url using fi_url ld_data changing...

14
https://belajarabap.wordpress.com 1 FUNCTION MODULE QR CODE https://belajarabap.wordpress.com/ Function Module FUNCTION ZFM_QRCODE. *"---------------------------------------------------------------------- *"*"Local Interface: *" IMPORTING *" VALUE(FI_URL) TYPE STRING OPTIONAL *" VALUE(FI_QRCODE) TYPE ZDE_QRCOD OPTIONAL *" VALUE(FI_WIDTH) TYPE I OPTIONAL *" VALUE(FI_HEIGHT) TYPE I OPTIONAL *" VALUE(FI_IMAGENAME) TYPE TDOBNAME OPTIONAL *" EXPORTING *" VALUE(FE_STATS) TYPE CHAR1 *" VALUE(FE_MESSG) TYPE STRING *" EXCEPTIONS *" ENQUEUE_FAILED *"---------------------------------------------------------------------- DATA: ld_content LIKE d_xstring, ld_strlen TYPE i, ld_blob TYPE w3mimetabtype, ld_object TYPE stxbitmaps-tdobject, ld_id TYPE stxbitmaps-tdid, ld_btype TYPE stxbitmaps-tdbtype, ld_resident TYPE stxbitmaps-resident, ld_autoheight TYPE stxbitmaps-autoheight, ld_bmcomp TYPE stxbitmaps-bmcomp, ld_resolution TYPE stxbitmaps-resolution, ld_extension TYPE rlgrap-filename, ld_docid TYPE stxbitmaps-docid, ld_data TYPE string, ld_quote(1) VALUE '"'. CONCATENATE '{' ld_quote 'url' ld_quote ':' ld_quote fi_qrcode ld_quote '}' INTO ld_data.

Upload: others

Post on 10-Jul-2020

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: FUNCTION MODULE QR CODE€¦ · m 2 PERFORM f_get_qrcode_from_url USING fi_url ld_data CHANGING ld_content ld_strlen fe_stats fe_messg. CHECK fe_stats IS INITIAL. PERFORM f_convert_image

htt

ps:

//b

elaj

arab

ap.w

ord

pre

ss.c

om

1

FUNCTION MODULE QR CODE

https://belajarabap.wordpress.com/

Function Module FUNCTION ZFM_QRCODE. *"----------------------------------------------------------------------

*"*"Local Interface:

*" IMPORTING

*" VALUE(FI_URL) TYPE STRING OPTIONAL

*" VALUE(FI_QRCODE) TYPE ZDE_QRCOD OPTIONAL

*" VALUE(FI_WIDTH) TYPE I OPTIONAL

*" VALUE(FI_HEIGHT) TYPE I OPTIONAL

*" VALUE(FI_IMAGENAME) TYPE TDOBNAME OPTIONAL

*" EXPORTING

*" VALUE(FE_STATS) TYPE CHAR1

*" VALUE(FE_MESSG) TYPE STRING

*" EXCEPTIONS

*" ENQUEUE_FAILED

*"----------------------------------------------------------------------

DATA: ld_content LIKE d_xstring,

ld_strlen TYPE i,

ld_blob TYPE w3mimetabtype,

ld_object TYPE stxbitmaps-tdobject,

ld_id TYPE stxbitmaps-tdid,

ld_btype TYPE stxbitmaps-tdbtype,

ld_resident TYPE stxbitmaps-resident,

ld_autoheight TYPE stxbitmaps-autoheight,

ld_bmcomp TYPE stxbitmaps-bmcomp,

ld_resolution TYPE stxbitmaps-resolution,

ld_extension TYPE rlgrap-filename,

ld_docid TYPE stxbitmaps-docid,

ld_data TYPE string,

ld_quote(1) VALUE '"'.

CONCATENATE '{' ld_quote 'url' ld_quote ':' ld_quote fi_qrcode ld_quote '}'

INTO ld_data.

Page 2: FUNCTION MODULE QR CODE€¦ · m 2 PERFORM f_get_qrcode_from_url USING fi_url ld_data CHANGING ld_content ld_strlen fe_stats fe_messg. CHECK fe_stats IS INITIAL. PERFORM f_convert_image

htt

ps:

//b

elaj

arab

ap.w

ord

pre

ss.c

om

2

PERFORM f_get_qrcode_from_url USING fi_url

ld_data

CHANGING ld_content

ld_strlen

fe_stats

fe_messg.

CHECK fe_stats IS INITIAL.

PERFORM f_convert_image USING ld_content

ld_strlen

fi_width

fi_height

CHANGING ld_blob

fe_stats

fe_messg.

CHECK fe_stats IS INITIAL.

ld_object = 'GRAPHICS'.

ld_id = 'BMAP'.

ld_btype = 'BCOL'. "If u want black and white pass BMON

ld_resident = ' '.

ld_autoheight = 'X'.

ld_bmcomp = 'X'.

ld_extension = 'BMP'.

PERFORM f_import_image USING ld_blob

fi_imagename

ld_object

ld_id

ld_btype

ld_extension

' '

ld_resident

ld_autoheight

ld_bmcomp

CHANGING ld_docid

ld_resolution

fe_stats

fe_messg.

ENDFUNCTION.

Page 3: FUNCTION MODULE QR CODE€¦ · m 2 PERFORM f_get_qrcode_from_url USING fi_url ld_data CHANGING ld_content ld_strlen fe_stats fe_messg. CHECK fe_stats IS INITIAL. PERFORM f_convert_image

htt

ps:

//b

elaj

arab

ap.w

ord

pre

ss.c

om

3

Include TOP type-pools: SBDST.

data: d_xstring TYPE xstring.

Include F01 *&---------------------------------------------------------------------*

*& Form F_GET_QRCODE_FROM_URL

*&---------------------------------------------------------------------*

FORM f_get_qrcode_from_url USING fu_url TYPE string

fu_data TYPE string

CHANGING fc_content LIKE d_xstring

fc_strlen TYPE i

fc_stats

fc_messg TYPE string.

DATA: http_client TYPE REF TO if_http_client,

ld_length TYPE i,

ld_xdata TYPE xstring,

ld_content TYPE string.

CALL METHOD cl_http_client=>create_by_url

EXPORTING

url = fu_url

IMPORTING

client = http_client

EXCEPTIONS

argument_not_found = 1

plugin_not_active = 2

internal_error = 3

OTHERS = 4.

IF sy-subrc NE 0.

fc_stats = 'E'.

CASE sy-subrc.

WHEN 1. fc_messg = 'Error when creating url: Argument no found'.

WHEN 2. fc_messg = 'Error when creating url: Plugin not active'.

WHEN OTHERS. fc_messg = 'Error when creating url'.

ENDCASE.

RETURN.

ENDIF.

Page 4: FUNCTION MODULE QR CODE€¦ · m 2 PERFORM f_get_qrcode_from_url USING fi_url ld_data CHANGING ld_content ld_strlen fe_stats fe_messg. CHECK fe_stats IS INITIAL. PERFORM f_convert_image

htt

ps:

//b

elaj

arab

ap.w

ord

pre

ss.c

om

4

* set http_client header parameters

CALL METHOD http_client->request->set_header_field

EXPORTING

name = '~request_method'

value = 'POST'.

CALL METHOD http_client->request->set_header_field

EXPORTING

name = '~server_protocol'

value = 'HTTP/1.1'.

CALL METHOD http_client->request->set_header_field

EXPORTING

name = 'Content-Type'

value = 'application/json'.

* set data to be sent

ld_length = STRLEN( fu_data ).

CALL METHOD http_client->request->set_cdata

EXPORTING

data = fu_data

offset = 0

length = ld_length.

* send data

CALL METHOD http_client->send

EXCEPTIONS

http_communication_failure = 1

http_invalid_state = 2

http_invalid_timeout = 3.

IF sy-subrc NE 0.

fc_stats = 'E'.

CALL METHOD http_client->get_last_error

IMPORTING

message = fc_messg.

RETURN.

ENDIF.

* receive data

CALL METHOD http_client->receive

EXCEPTIONS

http_communication_failure = 1

http_invalid_state = 2

http_processing_failed = 3.

IF sy-subrc NE 0.

Page 5: FUNCTION MODULE QR CODE€¦ · m 2 PERFORM f_get_qrcode_from_url USING fi_url ld_data CHANGING ld_content ld_strlen fe_stats fe_messg. CHECK fe_stats IS INITIAL. PERFORM f_convert_image

htt

ps:

//b

elaj

arab

ap.w

ord

pre

ss.c

om

5

fc_stats = 'E'.

CALL METHOD http_client->get_last_error

IMPORTING

message = fc_messg.

RETURN.

ENDIF.

ld_content = http_client->response->get_cdata( ).

fc_strlen = STRLEN( ld_content ).

CALL FUNCTION 'SCMS_STRING_TO_XSTRING'

EXPORTING

text = ld_content

mimetype = 'X'

IMPORTING

buffer = fc_content

EXCEPTIONS

failed = 1

OTHERS = 2.

IF sy-subrc <> 0.

fc_stats = 'E'.

MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno

WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4

INTO fc_messg.

RETURN.

ENDIF.

fc_strlen = XSTRLEN( fc_content ).

ENDFORM. " F_GET_QRCODE_FROM_URL

*&---------------------------------------------------------------------*

*& Form F_CONVERT_IMAGE

*&---------------------------------------------------------------------*

FORM f_convert_image USING fu_content LIKE d_xstring

fu_strlen TYPE i

fu_width TYPE i

fu_height TYPE i

CHANGING fc_blob TYPE w3mimetabtype

fc_stats

fc_messg TYPE string.

DATA: lcl_img_conv TYPE REF TO cl_igs_image_converter.

DATA: lt_mime TYPE w3mimetabtype,

ld_bloblen TYPE i,

Page 6: FUNCTION MODULE QR CODE€¦ · m 2 PERFORM f_get_qrcode_from_url USING fi_url ld_data CHANGING ld_content ld_strlen fe_stats fe_messg. CHECK fe_stats IS INITIAL. PERFORM f_convert_image

htt

ps:

//b

elaj

arab

ap.w

ord

pre

ss.c

om

6

ld_blob_size TYPE w3param-cont_len,

ld_blob_type TYPE w3param-cont_type.

* convert xstring to mime

CALL FUNCTION 'RSFO_XSTRING_TO_MIME'

EXPORTING

c_xstring = fu_content

i_length = fu_strlen

TABLES

c_t_mime = lt_mime.

CREATE OBJECT lcl_img_conv.

lcl_img_conv->input = 'image/png'.

lcl_img_conv->output = 'image/bmp'.

lcl_img_conv->width = fu_width.

lcl_img_conv->height = fu_height.

CALL METHOD lcl_img_conv->set_image

EXPORTING

blob = lt_mime

blob_size = ld_bloblen.

CALL METHOD lcl_img_conv->execute

EXCEPTIONS

communication_error = 1

internal_error = 2

external_error = 3

OTHERS = 4.

IF sy-subrc = 0.

CALL METHOD lcl_img_conv->get_image

IMPORTING

blob = fc_blob

blob_size = ld_blob_size

blob_type = ld_blob_type.

ELSE.

fc_stats = 'E'.

fc_messg = 'Error converting image'.

RETURN.

ENDIF.

ENDFORM. " F_CONVERT_IMAGE

Page 7: FUNCTION MODULE QR CODE€¦ · m 2 PERFORM f_get_qrcode_from_url USING fi_url ld_data CHANGING ld_content ld_strlen fe_stats fe_messg. CHECK fe_stats IS INITIAL. PERFORM f_convert_image

htt

ps:

//b

elaj

arab

ap.w

ord

pre

ss.c

om

7

*&---------------------------------------------------------------------*

*& Form F_IMPORT_IMAGE

*&---------------------------------------------------------------------*

FORM f_import_image

USING fu_blob TYPE w3mimetabtype

fu_name TYPE stxbitmaps-tdname

fu_object TYPE stxbitmaps-tdobject

fu_id TYPE stxbitmaps-tdid

fu_btype TYPE stxbitmaps-tdbtype

fu_format TYPE c

fu_title TYPE bds_propva

fu_resident TYPE stxbitmaps-resident

fu_autoheight TYPE stxbitmaps-autoheight

fu_bmcomp TYPE stxbitmaps-bmcomp

CHANGING fc_docid TYPE stxbitmaps-docid

fc_resolution TYPE stxbitmaps-resolution

fc_stats

fc_messg.

DATA: lcl_bds_object TYPE REF TO cl_bds_document_set.

DATA: ld_bytecount TYPE i,

ld_width_tw TYPE stxbitmaps-widthtw,

ld_height_tw TYPE stxbitmaps-heighttw,

ld_width_pix TYPE stxbitmaps-widthpix,

ld_height_pix TYPE stxbitmaps-heightpix,

ld_bds_bytecount TYPE i,

ld_object_key TYPE sbdst_object_key,

ld_tabname TYPE ddobjname.

DATA: lt_bds_content TYPE sbdst_content,

lt_bds_components TYPE sbdst_components,

lt_bds_properties TYPE sbdst_properties,

lt_bds_signature TYPE sbdst_signature.

DATA: lx_bds_components TYPE LINE OF sbdst_components,

lx_bds_signature TYPE LINE OF sbdst_signature,

lx_stxbitmaps TYPE stxbitmaps,

lx_bds_properties TYPE LINE OF sbdst_properties.

* BDS handling

CONSTANTS:

lc_bds_classname TYPE sbdst_classname VALUE 'DEVC_STXD_BITMAP',

lc_bds_classtype TYPE sbdst_classtype VALUE 'OT', "others

lc_bds_mimetype TYPE bds_mimetp VALUE 'application/octet-stream',

Page 8: FUNCTION MODULE QR CODE€¦ · m 2 PERFORM f_get_qrcode_from_url USING fi_url ld_data CHANGING ld_content ld_strlen fe_stats fe_messg. CHECK fe_stats IS INITIAL. PERFORM f_convert_image

htt

ps:

//b

elaj

arab

ap.w

ord

pre

ss.c

om

8

lc_bds_original TYPE sbdst_doc_var_tg VALUE 'OR'.

* Enqueue

PERFORM enqueue_graphic USING fu_object

fu_name

fu_id

fu_btype

CHANGING fc_stats

fc_messg.

IF fc_stats = 'E'.

RETURN.

ENDIF.

* Bitmap conversion

CALL FUNCTION 'SAPSCRIPT_CONVERT_BITMAP_BDS'

EXPORTING

color = 'X'

format = fu_format

resident = fu_resident

bitmap_bytecount = ld_bytecount

compress_bitmap = fu_bmcomp

IMPORTING

width_tw = ld_width_tw

height_tw = ld_height_tw

width_pix = ld_width_pix

height_pix = ld_height_pix

dpi = fc_resolution

bds_bytecount = ld_bds_bytecount

TABLES

bitmap_file = fu_blob

bitmap_file_bds = lt_bds_content

EXCEPTIONS

format_not_supported = 1

no_bmp_file = 2

bmperr_invalid_format = 3

bmperr_no_colortable = 4

bmperr_unsup_compression = 5

bmperr_corrupt_rle_data = 6

OTHERS = 7.

IF sy-subrc <> 0.

fc_stats = 'E'.

MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno

WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4

INTO fc_messg.

Page 9: FUNCTION MODULE QR CODE€¦ · m 2 PERFORM f_get_qrcode_from_url USING fi_url ld_data CHANGING ld_content ld_strlen fe_stats fe_messg. CHECK fe_stats IS INITIAL. PERFORM f_convert_image

htt

ps:

//b

elaj

arab

ap.w

ord

pre

ss.c

om

9

PERFORM dequeue_graphic USING fu_object

fu_name

fu_id

fu_btype.

RETURN.

ENDIF.

* Save bitmap in BDS

CREATE OBJECT lcl_bds_object.

lx_bds_components-doc_count = '1'.

lx_bds_components-comp_count = '1'.

lx_bds_components-mimetype = lc_bds_mimetype.

lx_bds_components-comp_size = ld_bds_bytecount.

APPEND lx_bds_components TO lt_bds_components.

IF fc_docid IS INITIAL. "graphic is new

lx_bds_signature-doc_count = '1'.

APPEND lx_bds_signature TO lt_bds_signature.

CALL METHOD lcl_bds_object->create_with_table

EXPORTING

classname = lc_bds_classname

classtype = lc_bds_classtype

components = lt_bds_components

content = lt_bds_content

CHANGING

signature = lt_bds_signature

object_key = ld_object_key

EXCEPTIONS

OTHERS = 1.

IF sy-subrc <> 0.

fc_stats = 'E'.

MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno

WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4

INTO fc_messg.

PERFORM dequeue_graphic USING fu_object

fu_name

fu_id

fu_btype.

RETURN.

ENDIF.

Page 10: FUNCTION MODULE QR CODE€¦ · m 2 PERFORM f_get_qrcode_from_url USING fi_url ld_data CHANGING ld_content ld_strlen fe_stats fe_messg. CHECK fe_stats IS INITIAL. PERFORM f_convert_image

htt

ps:

//b

elaj

arab

ap.w

ord

pre

ss.c

om

10

READ TABLE lt_bds_signature INDEX 1 INTO lx_bds_signature

TRANSPORTING doc_id.

IF sy-subrc = 0.

fc_docid = lx_bds_signature-doc_id.

ELSE.

MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno

WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4

INTO fc_messg.

fc_stats = 'E'.

PERFORM dequeue_graphic USING fu_object

fu_name

fu_id

fu_btype.

RETURN.

ENDIF.

ELSE. " graphic already exists

*read object_key for faster access

CLEAR ld_object_key.

SELECT SINGLE * FROM stxbitmaps INTO lx_stxbitmaps

WHERE tdobject = fu_object

AND tdid = fu_id

AND tdname = fu_name

AND tdbtype = fu_btype.

SELECT SINGLE tabname FROM bds_locl INTO ld_tabname

WHERE classname = lc_bds_classname

AND classtype = lc_bds_classtype.

IF sy-subrc = 0.

SELECT SINGLE object_key FROM (ld_tabname) INTO ld_object_key

WHERE loio_id = lx_stxbitmaps-docid+10(32)

AND classname = lc_bds_classname

AND classtype = lc_bds_classtype.

ENDIF.

Page 11: FUNCTION MODULE QR CODE€¦ · m 2 PERFORM f_get_qrcode_from_url USING fi_url ld_data CHANGING ld_content ld_strlen fe_stats fe_messg. CHECK fe_stats IS INITIAL. PERFORM f_convert_image

htt

ps:

//b

elaj

arab

ap.w

ord

pre

ss.c

om

11

*read object_key end

CALL METHOD lcl_bds_object->update_with_table

EXPORTING

classname = lc_bds_classname

classtype = lc_bds_classtype

object_key = ld_object_key

doc_id = fc_docid

doc_ver_no = '1'

doc_var_id = '1'

CHANGING

components = lt_bds_components

content = lt_bds_content

EXCEPTIONS

nothing_found = 1

OTHERS = 2.

IF sy-subrc = 1. " inconsistency STXBITMAPS # BDS; repeat check in

lx_bds_signature-doc_count = '1'.

APPEND lx_bds_signature TO lt_bds_signature.

CALL METHOD lcl_bds_object->create_with_table

EXPORTING

classname = lc_bds_classname

classtype = lc_bds_classtype

components = lt_bds_components

content = lt_bds_content

CHANGING

signature = lt_bds_signature

object_key = ld_object_key

EXCEPTIONS

OTHERS = 1.

IF sy-subrc <> 0.

MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno

WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4

INTO fc_messg.

fc_stats = 'E'.

PERFORM dequeue_graphic USING fu_object

fu_name

fu_id

fu_btype.

RETURN.

ENDIF.

Page 12: FUNCTION MODULE QR CODE€¦ · m 2 PERFORM f_get_qrcode_from_url USING fi_url ld_data CHANGING ld_content ld_strlen fe_stats fe_messg. CHECK fe_stats IS INITIAL. PERFORM f_convert_image

htt

ps:

//b

elaj

arab

ap.w

ord

pre

ss.c

om

12

READ TABLE lt_bds_signature INDEX 1 INTO lx_bds_signature

TRANSPORTING doc_id.

IF sy-subrc = 0.

fc_docid = lx_bds_signature-doc_id.

ELSE.

fc_stats = 'E'.

MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno

WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4

INTO fc_messg.

PERFORM dequeue_graphic USING fu_object

fu_name

fu_id

fu_btype.

RETURN.

ENDIF.

ELSEIF sy-subrc = 2.

fc_stats = 'E'.

MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno

WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4

INTO fc_messg.

PERFORM dequeue_graphic USING fu_object

fu_name

fu_id

fu_btype.

RETURN.

ENDIF.

ENDIF.

* Save bitmap header in STXBITPMAPS

lx_stxbitmaps-tdname = fu_name.

lx_stxbitmaps-tdobject = fu_object.

lx_stxbitmaps-tdid = fu_id.

lx_stxbitmaps-tdbtype = fu_btype.

lx_stxbitmaps-docid = fc_docid.

lx_stxbitmaps-widthpix = ld_width_pix.

lx_stxbitmaps-heightpix = ld_height_pix.

lx_stxbitmaps-widthtw = ld_width_tw.

lx_stxbitmaps-heighttw = ld_height_tw.

lx_stxbitmaps-resolution = fc_resolution.

lx_stxbitmaps-resident = fu_resident.

lx_stxbitmaps-autoheight = fu_autoheight.

lx_stxbitmaps-bmcomp = fu_bmcomp.

INSERT into stxbitmaps values lx_stxbitmaps.

Page 13: FUNCTION MODULE QR CODE€¦ · m 2 PERFORM f_get_qrcode_from_url USING fi_url ld_data CHANGING ld_content ld_strlen fe_stats fe_messg. CHECK fe_stats IS INITIAL. PERFORM f_convert_image

htt

ps:

//b

elaj

arab

ap.w

ord

pre

ss.c

om

13

IF sy-subrc <> 0.

UPDATE stxbitmaps FROM lx_stxbitmaps.

IF sy-subrc <> 0.

fc_stats = 'E'.

MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno

WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4

INTO fc_messg.

RETURN.

ENDIF.

ENDIF.

* Set description in BDS attributes

lx_bds_properties-prop_name = 'DESCRIPTION'.

lx_bds_properties-prop_value = fu_title.

APPEND lx_bds_properties TO lt_bds_properties.

CALL METHOD lcl_bds_object->change_properties

EXPORTING

classname = lc_bds_classname

classtype = lc_bds_classtype

object_key = ld_object_key

doc_id = fc_docid

doc_ver_no = '1'

doc_var_id = '1'

CHANGING

properties = lt_bds_properties

EXCEPTIONS

OTHERS = 1.

PERFORM dequeue_graphic USING fu_object

fu_name

fu_id

fu_btype.

ENDFORM. " F_IMPORT_IMAGE

Page 14: FUNCTION MODULE QR CODE€¦ · m 2 PERFORM f_get_qrcode_from_url USING fi_url ld_data CHANGING ld_content ld_strlen fe_stats fe_messg. CHECK fe_stats IS INITIAL. PERFORM f_convert_image

htt

ps:

//b

elaj

arab

ap.w

ord

pre

ss.c

om

14

*&---------------------------------------------------------------------*

*& Form enqueue_graphic

*&---------------------------------------------------------------------*

FORM enqueue_graphic USING fu_object

fu_name

fu_id

fu_btype

CHANGING fc_stats

fc_messg.

CALL FUNCTION 'ENQUEUE_ESSGRABDS'

EXPORTING

tdobject = fu_object

tdname = fu_name

tdid = fu_id

tdbtype = fu_btype

EXCEPTIONS

foreign_lock = 1

OTHERS = 2.

IF sy-subrc <> 0.

MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno

WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4

INTO fc_messg.

fc_stats = 'E'.

ENDIF.

ENDFORM. "ENQUEUE_GRAPHIC

*&---------------------------------------------------------------------*

*& Form dequeue_graphic

*&---------------------------------------------------------------------*

FORM dequeue_graphic USING fu_object

fu_name

fu_id

fu_btype.

CALL FUNCTION 'DEQUEUE_ESSGRABDS'

EXPORTING

tdobject = fu_object

tdname = fu_name

tdid = fu_id

tdbtype = fu_btype.

ENDFORM. "DEQUEUE_GRAPHIC