ABAP Routine in selection of Info package in 3x
Hello Experts
We need to load distinct PO data in 3x server.
I have added this distinct po values in range table of info package abap routine.
However its not loading for range table values more than two selections/pos.
If I try to append more than 2 values,only last one is uploaded.
However after load, in monitor tab-header , selection paramenters I can see all PO values in selection.
Some how it works only for two inputs (rows) in range table of ABAP routine in infopackage.
Anybody has faced such issue? any help is appreciated!
Edited by: Kanchan Angalwar on Jan 30, 2010 9:59 AM
Hi,
Please post your ABAP code here
Similar Messages
-
Data selection in info package using ABAP routine.
Hi,
when we are scheduling the info package(Infp package name is like XYZ),we want to load past 6 months data from the current date(INFO OBJECT(0CREATEDON) BETWEEN (Sy-Datum - 6 months TO Sy-Datum),in the selection tab in schedule i want to write the abap routine (type 6).please can any one have this type of code please sedn to me asap.
this is very urgent.delivery is tomorrow.hi Lekha,
try following code.
seems you post the same question twice, one posting is sufficient. and please don't forget to reward helpful answers.
data: l_idx like sy-tabix.
read table l_t_range with key
iobjnm = '0CREATEDON'.
l_idx = sy-tabix.
DELETE l_t_range
WHERE iobjnm = '0CREATEDON'.
L_t_RANGE-SIGN = 'I'.
L_t_RANGE-OPTION = 'EQ'.
if not work, try
L_t_RANGE-OPTION = 'BT'.
BT = between
last 6 month
L_t_RANGE-LOW = sy-datum - 180.
current date
L_t_RANGE-HIGH = sy-datum.
append l_t_range.
modify l_t_range index l_idx.
p_subrc = 0.
$$ end of routine - insert your code only before this line -
endform. -
Data Selection in Info Package
Hi Gurus:
How to exclude say doc type 'ER' in a Info package...Where can I mention the <> operator in I.pKG..
Thanks & Regardshi MK K,
or try with infopackage routine, there is button to choose type 'abap routine' and try following code
DELETE l_t_range
WHERE fieldname = '[doc type]'
AND LOW = 'ER'.
hope this helps.
sample code
routine as selection in infopackage -
Hi,
Can any one help me in selecting the data through info package where
Key figure1<>0 <b>AND</b> key figure <> 0.
I.e I have the extractor which is pulling 50 millions of data and updating only 1 million.The reason I have a code in the start routine which says if Key figure1 = 0 AND keyfigure 2 =0 then delete the data. Instead of pulling 50 million and deleting the data at start routine .
I am trying to implement the same logic in info package by which I can select only 1 million through OlAP variable and ABAP routine.
Regards
SudheerHi,
is the extractor based on a standard BC extractor or on a generic datasource ? If it's based on a generic datasource then you can probably adn these selection in the view it's based on.
regards,
Raymond Baggen
Uphantis bv -
Use ABAP Routine in Selection Tab of Infopackage
I am trying to use the ABAP routine in the InfoPackage SELECTION Tab to "EXCLUDE" a value. For example, I want to load all the Material types, except ZUN1. But, when I write in the ABAP, l_t_range-sign = 'E' instead of 'I' or l_t_range-option = 'NE' instead of 'E', I get an error saying these values are not permitted.
Is there any way to exclude any value from Selection in the InfoPackage?
Regards,
Milind VadHi dear and welcome on board!
You have two options:
include everything you want in your IP
load everything and exclude what you don't want in the start routine in transfer rules
No other ways...
Hope it helps!
Bye,
Roberto
...and please don't forget to reward the answers...it's THE way to say thanks here ! -
HI Experts,
I need to create a variable in Info Package for field Fiscalyear/Period, so that we can pull the data for current quarter and for future 3 quarters.
We can do this by OLAP variable and by ABAP Routine in Info Package.
If we go with option ABAP Routine (Type - 6) in Info Package can you please provide me the sample code (for field Fiscalyear/Period to tirgger for current quarter and for future 3 quarters.)
Millions of thanks in Advance
Warm Regards,
ReddiI'm suggesting an adjustment to that, because what has been presented here will get you the current fiscal period and subsequent 11 months, assuming that the fiscal period is the same as the calendar month.
To get the current and 3 subsequent quarters as requested by xys redd, I'd modify this to something like the following. I've also given a bit of code to determine the current fiscal period if you have a fiscal year variant that does not line up with calendar dates.
DATA: l_per LIKE t009b-poper, "Period
l_year LIKE t009b-bdatj, "Year
l_fisc TYPE /BI0/OIFISCPER,
l_fisc1 TYPE /BI0/OIFISCPER.
* Determine the fiscal period. Use this if the fiscal
* calendar difers from the month in SY-DATUM
* CALL FUNCTION 'DATE_TO_PERIOD_CONVERT'
* EXPORTING
* i_date = SY-DATUM
* i_periv = '<YOUR FISCAL YEAR VARIANT HERE>'
* IMPORTING
* e_buper = l_per
* e_gjahr = l_year
* EXCEPTIONS
* input_false = 1
* t009_notfound = 2
* t009b_notfound = 3
* OTHERS = 4.
* Take the easy way out if the fiscal calendar is simple.
l_per = sy-datum+4(2).
l_year = sy-datum+0(4).
* Move back to the beginning of the quarter (assuming 3-month quarters)
l_per = ( ( ( l_per - 1 ) DIV 3 ) * 3 ) + 1 .
CONCATENATE l_year l_per into l_fisc.
* Figure out the ending period.
CASE l_per.
WHEN '001'.
l_per = '012'.
l_year = l_year.
WHEN others.
l_per = l_per - 1.
l_year = l_year + 1.
ENDCASE.
CONCATENATE l_year l_per INTO l_fisc1.
DATA: l_idx LIKE sy-tabix.
READ TABLE l_t_range
WITH KEY fieldname = 'FISCPER'.
l_idx = sy-tabix.
l_t_range-low = l_fisc.
l_t_range-high = l_fisc1.
l_t_range-sign = 'I'.
l_t_range-option = 'BT'.
MODIFY l_t_range INDEX l_idx.
p_subrc = 0. -
Data selection Fiscal year/period in info package
Hi Experts,
I loaded the data from application server to my data target and load completed with lot of records, but as per my requirment i need to load Fiscal year/period 001/2010 to 012/2010. I just giving selection in info package like 001/2010 to 012/2010 and i excute load it sowes no records, make sure in application server we have lot of records for this period.
CAn any one tell me how can i give format in infopackage.
Thanks in advance
DavidHi,
Select range in correct format. Instead of giving manually, You can select from system. This can be wrong format of selection.
Thanks,
SAC -
Hi loading last 2 months data using abap routine
we are planning to write a routine in infopackage level,
using the option 6-ABAP routine, to select the last 2 month data ,
we have the time characteristics 0CALMONTH, At present we managing the load by manually changing the selection for last 2 month every time ,
It would be a great help if anybody can show a sample code to select last 2 month data,
Thanks,Hi,
data: l_idx like sy-tabix.
DATA: lv_calmonth LIKE /BI0/SCALMONTH-CALMONTH.
DATA: lv_day TYPE DATS.
"previous month
lv_day = SY-DATUM.
lv_day+6(2) = '01'.
lv_day = lv_day - 1.
lv_calmonth = lv_day(6).
READ TABLE l_t_range with key fieldname = 'CALMONTH'.
l_idx = sy-tabix.
MOVE lv_calmonth TO l_t_range-low.
MODIFY l_t_range INDEX l_idx.
"previous month - 1
lv_day+6(2) = '01'.
lv_day = lv_day - 1.
lv_calmonth = lv_day(6).
MOVE lv_calmonth TO l_t_range-low.
APPEND l_t_range.
p_subrc = 0.
let me know if this works.... not sure about the last append.
Olivier. -
Hai all
what is the us of delta update in info package
I had intially loaded data from R/3 to psa using
(INFO PACKAGE->UPDATE-->Initilize delta process)
Then I had created to more records in r/3 side .
this time I scheduled using DELTA UPDATE I am getting 0 records
then what is the use of delta update
How can I get only delta records with out use of selection condition in DATA SELECTION of INFO PACKAGE
thanks
chaithanyaHi,
You must specify "1" (day) in the lower limit of the delta maintenance.
I could not post my previous reply so here a new try :
Hi Chaithanya,
Let me explain how the generic delta mechanism with "date"-field works on the R/3 side:
When doing a delta extraction, the current date is stored in table ROOSGENDLT or ROOSGENDLM (anyway not so important).
This date will serve as a "from" date for the next delta extraction, though excluding the current value.
This in order to prevent duplicate records to be extracted during a second delta run on the same day.
Without extra settings, it will thus not be possible to extract two different delta's on date the same day.
Solution :
1. If you do not care about duplicate data (e.g. only field assignments with overwrite functionality in the transformation) goto RSO2 in change mode for your extractor and go into the generic delta maintenance screen. In the settings, enter "1" as safety interval lower limit. Like this, the delta processing mechanism will always subtract 1 day from the day stored as 'low-value'.
In your example this means that the initialisation will transfer 4 records, the delta will transfer 6 (although only 2 were added).
2. Use timestamps to determine delta (timestamp should be updated on savetime of record)
I hope this helps.
regards,
Olav -
Hi
For FIGL_4 there is both open items and closed items. i want to filter only Open Items Accounting doc no's records for Customers,Vendors,GL account at info package level.
There are 3 ODS's in BW side for Open items Customers,Vendors,GL accounts. i want to filter open items based on these 3 ODS's Active data table.But i am getting error when i execute the request in Info Package.
*Error Message "For sel. field 'BELNR ', no selection with SIGN = ' '; OPTION ' ' allowed RSM1 607 *
Below is the Info package Routine code
program conversion_routine.
Type pools used by conversion program
type-pools: rsarc, rsarr, rssm.
tables: rssdlrange.
Global code used by conversion rules
$$ begin of global - insert your declaration only below this line -
TABLES: ...
TABLES: /BIC/AZOCFFIGL00,/BIC/AZOCFBSID00,/BIC/AZOCFBSIS00
,/BIC/AZOCFBSIK00.
DATA: ...
TYPES : BEGIN OF TY_ZOCFBSID,
/BIC/ZMCFADCNO LIKE /BIC/AZOCFBSID00-/BIC/ZMCFADCNO,
END OF TY_ZOCFBSID.
TYPES : BEGIN OF TY_ZOCFBSIS,
/BIC/ZMCFADCNO LIKE /BIC/AZOCFBSIS00-/BIC/ZMCFADCNO,
END OF TY_ZOCFBSIS.
TYPES : BEGIN OF TY_ZOCFBSIK,
/BIC/ZMCFADCNO LIKE /BIC/AZOCFBSIK00-/BIC/ZMCFADCNO,
END OF TY_ZOCFBSIK.
DATA : TB_ZOCFBSIS TYPE TABLE OF TY_ZOCFBSIS WITH HEADER LINE,
WA_ZOCFBSIS TYPE TY_ZOCFBSIS.
DATA : TB_ZOCFBSID TYPE TABLE OF TY_ZOCFBSID WITH HEADER LINE,
WA_ZOCFBSID TYPE TY_ZOCFBSID.
DATA : TB_ZOCFBSIK TYPE TABLE OF TY_ZOCFBSIK WITH HEADER LINE,
WA_ZOCFBSIK TYPE TY_ZOCFBSIK,
FLAG TYPE I.
$$ end of global - insert your declaration only before this line -
InfoObject = ZMCFADCNO
Fieldname = BELNR
data type = CHAR
length = 000010
convexit = ALPHA
form compute_BELNR
tables l_t_range structure rssdlrange
using p_infopackage type rslogdpid
p_fieldname type rsfnm
changing p_subrc like sy-subrc.
Insert source code to current selection field
$$ begin of routine - insert your code only below this line -
data: l_idx like sy-tabix.
read table l_t_range with key
fieldname = 'BELNR'.
l_idx = sy-tabix.
SELECT
/BIC/ZMCFADCNO
FROM /BIC/AZOCFBSID00
INTO TABLE TB_ZOCFBSID.
SELECT
/BIC/ZMCFADCNO
FROM /BIC/AZOCFBSIK00
INTO TABLE TB_ZOCFBSIK.
SELECT
/BIC/ZMCFADCNO
FROM /BIC/AZOCFBSIS00
INTO TABLE TB_ZOCFBSIS.
LOOP AT TB_ZOCFBSID INTO WA_ZOCFBSID.
l_t_range-sign = 'I'.
l_t_range-option = 'EQ'.
l_t_range-low = WA_ZOCFBSID-/BIC/ZMCFADCNO.
Append l_t_range.
CLEAR l_t_range.
ENDLOOP.
LOOP AT TB_ZOCFBSIK INTO WA_ZOCFBSIK.
l_t_range-sign = 'I'.
l_t_range-option = 'EQ'.
l_t_range-low = WA_ZOCFBSIK-/BIC/ZMCFADCNO.
Append l_t_range.
CLEAR l_t_range.
ENDLOOP.
LOOP AT TB_ZOCFBSIS INTO WA_ZOCFBSIK.
l_t_range-sign = 'I'.
l_t_range-option = 'EQ'.
l_t_range-low = WA_ZOCFBSIS-/BIC/ZMCFADCNO.
Append l_t_range.
CLEAR l_t_range.
ENDLOOP.
modify l_t_range index l_idx.
p_subrc = 0.
$$ end of routine - insert your code only before this line -
Edited by: AtulMohan Mishra on Dec 27, 2010 1:11 PMHi
Now i am facing an error during data extraction from Source system
error message in BW system "Error occurred in the data selection " Data Package 1 : arrived in BW ; Processing : 2nd processing step not yet finished
when i checked in SM37 (R3 system) i found the job has been cancelled and Log of this job says
"Asynchronous sending of InfoIDOCs 2 in task 0001 (0 parallel tasks) DATASOURCE = 0FI_GL_4
ABAP/4 processor: SAPSQL_WHERE_CANT_SCAN
Job cancelled "
it seems to me the Problem in Routine at Info Package level.
My Requirement is to fetch only those Accounting Doc. No. RECORDS from 0FI_GL_4 data source which are present in Active data table of BSID,BSIK,BSIS ODS's.
So i want to put logic at Info Package routine .
1) fetch all Accounting Doc. No. from Active data table of BSID,BSIK,BSIS Ods's and Match those Accounting Doc. No.'s with the 0FI_GL_4 data source Accounting Doc. No's.if a Accounting Doc. No. match with 0FI_GL_4 data source Accounting Doc no then that corresponding record from 0FI_GL_4 will go to the ODS
Regards
Atul -
Selection routine in info package
Hi gurus,
I need to load last month's data in to BW if I am executing the IP in this month.
that is if Iam executing in Feb 2009 then it should load Jan 2009,
and if Iam executing on JAn 2009 then it should pick data for Dec 2008,
For this logic I had written like,
data: TEMP_DATE TYPE DATE,
TEMP_MONTH TYPE CHAR(6).
TEMP_DATE = SY-DATUM.
TEMP_MONTH = sydatum+2(6).
L_T_RANGE-IOBJNM = 0CALMONTH.
L_T_RANGE-SIGN = 'I'.
L_T_RANGE-OPTION = 'EQ'.
L_T_RANGE-LOW = TEMP_MONTH - 1.
L_T_RANGE-HIGH = TEMP_MONTH.
APPEND L_T_RANGE.
Is this OK or I need to change,
Thanks,
PavanHi Pavan,
This is an example How to ... Write Infopackage selection Routine
1.Create an Infopackage
2. Go to selections tab and choose Type: 6 u2013 ABAP Routine.You can see following available options(F4 Help).
3. Give disruption, and hit enter, now you will move to following screen.
4. Write Code between begin of Routine and End of Routine.
5. See below sample code to select date range from Previous 6 days to Current date.
6. L_T_Range table is of Type structure RSSDLRANGE.
a. RSSDLRANGE contains SIGN, OPTION, LOW, HIGH
We need to populate these fields to pass range dynamically.
Sample Code:
***$$ begin of routine - insert your code only below this line -
Data: l_idx like sy-tabix.
Data: date_low like sy-datum.
Date_low = sy-datum u2013 6.u201D(To get 6 days back).
read table l_t_range with key
fieldname = 'CRDAT'.
l_idx = sy-tabix.
Pass Range values to L_T_Range Table.
Move date_low to L_T_Range -Low.
Move sy-datum to L_T_Range -High.
L_T_Range -Sign = u2018Iu2019. *****(Here: I u2013 Include, E u2013 Exclude)
L_T_Range -Option = u2018BTu2019.****( Here: BT u2013 Between )
modify l_t_range index l_idx.
p_subrc = 0.
Regards
Sudheer -
Info package ABAP Routine to populate date from and To filed
Hello Experts,
I have requirement to populate the From and To dates with the: T-1 to T (Current Date u2013 1 to Current Run Date aka Sy-Datum) at info package level.I have written a code for this but see that From filed is not getting populated but TO filed is filled with current date.Can someone please tell me wats wrongwith my code?It is a delta info pacakage.
data: l_idx like sy-tabix.
read table l_t_range with key
fieldname = 'CPUDT'.
l_idx = sy-tabix.
l_t_range-sign = 'I'.
l_t_range-option = 'BT'.
l_t_range-low = sy-datum - 1.
l_t_range-High = sy-datum.
modify l_t_range index l_idx.
p_subrc = 0.
Thanks,Was able to tackle this using the following code.
data: l_idx like sy-tabix.
data: V_date type sy-datum.
v_date = sy-datum - 1.
read table l_t_range with key
fieldname = 'CPUDT'.
l_idx = sy-tabix.
l_t_range-sign = 'I'.
l_t_range-option = 'BT'.
l_t_range-low = v_date.
l_t_range-High = sy-datum.
modify l_t_range index l_idx.
p_subrc = 0.
Thanks,
I am closing this thread -
******Creation of a loading selection for cube in info package level
Hi,
when we are scheduling the info package(Infp package name is like XYZ),we want to load past 6 months data from the current date(INFO OBJECT(0CREATEDON) BETWEEN (Sy-Datum - 6 months TO Sy-Datum),in the selection tab in schedule i want to write the abap routine (type 6).please can any one have this type of code please sedn to me asap.
this is very urgent.delivery is tomorrow.
Regards
lekhahi Lekha,
try
data: l_idx like sy-tabix,
l_month(6) type c,
l_dtlast6month like sy-datum.
read table l_t_range with key
iobjnm = '0CREATEDON'.
l_idx = sy-tabix.
DELETE l_t_range
WHERE iobjnm = '0CREATEDON'.
L_t_RANGE-SIGN = 'I'.
L_t_RANGE-OPTION = 'EQ'.
if not work, try
L_t_RANGE-OPTION = 'BT'.
BT = between
current month
concatenate sy-datum3(2) sy-datum0(4) into l_month.
L_t_RANGE-HIGH = l_month.
last 6 month
clear l_month.
l_dtlast6month = sy-datum - 180.
concatenate l_dtlast6month4(2) l_dtlast6month0(4) into l_month.
L_t_RANGE-LOW = l_month.
append l_t_range.
modify l_t_range index l_idx.
p_subrc = 0.
$$ end of routine - insert your code only before this line -
endform.
Re: routine as selection in infopackage
Re: routine as a selection in infopackage 2. Paolo Siniscalco and A.H.P
Re: abap routine -
Info package Routine - How to write
Hi ,
Can any body give me the step step by process on how to write Info package routine. Actually my requirement is to load the current month Data automatically through infopackge . I can write the ABAP code , but i am told to write in Infopackage level.
Thanks in advance..Hi,
In our case we had a requirement to load the data for the transactions occuring in the last 15 days only, so we have write the routine on the last modified date feild in the infopackage.so as to select only records modified or created in the last 15 days..
attached is the sample code....
data: l_idx like sy-tabix.
read table l_t_range with key
fieldname = 'LAST_MODIFIED_DA'.
l_idx = sy-tabix.
data : w_cdate type d .
l_idx = sy-tabix.
w_cdate = sy-datum.
w_cdate = w_cdate - 15 .
L_t_RANGE-LOW = w_cdate .
L_t_RANGE-HIGH = sy-datum .
L_t_RANGE-SIGN = 'I'.
L_t_RANGE-OPTION = 'BT'.
append l_t_range.
modify l_t_range index l_idx.
p_subrc = 0.
Hope it helps...
Regards,
Umesh. -
Hi All,
I have a requirement where about 1000 document numbers are to be used in the info package. I can wite an abap routine at the info package. Since there are many documents numbers, can I create an info object and load the numbers in it and use a simple select on the info object and compare it with the document no inside the abap routine. Though I have the idea I have not done anything like this before. Does anyone know how I can use l_t_range internal table with many individual document numbers?
Example code will be appreciated.
Thanks,
Alex.Hi Alex,
I used the following code to upload from a TXT file to the infopackage selection criteria.
Note ": This does not work in Background as GUI UPLOAD does not work in background, so you will not be able to schedule it in a processchain.
data: l_idx like sy-tabix.
read table l_t_range with key
fieldname = 'MATERIAL'.
l_idx = sy-tabix.
modify l_t_range index l_idx.
p_subrc = 0.
DATA s_line(18) TYPE N.
DATA t_line LIKE STANDARD TABLE OF s_line.
CALL FUNCTION 'GUI_UPLOAD'
EXPORTING
filename = 'C:\input2.txt'
filetype = 'ASC'
HAS_FIELD_SEPARATOR = ' '
HEADER_LENGTH = 0
read_by_line = 'X'
DAT_MODE = ' '
CODEPAGE = ' '
IGNORE_CERR = ABAP_TRUE
REPLACEMENT = '#'
CHECK_BOM = ' '
IMPORTING
FILELENGTH =
HEADER =
TABLES
data_tab = t_line
EXCEPTIONS
file_open_error = 1
file_read_error = 2
no_batch = 3
gui_refuse_filetransfer = 4
invalid_type = 5
no_authority = 6
unknown_error = 7
bad_data_format = 8
header_not_allowed = 9
separator_not_allowed = 10
header_too_long = 11
unknown_dp_error = 12
access_denied = 13
dp_out_of_memory = 14
disk_full = 15
dp_timeout = 16
OTHERS = 17
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
l_t_range-sign = 'I'.
l_t_range-option = 'EQ'.
LOOP AT t_line INTO s_line.
l_t_range-low = s_line.
IF sy-tabix = 1.
MODIFY l_t_range INDEX l_idx.
ELSE.
APPEND l_t_range.
ENDIF.
ENDLOOP.
If you already have the document numbers, I guess it is easier to load it from a text file instead of creating an Infoobj.
You might need to change the declaration to suit your requirement.
The following piece to be changed as required
DATA s_line(18) TYPE N.
DATA t_line LIKE STANDARD TABLE OF s_line.
Cheers,
Praveen.
Maybe you are looking for
-
Camera Raw 4.5 Error and 64-Bit crash
When I choose edit in photoshop or merge to HDR in photoshop Lightroom erros with: "Photoshop should be using Camera Raw 4.5 update using....." I have Photoshop 10.0.1 and it is running Camera Raw 4.5 Also I when I choose 64 bit as the lightroom run
-
Adding Source code in include RPCBURZ0 for HR Payroll
I have created a customer function Function through PE04.Now I want to add source code in RPCBURZ0.How will I do as its a standard program.Is Access Key needed?Is it safe? Please reply Edited by: Bireshwar Das on May 4, 2008 6:29 PM
-
Creating Library DC in CE 7.10
Hi All, How to create a J2EE Library DC in CE 7.1 similar to the J2EE Server Component - Library in 7.0 Regards S.V.Satish Kumar
-
Mozilla's SeaMonkey v2.0.14 web browser won't download Flash installers.
Hi! I cannot seem to download any Flash installer files from http://get.adobe.com/flashplayer/ if I am using the default user agent in Mozilla's SeaMonkey v2.0.14 web browser. If I change it to Firefox v3.6.8, then it will work. I never had this prob
-
IPhoto 6 stops responding when importing from R717
I have a new MacBook Pro and migrated all my photos from iPhoto 6 on my old machine. When I plug in my HP R717 camera, which I have always used, iPhoto doesn't import the photos, but stops responding. I've looked in Preferences but I cannot find anyt