Technology Blogs by Members
Explore a vibrant mix of technical expertise, industry insights, and tech buzz in member blogs covering SAP products, technology, and events. Get in the mix!
cancel
Showing results for 
Search instead for 
Did you mean: 
saravanakumar_mac
Participant
0 Kudos

Dear All,

This document for KM content file upload & download procedure.

I have used web dynpro ABAP for frontend screen. Displayed using

Webdynpro adobe interactive form.(Please Refer Next Post for access of this class using WDA)

Using class web service we can upload & download file.

Enjoy with this document.......

Create Web service consumer proxy:

Ask your portal consultant for web service WSDL link to create consumer proxy.

http://999.19.99.999:99900/RepositoryFrameworkWS/Config?wsdl

Now system will generate “ZESS_ABCD_REPOSITORY_FRAMEW”.” This is copy of standard class “CO_KMCWS_REPOSITORY_FRAMEWORK”

We will use this class into our ZCLASS below.

Create Logical port name.

Select  Web Service Configuration

Create Your Logical port name.


Now we can start to create our custom Z class. This we will use in our programs.

Create Class:

  ZCL_KM_HPLOAD

Create two methods:

UPLOAD_DOCUMENT

DOWNLOAD_DOCUMENT

Upload Method Parameter:

IM_DOC_NAME    STRING

IM_MIME_TYPE    STRING

IM_CONTENT        HRTMC_XSTRING

IM_LENGTH          STRING

IM_PERNR            CHAR8

IM_DOC_TYPE      STRING

IM_DOC_FOR      STRING

IM_IMG_NAME    STRING

EX_RETURN        STRING

Download Method Parameter:


FILE_PATH    STRING

DOC_NAME    STRING

MIME_TYPE    STRING

CONTENT      HRTMC_XSTRING

LEGNTH          INT4

RETURN        STRING

Upload Code:

METHOD UPLOAD_DOCUMENT.

DATA: OBJ_KM TYPE REF TO ZESS_ABCD_REPOSITORY_FRAMEW.
DATA: ER TYPE REF TO CX_ROOT.
DATA: E_ML1 TYPE STRING.
DATA: TYPE REF TO CX_ROOT.
DATA: E1 TYPE REF TO CX_ROOT.
DATA: E2 TYPE REF TO CX_ROOT.
DATA: E3 TYPE REF TO CX_ROOT.
DATA: E_ML TYPE STRING.
DATA: LV_STRING TYPE STRING.

*************Call Logical port name
TRY.
CREATE OBJECT OBJ_KM
EXPORTING
LOGICAL_PORT_NAME
= 'LS_ESS_KM'.
CATCH CX_AI_SYSTEM_FAULT INTO ER.
E_ML1
= ER->GET_TEXT( ).
ENDTRY.

*************Create Folder

DATA: INPUT3 TYPE ZESS_HC_KMCREATE_COLLECTION_IN.
DATA: OUTPUT3 TYPE ZESS_HC_KMCREATE_COLLECTION_OU.

INPUT3
-PARENT_COLLECTION_RID = '/documents/Personnel File/Admin Documents'.
INPUT3
-CHILD_NAME = IM_PERNR.
CLEAR: E_ML.
TRY.
CALL METHOD OBJ_KM->CREATE_COLLECTION
EXPORTING
INPUT  = INPUT3
IMPORTING
OUTPUT = OUTPUT3.
CATCH CX_AI_SYSTEM_FAULT INTO E.
E_ML
= E->GET_TEXT( ).
CATCH ZESS_HC_KMCX_CREATE_COLLECTION INTO E1.
E_ML
= E1->GET_TEXT( ).
CATCH ZESS_HC_KMCX_REPOSITORY_FRAM71 INTO E2.
E_ML
= E2->GET_TEXT( ).
CATCH CX_AI_APPLICATION_FAULT INTO E3.
E_ML
= E3->GET_TEXT( ).
ENDTRY.
*
CLEAR: LV_STRING.
CONCATENATE '/documents/Personnel File/Admin Documents/'IM_PERNR INTO LV_STRING.

