Info Package ABAP Routine

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 PM

Hi
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

Similar Messages

  • 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

  • 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

  • Data deletion routine in the info package

    Hi All,
    I am writting an data deletion routine in the info package.
    it is working fine...
    but when we are transporting the info package, that routine is not getting transported.
    we have tried sending ths info package through a transport connection.
    but still it is not taking the routine to next system.
    please let me know if any one has a solution for this.
    Thanks,
    Mugdha

    Hi Mughda,
    Collect the infopackage using transport connection, While collecting the infopackage make sure that Routines are also collected in the same request.
    Else most of systems will have authorizations to create infopackages, so try to create one IP and use the routine in IP.
    Hope this helps.
    Rgs,
    I.R.K

  • 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.

  • 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.

  • ABAP routing in info package

    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.

  • How to control data load in Info-Package using ABAP?

    Hello Gurus:
    I am trying to resolve couple of issues. 
    1.  I need to load data DAILY Full Load into a Planning cube.  I have the 0NETDUEDATE   for selection in the
         Info-package.  I am getting data from anothe base A/R cube.  I want to Load Daily ONLY those records
         for which the "0NETDUEDATE" is Greater than "System Date".  I think the logic would be IF 0NETDUEDAT
         .GT. SYS-DATUM, bruing the record. What should be the statement in 'Result' for keeping the record? 
         (I don't know ABAP, so need help here...!)
    2.  Similalry, before loading the data above, I want to delete all the existing records from Planning cube where
         0NETDUEDATE is GT System date (records loaded the previosu day need to be deleted as the amounts may
         have changed).  How can I achieve this selective deletion automatically  in PC??
    Appreciate your feedback very much.
    Thanks... SMaa

    Hi Shruti,
    1) If i understand your requirement correctly you need to load only data which has 0NETDATE greater then sydatum.
    So you can do this in infopackage .Infopackage>Data selection->0NETDATE(field)-->type(colum).here you can selecy ABAP type(6).Now you create ABAP code in this.
    Here in ABAP code you need to specify high and low range ,Also the relation character like GT or BT(between).
    i guess some how ur code will look like this
    $$ begin of global - insert your declaration only below this line  -
    TABLES: ...
    DATA:   ...
    $$ end of global - insert your declaration only before this line   -
        InfoObject      = 0NETDUEDATE
        Fieldname       = NETDUEDATE
        data type       = NUMC
        length          = 0000010
        convexit        = PERI6
    form compute_NETDUEDATE
      tables l_t_range structure rssdlrange
      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.
              l_idx = sy-tabix.
              l_t_range-low = sy-datum.
              l_t_range-option = 'GT'.
              modify l_t_range index l_idx.
              p_subrc = 0.
    $$ end of routine - insert your code only before this line         -
    endform.
    i am not sure about coding but you can surely do it it is like specifying the ranges dynamically(you need to try it out)
    (also as mentioned by others you can do this in traansformation routines)but infopackage routine you can directly write in PROD system.
    2) And regarding the Selective deletion you donu2019t have nay process type in Process chain which does this
    But there is function module u201C rsdri_infoprov_delete " which can be used to develop a program( I guess you must be having a existing ZProgram in ur system already available because this is used commonly.
    Other wise you need to develop a ZProgram for this.
    Thanks and Regards
    Arun

  • Example Code for Routine at Data Target in Info Package.

    Hi,
    Can any one send the example code for writing the routines at Data Target of Info Package for Deleting the Request from Info Cube after Update.
    Thanks in Advance,
    Regards,
    srinivas

    Hi All,
    I want to know some examples for guidance in writing the Abap Routine at Data Target of Info Package for Deleting the Request from Info Cube after Update.
    In the Data Targets of Info Package for Info Cubes we can delete the previous request based on the Conditions, exceptions and also based on the Abap Routine. I just want to know how do we write the Routine.
    This option is adjacent to the Maintain to Data Target in Data Targets of Info Package and will available for Info cube only.
    Thanks in Advance,
    Regards,
    srinivas

  • Info package routine

    If I want to delete a line of data in say an update rule start routine, I can write for example the following:
      DELETE DATA_PACKAGE WHERE <field> NE 'ABC'.
    I am wondering if I can write the same in an info package and if so rather than DATA_PACKAGE what should I be referencing? Thanks

    Hi Nitin,
    Please note that is is not possiable to delete any data in InfoPackage routine, but surely you could ignore the value of a field when it is not equal to ABC or just load data for a field for value ABC. If that field is not present in the selection screen, you could get it into the selection screen by selecting it in RSA6, datasource maintenance.
    No need to write a routine, it is just a simple selection is what you need to give.
    Hope this helps.
    Regards,
    Pankaj

  • Info Package Routine issue.

    Hi I was working on an info package routine. I have to load somw documents based some some criterias. My question is how may values can i append for loading Document No. i have somwhere about 400,000 records. I'll have all those doc no's in an Internal table... Can i append all those and load or is there any limit for doing so.
    Thanks in Advance.

    Hi Siva,
    I would suggest to use range instead of appending the document numbers one by one. Its not best of approach.
    You can maintain a transparent table with different range values if you don't have sequential values. Write a routine in the info-package to restrict the document number to the ranges.
    Hope it helps.
    Thx.
    Soumya

  • Routines for File name at External Data in Info Package level.

    Hi All,
    Can any one give the example codes of how to write the routine for Files at External Data in Info Package level.
    Regards
    srinivas

    Hi Srinivas
    Here iam attaching a sample code in the infopackage level this code is used to select the Current version from TVARV table ..based on the version from variable the data is loaded into the ods..
    data: l_idx like sy-tabix.
              read table l_t_range with key
                   fieldname = 'FISCPER'.
              l_idx = sy-tabix.
    tables tvarv.
    data: v_prever(6)   type c,
          v_fiscper(7)  type n.
      clear tvarv.
      select single low
       from tvarv
       into v_prever
      where name = 'ZBSK_PREVIOUS_RELEASED_VERSION' and
            type = 'P' and
            numb = '0000'.
    concatenate v_prever(4) '0' v_prever+4(2) into v_fiscper.
       concatenate  '0' v_prever+4(2) v_prever(4) into v_fiscper.
            l_t_range-low = v_fiscper .
              modify l_t_range index l_idx.
    Hope the above code helps you..
    let me know in case of any concerns.. and further help needed..
    bye
    Shu Moh..

  • How to set request number of info package using start routine

    Hi All,
    I have a specific requirement in which I need to upload only selective request nos from PSA to DSO.
    Any one can suggest how to set request number of info package using start routine or any other mode so that only selective request should proceed using DTP?
    Thanks
    Sangita

    You'll probably want to do this in a start routine.  It is probably not advisable to hard-code the technical name of the InfoPak.  They seem to remain the same upon transport, unlike DTP technical names which are locally generated.
    I would do a SQL select like this in a start routine, and then filter based on the results of the SQL.  You'll probably want to sort the results by date and time, both descending.  Or do a MAX in the SQL.
    Please let me know if this isn't clear.
    select q~rnr q~logdpid q~tdatum q~tuzeit
    from rsreqdone as q
      inner join rsldpio as p
        on p~logdpid = q~logdpid
    where p~objvers = 'A'
    and p~logdpid like 'ZPAK%'
    and p~source = 'your data source'

  • Run info package from an ABAP program

    Hi all,
    I need to run an info-package based on values entered by user in a selection screen.
    How can I implement these values in the info-package using the abap program?
    I've searched the forum and found FM RSSM_SDL_START_INFOPACKAGE and BAPI_IPAK_START but there is no option to enter the selections, also I have found the option to select var type 6 - abap code in the info-package (tab  data selection) but didn't understand if I can connect it to an external abap program.
    Thanks,
    Hagit

    Along with BAPI_IPAK_START, you need to use the FM "BAPI_IPAK_CHANGE"...
    there you have the table with structure BAPI6109SEL, which is used to pass selections to infopackage at the run time...
    Sequence u can use is BAPI_IPAK_START, then BAPI_IPAK_CHANGE and finally BAPI_IPAK_START as per ur requirements...

  • Execute a package with an abap routine

    Hi experts,
    I need to execute an infopackage througth an abap routine.
    Can anybody tell me what is the code i need to implement it?
    Thanks.

    Hello Olivier,
    We need run the same IP simultaneously with different selections.
    This selections have to be configured with an ABAP routine.
    The ABAP routine is into a standard BADI.
    The BADI is always called when a user runs a task in the consolidation monitor of BCS.
    In the BADI a method returns all the parameters that we need to configure the selection in the package filters.
    I´ve tried run the same IP with different selections and there was no problems.
    "would say you should create one InfoPackage    for each set of selection and you can run all of them together using a process chain or InfoPackage    group"
    It is impossible because we would have more than 1000 selection combinations so we would need the same number of IPs. When a user calls a task in the consolidation monitor, the task depends on the society, version, period, year ...
    I hope this helps to understand better the requirement.
    Regards

Maybe you are looking for

  • What will happen if I restore/update my iPhone 4 while the unverified find my iPhone iCloud account of my cousin is signed in?

    What will happen if I restore/update my iPhone 4 currently on iOS 7.0.4 to the latest version while my cousin's unverified find my iPhone iCloud account is signed in? will it still activate the find my iPhone feature?

  • Where is the restore button in iTunes

    I cant see it anywhere, even when i clock on my iPod nothing is coming up, except a list of everythin thats on it and you cant do anything on that page...help!

  • Plz help! Urgent!

    I want to delete my windows partition, but the Boot Camp Assistant is showing up a dialogue that says that my startup disk is not able to add or delete any partitions. It tells me to go to disk utility and reformat my drive as MAC OS Extended (Journa

  • Master Socket - Modem - Hub/Router cabling

    BT sales (and I tried to get through to their technical support) have unfortunately not been able to answer the question. Due to the layout I will need to lay the data extension cable from master socket to modem up the wall and under the floorboards

  • Oracle Business/Disaster Recovery Test Plan ?

    I've been asked to create a business/disaster recovery plan (Cover our Oracle environment) outlining what to test in the event of a DR/BR situation once the DB has been restored. Does anybody have a word template or any information would assist me in