on 10-26-2017 7:37 PM
Hi,
I have posted the below content as a blog in BW/4 hana community, it says still blog is under review :).. can some SAP authority can validate and approve if it qualifies?
Introduction:
As we know currently there is limitation on GRC data sources and other data sources which enable and support for ODP replication, hence there are lot of SAP standard extractors whose entries does not exist in table ROOSATTR without a possibility to release the data source using Se38 program RODPS_OS_EXPOSE.
Objective:
Objective of this blog is to explain how to maintain the entries in the se11 table ‘roosattr’ using custom program to enable the ODP data source which can be replicated in BW/4 HANA studio or BW hana studio. This tutorial can be watched at https://youtu.be/yo9XajerkgQ
Steps followed to achieve the requirement
Step1: Write belowcustom ABAP code in SE38 abap editor
REPORT ZLAKSHMIKANTH_ODP.
TYPES: gt_char30(30) TYPE c.
DATA: g_s_roosattr TYPE roosattr,
g_object TYPE roosattr-OLTPSOURCE,
g_value TYPE roosattr-EXPOSE_EXTERNAL,
g_subrc TYPE i.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 1(60) t_header.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN BEGIN OF LINE.
PARAMETERS: object TYPE gt_char30.
SELECTION-SCREEN COMMENT 33(40) t_object FOR FIELD object.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN BEGIN OF LINE.
PARAMETERS: value TYPE gt_char30 LOWER CASE.
SELECTION-SCREEN COMMENT 33(40) t_value FOR FIELD value.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN BEGIN OF LINE.
PARAMETERS: insert RADIOBUTTON GROUP rad1 DEFAULT 'X'.
SELECTION-SCREEN COMMENT 5(40) t_insert FOR FIELD insert.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN BEGIN OF LINE.
PARAMETERS: update RADIOBUTTON GROUP rad1.
SELECTION-SCREEN COMMENT 5(40) t_update FOR FIELD update.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN BEGIN OF LINE.
PARAMETERS: delete RADIOBUTTON GROUP rad1.
SELECTION-SCREEN COMMENT 5(40) t_delete FOR FIELD delete.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN BEGIN OF LINE.
PARAMETERS: ul_case AS CHECKBOX DEFAULT ' '.
SELECTION-SCREEN COMMENT 5(40) t_ulcase FOR FIELD ul_case.
"upper-lowe case
SELECTION-SCREEN END OF LINE.
*-----------------------------------------------------------------------
INITIALIZATION.
t_header = 'Maintain table roosattr:'(010).
t_object = 'OBJECT'.
t_value = 'VALUE'.
t_insert = 'INSERT'.
t_update = 'UPDATE'.
t_delete = 'DELETE'.
t_ulcase = 'CASE-SENSITIVE'.
*-----------------------------------------------------------------------
AT SELECTION-SCREEN.
IF ul_case is initial.
TRANSLATE value to UPPER CASE.
ENDIF.
*-----------------------------------------------------------------------
START-OF-SELECTION.
* OBJECT is the key column -> cannot be initial
CHECK NOT object IS INITIAL.
* authority check S_TABU_DIS
CALL FUNCTION 'VIEW_AUTHORITY_CHECK'
EXPORTING
view_name = 'roosattr'
NO_WARNING_FOR_CLIENTINDEP = 'X'
EXCEPTIONS
OTHERS = 1.
**** sy-subrc <> 0 raise no authority
IF sy-subrc NE 0. "no authority
message e417(MO) raising no_permission.
ENDIF.
* use variables to avoid misunderstandings
g_object = object.
g_value = value.
* get current setting
SELECT SINGLE OLTPSOURCE EXPOSE_EXTERNAL
INTO g_s_roosattr
FROM roosattr
WHERE OLTPSOURCE = g_object.
WRITE: / 'OLD SETTING:'.
WRITE: / 'OBJECT =', g_s_roosattr-OLTPSOURCE, 'VALUE =',
g_s_roosattr-EXPOSE_EXTERNAL.
* set new values
g_s_roosattr-OLTPSOURCE = g_object.
g_s_roosattr-EXPOSE_EXTERNAL = g_value.
* INSERT
IF insert = 'X'.
INSERT INTO roosattr VALUES g_s_roosattr.
g_subrc = sy-subrc.
IF g_subrc <> 0.
WRITE: / 'INSERT failed because of existing record.'(020).
ENDIF.
* UPDATE
ELSEIF update = 'X'.
UPDATE roosattr
SET EXPOSE_EXTERNAL = g_value
WHERE OLTPSOURCE = g_object.
g_subrc = sy-subrc.
IF g_subrc <> 0.
WRITE: / 'UPDATE failed because there is no record with'(030).
WRITE: / 'OBJECT =', g_object.
ENDIF.
* DELETE
ELSEIF delete = 'X'.
DELETE FROM roosattr
WHERE OLTPSOURCE = g_object.
g_subrc = sy-subrc.
IF g_subrc <> 0.
WRITE: / 'DELETE failed because there is no record with'(040).
WRITE: / 'OBJECT =', g_object.
ENDIF.
ENDIF.
* in case of success:
IF g_subrc = 0.
* --- COMMIT
CALL FUNCTION 'DB_COMMIT'.
* --- reset table buffer
PERFORM reset_buffer.
* --- new settings:
IF delete = ' '.
WRITE: / 'NEW SETTING:'.
WRITE: / 'OBJECT =', g_object, 'VALUE =', g_value.
ENDIF.
ENDIF.
*&--------------------------------------------------------------------*
*& Form reset_buffer
*&--------------------------------------------------------------------*
* text
*---------------------------------------------------------------------*
FORM reset_buffer.
CALL FUNCTION 'SBUF_GENERIC_RESET'
EXPORTING
sync = 'X'
tabname = 'roosattr'
EXCEPTIONS
c_func_error = 1
OTHERS = 2.
IF sy-subrc <> 0.
WRITE: /
'Fehler beim Invalidieren des Puffers für Tabelle roosattr.'(050).
WRITE: /
'Setzen Sie den Puffer manuell zurück!'(060).
ENDIF.
ENDFORM. "reset_buffer
Step2: execute the program and provide the data source wish to convert to ODP and provide with X and execute
Step3: Once executed, please check the table ROOSATTR , entry is registered as shown below.
Step4: Login to hana studio, go to BW/4 hana orBW hana modelling, right click the appropriate node and replicate---select the data source from list and finish.
Hi - I am pinging / paging jcantrell who is the blog platform owner to see if she can assist in getting your blog released. Also moshe.naveh2
Tammy
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi @Lakshmikanth,
I've reviewed your post & added some tips for getting it publish-ready as a blog post. Thanks for sharing your knowledge with the community!
Jamie
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
77 | |
9 | |
8 | |
6 | |
6 | |
6 | |
6 | |
6 | |
5 | |
4 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.