The extended syntax operators

Hello Gurus,
       for input and output caculation context, the extended syntax operators " in"/"foreach"/"forall",  what is the difference for them, please ddemonstrate by exmple.
Many thank.

Hi Bo,
I agree that sometimes this is not very clear.
"ForEach" is meant to force a context on the measure - in other words make it do the calculation based on a specific dimension that may not be on the report.
"In" does what "ForEach" does but allows you to do it on multiple dimensions.
"ForAll" does kind of the opposite. It makes the measure ignore the context and give you what is basically the total for all of the dimensions in the report.
You have to be careful, because there are default contexts in Webi blocks, sections and breaks, so this can be confusing.
That is my understanding. But If anyone has a better explanation please help out!
Does that make sense?
Thanks

Similar Messages

  • Extended Syntax Check  in abap code

    Hi Guys,
    We are upgrading from 4.6 C to ECC 6.0.  When I do the Extended Syntax check for the custom function module it gives me the following error.  Please help.
    The EXCEPTION "REPORT_NOT_EXISTENT" is not defined in the interface of the function module "RS_VARIANT_CONTENTS" "RS_VARIANT_CONTENTS".  Internal Message Code: MESSAGE G-7. 
    (The message can be hidden with "#EC ARGCHECKED)
    Regards,
    Shankar

    <b>Don't suppress the message. </b> You should only suppress messages if you are aware of why they are appearing, and they are not an error.
    What it means is, that in your custom function module, there is some code like
    CALL FUNCTION 'RS_VARIANT_CONTENTS'
      EXPORTING
        report                     = v_report
        variant                    = v_variant
    EXCEPTIONS
       VARIANT_NON_EXISTENT        = 1
       VARIANT_OBSOLETE            = 2
       REPORT_NOT_EXISTENT         = 3
       OTHERS                      = 4
    But if you look at FM rs_variant_contents, you'll see this exception is not defined.  The correct course of action is to remove it from your call.
    matt

  • Extended syntax check

    In ECC 6.0, I have two errors in my extended syntax check
    1).   Char. strings w/o text elements will not be translated:
    'Store%'
    (The message can be hidden with "#EC NOTEXT)
    with below coding
    SELECT  kunnr name2 j_3astcu
        FROM kna1
        INTO TABLE gt_kna1
        FOR ALL ENTRIES IN gt_soldto1
        WHERE ( name2    LIKE 'STORE%'
         OR     name2    LIKE 'Store%'
         OR     name2    LIKE 'store%'
         OR     name2    LIKE 'DC%'
        AND     land1    =    'US' )
        OR   ( j_3astcu  = gt_soldto1-store_no
        AND    land1     = 'US' ).
    2).
    SELECT-OPTIONS : s_mail1 FOR somlreci1-receiver NO INTERVALS.
    The current ABAP command is obsolete
    With "LOOP AT itab", one of the additions "INTO", "ASSIGNING", or "TRANSPORTING NO
    FIELDS" is required in the 00 context
    Internal Message Code: LOOP 012
    (The message cannot be hidden using pseudo-comment "#EC .., bzw. durch SET
    EXTENDED CHECK OFF/ON)
        LOOP AT s_mail1.
    *-----If email id entered on the selection screen doesnot contain
        '@' and '.', then give relevent message to user as popup.*
          IF s_mail1-low NA gc_at OR s_mail1-low NA gc_dot.
            MESSAGE e038(zs) WITH text-m08 text-m09 text-m13.
          ENDIF.
        ENDLOOP.
    Please suggest me howcan I avoid string Store% as well as select-option.

    In my opinion, the answers given to your first question so far, are wrong.  When there is a specific reason for using a text string in a select, then it should remain precisely as that.  So you should use "#EC NOTEXT.  It is wrong to put them in a text element, as they will never be translated.
    The extended syntax check doesn't exist so that you can remove the cause, it is so that you can address it.  Many violations of the extended syntax checker have a valid reason.  That's why you get the "#EC exceptions.  But if you use them, then make sure you can justify it.
    matt

  • Extended syntax checks off

    I have a program which has the extended syntax checks turned off and only turned on again after all the form pools, checks and update routines are performed. Is there any security implication from this extended check being off considering that it makes no sence to secure it with an authorization group?
    Message was edited by: jbussche
    AH! I see that I forgot to say "please".  )
    Does anyone have any infos on this other than the abap keyword documentation, please?
    Message was edited by: jbussche

    Hello Julius,
    I don't see any serious security implication with the extended syntax checks turned off. (But it might have implications to the quality of the program...)
    You run the (extended) syntax checks during development.
    There is one check which is related to security: The authorizations test checks whether the specified authorization object occurs in the table TOBJ and whether the authorization fields are correctly specified. -> This test checks the syntax of AUTHORITY-CHECK statements.
    Authorization groups are not related to the extended syntax check: The system checks the authorization for the authorization object S_PROGRAM based on an authorization group assignment before starting a report.
    Kind Regards
    Frank Buchholz
    Checking a Program
    http://help.sap.com/saphelp_nw2004s/helpdata/en/d1/801af0454211d189710000e8322d00/frameset.htm

  • Extended syntax check for include structure

    Hello Everyone,
    While declaring the internal table as:
    TYPES: BEGIN OF t_data.
            INCLUDE STRUCTURE mara.
    TYPES: END   OF t_data.
    DATA: it_data TYPE table of t_data.
    When performing extended check, i get following error:
    The current ABAP command is obsolete and problematic, especially so in ABAP
    Objects
    Within classes and interfaces, you can only use "TYPE" to refer to ABAP Dictionary
    types, not "LIKE" or "STRUCTURE".
    I am using 4.7 version.
    Any clue how to avoid this error during extended check.
    Regards,
    Tarun

    Tarun,
    With WAS 6.20 you should not declare internal tables with header line or using the old syntax as they are not compatible with OO ABAP.
    So, you either declare a TYPE the way you have done, in case you want additional fields apart from the INCLUDE structure, or declare the table directly like the way I have shown.
    Good thing, you can even specify the type of internal table that you want to create using this - STANDARD, SORTED, HASH. These tables will help you with the performance issues.
    regards,
    Ravi
    Note : Please mark the helpful answers

  • Warning in query in Extended Syntax Check

    Hi all,
    I perform Extended Syntax Check.
    It generates following warning for the query: -
    In "SELECT SINGLE....", the WHERE condition for the key field "MATNR" does not test for equality. Therefore the single record in question may not be unique.
    (You can hide the message using "#EC *)
    Please tell me what does it mean. How can I suppress this warning?
    Regards,
    Saurabh A. Buksh

    Hi,
    whenu r using select single use a variable or a workarea don't use tables.
    select single matnr from mara into v_matnr
    where matnr in s_matnr.
    also as it is warning message u can neglectit .
    when u  r using select single u should give entire key information also.
    Regards,
    Nagaraj
    Message was edited by: nagaraj kumar nishtala

  • Error in Extended syntax check- Select Query

    Hi all,
    Iam getting this following error in Extended syntax check
    " Large table PA0002: No field of a table index in WHERE
    condition"
    Code :SELECT SINGLE PERNR INTO (G_PERNR) FROM PA0002 WHERE ZZLEGACY_PAYROLL = I_FILETAB-PRNO
                                                           AND ZZLEGACY_PAYSYS = I_FILETAB-PRSYS
                                                           AND ZZLEGACY_PAYINS = I_FILETAB-PRINS.
    can anyone help on this?

    Hi,
    Change the code like this and check............
    For this u need put INSIDE LOOP.
    Select single PERNR into G_PERNR from PA0002 where PERNR = I_FILETAB-PRNO and .......... and ......
    Check like this...
    Thanks.
    If this helps you reward with points.
    Message was edited by: KDeepak
    Message was edited by: KDeepak

  • Extended syntax check how to remove warning

    I get the following WARNING message in extended syntax xheck.
    How to remove it.
    INT_TABLE stands for 2 fields: Table INT_TABLE[] and its header line           
    Field INT_TABLE is not referenced statically in the program       
    Here is the definition of int_table
    TYPES : BEGIN OF x_table,
              SIGN(1) TYPE C,
              OPTION(2) TYPE C,
              LOW(10) TYPE C,
              HIGH(10) TYPE C,
            END OF x_table.
    int_table    TYPE STANDARD TABLE OF x_table.             
    Int_table is used in a function module as a TABLE parameter in the form,
    In the perform S_user_field is used

    Hi,
    Do some kind of check for ur interanl table in the program.
    if not INT_TABLE[] is initial.
    endif.
    Regards,
    Nagaraj

  • Extended Syntax Error......

    Hi All,
    In my Program I have created the following Subroutine -
    FORM call_back TABLES record_tab  STRUCTURE seahlpres
                                      CHANGING  shlp_top TYPE shlp_descr
                                                         callcontrol TYPE ddshf4ctrl.
    Here seahlpres is a DDIC Structure
    Now this is giving an Extended Syntax Error stating that "Using STRUCTURE is Obsolete".
    Agreed, but I am unable to use following -
    FORM call_back TABLES record_tab  TYPE STANDARD TABLE OF seahlpres
                             CHANGING  shlp_top TYPE shlp_descr
                                                callcontrol TYPE ddshf4ctrl.
    or
    FORM call_back TABLES record_tab  TYPE LINE OF seahlpres
                             CHANGING  shlp_top TYPE shlp_descr
                                                callcontrol TYPE ddshf4ctrl.
    How to remove this Error, by what way should RECORD_TAB be declared as to remove the Error.
    Regards,
    Pankaj Agarwal.

    Hi,
    see the below code from tcode ABAPDOCU.
    REPORT demo_mod_tech_example_5.
    DATA: BEGIN OF line,
            col1 TYPE i,
            col2 TYPE i,
          END OF line.
    DATA itab LIKE STANDARD TABLE OF line.
    PERFORM fill CHANGING itab.
    PERFORM out  USING    itab.
    FORM fill CHANGING f_itab LIKE itab.
      DATA f_line LIKE LINE OF f_itab.
      DO 3 TIMES.
        f_line-col1 = sy-index.
        f_line-col2 = sy-index ** 2.
        APPEND f_line TO f_itab.
      ENDDO.
    ENDFORM.
    FORM out USING value(f_itab) LIKE itab.
      DATA f_line LIKE LINE OF f_itab.
      LOOP AT f_itab INTO f_line.
        WRITE: / f_line-col1, f_line-col2.
      ENDLOOP.
    ENDFORM.
    For more details check examples in abapdocu.
    The ABAP Programming Language >Modularization Techniques >Procedures >Subroutines
    Cheers,
    Rudhir

  • Error in extended syntax check

    HI all,
    I have declared some constants like this.
    constants: c_str1(20) value 'abcdefg,,,,,',
                    c_str2(4) value 'xyz',
                    c_str(30).
    concatenate c_str1 c_str2 into c_str.
    I am getting an error for c_str1 in extended syntax check that 'charetecter strings without text elements will not be translated'.
    I am not writing c_str1 anywhere and I just need it for concatenation.
    When I tried like this
    constants: c_str1(20) value 'abcdefg,,,,,,,'(000).
    It is showing a sysntax error that offset is not allowed.
    Please provide me the answer.
    Regards,
    Mungala.

    hi Praveena,
    do this way
    concatenate text-001 text-002 into c_str.
    double click on text-001 and text-002 and create text elements with abcdefg,,,,,' and 'xyz' values. In 4.6 and above versions .. you got to save and activate ...else just save to remove that error .
    REgards,
    Santosh

  • Doubt in Extended Syntax check

    Hi all ,
                  I am facing a problem when i do a Extended Syntax check for a program . The message i am getting is as follows :
    Messages for CALL FUNCTION interfaces(Todo Prio3)
    Program:  SAPLZC_BWSPI  Include:  LZC_BWSPIF01  Row:    496  [Prio 3]
    No EXCEPTION to set SY_SUBRC Declared for CALL FUNCTION 'FIRST_DAY_IN_TP_GET'
    Thus the value of SY-SUBRC is always 0
    (The message can be hidden with "#EC *)
    can anyone suggest me how to correct it .
    thanks,
    kumaran

    SUPPOSE IF YOU HAVE YOUR CODE AS :
    CALL FUNCTION XYZ
    IMPORTING -
    EXPORTING----
    JUST WRITE
    CALL FUNCTION XYZ                  "#EC *
    IMPORTING -
    EXPORTING----
    IF SY-SUBRC <> 0.
    ENDIF.
    THATS ENOUGH.
    OR ELSE TRY.
    CALL FUNCTION XYZ                
    IMPORTING -
    EXPORTING----
    IF SY-SUBRC <> 0.                       "#EC *
    ENDIF.

  • Regardding Extended syntax check of one program from another program

    Hi,
    I have one issue related to Extended syntax check.
    I am working on one report [<b>REPORT2</b>] from that i am doing extended syntax check of another Report [<b>REPORT1</b>] which is already developed.
    For that i have use <b>F.M</b> <b>EXTENDED_PROGRAM_CHECK</b> it returns no of errors of <b>REPORT1</b> now my issue over here is i want to output all the errors of <b>REPORT1</b> into REPORT2 output with <b>Line No & Error Message</b>.
    How can i solve this issue!
    Thanks in advance.
    Thanks,
    Deep.

    Hi ,
      You can use the FM <b>EXTENDED_PROGRAM_CHECK_SHOW</b> , to get the details of the check.
    Regards
    Arun

  • Regarding Extended Syntax Check

    hi,
    during extended syntax check the given program is read and obsolete statements is displayed.
    from where it compares for obsolete statement.
    is there any table? if not then how it compares for obsolete statement.
    Thanks.

    Hi
    Check the table RODIR...here you can give the object type and its name...and there is a field which indicates if it is Obsolete or not. If it is checked, then it is Obsolete..otherwise not.
    Vishwa.

  • Can not filter the data with the extended class

    Hi,
    I have a quick question about PortableObject format. I have created a class which extends PortableObject interface and implemented serializer methods as well. I have updated it in the pof-config.xml file as well. If I insert the objects of this type of object in the cache, they get inserted properly and I can filter the values based on the getters defined in the class. Everything works fine here.
    Now, I am trying to extend the existing class that I have. We have our custom API which we have built for our domain objects. I need to store these objects in the cache. So, naturally I need to implement PortableObject interface to do that. So, instead of creating a new class with new set of getters and setters and local fields, I am extending our domain class to create a new class which implements PortableObject interface. Instead of defining the local fields and getters and setters i am reusing the ones provided by my existing class. Now, I can insert the objects of the new class to the cache. But I can not filter the values for the objects of this new class.
    Let me show you what exactly I am trying to achieve by giving a small example:
    Domain Class:
    class Person
    private String person_name;
    *public String getPerson_name() {return person_name;}*
    *public String setPerson_name(person_name) {this.person_name = person_name;}*
    The new class implementing PortableObject interface:
    class ExtPerson extends Person implements PortableObject
    public static final PERSON_NAME = 0;
    *public void readExternal(PofReader reader) throws IOException{*
    setPerson_name(reader.readString(PERSON_NAME));
    *public void writeExternal(PofWriter writer) throws IOException{*
    writer.writeString(PERSON_NAME, getPerson_name());
    *// And HashCode, Equals and ToString methods, all implemented using the getter from the Person class*
    So, if I create a new class ExtPerson without extending the Person class and write all the methods, store the objects in the cache and perform the following query, I get the size printed
    System.out.println((cache.entrySet(new EqualsFilter("getPerson_name","ABC"))).size());
    But if I use the extended class and insert the values into the cache and if I use the same query to filter, I get 0 printed on the console.
    System.out.println((cache.entrySet(new EqualsFilter("getPerson_name","ABC"))).size());
    So, can anyone tell what exactly is causing this?
    Thanks!

    Well, just a quick question. It seems that I can not get ContainsAnyFilter or ContainsAllFilter working.
    EqualsFilter is actually working properly.
    I am preparing a Set of Strings and passing it to ContainsAnyFilter or ContainsAllFilter and it is returning me 0 records.
    E.g.:
    Set<String> setStr = new HashSet<String>();
    setStr.add("ABC");
    setStr.add("DEF");
    System.out.println((cache2.entrySet(new ContainsAnyFilter("getPerson_name", setStr))).size());
    I get 0 in my output
    If I try this:
    System.out.println((cache.entrySet(new EqualsFilter("getPerson_name","ABC"))).size());
    System.out.println((cache.entrySet(new EqualsFilter("getPerson_name","DEF"))).size());
    I get 1 for each of the query.
    If I club all these EqualsFilter in a Filter[] array and create an AnyFilter or AllFilter and pass it to the query, it works fine.
    List<Object> lst = new ArrayList<Object>();
              lst.add("ABC");
              lst.add("DEF");
    Filter[] filter = new Filter[lst.size()];
         for(int i=0;i<lst.size();i++)
              filter[i] = new EqualsFilter("getPerson_name",lst.get(i).toString());
    AnyFilter fil = new AnyFilter(filter);
    System.out.println((cache4.entrySet(fil)).size());
    I get the desired result here, which is 2.
    Am I missing something here?

  • Error Message: "The formula syntax is not supported by the report"

    We are using 'Development Environment: SAP Crystal Reports, version for Visual Studio 2010 u2013 Standard ' and using CrystalDecisions.CrystalReports.Engine and CrystalDecisions.ReportAppServer APIu2019s
    I am reading SQLExpressionFields from one source .rpt file & want to add it to another ReportDocument. While doing so, it gives an error " The formula syntax is not supported by the report"
    doc.ReportClientDocumentDataDefController.FormulaFieldController.Add(formualField); // formualField is SQLExpressionField from source ReportDocument
    But when I tried to Add FormulaField, it succeeds
    Please help me in knowing how to add SQlExpressionFields to ReportDocument.
    Regards,
    -atul

    Thanx Don & Ludek for the reply.
    CR provides support for addition/modification of SQLExpressions.
    CRAXDRT.Application application = new CRAXDRT.ApplicationClass();
    CRAXDRT.Report innerReport = application.OpenReport(path, CROpenReportMethod.crOpenReportByTempCopy);
    innerReport .SQLExpressionFields.Add(name, strSQLExpression)
    CRAXDRT.dll provides support for addition/modification of SQLExpression fields. But its not compatible with 64bit.
    Just curious to know, is there any future plan to provide support for add/modify SQLExpression fields?
    Thanx
    -atul
    Edited by: Atul Chivate on Aug 21, 2011 6:13 PM

Maybe you are looking for