cancel
Showing results for 
Search instead for 
Did you mean: 

Need to check Routine In BI 7.0 ?

Former Member
0 Kudos

Hi,

working with BI 7.0

I am using 0FIGL_O10 Business Content Data store Object &

0FIGL_C10 Business content Cube. Data source is 0FI_GL_10.

Data loaded successfull to Data store Object.

<b>Transfered Records are 60264 and Added Records are 47034.</b>

I feel may be some routines are available , that's why the Transfered & added records are differ.

How to check those Routinees ?

Can you please Help me to find the solution.

Thanks

Prasanna

Accepted Solutions (1)

Accepted Solutions (1)

Former Member
0 Kudos

Hello Prasanna

There may be

1. Start routine which is eliminating some records

2. There may be record with same key but on different package but when added to cube they are aggregated

3. There may be some invalid record and you might have select valid record update

but this option is very rare

Second option is most generally happens

Thanks

Tripple k

Former Member
0 Kudos

Hi,

Thanks for the Responce, Can you please go for in detail.

If so How to check the Start routine ? and

How to check the record with same key but on different package but when added to cube they are aggregated ?

Thanks

prasanna

Former Member
0 Kudos

Hi,

I just check in Monitor of the DSO load. its look like this.

<b>Data Package 1 ( 50000 Data Records )

-


>Extraction DataSource 0FI_GL_10 : 50000 Data Records

-


>Filter Out New Records with the Same Key : 50000 -> 50000 Data Records

-


>RSDS 0FI_GL_10 GPDCLNT300 -> ODSO 0FIGL_O10 : 50000 -> 37904 Data Records

-


>Transformation Start

-


>Rules

-


>Transformation End</b>

I feel In Transformation These records are affected.

How to check the Rules of thes ?

can any one Help me ..

Thanks

prasanna

Former Member
0 Kudos

Hi

Go to transformation/update rule of that ODS and check the start routine there will be some logic or restriction n the data package...simply display the start routine u will see it there

Thanks

Tripple k

Former Member
0 Kudos

Hi Tripple K,

I check in Start Routine, following code is available, please have a look.

PROGRAM trans_routine.

----


  • CLASS routine IMPLEMENTATION

----


*

----


CLASS lcl_transform IMPLEMENTATION.

----


  • Method start_routine

----


  • Calculation of source package via start routine

----


  • <-> source package

----


METHOD start_routine.

*=== Segments ===

FIELD-SYMBOLS:

<SOURCE_FIELDS> TYPE tys_SC_1.

DATA:

MONITOR_REC TYPE rstmonitor.

*$*$ begin of routine - insert your code only below this line *-*

... "insert your code here

*-- fill table "MONITOR" with values of structure "MONITOR_REC"

*- to make monitor entries

... "to cancel the update process

  • raise exception type CX_RSROUT_ABORT.

$$ end of routine - insert your code only before this line -

ENDMETHOD. "start_routine

----


  • Method inverse_start_routine

----


*

  • This subroutine needs to be implemented only for direct access

  • (for better performance) and for the Report/Report Interface

  • (drill through).

  • The inverse routine should transform a projection and

  • a selection for the target to a projection and a selection

  • for the source, respectively.

  • If the implementation remains empty all fields are filled and

  • all values are selected.

*

----


*

----


METHOD inverse_start_routine.

$$ begin of inverse routine - insert your code only below this line-

... "insert your code here

$$ end of inverse routine - insert your code only before this line -

ENDMETHOD. "inverse_start_routine

ENDCLASS. "routine IMPLEMENTATION

can you please advaise me what i need to do here!

Thanks

Prasanna

Former Member
0 Kudos

Hello prasanna

It seems that there is nothing in your start routine code... i didn't find anything in this....may be your data is aggregated in cube while loading...to ensure this you can do one thing...check data in PSA ( Take qty or amount) and check data in cube for that request and ifthey are correct then everything is fine

Thanks

Tripple k

Former Member
0 Kudos

Hi Tripple K,

For the Data source 0FI_GL_10.

When we schedule Info package Data will be available in PSA.

In PSA 60264 Data Records are available.(Total Records are available)

when we Execute DTP, Data will be available in Data Targets

ie: Data store Object ( Transfered Records are 60264 , Added Records are 47034)

Thanks

Prasanna

Former Member
0 Kudos

Hi Tripple K,

When I check in PSA for

Total Credit postings, Total Debit postings.

Total Credit postings are matching in Data Store Object but

Total Debit postings are not matching.

Thanks

Prasanna

Former Member
0 Kudos

1.Check your endroutine too..if you are deleting any data in end routine.

2.Check your DTP too...if there is any filter on your selection criteria ...

