Abap code used for reporting

Hi Gurus;
Can some one send me the abap codes used mainly for reporting OR can some one give me some sample code used in reporting. my mail id "[email protected]".

smod > rsr0001 > EXIT_SAPLRRS0_001 > ZXRSRU01 >
CASE I_VNAM.
WHEN 'ZE_FPPT'.
    CALL FUNCTION 'Z_VAR_FP4'
      EXPORTING
        I_VNAM        = i_vnam
        I_STEP        = i_step
        I_T_VAR_RANGE = I_T_VAR_RANGE
      IMPORTING
        E_T_RANGE     = E_T_RANGE.
FUNCTION Z_VAR_FP4.
""Local Interface:
*"  IMPORTING
*"     REFERENCE(I_VNAM) LIKE  RSZGLOBV-VNAM
*"     REFERENCE(I_STEP) TYPE  I DEFAULT 0
*"     REFERENCE(I_T_VAR_RANGE) TYPE  RRS0_T_VAR_RANGE
*"  EXPORTING
*"     VALUE(E_T_RANGE) TYPE  RSR_T_RANGESID
data: l_s_range type rsr_s_rangesid.
data: LOC_VAR_RANGE LIKE RRRANGEEXIT.
data: year(4).
data: mth(2).
IF I_STEP = 2 .
  LOOP AT I_T_VAR_RANGE INTO LOC_VAR_RANGE WHERE
        ( VNAM = '0I_FPER' ).
      year = LOC_VAR_RANGE-HIGH+0(5).
      mth = LOC_VAR_RANGE-HIGH+5(2).
           if mth < 10.
        concatenate '0' mth into mth.
      endif.
      concatenate year '0' mth into L_S_RANGE-HIGH.
      L_S_RANGE-SIGN = 'I'.
      L_S_RANGE-OPT  = 'EQ'.
      APPEND L_S_RANGE TO E_T_RANGE.
    ENDLOOP.
  ENDIF.
ENDFUNCTION.
Regards,
BWer
Assign points if helpful.
Message was edited by: BWer

