SAP Function Modules

SO_DOCUMENT_INSERT SAP Function module - SAPoffice: Insert document with binary content







SO_DOCUMENT_INSERT is a standard SAP function module available within R/3 SAP systems depending on your version and release level. Below is the pattern details for this FM showing its interface including any import and export parameters, exceptions etc as well as any documentation contributions (Comments) specific to the object.

See here to view full function module documentation and code listing, simply by entering the name SO_DOCUMENT_INSERT into the relevant SAP transaction such as SE37 or SE80.

Associated Function Group: SOA1
Released Date: Not Released
Processing type: Remote-Enabled
remote enabled module settings


Pattern for FM SO_DOCUMENT_INSERT - SO DOCUMENT INSERT





CALL FUNCTION 'SO_DOCUMENT_INSERT' "SAPoffice: Insert document with binary content
  EXPORTING
    parent_id =                 " soodk
    object_hd_change =          " sood1
*   object_fl_change =          " sofm1
    document_type =             " sood-objtp
*   owner =                     " soud-usrnam
  IMPORTING
    document_id =               " soodk
    object_hd_display =         " sood2
    object_fl_display =         " sofm2
* TABLES
*   objcont_text =              " soli
*   objcont_bin =               " solix
*   objhead =                   " soli
*   objpara =                   " selc
*   objparb =                   " soop1
  EXCEPTIONS
    ACTIVE_USER_NOT_EXIST = 1   "
    DL_NAME_EXIST = 2           "
    FOLDER_NOT_EXIST = 3        "
    FOLDER_NO_AUTHORIZATION = 4  "
    OBJECT_TYPE_NOT_EXIST = 5   "
    OPERATION_NO_AUTHORIZATION = 6  "
    OWNER_NOT_EXIST = 7         "
    PARAMETER_ERROR = 8         "
    SUBSTITUTE_NOT_ACTIVE = 9   "
    SUBSTITUTE_NOT_DEFINED = 10  "
    X_ERROR = 11                "
    .  "  SO_DOCUMENT_INSERT

ABAP code example for Function Module SO_DOCUMENT_INSERT





The ABAP code below is a full code listing to execute function module SO_DOCUMENT_INSERT including all data declarations. The code uses the latest in-line data DECLARATION SYNTAX but I have included an ABAP code snippet at the end to show how declarations would look using the original method of declaring data variables up front. This will allow you to compare and fully understand the new inline method. Please note some of the newer syntax such as the @DATA is not available until a later 4.70 service pack (SP8).

DATA:
ld_document_id  TYPE SOODK ,
ld_object_hd_display  TYPE SOOD2 ,
ld_object_fl_display  TYPE SOFM2 ,
it_objcont_text  TYPE STANDARD TABLE OF SOLI,"TABLES PARAM
wa_objcont_text  LIKE LINE OF it_objcont_text ,
it_objcont_bin  TYPE STANDARD TABLE OF SOLIX,"TABLES PARAM
wa_objcont_bin  LIKE LINE OF it_objcont_bin ,
it_objhead  TYPE STANDARD TABLE OF SOLI,"TABLES PARAM
wa_objhead  LIKE LINE OF it_objhead ,
it_objpara  TYPE STANDARD TABLE OF SELC,"TABLES PARAM
wa_objpara  LIKE LINE OF it_objpara ,
it_objparb  TYPE STANDARD TABLE OF SOOP1,"TABLES PARAM
wa_objparb  LIKE LINE OF it_objparb .

DATA(ld_parent_id) = 'Check type of data required'.
DATA(ld_object_hd_change) = 'Check type of data required'.
DATA(ld_object_fl_change) = 'Check type of data required'.

SELECT single OBJTP
FROM SOOD
INTO @DATA(ld_document_type).


SELECT single USRNAM
FROM SOUD
INTO @DATA(ld_owner).


"populate fields of struture and append to itab
append wa_objcont_text to it_objcont_text.

"populate fields of struture and append to itab
append wa_objcont_bin to it_objcont_bin.

"populate fields of struture and append to itab
append wa_objhead to it_objhead.

"populate fields of struture and append to itab
append wa_objpara to it_objpara.

