Application Development Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 

IW52 add attachment converted to binary

Former Member
0 Kudos

Hello,

I'm currently trying to attach to SAP, on transaction IW52, a file that is sent from a web portal. This file is sent on the format of XTRING, which then i convert it to binary and upload into SAP.

When going into transaction IW52 the attachment appears, which means that i can attach it, but the problem is when i'm trying to open it which instead of performing a display of the document it asks me for a path to save the file.

I can handle the saving part changing a variable (EXTCT) from value 'K' to ' ', which is suposed to control the display of the file, but when i set it up to space (' ') it opens the file, but without any content.

Technical details:

The web portal sends the file in a variable of the type XTRING which in SAP (using FM SCMS_XTRING_TO_BINARY) is converted into binary and then using FM SO_OBJECT_INSERT is attached to transaction IW52.

Part of the code is displayed bellow:

lv_type = 'EXT'.

            CALL FUNCTION 'SCMS_XSTRING_TO_BINARY'
              EXPORTING
                buffer        = im_path_portal
              IMPORTING
                output_length = bytecount
              TABLES
                binary_tab    = file_tab.

            CALL FUNCTION 'SO_FOLDER_ROOT_ID_GET'
              EXPORTING
                region    = 'B'
              IMPORTING
                folder_id = folder_id
              EXCEPTIONS
                OTHERS    = 1.

            SPLIT im_path AT '.' INTO object_hd_change-objdes
                                      object_hd_change-file_ext.
            object_hd_change-extct = 'K'.
            object_hd_change-objlen = bytecount.

            CALL FUNCTION 'SO_OBJECT_INSERT'
              EXPORTING
                folder_id                  = folder_id
                object_type                = lv_type
                object_hd_change           = object_hd_change
              IMPORTING
                object_id                  = object_id
                object_hd_display          = object_hd_display
                object_fl_display          = object_fl_display
              TABLES
                objcont                    = file_tab
                objhead                    = objhead
              EXCEPTIONS
                active_user_not_exist      = 1
                communication_failure      = 2
                component_not_available    = 3
                dl_name_exist              = 4
                folder_not_exist           = 5
                folder_no_authorization    = 6
                object_type_not_exist      = 7
                operation_no_authorization = 8
                owner_not_exist            = 9
                parameter_error            = 10
                substitute_not_active      = 11
                substitute_not_defined     = 12
                system_failure             = 13
                x_error                    = 14
                OTHERS                     = 15.
          ENDIF.

          IF sy-subrc EQ 0.
            is_object-objkey = im_qmnum.
            is_object-objtype = 'BUS2080'.

            CONCATENATE folder_id object_id
              INTO attachement-objkey.
            attachement-objtype = 'MESSAGE'.

            CALL FUNCTION 'BINARY_RELATION_CREATE_COMMIT'
              EXPORTING
                obj_rolea      = is_object
                obj_roleb      = attachement
                relationtype   = 'ATTA'
              EXCEPTIONS
                no_model       = 1
                internal_error = 2
                unknown        = 3
                OTHERS         = 4.
            IF sy-subrc EQ 0.
            ELSE.
              conversion_out im_qmnum im_qmnum.
              tab_return-msgtyp = 'E'.
              CONCATENATE 'Erro a anexar ficheiro' im_path
                          'a nota de serviço' im_qmnum
                          INTO tab_return-msgv1
                          SEPARATED BY space.
              APPEND tab_return.
              lv_error = 'X'.
            ENDIF.
          ELSE.
            conversion_out im_qmnum im_qmnum.
            tab_return-msgtyp = 'E'.
            CONCATENATE 'Erro a anexar ficheiro' im_path
                        'a nota de serviço' im_qmnum
                        INTO tab_return-msgv1
                        SEPARATED BY space.
            APPEND tab_return.
            lv_error = 'X'.
          ENDIF.

Does anybody knows how i can handle this?

Edited by: Smitholic on Oct 14, 2010 4:41 PM

1 REPLY 1

former_member205144
Active Participant
0 Kudos

Hi Ricardo ,

I have the same issue.File is getting attached.But file is corrupt.How did u solve this??

Regards

Lavanya