Similar Messages

  • Debug ABAP code used for ABAP mapping

    Hi Experts,
    I have worked on Abap mapping. I have executed the code in SE24 to acheive desired mapping and the desired output is also generated.
    attached below is a part of the code i have used:
    method IF_MAPPING~EXECUTE.
    * initialize iXML
      TYPE-POOLS: ixml.
      CLASS cl_ixml DEFINITION LOAD.
    * create main factory
      DATA: ixmlfactory TYPE REF TO if_ixml.
      ixmlfactory = cl_ixml=>create( ).
    * create stream factory
      DATA: streamfactory TYPE REF TO if_ixml_stream_factory.
      streamfactory = ixmlfactory->create_stream_factory( ).
    * create input stream
      DATA: istream TYPE REF TO if_ixml_istream.
      istream = streamfactory->create_istream_xstring( source ).
    * parse input document =================================================
    * initialize input document
      DATA: idocument TYPE REF TO if_ixml_document.
      idocument = ixmlfactory->create_document( ).
    * parse input document
      DATA: iparser  TYPE REF TO if_ixml_parser.
      iparser = ixmlfactory->create_parser( stream_factory = streamfactory
                                            istream        = istream
                                            document       = idocument ).
      iparser->parse( ).
    I just want to debug and see if an input is provided how does each of these methods make a difference to it.
    I tried to input some value in the SOURCE parameter on executing the code but it is not working fine.
    Could you please suggest hiw i should go about so that i can see the exact way the input Xstring is affected by each of these methods in the debugger.
    Help will be appreciated.
    Many thanks,
    Neha
    Edited by: Neha Nagrani on Jul 7, 2008 11:46 AM

    Hi Neha,
    Write a Small Report as Folows:
    1.  Create your XMl payload of Type xSTRING.
    2.  Call the method EXECUTE
    Place a Breakpoint on the method. and then keep debugging inside.
    the SetParamter method is obviously called from inside.
    This is the Simplesrt Solution.
    Reward points if useful
    Regards,
    Abhishek

  • Different transaction codes useful for Performance Monitoring

    Hi Experts,
    Please can you guide me on this question, as to what are the different transaction codes useful for Performance Monitoring i.e. workload statistics and database statistics? What kind of statistics do each of these codes provide?
    Many thanks,
    Mithun

    Hi Mithun
    In performance issuses you need to look in terms of many ways that is..
    Workload analsys
    ST03N: Statistics Regards Locallly
    ST03G: Statistics Regards Golbally
    STAD: Individual Statistics Regards
    STATTRAACE: Individual Statistics Regards Trace
    ST07 : User Distribution
    Buffers and Memory
    ST02 : Buffers and Memory and swaps monitoring
    ST10: Table Acess
    OS Monitoring
    OS04: Locally monitoring
    OS07: Remotely monitoring
    OS01: LAN check
    DataBase Side
    ST04: Performance overview
    DB01: Exclusive locks
    DB02: Tables/Indexes
    BackgroundJobs monitor
    SM37
    other tcodes
    ST22: Abap Dumps
    SM12: Lock Entries
    SM56: NumberRange Buffers
    SU56: User Buffer
    all above transactions are need to monitor for Performance.
    Regards
    Bandla

  • I have an Ipad 2 and here is what I am trying to accomplish.  On my laptop I connect to a remote desktop connection to access a shared program we use for reporting.  How do I set up my Ipad to access this remote server?  Thanks for the help.

    I have an Ipad 2 and here is what I am trying to accomplish.  On my laptop I connect to a remote desktop connection to access a shared program we use for reporting.  How do I set up my Ipad to access this remote server?  Thanks for the help.

    Close ... before going for a specific Cisco app ... lets find out some details:
    Host we need more details:
    What is your server environment (Windows Server, or Mac OS X Server, or Linux)?
    What security is implemented in your environment - as what is restricted (RDP for all or specifc credentials on all machines? Are you part of local admin group to the server you wish to connect)?
    Does your environment Support CISCO IPSec connection? If so use Settings> VPN and IPSec tab to enter VPN details, if not then go with above suggestion. IF your restricted to RSA then either built in VPN settings or 3rd party app for RSA would suffice.
    Finally, there are many RDP applications out there I use "Mocha RDP Light" (free minimal ads when launched not when connecting).

  • How can i write the below code using "For all entries"

    Hi
    How can we write the below code using "for all entries" and need to avoid joins...
    Please help
    SELECT aaufnr aobjnr aauart atxjcd a~pspel
    agstrp awerks carbpl cwerks
    INTO TABLE t_caufv
    FROM caufv AS a
    INNER JOIN afih AS b
    ON aaufnr = baufnr
    INNER JOIN crhd AS c
    ON bgewrk = cobjid
    AND c~objty = 'D'
    WHERE ( a~pspel = space
    OR a~txjcd = space
    OR NOT a~objnr IN
    ( select OBJNR from COBRB AS e
    WHERE objnr = a~objnr ) )
    AND a~werks IN s_plant
    AND a~auart IN s_wtype
    AND NOT a~objnr IN
    ( select OBJNR from JEST AS d
    WHERE objnr = a~objnr
    AND ( dstat = 'A0081'OR dstat = 'A0018' )
    AND d~inact 'X' ).
    Reward points for all helpfull answers
    Thanks
    Ammi.

    Hi,
    SELECT objnr objid aufnr
            from afih
            into table t_afih.
    SELECT objnr
            from JEST
            into table t_JEST
            where stat = 'A0045'
               OR stat = 'A0046'
               AND inact 'X'.
    SELECT objnr
            from COBRB
            into table t_cobrb.
    SELECT arbpl werks objid objty
          from crhd
          INTO table it_crhd
          FOR ALL ENTRIES IN it_afih
          WHERE objty eq 'D'
          AND gewrk = it_afih-objid.
    SELECT aufnr objnr auart txjcd pspel gstrp werks aufnr
            FROM caufv
            INTO table t_caufv
            FOR ALL ENTRIES IN it_afih
            WHERE aufnr = it_afih-aufnr
              And pspel = ' '
              AND txjcd = ' '
             ANd objnr ne it_crhd-objnr
              AND auart in s_wtype
              AND werks in s_plant.
             AND objnr ne it_jest-objnr.
    dont use NE in the select statements, it may effect performance also. Instead use if statements inside
    loops.
    loop at t_caufv.
    read table it_chrd............
      if t_caufv-objnr ne it_chrd-objnr.
      read table it_jest..........
       if   if t_caufv-objnr ne it_jest-objnr.
        (proceed further).
       endif.
      endif.
    endloop.
    hope this helps.
    Reward if useful.
    Regards,
    Anu

  • Transaction Codes used for clearing Open Items

    Hi Gurus,
    I want to know all the T.Codes used for clearing normal transactions and Open Items. Please tell me when to use which code (viz., while clearing vendors, customers, WH Tax, etc)
    Your earliest reply will be of great help. and naturally i will award you
    Thank you

    Hi,
    F-03     Clear G/L Account
    F-04     Post with Clearing
    F-30     Post with Clearing
    F-32     Clear Customer
    F-39     Clear Customer Down Payment
    F-44     Clear Vendor
    F-51     Post with Clearing
    F-54     Clear Vendor Down Payment
    F-91     Asset Acquis. Posted w/Clearing Acct
    F.13     Automatic Clearing without Currency
    F.19     G/L: Goods/Invoice Received Clearing
    F13E     Automatic Clearing With Currency
    F13L     Autom. Clearing Spec. to Ledger Grp
    Regards,
    Eli

  • How web dynpro abap is used for snc

    Hi folks,
               I am new to web dynpro abap.Some one told we can upgrade snc from lower version to higher version but i dont have any knowledge on snc.For upgrading snc what we must have 2 know. How web dynpro abap is used for upgrading snc.Pls provide any links related to web dynpro abap with snc.
    Thanks in advance

    Hello Ravidanda,
    I have found a link that provides some information on how Web Dynpro ABAP is used in SAP SNC in the SAP Help. Here you go:
    http://help.sap.com/saphelp_snc70/helpdata/EN/46/7256ce7fde01dde10000000a1553f7/frameset.htm
    I hope this will help you.

  • Creating ABAP Unit Tests for Report Programs

    How can we create ABAP unit test  for report programs.
    Please explain the steps?

    Hi Devendra.
    I would like to suggest some references which are as below:
    [SAP HELP - Complete ABAP unit|http://help.sap.com/saphelp_nw04/helpdata/en/a2/8a1b602e858645b8aac1559b638ea4/frameset.htm]
    [SDN - Reference for ABAP unit testing|about unit testing;
    Hope that's usefull.
    Good Luck & Regards.
    Harsh Dave
    Edited by: Harsh Dave on Jul 14, 2008 2:13 PM
    Edited by: Harsh Dave on Jul 14, 2008 2:20 PM

  • Process code used for DELFOR inbound idoc

    I have to create one interface in that i have to capture the transfer orders from that i have create the DELFOR idoc which used for posting the scheduling agreements.
    These agreements will pos teh requirement to the forecast tab.
    Please let me know the process code used for this inbound DELFOR idoc.
    Regards,
    Uday

    Hi Uday,
    Firstly: Yes. Delins function module can be used for Delfor. Either case you will make the sytem update the forecast tab of scheduling agreement.
    Secondly: Make sure you have one valid sales scheduling agreement maintained for that sold to, customer-material, ship to partner description.
    Let me know if you have further concerns;
    Regards,
    Syed Nasir

  • Do you know if Assessment Filter fields can be use for reports?

    Do you know if Assessment Filter fields can be use for reports?
    I have an Assessment filter field in contacts that it use to capture relavant information for the contact. Because I thought we could use it as another picklist. But when I am creating a report I can find it in the list of fields available for the report.
    Thank you very much
    Catalina Valadez
    Regards

    Hi thank you for the answer but a have another point.
    I am not using asssessment as an object, I am just using the field "assessment filter 3" that is one's of the default field for contacts that you have for customize the application. So I thought it will be show in the list of fields for the reports (Going to Reports -> Design Analysis -> under reporting choosing "Contacts") and I can't see this field, when I'm looking in "Contact Fields".
    Regards
    Catalina Valadez

  • ABAP code help for Bex broadcasting by event!

    Hello
    I'm trying to broadcast a report for a specific time period as per factory calendar. I tried using System Time Point :RSRD_BROADCAST_FOR_TIMEPOINT but its not showing when In the broadcaster when I put restriction of factory calendar so i followed below link: Broadcasting timepoint scheduled after an event and created a PC to start after event and created variant for RSRD_BROADCAST_STARTER setting ID as my Bes broadcast setting technical name.
    When I trigger the event its processed and report emailed to me as I expected. Now I want to run this (Trigger) this event every Wed day after fisc quarter close. I wrote the below logic in se38 PROGRAM. But Now I need little help on how to trigger /run only on wed days after fisc quarter close ? Please update the below code or guide me on how to achieve this.
        CALL FUNCTION 'BP_EVENT_RAISE'
          EXPORTING
            EVENTID = ZFISC
      endif.
    Thanks

    in your ABAP code try this,
    calculate whether current date falls after fiscal year quarter. If so then check whether its a Wednesday and call the event raise FM. You can schedule this program in background daily basis.
    Use this FM for day calculation DATE_TO_DAY.
    This FM for converting sy-datum to fiscal year/period - FI_PERIOD_DETERMINE,DATE_TO_PERIOD_CONVERT

  • ABAP Code Modification for Command Tickets

    Hi Experts
    Modification to processing of Command Orders & Tickets
    We require a modification to the processing being performed on sales data originating from the Command Concrete system and potentially from other systems yet to come online (e.g. Reddies Cement plant).
    The Sap process involved is
    ZINT_INBOUND_POLLING and within that,
    ZINT_CSTPORD_ROUTINES.
    The problem
    Currently there is an assumption that every sales order (and its deliveries) will include a product which is made to order, i.e. for which a production order will be required.
    In ZINT_CSTPORD_ROUTINES, a check is made to identify the production order linked to the sales order. If there is no such production order (usually because of the customeru2019s credit status) then processing of the ticket is terminated.
    This assumption would fall down if an order was to be raised (in Command) on which there is no concrete material. For example, if we sold a bag of pigment or a screed to a customer. In this case the item would be sold from stock and there would be no need for a production order
    The solution
    In the routine which checks for the existence of a production order, modify the code as follows:
    Inspect each item on the sales order
    If (and only if) there is at least one item with a category of u201CZTACu201D then check for a production order, otherwise process the order in the usual manner.
    The following Coding of programs are below.
    Report:      ZINT_INBOUND_POLLING
    Description: REDDIES Interfaces: Polling Job for Inbound Interfaces
    This report is a general file polling and distribution job for
    inbound interfaces. Interfaces are identified by their assigned ID
    and type values (refer to table ZINT_ADMIN). The polling job can be
    run only for a single interface. This restriction has been implemented
    for performance reasons. Dependent interfaces should be set up as
    separate, dependent jobs in SM37.
    For an interface to be triggered by this report, it must have:
    1. Administrative parameters entered in table ZINT_ADMIN.
    2. Other parameters (eg. organisational data such as plant or store)
       entered in table ZINT_PARAM.
    3. An interface-specific function module created in accordance with
       the inbound interface template (ZINT_INBOUND_INTERFACE).
    4. An interface-specific directory structure. This structure must
       be reflected in the directory parameters of table ZINT_ADMIN.
       Note that the directory names supplied in ZINT_ADMIN must exactly
       match those used for the actual directories.
    This job is designed to run as a periodic background job, but can
    also be run on-line when required.
    On each execution, the program performs the following tasks:
    1. Validate all selection parameters.
    2. Read interface administration and other parameters.
    3. Check the inbound directory to see if there are any new files.
    4. If there is a new file.
    4.1 Read the data and update the interface log.
    4.2 Archive the data and update the interface log.
    4.3 Call the interface function module, sending data and parameters.
    4.4 Log any messages returned from the function module.
    5. Exit.
    Please document all changes to this job carefully and clearly. Major
    additions to functionality should be put in new, parameterised form
    routines wherever possible to sustain maintainablility of the code.
    Change History:
    Date        User  Request     Description
    07/02/2006  EDWG  WG1K902600  Original program.
    20.07.2007  ROBS              Changes to handle error messages better.
    report zint_inbound_polling line-size  170
                                line-count 58(2)
                                message-id zz
                                no standard page heading.
    Global Data Declarations
    include zint_interface_data.
    data: begin of tbl_messages occurs 0,
            line(132) type c,
          end of tbl_messages.
    --Field Symbols--
    field-symbols: <function>.
    --Global Variables--
    Selection Screen
    --Interface Mode--
    RJS Start >>>
    selection-screen begin of block b1 with frame title t_mode.
    parameters: p_upl radiobutton group p1.
    selection-screen skip 1.
    select-options: s_intid for zint_intid-zint_id
                      matchcode object zint_intid,
                    s_intty for zint_intty-zint_ty
                      matchcode object zint_intty.
    selection-screen uline.
    parameters:  p_pro radiobutton group p1.
    selection-screen skip 1.
    RJS End <<<
    Interface ID
    parameters: p_intid like zint_intid-zint_id
                                matchcode object zint_intid.
    Interface type
    parameters: p_intty like zint_intty-zint_ty
                                matchcode object zint_intty
                                default 'I'.
    IDOC group or set
    parameters: p_intis type zint_is.
    select-options: s_datum for zint_data-created_on.
    selection-screen skip 1.
    parameters: p_dlgrp as checkbox default c_false.
    data: p_alone(1) type c value 'X'.
    selection-screen skip 1.
    Interface parameter set and sequence number.
    parameters: p_intsi like zint_param-zint_si,
                p_intsq type zint_sq default '001' no-display.
    selection-screen uline.
    parameters: p_apsrv radiobutton group r1,
                p_pc    radiobutton group r1.
    selection-screen skip 1.
    parameters: p_nowar as checkbox default c_true.
    selection-screen end   of block b1.
    Event Processing
    --IDOC Set Values--
    at selection-screen on value-request for p_intis.
    Display a selectable list of parameter sets
      perform select_idoc_set using    p_intid
                                       p_intty
                              changing p_intis
                                       v_rtcod.
      if v_rtcod ne c_noerr.
       Problem displaying parameter lists
        message i000 with 'Unable to display IDOC set values.'
                          'Please enter an interface ID and type.'.
      endif.
    --Parameter Set Values-----
    at selection-screen on value-request for p_intsi.
    Display a selectable list of parameter sets
      perform select_parameter_set using    p_intid
                                            p_intty
                                   changing p_intsi
                                            v_rtcod.
      if v_rtcod ne c_noerr.
       Problem displaying parameter lists
        message i000 with 'Unable to display parameter list values.'
                          'Please enter an interface ID and type.'.
      endif.
    --Check Interface Admin.---
    at selection-screen on: p_intty, p_intid.
      perform validate_interface_admin using    p_intid
                                                p_intty
                                       changing v_rtcod.
      if v_rtcod ne c_noerr.
      No administration parameters exist for interface
        message e001 with p_intid p_intty.
      endif.
    --Validate Parameter Set---
    at selection-screen on p_intsi.
      perform validate_interface_param using    p_intid
                                                p_intty
                                                p_intsi
                                       changing v_rtcod.
      if v_rtcod ne c_noerr.
      Parameter set does not exist for interface
        message e002 with p_intsi p_intid p_intty.
      endif.
    Initialisation
    initialization.
      perform set_screen_texts.
    Start of Selection
    start-of-selection.
    RJS Start >>>
      refresh: tbl_totals, tbl_messages.
    UPLOAD INBOUND DATA ---------------------
      if p_upl = 'X'.
        perform upload_data.
    PROCESS NEW or ERRORS -------------------
      else.   " p_pro = 'X'.
        perform process_data.
      endif.
    RJS End <<<
    End of Selection
    end-of-selection.
    Write the log file to the specified directory
      read table t_ibfil index 1.
      perform write_log_file tables   t_ldata
                             using    s_admin-zint_lg
                                      t_ibfil-filename
                                      p_apsrv
                             changing v_rtcod.
      if v_rtcod ne c_noerr.
      Error writing to log file
        message i000 with 'Could not write to log file for interface'
                          s_admin-zint_id '/' s_admin-zint_ty.
      endif.
    RJS Start >>>
    Write out Messages and totals
      if p_pro = 'X'.  " Processing Data
        describe table tbl_messages lines sy-tfill.
        if sy-tfill = 0.
          write:/ 'Processing Complete. Use ZSTA to analyse'.
        else.
          loop at tbl_messages.
            write:/ tbl_messages-line.
          endloop.
        endif.
      else.  " Uploading Data
        format color col_total.
        uline.
          write:/ 'Upload Details:', 132 space.
        uline.
        format color off.
        describe table tbl_totals lines sy-tfill.
        if sy-tfill = 0.
          write:/ '0 Records Processed'.
        endif.
        loop at tbl_totals.
          write:/ 'Interface ID:', tbl_totals-zint_id,
                  '     Type:', tbl_totals-zint_ty,
                  '     Command Date:', tbl_totals-created_on,
                  '     Records Processed:', tbl_totals-count.
        endloop.
        uline.
        message s999(b1) with 'Data Upload Completed'
                              '- Please see full Results uing trans ZSTA'.
      endif.
    RJS End <<<
    Form Routines
      include zint_interface_routines.
    *&      Form  upload_data
          text
    form upload_data.
      data: lt_admin type standard table of zint_admin with header line.
      data: l_message(80) type c.
      select * from zint_admin into table lt_admin
        where zint_id in s_intid
        and   zint_ty in s_intty.
      loop at lt_admin.
        refresh t_idata.
        refresh t_ibfil.
    Progress Message
        concatenate 'Reading Inbound data files in'
                    lt_admin-zint_ib
          into l_message separated by space.
        call function 'SAPGUI_PROGRESS_INDICATOR'
          exporting
          PERCENTAGE       = 0
            text             = l_message.
    Check for a new inbound file and read its data.
        perform read_inbound_data tables   t_idata
                                           t_ibfil
                                  using    lt_admin-zint_ib
                                           p_apsrv
                                  changing v_rtcod.
        if v_rtcod         ne c_noerr and
           v_rtcod         ne 7 and               " RJS- no files found
           lt_admin-zint_ib ne space.
      Write an error to the log
          perform write_log_entry
            tables t_ldata
            using  'E'
                   'ZINT_INBOUND_POLLING'
                   'READ_INBOUND_DATA'
                   'Problem reading inbound interface file.'
                   p_nowar space.
          exit.
        endif.
    Exit if there is no data.
        describe table t_idata lines v_fldsz.
        check v_fldsz gt 0.
    Write inbound data to a database table, for later access
        perform write_data tables t_idata
                           using lt_admin-zint_id
                                 lt_admin-zint_ty
                                 lt_admin-zint_fm
                                 lt_admin-zint_ib.
    Move the inbound file to the archive directory
        perform archive_inbound_data tables   t_ibfil
                                     using    p_apsrv
                                              lt_admin-zint_ar
                                              lt_admin-zint_ib
                                     changing v_rtcod.
        if v_rtcod ne c_noerr.
      Write an error to the log if unable to move file
          perform write_log_entry
            tables t_ldata
            using  'E'
                   'ZINT_INBOUND_POLLING'
                   'ARCHIVE_INBOUND_DATA'
                   'Problem archiving inbound interface file.'
                   p_nowar space.
        endif.
      endloop.
    endform.                    "upload_data
    *&      Form  process_data
          text
    form process_data.
      data: lt_idata type standard table of x_idata with header line.
      data: s_idata type x_idata,
            l_last_status(3) type c.
      data: l_message(80) type c,
            l_status(3) type c,
            l_lines(5) type c,
            l_date(10) type c.
    Validate input parameters
      if p_intid = space
      or p_intty = space
      or p_intsi = space.
        message e999(b1) with 'Mandatory fields must be filled'.
      endif.
    Read the interface administration parameters
      perform get_admin_parameters using    p_intid
                                            p_intty
                                   changing s_admin
                                            v_rtcod.
      if v_rtcod ne c_noerr.
      Write an error to the log
        perform write_log_entry
          tables t_ldata
          using  'E'
                 'ZINT_INBOUND_POLLING'
                 'GET_ADMIN_PARAMETERS'
                 'No admin. parameters for interface. Check ZINT_ADMIN'
                 p_nowar space.
      endif.
    Read the other interface parameters (if required)
      if p_intsi ne space.
        perform get_other_parameters tables   t_param
                                     using    p_intid
                                              p_intty
                                              p_intsi
                                     changing v_rtcod.
        if v_rtcod ne c_noerr.
        Write an error to the log
          perform write_log_entry
            tables t_ldata
            using  'E'
                   'ZINT_INBOUND_POLLING'
                   'GET_OTHER_PARAMETERS'
                   'No org. parameters for interface. Check ZINT_ADMIN'
                   p_nowar space.
        endif.
      endif.
    Read any Error records for reprocessing - if none, read New data
      perform read_data tables t_zint_data
                        changing v_rtcod.
      clear l_status.
      loop at t_zint_data.
    Create subset of all records, per Command Date
        at new created_on.
          refresh t_idata.
          clear l_lines.
        endat.
        at new key_val.
          add 1 to l_lines.
        endat.
        append t_zint_data-raw_data to t_idata.
    Process one date at a time
        at end of created_on.
    Progress Message:
          write t_zint_data-created_on to l_date dd/mm/yyyy.
          concatenate 'Processing' l_lines 'records for'
                      p_intid '/' p_intty '/' p_intsi 'Created:'
                      l_date
            into l_message separated by space.
          call function 'SAPGUI_PROGRESS_INDICATOR'
            exporting
              text = l_message.
    Process the incoming data
          assign s_admin-zint_fm to <function>.
          call function <function>
            exporting
              i_zint_id             = p_intid
              i_zint_ty             = p_intty
              i_zint_si             = p_intsi
              i_zint_is             = p_intis
              i_zint_dl             = p_dlgrp
              i_zint_as             = p_apsrv
              i_zint_al             = p_alone
              i_zint_nw             = p_nowar
              i_zint_sq             = p_intsq
            tables
              t_zint_mslog          = t_ldata
              t_zint_idata          = t_idata
              t_zint_param          = t_param
            changing
              c_zint_rc             = v_rtcod
            exceptions
              no_such_interface     = 1
              invalid_parameter_set = 2
              data_table_empty      = 3
              invalid_idoc_group    = 4.
          case sy-subrc.
    --No Such Interface--
            when 1.
              perform write_log_entry
                tables t_ldata
                using  'E' 'ZINT_INBOUND_POLLING' <function>
                       'Interface does not exist in ZINT_ADMIN.'
                       p_nowar space.
    --Invalid Parameter Set----
            when 2.
              perform write_log_entry
                tables t_ldata
                using  'E' 'ZINT_INBOUND_POLLING' <function>
                       'Invalid parameter set for interface. Check ZINT_PARAM'
                       p_nowar space.
    --Data Table Empty--
            when 3.
              perform write_log_entry
                tables t_ldata
                using  'E' 'ZINT_INBOUND_POLLING' <function>
                       'No inbound data. Check directory as per ZINT_ADMIN'
                       p_nowar space.
    --Invalid IDOC group--
            when 4.
              perform write_log_entry
                tables t_ldata
                using 'E' 'ZINT_INBOUND_POLLING' <function>
                      'Invalid IDOC group. Check ZINT_ADMIN.'
                      p_nowar space.
    --Others--
            when others.
          endcase.
    Now store messages not related to a specific key
          loop at t_ldata into s_ldata where key_val = space.
            move s_ldata-messg to tbl_messages-line.
            append tbl_messages.
          endloop.
          refresh t_ldata.
    If data for last date had errors, then stop processing further dates
          clear l_last_status.
          select status from zint_data into l_last_status
            where zint_id = p_intid
            and   zint_ty = p_intty
            and   key_val = t_zint_data-key_val.
          endselect.
          if l_last_status = 'ERR'.
            concatenate 'Processing Halted - Errors for Date' l_date
              into l_message separated by space.
            message s999(b1) with 'ZINT_INBOUND_POLLING' <function>
                     l_message.
            exit.
          endif.
        endat.
      endloop.
    endform.                    "process_data
    *&      Form  set_screen_texts
          Assign values to the selection screen titles.
    form set_screen_texts .
      t_mode  = 'Run Mode'.                                     " RJS
    endform.                    " set_screen_texts
    RJS Start >>>
    *&      Form  write_data
          Save the Inbound data to table ZINT_DATA, for later processing
         -->PT_IDATA   text
         -->PV_ID      text
         -->PV_TY      text
         -->PV_FM
         -->PV_IB
    form write_data tables pt_idata structure zint_idata
                    using  pv_id
                           pv_ty
                           pv_fm
                           pv_ib.
      data: l_key_val    like zint_data-key_val,
            l_seq        like zint_data-sequence,
            l_created_on like zint_data-created_on,
            l_counter    type i.
      data: lt_zint_data type standard table of zint_data with header line.
      get time.
      clear l_created_on.
      refresh lt_zint_data.
      loop at pt_idata.
        clear lt_zint_data.
        lt_zint_data-zint_id    = pv_id.
        lt_zint_data-zint_ty    = pv_ty.
        lt_zint_data-status     = 'NEW'.
    Derive both the "Key" value (KEY_VAL) and the
    "Command Data Date" value (CREATED_ON) to store on the Data table
        case pv_fm.
          when 'ZINT_INBOUND_INTERFACE_CSSORDR'.
            if pt_idata-zint_re(2) = '01'.
              perform get_command_order_key using pt_idata-zint_re
                                                  l_key_val
                                                  l_created_on.
            endif.
          when 'ZINT_INBOUND_INTERFACE_CSTPORD'.
            if pt_idata-zint_re(2) = '01'.
              perform get_prod_order_key using pt_idata-zint_re
                                               l_key_val
                                               l_created_on.
            endif.
          when 'ZINT_INBOUND_INTERFACE_CSTGISS'.
            perform get_sales_order_key using pt_idata-zint_re
                                            l_key_val.
        endcase.
        lt_zint_data-created_on = l_created_on.
        lt_zint_data-key_val    = l_key_val.
        lt_zint_data-length     = strlen( pt_idata-zint_re ).
        lt_zint_data-raw_data   = pt_idata-zint_re.
        append lt_zint_data.
      endloop.
    Setup the sequence number for each key value
      loop at lt_zint_data.
        at new key_val.
          clear l_seq.
        endat.
        add 1 to l_seq.
        lt_zint_data-sequence = l_seq.
        modify lt_zint_data.
      endloop.
    Check for existing data with this same key
      clear l_counter.
      select count(*) from zint_data into l_counter
        for all entries in lt_zint_data
        where zint_id    = lt_zint_data-zint_id
        and   zint_ty    = lt_zint_data-zint_ty
        and   created_on = lt_zint_data-created_on
        and   key_val    = lt_zint_data-key_val
        and   sequence   = lt_zint_data-sequence.
    Found duplicate data?
      if l_counter > 0.
    Yes: so remove these records from the input table
        loop at lt_zint_data.
          clear l_counter.
          select count(*) from zint_data into l_counter
            where zint_id    = lt_zint_data-zint_id
            and   zint_ty    = lt_zint_data-zint_ty
            and   created_on = lt_zint_data-created_on
            and   key_val    = lt_zint_data-key_val
            and   sequence   = lt_zint_data-sequence.
          if l_counter > 0.
            delete lt_zint_data.
          endif.
        endloop.
        message i999(b1) with 'Data already exists in SAP! Directory:' pv_ib
                              'Key:' lt_zint_data-key_val.
      endif.
    Now save whatever is not a duplicate
      loop at lt_zint_data.
    Store new data records
        insert zint_data from lt_zint_data.
    and Store totals for reporting
        tbl_totals-zint_id    = lt_zint_data-zint_id.
        tbl_totals-zint_ty    = lt_zint_data-zint_ty.
        tbl_totals-created_on = lt_zint_data-created_on.
        tbl_totals-count      = 1.
        collect tbl_totals.
      endloop.
    endform.                    "write_data
    *&      Form  get_command_order_key
          Extract Command Order from raw data
         -->L_LINE     text
         -->L_KEY      text
    form get_command_order_key using l_line l_key l_date.
      data: l_orddate    type d,
            l_order(12)  type n,
            l_data(3000) type c,
            l_shortorder(5) type n.
      l_data = l_line.
      perform extract_field(saplzint_csord)
        using    l_data
        changing l_data
                 l_orddate.
      perform extract_field(saplzint_csord)
        using    l_data
        changing l_data
                 l_order.
      l_shortorder = l_order.
      if l_order le 9999.
        concatenate l_orddate+2(6) '-'
                    l_shortorder
          into      l_key.
      else.
        concatenate l_orddate+2(6)
                    l_shortorder
          into      l_key.
      endif.
      l_date = l_orddate.
    endform.                    "get_command_order_key
    *&      Form  get_prod_order_key
          Extract Commant Ticket number from raw data
         -->L_LINE     text
         -->L_KEY      text
    form get_prod_order_key using l_line l_key l_date.
      data: l_ticketdate type d,
            l_data(3000) type c,
            l_ticket(10) type n.
      l_data = l_line.
      perform extract_field(saplzint_cstik)
        using    l_data
        changing l_data
                 l_ticketdate.
      perform extract_field(saplzint_cstik)
        using    l_data
        changing l_data
                 l_ticket.
      l_key = l_ticket.
      l_date = l_ticketdate.
    endform.                    "get_prod_order_key
    *&      Form  get_sales_order_key
          text
         -->L_LINE     text
         -->L_KEY      text
    form get_sales_order_key using l_line l_key.
      l_key = l_line(10).
    endform.                    "get_sales_order_key
    *&      Form  read_data
          Read data from custom table
         -->PT_ZINT_DATA   text
         -->P_STATUS   text
    form read_data tables pt_zint_data structure zint_data
                   changing p_rtcod.
      data: lt_zint_data type standard table of zint_data with header line.
      data: l_found_rec(1) type c.
      clear p_rtcod.
      refresh: pt_zint_data, lt_zint_data.
    Read stored data in date/time order
      select * from zint_data into table lt_zint_data
        where zint_id = p_intid
        and   zint_ty = p_intty
        and   status in ('ERR','NEW')
        and   created_on in s_datum
        order by created_on key_val sequence.
    Always ensure any existing Error records are re-processed first.
      loop at lt_zint_data where status = 'ERR'.
        move lt_zint_data to pt_zint_data.
        append pt_zint_data.
    Store totals for reporting
        tbl_totals-zint_id    = p_intid.
        tbl_totals-zint_ty    = p_intty.
        tbl_totals-created_on = lt_zint_data-created_on.
        tbl_totals-count      = 1.
        collect tbl_totals.
      endloop.
    Loop through the NEW records - add to list if no other errors
      loop at lt_zint_data where status = 'NEW'.
        l_found_rec = 'N'.
        loop at pt_zint_data where status = 'ERR'
                             and   created_on <> lt_zint_data-created_on.
          l_found_rec = 'Y'.
          exit.
        endloop.
    Found no errors for another date - so add NEW data
        if l_found_rec = 'N'.
          move lt_zint_data to pt_zint_data.
          append pt_zint_data.
    Store totals for reporting
          tbl_totals-zint_id    = p_intid.
          tbl_totals-zint_ty    = p_intty.
          tbl_totals-created_on = lt_zint_data-created_on.
          tbl_totals-count      = 1.
          collect tbl_totals.
        endif.
      endloop.
    endform.                    "read_data
                      UNDER THIS THERE IS BELOW PROGRAM
    *&  Include           ZINT_CSTPORD_ROUTINES                            *
    Report:      ZINT_CSTPORD_ROUTINES
    Description: REDDIES Interfaces: COMMAND-SAP Interface Forms (Tickets)
    Routines fpr the COMMAND-SAP production order interface. Note: some
    of the code in this file has been directly copied from the original
    interface (ZPPU_COMMAND_PRODUCTION, Jason Moore, Extend). This has
    been done for two reasons: (1) the code works and (2) to save time.
    Change History:
    Date        User  Request     Description
    13/02/2006  EDWG  WG1K902600  Original program.
    *&      Form  process_inbound_data
          Create prod. orders from ticket data extracted from the COMMAND
          system. Note that large portions of the code in this routine
          have been copied from the retired ZPPU_COMMAND_PRODUCTION
          interface program. This was done (1) because the old code works
          and (2) to save development time.
         -->T_ZINT_IDATA  Internal table of interface data
         -->T_ZINT_PARAM  Internal table of interface parameters
         -->T_ZINT_MSLOG  Internal table of messages
         -->P_ZINT_ID     Interface ID
         -->P_ZINT_TY     Inteface type
         -->P_ZINT_IS     IDOC group for interface
         -->P_ZINT_DL     Flag: delete IDOC group when complete
         -->P_ZINT_AL     Flag: run in standalone mode
         -->P_ZINT_NW     Flag: do not log warning messages
         -->P_ZINT_SQ     Interface sequence number
         <--P_ZINT_RC     Return code (<>0=>error)
    form process_inbound_data  tables   t_zint_idata structure zint_idata
                                        t_zint_param structure zint_param
                                        t_zint_mslog structure zint_mslog
                               using    p_zint_id    type      zint_id
                                        p_zint_ty    type      zint_ty
                                        p_zint_is    type      zint_is
                                        p_zint_dl    type      zint_dl
                                        p_zint_al    type      zint_al
                                        p_zint_nw    type      zint_nw
                                        p_zint_sq    type      zint_sq
                               changing p_zint_rc    type      zint_rc.
      data: lva_partner(10)   type n,
            lva_cmdord(12)    type n,
            lva_prodmat(18)   type n,
            lva_filemat(18)   type n,
            lva_prodord(12)   type n,
            lwa_file          type ty_file,
            lva_type(2)       type c,
            lva_satsur        type c,
            lva_mincart       type c,
            lva_text(200)     type c,
            lva_counter       type i,
            bblines           type i,
            lva_shortorder(5) type n,
            lva_loggr         like marc-loggr,
            lva_saleord       like vbkd-vbeln,
            lva_linkindex     like sy-tabix,
            lva_xabln         like likp-xabln,
            lva_vbeln         like likp-vbeln,
            l_vbfa            like vbfa,
            lva_igmng         like caufv-igmng,
            lva_gamng         like caufv-gamng,
            lva_qdiff         like caufv-gamng,
            lva_ltxa1         like afru-ltxa1,
            lva_aufnr         like afru-aufnr,
            lva_wemng         like afpo-wemng,
            lva_psmng         like afpo-psmng,
            lva_rsnum         like resb-rsnum,
            lva_rspos         like resb-rspos,
            l

    Hi ,
    Modify your code like this .
    DATA: YEARS TYPE TFMATAGE,
    MONTHS TYPE TFMATAGE.
    *declare the variable as type Char
    DATA: Y_NUM(4) TYPE c,
    M_NUM(2) TYPE c.
    IF NOT SOURCE_FIELDS-/BIC/ZDOB IS INITIAL.
    CALL FUNCTION 'FIMA_DAYS_AND_MONTHS_AND_YEARS'
    EXPORTING
    I_DATE_FROM = SOURCE_FIELDS-/BIC/ZDOB
    I_DATE_TO = SY-DATUM
    I_FLG_SEPARATE = 'X'
    IMPORTING
    E_MONTHS = MONTHS
    E_YEARS = YEARS.
    Y_NUM = YEARS.
    M_NUM = MONTHS.
    CONCATENATE Y_NUM '.' M_NUM INTO RESULT.
    This will solve your problem.
    MM

  • ABAP code used in transaction SU01

    Hi all,
    Can anyone tell me that whether is there any method by which I can pass the user id and can know whether that user has the SAP_ALL profile or not.
    The above is done by using the transaction SU01,but I need the ABAP code that is being used in this transaction.
    Regards,
    Varun.

    YOu can query the table:
    UST04
    select single * from UST04 where BNAME = sy-uname
                                               and PROFILE = 'SAP_ALL'.
    if sy-subrc = 0.
    write:/ 'The User' sy-uname 'has SAP_ALL profile'.
    endif.
    Regards,
    Ravi

  • RE: Abap Code Flow for Multiple Authorization checks

    Hi all,
    I am basically a security person, but i have some doubts on Authority-check in ABAP code. so i thought this is best place to understand the execution of ABAP code.
    Q1. I know that ABAP programmers will put Authority check in ABAP code and when program was executed Authority-check will compare whether user has access to this object or not.
    for EX take some tcode ZXYY
    i activated 3 objects out of some 20 objects for this tcode in SU24.
    Authority checks are placed in the program.
    when this tcode was executed and started the ABAP code, then i think it will do the authority check for the first object and if user has the profile to it then it will go for the second authority-check for which if user does not had profile ( i made inactive in role)  will the code terminate  and throw some error there it self or will it go for the for 3rd object for which again user has access. (user got access to this 3rd object)
    can any explain?
    Q2. Should the activities be same as in Authority-check.
    I mean in Authority check if you give activities 02 and 03  and in user profile if i give only 02 will it work or not?
    thanks,
    Sun

    Refer Below Code:
    IF SY-TCODE = 'CJ40'.
         AUTHORITY-CHECK OBJECT 'ZPS_VERSN'    "'ZWMM_WERK'
            ID 'VERSN' FIELD bpdy-VERSN
            ID 'ACTVT' FIELD '01'
            ID 'ACTVT' FIELD '02'
            ID 'ACTVT' FIELD '03' .
           IF SY-SUBRC = 0.
    *        continue.
           elseif SY-SUBRC <> 0.
             AUTHORITY-CHECK OBJECT 'ZPS_VERSN'    "'ZWMM_WERK'
               ID 'VERSN' FIELD bpdy-VERSN
               ID 'ACTVT' FIELD '01'.
               IF sy-subrc = 0.
    *            CONTINUE.
               ELSEIF sy-subrc <> 0.
                  AUTHORITY-CHECK OBJECT 'ZPS_VERSN'    "'ZWMM_WERK'
                   ID 'VERSN' FIELD bpdy-VERSN
                   ID 'ACTVT' FIELD '02'.
                   IF sy-subrc eq 0 .
    *                CONTINUE.
                   ELSEIF sy-subrc <> 0 .
                     AUTHORITY-CHECK OBJECT 'ZPS_VERSN'    "'ZWMM_WERK'
                      ID 'VERSN' FIELD bpdy-VERSN
                      ID 'ACTVT' FIELD '03'.
                      IF sy-subrc = 0.
                        versn = bpdy-versn.
                        v_proj = proj-pspid.
                        wbs = PRPS-POSID.
                        set PARAMETER ID 'PSP' FIELD  v_proj.
                        set PARAMETER ID 'BP2' FIELD  VERSN.
                        set PARAMETER ID 'PRO' FIELD  wbs.
                        LEAVE TO TRANSACTION 'CJ41' AND SKIP FIRST SCREEN.
                      ELSEIF sy-subrc ne 0.
                        MESSAGE 'You are not authorised for this version.' TYPE 'E'.
                      ENDIF.
                   ENDIF.
               ENDIF.
             ENDIF.
       ENDIF.

  • ABAP code Help for Customer Exit variable

    Hello All,
    Can anyone provide ABAP code for a customer exit variable please?
    Requirement:
    0CALYEAR(InfoObject) - ZCALCYR (Variable) <b>Calender year with default value actual year</b>.
    Proiperties of variable: single value,mandatory,ready for input,can'be changed in query navigation.
    i have read some docs on customet exit variables which i got from SDN but i found it's difficult for me to get this as i am not that good in ABAP.
    Thanks,
    Rakesh.

    Hi,
       Just check the below code. You just need to make slight changes I believe. Hope this helps you.
    In CMOD………..
    Sample code
      INCLUDE LXRSRF01                                                   *
    data: l_s_range type rsr_s_rangesid.
    case i_vnam.
      when 'ZCALCYR'.
        if i_step = 1.
         l_s_range-low = sy-datum+0(4).
            append l_s_range to e_t_range.
        Endif.
    Endcase.

Maybe you are looking for

  • How to track , who has deleted table entry

    Hi Experts, Is there any way so that i can know that who has manually deleted few entries(data records) from my table,actually my table has "Display maintenance allowed" property set. Can we track it anyway that when and who has deleted that table re

  • Photos not showing up right! Please help!

    I imported some photos into iPhoto, and when I put them over a clip and hit play in iMovie, you can see the video playing underneath (where the two black bars are above and below like on widescreen). I don't know what to do!

  • Dataguard Failure scenario

    In my current environemnt Production database has one physical standby database. The size of the database is 5 TB. Due the network failure 4 days archivelog files were not copied to primary database (archivelog files were deleted in primary database)

  • Full repair req where its pick the data in RSA7 or RSA3

    Hi, Full repair request where its pick the data in RSA7 or RSA3. Regards, Narasa.

  • In search of someone who's capable of doing their job.

    7 weeks ago we signed up to eircom with e-fibre broadband, techy came out a couple days later and told us work had to be done on the road because there was no landline in the house. Fair enough , then we were told we had to wait 2 weeks to get permit