Complex Reporting Requirement

I have four reports that need to run in sequence; Parameters are supplied to the first report and then passed to the second, second passes to third and on.... I've tried using the srw.run_report but get a runtime error after the first report runs and no subsequent reports are produced. I have this call in the after report trigger. I need all these reports, in sequence, to write/append to the same print file. These are to be high quality, published books. Also, I notice when generating output to different formats, pdf, eps, html etc. that the cell borders skew badly - only when I print direct from reports do the lines format correctly. I use centimeters for the layout and have 200 snaps per cm. Are there standard ruler settings that will allow consistent formatting when generating various types of print files.

I need all these reports, in sequence, to write/append to the same print file. Since you're creating high quality, published books, the only output formats that would be applicable are Postscript/PCL & PDF output. Unfortunately, Reports doesn't allow you to write/append the output from multiple reports to a single file with these outputs. (It actually doesn't allow you on any output but you can workaround the issues with other formats such as HTML).
Since Reports doesn't support your current architecture, it seems that you need to change how you're running your reports. I don't know why you have 4 separate reports but I'm guessing it's because you have 4 page style layouts that you couldn't fit into 1 layout report page(?)
If this is the case, you can actually have layouts objects that extends vertically beyond the page boundary. You just need to make sure that they will end up within the page boundary when they are printed. You aren't restricted to the physical page size when designing the report, only when running it.
In your case, you can combine each of your layouts into a single Report one after the other. Then place a frame around each of the 4 page layouts and make sure their vertical sizing is variable. (Also make sure the frames are beneath all the other objects using the "send to back" option).
What you're doing is creating an implicit anchor between these variable sized frames. When the first frame finishes printing, the other frames will move up to where the first frame was.
The above method will allow you to keep everything in a single report and produce your combined output. You can also turn on/off the frames using format triggers if you want to run any of the layouts individually.

Similar Messages

  • Complex reporting

    Hi,
    I have requirement to develop a complex reporting in such way:
                    Pervious Year(PY) | Current Year(CY) | % PY/CY
       KF1      
         KF1a
       KF2
         KF2a
    How can I make query for this layout?
    Thanks,
    Helen

    Hi Helen,
    You can do it like this. Keep all the required KFs in rows. In columns add a new structure. Make a new selection for Previous year (PY). Add the year characteristic here and include the variable for the year here (Either SAP exit for current year or user entry). Give an offset of -1. Similarly create another new selection for Current year. Use the same variable here without any offset. Create a new formula for %PY/CY. In this way you can achieve this layout. Do post back incase of further clarification.
    Thanks.
    Sumit

  • Simplel complex report query

    hi guru's
    i had prepared two complex reports seperately having the same Selection-screen , internal tables and declerations...now i have to combine both the reports into one single report....based upon <b>one field (i.e, filed PROCESS_TYPE)</b> of Selection-criteria(i.e, S_PR_TYP ) i have to display 2 outputs..One for SHC and another for CONF.....But the Logic  and Header display for the 2 output's is different   ........please let me know where should i write the logic ....and how the logic should be build....
    the code is as follows :
    <u><b>The code which is common for both the reports:</b></u>
    $$********************************************************************
    $$    TABLES DECLERATION
    $$********************************************************************
    TABLES: crmd_orderadm_h,
            crmd_orderadm_i,
            bbp_pdigp.
    $$********************************************************************
    $$  TYPE-POOLS
    $$********************************************************************
    TYPE-POOLS: slis, list.
    $$********************************************************************
    $$    GLOBAL TYPES
    $$********************************************************************
    TYPES: BEGIN OF y_str1,
           CLIENT         TYPE CRMD_ORDERADM_H-CLIENT,
           guid           TYPE crmd_orderadm_h-guid,
           object_id      TYPE crmd_orderadm_h-object_id,
           object_type    TYPE crmd_orderadm_h-object_type,
           process_type   TYPE crmd_orderadm_h-process_type,
           created_at     TYPE crmd_orderadm_h-created_at,
           changed_at     TYPE crmd_orderadm_h-changed_at,
           archiving_flag TYPE crmd_orderadm_h-archiving_flag,
           deliv_date     TYPE bbp_pdigp-deliv_date,
           final_entry    TYPE bbp_pdigp-final_entry,
           del_ind        TYPE bbp_pdigp-del_ind,
           END OF y_str1.
    TYPES: BEGIN OF y_str2,
           guid1          TYPE crmd_orderadm_h-guid,
           object_id      TYPE crmd_orderadm_h-object_id,
           object_type    TYPE crmd_orderadm_h-object_type,
           process_type   TYPE crmd_orderadm_h-process_type,
           created_at     TYPE crmd_orderadm_h-created_at,
           changed_at     TYPE crmd_orderadm_h-changed_at,
           archiving_flag TYPE crmd_orderadm_h-archiving_flag,
           guid2          TYPE crmd_orderadm_i-guid,
           header         TYPE crmd_orderadm_i-header,
           guid3          TYPE bbp_pdigp-guid,
           deliv_date     TYPE bbp_pdigp-deliv_date,
           final_entry    TYPE bbp_pdigp-final_entry,
           del_ind        TYPE bbp_pdigp-del_ind,
           END OF y_str2.
    $$********************************************************************
    $$    GLOBAL CONSTANTS
    $$********************************************************************
    CONSTANTS: C_BLANK_F(1)           TYPE C VALUE 'X',
               C_DEL_IND_F(1)         TYPE C VALUE 'X',
               C_ARCHIVING_FLAG(1)    TYPE C VALUE 'X',
               C_FINAL_ENTRY_F(1)     TYPE C VALUE 'X',
               C_FINAL_ENTRY_SPACE(1) TYPE C VALUE ' ',
               C_CBA_SPACE(1)         TYPE C VALUE ' ',
               C_DEL_SPACE(1)         TYPE C VALUE ' '.
    $$********************************************************************
    $$    Global Elementary Variables
    $$********************************************************************
    DATA: w_ld_lines                 TYPE i,
          w_ld_linesc(10)            TYPE c,
          w_del_ind                  TYPE c,
          w_final_entry              TYPE c,
          w_COUNT_cba                TYPE I VALUE 0,
          w_count_f                  TYPE I VALUE 0,
          W_BLANK_F                  TYPE C,
          W_FINAL_ENTRY_F            TYPE C,
          W_DEL_COUNT                TYPE I VALUE 0,
          W_PER_CBA1                 TYPE P decimals 3,
          W_PER_CBA                  TYPE P decimals 2,
          W_PER_E_LINE               TYPE I,
          W_N                        TYPE I.
    $$********************************************************************
    $$    GLOBAL INTERNAL TABLES (custom structure)
    $$********************************************************************
    DATA:   t_str_sc1 TYPE STANDARD TABLE OF y_str1 INITIAL SIZE 1.
    DATA:   t_str_sc2 TYPE STANDARD TABLE OF y_str2 INITIAL SIZE 1.
    DATA:   t_header      TYPE   slis_t_listheader,
            w_header      TYPE   slis_listheader,
            e_line        LIKE   w_header-info.
    DATA:   v_index       LIKE SY-TABIX.
            v_index = '1'.
    $$********************************************************************
    $$    GLOBAL FIELD-SYMBOLS
    $$********************************************************************
    FIELD-SYMBOLS: <FS_STR1> TYPE Y_STR1,
                   <FS_STR2> TYPE Y_STR2.
    $$********************************************************************
    $$    PARAMETERS & SELECT-OPTIONS
    $$********************************************************************
    SELECTION-SCREEN: BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
    SELECT-OPTIONS: s_scno   FOR crmd_orderadm_h-object_id,
                    s_pr_typ FOR crmd_orderadm_h-process_type NO INTERVALS NO DATABASE SELECTION NO-EXTENSION DEFAULT 'SHC',
                    s_change FOR crmd_orderadm_h-changed_at.
    SELECTION-SCREEN END OF BLOCK b1.
    $$********************************************************************
    $$    START-OF-SELECTION
    $$********************************************************************
    START-OF-SELECTION.
      REFRESH t_str_sc1.
      SELECT client
             guid
             object_id
             object_type
             process_type
             created_at
             changed_at
             archiving_flag
             FROM crmd_orderadm_h INTO TABLE t_str_sc1
             WHERE object_id IN s_scno AND  changed_at IN s_change AND process_type IN s_pr_typ.
      IF sy-subrc <> 0.
        MESSAGE I002.
      ENDIF.
      LOOP AT t_str_sc1 ASSIGNING <FS_STR1>.
        REFRESH t_str_sc2.
        SELECT a~guid
               a~object_id
               a~object_type
               a~process_type
               a~created_at
               a~changed_at
               a~archiving_flag
               b~guid
               b~header
               c~guid
               c~deliv_date
               c~final_entry
               c~del_ind
          INTO TABLE t_str_sc2
          FROM crmd_orderadm_h AS a INNER JOIN crmd_orderadm_i AS b
            ON aguid eq bheader INNER JOIN bbp_pdigp AS c
            ON bguid eq cguid
         WHERE a~guid eq <FS_STR1>-guid.
    <u><b>THE LOGIC FOR FIRST REPORT:</b></u>
    *"logic for displaying Delivery date at Header level
          SORT T_STR_SC2 BY DELIV_DATE.
          DESCRIBE TABLE T_STR_SC2 LINES W_N.
         READ TABLE T_STR_SC2 WITH KEY DELIV_DATE = T_STR_SC2-DELIV_DATE INTO <FS_STR2>-deliv_date.
          READ TABLE T_STR_SC2 INDEX v_index ASSIGNING <FS_STR2>.
          IF SY-SUBRC = 0.
            <FS_STR1>-deliv_date = <FS_STR2>-deliv_date.
            MODIFY  T_STR_SC1 FROM <FS_STR1> TRANSPORTING DELIV_DATE.
          ENDIF.
    *"Setting up the flags for the entire items in CRMD_ORDERADM_H as per the scenario
        LOOP AT T_STR_SC2 ASSIGNING <FS_STR2> WHERE HEADER EQ <FS_STR1>-GUID.
          IF <FS_STR2>-DEL_IND NE 'X'.
            IF <FS_STR2>-FINAL_ENTRY NE 'X'.
              W_BLANK_f = C_BLANK_F.
            ELSE.
              W_FINAL_ENTRY_F = C_FINAL_ENTRY_F.
            ENDIF.
          ENDIF.
        ENDLOOP.
    *"Logic started at item level
        LOOP AT T_STR_SC2 ASSIGNING <FS_STR2> WHERE HEADER EQ <FS_STR1>-GUID.
          IF W_BLANK_F NE 'X'.
            IF W_FINAL_ENTRY_F NE 'X'.
    *" Displaying the status for Del 'X' , Final_entry ' ', Archive_flag 'X'.
              <FS_STR1>-DEL_IND = C_DEL_IND_F.
             W_DEL_COUNT = W_DEL_COUNT + 1.
              <FS_STR1>-FINAL_ENTRY = C_FINAL_ENTRY_SPACE.
              <FS_STR1>-ARCHIVING_FLAG = C_ARCHIVING_FLAG.
             w_COUNT_cba = w_COUNT_cba + 1.
              MODIFY  T_STR_SC1 FROM <FS_STR1> TRANSPORTING DEL_IND FINAL_ENTRY ARCHIVING_FLAG.
            ELSE.
    *" Displaying the status for Del ' ' , Final_entry 'X', Archive_flag 'X'.
              <FS_STR1>-FINAL_ENTRY = C_FINAL_ENTRY_F.
             w_count_f  = w_count_f  + 1.
              <FS_STR1>-DEL_IND = C_DEL_SPACE.
              <FS_STR1>-ARCHIVING_FLAG = C_ARCHIVING_FLAG.
             w_COUNT_cba = w_COUNT_cba + 1.
              MODIFY  T_STR_SC1 FROM <FS_STR1> TRANSPORTING FINAL_ENTRY DEL_IND ARCHIVING_FLAG.
            ENDIF.
          ELSE.
    *" Displaying the status for Del ' ' , Final_entry ' ', Archive_flag ' '.
            <FS_STR1>-DEL_IND = C_DEL_SPACE.
            <FS_STR1>-FINAL_ENTRY = C_FINAL_ENTRY_SPACE.
            <FS_STR1>-ARCHIVING_FLAG = C_CBA_SPACE.
            MODIFY  T_STR_SC1 FROM <FS_STR1> TRANSPORTING DEL_IND FINAL_ENTRY ARCHIVING_FLAG .
          ENDIF.
        ENDLOOP.    "end of t_str_sc2
        if  <FS_STR1>-DEL_IND eq C_DEL_IND_F.
             W_DEL_COUNT = W_DEL_COUNT + 1.
        endif.
       if <FS_STR1>-FINAL_ENTRY eq C_FINAL_ENTRY_F.
                w_count_f  = w_count_f  + 1.
       endif.
      if  <FS_STR1>-ARCHIVING_FLAG eq C_ARCHIVING_FLAG.
               w_COUNT_cba = w_COUNT_cba + 1.
        endif.
        CLEAR: W_BLANK_F , W_FINAL_ENTRY_F.
    *"Logic ended at item level
      ENDLOOP.    "end of t_str_sc1
    *" when Transaction type is SHC
    IF <FS_STR1>-process_type EQ 'SHC'.
    DESCRIBE TABLE t_str_sc1 LINES w_ld_lines.
      w_ld_linesc = w_ld_lines.
      CONCATENATE ' TOTAL NO OF RECORDS SELECTED:' w_ld_linesc INTO e_line SEPARATED BY space.
    *" Percentage of Archived SC's
      W_PER_E_LINE = w_ld_lines.
      W_PER_CBA1 = W_COUNT_CBA / W_PER_E_LINE.
      W_PER_CBA = W_PER_CBA1 * 100.
    *" Displaying the total no of records fetched for DB
      FORMAT COLOR 7.
      WRITE:/9 e_line .
      WRITE:/10 'TOTAL NO OF FINAL ENTRIES SELECTED:',        w_count_f.
      WRITE:/10 'TOTAL NO OF DELETE ENTRIES SELECTED:',       W_DEL_COUNT.
      WRITE:/10 'TOTAL NO OF ENTRIES SELECTED FOR ARCHIVING:',w_COUNT_cba.
      SKIP.
      WRITE:/10 'PERCENTAGE OF CAN BE ARCHIVED:',W_PER_CBA,'%'.
      FORMAT COLOR 3.
      SKIP.
      WRITE:/30 '#### SC HAVING FINAL ENTRY INDICATOR FOR ALL ITEM IN SRM #####'.
      FORMAT COLOR OFF.
      WRITE:/30(63) SY-ULINE.
      ULINE.
    *" Displaying Headings for the Report
    NEW-LINE SCROLLING.
      WRITE:/3        'Transaction No',                          18  sy-vline,
             19       'Transaction Type',                        36  sy-vline,
             37       'Business Trans.Cat',                      56  sy-vline,
             57       'Created On',                              68  sy-vline,
             69(10)   'Changed On',                              84  sy-vline,
             85       'Delivery date',                           99  sy-vline,
            100       'Final Entry Ind',                        115  sy-vline,
            116       'Deletion Ind',                           129  sy-vline,
            130       'Can be Archived',                        146  sy-vline.
    SET LEFT SCROLL-BOUNDARY COLUMN 19.
      ULINE.
    $$********************************************************************
    $$    DISPLAY DATA AT HEADER LEVEL FOR SHC
    $$********************************************************************
    *" Sort the SC in Sequence
      SORT t_str_sc1 BY object_id.
      IF SY-SUBRC = 0.
    *" Displaying the Report at Header level
        LOOP AT t_str_sc1 ASSIGNING <FS_STR1>.
          IF NOT <FS_STR1>-archiving_flag IS INITIAL.
            FORMAT COLOR 7.
          ELSE.
            FORMAT COLOR 3.
          ENDIF.
      WRITE:/3        <FS_STR1>-object_id,                       18  sy-vline,
             19       <FS_STR1>-process_type,                    36  sy-vline,
             37       <FS_STR1>-object_type,                     56  sy-vline,
             57       <FS_STR1>-created_at,                      68  sy-vline,
             69(10)   <FS_STR1>-changed_at,                      84  sy-vline,
             85       <FS_STR1>-deliv_date,                      99  sy-vline,
            100       <FS_STR1>-final_entry,                    115  sy-vline,
            116       <FS_STR1>-del_ind,                        129  sy-vline,
            130       <FS_STR1>-archiving_flag,                 146  sy-vline.
        ENDLOOP.   "end of t_str_sc1 displaying at header level
      ENDIF.    "End of SY-SUBRC
    *ENDCASE.
    ENDIF.   "End of displaying Transaction type as SHC
    *" when Transaction type is CONF
    IF <FS_STR1>-process_type EQ 'CONF'.
      DESCRIBE TABLE t_str_sc1 LINES w_ld_lines.
      w_ld_linesc = w_ld_lines.
      CONCATENATE ' TOTAL NO OF RECORDS SELECTED:' w_ld_linesc INTO e_line SEPARATED BY space.
    *" Percentage of Archived SC's
      W_PER_E_LINE = w_ld_lines.
      W_PER_CBA1 = W_COUNT_CBA / W_PER_E_LINE.
      W_PER_CBA = W_PER_CBA1 * 100.
    *" Displaying Headings for the Report
    *" Displaying the total no of records fetched for DB
      FORMAT COLOR 7.
      WRITE:/9 e_line .
    WRITE:/10 'TOTAL NO OF FINAL ENTRIES SELECTED:',        w_count_f.
      WRITE:/10 'TOTAL NO OF DELETE ENTRIES SELECTED:',       W_DEL_COUNT.
      WRITE:/10 'TOTAL NO OF ENTRIES SELECTED FOR ARCHIVING:',w_COUNT_cba.
      SKIP.
      WRITE:/10 'PERCENTAGE OF CAN BE ARCHIVED:',W_PER_CBA,'%'.
      FORMAT COLOR 3.
      SKIP.
      WRITE:/30 '#### SC HAVING FINAL ENTRY INDICATOR FOR ALL ITEM IN SRM #####'.
      FORMAT COLOR OFF.
      WRITE:/30(63) SY-ULINE.
      ULINE.
    NEW-LINE SCROLLING.
      WRITE:/3        'Transaction No',                          18  sy-vline,
             19       'Transaction Type',                        36  sy-vline,
             37       'Business Trans.Cat',                      56  sy-vline,
             57       'Created On',                              68  sy-vline,
             69(10)   'Changed On',                              84  sy-vline,
             85       'Delivery date',                           99  sy-vline,
           100       'Final Entry Ind',                        115  sy-vline,
            100       'Deletion Ind',                           112  sy-vline,
            113       'Can be Archived',                        129  sy-vline.
    SET LEFT SCROLL-BOUNDARY COLUMN 19.
      ULINE.
    *$$********************************************************************
    *$$    DISPLAY DATA AT HEADER LEVEL
    *$$********************************************************************
    *" Sort the SC in Sequence
      SORT t_str_sc1 BY object_id.
      IF SY-SUBRC = 0.
    *" Displaying the Report at Header level
        LOOP AT t_str_sc1 ASSIGNING <FS_STR1>.
          IF NOT <FS_STR1>-archiving_flag IS INITIAL.
            FORMAT COLOR 7.
          ELSE.
            FORMAT COLOR 3.
          ENDIF.
      WRITE:/3        <FS_STR1>-object_id,                       18  sy-vline,
             19       <FS_STR1>-process_type,                    36  sy-vline,
             37       <FS_STR1>-object_type,                     56  sy-vline,
             57       <FS_STR1>-created_at,                      68  sy-vline,
             69(10)   <FS_STR1>-changed_at,                      84  sy-vline,
             85       <FS_STR1>-deliv_date,                      99  sy-vline,
           100       <FS_STR1>-final_entry,                    115  sy-vline,
            100       <FS_STR1>-del_ind,                        112  sy-vline,
            113       <FS_STR1>-archiving_flag,                 129  sy-vline.
        ENDLOOP.   "end of t_str_sc1 displaying
      ENDIF.  "End of SY-SUBRC
    ENDIF.  "End of displaying Transaction type as CONF
    <b><u>
    THE LOGIC FOR THE SECOND REPORT</u></b>
    LOOP AT t_str_sc1 ASSIGNING <FS_STR1>.
          REFRESH t_str_sc2.
          SELECT a~guid
                 a~object_id
                 a~object_type
                 a~process_type
                 a~created_at
                 a~changed_at
                 a~archiving_flag
                 b~guid
                 b~header
                 c~guid
                 c~deliv_date
                 c~final_entry
                 c~del_ind
            INTO TABLE t_str_sc2
            FROM crmd_orderadm_h AS a INNER JOIN crmd_orderadm_i AS b
              ON aguid eq bheader INNER JOIN bbp_pdigp AS c
              ON bguid eq cguid
           WHERE a~guid eq <FS_STR1>-guid.
           IF NOT t_str_sc2[] is INITIAL.
          LOOP AT T_STR_SC2 ASSIGNING <FS_STR2>.
           IF <FS_STR2>-DEL_IND NE C_DEL_SPACE.        " if x
              <FS_STR2>-DEL_IND = C_DEL_IND_F.
              <FS_STR2>-ARCHIVING_FLAG = C_ARCHIVING_FLAG.
              MODIFY T_STR_SC2 FROM <FS_STR2> .
            ELSE.         "if ' '
              EXIT.
            ENDIF.
          ENDLOOP.    "End loop of t_str_sc2
          MOVE <FS_STR2>-DEL_IND TO <FS_STR1>-DEL_IND.
          MOVE <FS_STR2>-ARCHIVING_FLAG TO <FS_STR1>-ARCHIVING_FLAG.
          MODIFY T_STR_SC1 FROM <FS_STR1>.
        ELSE.   " For sy-subrc
          <FS_STR1>-REMARKS = c_itnf.
          MODIFY T_STR_SC1 FROM <FS_STR1>.
        ENDIF.    " End of sy-subrc
      IF <FS_STR1>-DEL_IND eq C_DEL_IND_F.
             W_DEL_COUNT = W_DEL_COUNT + 1.
      ENDIF.
      IF  <FS_STR1>-ARCHIVING_FLAG eq C_ARCHIVING_FLAG.
            w_COUNT_cba = w_COUNT_cba + 1.
      ENDIF.
      ENDLOOP.  "End loop of t_str_sc1
    ********************************" when Transaction type is CONF
    *******************************IF <FS_STR1>-process_type EQ 'CONF'.
      DESCRIBE TABLE t_str_sc1 LINES w_ld_lines.
      w_ld_linesc = w_ld_lines.
      CONCATENATE ' TOTAL NO OF RECORDS SELECTED:' w_ld_linesc INTO e_line SEPARATED BY space.
    *" Percentage of Archived SC's
      W_PER_E_LINE = w_ld_lines.
      W_PER_CBA1 = W_COUNT_CBA / W_PER_E_LINE.
      W_PER_CBA = W_PER_CBA1 * 100.
    *" Displaying Headings for the Report
    *" Displaying the total no of records fetched for DB
      FORMAT COLOR 7.
      WRITE:/9 e_line .
    WRITE:/10 'TOTAL NO OF FINAL ENTRIES SELECTED:',        w_count_f.
      WRITE:/10 'TOTAL NO OF DELETE ENTRIES SELECTED:',       W_DEL_COUNT.
      WRITE:/10 'TOTAL NO OF ENTRIES SELECTED FOR ARCHIVING:',w_COUNT_cba.
      SKIP.
      WRITE:/10 'PERCENTAGE OF CAN BE ARCHIVED:',W_PER_CBA,'%'.
      FORMAT COLOR 3.
      SKIP.
      WRITE:/30 '#### SC HAVING FINAL ENTRY INDICATOR FOR ALL ITEM IN SRM #####'.
      FORMAT COLOR OFF.
      WRITE:/30(63) SY-ULINE.
      ULINE.
      NEW-LINE SCROLLING.
      WRITE:/3        'Transaction No',                          18  sy-vline,
             19       'Transaction Type',                        36  sy-vline,
             37       'Business Trans.Cat',                      56  sy-vline,
             57       'Created On',                              68  sy-vline,
             69(10)   'Changed On',                              84  sy-vline,
            100       'Deletion Ind',                           112  sy-vline,
            113       'Can be Archived',                        129  sy-vline,
            130       'Remarks',                                 150  sy-vline.
      SET LEFT SCROLL-BOUNDARY COLUMN 19.
      ULINE.
    *$$********************************************************************
    *$$    DISPLAY DATA AT HEADER LEVEL
    *$$********************************************************************
    *" Sort the SC in Sequence
      SORT t_str_sc1 BY object_id.
      IF SY-SUBRC = 0.
    *" Displaying the Report at Header level
        LOOP AT t_str_sc1 ASSIGNING <FS_STR1>.
          IF NOT <FS_STR1>-archiving_flag IS INITIAL.
            FORMAT COLOR 7.
          ELSE.
            FORMAT COLOR 3.
          ENDIF.
          WRITE:/3        <FS_STR1>-object_id,                       18  sy-vline,
                 19       <FS_STR1>-process_type,                    36  sy-vline,
                 37       <FS_STR1>-object_type,                     56  sy-vline,
                 57       <FS_STR1>-created_at,                      68  sy-vline,
                 69(10)   <FS_STR1>-changed_at,                      84  sy-vline,
                100       <FS_STR1>-del_ind,                        112  sy-vline,
                113       <FS_STR1>-archiving_flag,                 129  sy-vline,
                130       <FS_STR1>-REMARKS,                        150  sy-vline.
        ENDLOOP.   "end of t_str_sc1 displaying
      ENDIF.  "End of SY-SUBRC
    **********************ENDIF.  "End of displaying Transaction type as CONF

    Very difficult to give you a solution without having access to the actual data and tables and some basic relationship model to explain the entities of the tables.
    But one thing I found that makes dealing complex queries a lot easier - easier to code and to read and to maintain - is to use the WITH clause. This allows the type of modularisation of code that we're using in other languages.
    The basic syntax is:WITH <alias1> AS(
      SELECT ...
    <alias2> AS(
      SELECT ...
    <aliasn> AS(
      SELECT ...
    SELECT
    FROM alias1, .. aliasnThis allows you to create distinct query sets once - and then re-use these again in joins, selects, and even other sub-sets.
    The resulting SQL is a lot les stressful on the eye and makes the whole "processing logic" of getting to the results much easier to analyse, follow and understand.

  • Any tips at this Reporting requirement gathering stage?

    Hello Experts,
    I have 10 different sources of data which will mostly come to me in flat files.
    Some of the data coming to me for <b>UPDATE</b> will be
    1. daily,           (3 of the sources)
    2. weekly,       (2 of the sources) 
    3. monthly      (2 of the sources) 
    4. quarterly.   (2 of the sources)
    Some of the reporting requirements are <b>(GENERATE REPORTS)</b>:
    a) As needed i.e. on demand by managers
    b) Monthly
    c) Quarterly
    I am still in the report requirement gathering phase and I would like some hints here:
    Q1. What are the Dos and Don’ts?
    Q2. Does it matter whether the various sources are loaded into Cubes or ODSes? Which is the better choices and for what reasons?
    Q3. Any special guide on the frequency of Updates?
    Q4. Can the data elements from the 10 sources be all placed in say, 2 or 3 dimensions and within a single Cube?  Any advantages of this?
    Q5. Can each of the data elements from the 10 sources be placed in say, 10 different ODSes? Any advantages of this?
    Thanks in Advance.

    Hi Amanda,
    Actually, I’d split the process into those stages:
    1.     gathering report forms that users want to have and a frequency of report generation.
    2.     collection information on available sources of data
    3.     analysis: do the sources will provide all data for forms required – simultaneously the list of reports that would be possible to create is made. Here you can take into account not only availability of resources, but also budget/time/work force limitation. It’ll determine the scope of implementation.
    4.     Conceptual model (with parallel excersises in BW).
    •     If some reports (and data in them) are completely different, don’t having common information, then consider creating separate data providers. 
    •     If some reports (and data in them) have something in common, then consider creating separate data providers with a multiprovider on them.
    •     If all data are linked to some key(s) (for example a document number), then consider creating a single cube
    •     Determine time granularity (are your weekly, monthly and quarterly data may be derived from the daily data? If yes, maybe these data (except daily) are redundant. If not, then probably these data supply some additional information to daily? – consider merging this additional info into daily cube (or probably through separate ODS or cubes).
    So, it’s a somewhat an answer to Q2 and Q5.
    Q3. You may load data just before (say a several days) the reports generation.
    Q4. See above about single cube. Additionally, the rule of thumb is to have more little dimensions than few huge dimensions. Consider spreading out your chars into different dimensions. If you’ll be able to have all data in a single cube, it would give you an enormous flexibility in building reports (especially, not mandatory ones, but ad-hoc reports on demand).
    Also you can visit www.saptips.com site. I downloaded “Tips on Implementing a BW-Based Management Reporting Solution (and Getting Your Users to Use It!)” but cannot find it in inet. If you want I can send it to you along with “SAP BW projects: dos and donts” (ppt-demo and transcript).
    Best regards,
    Eugene

  • FICO:What are the critical reporting requirements of a finance department?

    Hi Experts,
    Can you help me identify all the reporting requirements of a finance departmentn when it comes to the use of BW?
    i. From a reporting perpective, what does the finance department need from BI to say that BI is a worthwhile investiment?
    ii. Does BI provide any of the answers provided in i. (above) through its business content objects? If so, can you discuss how BI provides each of the solutions? (I will apprecaite a discussion for the "finance team" and not neccessarily for the IT team)
    iii. If all the requirements of a finance department are already available with a newly installed BI, then
    what are the typical functions of a BI consultant  to a finance department? i.e. why will a finance department find the need to bring in a BI consutant to advise them on how best to use BW in their environment?
    iv. How does the above discussion pertain to CO. i.e. If your discussion above is strictly for FI, can you address i, ii, iii for CO?
    Thanks and Happy Holiday.

    Hi
    From a reporting perpective, what does the finance department need from BI to say that BI is a worthwhile investiment?
    Normally Financial reports needed for the customer will be P&L, Balance sheet, Cashflow statements and the AR, AP and also Controlling and the Turn over Ratios to know about the financial funding stage about their organization based on their functional requirements.
    ii. Does BI provide any of the answers provided in i. (above) through its business content objects? If so, can you discuss how BI provides each of the solutions? (I will apprecaite a discussion for the "finance team" and not neccessarily for the IT team)
    Better to talk to your FI CO team for this to understand better at ECC functional level to know what would be the best extractors that you can report on. BI content is already there for almost FI CO reports.
    http://help.sap.com/saphelp_nw70/helpdata/EN/2d/955a73da4d6d41a0a6128caf274ce8/frameset.htm
    and everything mentioned clearly in that why , how , what.
    iii. If all the requirements of a finance department are already available with a newly installed BI, then
    what are the typical functions of a BI consultant to a finance department? i.e. why will a finance department find the need to bring in a BI consutant to advise them on how best to use BW in their environment?
    Though the Finance team has every Extractor at ECC side its only BI consultant who has to work on Modeling , Extraction, Reporting Part for BEx Reports. You have to Map the Fields even though its BI Content some of the Customized objects like Routines, Formulas would be there for each and every project .
    iv. How does the above discussion pertain to CO. i.e. If your discussion above is strictly for FI, can you address i, ii, iii for CO?
    http://help.sap.com/saphelp_nw70/helpdata/EN/d6/563b2203ef11d4a7400060087a7a87/frameset.htm
    Hope it helps

  • Standard Report requirement

    Hi Guys
    In my current implementation i have one report requirement.
    Iam giving lot of benefits to my employees. I like to capture all the expenses employee wise.
    I have already uploaded the employee personel number and during transactions we are entering the personel number
    But we i go and check the report, in the dynamic selection the personel number is not available
    Is it possible to take a standard report based on personnel number. If i give a personel number - i should get all the expnese gl accounts done for that employee
    Warm Regards
    Bala

    Hi:
    I have a suggestion.
    Create Employees as Employee vendors in Accounts payable.While creating vendor master, In the accounting information tab, assign the personel no.You have a separate reconciliation account for this employee vendors.
    Make Payments to vendor by using T.code F-53 . You can view the report of all employees to whom payment was made.
    You can view the standard reports to see the payments made to the employees.
    S_ALR_87012103 - List of Vendor Line Items
    S_ALR_87012083 - List of Vendor Open Items for Printing
    Please let me know if you need more information.
    Assign points if useful.
    Regards
    Sridhar M

  • Report requirement from BW

    Hi ,
    I need to execute the scenario in bw for report requirement.
    the report requirement is:
    The Fields are material, Batch, internal char, char value.
    Here the logic is the field Internal char no have values vintage,Bill of entry and the field char value have 222, 333-7876 for correponding field.
       Material        Batch          Internal Char no.         Char vlue
       2009822       58938         Vintage                        222
                                               Bill of entry                  333-7876
    They need bw report like
    Material             Batch          Vintage             Billof entry
    2009822           58938           222                  333- 7876
    Can any one give idea.
    Thanks,
    Satya

    Hi Satya,
    Follow the below given steps,
    1) Goto rows area and right click to create new formula variable.
    2) In the edit step of your formula, remove the default description and put a &, you will get different options. select the new text variable.
    3) Give the variable name, description and select the type as replacement path.
    4) On the next screen select your characteristics i.e. Internal cost type (first char).
    5) on the next screen select replace variable with Key or text value whichever you want.
    6) Here we are done with heading part.
    Now for defination of formula variable,
    1) Right click on Formual variable tree and create a new variable.
    2) Select type as replacement path and on next screen select the other characteristics i.e. Internal cost value i.e. 222.
    3) Again on next screen replace variable with key.
    4) Finally select Dimension indicator as Number.
    5) We are ready to use the variable. In the defination part use newly created variable.
    Now you will get the output in exactly required format.
    Regards,
    Durgesh.

  • Report requirement, for count before the input selection.

    Hi All,
    I have a requirement:
    And in infoprovider we have :
    in 07.2011, 10 records were created.
    in 08.2011, 40 records were created.
    in 09.2011, 50 records were created.
    in 10.2011, 70 records were created.
    User enters month interval like 07.2011 - 10.2011
    and wants outout like:
    Calmonth:... 07.2011....08.2011.......09.2011.......10.2011
    Count  : ........30010.......30050...........30100..........30170
    Means.in report  07.2011 should show all the count upto 07.2011,
    Similarly 08.2011 show all counts upto 08.2011 month. And in same way others also.
    Since input is  07.2011 to 10.2011, so report is considering  only data between this range only.
    How do i get count before 07.2011 in report and meet report requirement.
    Please suggest and let me know if more information is required.
    Thanks,
    Jitender.

    Hi Jitender,
    It is not possible to generate the query columns dynamically in the output based on the user input.
    For getting the aggregated value what you can do is, create a customer exit variable on fiscal period and restrict it from some starting period till user entered period.
    In your example let us say you have data from 07.2009 then your customer exit variable will have range from 07.2009 till 07.2011. Use this variable in a RKF with count as key figure and period as customer exit variable here you will get the output as 30010.
    For getting the next columns you can change the period range by using offset. But you will have to create different columns beforehand in the query design itself. The only thing you can do is based on the user input different columns will be populated even you can keep the dynamic text using text variable so that you will get dynamic period heading but dynamic creation of columns is not possible.
    Regards,
    Durgesh.

  • For financial report requirment can we consider secondary cost element cost

    For financial reporting requirment can we consider secondary cost element cost to profit and loss a/c

    In our senario _ cost is booking cost centers and revenues booking concern profit centers .
    for Financial reporting requirment can I include secondary cost to profit and loss a/c
    what is the impact on the report
    exp: salary booking in primary cost,than Per hour man hour cost computed by costing dept for allocate to concern department
    it is cost center activity price we specify in kp26 at the time of pm order confirm it will confim the activity quandity price will from planning area only,  so for salaries in primary g/ls already captured, if we consider secondary it may double booking
    srinivasa reddy

  • Reporting requirements to Filter on query results

    Hi Everyone,
    Part of our reporting requirements for Billing Data is to display all Invoices Created till the 15th of the Month. Users want to trend analyze Invoice created till 15th of each month for last 6 months. The report has a time filter to get Invoices for last 6 months.
    How do we further filter all Invoices created till 15th of each month?
    Thanks for all your answers in Advance.
    CM

    HI,
    I think the best way would be - create an infoobject containing the day  (from your date). Then you use calmonth and the new infoobject as time characteristics and restrict both (calmonth on the calmonth, calmonth - 1,...) and "day" as fix filter value for 1 to 15.
    This will work.
    If you can't extend you cube, you should try it with an virtuel cube where you use your original cube as source. the virtual cube contains the new infoobject "day".
    Cheers
    J
    Edited by: Jürgen Sauer on Apr 11, 2011 9:35 AM

  • Rebate reporting requirement

    Hi Gurus,
    We have report requirement related to rebate, where in we need to show the follwing field in the output.
    Rebate No:
    Total Accruals posted:
    Accruals reversed:
    Credit note amount.
    Can any one throw some light in which table and field the values are stored.
    Regards,
    Anand

    Hi,
    Please find the relevant tables
    T6B1 Rebate : Rebate Agreement Types
    T6B2 Rebate : Group of permitted Condition Types/Tables
    T6B2F Rebate : Permitted Condition Types/Tables per Group
    Regards
    Ram Pedarla

  • Answers access with Java (to enable more complex reports)?

    Hello and thanks for reading,
    I was wondering if there is a possibility to access BI Answers with Java (or an other procedural language) in order to realize more complex reports than what is possible with the graphical user interface.
    Is there an alternative way to access BI Answers in order to build reports, which provides one with a great flexibility in report design?
    Thanks for ideas
    Evgeny

    Are you trying to build more complex reports in OBIEE?
    If you need to customize the obiee you can do by editing the html files in BI server and data folders. You can add ur own html code and tags there. Also to achive more complex formating you can use OBIEE Publisher that will let you to create your own rtf or pdf templates and upload it to the dashboards
    Hope it helps
    Prash

  • Project System Restructuring -- Reporting Requirement

    Hi All,
    Due to Restructuring in our client.Our Project System is adopting the following method and asking for BI input on this please let me know if anyone has come across this situation.
    Projects are going to move from one Company Code to another Company Code. So they are closing the existing projects in Old Comp. Code and new projects are being created in New Comp. Code . In doing so they are closing the Old Projects(say  P1 u2013 total budget 100) consumed 60 and then new project they will create with remaining balance 40. (say P2). Also
    Reporting Requirement :
    Then when they run the report for the New Project P2 then it should bring the information of P1 also.
    Please let me if it is  possible to achieve this.
    Regards,
    Mayank

    interesting, load previous data in a cube completely for all the previous years and have the new data load in another cube and create a multiprovider to join them. and in your selection for wbs use both data selection...thats all i can think of on top of my head..

  • OBIEE Reporting Requirement

    OBIEE Reporting Requirement
    I have the following OBIEE reporting requirement that I am needing assistance with:
    I have to produce a report from the following table.
    CUSTOMER_ID|     EARNINGS |     CATEGORY
    A1234     |     1000     |     A
    A1234     |     2000     |     B
    B1234     |     1000     |     C
    C1234     |     0     |     D
    D1234     |     2500     |     E
    E1234     |     0     |     F
    Report Layout:
    Category     | Category A | Other Category | Category A & Other Category |
    Earned     |     100 |     120     | 100 |
    Unearned     |     150 |     150     | 200 |
    So the report above basically displays a count of the customers who have earnings or no earnings in the 2 categories which are "Category A" and "Other Category." Other Category is everything else grouped together except Category A i.e. (B, C, D, E, F). The 3rd column is counting customers who are in both column 1 and 2. I have modeled the repository for the 1st 2 columns but am stuck with how to come up with the 3rd column. Repository has been set up as follows:
    Fact: Distinct Count of CUSTOMER_ID
    Dimension:
    CASE WHEN Category = A THEN Category A
    ELSE WHEN Category <> A THEN Other Category END
    In Answers I have 2 calculated columns:
    FILTER(Customer Count) USING Earnings > 0 (Earned)
    FILTER(Customer Count) USING Earnings <= 0 (Uneared)
    How can I solution this to get the 3rd column of Category A & Other Category? Thanks in advance.

    Yes that is correct. Below is the expected output I am trying to get to.
         | Category A | Other Category | Category A & Other Category |
    Earned       | 100         | 120                 | 100                                    |
    Unearned   | 150           | 150                 | 200                                    |

  • Complex reports

    We're moving towards developing J2EE applications. However, since not every single release of Oracle Application Server contains the Oracle Forms and Reports services, I'm concern about report generation of complex reports. I know Oracle has something called XML Publisher. However, it seems to be too expensive for the reporting purpose. Do you think Oracle should at least distribute the report service in every release of its application server.
    Thanks.

    Hi,
    Please check the following DEMO reports for scrolling
    DEMO_LIST_SCROLL        
    DEMO_LIST_SCROLLING     
    DEMO_LIST_SCROLL_1      
    DEMO_LIST_SCROLL_2      
    DEMO_LIST_SCROLL_3      
    DEMO_LIST_SCROLL_4      
    DEMO_LIST_SCROLL_BOUNDARY