INPUT3
-PARENT_COLLECTION_RID = LV_STRING.
INPUT3
-CHILD_NAME = IM_DOC_TYPE.

TRY.
CALL METHOD OBJ_KM->CREATE_COLLECTION
EXPORTING
INPUT  = INPUT3
IMPORTING
OUTPUT = OUTPUT3.
CATCH CX_AI_SYSTEM_FAULT INTO E.
E_ML
= E->GET_TEXT( ).
CATCH ZESS_HC_KMCX_CREATE_COLLECTION INTO E1.
E_ML
= E1->GET_TEXT( ).
CATCH ZESS_HC_KMCX_REPOSITORY_FRAM71 INTO E2.
E_ML
= E2->GET_TEXT( ).
CATCH CX_AI_APPLICATION_FAULT INTO E3.
E_ML
= E3->GET_TEXT( ).
ENDTRY.

CLEAR: LV_STRING.
CONCATENATE '/documents/Personnel File/Admin Documents/'  IM_PERNR '/' IM_DOC_TYPE INTO LV_STRING.

INPUT3
-PARENT_COLLECTION_RID = LV_STRING.
INPUT3
-CHILD_NAME = IM_DOC_FOR.
CLEAR: E_ML.
TRY.
CALL METHOD OBJ_KM->CREATE_COLLECTION
EXPORTING
INPUT  = INPUT3
IMPORTING
OUTPUT = OUTPUT3.
CATCH CX_AI_SYSTEM_FAULT INTO E.
E_ML
= E->GET_TEXT( ).
CATCH ZESS_HC_KMCX_CREATE_COLLECTION INTO E1.
E_ML
= E1->GET_TEXT( ).
CATCH ZESS_HC_KMCX_REPOSITORY_FRAM71 INTO E2.
E_ML
= E2->GET_TEXT( ).
CATCH CX_AI_APPLICATION_FAULT INTO E3.
E_ML
= E3->GET_TEXT( ).
ENDTRY.


**********Create New Document

DATA: INPUT1 TYPE ZESS_HC_KMCREATE_DOCUMENT_IN.
DATA: OUTPUT1 TYPE ZESS_HC_KMCREATE_DOCUMENT_OUT.
CLEAR: LV_STRING.
CONCATENATE '/documents/Personnel File/Admin Documents/'  IM_PERNR '/' IM_DOC_TYPE '/' IM_DOC_FOR INTO LV_STRING.

INPUT1
-PARENT_COLLECTION_RID    = LV_STRING.
INPUT1
-CHILD_NAME              = IM_IMG_NAME.
INPUT1
-CONTENT-CONTENT          = IM_CONTENT.
INPUT1
-CONTENT-METADATA-LENGTH  = IM_LENGTH.
INPUT1
-CONTENT-METADATA-TYPE    = IM_MIME_TYPE.
CLEAR: E_ML.
TRY.
CALL METHOD OBJ_KM->CREATE_DOCUMENT
EXPORTING
INPUT  = INPUT1
IMPORTING
OUTPUT = OUTPUT1.
CATCH CX_AI_SYSTEM_FAULT INTO E.
E_ML
= E->GET_TEXT( ).
CATCH ZESS_HC_KMCX_CREATE_DOCUMENT_F INTO E1.
E_ML
= E1->GET_TEXT( ).
CATCH ZESS_HC_KMCX_REPOSITORY_FRAM70 INTO E2.
E_ML
= E2->GET_TEXT( ).
CATCH CX_AI_APPLICATION_FAULT INTO E3.
E_ML
= E3->GET_TEXT( ).

ENDTRY.

********Existing Image Can over write

IF E_ML IS NOT INITIAL.

