Enumerations in ABAP?

I am new to ABAP and have come from several years of C# development.  I don't see any way to create an enumeration in ABAP.  What is the recommended method restricting input to a public attribute to a discrete set of values that can be checked at compile time?

I also tried creating a Domain and then creating an attribute of that type on a class thinking that setting the attribute to something not in the domain list would cause an error but, alas, it did not.  Could you use Domains to restrict input to an attribute or am I delusional?
Also, on an unrelated issue, when ABAP says "line type" or "line" is that just another way of saying "row"/"row-type", at least when referring to tables?

Similar Messages

  • Problems with populating Drop Down List (WD ABAP)

    Hi,
    I am trying to populate two Drop Down fields CARRID and CONNID (Type Table SPFLI) on an Adobe Interactive Form in a Web Dynpro ABAP Application.
    In the WD Context I have a node "Flights" with those attributes.
    In the WDDOINIT I populate the Context elements (just for test purposes with all entries of SPFLI).
    [code]  
    DATA:
         node_flights                        TYPE REF TO if_wd_context_node,
         elem_flights                        TYPE REF TO if_wd_context_element,
         stru_flights                        TYPE wd_this->element_flights,
         it_flights TYPE TABLE OF spfli.
    SELECT carrid connid FROM spfli INTO TABLE it_flights.
    navigate from <CONTEXT> to <FLIGHTS> via lead selection
       node_flights = wd_context->get_child_node( name = wd_this->wdctx_flights ).
    node_flights->bind_table(
        new_items            = it_flights
        set_initial_elements = ABAP_FALSE
    [/code]
    According to this
    Re: adobe form/reader  error I bound the element values property of the Enumerated Drop Down List to [code]$record.sap-vhlist.CARRID.item[*][/code], whereas <i>Object Text</i> is "Text" and <i>Object Value</i> is "Key".
    Unfortunately the DDLs on the Adobe Form are not populated with the values read from the table. I debugged the application and the values are written to the Context node.
    Do you have any further hints?
    Best regards,
    Robin
    Message was edited by:
            Robin Wennemuth

    Robin:
    Did you get this resolved? Would you please tell me how you got it done?
    Thank you,
    Fred.

  • F4 help in online interactive forms using ABAP

    Hi,
    Question 1:
                     I am able to get f4 help in online interactive form using ABAP. but after selecting the value from pop-up the value is not populated in PDF field. Can u help regardiing this.
    Question 2:
                     I am able to get f4 help in online interactive form using value help dropdown, first time if i click the dropdown button it is showing the popup, if i click second time it is not showing the popup.
    Thanks & Regards,
    Krishna

    Hi,
    1. I you are woking from the Web Dynpro for ABAP then after binding the Context variable in the view, and in the Adobe Layout Designer from the Library goto WebDynpro Native Tab and drag and drop the Value Help and for this automatically JavaScript is being generated, go that script and edit the line
    Var fieldname = "yourfieldname";
    Note: dont forget to link the context attribute to search help. ie. in the context properties of the attributes select the input help mode as dictionary search help and specify the name of the search help present in data dictionary.
    And now go to Utilities and click on u201CInsert Web Dynpro Scriptu201D.
    Also make sure that you specify the Layout as ZCI Layout in the Propertioes of the Adobe Form.
    2. Only the Submit button , the Enumerated Drop-Down List as well as the Value help button from the Web Dynpro Native library of Adobe LiveCycle Designer are supported. Check SAP Note: 1098009
    Regards
    Pradeep Goli

  • SAP User Enumeration

    Hi All,
    Recently there was an SAP audit conducted in our landscape and SAP found as below (SAP User Enumeration (High Risk))
    "During our testing and enumeration we managed to extract a list of SAP processes and SAP users from the ABAP syslog.
    It is important to note that a number of SAP installations have been identified each with different users. It is also important to note that each of the installations was tested against common and new exploits available for SAP systems without success".
    Could any please advice on this.
    Warm Regards,
    Sudhakar G

    sent

  • Closing a Enumerated DropDown List in Adobe form

    I have an adobe form where we used Enumerated Drop down Lists for search helps. The problem is right now we dont have option to close the Enumerated DropDown List. It closes when we select a value or sometimes if we try "ESC" key. But we want to have a "Close"/"X" button like in normal search help.
    Letme know if there is any solution or an Alternate way to close the Enumerated Drop Down List from Adobe Form by just hitting a close/X button. Each value help has over 500 values, so we cannot use normal dropdowns, letme know if any other suggestions.
    Edited by: Phani Rajesh Mullapudi on Jun 21, 2010 8:14 PM

    Hello Arafat,
    I am using a drop down list in Adobe Interactive Form for Web Dynpro ABAP.
    The form is of ZCI type layout and the form interface is of XML schema-based interface type and the XML schema source is set to "Generated".
    I have included the following code in WDDOINIT method of the view:
    data: handle1 type ref to if_wd_context_node,
    begin of zstruct,
    zktokd type kna1-ktokd,
    end of zstruct,
    zitab type table of zsttxecr.
    handle1 = wd_context->get_child_node( name = 'DATA.NODE1' ).
    select ktokd from kna1 into corresponding fields of zstruct.
    append zstruct to zitab.
    endselect.
    handle1->bind_table( new_items = zitab ).
    In the Adobe Form Designer, i have binded the node NODE1 to the enumerated drop down list from native web dynpro library. Still the drop down box is not getting populated.
    Please let me know what is missing.
    Thanks and Regards.

  • Issue in Creation of XML file from ABAP data

    Hi,
    I need to create a XML file, but am not facing some issues in creation of XML file, the in the required format.
    The required format is
    -<Header1 1st field= u201CValueu201D 2nd field= u201CValueu201D>
       - <Header2 1st field= u201CValueu201D 2nd field= u201CValueu201Du2026u2026. Upto 10 fields>
              <Header3 1st field= u201CValueu201D 2nd field= u201CValueu201Du2026u2026. Upto 6 fields/>
              <Header4  1st field= u201CValueu201D 2nd field= u201CValueu201Du2026u2026. Upto 4 fields/.>
               <Header5 1st field= u201CValueu201D 2nd field= u201CValueu201Du2026u2026. Upto 6 fields/>
          </Header2>
       </Header1>
    Iu2019m using the call transformation to convert ABAP data to XML file.
    So please anybody can help how to define XML structure in transaction XSLT_TOOL.
    And one more thing, here I need to put the condition to display the Header 3, Header 4, Header 5 values. If there is no record for a particular line item in header 3, 4 & 5, I donu2019t want to display full line items; this is only for Header 3, 4 & 5.
    Please help me in this to get it resolved.

    Hello,
    you can use CALL TRANSFORMATION id, which will create a exact "print" of the ABAP data into the XML.
    If you need to change the structure of XML, you can alter your ABAP structure to match the requirements.
    Of course you can create your own XSLT but that is not that easy to describe and nobody will do that for you around here. If you would like to start with XSLT, you´d better start the search.
    Regards Otto

  • Logical command in ABAP.....Urgent

    Hi,
      i am pretty new using ABAP program so i neeed help urgently. i am trying to move a file on the application server from one directory to the other and i was using the open dataset function to do that. but the file i am trying to move is pretty big and because i am using internal table to store, it is causing problems with the space.
      i have consulted the basis guys and they have managed to create a logical file for copying from one directory to the other on the application server. to help you furthter. i am enclosing the mail sent to me.
    I have created a logical command which should copy the file from one location to the other but you need to pass it the source dir and file name and the destination dir and file name.
    The logical command is ZCOPY and uses cmd /c copy
    Copies one or more files to another location.
    COPY [/V] [/N] [/Y | /-Y] [/Z] [/A | /B ] source [/A | /B]
         [+ source [/A | /B] [+ ...]] [destination [/A | /B]]
      source       Specifies the file or files to be copied.
      /A           Indicates an ASCII text file.
      /B           Indicates a binary file.
      destination  Specifies the directory and/or filename for the new file(s).
      /V           Verifies that new files are written correctly.
      /N           Uses short filename, if available, when copying a file with a
                   non-8dot3 name.
      /Y           Suppresses prompting to confirm you want to overwrite an
                   existing destination file.
      /-Y          Causes prompting to confirm you want to overwrite an
                   existing destination file.
      /Z           Copies networked files in restartable mode.
    The switch /Y may be preset in the COPYCMD environment variable.
    This may be overridden with /-Y on the command line.  Default is
    to prompt on overwrites unless COPY command is being executed from
    within a batch script.
    the problem now is i have no idea about how to use the logical command. can any one help me.
    Thank you,
    Ravi.

    If memory is not an issue, then there should be no reason why this should not work.
    report zrich_0001.
    parameters: d1 type localfile default '/usr/sap/TST/SYS/Data1.txt',
                d2 type localfile default '/usr/sap/TST/SYS/Data2.txt'.
    data: itab type table of string with header line.
    start-of-selection.
    * Read old file
      open dataset d1 for input in text mode.
      if sy-subrc = 0.
        do.
          read dataset d1 into itab.
          if sy-subrc <> 0.
            exit.
          endif.
          append itab.
        enddo.
      endif.
      close dataset d1.
    * Write to new file
      open dataset d2 for output in text mode.
      loop at itab.
        transfer itab to d2.
      endloop.
      close dataset d2.
    * Delete the old file
      delete dataset d1.
    Regards,
    Rich Heilman

  • Logical Database in Abap Objects

    Hi to All
    I want do it a program report using a Logical Database.
    Is this possible ??? But when I make a GET <node>, occurs the following error:
             "" Statement "ENDMETHOD" missing.  ""
    I'm doing the following:
    CLASS MONFIN IMPLEMENTATION.
           METHOD TRAER_DATOS.
                   GET VBRK.
           ENDMETHOD.
    ENDCLASS.
    Please, somebody tell me how I use the logical database in Abap Objects.
    Thank you very much
    Regards
    Dario R.

    Hi there
    Logical databases whilst of "some use" are not really part of OO.
    If you want to use a logical database in an abap OO program I would create a special class which just does the get data from your DB and pass this either at record or table level.
    Techniques such as GET XXXX LATE aren't really part of any OO type of application since at Object Instantiation time you should be able to access ALL the attributes of that object.
    As far as OO is concerned Logical databases are a throwback to "Dinosaur Technology".
    Since however modules such as SD and FI are still heavily reliant on relational structures (i.e linked tables etc)  then there is still some limited life in this stuff but for OO try and solve it by another method.
    If you really must use this stuff in OO then do it via a FMOD call and save the data in a table which your method will pass back to your application program.
    You can't issue a GET command directly in a method.
    Cheers
    Jimbo

  • LOGICAL DATABASE IN HR ABAP PRPGRAMMING

    Hi Friends,
    what is use of LOGICAL DATABASE IN HR ABAP PROGRAMMING
    AND END-OF-SELECTION EVENT IN HR PROGRAMMING PROGRAMMING???
    regards,
    vijay.

    hi
    HR Logical Databases
    In Human Resources (HR), the following logical databases can be used as a data source for HR InfoSets:
    PNP (PNPCE)
    PAP
    PCH
    By selecting a logical database, you determine the HR data that can be reported on using an InfoSet.
    Logical Database PCH
    This logical database generally enables you to report on all HR infotypes. However, you are advised not to use this logical database unless you want to report on Personnel Planning data.
    Logical Database PNP (or PNPCE)
    Use logical database PNP to report on HR master data. It is possible to use logical database PCH to access this data, but PNP meets such reporting requirements more quickly because it is best suited to the task of selecting persons.
    Logical database PNP enables you to access HR master data and infotypes from Personnel Planning. For example, you have the following options:
    Reporting on the costs, number of attendees booked, and instructor for a business event on which an employee is booked
    Reporting on working time and planned compensation for a position that an employee occupies
    Reporting on the validity and proficiency of a qualification that an employee fulfils
    From a technical perspective, this means you can use PNP to report on all of the infotypes that exist for objects (infotype 1000) that have a direct relationship (infotype 1001) with the Person object.
    The ability to access infotypes from Personnel Planning using logical database PNP is a special feature that you can only use in the context of SAP Query and Ad Hoc Query. You cannot use this functionality for ABAP reports you programmed yourself.
    You can also use logical database PNP to report on data from Personnel Time Management (infotypes 2000 to 2999) and Payroll (special payroll infotypes for the USA and customer infotypes; for more information, access Customizing for the Human Resources Information System and see Payroll Results).
    Logical Database PAP
    Logical database PAP enables you to access data from Recruitment.
    regards
    navjot
    reward if helpfull

  • FileName in ABAP XSLT Mapping

    Dear SDN,
    In an integration scenario we are using sender File Adapter and a  ABAP XSLT Mapping.
    Is there any way to get the source FileName from such mapping.  Im trying to use the adapter-specific message attributes, but it doesn't work, and I didn´t find an example, probably I and doing somthing wrong.
    regards,
    GP

    Thank you for your help,
    I just try to access the adapter-specific attibutes using:
    <xsl:stylesheet version="1.0"
      xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
      xmlns:key="java:com.sap.aii.mapping.api.DynamicConfigurationKey">
    <xsl:variable name="filename"  select="key:create('http://sap.com/xi/XI/System/File', 'Directory')" />
    </xsl:stylesheet>
    but the following error raised:
    <SAP:Stack>Error while calling mapping program YXSLT_TEST (type Abap-XSLT, kernel error ID CX_XSLT_RUNTIME_ERROR) Call of unknown function</SAP:Stack>
    have you had this situation?

  • ABAP-- diff between sy-sy-tabix and sy-index

    Hi Guru's,
    Pleae can anybody expalins me what is the difference between sy-tabix and sy-index(Loop Index) ?
    Because in one case i am Modifyimg the internal table inside the do loop by giving sy-index ((Index of Internal Tables)(MODIFY scarr_tab INDEX sy-index FROM scarr_wa TRANSPORTING currcode. )  in the syntax and in other case inside loop statement i am modifyng same record by giving sy-tabix MODIFY scarr_tab INDEX  sy-tabix FROM scarr_wa TRANSPORTING currcode.) in the syntax.
    in both cases its working fine but i am not getting which one i have to use  where to modify the internal table?
    regards
    SATYA

    Hi Henry,
    SY-INDEX is the value of the current iteration. It is applicable for the following programming constructs in ABAP -
    DO...ENDDO.
    WHILE...ENDWHILE.
    SY-TABIX (TABle IndeX) is applicable to internal tables. If you scroll down in the link which Eddie has given, you will find a more detailed explanation for sy-tabix and which statements affect its value.
    Regards,
    Anand Mandalika.

  • Comas(,) are not getting displayed in the output while using OO ABAP

    Hi All,
    I am using ABAP objects to display the ALV report in which there is a requirement to output Quantity fields. The Quantity fields are getting displayed without comas ','. Please help me in getting back the comas in the output.
    Eg:
    Below logic is used in my program.
    Class name: cl_salv_form_layout_grid
    Code:
      obj_footer->create_text(
            row    = v_row_cnt
            column = v_col_cnt
            text   = Quantity).
    Expected output:
    39,545.000
    Current Output:
    39545.000
    Thanks in advance for your help.
    Thanks & Regards,
    Siva.

    Hi,
    Please check if the images are in the server and in the /images alias path.
    thanks,
    Sharmila

  • NULL and Space value in ABAP

    Hi All,
           I like to know, is it NULL and Space value is same in ABAP, if it is not how to check null value.
    Thank you.
    Senthil

    everything is correct though some answers are not correct.
    A Database NULL value represents a field that has never been stored to database - this saving space, potentially.
    Usually all SAP tables are stored with all fields, empty fields are stored with their initial value.
    But: If a new table append is created and the newly-added fields do not have the 'initial value' marked in table definition, Oracle will just set NULL values for them.
    as mentioned: There is no NULL value to be stored in an ABAP field. The IS NULL comparison is valid only for WHERE clause in SELECT statement. WHERE field = space is different from WHERE field IS NULL. That's why you should check for both specially for appended table fields.
    If a record is selected (fulfilling another WHERE condition) into an internal table or work area, NULL values are convertted to their initial values anyway.
    Hope that sheds some light on the subject!
    regards,
    Clemens

  • Sale order before the regeneration of ABAP report: RSM13000

    Hi there,
    I am just wondering about something.
    After we installed support packages, users could not get any sales order without to get any error message and I we could only see  an error message via SM21 which says:
    Run-time error "LOAD_TYPEPOOL_VERSION_MISMATCH" occurred.
    So after we regenerated the ABAP report: RSM13000 after that everythings seems to be ok.
    Now the question is: When we try to find the order numbers which the users created  before the regeneration we find nothing.
    What about this numbers? Did they have not been created at all or what hapened? They customer is asking now.
    Thanks in advance
    Hanseatik

    I still do not know. We created them again

  • Report J_1IEWT_CERT getting cancelled, generating ABAP dump!

    A long running report J_1IEWT_CERT in background mode is getting cancelled after running for a while and generating the following dump :
    Error analysis
        When changing or deleting one or more lines of the internal table
        "\PROGRAM=J_1IEWT_CERT\DATA=PRINTTAB[]" or when inserting in the table
         "\PROGRAM=J_1IEWT_CERT\DATA=PRINTTAB[]", 0 was used as
        the line index. An index less than or equal to zero is not
        allowed.
        The error can occur when using the following options:
        1. "INDEX idx" for specifying the line number in the table
         "\PROGRAM=J_1IEWT_CERT\DATA=PRINTTAB[]"
           where you want to change, insert or delete.
        2. "FROM idx" for specifying the start index when deleting a line
           area from or inserting a line area into the table
         "\PROGRAM=J_1IEWT_CERT\DATA=PRINTTAB[]".
        3. "TO idx" for specifying the end index when deleting a line
           area from or inserting a line area into the table
         "\PROGRAM=J_1IEWT_CERT\DATA=PRINTTAB[]".
        At the time of the termination, the table contained 17008 lines.
    How to correct the error
        If the error occurred in your own ABAP program or in an SAP
        program you modified, try to remove the error.
        If the error occures in a non-modified SAP program, you may be able to
        find an interim solution in an SAP Note.
        If you have access to SAP Notes, carry out a search with the following
        keywords:
        "TABLE_INVALID_INDEX" " "
        "J_1IEWT_CERT" or "J_1IEWT_CERT_F01"
        "FILTER_DATA"
        If you cannot solve the problem yourself and want to send an error
        notification to SAP, include the following information:
        1. The description of the current problem (short dump)
           To save the description, choose "System->List->Save->Local File
        (Unconverted)".
        2. Corresponding system log
           Display the system log by calling transaction SM21.
           Restrict the time interval to 10 minutes before and five minutes
        after the short dump. Then choose "System->List->Save->Local File
        (Unconverted)".
        3. If the problem occurs in a problem of your own or a modified SAP
        program: The source code of the program
           In the editor, choose "Utilities->More
        Utilities->Upload/Download->Download".
    Tried searching for some SAP Notes to fix the issue, no success as of now, Please help me out...

    Have you checked these notes ?
    363107 Short dump occurs during TDS certificate printing.
      803806  Error while genrating TDS certificate 03.01.2005
      1066049  J1INCERT - Error while generating TDS certificate
    Regards,
    Subhash

Maybe you are looking for