Need help on udf by my requirement

Hi folks,
I am working on file to idoc
My input file has 1 field and output Idoc has 5 records.
in my input Account field has length 16.   in this length 16. this field is mapping to all the fields of output.
for example account field has    1234 67 86 34 33.  I need to map 1234 to field 1
67 to field 2
86 to field 3
34 to filed 4
33 to field 5.
for every space we need to split and need to map output field.   after completing this I need to sort the field 1 of output.  please explain me.   Account data may very
examples  input file :
1238 67 86 34 33
1234 66 86 34 33
need output as   1234  67 86 34 33
                            1238  66 86 34 33
here only first field is sorted i.e 1234 and 1238 ....remainiing fields need to be same
ur help is highly appreciated.
Thanks,
enivass

Hi,
Since you can have spaces any where in the file/field, use "String Tokenizer" concept, you will not need java mapping, you can use graphical mapping and write UDF by selecting "All values of the Queue/Context"
Here are some useful links:
Re: Split a string with character "+" as separator
http://java.sun.com/j2se/1.4.2/docs/api/java/util/StringTokenizer.html
http://www.javafaq.nu/java-example-code-195.html
http://www.devdaily.com/java/edu/pj/pj010006/ - Concept
http://download-llnw.oracle.com/javase/1.4.2/docs/api/java/util/StringTokenizer.html - Concept
http://www.java-examples.com/java-stringtokenizer---specify-delimiter-example - with Delimiter
Regards,
Pavan