"populate fields of struture and append to itab
append wa_objparb to it_objparb. . CALL FUNCTION 'SO_DOCUMENT_INSERT' EXPORTING parent_id = ld_parent_id object_hd_change = ld_object_hd_change * object_fl_change = ld_object_fl_change document_type = ld_document_type * owner = ld_owner IMPORTING document_id = ld_document_id object_hd_display = ld_object_hd_display object_fl_display = ld_object_fl_display * TABLES * objcont_text = it_objcont_text * objcont_bin = it_objcont_bin * objhead = it_objhead * objpara = it_objpara * objparb = it_objparb EXCEPTIONS ACTIVE_USER_NOT_EXIST = 1 DL_NAME_EXIST = 2 FOLDER_NOT_EXIST = 3 FOLDER_NO_AUTHORIZATION = 4 OBJECT_TYPE_NOT_EXIST = 5 OPERATION_NO_AUTHORIZATION = 6 OWNER_NOT_EXIST = 7 PARAMETER_ERROR = 8 SUBSTITUTE_NOT_ACTIVE = 9 SUBSTITUTE_NOT_DEFINED = 10 X_ERROR = 11 . " SO_DOCUMENT_INSERT
IF SY-SUBRC EQ 0. "All OK ELSEIF SY-SUBRC EQ 1. "Exception "Add code for exception here ELSEIF SY-SUBRC EQ 2. "Exception "Add code for exception here ELSEIF SY-SUBRC EQ 3. "Exception "Add code for exception here ELSEIF SY-SUBRC EQ 4. "Exception "Add code for exception here ELSEIF SY-SUBRC EQ 5. "Exception "Add code for exception here ELSEIF SY-SUBRC EQ 6. "Exception "Add code for exception here ELSEIF SY-SUBRC EQ 7. "Exception "Add code for exception here ELSEIF SY-SUBRC EQ 8. "Exception "Add code for exception here ELSEIF SY-SUBRC EQ 9. "Exception "Add code for exception here ELSEIF SY-SUBRC EQ 10. "Exception "Add code for exception here ELSEIF SY-SUBRC EQ 11. "Exception "Add code for exception here ENDIF.







ABAP code to compare 7.40 inline data declaration with original syntax

The below ABAP code uses the older none in-line data declarations. This allows you to see the coding differences/benefits of the later inline syntax. It may also be useful if you are using an older version of SAP as some of the newer syntax above, such as the @DATA is not available until 4.70 EHP 8.

DATA:
ld_document_id  TYPE SOODK ,
ld_parent_id  TYPE SOODK ,
it_objcont_text  TYPE STANDARD TABLE OF SOLI ,
wa_objcont_text  LIKE LINE OF it_objcont_text,
ld_object_hd_display  TYPE SOOD2 ,
ld_object_hd_change  TYPE SOOD1 ,
it_objcont_bin  TYPE STANDARD TABLE OF SOLIX ,
wa_objcont_bin  LIKE LINE OF it_objcont_bin,
ld_object_fl_display  TYPE SOFM2 ,
ld_object_fl_change  TYPE SOFM1 ,
it_objhead  TYPE STANDARD TABLE OF SOLI ,
wa_objhead  LIKE LINE OF it_objhead,
it_objpara  TYPE STANDARD TABLE OF SELC ,
wa_objpara  LIKE LINE OF it_objpara,
ld_document_type  TYPE SOOD-OBJTP ,
it_objparb  TYPE STANDARD TABLE OF SOOP1 ,
wa_objparb  LIKE LINE OF it_objparb,
ld_owner  TYPE SOUD-USRNAM .

ld_parent_id = 'Check type of data required'.

"populate fields of struture and append to itab
append wa_objcont_text to it_objcont_text.
ld_object_hd_change = 'Check type of data required'.

"populate fields of struture and append to itab
append wa_objcont_bin to it_objcont_bin.
ld_object_fl_change = 'Check type of data required'.

"populate fields of struture and append to itab
append wa_objhead to it_objhead.

"populate fields of struture and append to itab
append wa_objpara to it_objpara.

SELECT single OBJTP
FROM SOOD
INTO ld_document_type.


"populate fields of struture and append to itab
append wa_objparb to it_objparb.

SELECT single USRNAM
FROM SOUD
INTO ld_owner.

Contribute (Add Comments)

Please help keep this info upto date and use the comments section below to add useful hints, tips and information specific to this SAP function. This will then be available for you and other users to easily find by simply searching on the object name SO_DOCUMENT_INSERT or its description.