Maybe you are looking for

  • Problem with SUNWmdr and SUNWmdu in sol-9-u8-ga-sparc (9/05)

    I'm jumpstarting a 280R with sol-9-u8-ga-sparc (9/05) and it's not installing SUNWmdr and SUNWmdu correctly. The profile contains: root_device c1t0d0s0 boot_device c1t0d0s0 update partitioning explicit filesys mirror c1t0d0s0 c1t1d0s0 15000 / logging

  • I just signed up for CC and it doesn't work!!!!!!!!!!!!!!!!

    I decided to go for the $10/month for a year to see if it was worth it.  I installed CC desktop on my Mac running OS X 10.8.  I tried to install Photoshop CC and it said that the install failed because there was a beta version on the machine.  I've n

  • Wiebetech bus-powered FW800 external & daisy chaining...

    Please, only people that ALREADY OWN & USE the Wiebetech drive reply. Thanks. I just bought one - the 500GB. I have three questions: 1) From your experience in running this unit, can I use it on only bus power, in a daisy chain with another FW800 dri

  • How do I determine why my spotlight folder is so huge?

    I have about 700 GB of files on a 3 TB hard drive.  The .Spotlight-V100 folder is 450 GB in size.  I have re-indexed the drive.  How do I figure out why the index is so huge?

  • Classic scenario-UOM change for material

    Hi We have list of materials(Gcode represented) with UOM -EA(each) which is being used by te users for their business.In case if buers wants in PO with  some other UOM say 'KG' then how the shopping cart created with EA shall be converted to the buye