Ranges used in a perform

Hello All,
I am working on a FM to extract data into BW. Can I pass ranges through a PERFORM statement. If yes, do I have to declare these ranges in the form statement (USING).
Please provide me some examples...
I used these the ranges directly but I am getting an syntax error: The IN operator with l_r_kunnr is followed neither by an internal table nor by a value list.
Please help.
Thanks.
Regards,
KP

Ranges are internal table, pass those as internal table.
Look at this How to extract data from RR cluster n B2 cluster for data warehousing., in this sample of a function module generic extractor the parameter transmitted by BW extractor is mapped to some ranges before opening a cursor on database.
Regards

Similar Messages

  • Filling range using..... bdcdata

    Hi ,
    I have a requuirement that , need to call a standard report in a new session when i click on first level output.Am using ' FM ABAP4_CALL_TRANSACTION' STARTING NEW TASK to create anew session by  filling bdcdata
    but problem is...i wanted to submit a range to report.
    Can any one let me know how to submit a range using BDCDATA...
    Thanks in advance..
    Regards,
    Anand Lokineni.

    Hi,
    I believe by ranges you mean data to select options of a selection screen ?
    If yes, I just recorded one standard transaction tx.MB5S and created a function module for the recording.
    Here is the snippet of the function module:
    FUNCTION Z_MB5S_CALL.
    " this is the part which populated the select option of the selection screen.
    perform bdc_dynpro      using 'SAPLALDB' '3000'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '=ACPT'.
    " The value is passed by first setting the cursor on the field and then setting the value.
    "1. Set the cursor.
    perform bdc_field       using 'BDC_CURSOR'
                                  'RSCSEL-SLOW_I(01)'.
    "2. Set the value
    perform bdc_field       using 'RSCSEL-SLOW_I(01)' 
                                  SLOW_I_01_002.
    " Same for the others.
    perform bdc_field       using 'RSCSEL-SLOW_I(02)'
                                  SLOW_I_02_003.
    perform bdc_field       using 'RSCSEL-SLOW_I(03)'
                                  SLOW_I_03_004.
    perform bdc_field       using 'RSCSEL-SLOW_I(04)'
                                  SLOW_I_04_005.
    perform bdc_field       using 'RSCSEL-SLOW_I(05)'
                                  SLOW_I_05_006.
    perform bdc_field       using 'RSCSEL-SLOW_I(06)'
                                  SLOW_I_06_007.
    perform bdc_field       using 'RSCSEL-SLOW_I(07)'
                                  SLOW_I_07_008.
    perform bdc_field       using 'RSCSEL-SLOW_I(08)'
                                  SLOW_I_08_009.
    perform bdc_field       using 'RSCSEL-SLOW_I(09)'
                                  SLOW_I_09_010.
    perform bdc_dynpro      using 'RM07MSAL' '1000'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'LIFNR-LOW'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '=ONLI'.
    perform bdc_field       using 'EKORG-LOW'
                                  LOW_011.
    perform bdc_field       using 'FINAL'
                                  FINAL_012.
    perform bdc_dynpro      using 'SAPMSSY0' '0120'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '=&F03'.
    perform bdc_dynpro      using 'RM07MSAL' '1000'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '/EE'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'LIFNR-LOW'.
    perform bdc_transaction tables messtab
    using                         'MB5S'
                                  CTU
                                  MODE
                                  UPDATE.
    if sy-subrc <> 0.
      subrc = sy-subrc.
      exit.
    endif.
    perform close_group using     CTU.
    ENDFUNCTION.
    This is a custom function module, so you can tweak this function's tables parameter to receive the list of values for the range and loop at this list and populate the range/select options as shown above.
    Hope this solves the issue.
    regards,
    Advait

  • What are the main tables using in vendor performance report.

    what are the main tables using in vendor performance report.
    how many select statements are in ABAP reports.

    Refer the links -
    vendor performance report !!!
    vendor performance report
    vendor performance report
    I need standard vendor performance report
    Regards,
    Amit
    Reward all helpful replies.

  • I have an iPad 2 and iPhone 4 and for them I use I cloud I have also 1 pc windows and at work place I use windows pc ; until now my files are stored on an external disk drive could' I use iCloud to perform the backup of my external disk drive ? Thanks

    I have an iPad 2 and iPhone 4 and for them I use I cloud I have also 1 pc windows and at work place I use windows pc ; until now my files are stored on an external disk drive could' I use iCloud to perform the backup of my external disk drive ? Thanks
    Loredano

    These are the options you have.
    Budget $1299.
    http://www.apple.com/macbookair/
    http://www.apple.com/macbookpro/
    Best.

  • Partition by range using greater than or in between statment?

    Can you partition by range using greater than or in between statment? If so, can someone please post the syntax?

    ji**** wrote:
    Can you partition by range using greater than or in between statment? If so, can someone please post the syntax?http://download.oracle.com/docs/cd/B10500_01/server.920/a96524/c12parti.htm
    CREATE TABLE sales_range
    (salesman_id  NUMBER(5),
    salesman_name VARCHAR2(30),
    sales_amount  NUMBER(10),
    sales_date    DATE)
    PARTITION BY RANGE(sales_date)
    PARTITION sales_jan2000 VALUES LESS THAN(TO_DATE('02/01/2000','DD/MM/YYYY')),
    PARTITION sales_feb2000 VALUES LESS THAN(TO_DATE('03/01/2000','DD/MM/YYYY')),
    PARTITION sales_mar2000 VALUES LESS THAN(TO_DATE('04/01/2000','DD/MM/YYYY')),
    PARTITION sales_apr2000 VALUES LESS THAN(TO_DATE('05/01/2000','DD/MM/YYYY'))
    );

  • How to count the days between Date Range using OO ABAP?

    hi experts,
            i want to count the days between Date Range using OO ABAP for that  which class and method  can i use?.
    Thanks,
    Mahesh.

    Not sure I understand the requirement for it to be OO, but you could always write your own (i.e. use this):
    REPORT zz_date_diff.
    CLASS date_diff DEFINITION.
      PUBLIC SECTION.
        METHODS diff IMPORTING     i_date_fm TYPE d
                                   i_date_to TYPE d
                     EXPORTING     e_days    TYPE i.
    ENDCLASS."
    CLASS date_diff IMPLEMENTATION.
      METHOD diff.
        e_days = i_date_to - i_date_fm.
      ENDMETHOD."
    ENDCLASS."
    DATA: g_ref TYPE REF TO date_diff,
          g_days  TYPE i,
          g_date_fm  TYPE d VALUE '20080101',
          g_date_to  TYPE d VALUE '20090101'.
    START-OF-SELECTION.
      CREATE OBJECT g_ref.
      CALL METHOD g_ref->diff
        EXPORTING
          i_date_fm = g_date_fm
          i_date_to = g_date_to
        IMPORTING
          e_days    = g_days.
      WRITE g_days.

  • Use of U perform tool.

    Hi Experts,
    where use the U perform tool while BBP preparation or any stage in implementation project.
    My client ask me about these u perform tool.
    regards,
    AVI DDS.

    Hi
    RWD uPerform records your actions in Microsoft Windows,web-based, and enterprise applications, and outputs a professionally formatted document and simulation. You can capture screens, buttons, edit fields, and more in the target application.
    The recording process captures information to simultaneously produce both a simulation view and a document view of procedural content.
    RWD uPerform captures actions in the following target applications:
    ❐ Standard Microsoft Windows and web browser applications: Support for these
    applications is provided in the uPerform base recorder. Application adherence to
    World Wide Web Consortium (W3C) and Microsoft Windows standards will
    determine the consistency and quality of recording. Due to the technology involved in
    recording, the DOS command window cannot be recorded.
    ❐ SAP: Support for SAP applications is provided in the uPerform SAP plug-in recorder.
    ❐ Oracle: Support for this application is provided in the uPerform Oracle plug-in
    recorder.
    ❐ PeopleSoft: Support for this application is provided in the uPerform PeopleSoft plugin
    recorder.
    ❐ Citrix: In addition, support for applications in the Citrix Presentation Server 4.5
    environment is also available.
    Regards
    Manish Bansal

  • FAST_START_MTTR_TARGET 600 is out of the valid MTTR range, use 601 instead.

    I changed the value to MTTR yesterday i am getting these messages at alert log
    Can any body tell me figure i shuould set for it
    Wed Feb 8 07:02:45 2006
    FAST_START_MTTR_TARGET 600 is out of the valid MTTR range, use 601 instead.
    Wed Feb 8 07:05:46 2006
    FAST_START_MTTR_TARGET 600 is out of the valid MTTR range, use 602 instead.
    Wed Feb 8 09:03:58 2006
    FAST_START_MTTR_TARGET 600 is out of the valid MTTR range, use 601 instead.
    Wed Feb 8 10:02:48 2006
    FAST_START_MTTR_TARGET 600 is out of the valid MTTR range, use 602 instead.
    Wed Feb 8 10:05:19 2006
    FAST_START_MTTR_TARGET 600 is out of the valid MTTR range, use 603 instead.
    Wed Feb 8 11:04:11 2006
    FAST_START_MTTR_TARGET 600 is out of the valid MTTR range, use 604 instead.
    Wed Feb 8 12:03:01 2006
    FAST_START_MTTR_TARGET 600 is out of the valid MTTR range, use 605 instead.
    Wed Feb 8 13:03:22 2006
    FAST_START_MTTR_TARGET 600 is out of the valid MTTR range, use 606 instead.

    I made you a suggestion. It is a bug. Open a TAR. Or go by trial and error method increasing FAST_START_MTTR_TARGET until you stop getting messages
    Vadim Bobrov
    Oracle Database Tools
    http://www.fourthelephant.com

  • Using Designer to perform reverse engineering for Adabas entities

    Hi Experts,
    Customer will migrate from Adabas to Oracle db. Is it possible to use designer to perform reverse engineering for entities of Adabas?
    Thanks for your help in advance.
    Queenie

    If there is an ODBC driver for Adabas, it MAY be possible, though I have never had an Adabas database to try it on. I know that Adabas isn't natively a relational database using SQL, which is what Designer's Design Capture utility expects, so it will work through ODBC or not at all.

  • AFAB:AA776 "Create document number range ## using internal number assignmen

    Good afternoon
    I ask for your guidance to see if anyone knows me that is generating errors in the transaction AFAB AA776 "Create document number range ## using internal number assignment", the peculiarity of this is that I'm in an environment that is proving to migrate V5 to V6 ranges in environment QAS is marked as external and no problems to run on v6 change in SAP itself. Test by removing the flag marking for external control and run, causing an alarm is that it does not work as in my QAS v 5 and that I should remove this flag is removed and remove it in all the years this range of numbers is that it can hurt if you make this change.
    Can anyone guide me please.
    Thanks for the support.
    good day

    Hello ,
    Kindly have a look at the below  notes that will help you resolve the
    issue :
    890976 - Converting closing report to internal doc number assgnmnt
    If note 890976 has been applied in your system already (package
    level is = or > SAPKH60005), so what you need to check is the
    following :
    In transaction FBN1, in your company code  you should see that the
    period and number range in question is ticked as external.
    Please untick the indicator for "External" and press enter. If this
    box happens to be uneditable then untick the number range for the
    previous year and press enter. All other entries will update
    automatically.
    Here is a brief explaination to why this change has been made:
    Before ERP2005(RAPOST2000 exists as of release 4.70)the number usage
    was external, because RAPOST2000 internally managed the document number
    handling. As this was not possible any more with the New General Ledger
    functionality, and as the usage of internal number ranges is much
    simpler and more efficient, we changed the number range management
    inside RAPOST2000 (and by the way also the new periodic posting report
    RAPERB2000).
    Please kindly check the attached notes 683313 for your reference.
    I hope this provides some clarification.
    regards
    Ray

  • Loading a range using macro

    Hello,
    I have once come across a technique of loading a range using a macro that was stored in table TRMAC.  Has anyone seen anything similar to this?  I copied the code to a jump drive but have misplaced it.  It was really a cool way to load a range with individual values.
    Thanks,
    Joe

    You don't have to store it in that TABLE.  You can define the macro in your program.
    ranges: r_datum for sy-datum.
    Define build_range.
    r_datum-sign = 'I'.
    r_datum-option = 'EQ'.
    r_datum-low = &1.
    append r_datum.
    end-of-definition.
    * Now use the macro
    build_range sy-datum.
    Regards,
    Rich Heilman
    Message was edited by: Rich Heilman

  • I have a net gear router supplied by virgin media. Can I extend my wi-fi range using express or extreme?

    I have a net gear router supplied by virgin media. Can I extend my wi-fi range using express or extreme?

    Apple designed their "extend" feature with proprietary settings to only work with other Apple routers.
    As a consequence, there is virtually no chance that the Apple devices you mention would extend the signal of a non-Apple wireless router...using wireless only.
    If you plan to connect the Apple devices back to your Virgin Media router using a permanent wired Ethernet cable, you can configure the AirPorts to provide more wireless coverage that way.

  • How to populate the ranges using FM for the SELECTs

    Hi,
    I am still working on the FM to create a generic extractor. I went through the debugger but I am still unable to determine how the ranges are populated. RSA3 always gives me zero values for the results.
    There is a RANGE statement in the sample FM and the following statements for SELECTs
      RANGES: L_R_CARRID  FOR SFLIGHT-CARRID,
              L_R_CONNID  FOR SFLIGHT-CONNID.
    and...
          LOOP AT S_S_IF-T_SELECT INTO L_S_SELECT WHERE FIELDNM = 'CARRID'.
            MOVE-CORRESPONDING L_S_SELECT TO L_R_CARRID.
            APPEND L_R_CARRID.
          ENDLOOP.
          LOOP AT S_S_IF-T_SELECT INTO L_S_SELECT WHERE FIELDNM = 'CONNID'.
            MOVE-CORRESPONDING L_S_SELECT TO L_R_CONNID.
            APPEND L_R_CONNID.
          ENDLOOP.
    My question is how is L_R_CONNID and L_R_CARRID populated with low and high values for the SELECT statements? I tried to find the DS 0SAPI_SFLIGHT_SIMPLE to run and see how it is set up but there is no such DS.
    Would someone take the time to say something about this in  several sentences? I have my own code and it seems that it is not populating the values for the SELECTs when I debug from RSA3 when I provide the low and high values.
    Would I normally populate the low and high values from the InfoPackage 'Data Selection' tab once I have implemented in BW or ready to test in BW? That would mean I have to choose those fields as selections from RSO2. Anyway, I think I have asked about this but I am hoping to get an answer to get this going...
    Appreciate any replies.

    Hi
    Here is an example of an extractor that uses
    both method's, if the InfoPackage selection exist's
    it overrides the TVARV selection (which is the default).
    FUNCTION ZBW_TC_FORECAST_SO_EXTRACTOR.
    ""Local interface:
    *"  IMPORTING
    *"     VALUE(I_REQUNR) TYPE  SBIWA_S_INTERFACE-REQUNR
    *"     VALUE(I_DSOURCE) TYPE  SBIWA_S_INTERFACE-ISOURCE OPTIONAL
    *"     VALUE(I_CHABASNM) TYPE  SBIWA_S_INTERFACE-CHABASNM OPTIONAL
    *"     VALUE(I_MAXSIZE) TYPE  SBIWA_S_INTERFACE-MAXSIZE OPTIONAL
    *"     VALUE(I_INITFLAG) TYPE  SBIWA_S_INTERFACE-INITFLAG OPTIONAL
    *"     VALUE(I_UPDMODE) TYPE  SBIWA_S_INTERFACE-UPDMODE OPTIONAL
    *"     VALUE(I_DATAPAKID) TYPE  SBIWA_S_INTERFACE-DATAPAKID OPTIONAL
    *"     VALUE(I_PRIVATE_MODE) OPTIONAL
    *"     VALUE(I_CALLMODE) TYPE  ROARCHD200-CALLMODE OPTIONAL
    *"  TABLES
    *"      I_T_SELECT TYPE  SBIWA_T_SELECT OPTIONAL
    *"      I_T_FIELDS TYPE  SBIWA_T_FIELDS OPTIONAL
    *"      E_T_DATA STRUCTURE  ZBW_TC_FORECASTING_EXT_STR OPTIONAL
    *"  EXCEPTIONS
    *"      NO_MORE_DATA
    *"      ERROR_PASSED_TO_MESS_HANDLER
    *"      HIERARCHY_NOT_FOUND
    Change History                                                      *
    Mod. #  |  Date    |  Developer     |  Description                  *
    *RD3K915762|06/21/2005| SRangaraj      | Change selection of open SO   *
             |          |                | data to include deleted matls *
             |          |                | and obsolete items too        *
    RD3K915888|06/29/2005| SRANGARAJ      | Add ext matl grp and lab offce
             |          |                | filters for data-selection    *
    The input parameter I_DATAPAKID is not supported yet !
    Auxiliary Selection criteria structure
      DATA: L_S_SELECT TYPE SBIWA_S_SELECT.
    Maximum number of lines for DB table
      STATICS L_MAXSIZE TYPE SBIWA_S_INTERFACE-MAXSIZE.
    Parameter I_PRIVATE_MODE:
    Some applications might want to use this function module for other
    purposes as well (e.g. data supply for OLTP reporting tools). If the
    processing logic has to be different in this case, use the optional
    parameter I_PRIVATE_MODE (not supplied by BIW !) to distinguish
    between BIW calls (I_PRIVATE_MODE = SPACE) and other calls
    (I_PRIVATE_MODE = X).
    If the message handling has to be different as well, define Your own
    messaging macro which interprets parameter I_PRIVATE_MODE. When
    called by BIW, it should use the LOG_WRITE macro, otherwise do what
    You want.
    Initialization mode (first call by SAPI) or data transfer mode
    (following calls) ?
      IF I_INITFLAG = SBIWA_C_FLAG_ON.
    Initialization: check input parameters
                    buffer input parameters
                    prepare data selection
    The input parameter I_DATAPAKID is not supported yet !
    Invalid second initialization call -> error exit
        IF NOT G_FLAG_INTERFACE_INITIALIZED IS INITIAL.
          IF 1 = 2. MESSAGE E008(R3). ENDIF.
          LOG_WRITE 'E'                    "message type
                    'R3'                   "message class
                    '008'                  "message number
                    ' '                    "message variable 1
                    ' '.                   "message variable 2
          RAISE ERROR_PASSED_TO_MESS_HANDLER.
        ENDIF.
    Check InfoSource validity
        CASE I_DSOURCE.
          WHEN 'ZBW_TC_SO_EXTRACT'.
          WHEN OTHERS.
            IF 1 = 2. MESSAGE E009(R3). ENDIF.
            LOG_WRITE 'E'                  "message type
                      'R3'                 "message class
                      '009'                "message number
                      I_DSOURCE            "message variable 1
                      ' '.                 "message variable 2
            RAISE ERROR_PASSED_TO_MESS_HANDLER.
        ENDCASE.
    Check for supported update mode
       CASE I_UPDMODE.
         WHEN 'F'.
         WHEN OTHERS.
           IF 1 = 2. MESSAGE E011(R3). ENDIF.
           LOG_WRITE 'E'                  "message type
                     'R3'                 "message class
                     '011'                "message number
                     I_UPDMODE            "message variable 1
                     ' '.                 "message variable 2
           RAISE ERROR_PASSED_TO_MESS_HANDLER.
       ENDCASE.
    Check for obligatory selection criteria
       READ TABLE I_T_SELECT INTO L_S_SELECT WITH KEY FIELDNM = 'PGMID'.
       IF SY-SUBRC <> 0.
         IF 1 = 2. MESSAGE E010(R3). ENDIF.
         LOG_WRITE 'E'                    "message type
                   'R3'                   "message class
                   '010'                  "message number
                   'PGMID'                "message variable 1
                   ' '.                   "message variable 2
         RAISE ERROR_PASSED_TO_MESS_HANDLER.
       ENDIF.
        APPEND LINES OF I_T_SELECT TO G_T_SELECT.
    Fill parameter buffer for data extraction calls
        G_S_INTERFACE-REQUNR    = I_REQUNR.
        G_S_INTERFACE-ISOURCE   = I_DSOURCE.
        G_S_INTERFACE-MAXSIZE   = I_MAXSIZE.
        G_S_INTERFACE-INITFLAG  = I_INITFLAG.
        G_S_INTERFACE-UPDMODE   = I_UPDMODE.
        G_S_INTERFACE-DATAPAKID = I_DATAPAKID.
        G_FLAG_INTERFACE_INITIALIZED = SBIWA_C_FLAG_ON.
    Fill field list table for an optimized select statement
    (in case that there is no 1:1 relation between InfoSource fields
    and database table fields this may be far from beeing trivial)
        APPEND LINES OF I_T_FIELDS TO G_T_FIELDS.
    Fill range tables for fixed InfoSources. In the case of generated
    InfoSources, the usage of a dynamical SELECT statement might be
    more reasonable. BIW will only pass down simple selection criteria
    of the type SIGN = 'I' and OPTION = 'EQ' or OPTION = 'BT'.
        LOOP AT G_T_SELECT INTO L_S_SELECT.
          CASE L_S_SELECT-FIELDNM.
            WHEN 'PRDHA'.
              WGF_PRDHA_LENGTH = STRLEN( L_S_SELECT-LOW ).
              IF WGF_PRDHA_LENGTH = 6.  "PARTIAL PRDHA
                 WGF_PRDHA = L_S_SELECT-LOW.
                 CONCATENATE WGF_PRDHA '%' INTO WGF_PRDHA.
              ELSEIF WGF_PRDHA_LENGTH = 12.  "FULL PRDHA
              MOVE-CORRESPONDING L_S_SELECT TO L_R_PRDHA.
              APPEND L_R_PRDHA.
              ENDIF.
            WHEN 'MATKL'.
              MOVE-CORRESPONDING L_S_SELECT TO L_R_MATKL.
              APPEND L_R_MATKL.
          ENDCASE.
        ENDLOOP.
    reset the index of where we are in the gt_header table
      g_tabix = 0.
      perform populate_default_variables.
      perform get_data.
      perform build_detail.
        EXIT.
      ENDIF.                 "Initialization mode or data extraction ?
    Data transfer: First Call      OPEN CURSOR + FETCH
                   Following Calls FETCH only
    First data package -> OPEN CURSOR
       IF G_COUNTER_DATAPAKID = 0.
    Determine number of database records to be read per FETCH statement
    from input parameter I_MAXSIZE. If there is a one to one relation
    between InfoSource table lines and database entries, this is trivial.
    In other cases, it may be impossible and some estimated value has to
    be determined.
      DESCRIBE TABLE LT_DATA LINES l_count.
      IF g_tabix GE l_count.
        RAISE no_more_data.
      ENDIF.
    *CLEAN UP THE OUTPUT TABLE
      refresh E_T_DATA.
      LOOP AT LT_DATA FROM G_TABIX INTO LS_DATA.
        APPEND LS_DATA TO E_T_DATA.
    Set global counter
        g_tabix = g_tabix + 1.
      ENDLOOP.
       G_COUNTER_DATAPAKID = G_COUNTER_DATAPAKID + 1.
    ENDIF.              "Initialization mode or data extraction ?
    ENDFUNCTION.
    Forms
    ***INCLUDE LZBW_TC_FORECAST_SO_EXTF01 .
    *&      Form  populate_default_variables
          text
    -->  p1        text
    <--  p2        text
    FORM populate_default_variables.
      data: wlf_name like tvarv-name.
      clear: R_prdh3[], wlf_name.
    *get the exclusion range from tvarv for the product hierarchy in
    *question
      concatenate 'ZBW_EXL_' WGF_PRDHA(6) INTO WLF_NAME.
    SELECT LOW FROM TVARV INTO R_prdh3-low WHERE
                                 NAME = WLF_NAME.
      move:  'I'    to R_prdh3-sign,
             'EQ'   to R_prdh3-option.
      append R_prdh3.
      clear R_prdh3.
    ENDSELECT.
    {Start of insert by SRangaraj on June 29, 2005 >>RD3K915888
    CLEAR L_R_LABOR[].
    SELECT LOW FROM TVARV INTO L_R_LABOR-Low WHERE
                                 NAME = 'ZBW_TC_FORECAST_LAB_OFF'.
      move:  'I'    to L_R_LABOR-sign,
             'EQ'   to L_R_LABOR-option.
      append L_R_LABOR.
      clear L_R_LABOR.
    ENDSELECT.
    }End of insert by SRangaraj on June 29, 2005 >>RD3K915888
    ENDFORM.                    " populate_default_variables
    *&      Form  get_data
          text
    -->  p1        text
    <--  p2        text
    FORM get_data.
      data: wlf_lmeng like vbep-lmeng.
    *get all deliveries for date range for either a range of product hrchy
    *or a like value
      refresh int_records1.
      if wgf_prdha ne space.
        select ivbeln iposnr iKLMENG jvkorg i~werks
               imatnr imeins mprdha mmatkl
        from vbap as i
           INNER JOIN VBAK AS j
           ON ( jvbeln = ivbeln
                and j~vbtyp = 'C' )
           INNER JOIN vbuk AS k
           ON ( kvbeln = ivbeln
                and k~lfgsk <> 'C'
                and k~gbstk <> 'C' )
           INNER JOIN vbup AS l
           ON ( lvbeln = ivbeln and
                lposnr = iposnr
                and l~lfgsa <> 'C'
                and l~gbsta <> 'C' )
           INNER JOIN mara AS m
           ON ( mmatnr = imatnr
    {Start of insert by SRangaraj on June 21, 2005 >>RD3K915762
                and m~lvorm eq ' '
                and m~mstae ne '99'
    {Start of insert by SRangaraj on June 29, 2005 >>RD3K915888
                and m~extwg = '080' )
    }End of insert by SRangaraj on June 29, 2005 >>RD3K915888
           INNER JOIN marc AS n
           ON ( nmatnr = imatnr
                and nwerks = iwerks
                and n~lvorm eq ' ' )
    }End of insert by SRangaraj on June 21, 2005 >>RD3K915762
        into table int_records1 where ( i~abgru = '  '
                                     and i~klmeng > 0
                                     and m~prdha like wgf_prdha
                                     and m~matkl in l_r_matkl
    {Start of insert by SRangaraj on June 29, 2005 >>RD3K915888
                                     and m~labor in l_r_labor ).
    }End of insert by SRangaraj on June 29, 2005 >>RD3K915888
      elseif not l_r_prdha[] is initial and wgf_prdha = space.
        select ivbeln iposnr iKLMENG jvkorg i~werks
               imatnr imeins mprdha mmatkl
        from vbap as i
           INNER JOIN VBAK AS j
           ON ( jvbeln = ivbeln
                and j~vbtyp = 'C' )
           INNER JOIN vbuk AS k
           ON ( kvbeln = ivbeln
                and k~lfgsk <> 'C'
                and k~gbstk <> 'C' )
           INNER JOIN vbup AS l
           ON ( lvbeln = ivbeln and
                lposnr = iposnr
                and l~lfgsa <> 'C'
                and l~gbsta <> 'C' )
           INNER JOIN mara AS m
           ON ( mmatnr = imatnr
    {Start of insert by SRangaraj on June 21, 2005 >>RD3K915762
                and m~lvorm eq ' '
                and m~mstae ne '99'
    {Start of insert by SRangaraj on June 29, 2005 >>RD3K915888
                and m~extwg = '080' )
    }End of insert by SRangaraj on June 29, 2005 >>RD3K915888
           INNER JOIN marc AS n
           ON ( nmatnr = imatnr
                and nwerks = iwerks
                and n~lvorm eq ' ' )
    }End of insert by SRangaraj on June 21, 2005 >>RD3K915762
        into table int_records1 where ( i~abgru = '  '
                                     and i~klmeng > 0
                                     and m~prdha in l_r_prdha
                                     and m~matkl in l_r_matkl
    {Start of insert by SRangaraj on June 29, 2005 >>RD3K915888
                                     and m~labor in l_r_labor ).
    }End of insert by SRangaraj on June 29, 2005 >>RD3K915888
    endif.
        sort int_records1 by vbeln posnr.
        delete adjacent duplicates from int_records1 comparing
        vbeln posnr.
    *remove unnecessary records
        if not r_prdh3[] is initial.
        DELETE INT_RECORDS1 WHERE PRDHA+6(3) IN r_prdh3.
        endif.
    *get the schedule lines for all of the above records and
    *get the lowest schedule line date per so line item
         if not int_records1[] is initial.
         refresh int_records3.
         select vbeln posnr etenr mbdat into table int_records3
         from vbep for all entries in int_records1
                           where vbeln = int_records1-vbeln and
                                 posnr = int_records1-posnr and
                                 lmeng > 0.
         sort int_records3 by vbeln posnr etenr mbdat ascending.
         loop at int_Records1.
           loop at int_records3 where vbeln = int_records1-vbeln
                                  and posnr = int_records1-posnr.
             int_records1-mbdat = int_records3-mbdat.
             modify int_records1.
             exit.
            endloop.
         endloop.
         refresh int_records3. free int_records3.
         refresh int_records2.
    *get the deliveries and calculate the open quantities
        select vbelv posnv vbeln posnn rfmng plmin
                    from vbfa into table int_records2
                                  for all entries in int_Records1
                                  where vbelv = int_records1-vbeln
                                    and posnv = int_records1-posnr
                                    and VBTYP_N = 'J'. "Dels
    *calculate open quantities next
         loop at int_records1.
           clear wlf_lmeng.
           clear int_records2.
           loop at int_records2 where vbelv = int_records1-vbeln
                                    and posnv = int_records1-posnr.
           case int_records2-plmin.
             when '-'.
              wlf_lmeng = wlf_lmeng - int_records2-rfmng.
             when others.  "just add
              wlf_lmeng = wlf_lmeng + int_records2-rfmng.
            endcase.
           endloop.
           int_records1-klmeng = int_records1-klmeng - wlf_lmeng.
           int_records1-vbeln_dl = int_records2-vbeln.
           int_records1-posnr_dl = int_records2-posnn.
           modify int_records1.
        endloop.
        endif.
        delete int_records1 where klmeng le 0.
        refresh int_records2. free int_Records2.
    ENDFORM.                    " get_data
    *&      Form  build_detail
          text
    -->  p1        text
    <--  p2        text
    FORM build_detail.
        LOOP AT int_records1.
    *DO INDIVIDUAL MOVES - ITS FASTER THAN MOVE-CORRESPONDING
        move: int_records1-vkorg    to LS_DATA-VKORG,
              int_records1-werks    to LS_DATA-WERKS,
              int_records1-matnr    to LS_DATA-MATNR,
              int_records1-klmeng   to LS_DATA-KLMENG,
              int_records1-mbdat(6) to LS_DATA-YEARMONTH,
              int_records1-meins    TO LS_DATA-MEINS,
              int_records1-vbeln    TO LS_DATA-VGBEL,
              int_records1-posnr    TO LS_DATA-VGPOS,
              int_records1-vbeln_dl TO LS_DATA-VBELN,
              int_records1-posnr_dl TO LS_DATA-POSNR,
              int_records1-mbdat    to LS_DATA-WADAT_IST,
              int_records1-PRDHA    to LS_DATA-PRDHA,
              int_records1-matkl    to LS_DATA-MATKL.
        APPEND LS_DATA TO LT_DATA.
        clear: LS_DATA.
        ENDLOOP.
    ENDFORM.                    " build_detail

  • Using Composite Index Performance Issue

    Hi,
    Need help:
    I have a table 'TABLEA' which has composite index on CODE and DEPT_CODE
    While fetching the data from the table 'TABLEA' in the WHERE condition I am using only CODE and not DEPT_CODE.
    Is the usage of the WHERE condition by using only the CODE column and not DEPT_CODE column affects the performance?
    Any help will be needful for me

    See the test case below
    SQL> create table test_emp
      2  (
      3  emp_ssn number,
      4  emp_name varchar2(50),
      5  emp_state varchar2(15),
      6  emp_city varchar2(20)
      7  );
    Table created
    SQL> create index test_emp_idx on test_emp(emp_ssn,emp_name);
    Index created
    SQL> insert into test_emp values (123456789,'Robben','New York','Buffalo');
    1 row inserted
    SQL> insert into test_emp values (223456789,'Jack','Florida','Miami');
    1 row inserted
    SQL> insert into test_emp values (323456789,'Peter','Texas','Dallas');
    1 row inserted
    SQL> insert into test_emp values (423456789,'Johny','Georgia','Atlanta');
    1 row inserted
    SQL> insert into test_emp values (523456789,'Carmella','California','San Diego');
    1 row inserted
    SQL> commit;
    Commit complete
    SQL> explain plan for select /*+ index(test_emp test_emp_idx) */ * from test_emp where emp_ssn = 323456789;
    Explained
    SQL> select * from table(dbms_xplan.display);
    PLAN_TABLE_OUTPUT
    Plan hash value: 2345760695
    | Id  | Operation                   | Name         | Rows  | Bytes | Cost (%CPU)
    |   0 | SELECT STATEMENT            |              |     1 |    61 |   163   (1)
    |   1 |  TABLE ACCESS BY INDEX ROWID| TEST_EMP     |     1 |    61 |   163   (1)
    |*  2 |   INDEX RANGE SCAN          | TEST_EMP_IDX |     1 |       |     2   (0)
    Predicate Information (identified by operation id):
       2 - access("EMP_SSN"=323456789)
    Note
       - dynamic sampling used for this statement
    18 rows selected
    SQL> explain plan for select /*+ INDEX_SS(test_emp test_emp_idx) */ * from test_emp where emp_name = 'Robben';
    Explained
    SQL> select * from table(dbms_xplan.display);
    PLAN_TABLE_OUTPUT
    Plan hash value: 85087452
    | Id  | Operation                   | Name         | Rows  | Bytes | Cost (%CPU)
    |   0 | SELECT STATEMENT            |              |     1 |    61 |    15   (0)
    |   1 |  TABLE ACCESS BY INDEX ROWID| TEST_EMP     |     1 |    61 |    15   (0)
    |*  2 |   INDEX SKIP SCAN           | TEST_EMP_IDX |     1 |       |    11   (0)
    Predicate Information (identified by operation id):
       2 - access("EMP_NAME"='Robben')
           filter("EMP_NAME"='Robben')
    Note
       - dynamic sampling used for this statement
    19 rows selectedThanks,
    Andy

  • IP ranges used for Office 2010 activation

    Does anyone know what IP ranges Microsoft use for activation of Office 2010? We are periodically experiencing "Communication error(0x80072EFE)" when clients are trying to activate Office. This seems to be dropped in the firewall, so I need to know
    what IPs to open for.
    I have looked everywhere, but I can't find an updated list of IPs for this.
    Regards,
    AG

    Hi,
    The error occurs due to a Web filter that is in place in the environment, client installations of Office 2010 are unable to communicate with Microsoft activation servers. This connection is required to perform online activation of Office 2010 products.
    Try adding the following list of URLs to the Web filter, if you will then be able to successfully activate installations of Office 2010 online:
    http://go.microsoft.com
    https://sls.microsoft.com
    https://sls.microsoft.com:443
    http://crl.microsoft.com/pki/crl/products
    http://www.microsoft.com/pki/crl/products
    https://activation.sls.microsoft.com
    Regards,
    Melon Chen
    TechNet Community Support

Maybe you are looking for

  • ITunes 7.3.1.3 all of a sudden doesn't find iphone - can't sync

    I had no problem activating and syncing my new iphone. In fact I have synced it successfully a couple of times. However, today after taking my first photos, when I plugged it in, itunes didn't launch (instead, windows "auto play" did and asked if i w

  • Text messages are not coming in

    apple changed updated my new eamil address in itunes and now my messages are not coming in.help

  • JSP sql - set table name in variable

    I'm trying to set my table name in variable, what is the syntax in sql of selecting from a table which name is set with a variable name?

  • Smart object does not appear at specified time in slide.

    Here's my issue:  When I insert a speech bubble into the slide, set it to appear after 5.0 seconds and the display for the rest of the slide, it does not appear at the specified time. HOWEVER, if I move the speech bubble to appear at the very START o

  • Erro while doing  T.code: J2IUN Utilization

    Hi Gurus, I got below error while excise utilizing through T.code: J2IUN. Customization for excise group 51 missing in table Message no. 8I303 Diagnosis The customization details have not been maintained for this company Procedure Please use the loca