3.Check your extractor on R/3 side with RSA3 provided it is full upload with the same selection as that of DTP..

Former Member
0 Kudos

Hi Manga Paidikondala,

Below is the End routine, Please check.

and In DTP no Filters are available Extraction Mode is Full.

PROGRAM trans_routine.

----


  • CLASS routine DEFINITION

----


*

----


CLASS lcl_transform DEFINITION.

PUBLIC SECTION.

TYPES:

BEGIN OF tys_TG_1,

  • Field: SID SID.

SID TYPE RSSID,

  • Field: DATAPAKID Data packet number.

DATAPAKID TYPE RSDATAPID,

  • Field: RECORD Data record number.

RECORD TYPE RSARECORD,

  • InfoObject: 0VERSION Version.

VERSION TYPE /BI0/OIVERSION,

  • InfoObject: 0COMP_CODE Company code.

COMP_CODE TYPE /BI0/OICOMP_CODE,

  • InfoObject: 0FISCPER Fiscal year / period.

FISCPER TYPE /BI0/OIFISCPER,

  • InfoObject: 0GL_ACCOUNT G/L Account.

GL_ACCOUNT TYPE /BI0/OIGL_ACCOUNT,

  • InfoObject: 0FUNC_AREA Functional area.

FUNC_AREA TYPE /BI0/OIFUNC_AREA,

  • InfoObject: 0COSTCENTER Cost Center.

COSTCENTER TYPE /BI0/OICOSTCENTER,

  • InfoObject: 0VTYPE Value Type for Reporting.

VTYPE TYPE /BI0/OIVTYPE,

  • InfoObject: 0PROFIT_CTR Profit Center.

PROFIT_CTR TYPE /BI0/OIPROFIT_CTR,

  • InfoObject: 0SEGMENT Segment for Segmental Reporting.

SEGMENT TYPE /BI0/OISEGMENT,

  • InfoObject: 0FISCVARNT Fiscal year variant.

FISCVARNT TYPE /BI0/OIFISCVARNT,

  • InfoObject: 0CURTYPE Currency Type.

CURTYPE TYPE /BI0/OICURTYPE,

  • InfoObject: 0VALUATION Valuation view.

VALUATION TYPE /BI0/OIVALUATION,

  • InfoObject: 0CURKEY_TC Currency Key for Transaction Currency.

CURKEY_TC TYPE /BI0/OICURKEY_TC,

  • InfoObject: 0UNIT Unit of Measure.

UNIT TYPE /BI0/OIUNIT,

  • InfoObject: 0RECORDMODE BW Delta Process: Update Mode.

RECORDMODE TYPE RODMUPDMOD,

  • InfoObject: 0DEBIT Total Debit Postings.

DEBIT TYPE /BI0/OIDEBIT,

  • InfoObject: 0BALANCE Cumulative Balance.

BALANCE TYPE /BI0/OIBALANCE,

  • InfoObject: 0CREDIT Total credit postings.

CREDIT TYPE /BI0/OICREDIT,

  • InfoObject: 0CO_AREA Controlling area.

CO_AREA TYPE /BI0/OICO_AREA,

  • InfoObject: 0CHRT_ACCTS Chart of accounts.

CHRT_ACCTS TYPE /BI0/OICHRT_ACCTS,

  • InfoObject: 0CURRENCY Currency Key.

CURRENCY TYPE /BI0/OICURRENCY,

END OF tys_TG_1.

TYPES:

tyt_TG_1 TYPE STANDARD TABLE OF tys_TG_1

WITH NON-UNIQUE DEFAULT KEY.

DATA:

p_check_master_data_exist

TYPE RSODSOCHECKONLY READ-ONLY,

*- Instance for getting request runtime attributs;

  • Available information: Refer to methods of

  • interface 'if_rsbk_request_admintab_view'

p_r_request

TYPE REF TO if_rsbk_request_admintab_view READ-ONLY.

PRIVATE SECTION.

TYPE-POOLS: rsd, rstr.

$$ begin of global - insert your declaration only below this line -

... "insert your code here

$$ end of global - insert your declaration only before this line -

METHODS

end_routine

IMPORTING

request type rsrequest

datapackid type rsdatapid

EXPORTING

monitor type rstr_ty_t_monitors

CHANGING

RESULT_PACKAGE type tyt_TG_1

RAISING

cx_rsrout_abort.

METHODS

inverse_end_routine

IMPORTING

i_th_fields_outbound TYPE rstran_t_field_inv

i_r_selset_outbound TYPE REF TO cl_rsmds_set

i_is_main_selection TYPE rs_bool

i_r_selset_outbound_complete TYPE REF TO cl_rsmds_set

