What is start routine
what is start routine?
Dear Viswnadha,
You have the option of creating a start routine in the transfer rules maintenance screen. This start routine is run for each data package after the data has been written to the PSA and before the transfer rules have been executed.
Please refer to link:
[http://help.sap.com/saphelp_nw04/helpdata/en/b3/0ef3e8396111d5b2e80050da4c74dc/content.htm]
Hope the above can be useful for you.
Best Regards,
Tim
SAP Business One Forums Team
Similar Messages
-
What to write to filter in start-routine.
Hi Experts.
What do I write in the Start-routine (in version 7) to filter out lines where a certain field is empty ( initial).
Thanks !Dear Ingrid,
Please refer to the following help.sap.com link:
http://help.sap.com/saphelp_nw70/helpdata/en/43/c3963dfbde4dede10000000a422035/content.htm
and below is the example from the link:
METHOD start_routine.
*=== Segments ===
FIELD-SYMBOLS:
<SOURCE_FIELDS> TYPE tys_SC_1.
$$ begin of routine - insert your code only below this line -
DELETE SOURCE_PACKAGE where UMHAB = 0 and UMSOL = 0
$$ end of routine - insert your code only before this line -
ENDMETHOD. "start_routine
Hope it help you, assign points if helpful.
Best Regards,
Ankit Agrawal -
What are start and end routines in BI 7.0..
Hi,
Can you please explain and give me a sample code ?
thanksHi,
depending on your data flow you have to use the routines .
Start routines - start routines:
It is used to perform preliminary calculations.if you have any modifications required before the actual transformation is done, then you must write those routines in the start routine of 7.0.
End routines - new:
You can use an end routine to postprocess data after transformation on a package-by-package basis.
Expert routine - update routine :
You can use the expert routine if there are not sufficient functions to perform a transformation. The expert routine should be used as an interim solution until the necessary functions are available in the standard routine. You can use this to program the transformation yourself without using the available rule types. If you have already created transformation rules, the system deletes them once you have created an expert routine.
Also Check the below link for detail info.
Routine in Transformation.
Reg
Pra -
What is the logic behind the start routine
Dear One's,
Kindly take a moment and explain the logic behind this start routine written in update rules of ODS.
PROGRAM UPDATE_ROUTINE.
$$ begin of global - insert your declaration only below this line -
$$ end of global - insert your declaration only before this line -
The follow definition is new in the BW3.x
TYPES:
BEGIN OF DATA_PACKAGE_STRUCTURE.
INCLUDE STRUCTURE /BIC/CST_T07_O006.
TYPES:
RECNO LIKE sy-tabix,
END OF DATA_PACKAGE_STRUCTURE.
DATA:
DATA_PACKAGE TYPE STANDARD TABLE OF DATA_PACKAGE_STRUCTURE
WITH HEADER LINE
WITH NON-UNIQUE DEFAULT KEY INITIAL SIZE 0.
FORM startup
TABLES MONITOR STRUCTURE RSMONITOR "user defined monitoring
MONITOR_RECNO STRUCTURE RSMONITORS " monitoring with record n
DATA_PACKAGE STRUCTURE DATA_PACKAGE
USING RECORD_ALL LIKE SY-TABIX
SOURCE_SYSTEM LIKE RSUPDSIMULH-LOGSYS
CHANGING ABORT LIKE SY-SUBRC. "set ABORT <> 0 to cancel update
$$ begin of routine - insert your code only below this line -
fill the internal tables "MONITOR" and/or "MONITOR_RECNO",
to make monitor entries.
DATA: ITAB_/BIC/AT07_O00600 TYPE SORTED TABLE OF /BIC/AT07_O00600
WITH HEADER LINE
WITH UNIQUE DEFAULT KEY INITIAL SIZE 0,
DATA_PACKAGE_NEW TYPE STANDARD TABLE OF DATA_PACKAGE_STRUCTURE
WITH HEADER LINE
WITH NON-UNIQUE DEFAULT KEY INITIAL SIZE 0.
sort the datapackage based on lead number and lead program definition
SORT DATA_PACKAGE BY /BIC/TLDNR /BIC/TLDPRGFTE.
from the resources ODS read all lead values based on the values those
SELECT * FROM /BIC/AT07_O00600 INTO TABLE
ITAB_/BIC/AT07_O00600
FOR ALL ENTRIES IN DATA_PACKAGE
WHERE /BIC/TLDNR = DATA_PACKAGE-/BIC/TLDNR.
FIELD-SYMBOLS: <LS_DATA_PACKAGE> TYPE DATA_PACKAGE_STRUCTURE.
FIELD-SYMBOLS: <LS_/BIC/AT07_O00600> TYPE /BIC/AT07_O00600.
loop at internal table of ODS to check if there are lead program defin
from the source which mean the values of lead program definition in OD
values of lead program definition in datapackage.
LOOP AT ITAB_/BIC/AT07_O00600 ASSIGNING <LS_/bic/at07_o00600>.
READ TABLE DATA_PACKAGE
TRANSPORTING NO FIELDS
WITH KEY
/BIC/TLDNR = <LS_/bic/at07_o00600>-/BIC/TLDNR
/BIC/TLDPRGFTE = <LS_/bic/at07_o00600>-/BIC/TLDPRGFTE
BINARY SEARCH.
IF SY-SUBRC <> 0.
new lines with zero values are inserted because there are no correspon
DATA_PACKAGE_NEW-/BIC/TLDNR = <LS_/BIC/AT07_O00600>-/BIC/TLDNR.
DATA_PACKAGE_NEW-/BIC/TLDPRGFTE = <LS_/BIC/AT07_O00600>-/BIC/TLDPRGFTE.
DATA_PACKAGE_NEW-/BIC/TLDFTE = 0.
APPEND DATA_PACKAGE_NEW.
ENDIF.
ENDLOOP.
append the new records which are created for the leads in the datapack
APPEND LINES OF DATA_PACKAGE_NEW TO DATA_PACKAGE.
reset the sorting of the datapackage back to its original state
SORT DATA_PACKAGE.
if abort is not equal zero, the update process will be canceled
ABORT = 0.
$$ end of routine - insert your code only before this line -
ENDFORM.
Thanks in advancehi,
it's retrieve data from table /BIC/AT07_O00600
and add to data package, so your records will be more than from source
hope this helps. -
Start Routine in Transformations
Hi,
For my reporting purpose i need to Transfer data from Cube to DSO
I need a start routine for the following requirment when transfering data from Cube to DSO
The Key fields in DSO are Location & Emp_ID and Date fields are ZAP_DTE (DATS)
CUBE-->DSO
While doing the transfer...i need to compare Emp and his ZAP_DTE AND need to transfer only if AP_DTE for that EMP is greater than the exisisting one else ignore the record
As i new to BW please update with the routine
ThanksHi Shambhu
We usually write out code in the section:
$$ begin of routine - insert your code only below this line -
What is the difference between writing the code in
$$ begin of 2nd part global - insert your code only below this line *
and
$$ begin of routine - insert your code only below this line - ?
Kind regards
Erik -
I want to replace all '# ' values showing up in a report with space. For this I plan to write a Start Routine in the Update Rules which should scan all the data coming in into the cube and replace all null or '' with space.
What is the best way to write this routine. It should check all data in all the fields of the data load coming in.
ThanksHi,
The space is shown as # in the BW Reports, to confirm check the value in the cube for this field, so
you need to change that to some other character like X or Y or explain your end users that SAP
designates a space as # and it will be displayed that way in the reports.
Regards,
Raj -
Start Routine on Transformations
Hi Friends
I've Start routine on transfer rules with internal table and it was working fine.
Now I'm trying to define the internal table with occurs 0 but it's throwing error saying occurs not support in new version.
How can we define an internal table in start routine of transformations in BI7?
The code as follows for internal table.
data: begin of it_ord occurs 0,
AUFNR(000012) TYPE C,
ZZARBPL(000008) TYPE C,
WERKS(000004) TYPE C,
end of it_ord.
Regards,
Chandu.Hi
I've defined as follows
types: begin of it_ord ,
AUFNR(000012) TYPE C,
ARBPL(000008) TYPE C,
WERKS(000004) TYPE C,
end of it_ord.
data: temp_tabix like sy-tabix,
is_datapak type tys_SC_1.
data it_ordt type table of it_ord .
It's throwing error saying it_ort is a table with no header line and therefore has no component called aufnr.
If I define with header line then header line not supported.
What could be the problem?
I've changed like you said but it's giving the following error.
E:"IT_WA" is not a table with header line.
Regards,
Chandu.
Edited by: Chandu on Feb 18, 2009 8:44 AM -
Difference between Start Routine and End Routine in Transformations
Hi Friends,
I'm using BI 7.0... here in Transformations step we have two options..that is START ROUTINE... and END ROUTINE... What is the Difference between Start Routine and End Routine in Transformations..
When we go for Start Routine.. and when we go for End Routine..
Plz clarrify... points will be rearded..
thanks
babuHi,
One real time scenario for End Routine.
We have a scenario where in a datasource field is mapped to three infoobjects on the datatarget side. There are 2 key figures which need to get data after these these Infoobjects are filled. The best place for this to happen would be in a End Routine, where in we would loop through the results package and using the values of the infoobjects from the data target ( Cube in this case).
Hope this helps,
HD -
Raising cx_rsrout_abort exception in Start Routine of Transformations
Hello Abap OO Gurus:
This is likely a very simple question but I'm brand new to Abap OO and despite reading and searching, I cannot convert some old abap code used in the start routine of business content in BW to be used in the Transformation start routine in SAP BI.
My Start Routine inside a BI 7.0 transformation rule has a method declared like this:
<b>METHODS
start_routine
IMPORTING
request type rsrequest
datapackid type rsdatapid
EXPORTING
monitor type rstr_ty_t_monitors
CHANGING
SOURCE_PACKAGE type tyt_SC_1
RAISING
cx_rsrout_abort.</b>
The Exception "cx_rsrout_abort" has replaced what used to be a simple ABORT data field. The <u>old code I want to replace was just "abort = 1'.</u>
But now it seems like I have to use TRY... ENDTRY statement to raise Exception "cx_rsrout_abort". I am inside the abap code of the Method "start routine"
METHOD start_routine.
*=== Segments ===
Could some kind soul educate me as to how to raise the Exception "cx_rsrout_abort" inside the Method start routine?
thanks in advance, DavidTx HDev:
we are almost there... I have that PDF but never got thru to the rest of the Appendix B as my project is just too crazy...
When try what Appenix B suggest..
<u>"raise exception type CX_RSROUT_SKIP_RECORD."</u>
I get the following Warning msg which makes sense...
<b>"W:The exception CX_RSROUT_SKIP_RECORD is neither caught nor is it
declared in the RAISING clause of "START_ROUTINE".</b>
The METHOD statement in the start routine never declares another exception other than cx_rsrout_abort as seen below:
METHODS
start_routine
IMPORTING
request type rsrequest
datapackid type rsdatapid
EXPORTING
monitor type rstr_ty_t_monitors
CHANGING
SOURCE_PACKAGE type tyt_SC_1
RAISING
cx_rsrout_abort.
Maybe NW2004s has a bug here... I'm hoping that a SAP Developer reads this posting and can enlighten us all... otherwise I'll have to post a OSS msg
So the mystery is still how to do
"raise exception type CX_RSROUT_ABORT" and make this equal to ABORT = 1
which makes the start routine skip a record
tx again, David -
Declaration in start routine in transformations
Hi guru's
What is the difference between first and second global declaration in the start routine of a transformation?
First: $$ begin of global - insert your declaration only below this line -
Second: $$ begin of 2nd part global - insert your code only below this line *
Kind regards
ErikHi Shambhu
We usually write out code in the section:
$$ begin of routine - insert your code only below this line -
What is the difference between writing the code in
$$ begin of 2nd part global - insert your code only below this line *
and
$$ begin of routine - insert your code only below this line - ?
Kind regards
Erik -
Start Routine to populate the Logical Source System
Hi Friends please help me with the below
1. <b>Requirement</b> : to Populate The system Date , Source System
in BI for Each load request.
<b>
1 Solution:</b> I thought of writing the Start Routine for this but it is giving me error
syntax Error: END METHOD MISSING?????
2. Also I have requirement to populate 0sourcsys source system id, can any body help how to populate that.
Thanks
Poonam Roy
<b>ABAP Code.</b>
I have the End Method. what more to do.
METHOD start_routine.
*=== Segments ===
FIELD-SYMBOLS:
<SOURCE_FIELDS> TYPE tys_SC_1.
DATA:
MONITOR_REC TYPE rstmonitor.
<b>
$$ begin of routine - insert your code only below this line -</b>
... "insert your code here
<b>
FORM STARTROUTINE
USING G_S_MINFO TYPE RSSM_S_MINFO
CHANGING DATAPAK type TRANSTRU
ABORT LIKE SY-SUBRC.
DATA: ZLOAD_DAT LIKE SY-DATUM
ZZSOURSYS TYPE RSLOGSYS
IF G_S_MINFO-DATAPAKID=1
SOURCE_FIELDS-ZLOAD_DAT = SY-DATE.
SOURCE_FIELDS-ZZSOURSYS = G_S_MINFO-LOGSYS.
ENDIF.
ABORT = 0.
ENDFORM.
ENDMETHOD.
ENDCLASS</b>.
*-- 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.Hi,
Check whether the formula is useful here than Routine. Because you can see the Sy-datum , source system( I Guess) fields as avaialable formula elements .
With rgds,
Anil Kumar Sharma .P -
Dear All,
I have activated the infocube 0sd_c03 with grouping "in data flow before" and the infocube is activated with datasources
2LIS_11_VAITM
2LIS_11_VAHDR
2LIS_12_VCITM
2LIS_12_VCHDR
2LIS_13_VDITM
2LIS_13_VDHDR in 3.x where as
TRCS 2LIS_13_VDITM -> CUBE 0SD_C03 in transformation with DTP.
when I activate the transformation I get error as mentioned below:
Start Routine: Syntax error in routine and in the start routine when I check the details of the error is
E:In PERFORM or CALL FUNCTION "ROUTINE_9998", the actual parameter
"SOURCE_PACKAGE" is incompatible with the formal parameter
"DATA_PACKAGE".
If source pakage is replaced by data package the system message is data_package is not available.
What do I do to resolve this issue.
KShi,
There is a structral diffrence between SOURCE_PACKAGE and DATA_PACKAGE
so you need to change tys_SC_1_full
go through the below links for similar problem
Re: 0IC_C03: 2LIS_03_BF Transformation Start Routine Activation error
Re: 2LIS_03_BF transformation problem -
0IC_C03 Error in start routine when activating
Hi gurus!
I have a SAP NetWeaver BI 7.0 patch level 14 installation with business content SAPKIBIIP6 and BASIS patch level 12
When activating infocube 0IC_C03, the transformation have a start routine that throws the following error:
E:In PERFORM or CALL FUNCTION "ROUTINE_9998", the actual parameter "SOURCE_PACKAGE" is incompatible with the formal parameter "DATA_PACKAGE".
The transformation is TRCS 2LIS_03_BF_TR -> CUBE 0IC_C03
What could be the problem?
ThanksProblem solved!!!
Verify if the type tys_SC_1_full have exactly the same fields as the type tys_SC_1; if not, copy the tys_SC_1 fields to tys_SC_1_full.
Regards!! -
Using internal tables in BI 7 Start routines
Hi All
I tried searching for using internal tables in a start routine in BI 7 could not find the right pointers.
This is what I am trying to do is the following:
In a DSO ZSD_O01 I have a sales order and sales order item number and this DSO also contains the Contract number and the contract Item number.
The DSO structure is as follows:
/BIC/AZSD_O0100
DOC_NUMBER
ITEM
CONTRACT
CITEMNUM
I want to read the data in this DSO into a internal table. But the key fields in this DSO is DOC_NUMBER and ITEM so I want to read this data into a internal table only for the first data package into the internal table. Thereafter I want to lookup into the internal table given the doc_number and ITEM to find the CONTRACT and CITEMNUM.
Can any of you kindly show me how to :
- Read data from a DSO into a internal table
- Read the internal table for the first data package
- How do I make the access in the internal table fast when my lookup in the internal table is not on the
DSO key columns but on a different key column
Appreciate your help
Thanks
KarenHi Karen ,
It will be helpful if you tell your requirement as the approach you suggested is not looks convincing .May be their is some easy way and we can suggest you better approach
-how to check for source_package = 1
You need to hard code it .
We decide package size at DTP level so you can declare a global variable .let say you have 50000 size of your package then use global variable as counter and read only when record_count is <= 50000 .
-how to declare the internal table so the values in it exists between different data packages
Declare a global table and select data into it .A global table retain data across the packages .
- The key on which I need to lookup in the internal table is not the key fields as in the DSO
Its ok .Let say you are doing lookup on A B and C field of DSO1 and the values may duplicate in your source .then you just need to read the internal table having data from DSO2 with key field A B C .
Better if you set them as semantic keys at DTP level so that all duplicate entries of A B C will appear in same package .
global Declarations
In your start routine you will have this following code :
TYPES:
tyt_SC_1 TYPE STANDARD TABLE OF tys_SC_1
WITH NON-UNIQUE DEFAULT KEY.
$$ begin of global - insert your declaration only below this line -
... insert your code here
$$ end of global - insert your declaration only before this line -
One question
Why you want to populate values for 1 source package only not for all ?This will be helpful to understand your requirement and may be we can fulfill it in some other manner .
Regards,
Jaya Tiwari -
Performance with select in Start routine
Hi,
I open a request because i have some troubles in a update rules.
In this update rule i have several select function on master data and i takes just 3-4 minutes by packets (which is OK for my daily extraction). But my users needs now a data taht i need to extract from SD invoice ODS. and in this ODS i have 3 000000 lines.
I made the test and it takes too many times.
I try several solutions as :
Select.... into internal table --> too many times
Select ... for all entries .... into internal table...--> Too many times
I tried to create a small ODS with just the key level and data i need for my start routine based on invoice ODS. And i now from 3000000 to 300000 records. but now it takes 15 minutes by packets.
My question is do you have any idea to improve performance ?
What is the max size or number of records for an internal tables ?
Thanks
CyrilReading that much, you might have some memory issue.
"Data objects that are defined either with the data type of an internal table, or directly as an internal table, are always fully defined in respect of their line type, key and access method. However, the number of lines is not fixed. Thus internal tables are dynamic data objects, since they can contain any number of lines of a particular type. The only restriction on the number of lines an internal table may contain are the limits of your system installation. The maximum memory that can be occupied by an internal table (including its internal administration) is 2 gigabytes. A more realistic figure is up to 500 megabytes. An additional restriction for hashed tables is that they may not contain more than 2 million entries. The line types of internal tables can be any ABAP data types - elementary, structured, or internal tables. The individual lines of an internal table are called table lines or table entries. Each component of a structured line is called a column in the internal table."
if you need the link to the above doc....
http://help.sap.com/saphelp_47x200/helpdata/en/fc/eb3660358411d1829f0000e829fbfe/frameset.htm
thanks.
Wond
Maybe you are looking for
-
Load software on multiple devices?
Does my license allow me to load Elements on multiple devices? If so, is there an iPad version?
-
When I am standing near the Apple TV with my iPhone, the iPhone lists a number of nearby WiFi networks, including the one in my home. I have running the Apple TV over ethernet up till now, so unfortunately the unit is out of warranty.
-
HP update HP Officejet 6500A Plus e-All-in-One Printer-E710n multi fails @ 96%Z
HP Officejet 6500A Plus e-All-in-One Printer - E710n Windows Vista HP is trying to update my HP Officejet 6500A Plus e-All-in-One Printer - E710n w/ "HPZSetup.exe & multi fails @ 96% Errors: HP-PhotoSmart All-In-One Series "Error" "wStub" "2229580"
-
How to load and define Java Store Procedures using Consolidator Manager??
Hi, I am trying to create a store procedure with a very easy example and I can not succeed. i am a bit new with OLite and I will appreciate any help from your side. I am quite lost now regarding of using java with OLite and it is becoming quite urgen
-
Hi Frds, When I ran the query its giving the error " Abort Formal Error in formula Zxxxx; FST aggregates , and so on, must be initial Message no:BRAIN461. Recently we faced cutover, after cutover only we are facing issues. Pls suggest if anybody come