DATA: INPUT4  TYPE ZESS_HC_KMSET_CONTENT_IN.
DATA: OUTPUT4 TYPE ZESS_HC_KMSET_CONTENT_OUT.
CLEAR: LV_STRING, E_ML.
CONCATENATE '/documents/ Personnel File/Admin Documents ‘/'IM_PERNR '/' IM_DOC_TYPE '/' IM_DOC_FOR '/' IM_IMG_NAME INTO LV_STRING.

INPUT4
-RID = LV_STRING.
INPUT4
-CONTENT-CONTENT = IM_CONTENT.
INPUT4
-CONTENT-METADATA-LENGTH  = IM_LENGTH.
INPUT4
-CONTENT-METADATA-TYPE    = IM_MIME_TYPE.

TRY.
CALL METHOD OBJ_KM->SET_CONTENT
EXPORTING
INPUT  = INPUT4
IMPORTING
OUTPUT = OUTPUT4.
CATCH CX_AI_SYSTEM_FAULT INTO E.
E_ML
= E->GET_TEXT( ).
CATCH ZESS_HC_KMCX_SET_CONTENT_FAULT INTO E1.
E_ML
= E1->GET_TEXT( ).
CATCH ZESS_HC_KMCX_REPOSITORY_FRAM14 INTO E2.
E_ML
= E2->GET_TEXT( ).
CATCH CX_AI_APPLICATION_FAULT INTO E3.
E_ML
= E3->GET_TEXT( ).
ENDTRY.

ENDIF.

IF E_ML IS NOT INITIAL.
EX_RETURN
= E_ML.
ELSE.
EX_RETURN
= 'Successfully Uploaded'.
ENDIF.

ENDMETHOD.

Download Code:

METHOD DOWNLOAD_DOCUMENT.

DATA: OBJ_KM TYPE REF TO ZESS_ABCD_REPOSITORY_FRAMEW.
DATA: ER TYPE REF TO CX_ROOT.
DATA: E_ML1 TYPE STRING.


TRY.
CREATE OBJECT OBJ_KM
EXPORTING
LOGICAL_PORT_NAME
= 'LS_ESS_KM'.
CATCH CX_AI_SYSTEM_FAULT INTO ER.
E_ML1
= ER->GET_TEXT( ).
ENDTRY.


DATA: E    TYPE REF TO CX_ROOT.
DATA: E1    TYPE REF TO CX_ROOT.
DATA: E2    TYPE REF TO CX_ROOT.
DATA: E3    TYPE REF TO CX_ROOT.
DATA: E_ML  TYPE STRING.


DATA: INPUT TYPE ZESS_HC_KMGET_CONTENT_IN,
OUPUT
TYPE ZESS_HC_KMGET_CONTENT_OUT.

INPUT-RID = FILE_PATH.

TRY.
CALL METHOD OBJ_KM->GET_CONTENT
EXPORTING
INPUT  = INPUT
IMPORTING
OUTPUT = OUPUT.
CATCH CX_AI_SYSTEM_FAULT  INTO E.
E_ML
= E->GET_TEXT( ).
CATCH ZESS_HC_KMCX_GET_CONTENT_FAULT  INTO E1.
E_ML
= E1->GET_TEXT( ).
CATCH ZESS_HC_KMCX_REPOSITORY_FRAM51  INTO E2.
E_ML
= E2->GET_TEXT( ).
CATCH CX_AI_APPLICATION_FAULT  INTO E3.
E_ML
= E3->GET_TEXT( ).
ENDTRY.
IF E_ML IS INITIAL.
MIME_TYPE
= OUPUT-RESPONSE-METADATA-TYPE.
CONTENT 
= OUPUT-RESPONSE-CONTENT.
LEGNTH   
= OUPUT-RESPONSE-METADATA-LENGTH.
*DOC_NAME =
*FILE_PATH =

ELSE.
RETURN = 'Image is not gound'.
ENDIF.

ENDMETHOD.

********Next document for This class can use in WDA screen

SAP Portal KM content Image upload/download using web dynpro ABAP

1 Comment
Labels in this area