cancel
Showing results for 
Search instead for 
Did you mean: 

FM or Report to retrieve GOS attachments

former_member561828
Participant
0 Kudos

Looking for a report or method to retrieve document (attachments) stored in GOS.  In some cases the document are stored in  category SOFFDB, other are in SOFFHTTP mapped to external content server.

Also information about correct set of tables to reference to determine GOS attachments against an object.

Accepted Solutions (1)

Accepted Solutions (1)

SSB
Advisor
Advisor

Dear  Richard ,


    You can refer to the table SOFFPHIO with required storage category. For getting the list of related GOS objects you can have a look at table 'SRGBTBREL' .

Regards

Sagar B


former_member561828
Participant
0 Kudos

Any recommendations for how to "link" these tables. In SRGBTBREL I can clearly find the object links to GOS services.  In SOFFPHIO I can see the PHIO to attachments in GOS (I think) and category used.

My need is to access the attachment without access to the object ie retrieve the document from the physical repository using FM or program.

Answers (6)

Answers (6)

janosdezsi
Product and Topic Expert
Product and Topic Expert

Hello Richard,

first things first. In GOS -> Attachment list you can find very different documents. Ones are stored and considered as ArchiveLink attachments. In this case the business documents are linked to a business object. This linkage is stored in the ARL connection tables (these are listed in table TOACO, and these are TOA01, etc.) In this table the business object type and object ID (SWO1 objects) are linked to a business document, which is referenced by a content repository and a document ID. The content repositories are defined in OAC0 and to use it in ARL the name of it have to be 2 chars long. But it can be a HTTP or a System DB type one, basically no difference from GOS an ARL point of view (except some display behavior). These documents were attached to the business object with one of the ARL scenarios (workflow, barcode or manually via the GOS -> New -> Store business document service). You can define the linkage in OAC3.

In the Attachment list you can find other attachments like BDS, etc.

And the so called standard PC documents. The documents itself can be stored (based on the OACT and SKPR08 settings) either is a system database table (SOFFCONT1 in most cases) or in a HTTP content server. The actual content repository also defined in OAC0, for example SOFFDB. The documents defined in table SOOD and liked to the so called dark folder in SOFM. (SOFM->SOOD->SOC3)

The document itself stored via KPro using these tables: SOC3 ->SOFFLOIO->SOFFPHIO->SOFFPHF->SOFFCONT1 but SOC3 is a cluster table, so it's not so easy to read it like other tables. These documents are liked to the business object either via the table SRGBTBREL or (before 4.6C) with the SRRELROLES and SRGBINREL.

You can find more info in note 530792 and 904711.

So my question now. Exactly what kind of attachments would you like to retrieve and with what kind of selection criteria?

Best regards,

Janos

former_member561828
Participant
0 Kudos

Thank you for this information.  I have not as yet reviewed in depth all the information shared.

However, wanted to report a reply to your question:

We are using the "Standard PC Documents" process for attachments via GOS.  Ideally the selection is based on the business object as reported in SRGBTBREL.

Former Member
0 Kudos

Hi Jonos Dezsi,

could you please hlep me how to Read attachments of FB03 through report and same needs to be attache...  ?


In custom report we are posting the existing old GL account document data to the new document through BDC(call transaction).

Here my requirement is that old document of attachments should be attached to the newly posted document.

Could you please help me how to do this.

Thanks

Vijay

Former Member
0 Kudos

For deleting the documents linked with GOS you need to run the report - RSGOSRE01 .

Will recommend you to check the SAP Note - 1641800.

Check and Reply.

former_member561828
Participant
0 Kudos

To report on status, have used TA OAOR successfully to access GOS objects.  Used table SRGBTBREL as reference to determine the object types and instance ID.  This worked successfully without programming to get the GOS objects.

In a certain case, the GOS objects were no linker valid (for some reason yet to be determined).  However, we know the ATTA original documents were stored in either SOFFDB or SOFFHTTP by references their records in tables  SOFFPHIO and, in case of SOFFDB, table SOFFCONT1.

So using FM SCMS_DOC_READ_FILES, were able to retrieve the originals.

Looking to develop a small program to run FM an retrieve all originals for ATTA GOS objects without valid links.

Former Member
0 Kudos

Dear Richard,

Please find the attached document on how to download the service for objects.

Regards,

Bhanu.

Former Member
0 Kudos

    LS_OBJECT-TYPEID = 'BKPF'.

    LS_OBJECT-CATID = 'BO'.

    APPEND LS_OBJECT TO LT_OBJECTS.

    TRY.
* Read the links for business object.

        CALL METHOD CL_BINARY_RELATION=>READ_LINKS_OF_OBJECTS

          EXPORTING

            IT_OBJECTS           LT_OBJECTS

*    IP_LOGSYS           =

*    IT_ROLE_OPTIONS     =

*    IT_RELATION_OPTIONS =

*    IP_NO_BUFFER        = SPACE

          IMPORTING

            ET_LINKS_A            = LT_LINKS_A

           ET_LINKS_B            = LT_LINKS_B

            .

      CATCH CX_OBL_PARAMETER_ERROR .

      CATCH CX_OBL_INTERNAL_ERROR .

      CATCH CX_OBL_MODEL_ERROR .

    ENDTRY.

    LOOP AT LT_LINKS_A INTO LW_LINKS.

MOVE LW_LINKS-INSTID_B TO DOC_ID.

CALL FUNCTION 'SO_DOCUMENT_READ_API1'

  EXPORTING

    DOCUMENT_ID                      = doc_id

*   FILTER                           = 'X '

* IMPORTING

*   DOCUMENT_DATA                    =

TABLES

   OBJECT_HEADER                    = lt_objectheader

   OBJECT_CONTENT                   = lt_objectcontent

*   OBJECT_PARA                      =

*   OBJECT_PARB                      =

*   ATTACHMENT_LIST                  =

*   RECEIVER_LIST                    =

   CONTENTS_HEX                     = lt_content_hex

EXCEPTIONS

   DOCUMENT_ID_NOT_EXIST            = 1

   OPERATION_NO_AUTHORIZATION       = 2

   X_ERROR                          = 3

   OTHERS                           = 4

          .

*Convert to XString

CALL FUNCTION 'SCMS_BINARY_TO_XSTRING'

    EXPORTING

      input_length       = input_length

*    FIRST_LINE         = 0

*    LAST_LINE          = 0

   IMPORTING

     BUFFER             = FILE_CONTENT

    tables

      binary_tab         = LT_CONTENT_HEX

  EXCEPTIONS

    FAILED             = 1

    OTHERS             = 2

            .

Display the file.

CALL METHOD CL_WD_RUNTIME_SERVICES=>ATTACH_FILE_TO_RESPONSE

    EXPORTING

      I_FILENAME      = L_FILENAME

      I_CONTENT       = FILE_CONTENT

      I_MIME_TYPE     = L_MIMETYPE

      I_IN_NEW_WINDOW = 'X'

      I_INPLACE       = 'X'.

endloop.



Former Member
0 Kudos

You can use tcode oaad to retrieve stored documents via GOS, and if you are configured the GOS to external server for storage then refer to table TOA01 table or if you are just storing the documens in DB vis GOS then refer to table SOFFCONT1.