i_r_universe_inbound TYPE REF TO cl_rsmds_universe

CHANGING

c_th_fields_inbound TYPE rstran_t_field_inv

c_r_selset_inbound TYPE REF TO cl_rsmds_set

c_exact TYPE rs_bool.

ENDCLASS. "routine DEFINITION

$$ begin of 2nd part global - insert your code only below this line *

... "insert your code here

$$ end of 2nd part global - insert your code only before this line *

----


  • CLASS routine IMPLEMENTATION

----


*

----


CLASS lcl_transform IMPLEMENTATION.

----


  • Method end_routine

----


  • Calculation of result package via end routine

  • Note: All not overwritten field values within the routine

  • are transferred from the corresponding source fields. This

  • means, all fields not supplied by the transformation source

  • are send with initial values to the transformation target.

----


  • <-> result package

----


METHOD end_routine.

*=== Segments ===

FIELD-SYMBOLS:

<RESULT_FIELDS> TYPE tys_TG_1.

DATA:

MONITOR_REC TYPE rstmonitor.

*$*$ begin of routine - insert your code only below this line *-*

... "insert your code here

*-- fill table "MONITOR" with values of structure "MONITOR_REC"

*- to make monitor entries

... "to cancel the update process

  • raise exception type CX_RSROUT_ABORT.

$$ end of routine - insert your code only before this line -

ENDMETHOD. "end_routine

----


  • Method inverse_end_routine

----


*

  • This subroutine needs to be implemented only for direct access

  • (for better performance) and for the Report/Report Interface

  • (drill through).

  • The inverse routine should transform a projection and

  • a selection for the target to a projection and a selection

  • for the source, respectively.

  • If the implementation remains empty all fields are filled and

  • all values are selected.

*

----


*

----


METHOD inverse_end_routine.

$$ begin of inverse routine - insert your code only below this line-

... "insert your code here

$$ end of inverse routine - insert your code only before this line -

ENDMETHOD. "inverse_end_routine

ENDCLASS. "routine IMPLEMENTATION

Thanks

Prasanna

Former Member
0 Kudos

It looks like you have no code in your endroutine.

Did you check the number of records in RSA3 in R3 is it same as the records you see in transferred records on BI side..though you..

If it same then you are good to go...

Former Member
0 Kudos

Hi Manga,

i will Check and Update to you tomorrow.

thanks

Prasanna

Former Member
0 Kudos

Hi Manga,

Records check in R/3 RSA3 for the 0FI_GL_10 data source is 1,15,668

Records available in PSA is 1,14,444

Upto PSA level I don't have any problems, I check Data in PSA .its fine.

The Problem when Data Transfer PSA to Info Provider ie: Data store Object.

---

I just check in Biw 3.5 senario too

here also same problem

in PSA data is fine, But in ODS some Records are missing.

Please check below is the Monitor -- Details

Processing (data packet): Everything OK

-


>Data Package 1 ( 27098 Records ) : Everything OK

<b>----


>Update PSA ( 27098 Records posted ) : No error</b>

-


>Data save in PSA started

-


>27098 records written in PSA 0FI_GL_10_GF

<b>----


>Transfer rules ( 27098 -> 27098 Records ) : No errors</b>

-


>Transaction data received. Processing being started.

-


>Transfer 27098 data records in communication structure

<b>----


>Update rules ( 27098 -> 14586 Records ) : No errors</b>

-


>DataStore objects to be updated: 1 DataStore object(s)

-


>Updating DataStore object 0FIGL_O10

-


>Start of update-rule processing for InfoProvider 0FIGL_O10

-


>End of update-rule processing for InfoProvider 0FIGL_O10

<b>----


>Update ( 14586 new / 0 changed ) : No errors</b>

-


>Successfully inserted data records for data package 000001 : 14586

<b>----


>Processing end : No errors</b>

-


>Processing 2 finished

-


>Processing 1 finished

Like for All Data Packet - Update Rules

-


>Data Package 2 ( 22746 Records ) : Everything OK

<b>----


>Update rules ( 22746 -> 21964 Records ) : No errors</b>

-


>Data Package 3 ( 26486 Records ) : Everything OK

<b>----


>Update rules ( 26486 -> 26214 Records ) : No errors</b>

-


>Data Package 4 ( 27200 Records ) : Everything OK

<b>----


>Update rules ( 27200 -> 22372 Records ) : No errors</b>

-


>Data Package 5 ( 10914 Records ) : Everything OK

<b>----


>Update rules ( 10914 -> 9588 Records ) : No errors</b>

I check in Update rules there is no routines are available, where i need to concentrate for the missing Records ?

Please Help me .

Thanks

Prasanna

Answers (0)