Similar Messages

  • Need help in UDF

    Hello Gurus,
    Could you please help me if v need any UDF for splitting or can i do it with graphical mapping.
    Below is the source structure
    <header>id123</header>  
    <item>item123</item>         
    <data>abd1232011
    ^^efg4562011
    ^^hij7892012</data>
    Required target structure
    <header>id123</header>       1:1
    <item>item123</item>             1:1
    <content>                               1:1          
    <data>                                    1:unbounded
        <char>abd</char>
        <num>123</num>
        <date>2011</date>
    </data>
    my requirement is to break the 1 source field "data" into  3 target fields "char","num","date". Field data is of type string and received as a raw string. The new line is determined by "^^" in the string. fields are separated by "~"
    Kindly help
    Thanks in advance.

    which version of PI u r working on??
    In case ur version is PI7.1 (or greater) then chk this code:
    UDF1:
    Input will be: var1 of type argument
    and add 3 result type with name result1, result2, result3
    Execution type: all values of a context
    String [] temp = var1[0].split("^^");
    for(int i=0;i<temp.length;i++)
    String [] split1 = temp<i>.split("~");
    result1.addValue(split1[0]);
    result2.addValue(split1[1]);
    result3.addValue(split1[2]);
    result1.addContextChange();
    result2.addContextChange();
    result3.addContextChange();
    UDF2:
    String [] temp = var1[0].split("^^");
    for(int i=0;i<temp.length;i++)
    result.addValue("");
    mapping:
    Input----UDF2---data
                           -----char
    Input----UDF1 -------num
                        -------date

  • I need help in getting the Enduser requirment collection in Quries..!

    Hello all,
          I am needed to go to the client site to get the end-user requirement on quires...!they have already sent me an xls file which has all the names/Descriptions of the reports they needed in BW module by module wise. These are not the SAP BC reports. now this something i have never worked on..(Gathering the requirement)...!and then when i come back form the site (1week)..we actually need to develop the BW modeling (from the scratch)to meet this. My client already has few other rollouts in BW like..Eg Europe/Asia ,this will help me 40% only and now this is a new rollout.
    I need ur help seriously to light success in my trip...
    1)What kind of information should i need to gather from end-user?(tell me in detail)
    2)there are around 180reports from all the modules...!and they may be or may not meet up the SAP BC.
    3)how to do the modelling based on this information?
    4)when i should go for Business contant Objects (Cubes/Datasources...etc)
    It will be kind enough for you all....!please share your experience with me..!I need it !
    Thanks to All.....!
    Have a nice day. ([email protected])

    Hi,
    For each and every report , try to get what are the restrictions to be consider and what is the logic of programming behind in the calulation of performance
    indicators.
    If you are able to get any relavent R/3 report take a look on that . and analyze the logic being used in the calcuations.
    Let us take report for Net sales(this is billing report):
    And assume the client wants to consider (total sales - value of returns) as net sales.
    So here all types of billing documents(wheher it may be sold document or return) will be extracte to BW.
    But in the report we need to differentiate the these billing documents on basis of Billing type or Billing category or Etc, to find out the value of net sales.After differentiating few documents come under sold documents and few comes under returns.
    So to differentiate the documents we should aware of what are the characterstics are crucial.
    And the logic in assigning the value of any document , each organization follows their own logic. So ask them how they are calculating them. This is important when they are following different calculation or logic for displaying values in any R/3 reports . It is important , because they will compare R/3 reports with BW reports later.
    And also try to tell them that BW is For analysis reports. It is very difficult(almost not possible) some times to built a report if they are looking pure OLTP oriented report in BW. So examine each report possibilities in BW.
    And donot worry for any thing . You will do it easily. Try to do the job with all your efforts.Then you will get success in that.
    with rgds,
    Anil Kumar Sharma .P

  • Need help on implementing a business requirement

    Hi,
    Here is a Business requirement for which I find no clues on how to do.
    I have Location as the actual geography dimension (Custom Dimension). I have programs in my entity dimension. Projects are referred as programs. These programs can run across multiple locations. The programs are identified by codes. The same program running across different locations is indentified by a different program code. Suppose I get a program “50020” in India, I do say 60% of the program in India and transfer 20% to Philippines against a different program code(Say "50021") and 20% to USA against a different program code(Say "50022"). Here “50020”, “50021” and “50022” are the same programs but running across different locations. I have two data forms
    1. Transfer Out
    2. Transfer In
    In "transfer Out" form for the selected program code "50020" in the page dimension, I specify the percentage of program that is transferred to other program codes( say 20% to program code"50021" with location "Philippines" and 20% to program code "50022" with location "USA"). These are captured against the account members say "TransferOutProgram1","TransferOutLocation1" and "TransferOutProgram2","TransferOutLocation2" respectively.
    In the "Transfer In" form i have few account members named "TransferInProgram1","TransferInLocation1" and "TransferInProgram2", TransferInLocation2". When they select "50021" and "Philippines" from page dimension, it should show these values "50020" and "India" against "TransferInProgram1" and "TransferInLocation1" respectively. What I mean to say from this form is, India program 50020 has transferred certain amount to Philippines program "50021".
    Any suggestions on how this can be managed with business rules or calc scripts or it would be great if this requirement can be achieved by some other means?
    Regards,
    Ragav.

    Hi,
    Suppose you have a spare dimension (call it details, reporting) in which you have two members, source and Target.
    By using this two members on the columns of your form and placing programs and locations (also optionally accounts) on the rows, you can define as many source and target combinations as required in the form. Place all programs and locations in the form rows and enable Supress missing data and block on the rows section. Hence, when you open the form initially, you'll find no rows. Write a business rule which writes 0 to target and brings available budget or fund on the source program-location combination. Attach it to menu and place the menu on the form. So when right clicked and run, user will select source and target combinations and your form will show only the programs and locations those are chosen by the user that (s)he will use for transferring the budget between.
    This is the basic concept though, once you get into it, you'll find many ways to enhance this.
    Cheers,
    Alp

  • Need help in LiveCycle Forms - Highlighting required fields when the check box is checked / Un-highlighting the fields if I un-check the check box...

    Hello All!
    I am relatively new to creating forms within LiveCycle but I have learned quickly so bare with me on my question.
    I have figured out how to highlight a field when a check box is clicked on, however, I cannot get it to remove the highlight when the check box is unchecked?
    This is what I used for the highlight:
    Subform1.fieldname.fillColor="255,255,0"
    Can anyone provide any insight or suggestions on how I might fix this script issue?
    Thanks in advance!
    -Lisa

    Hi,
    Script migth be something like this. Put it on Change event of the check box
    if (this.rawValue == 1) { Subform1.fieldname.fillColor="255,255,0"
    xfa.layout.relayout();
    else 
    { Subform1.fieldname.fillColor="255,0,0"
    xfa.layout.relayout();
    BR,
    Paul Butenko

  • Urgent........need help in report

    hi all,
    i need help in a report.
    the requirement is ,
    i need to create a report that will display the SO number in alv grid with check box.
    from the list, if i select the check box, it should
    •     Perform VA02, go to the item detail (Sales) (RECORDING)
    •     Update the SO line item’s Pricing Date to PGI Date
    HOW TO DO THIS.
    PLEASE HELP ME
    •     Interactive Report
    o     Report will generate a list of SO based on selection parameters
    o     User is able to choose all or partial records from the list of SO
    o     For the selected SO, user is able to perform one of the two functions:
    &#61607;     New Pricing based on Batch ID from Production Order
    &#61607;     New Pricing based on PGI Date
    o     The result of the updating is displayed on the screen
    &#61607;     SO updated with success
    &#61607;     SO not updated due to error

    Hi,
    Check this SD MODULE alv intereactive report.
    Hope it may helps u.
    REPORT  YMS_ALVINTER.
    *& tables declaration
    TABLES: VBRK,VBRP.
    *& type-pools declaration
    TYPE-POOLS: SLIS.
    *& data declaration
    DATA: G_REPID TYPE SY-REPID.
    DATA : IT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV, "mara
    WA_FIELDCAT TYPE SLIS_FIELDCAT_ALV,
    WA_LAYOUT TYPE SLIS_LAYOUT_ALV,
    WA_EVENT TYPE SLIS_ALV_EVENT,
    T_EVENT TYPE SLIS_T_EVENT.
    DATA: V_VBELN LIKE VBRK-VBELN,
    V_MATNR LIKE VBRP-MATNR.
    DATA: BEGIN OF IT_VBRK OCCURS 0,
    VBELN LIKE VBRK-VBELN,
    WAERK LIKE VBRK-WAERK,
    VKORG LIKE VBRK-VKORG,
    FKDAT LIKE VBRK-FKDAT,
    BUKRS LIKE VBRK-BUKRS,
    NETWR LIKE VBRK-NETWR,
    END OF IT_VBRK.
    DATA: BEGIN OF IT_VBRP OCCURS 0,
    VBELN LIKE VBRP-VBELN,
    POSNR LIKE VBRP-POSNR,
    FKIMG LIKE VBRP-FKIMG,
    VRKME LIKE VBRP-VRKME,
    NETWR LIKE VBRP-NETWR,
    MATNR LIKE VBRP-MATNR,
    ARKTX LIKE VBRP-ARKTX,
    END OF IT_VBRP.
    *& selection screen
    SELECTION-SCREEN BEGIN OF BLOCK B WITH FRAME TITLE TEXT-001.
    SELECT-OPTIONS: S_VBELN FOR VBRK-VBELN,
    S_FKDAT FOR VBRK-FKDAT,
    S_MATNR FOR VBRP-MATNR.
    SELECTION-SCREEN END OF BLOCK B.
    **INITIALIZATION.
    INITIALIZATION.
      G_REPID = SY-REPID.
      S_FKDAT-LOW = SY-DATUM - 200.
      S_FKDAT-HIGH = SY-DATUM.
      APPEND S_FKDAT.
    ***AT SELECTION-SCREEN.
    AT SELECTION-SCREEN.
      IF NOT S_VBELN IS INITIAL.
        SELECT SINGLE VBELN FROM VBRK
        INTO V_VBELN
        WHERE VBELN IN S_VBELN.
        IF SY-SUBRC <> 0.
          MESSAGE E001(ZZ2).
        ENDIF.
      ENDIF.
      IF NOT S_MATNR IS INITIAL.
        SELECT SINGLE MATNR FROM MARA
        INTO V_MATNR
        WHERE MATNR IN S_MATNR.
        IF SY-SUBRC <> 0.
          MESSAGE E001(ZZ2).
        ENDIF.
      ENDIF.
    ***START-OF-SELECTION.
    START-OF-SELECTION.
      PERFORM GET_DATA_VBRK.
    *& Form GET_DATA_VBRK
    text
    --> p1 text
    <-- p2 text
    FORM GET_DATA_VBRK .
      SELECT VBELN
      WAERK
      VKORG
      FKDAT
      BUKRS
      NETWR
      INTO TABLE IT_VBRK
      FROM VBRK
      WHERE VBELN IN S_VBELN
      AND FKDAT IN S_FKDAT.
    ENDFORM. " GET_DATA_VBRK
    *& Form GET_DATA_VBRP
    text
    --> p1 text
    <-- p2 text
    FORM GET_DATA_VBRP .
      SELECT VBELN
      POSNR
      FKIMG
      VRKME
      NETWR
      MATNR
      ARKTX
      FROM VBRP
      INTO TABLE IT_VBRP
      WHERE VBELN = IT_VBRK-VBELN.
    ENDFORM. " GET_DATA_VBRP
    ***END-OF-SELECTION.
    END-OF-SELECTION.
      PERFORM EVENT_LIST.
      PERFORM GET_FIELD_CATALOG.
      PERFORM LIST_DISP .
    *&      Form  list_disp
          text
    FORM LIST_DISP .
      CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
      EXPORTING
    I_INTERFACE_CHECK = ' '
    I_BYPASSING_BUFFER = ' '
    I_BUFFER_ACTIVE = ' '
      I_CALLBACK_PROGRAM = G_REPID
    I_CALLBACK_PF_STATUS_SET = 'POPUP'
      I_CALLBACK_USER_COMMAND = 'USER_COMMAND'
    I_CALLBACK_TOP_OF_PAGE = ' '
    I_CALLBACK_HTML_TOP_OF_PAGE = ' '
    I_CALLBACK_HTML_END_OF_LIST = ' '
    I_STRUCTURE_NAME =
    I_BACKGROUND_ID = ' '
    I_GRID_TITLE =
    I_GRID_SETTINGS =
    IS_LAYOUT = WA_LAYOUT
      IT_FIELDCAT = IT_FIELDCAT
    IT_EXCLUDING =
    IT_SPECIAL_GROUPS =
    IT_SORT =
    IT_FILTER =
    IS_SEL_HIDE =
    I_DEFAULT = 'X'
    I_SAVE = ' '
    IS_VARIANT =
    IT_EVENTS =
    IT_EVENT_EXIT =
    IS_PRINT =
    IS_REPREP_ID =
    I_SCREEN_START_COLUMN = 0
    I_SCREEN_START_LINE = 0
    I_SCREEN_END_COLUMN = 0
    I_SCREEN_END_LINE = 0
    IT_ALV_GRAPHICS =
    IT_HYPERLINK =
    IT_ADD_FIELDCAT =
    IT_EXCEPT_QINFO =
    I_HTML_HEIGHT_TOP =
    I_HTML_HEIGHT_END =
    IMPORTING
    E_EXIT_CAUSED_BY_CALLER =
    ES_EXIT_CAUSED_BY_USER =
      TABLES
      T_OUTTAB = IT_VBRK
      EXCEPTIONS
      PROGRAM_ERROR = 1
      OTHERS = 2
      IF SY-SUBRC <> 0.
        MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
        WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
    ENDFORM. " LIST_DISP
    *& Form GET_FIELD_CATALOG
    text
    --> p1 text
    <-- p2 text
    FORM GET_FIELD_CATALOG .
      CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
      EXPORTING
      I_PROGRAM_NAME = G_REPID
      I_INTERNAL_TABNAME = 'IT_VBRK'
    I_STRUCTURE_NAME =
    I_CLIENT_NEVER_DISPLAY = 'X'
      I_INCLNAME = G_REPID
    I_BYPASSING_BUFFER =
    I_BUFFER_ACTIVE =
      CHANGING
      CT_FIELDCAT = IT_FIELDCAT
      EXCEPTIONS
      INCONSISTENT_INTERFACE = 1
      PROGRAM_ERROR = 2
      OTHERS = 3
      IF SY-SUBRC <> 0.
        MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
        WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
    ENDFORM. " GET_FIELD_CATALOG
    *& Form event_list
    text
    --> p1 text
    <-- p2 text
    FORM EVENT_LIST .
      CLEAR WA_EVENT.
      WA_EVENT-NAME = 'USER_COMMAND'.
      WA_EVENT-FORM = 'USER_COMMAND'.
      APPEND WA_EVENT TO T_EVENT.
      CLEAR WA_EVENT.
    ENDFORM. " event_list
    *&      Form  user_command
          text
         -->R_UCOMM    text
         -->RS_SELFIELDtext
    FORM USER_COMMAND USING R_UCOMM LIKE SY-UCOMM
    RS_SELFIELD TYPE SLIS_SELFIELD.
      CASE R_UCOMM.
        WHEN '&IC1'.
          READ TABLE IT_VBRK INDEX RS_SELFIELD-TABINDEX.
          PERFORM GET_DATA_VBRP.
          PERFORM BUILD_FIELDCATALOG_VBRP .
          PERFORM DISPLAY_ALV_VBRP.
      ENDCASE.
    ENDFORM.                    "user_command
    *& Form BUILD_FIELDCATALOG_VBRP
    text
    --> p1 text
    <-- p2 text
    FORM BUILD_FIELDCATALOG_VBRP .
      CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
      EXPORTING
      I_PROGRAM_NAME = G_REPID
      I_INTERNAL_TABNAME = 'IT_VBRP'
    I_STRUCTURE_NAME =
    I_CLIENT_NEVER_DISPLAY = 'X'
      I_INCLNAME = G_REPID
    I_BYPASSING_BUFFER =
    I_BUFFER_ACTIVE =
      CHANGING
      CT_FIELDCAT = IT_FIELDCAT
      EXCEPTIONS
      INCONSISTENT_INTERFACE = 1
      PROGRAM_ERROR = 2
      OTHERS = 3
      IF SY-SUBRC <> 0.
        MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
        WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
    ENDFORM. " BUILD_FIELDCATALOG_VBRP
    *& Form DISPLAY_ALV_VBRP
    text
    --> p1 text
    <-- p2 text
    FORM DISPLAY_ALV_VBRP .
      CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
      EXPORTING
    I_INTERFACE_CHECK = ' '
    I_BYPASSING_BUFFER = ' '
    I_BUFFER_ACTIVE = ' '
      I_CALLBACK_PROGRAM = G_REPID
    I_CALLBACK_PF_STATUS_SET = ' '
    I_CALLBACK_USER_COMMAND = ' '
    I_CALLBACK_TOP_OF_PAGE = ' '
    I_CALLBACK_HTML_TOP_OF_PAGE = ' '
    I_CALLBACK_HTML_END_OF_LIST = ' '
    I_STRUCTURE_NAME =
    I_BACKGROUND_ID = ' '
    I_GRID_TITLE =
    I_GRID_SETTINGS =
    IS_LAYOUT =
      IT_FIELDCAT = IT_FIELDCAT
    IT_EXCLUDING =
    IT_SPECIAL_GROUPS =
    IT_SORT =
    IT_FILTER =
    IS_SEL_HIDE =
    I_DEFAULT = 'X'
    I_SAVE = ' '
    IS_VARIANT =
    IT_EVENTS =
    IT_EVENT_EXIT =
    IS_PRINT =
    IS_REPREP_ID =
    I_SCREEN_START_COLUMN = 0
    I_SCREEN_START_LINE = 0
    I_SCREEN_END_COLUMN = 0
    I_SCREEN_END_LINE = 0
    IT_ALV_GRAPHICS =
    IT_HYPERLINK =
    IT_ADD_FIELDCAT =
    IT_EXCEPT_QINFO =
    I_HTML_HEIGHT_TOP =
    I_HTML_HEIGHT_END =
    IMPORTING
    E_EXIT_CAUSED_BY_CALLER =
    ES_EXIT_CAUSED_BY_USER =
      TABLES
      T_OUTTAB = IT_VBRP
      EXCEPTIONS
      PROGRAM_ERROR = 1
      OTHERS = 2
      IF SY-SUBRC <> 0.
        MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
        WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
    ENDFORM. " DISPLAY_ALV_VBRP
    Thanks,
    Shankar

  • HT204291 I have downloaded the new Lion OS X but the AirPlay icon wont appear in my menu bar.  The option of AirPlay mirroring is turned on in the Display settings. No issues Air playing through iTunes. Need help. Thanks

    I have downloaded the new Lion OS X but the AirPlay icon wont appear in my menu bar.  The option of AirPlay mirroring is turned on in the Display settings. No issues Air playing through iTunes. Need help. Thanks

    AirPlay
    AirPlay Mirroring requires a second-generation Apple TV or later, and is supported on the following Mac models: iMac (Mid 2011 or newer), Mac mini (Mid 2011 or newer), MacBook Air (Mid 2011 or newer), and MacBook Pro (Early 2011 or newer).
    Several Apple Articles Regarding AirPlay
    Apple TV (2nd and 3rd gen)- How to use AirPlay Mirroring
    How to set up and configure AirPort Express for AirPlay and iTunes
    Troubleshooting AirPlay and AirPlay Mirroring
    Using AirPlay

  • Sales Quotation Scenario - need help

    Hi,
    I need help in fulfilling my client requirement.
    Once quotation is created it should be in the blocked stage.
    Once the sales manager changes the quantity it should  not allowed to change the quantity and only Marketing director can change the quantity.
    After Marketing director changes and finalizes the quantity in the quotation the item lines in the quotation either need to be greyed out or should not be editable but should allow to add items in the same quotation.
    Now Sales order should be able to be created referring this quotation.
    Please let me how can we achieve this functionality either by standard SAP or by ABAP development.
    Thanks
    Venkata Rama Reddy

    Once quotation is created it should be in the blocked stage.
    Once the sales manager changes the quantity it should not allowed to change the quantity and only Marketing director can change the quantity.
    - To disable the qtty in Quotation Creation-VA21 ( either use the SHDB-Transaction Variant, Make the order qtty- display mode/ maintian this order qtty )
    +NOTE:   incompletion procedure-line item level- remove "order qtty" for quotaiton or else system will not allow to save the Quotation ( or else you save the Incomplete document)
    - Use BS02- Status profile- maintian sales manager /  Marketing director - as status No.
    - Business transaction in the status profile _ maintain the object " Create Order" - objectionable against the status no. & last colum is Authorization code- assign respective profile here & maintain the same in respective Username- for authorizations.
    After Marketing director changes and finalizes the quantity in the quotation the item lines in the quotation either need to be greyed out or should not be editable but should allow to add items in the same quotation.
    Now Sales order should be able to be created referring this quotation.
    HOpe it helps

  • This Adobe muse site file requires a newer version of Adobe Muse. I want to comeback to old version Adobe muse i need help to open my file thanks

    This Adobe muse site file requires a newer version of Adobe Muse. I want to comeback to old version Adobe muse i need help to open my file thanks

    Hi,
    You may need to design the site again in older version OR may be copy and paste in place from new to old except what is new in the latest version.
    Hope that helps!
    Kind Regards,

  • Need help in modifing the following code to display required output

    Hi this is the code which i am going to displayoutput here i used FM VRM_SET_VALUES for getting dropdown box when i used it my output race field is not getting any values and blank space is getting displayed
    what i want is just i need to display the output according to the selection screen
    and the other fields in the selection screen except 'p_gender' are also  giving problem when i am keeping where condition to link selection screen
    can any one please help me in getting the required output according to selection by modifing the following code
    TABLES: pernr,t5u13,cskt , t001p,t500p, t501t,t503t,t513s,t527x,t529t,t530t, t5uaa.
    TYPE-POOLS: slis, vrm.
    INFOTYPES: 0000,                               "Actions
               0001,                               "Org Assignment
               0002,                               "Personal Data
               0006,                               "Address
               0008,                               "Basic Pay
               0041,                               "Date Specifications
               0077.                               "Additional Personal Data
    CONSTANTS: gc_x               TYPE c VALUE 'X',
               g_w(1)             TYPE c VALUE 'W',
               g_h(1)             TYPE c VALUE 'H',
               g_af(2)            TYPE c VALUE 'AF',
               g_ai(2)            TYPE c VALUE 'AI',
               g_01(2)            TYPE c VALUE 'R1',
               g_02(2)            TYPE c VALUE 'R2',
               g_03(2)            TYPE c VALUE 'R3',
               g_05(2)            TYPE c VALUE 'R5'.
    TYPES : BEGIN OF t_roster,
            pernr                 TYPE p0001-pernr,
            ssn                   TYPE p0002-perid,
            first_name            TYPE p0002-vorna,
            last_name             TYPE p0002-nachn,
            city                  TYPE t500p-ort01,
            state                 TYPE t500p-regio,
            zipcode               TYPE t500p-pstlz,
            hire_date(10)         TYPE c,
            lhire_date(10)        TYPE c,
            serv_date(10)         TYPE c,
            eg                    TYPE p0001-persg,
            eg_desc               TYPE t501t-ptext,
            esg                   TYPE p0001-persk,
            esg_desc              TYPE t503t-ptext,
            race                  TYPE p0077-rac01,
            ***                   TYPE p0002-gesch,
            job_grade             TYPE p0008-trfgr,
            job_level             TYPE p0008-trfst,
            grade_entry_date(10)  TYPE c,
            job_title             TYPE p0001-plans,
            title(30)             TYPE c,
            job_code              TYPE p0001-stell,
            job_code_desc         TYPE t513s-stltx,
            job_entry_date(10)    TYPE c,
            annual_sal            TYPE p0008-ansal,
            hrly_rate             TYPE p0008-bet01,
            org_unit              TYPE p0001-orgeh,
            orgtx(40)             TYPE c,
            cost_cntr             TYPE p0001-kostl,
            ltext(40)             TYPE c,
            personal_area         TYPE p0001-werks,
            personal_area_desc    TYPE t500p-name1,
            supervisor(30)        TYPE c,
            flsa                  TYPE t5u13-exmpt,
            ee01                  TYPE t5u13-eeoct,
            job_grp               TYPE p0001-stell,
            aap_code              TYPE t5u13-aapct,
            aap_code_desc         TYPE t5uaa-ltext,
            dob                   TYPE p0002-gbdat,
            psa                   TYPE p0001-btrtl,
            psa_desc              TYPE t001p-btext,
            unionl                TYPE p0001-btrtl,
            unionc                TYPE p0001-btrtl,
      END OF t_roster.
    DATA : gi_roster TYPE  STANDARD TABLE OF  t_roster, gi_objec TYPE  STANDARD TABLE OF  objec,
           gi_hrp1000      TYPE  STANDARD TABLE OF  hrp1000,
           gi_cskt         TYPE  STANDARD TABLE OF  cskt,
           gi_t001p        TYPE  STANDARD TABLE OF  t001p,
           gi_t500p        TYPE  STANDARD TABLE OF  t500p,
           gi_t501t        TYPE  STANDARD TABLE OF  t501t,
           gi_t503t        TYPE  STANDARD TABLE OF  t503t,
           gi_t513s        TYPE  STANDARD TABLE OF  t513s,
           gi_t527x        TYPE  STANDARD TABLE OF  t527x,
           gi_t529t        TYPE  STANDARD TABLE OF  t529t,
           gi_t530t        TYPE  STANDARD TABLE OF  t530t,
           gi_t5u13        TYPE  STANDARD TABLE OF  t5u13,
           gi_t5uaa        TYPE  STANDARD TABLE OF  t5uaa.
    DATA : gs_roster       TYPE t_roster,
             gs_objec        TYPE objec,
           gs_hrp1000      TYPE hrp1000,
           gs_cskt         TYPE cskt,
           gs_t001p        TYPE t001p,
           gs_t500p        TYPE t500p,
           gs_t501t        TYPE t501t,
           gs_t503t        TYPE t503t,
           gs_t513s        TYPE t513s,
           gs_t527x        TYPE t527x,
           gs_t529t        TYPE t529t,
           gs_t530t        TYPE t530t,
           gs_t5u13        TYPE t5u13,
           gs_t5uaa        TYPE t5uaa.
    DATA :  gv_ltext(40)       TYPE c,
            gv_ltext1(40)      TYPE c,
            gv_age(3)          TYPE c,
            gv_butxt(40)       TYPE c,
            gv_eeoc(10)        TYPE c,
            gv_prevdate        TYPE datum.
    DATA: gi_fieldcat    TYPE slis_t_fieldcat_alv,
          gs_fieldcat    TYPE slis_fieldcat_alv,
          i_top_of_page  TYPE slis_t_listheader,
          g_repid        TYPE sy-repid,
          g_save,
          gs_layout      TYPE slis_layout_alv,
          gt_events      TYPE slis_t_event,
          gs_variant     LIKE disvariant,
          gi_top_of_page TYPE slis_formname VALUE 'TOP_OF_PAGE'.
    DATA: name  TYPE vrm_id,
          list  TYPE vrm_values,
          value LIKE LINE OF list.
    SELECTION-SCREEN BEGIN OF BLOCK b1
                     WITH FRAME TITLE text-x02.
    PARAMETERS : p_race(10) AS LISTBOX VISIBLE LENGTH 30,
                 p_gender TYPE p0002-gesch,
                 p_eeoc   TYPE t5u13-eeoct,
                 p_aap    TYPE t5u13-aapct.
    SELECTION-SCREEN END OF BLOCK b1.
    AT SELECTION-SCREEN OUTPUT.
      REFRESH list.
      name = 'P_RACE'.
      value-key = 'R1'.
      value-text = 'American Indian or Alaskan Native'.
      APPEND value TO list.
    CLEAR value.
      value-key = 'R2'.
      value-text = 'Asian'.
      APPEND value TO list.
    CLEAR value.
      value-key = 'R3'.
      value-text = 'Black or African American'.
      APPEND value TO list.
    CLEAR value.
      value-key = 'R5'.
      value-text = 'White'.
      APPEND value TO list.
    CLEAR value.
      CALL FUNCTION 'VRM_SET_VALUES'
        EXPORTING
          id              = name
          values          = list
        EXCEPTIONS
          id_illegal_name = 1
          OTHERS          = 2.
    INITIALIZATION.
      g_repid = sy-repid.
      PERFORM layout_init    USING gs_layout.
      PERFORM eventtab_build USING gt_events[].
      gs_variant-report = g_repid.
      g_save = 'A'.
    START-OF-SELECTION.
    GET pernr.
        PERFORM roster_aap.
    END-OF-SELECTION.
    PERFORM fetch_roster_text.
        PERFORM output_roster_display.
    *&      Form  ROSTER_AAP
          text
    -->  p1        text
    <--  p2        text
    FORM roster_aap .
      PERFORM infty_rost_0001.
      PERFORM infty_rost_0002.
      PERFORM infty_rost_0008.
      PERFORM infty_rost_0041.
      PERFORM infty_rost_0077.
      PERFORM supervisor_rost.
      PERFORM append_rost_recs.
    ENDFORM.                    " ROSTER_AAP
    *&      Form  INFTY_ROST_0001
          text
    FORM infty_rost_0001 .
      rp_provide_from_last p0001 space
                              pn-begda pn-endda.
      IF pnp-sw-found = 1.
        gs_roster-pernr         = p0001-pernr.
        gs_roster-eg            = p0001-persg.
        READ TABLE gi_t501t INTO gs_t501t WITH KEY persg = p0001-persg.
        IF sy-subrc <> 0.
          APPEND gs_t501t TO gi_t501t.
          CLEAR gs_t501t.
        ENDIF.
        gs_roster-esg           = p0001-persk.
        READ TABLE gi_t503t INTO gs_t503t WITH KEY persk = p0001-persk.
        IF sy-subrc <> 0.
          APPEND gs_t503t TO gi_t503t.
          CLEAR gs_t503t.
        ENDIF.
        gs_roster-job_title     = p0001-plans.
        READ TABLE gi_hrp1000 INTO gs_hrp1000 WITH KEY objid = p0001-plans.
        IF sy-subrc <> 0.
          APPEND gs_hrp1000 TO gi_hrp1000.
          CLEAR gs_hrp1000.
        ENDIF.
        gs_roster-job_code      = p0001-stell.
        READ TABLE gi_t513s INTO gs_t513s WITH KEY stell = p0001-stell.
        IF sy-subrc <> 0.
          APPEND gs_t513s TO gi_t513s.
          CLEAR gs_t513s.
        ENDIF.
        gs_roster-org_unit      = p0001-orgeh.
        READ TABLE gi_t527x INTO gs_t527x WITH KEY orgeh = p0001-orgeh.
        IF sy-subrc <> 0.
          APPEND gs_t527x TO gi_t527x.
          CLEAR gs_t527x.
        ENDIF.
        gs_roster-cost_cntr     = p0001-kostl.
        READ TABLE gi_cskt INTO gs_cskt WITH KEY kostl = p0001-kostl.
        IF sy-subrc <> 0.
          APPEND gs_cskt TO gi_cskt.
          CLEAR gs_cskt.
        ENDIF.
        gs_roster-personal_area = p0001-werks.
        READ TABLE gi_t500p INTO gs_t500p WITH KEY persa = p0001-werks.
        IF sy-subrc <> 0.
          APPEND gs_t500p TO gi_t500p.
          CLEAR gs_t500p.
        ENDIF.
        gs_roster-job_grp       = p0001-stell.
        READ TABLE gi_t5u13 INTO gs_t5u13 WITH KEY stell = p0001-stell.
        IF sy-subrc <> 0.
          APPEND gs_t5u13 TO gi_t5u13.
          CLEAR gs_t5u13.
        ENDIF.
        READ TABLE gi_t5uaa INTO gs_t5uaa WITH KEY aapct = gs_roster-aap_code.
        IF sy-subrc <> 0.
          APPEND gs_t5uaa TO gi_t5uaa.
          CLEAR gs_t5uaa.
        ENDIF.
        gs_roster-psa           = p0001-btrtl.
        READ TABLE gi_t001p INTO gs_t001p WITH KEY btrtl = p0001-btrtl.
        IF sy-subrc <> 0.
          APPEND gs_t001p TO gi_t001p.
          CLEAR gs_t001p.
        ENDIF.
        gs_roster-unionl        = p0001-btrtl.
        gs_roster-unionc        = p0001-btrtl.
      ENDIF.
    ENDFORM.                    " INFTY_ROST_0001
    *&      Form  INFTY_ROST_0002
          text
    FORM infty_rost_0002 .
      rp_provide_from_last p0002 space
                              pn-begda pn-endda.
      IF pnp-sw-found = 1.
        IF p_gender IS NOT INITIAL AND p_gender NE p0002-gesch.
          REJECT.
        ENDIF.
        gs_roster-ssn        = p0002-perid.
        gs_roster-first_name = p0002-vorna.
        gs_roster-last_name  = p0002-nachn.
        gs_roster-***        = p0002-gesch.
        gs_roster-dob        = p0002-gbdat.
      ENDIF.
    ENDFORM.                    " INFTY_ROST_0002
    *&      Form  INFTY_ROST_0008
          text
    FORM infty_rost_0008 .
      DATA: lv_wage TYPE lgart,
            lv_amount TYPE pad_amt7s.
      rp_provide_from_last p0008 space
                              pn-begda pn-endda.
      IF pnp-sw-found = 1.
        gs_roster-annual_sal = p0008-ansal.
        DO 40 TIMES VARYING lv_wage FROM p0008-lga01
                                  NEXT p0008-lga02
                  VARYING lv_amount FROM p0008-bet01
                                    NEXT p0008-bet02.
          IF lv_wage = '0101'.
            gs_roster-hrly_rate = lv_amount.
            EXIT.
          ENDIF.
        ENDDO.
        gs_roster-job_grade    = p0008-trfgr.
        gs_roster-job_level    = p0008-trfst.
      ENDIF.
    ENDFORM.                    " INFTY_ROST_0008
    *&      Form  INFTY_ROST_0041
          text
    FORM infty_rost_0041 .
      DATA : l_date  TYPE datum,
             l_hdate TYPE datum,
             l_sdate TYPE datum.
      rp_provide_from_last p0041 space
                           pn-begda pn-endda.
      IF pnp-sw-found = 1.
        CLEAR : l_date,
                l_hdate,
                l_sdate.
    *--Last Hire Date--
        CALL FUNCTION 'HR_DATESPECIFICATION_DATE_GET'
          EXPORTING
            p0041                    = p0041
            p_datar                  = 'U1'
         P_DATKN                  =
         IMPORTING
           p_date                   = l_date
         EXCEPTIONS
           illegal_arguments        = 1
           more_than_one_date       = 2
           OTHERS                   = 3
        IF sy-subrc <> 0.
        ENDIF.
        IF NOT l_date IS INITIAL.
          CONCATENATE
                     l_date4(2) l_date6(2) l_date+0(4)
                     INTO gs_roster-hire_date
                     SEPARATED BY '/'.
        ENDIF.
      ENDIF.
    *--Last Hire Date--
      CALL FUNCTION 'HR_DATESPECIFICATION_DATE_GET'
        EXPORTING
          p0041                    = p0041
          p_datar                  = 'U2'
         P_DATKN                  =
       IMPORTING
         p_date                   = l_hdate
       EXCEPTIONS
         illegal_arguments        = 1
         more_than_one_date       = 2
         OTHERS                   = 3
      IF sy-subrc <> 0.
      ENDIF.
      IF NOT l_hdate IS INITIAL.
        CONCATENATE
                   l_hdate4(2) l_hdate6(2) l_hdate+0(4)
                   INTO gs_roster-lhire_date
                   SEPARATED BY '/'.
      ENDIF.
    *--Service Date--
      CALL FUNCTION 'HR_DATESPECIFICATION_DATE_GET'
        EXPORTING
          p0041                    = p0041
          p_datar                  = 'U4'
         P_DATKN                  =
       IMPORTING
         p_date                   = l_sdate
       EXCEPTIONS
         illegal_arguments        = 1
         more_than_one_date       = 2
         OTHERS                   = 3
      IF sy-subrc <> 0.
      ENDIF.
      IF NOT l_sdate IS INITIAL.
        CONCATENATE
                   l_sdate4(2) l_sdate6(2) l_sdate+0(4)
                   INTO gs_roster-serv_date
                   SEPARATED BY '/'.
      ENDIF.
    ENDFORM.                    " INFTY_ROST_0041
    *&      Form  INFTY_ROST_0077
          text
    FORM infty_rost_0077 .
      DATA: lv_race TYPE races.
    rp_provide_from_last p0077 space
                                   pn-begda pn-endda.
      IF pnp-sw-found = 1.
        IF NOT p_race IS INITIAL AND p_race NE lv_race.
          REJECT.
        ENDIF.
        DO 10 TIMES VARYING lv_race FROM p0077-rac01
                                NEXT p0077-rac02.
          IF lv_race NE space.
            IF lv_race EQ g_01.
              gs_roster-race = g_ai.
            ELSEIF lv_race EQ g_02.
              gs_roster-race = g_h.
            ELSEIF lv_race EQ g_03.
              gs_roster-race = g_af.
            ELSEIF lv_race EQ g_05.
              gs_roster-race = g_w.
            ENDIF.
          ENDIF.
        ENDDO.
      ENDIF.
    ENDFORM.                    " INFTY_ROST_0077
    *&      Form  SUPERVISOR_ROST
          text
    FORM supervisor_rost .
      REFRESH gi_objec.
      IF NOT  p0001-orgeh IS INITIAL.
        CALL FUNCTION 'HRCM_ORGUNIT_MANAGER_GET'
          EXPORTING
            plvar                    = '01'
            otype                    = 'O'
            objid                    = p0001-orgeh
            begda                    = pn-begda
            endda                    = pn-endda
        PATH_ID                  = ' '
        TABLES
           manager_info_table       = gi_objec
         EXCEPTIONS
           path_error               = 1
           root_error               = 2
           nothing_found            = 3
           OTHERS                   = 4
        IF sy-subrc <> 0.
        ENDIF.
        SORT gi_objec DESCENDING BY endda.
        READ TABLE gi_objec INTO gs_objec INDEX 1.
        IF sy-subrc = 0.
          gs_roster-supervisor = gs_objec-stext.
          CLEAR gs_objec.
        ENDIF.
      ENDIF.
    ENDFORM.                    " SUPERVISOR_ROST
    *&      Form  APPEND_ROST_RECS
          text
    FORM append_rost_recs .
      IF NOT gs_roster-pernr IS INITIAL.
        APPEND gs_roster TO gi_roster.
        CLEAR gs_roster.
      ENDIF.
    ENDFORM.                    " APPEND_ROST_RECS
    *&      Form  FETCH_ROSTER_TEXT
          text
    FORM fetch_roster_text .
      IF p_eeoc IS NOT INITIAL AND p_eeoc NE t5u13-eeoct.
        REJECT.
      ENDIF.
      IF NOT gi_roster IS INITIAL.
        SELECT orgeh orgtx FROM t527x
           INTO CORRESPONDING FIELDS OF TABLE gi_t527x
           WHERE  sprsl = sy-langu AND
                  endda = '99991231'.
        SELECT persa ort01 regio pstlz name1
            FROM t500p
            INTO CORRESPONDING FIELDS OF TABLE gi_t500p.
        SELECT persg ptext
            FROM t501t
            INTO CORRESPONDING FIELDS OF TABLE gi_t501t
            WHERE  sprsl = sy-langu.
        SELECT persk ptext
                 FROM t503t
                 INTO CORRESPONDING FIELDS OF TABLE gi_t503t
                  WHERE  sprsl = sy-langu.
        SELECT stell stltx FROM t513s
           INTO CORRESPONDING FIELDS OF TABLE gi_t513s
           WHERE sprsl = sy-langu AND
                 endda = '99991231'.
        SELECT otype plvar objid stext
                FROM hrp1000 INTO
                CORRESPONDING FIELDS OF TABLE gi_hrp1000
               for all entries in gi_roster
                                        WHERE plvar = '01'
                                        AND otype = 'S'.
                                       and objid = gi_roster-job_title.
        SELECT stell eeoct exmpt aapct
             FROM t5u13
             INTO CORRESPONDING FIELDS OF TABLE gi_t5u13.
            for all entries in gi_t5u13
         WHERE stell = gi_t5u13-stell
         AND eeoct = p_eeoc
         AND aapct = p_aap.
        SELECT aapct eeoct ltext
                FROM t5uaa
                INTO CORRESPONDING FIELDS OF TABLE gi_t5uaa.
             FOR ALL ENTRIES IN gi_roster
             WHERE aapct = gi_roster-aap_code
               and eeoct = gi_roster-ee01.
        SELECT  kostl ltext
          FROM cskt
           INTO CORRESPONDING FIELDS OF TABLE gi_cskt
          FOR ALL ENTRIES IN gi_roster
          WHERE  kostl =  gi_roster-cost_cntr
         WHERE   spras = sy-langu.
        SELECT btrtl btext
             FROM t001p
             INTO CORRESPONDING FIELDS OF TABLE gi_t001p.
            FOR ALL ENTRIES IN gi_roster
            WHERE btrtl = gi_roster-psa.
      ENDIF.
      LOOP AT gi_roster INTO gs_roster.
        CLEAR :gs_hrp1000,gs_t5u13,gs_t500p,gs_t501t,gs_t503t,gs_t5uaa,gs_cskt,gs_t001p,gs_t513s,          gs_t527x,gs_t529t,gs_t530t.
        READ TABLE gi_t501t INTO gs_t501t WITH KEY persg = gs_roster-eg.
        IF sy-subrc = 0.
          gs_roster-eg_desc = gs_t501t-ptext.
        ENDIF.
        READ TABLE gi_t503t INTO gs_t503t WITH KEY persk = gs_roster-esg.
        IF sy-subrc = 0.
          gs_roster-esg_desc = gs_t503t-ptext.
        ENDIF.
        READ TABLE gi_t513s INTO gs_t513s
                            WITH KEY stell = gs_roster-job_code.
        IF sy-subrc = 0.
          gs_roster-job_code_desc = gs_t513s-stltx.
        ENDIF.
        READ TABLE gi_t527x INTO gs_t527x
                          WITH KEY orgeh = gs_roster-org_unit.
        IF sy-subrc = 0.
          gs_roster-orgtx = gs_t527x-orgtx.
        ENDIF.
        READ TABLE gi_hrp1000 INTO gs_hrp1000 WITH KEY objid = gs_roster-job_title.
        IF sy-subrc = 0.
          gs_roster-title = gs_hrp1000-stext.
        ENDIF.
        READ TABLE gi_cskt INTO gs_cskt
                               WITH KEY kostl = gs_roster-cost_cntr.
        IF sy-subrc = 0.
          gs_roster-ltext = gs_cskt-ltext.
        ENDIF.
        READ TABLE gi_t5u13 INTO gs_t5u13 WITH KEY stell = gs_roster-job_code.
        IF sy-subrc = 0.
          gs_roster-ee01      = gs_t5u13-eeoct.
          gs_roster-flsa      = gs_t5u13-exmpt.
          gs_roster-aap_code  = gs_t5u13-aapct.
        ENDIF.
        READ TABLE gi_t500p INTO gs_t500p WITH KEY persa = gs_roster-personal_area.
        IF sy-subrc = 0.
          gs_roster-city               = gs_t500p-ort01.
          gs_roster-state              = gs_t500p-regio.
          gs_roster-zipcode            = gs_t500p-pstlz.
          gs_roster-personal_area_desc = gs_t500p-name1.
        ENDIF.
        READ TABLE gi_t001p INTO gs_t001p WITH KEY btrtl = gs_roster-psa.
        IF sy-subrc = 0.
          gs_roster-psa_desc = gs_t001p-btext.
        ENDIF.
        READ TABLE gi_t5uaa INTO gs_t5uaa WITH KEY aapct = gs_roster-aap_code eeoct = gs_roster-ee01.
        IF sy-subrc = 0.
          gs_roster-aap_code_desc     = gs_t5uaa-ltext.
        ENDIF.
        MODIFY gi_roster FROM gs_roster .
      ENDLOOP.
    ENDFORM.                    " FETCH_ROSTER_TEXT
    *&      Form  OUTPUT_ROSTER_DISPLAY
          text
    FORM output_roster_display .
      PERFORM build_roster_fieldcatalog.
      PERFORM comment_roster_build CHANGING i_top_of_page[].
      PERFORM display_roster_alv_report.
    ENDFORM.                    " OUTPUT_ROSTER_DISPLAY
    *&      Form  LAYOUT_INIT
          text
    FORM layout_init  USING rs_layout TYPE slis_layout_alv.
      rs_layout-detail_popup      = 'X'.
      rs_layout-zebra             = 'X'.
      rs_layout-colwidth_optimize = 'X'.
    ENDFORM.                    " LAYOUT_INIT
    *&      Form  EVENTTAB_BUILD
          text
    FORM eventtab_build  USING rt_events TYPE slis_t_event.
    *"Registration of events to happen during list display
      DATA: ls_event TYPE slis_alv_event.
      CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
        EXPORTING
          i_list_type = 0
        IMPORTING
          et_events   = rt_events.
      READ TABLE rt_events WITH KEY name = slis_ev_top_of_page
                                 INTO ls_event.
      IF sy-subrc = 0.
        MOVE gi_top_of_page TO ls_event-form.
        APPEND ls_event TO rt_events.
      ENDIF.
    ENDFORM.                    " EVENTTAB_BUILD
    *&      Form  top_of_page
          text
    FORM top_of_page.
      CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
        EXPORTING
          it_list_commentary = i_top_of_page.
    ENDFORM.                    "TOP_OF_PAGE
    *&      Form  BUILD_ROSTER_FIELDCATALOG
          text
    FORM build_roster_fieldcatalog .
      gs_fieldcat-fieldname = 'PERNR'.
      gs_fieldcat-seltext_m = 'Employee Number'.
      APPEND gs_fieldcat TO gi_fieldcat.
      CLEAR gs_fieldcat.
      gs_fieldcat-fieldname = 'SSN'.
      gs_fieldcat-seltext_m = 'SSN Number'.
      APPEND gs_fieldcat TO gi_fieldcat.
      CLEAR gs_fieldcat.
      gs_fieldcat-fieldname = 'FIRST_NAME'.
      gs_fieldcat-seltext_m = 'First Name'.
      APPEND gs_fieldcat TO gi_fieldcat.
      CLEAR gs_fieldcat.
      gs_fieldcat-fieldname = 'LAST_NAME'.
      gs_fieldcat-seltext_m = 'Last Name'.
      APPEND gs_fieldcat TO gi_fieldcat.
      CLEAR gs_fieldcat.
      gs_fieldcat-fieldname = 'CITY'.
      gs_fieldcat-seltext_m = 'City'.
      APPEND gs_fieldcat TO gi_fieldcat.
      CLEAR gs_fieldcat.
      gs_fieldcat-fieldname = 'STATE'.
      gs_fieldcat-seltext_m = 'State'.
      APPEND gs_fieldcat TO gi_fieldcat.
      CLEAR gs_fieldcat.
      gs_fieldcat-fieldname = 'ZIPCODE'.
      gs_fieldcat-seltext_m = 'Zip Code'.
      APPEND gs_fieldcat TO gi_fieldcat.
      CLEAR gs_fieldcat.
      gs_fieldcat-fieldname = 'HIRE_DATE'.
      gs_fieldcat-seltext_m = 'Hire Date'.
      APPEND gs_fieldcat TO gi_fieldcat.
      CLEAR gs_fieldcat.
      gs_fieldcat-fieldname = 'LHIRE_DATE'.
      gs_fieldcat-seltext_m = 'Last Hire Date'.
      APPEND gs_fieldcat TO gi_fieldcat.
      CLEAR gs_fieldcat.
      gs_fieldcat-fieldname = 'SERV_DATE'.
      gs_fieldcat-seltext_m = 'Service Date'.
      APPEND gs_fieldcat TO gi_fieldcat.
      CLEAR gs_fieldcat.
      gs_fieldcat-fieldname = 'EG'.
      gs_fieldcat-seltext_m = 'Eg'.
      APPEND gs_fieldcat TO gi_fieldcat.
      CLEAR gs_fieldcat.
      gs_fieldcat-fieldname = 'EG_DESC'.
      gs_fieldcat-seltext_m = 'Eg Description'.
      APPEND gs_fieldcat TO gi_fieldcat.
      CLEAR gs_fieldcat.
      gs_fieldcat-fieldname = 'ESG'.
      gs_fieldcat-seltext_m = 'Esg'.
      APPEND gs_fieldcat TO gi_fieldcat.
      CLEAR gs_fieldcat.
      gs_fieldcat-fieldname = 'ESG_DESC'.
      gs_fieldcat-seltext_m = 'Eg Description'.
      APPEND gs_fieldcat TO gi_fieldcat.
      CLEAR gs_fieldcat.
      gs_fieldcat-fieldname = 'RACE'.
      gs_fieldcat-seltext_m = 'Race'.
      APPEND gs_fieldcat TO gi_fieldcat.
      CLEAR gs_fieldcat.
      gs_fieldcat-fieldname = '***'.
      gs_fieldcat-seltext_m = '***'.
      APPEND gs_fieldcat TO gi_fieldcat.
      CLEAR gs_fieldcat.
      gs_fieldcat-fieldname = 'JOB_GRADE'.
      gs_fieldcat-seltext_m = 'Job Grade'.
      APPEND gs_fieldcat TO gi_fieldcat.
      CLEAR gs_fieldcat.
      gs_fieldcat-fieldname = 'JOB_LEVEL'.
      gs_fieldcat-seltext_m = 'Job Level'.
      APPEND gs_fieldcat TO gi_fieldcat.
      CLEAR gs_fieldcat.
      gs_fieldcat-fieldname = 'GRADE_ENTRY_DATE'.
      gs_fieldcat-seltext_l = 'Grade Entry Date'.
      APPEND gs_fieldcat TO gi_fieldcat.
      CLEAR gs_fieldcat.
      gs_fieldcat-fieldname = 'JOB_TITLE'.
      gs_fieldcat-seltext_l = 'Job Title'.
      APPEND gs_fieldcat TO gi_fieldcat.
      CLEAR gs_fieldcat..
      gs_fieldcat-fieldname = 'TITLE'.
      gs_fieldcat-seltext_l = 'Job Title Description'.
      APPEND gs_fieldcat TO gi_fieldcat.
      CLEAR gs_fieldcat.
      gs_fieldcat-fieldname = 'JOB_CODE'.
      gs_fieldcat-seltext_l = 'Job Code'.
      APPEND gs_fieldcat TO gi_fieldcat.
      CLEAR gs_fieldcat.
      gs_fieldcat-fieldname = 'JOB_CODE_DESC'.
      gs_fieldcat-seltext_l = 'Job Code Description'.
      APPEND gs_fieldcat TO gi_fieldcat.
      CLEAR gs_fieldcat.
      gs_fieldcat-fieldname = 'JOB_ENTRY_DATE'.
      gs_fieldcat-seltext_l = 'Job Entry Date'.
      APPEND gs_fieldcat TO gi_fieldcat.
      CLEAR gs_fieldcat.
      gs_fieldcat-fieldname = 'ANNUAL_SAL'.
      gs_fieldcat-seltext_l = 'Annual Salary'.
      APPEND gs_fieldcat TO gi_fieldcat.
      CLEAR gs_fieldcat.
      gs_fieldcat-fieldname = 'HRLY_RATE'.
      gs_fieldcat-seltext_l = 'Hourly Rate'.
      APPEND gs_fieldcat TO gi_fieldcat.
      CLEAR gs_fieldcat.
      gs_fieldcat-fieldname = 'ORG_UNIT'.
      gs_fieldcat-seltext_l = 'Org Unit'.
      APPEND gs_fieldcat TO gi_fieldcat.
      CLEAR gs_fieldcat.
      gs_fieldcat-fieldname = 'ORGTX'.
      gs_fieldcat-seltext_l = 'Org Text'.
      APPEND gs_fieldcat TO gi_fieldcat.
      CLEAR gs_fieldcat.
      gs_fieldcat-fieldname = 'COST_CNTR'.
      gs_fieldcat-seltext_l = 'Cost Center'.
      APPEND gs_fieldcat TO gi_fieldcat.
      CLEAR gs_fieldcat.
      gs_fieldcat-fieldname = 'LTEXT'.
      gs_fieldcat-seltext_l = 'Cost Center Description'.
      APPEND gs_fieldcat TO gi_fieldcat.
      CLEAR gs_fieldcat.
      gs_fieldcat-fieldname = 'PERSONAL_AREA'.
      gs_fieldcat-seltext_l = 'Personal Area'.
      APPEND gs_fieldcat TO gi_fieldcat.
      CLEAR gs_fieldcat.
      gs_fieldcat-fieldname = 'PERSONAL_AREA_DESC'.
      gs_fieldcat-seltext_l = 'Personal Area Description'.
      APPEND gs_fieldcat TO gi_fieldcat.
      CLEAR gs_fieldcat.
      gs_fieldcat-fieldname = 'SUPERVISOR'.
      gs_fieldcat-seltext_l = 'Supervisor'.
      APPEND gs_fieldcat TO gi_fieldcat.
      CLEAR gs_fieldcat.
      gs_fieldcat-fieldname = 'FLSA'.
      gs_fieldcat-seltext_l = 'FLSA'.
      APPEND gs_fieldcat TO gi_fieldcat.
      CLEAR gs_fieldcat.
      gs_fieldcat-fieldname = 'EE01'.
      gs_fieldcat-seltext_l = 'EE01'.
      APPEND gs_fieldcat TO gi_fieldcat.
      CLEAR gs_fieldcat.
      gs_fieldcat-fieldname = 'JOB_GRP'.
      gs_fieldcat-seltext_l = 'Job Group'.
      APPEND gs_fieldcat TO gi_fieldcat.
      CLEAR gs_fieldcat.
      gs_fieldcat-fieldname = 'AAP_CODE'.
      gs_fieldcat-seltext_l = 'AAP Code'.
      APPEND gs_fieldcat TO gi_fieldcat.
      CLEAR gs_fieldcat.
      gs_fieldcat-fieldname = 'AAP_CODE_DESC'.
      gs_fieldcat-seltext_l = 'AAP Code Description'.
      APPEND gs_fieldcat TO gi_fieldcat.
      CLEAR gs_fieldcat.
      gs_fieldcat-fieldname = 'DOB'.
      gs_fieldcat-seltext_l = 'Date of Birth'.
      APPEND gs_fieldcat TO gi_fieldcat.
      CLEAR gs_fieldcat.
      gs_fieldcat-fieldname = 'PSA'.
      gs_fieldcat-seltext_l = 'Personal Sub Area'.
      APPEND gs_fieldcat TO gi_fieldcat.
      CLEAR gs_fieldcat.
      gs_fieldcat-fieldname = 'PSA_DESC'.
      gs_fieldcat-seltext_l = 'Personal Sub Area Description'.
      APPEND gs_fieldcat TO gi_fieldcat.
      CLEAR gs_fieldcat.
      gs_fieldcat-fieldname = 'UNIONL'.
      gs_fieldcat-seltext_l = 'Union Local'.
      APPEND gs_fieldcat TO gi_fieldcat.
      CLEAR gs_fieldcat.
      gs_fieldcat-fieldname = 'UNIONC'.
      gs_fieldcat-seltext_l = 'Union Classfication'.
      APPEND gs_fieldcat TO gi_fieldcat.
      CLEAR gs_fieldcat.
    ENDFORM.                    " BUILD_ROSTER_FIELDCATALOG
    *&      Form  COMMENT_ROSTER_BUILD
          text
    FORM comment_roster_build  CHANGING top_of_page TYPE
                        slis_t_listheader.
      DATA: ls_line           TYPE slis_listheader,
            l_startdate(10)   TYPE c,
            l_enddate(10)     TYPE c,
            l_final_start(22) TYPE c,
            l_final_end(22)   TYPE c.
      CONCATENATE pn-begda4(2)'/'pn-begda6(2)'/'pn-begda+0(4)
    INTO l_startdate.
      CONCATENATE pn-endda4(2)'/'pn-endda6(2)'/'pn-endda+0(4)
      INTO l_enddate.
      CONCATENATE 'Start Date:' l_startdate INTO l_final_start.
      CONCATENATE 'End Date :' l_enddate INTO l_final_end.
      CLEAR ls_line.
      ls_line-typ  = 'H'.
      ls_line-info = 'AAP-EEOC Roster Report Data '. "Max len = 60
      APPEND ls_line TO i_top_of_page.
      CLEAR ls_line.
      ls_line-typ  = 'S'.
      ls_line-info = l_final_start.
      APPEND ls_line TO i_top_of_page.
      CLEAR ls_line.
      ls_line-typ  = 'S'.
      ls_line-info = l_final_end.
      APPEND ls_line TO i_top_of_page.
      CLEAR ls_line.
    ENDFORM.                    " COMMENT_ROSTER_BUILD
    *&      Form  DISPLAY_ROSTER_ALV_REPORT
          text
    FORM display_roster_alv_report .
      CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
                EXPORTING
                i_callback_program                = g_repid
                is_layout                         = gs_layout
                it_fieldcat                       = gi_fieldcat
                i_save                            = g_save
                is_variant                        = gs_variant
                it_events                         = gt_events[]
                 TABLES
                   t_outtab                          = gi_roster
              EXCEPTIONS
                program_error                     = 1
                OTHERS                            = 2
      IF sy-subrc <> 0.
      ENDIF.
    ENDFORM.                    " DISPLAY_ROSTER_ALV_REPORT
    Regards
    sachin

    hi there,
    i want to fetch data from all the fields i ahve given here .It will be a join statement.
    the important thing is I need all the values of vbeln in leftside
    as output.

  • HT3775 I get the following message when trying to open an .avi downloaded from my video cam, need help, can not find the codec, thank you.The document "IMAG0026.AVI" could not be opened. A required codec isn't available.

    I get the following message when trying to open an .avi downloaded from my video cam, need help, can not find the codec, thank you. This is for Quicktime Player.
    "The document “IMAG0026.AVI” could not be opened. A required codec isn't available."

    Try Perian.
    http://perian.org/

  • Need help for my requirement...

    Need help for my requirement...
    Hello Experts,
    I have report where users can input the company, housebank, account ID and posting date.
    Now in one column of my report named 'Cash in Bank', I need to get all postings from cash
    accounts with GL code ending in '0'. Now, I know that I can get the amounts in BSIS/BSAS
    but how do I link it with the proper bank and account?
    For example:
                       Cash in Bank
    Bank A
      Account ID 1     1,000,000
      Account ID 2     25,000,000
    Hope you can help me guys. Thank you and take care!

    hi Viraylab,
    each house bank you can find in table T012, in T012K you'll find the bank accounts to the housebank, the G/L account will be in T012K-HKONT.
    hope this helps
    ec

  • My iphone 6 turned off while i was using face time and it returns with the screen saying Hello mean its reset automatically how is this possible ? Now it requires an id and password to activate which i do not remember need help ?

    My iphone 6 turned off while i was using face time and it returns with the screen saying Hello mean its reset automatically how is this possible ? Now it requires an id and password to activate which i do not remember need help ? but i do remember the id and password which i was using on itunes and Apple store. please i almoost buy it in 890$ so it will be a big lost please help me.

    shahzadfromlahore wrote:
    Now it requires an id and password to activate which i do not remember need help ? but i do remember the id and password which i was using on itunes and Apple store. please i almoost buy it in 890$ so it will be a big lost please help me
    Who set up the phone? Who's Apple ID was used to activate it?

  • Need help on SQL Statement for UDF

    Hi,
    as I am not so familiar with SQL statements on currently selected values, I urgently need help.
    The scenario looks as follows:
    I have defined two UDFs named Subgroup1 and Subgroup2 which represent the subgroups dependent on my article groups. So for example: When the user selects article group "pianos", he only sees the specific subgroups like "new pianos" and "used pianos" in field "Subgroup1". After he has selected one of these specific values, he sees only the specific sub-subgroups in field "Subgroup2", like "used grand pianos".
    I have defined UDTs for both UDFs. The UDT for field "Subgroup1" has a UDF called "ArticleGroup" which represents the relation to the article group codes. The UDT for field "Subgroup2" has a UDF called "Subgroup1" which represents the relation to the subgroups one level higher.
    The SQL statement for the formatted search in field "Subgroup1" looks as follows:
    SELECT T0.[Name] FROM [dbo].[@B_SUBGROUP1]  T0 WHERE T0.[U_ArticleGroup]  = (SELECT $[OITM.ItmsGrpCod])
    It works fine.
    However, I cannot find the right statement for the formatted search in field "Subgroup2".
    Unfortunately this does NOT WORK:
    SELECT T0.[Name] FROM [dbo].[@B_SUBGROUP2]  T0 WHERE T0.[U_Subgroup1]  = (SELECT $[OITM.U_Subgroup1])
    I tried a lot of others that didn't work either.
    Then I tried the following one:
    SELECT T0.[Name] FROM [dbo].[@B_SUBGROUP2]  T0 WHERE T0.[U_Subgroup1] = (SELECT T1.[Code] FROM [dbo].[@B_SUBGROUP1] T1 WHERE T1.[U_ArticleGroup] = (SELECT $[OITM.ItmsGrpCod]))
    Unfortunately that only works as long as there is only one specific subgroup1 for the selected article group.
    I would be sooooo happy if there is anyone who can tell me the correct statement for my second UDF!
    Thanks so much in advance!!!!
    Edited by: Corinna Hochheim on Jan 18, 2010 10:16 PM
    Please ignore the "http://" in the above statements - it is certainly not part of my SQL.
    Please also ignore the strikes.

    Hello Dear,
    Use the below queries to get the values:
    Item Sub Group on the basis of Item Group
    SELECT T0.[Name] FROM [dbo].[@SUBGROUP]  T0 WHERE T0.[U_GroupCod] =$[OITM.ItmsGrpCod]
    Item Sub Group 1 on the basis of item sub group
    SELECT T0.[Name] FROM [dbo].[@SUBGROUP1]  T0 WHERE T0.[U_SubGrpCod]=(SELECT T0.[Code] FROM [dbo].[@SUBGROUP]  T0 WHERE T0.[Name] =$[OITM.U_ItmsSubgrp])
    Sub group 2 on the basis of sub group 1
    SELECT T0.[Name] FROM [dbo].[@SUBGROUP2]  T0 WHERE T0.[U_SubGrpCod1]=(SELECT T0.[Code] FROM [dbo].[@SUBGROUP1]  T0 WHERE T0.[Name] =$[OITM.U_ItmsSubgrp1])
    this will help you.
    regards,
    Neetu

  • HT1222 hey  i need help with my ipod, i try to download facebook app and it wouldn't let me because it say ios 4.1 require and i dont have ios how do i get it ?

    hey  i need help with my ipod, i try to download facebook app and it wouldn't let me because it say ios 4.1 require and i dont have ios how do i get it ?  please i need help ASAP

    What generation of iPod touch do you have? If you don't know, see:
    http://support.apple.com/kb/HT1353
    If you have an first-generation iPod touch, it can only go to iOS 3.1.3 and hence will not run the Facebook app. If you have a second-generation iPod touch, see: 
    http://support.apple.com/kb/HT4623
    Regards.

Maybe you are looking for

  • Configuration issues in Tomcat Server

    Hi, If someone has come across these issues with Tomcat server and have overcome, plese let me know. 1. After updating JSP/jar files in Tomcat server, do we need not stop and restart the server?. if i don't, it hangs. if i restart, i am able to acces

  • Cost of standalone OC4J

    Hi, I would like to set up Apache FOP for basic pdf generation in Apex reports. Does anyone know how much it cost for standalone OC4J - per CPU? Also, has anyone tried to use OC4J/FOP for basic PDF in Apex reports? Is the result stable? Finally, is t

  • MinionPro v. 2004 and Serbian glyphs for Wikipedia

    At the Serbian Wikipedia we are thinking about an OpenType solution to correctly display Serbian glyphs instead of the standard/Russian ones. We are scanning the Web for fonts containing Serbian glyphs and I personally think MinionPro should be our c

  • Retieving lost "Recently Added" folder

    Hello I recently mistakingly deleted the "Recently Added" folder. Is there any way to retrieve this folder?

  • 'Undo Command' in Yosimite Mail

    Why is there no 'Undo' command under 'Edit' to 'Undo' accidental mail deletions in Mac Mail?