Sap abap- perform using....changing....

1. can u explain me about ' perform....using...changing....'
subroutine and how to work with it.
2. how to declare constants (global declarations).

Hi,
You can declare global constants as below :
constants : gc_bukrs like bsis-bukrs value '1000'.
Find below docu for perform.
PERFORM form(prog).
Extras:
1. ... TABLES   itab1 itab2 ...
2. ... USING    u1 u2 u3 ...
3. ... CHANGING c1 c2 c3 ...
4. ... IF FOUND
This variant is not allowed in an ABAP Objects context.See PERFORM form(prog) not allowed.
Effect
Calls the subroutine form defined in program prog ("external PERFORM").
Notes
You pass parameters to the external subroutine as described in variant 1.
However, you can also do it using a shared data area (DATA BEGIN OF COMMON PART).
Please consult Data Area and Modularization Unit Organization documentation as well.
You can use nested calls, including several different subroutines in different programs.
When you call a subroutine that belongs to a program prog, prog is loaded into the PXA buffer (if it has not been loaded already). To minimize the possibility of memory problems, try not to use too many external subroutines from a large number of different programs.
Addition 1
... TABLES itab1 itab2 ...
Effect
See variant 1, addition 1.
Addition 2
... USING u1 u2 u3 ...
Effect
See variant 1, addition 2.
Addition 3
... CHANGING c1 c2 c3 ...
Effect
See variant 1, addition 3.
Addition 4
... IF FOUND
Effect
The specified subroutine is only called if the subroutine and its main program exist. Otherwise, the statement is ignored.
Notes
If the program exists but not the subroutine, the program itself is still loaded.
If the specified program contains errors, a runtime error occurs.
You can only find out if the subroutine exists by programming a check yourself (for example, by setting a flag that you pass to it).
Thanks,
SRiram Ponna.

Similar Messages

  • In which case we require to write perform using/changing

    hi,
    in which case we require to write perform using/changing .
    and what is excatly we r doing  with perform using.changing.
    please somebody help me.
    thanks
    subhasis

    This is an awfully basic question.
    Simply press F1 on PERFORM.
    And responders take note:
    bapi
    Rob

  • SAP / ABAP Query - using logical database

    Hi ,
    We have a mandate to implement SAP Query using only Logical Databases (LDB ) .
    We understand that there are several issues using this approach .
    1 ) Paralled tables in MM need to be displayed on separate lines .
    2 ) Statistics based on fields from 2 different tables cannot be produced eg: EKPO ( PO Number )  and EKKN . (Cost Center )
    Please share your experiences .
    Thank you in advance .
    Kishore
    Kishore

    Adeel,
    I do appreciate your experience and respect you for knowledge on SAP Query. 
    Joining tables seem simple to IT experts but not so for end users.  SAP Query is an end-user tool and users seem to need a simple user-friend, drag-and-drop solution to extract information using SAP Query based on a pre-defined infoset.  Various SAP conferences have been advocating the use of SAP delivered Logical Databses to create infosets in order to harness the various advantages of LDBs. 
    In MM there are several LDBs (e.g. ELM, EBM etc) to create queries on EKPO and EKKN.  The problem arises when you use the same LDB to extract information from more than the above two tables e.g. EKPO, EKET, EKKN and EKBE.  SAP expects you to display fields on multiple lines and also does not allow producing statistics based on fields from two parallel tables say EKKN and EKBE.  Moreover, multi-line reports cannot be produced in the ALV/SLV format.  
    We are also looking for best practise solutions in providing SAP Query to MM or FI users based on SAP delivered Logical Databases.  
    Pascal

  • Perform some changes on standard SAP webdynpro for ABAP application

    Hi,
    We do need to perform some changes (new buttons, new tabs, adding new code etc) on a standard SAP product developed on Webdynpro for ABAP.
    Which is the best approach to do so? I have reading about enhancement framework and it seems to be right solution to do so. Am I correct?
    Any best practice to acomplish our target is very welcome.
    Looking forward to hearing from you.
    Kind regards,
      Imanol

    You are on right track thinking about enhancement framework.
    My approach is would be in the following order.
    Personalization/customization
    Enhancement
    Modification

  • What is LUW? How do we use it in SAP ABAP coding?

    Hi Friends,
    Kindly explain me what is LUW with examples and how do we use it in our ABAP coding with scenarios why and when we use it?
    Regards,
    Pradeep

    Hi,
    SAP LUW
    Die Verbuchungsverwaltung
    The Open SQL statements INSERT, UPDATE, MODIFY, and DELETE allow you to program database changes that extend over several dialog steps. Even if you have not explicitly programmed a database commit, the implicit database commit that occurs after a screen has been processed concludes the database LUW. The following diagram shows the individual database LUWs in a typical screen sequence:
    Under this procedure, you cannot roll back the database changes from previous dialog steps. It is therefore only suitable for programs in which there is no logical relationship between the individual dialog steps.
    However, the database changes in individual dialog steps normally depend on those in other dialog steps, and must therefore all be executed or rolled back together. These dependent database changes form logical units, and can be grouped into a single database LUW using the bundling techniques listed below.
    A logical unit consisting of dialog steps, whose changes are written to the database in a single database LUW is called an SAP LUW. Unlike a database LUW, an SAP LUW can span several dialog steps, and be executed using a series of different work processes. If an SAP LUW contains database changes, you should either write all of them or none at all to the database. To ensure that this happens, you must include a database commit when your transaction has ended successfully, and a database rollback in case the program detects an error. However, since database changes from a database LUW cannot be reversed in a subsequent database LUW, you must make all of the database changes for the SAP LUW in a single database LUW. To maintain data integrity, you must bundle all of you database changes in the final database LUW of the SAP LUW. The following diagram illustrates this principle:
    Database Logical Unit of Work (LUW)
    From the point of view of database programming, a database LUW is an inseparable sequence of database operations that ends with a database commit. The database LUW is either fully executed by the database system or not at all. Once a database LUW has been successfully executed, the database will be in a consistent state. If an error occurs within a database LUW, all of the database changes since the beginning of the database LUW are reversed. This leaves the database in the state it was in before the transaction started.
    The database changes that occur within a database LUW are not actually written to the database until after the database commit. Until this happens, you can use a database rollback to reverse the changes. In the R/3 System, database commits and rollbacks can be triggered either implicitly or using explicit commands.
    Implicit Database Commits in the R/3 System
    A work process can only execute a single database LUW. The consequence of this is that a work process must always end a database LUW when it finishes its work for a user or an external call. Work processes trigger an implicit database commit in the following situations:
    When a dialog step is completed
    Control changes from the work process back to the SAP GUI.
    When a function module is called in another work process (RFC).
    Control passes to the other work process.
    When the called function module (RFC) in the other work process ends.
    Control returns to the calling work process.
    When a WAIT statement interrupts the work process.
    Control passes to another work process.
    Error dialogs (information, warning, or error messages) in dialog steps.
    Control passes from the work process to the SAP GUI.
    Explicit Database Commits in the R/3 System
    There are two ways to trigger an explicit database commit in your application programs:
    Call the function module DB_COMMIT
    The sole task of this function module is to start a database commit.
    Use the ABAP statement COMMIT WORK
    This statement starts a database commit, but also performs other tasks (refer to the keyword documentation for COMMIT WORK).
    Implicit Database Rollbacks in the R/3 System
    The following cases lead to an implicit database rollback:
    Runtime error in an application program
    This occurs whenever an application program has to terminate because of an unforeseen situation (for example, trying to divide by zero).
    Termination message
    Termination messages are generated using the ABAP statement MESSAGE with the message type A or X. In certain cases (updates), they are also generated with message types I, W, and E. These messages end the current application program.
    Explicit Database Rollbacks in the R/3 System
    You can trigger a database rollback explicitly using the ABAP statement ROLLBACK WORK. This statement starts a database rollback, but also performs other tasks (refer to the keyword documentation for COMMIT WORK).
    From the above, we can draw up the following list of points at which database LUWs begin and end.
    A Database LUW Begins
    Each time a dialog step starts (when the dialog step is sent to the work process).
    Whenever the previous database LUW ends in a database commit.
    Whenever the previous database LUW ends in a database rollback.
    A Database LUW Ends
    Each time a database commit occurs. This writes all of the changes to the database.
    Each time a database rollback occurs. This reverses all of the changes made during the LUW.
    Database LUWs and Database Locks
    As well as the database changes made within it, a database LUW also consists of database locks. The database system uses locks to ensure that two or more users cannot change the same data simultaneously, since this could lead to inconsistent data being written to the database. A database lock can only be active for the duration of a database LUW. They are automatically released when the database LUW ends. In order to program SAP LUWs, we need a lock mechanism within the R/3 System that allows us to create locks with a longer lifetime (refer to The R/3 Locking Concept).
    The bundling technique for database changes within an SAP LUW ensures that you can still reverse them. It also means that you can distribute a transaction across more than one work process, and even across more than one R/3 System. The possibilities for bundling database changes within an SAP LUW are listed below:
    The simplest form of bundling would be to process a whole application within a single dialog step. Here, the system checks the user’s input and updates the database without a database commit occurring within the dialog step itself. Of course, this is not suitable for complex business processes. Instead, the R/3 Basis system contains the following bundling techniques.
    Bundling using Function Modules for Updates
    If you call a function module using the CALL FUNCTION... IN UPDATE TASK statement, the function module is flagged for execution using a special update work process. This means that you can write the Open SQL statements for the database changes in the function module instead of in your program, and call the function module at the point in the program where you would otherwise have included the statements. When you call a function module using the IN UPDATE TASK addition, it and its interface parameters are stored as a log entry in a special database table called VBLOG.
    The function module is executed using an update work process when the program reaches the COMMIT WORK statement. After the COMMIT WORK statement, the dialog work process is free to receive further user input. The dialog part of the transaction finishes with the COMMIT WORK statement. The update part of the SAP LUW then begins, and this is the responsibility of the update work process. The SAP LUW is complete once the update process has committed or rolled back all of the database changes.
    For further information about how to create function modules for use in update, refer to Creating Function Modules for Database Updates
    During the update, errors only occur in exceptional cases, since the system checks for all logical errors, such as incorrect entries, in the dialog phase of the SAP LUW. If a logical error occurs, the program can terminate the update using the ROLLBACK WORK statement. Then, the function modules are not called, and the log entry is deleted from table VBLOG. Errors during the update itself are usually technical, for example, memory shortage. If a technical error occurs, the update work process triggers a database rollback, and places the log entry back into VBLOG. It then sends a mail to the user whose dialog originally generated the VBLOG entry with details of the termination. These errors must be corrected by the system administrator. After this, the returned VBLOG entries can be processed again.
    For further information about update administration, see Update Administration
    This technique of bundling database changes in the last database LUW of the SAP LUW allows you to update the database asynchronously, reducing the response times in the dialog work process. You can, for example, decouple the update entirely from the dialog work process and use a central update work process on a remote database server.
    Bundling Using Subroutines
    The statement PERFORM ON COMMIT calls a subroutine in the dialog work process. However, it is not executed until the system reaches the next COMMIT WORK statement. Here, as well, the ABAP statement COMMIT WORK defines the end of the SAP LUW, since all statements in a subroutine called with PERFORM ON COMMIT that make database changes are executed in the database LUW of the corresponding dialog step.
    The advantage of this bundling technique against CALL FUNCTION... IN UPDATE TASK is better performance, since the update data does not have to be written into an extra table. The disadvantage, however, is that you cannot pass parameters in a PERFORM... ON COMMIT statement. Data is passed using global variables and ABAP memory. There is a considerable danger of data inconsistency when you use this method to pass data.
    Bundling Using Function Modules in Other R/3 Systems
    Function modules that you call using CALL FUNCTION... IN BACKGROUND TASK DESTINATION... are registered for background execution in another R/3 System when the program reaches the next COMMIT WORK statement (using Remote Function Call). After the COMMIT WORK, the dialog process does not wait for these function modules to be executed (asynchronous update). All of the function modules that you register in this way are executed together in a single database LUW. These updates are useful, for example, when you need to maintain identical data in more than one database.
    For further details, refer to the keyword documentation.
    For more details of RFC processing, refer to the Remote Communications section of the Basis Services documentation.
    Pls. reward if useful....

  • Retrieving hierarchy fields from MDM to SAP R/3 using MDM ABAP API's

    Hi all,
    I have developed a code to retrieve fields from MDM to SAP R/3 using MDM ABAP API's, i could retrieve   all of the fields excluding the Lookup[Hierarchy] fields like-  FACILITY CODE  etc...
    please update me if anyone has any experience on this.
    Thanks and regards,
    Aastha Mehrotra

    Hi ,
    Any one worked in the MDM API to retrieve Hierarchy fields ???
    Regards,
    Arun.

  • How to save the data to sap abap using Adobe Flex

    Hi Everybody......
    I am new to Adobe flex with sap abap.
          How to save the data in sap abap using Adobe Flex coding is Action Script and using RFC web service.
    Please give me any suggisions on that.
    Thank you
    Venkatesh V

    Hi Venkatesh,
    Try with folowing coding...
    <?xml version="1.0" encoding="utf-8"?>
    <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute"
         initialize="initApp()">
         <mx:Label x="10" y="23" text="Airline" width="90" id="lblAirline"/>
         <mx:TextInput x="108" y="21" id="txtAirline"/>
         <mx:Button x="10" y="49" label="Get Data" id="btnGetData" enabled="false" click="getData()"/>
         <mx:DataGrid x="10" y="97" id="dgFlightData" dataProvider="">
         </mx:DataGrid>
           <mx:Script>
              <![CDATA[
                   import mx.collections.ArrayCollection;
                   import mx.rpc.AbstractOperation;
                   import mx.rpc.events.FaultEvent;
                   import mx.rpc.soap.LoadEvent;
                   import mx.rpc.events.ResultEvent;
                   import mx.rpc.soap.WebService;
                   [Bindable] public var flightData:ArrayCollection;
        private var flightWS:WebService;
         private function initApp():void{
              flightWS = new WebService();
              flightWS.wsdl = "http://uscib20.wdf.sap.corp:50021/sap/bc/soap/wsdl11?services=ZGTEST&sap-client=000";
            flightWS.addEventListener(FaultEvent.FAULT,onWSError);
              flightWS.addEventListener(LoadEvent.LOAD,onWSDLLoaded);
             flightWS.addEventListener(ResultEvent.RESULT,onFlightWSGotResult);
              flightWS.loadWSDL();
    private function getData():void{
              var operation:AbstractOperation = flightWS.getOperation("ZGTEST");
              var input:Object = new Object();
              input.Airline = txtAirline.text.toUpperCase();
              operation.arguments = input;
              operation.send();
         private function onWSError  (event:FaultEvent):void{
         private function onWSDLLoaded(event:LoadEvent):void{
              btnGetData.enabled = true;
         private function onFlightWSGotResult(event:ResultEvent):void{
              flightData = event.result.SFLIGHT;
              ]]>
         </mx:Script>
    </mx:Application>
    Regards,
    Vinoth

  • Why use filters in BADI (SAP-ABAP) when same can be achieved using paramete

    Hello Experts!
    I am a newbie in SAP and this might be a very basic question so, i am sorry for that!
    I was wondering, what is the use of "filters(flt_val)" in BADI (SAP-ABAP) ?
    I guess we can achieve the same using parameters ?
    I know that we can pass structure as flt_val, thus reducing the no. of parameters sent. I also read about sending country and things like that to our BADIs to behave differently based on that.
    (i.e. say tax rates differ from country to country so may be we can set tax rate of GB to 16 or something..)
    but still i am confused about the significance of Filters.
    I will be grateful, if anyone could answer this one...
    Thanks in advance!!!
    Rgds,
    Mayur

    Hello Mr. Venu,
    Thanks for your answer. It helped somewhat, but it's not solved the doubt to 100%... 
    Please let me ask you for some more information on this one and please correct if i am wrong: -
    Suppose, there are 10 company codes that we need to handle, so as you said, we have 10 implementations of the BADI.
    We decide to use company code as filter. We have 10 different implementations of BADI, which are deveoped
    by 10 different teams(or 10 members of the same team etc..). 
    This will have 10 different Active implementations of our BADI. and based on the filter, respective impls are called.
    Is this right or wrong?
    If right, then why not use parameters instead? They can do the same!
    If wrong, i am sorry, but could you elaborate about the mistake?
    Thanks again,
    Mayur.

  • Is it possible to use Adobe Interactive Forms in SAP (ABAP) Trial Version?

    Dear All,
    i need some help concerning the usage of Adobe Interactive Forms in SAP (ABAP) Trial Version.
    I installed SAP Netweaver 7.01 (ABAP Trial Version) and i would like to use the Adobe Interactive Form editor (transaction SFP). Is this trial version prepared for this? Is it possible to edit and test Interactive Forms in the ABAP Trial Version too?
    Somebody told me that he installed Adobe Lifecycle Designer 7.1 but the layout manager part of the editor shortdumped when he wanted to go back to other  parts of the editor or he wanted to save what he did...
    Is it enough to install Adobe Lifecycle Designer 7.1? Is there something else to install or configure?
    Thank you for your help in advance.
    All the best, P. Phil.

    Yes, you need the lifecycle designer installed.  That should be enough to work with the SFP transaction.  But to actually use the form, I think you do need the ADS(Adobe Document Services) which runs on the java stack.
    Regards,
    Rich Heilman

  • Wireless using SAP ABAP Report programming

    Hi All Boss,
    I am doing my project Wireless program using SAP ABAP
    I need that project.
    so please send me wireless program for sap abap and screen shot.
    reply me urgent....
    Please donot forgot to all..

    This is not a program writing service.

  • Configure SAP ABAP as service provider using SAML holder-of-key

    Hi
    We are trying to configure "SAML Holder of key" between Microsoft (as
    a service consumer) and SAP ABAP (as service provider).
    The service provider/SAP ABAP is release 7.11 and we need to configure this component.
    We have found SAP note 1254821 and are trying to follow the instructions for
    the "SAML Holder of key" scenario:
    However there is one step that we do not understand: step 5 "The private key to decrypt the
    encrypted....at the provider system must be a WS Security Identity in transaction TRUST"
    Anyone who can elaborate of the meaning of this step and describe a procedure for what
    exactly to do?
    BR
    Tom Bo

    Hi,
    a service provider needs to check two things when processing message. The first thing is that SAML assertion was issued by STS by checking signature of SAML assertion. The SAML assertion is signed by STS (step 4 in OSS note). The second thing is to verify that sender knows key from SubjectConfirmation element (that's why it is called holder of key). One way is to encrypt and sign SOAP message using symmetric key. There is also option to use asymmetric key. The key is encrypted by STS using the public key of service provider. Therefore the private key must be imported in service provider system (step 5 from OSS note). More info can be found [here|http://help.sap.com/saphelp_nw73/helpdata/en/e5/9f9913fc9c418db98c8693b2bbdb7c/frameset.htm].
    Cheers

  • Improve data load performance using ABAP code

    Hi all,
             I want to improve my load performance using ABAP code, how to do this?. If i writing ABAP code in SE38 how i can call
    in BW side? if give sample code to improve load performance it will be usefull. please guide me.

    There are several points that can improve performance of your ABAP code:
    1. Avoid using SELECT...ENDSELECT... construct and use SELECT ... INTO TABLE.
    2. Use WHERE clause in your SELECT statement to restrict the volume of data retrieved.
    3. Use FOR ALL ENTRIES in your SELECT statement to retrieve the matching records at one shot.
    4.Avoid using nested SELECT and SELECT statements within LOOPs.
    5. Avoid using INTO CORRESPONDING FIELDS OF. Instead use INTO TABLE.
    6. Avoid using SELECT * and select only the required fields from the table.
    7. Avoid Executing a SELECT multiple times in the program.
    8. Avoid nested loops when working with large internal tables.
    9.Whenever using READ TABLE use BINARY SEARCH addition to speed up the search.
    10. Use FIELD-SYMBOLS instead of a work area when there are more than 200 entries in an internal table where some fields are being manipulated.
    11. Use MOVE with individual variable/field moves instead of MOVE-CORRESPONDING.
    12. Use CASE instead of IF/ENDIF whenever possible.
    13. Runtime transaction code se30 can be used to measure the application performance.
    14. Transaction code st05 can be used to analyse the SQL trace and measure the performance of the select statements of the program.
    15. Start routines can be used when transformation is needed in the data package level. Field/individual routines can be used for a simple formula or calculation. End routines are used when you wish to populate data not present in the source but present in the target.
    16. Always use a WHERE clause for DELETE statement. To delete records for multiple values, use SELECT-OPTIONS.
    17. Always use 'IS INITIAL' instead of equal to '' because null for a character is '' but '0' for an integer.
    Hope it helps.

  • Has any SAP project integrated an EFTPOS device with ABAP Gui using an ActiveX controller?

    Dear Friends, I would like to know, Has any SAP Project integrated an EFTPOS Devise with ABAP Gui using ActiveX Controller? If used could you please share the Technicalities involved in them as we have a suggestion to have the same used in our Project.

    Dear Friends, I would like to know, Has any SAP Project integrated an EFTPOS Devise with ABAP Gui using ActiveX Controller? If used could you please share the Technicalities involved in them as we have a suggestion to have the same used in our Project.

  • Want to have own selection screen  in HR-ABAP report using LDB

    Hi experts,
            I am working on HR-ABAP report using LDB pnp and infotypes..But, here we get the built in selection criterion..but I want my own selection screen to be displayed..whats the solution for this??? Is it possible to create my own selection screen instead of default one..and how???
    Please help me..its very urgent..

    Hi,
    chk this out:
    Create Report Categories                                                                               
    In this step, you define the report categories and determine the layout
       of the standard selection screen for these report categories. You can 
       create report categories for programs or queries that are based on the
       PNP or PNPCE logical databases.                                                                               
    The definition of report categories is divided into two sections:                                                                               
    o   In the Change Report Category view, you define general attributes 
           such as sort order, input fields for date, and so on.                                                                               
    o   In the Change Selection Criteria view, you define which selection 
           fields of the logical database should be avaliable on the selection
           screen.                                                                               
    Example                                                                               
    You want to set up your system so that your employees can only start  
       evaluation reports for Payroll if they use a payroll area. Within a   
       payroll area, you should be able to select according to personnel     
       number. Additional selection criteria should not be possible and you  
       should not be allowed to enter a sort sequence.                       
    Standard settings                                                                               
    The standard system already contains report categories. You can find the 
    attributes of the report categories in the table.                                                                               
    Note the following five report categories in particular:                                                                               
    o   Report category ' ' is the SAP default report category for     
        programs that are based on the PNP logical database.                                                                               
    o   Report category PNPCE is the SAP default category for programs that  
        are based on the PNPCE logical database.                                                                               
    o   Report category '00000000' is the customer-specific default category 
        for programs that are based on the PNP logical database.                                                                               
    o   Report category '0PNPCE' is the customer-specific default category   
        for programs that are based on the PNPCE logical database.                                                                               
    o   Report category __X2001 is the default category for Queries  that    
        are based on an InfoSet of the PNP LDB.                                                                               
    o   Report category QUEPNPCE is the default category for queries that    
        are based on an InfoSet of the PNPCE LDB.                                                                               
    The default report categories are used when a report is called if    
        the report has not been assigned a report category.                  
    Parameters and Options for Report Categories of the LDB PNP and PNPCE  
    Parameters and Options in Screen Area General Data                     
       If you activate this parameter, you can only enter data on the data
       selection period if you use reports that have been assigned. The   
       same date entries are then used for the person selection as for the
       date selection.                                                                               
    o   Matchcode allowed                                                  
       If you activate this parameter, you have use of a Matchcode        
       pushbutton (search help) if you use reports that have been assigned.
       This pushbutton enables you to perform the person selection.                                                                               
    o   Sort allowed                                                       
       If you activate this parameter, you have use of a Sort pushbutton if
       you use report that have been assigned. This pushbutton enables you
       to define a sort order before you execute the report.                                                                               
    o   Organizational structure allowed                                   
       If you activate this parameter, you have use of an Org.Structure   
       pushbutton if you use reports that have been assigned. This        
       pushbutton enables you to perform the person selection.            
       Note:                                                              
       For more information about these options, see the online           
       documentation under this path:                                     
       SAP Library -> Human Resources -> Reporting in Human Resources     
       Management -> Standard HR Reports -> Report Selection Screen in    
       Human Resources Management.                                                                               
    Parameters and Options in Screen Areas Data Selection Period/Person    
    Selection Period/Payroll Area/Period/Year                                                                               
    o   Options for data selection period and person selection period (key 
        date and so on)                                                    
        Here you define which options for date and person selection are    
        available for reports that have been assigned.                                                                               
    o   Options for payroll area/period/year                               
        Here you define which options for selection using payroll          
        area/period/year are available for reports that have been assigned.                                                                               
    Parameters and Options in Screen Area Selection View                                                                               
    o   Type/Name                                                          
        This parameter enables you to use selection views to define report 
        categories. You use the selection view selected here to determine  
        which fields are available in the Dynamic Selectionsy.                                                                               
    Note:                                                              
        You create selection views for the PNP and PNPCE logical databases 
        in the Object Navigator (SE80):                                    
        1. Start the Object Navigator (SE80)                               
        2. Choose Workbench -> Edit Object.                                
        3. Choose the More... tab page and the Selection view on this tab  
        page.                                                              
        4. Choose Create.                                                  
        5. In the Create Selection View dialog box, choose the For any     
        tables option.                                                     
        6. In the Name of view field, enter a name for your selection view.
        7. In the Tables dialog box, enter the name of the table from which
        you want to use fields.                                            
        Note:                                                              
        When you enter the table name, observe the naming convention in    
        Personnel Administration:                                          
        Infotype number: nnnn -> table name: PAnnnn                        
        8. Choose Continue.                                                
        9. In the Functional groups area, define functional groups by      
        assigning a name and a number.                                     
        10. Assign fields from the selected tables to the functional groups
        by entering the number of the desired functional group in front of 
        each field.                                                        
        11. Save your entries.                                                                               
    For more information about adjusting the dynamic selections using 
    your own selection views, see the online documentation under the  
    following menu path:                                              
    SAP Library -> Human Resources -> Reporting in Human Resources    
    Management -> HR Standard Reports -> Report Selection Screen in   
    Human Resources Management -> Enhancing the Selection Screen -    
    Dynamic Selections.                                                                               
    If you do not want to offer dynamic selections, make the following
    settings:                                                                               
    -   LDB PNP: In the Selection view field, enter PNP_NO_FREE_SEL.  
    -   LDB PNPCE: Leave the Selection view field empty.                                                                               
    Parameters and Options in Screen Area Data Selection Period/Person   
    Selection Period/Payroll Area/Period/Year                                                                               
    o   Available input parameters, date or period entry (today, key date,
       all, and so on), and standard value.                             
       Using the Standard value option, you define which of the selected
       options is shown.                                                                               
    Parameters and Options in Screen Area CE Selection Fields                                                                               
    o   CE selection fields (external person ID, grouping reason, grouping
       value)                                                           
       Using the options in this area, you define whether the external  
       person Id, grouping reason, or grouping value are available on the
       selection screen.                                                
       Note:                                                            
       These parameters are only relevant for you if you implement      
       Concurrent Employment (see also note 517071).                                                                               
    Parameters and Options in Screen Area Selection view                                                                               
    o   Dynamic selections as dialog box                                  
        If this switch is set, you can call the dynamic selections as a   
        dialog box.                                                                               
    o   Dynamic selections active                                         
        If this switch is set, the dynamic selections of the logical      
        database are active at the start of the report.                                                                               
    Note that the following combinations are possible for the last two
        options mentioned:                                                                               
    Dyn.Sel. as dialog box/Dyn.Sel. active: inactive/inactive         
        Dyn.Sel. as dialog box/Dyn.Sel. active: inactive/active           
        Dyn.Sel. as dialog box/Dyn.Sel. active: active/inactive                                                                               
    Activities                                                                               
    1.  Choose Edit -> New entries.                                                                               
    2.  Enter an abbreviation and a long text for the report category.         
        The customer name range for report categories is 0-9.                                                                               
    3.  Select the For the PNPCE logical database checkbox, if you want to     
        create a report category for a program or for queries of the PNPCE     
        logical database.                                                                               
    4.  In the General Data screen area, choose the desired options.           
        If you want to use selection IDs, you must have first created and      
        grouped selection Ids. The IMG path to do this is given in the         
        parameter description section.                                                                               
    5.  In the Data selection period/person selection period or Selection      
        period screen area, choose the desired options.                                                                               
    6.  In the Selection view screen area, choose the desired options.                                                                               
    7.  In the CE selection fields screen area, choose the desired (only       
        possible for report categories of the LDB PNPCE).                                                                               
    8.  Save your entries.                                                                               
    9.  Choose the subactivity Permitted selection criteria.                                                                               
    10. Choose Edit -> New entries.                                                                               
    11. In the Select option field, use the input help to select each field    
        that should be available on the selection screen.                                                                               
    12. Select the checkbox in the 1.page column, if you want this selection   
        field to be available directly when you call the selection screen.                                                                               
    Further notes                                                                               
    13. If you want to copy entries, you still have to enter the selection     
        parameters again in the subsequent screen.                                                                               
    o   If you create the report category '000000000', a selection screen is   
        generated according to report category '00000000'for all reports for   
        which a report category has not explicitly been assigned.                                                                               
    Assign Report Categories                                                                               
    In this step, you assign a report category to your reports.                                                                               
    Example                                                                               
    You have created your own report, for example ZPCTEST1, and would like
        it to have the selection screen that corresponds to that of the       
        evaluation report for Payroll, which is assigned to report category   
        '__M00001'.                                                           
        Assign report category '__M00001' to the report.                                                                               
    Requirements                                                                               
    You must have defined the Report Categories.                                                                               
    Standard settings                                                                               
    SAP Standard Reports:                                                                               
    In the standard system, reports are assigned a report category. If you
        want to override these assignments, perform the activities described  
        here. If you want to assign report categories to standard reports using
        SE38, this represents a modification.                                                                               
    Customer-Specific Reports:                                                                               
    For reports you have developed yourself, you can either assign report 
        categories by performing the activities described here or directly in SE38.
    Recommendation                                                                               
    Only assign a report category if you have created your own reports or if  
    the selection screens in the standard system do not meet your             
    requirements.                                                                               
    Activities                                                                               
    1.  Choose Edit -> New entries.                                                                               
    2.  Perform the required assignment using the Program name and Report     
       category fields.                                                                               
    3.  Save your entries.                   
    reward if helpful
    regards,
    madhumitha

  • Employee details in SAP ABAP Hr

    hi folks,
    do any one hav done Report -Employee details in SAP ABAP Hr.

    check this code
    *                        INFOTYPES                             *
    INFOTYPES : 0000,     " Actions
                0001,     " Organizaiton Assignment
                0002,     " Personnel Data
                0008,     " Basic Pay
                0022,     " Education
                0025,     " Appraisals
                0077,     " Additional Personal Data
                2001,     " Absences
                9002,     " Additional Personal Data
                9545,     " Discipline data
                0000 NAME INT_PROM,
                0000 NAME INT_CHGPY,
                0302.
    *                        INCLUDES                             *
    *                        TABLES                                *
    TABLES    : PERNR.
    *                        CONSTANTS                             *
    CONSTANTS : C_ONE      TYPE CHAR1  VALUE '1',
                C_EARLY    TYPE CHAR1  VALUE 'E',
                C_NEW      TYPE CHAR1  VALUE 'N',
                C_EARLYDT  TYPE SY-DATUM VALUE '20000501',
                C_JAN      TYPE CHAR2  VALUE '01',
                C_FEB      TYPE CHAR2  VALUE '02',
                C_MAR      TYPE CHAR2  VALUE '03',
                C_AWL      TYPE CHAR3  VALUE 'AWL',
                C_LWP      TYPE CHAR3  VALUE 'LWP'.
    *                        TYPES                                 *
    TYPE-POOLS: SLIS.                      " ALV Type Pool
    TYPES  :
             BEGIN OF T_DISCACT,
               PERNR  TYPE CHAR8,
               COMM1  TYPE CHAR1,
               DESCRI TYPE CHAR40,
               COMM2  TYPE CHAR1,
               MDATE  TYPE CHAR10,
             END OF T_DISCACT,
             BEGIN OF T_INCRE,
               PERNR  TYPE CHAR8,
               INCR1 TYPE CHAR10,
               INCR2 TYPE CHAR10,
               INCR3 TYPE CHAR10,
             END OF T_INCRE,
             BEGIN OF T_OUTPUT,
               PERNR TYPE CHAR8,
               NAME  TYPE CHAR40,
               DESIG TYPE CHAR40,
               PESUB TYPE CHAR15,
               ORGUN TYPE CHAR40,
               COSTC TYPE CHAR20,
               ETHIC TYPE CHAR2,
               CPCODE TYPE ZCCODE,
               GRADE TYPE CHAR8,
               ***   TYPE CHAR6,
               DOB   TYPE CHAR10,
               DOJ   TYPE CHAR10,
               QUAL1 TYPE CHAR30,
               QUAL2 TYPE CHAR30,
               QUAL3 TYPE CHAR30,
               QUAL4 TYPE CHAR30,
               QUAL5 TYPE CHAR30,
               LPROM TYPE CHAR10,
               PROMD TYPE CHAR10,
               PROMT TYPE CHAR1,
               NOYRS TYPE CHAR2,
               AWL   TYPE CHAR9,
               LWP   TYPE CHAR9,
               APPR1 TYPE CHAR9,
               APPR2 TYPE CHAR9,
               APPR3 TYPE CHAR9,
               APPR4 TYPE CHAR9,
               APPR5 TYPE CHAR9,
               DISCI TYPE CHAR57,
             END   OF T_OUTPUT.
    DATA : W_OUTPUT TYPE T_OUTPUT.
    TYPES  :  BEGIN OF T_FILE.
            INCLUDE STRUCTURE W_OUTPUT.
    TYPES  :   INCR1 TYPE CHAR10,
               INCR2 TYPE CHAR10,
               INCR3 TYPE CHAR10,
              END OF T_FILE.
    DATA  : W_FILE TYPE T_FILE.
    TYPES : BEGIN  OF T_EXCEL.
            INCLUDE STRUCTURE W_FILE.
    TYPES :  END OF T_EXCEL.
    *                        INTERNAL TABLES                       *
    DATA   : INT_NONEXE  TYPE STANDARD TABLE OF ZHRT007   WITH HEADER LINE,
             INT_OUTPUT  TYPE STANDARD TABLE OF T_OUTPUT  WITH HEADER LINE,
             INT_DISCACT TYPE STANDARD TABLE OF T_DISCACT WITH HEADER LINE,
             INT_QUALFI  TYPE STANDARD TABLE OF T518B     WITH HEADER LINE,
             INT_INCRE   TYPE STANDARD TABLE OF T_INCRE   WITH HEADER LINE,
             INT_DISCIP  TYPE STANDARD TABLE OF ZHRT004   WITH HEADER LINE,
             INT_PESUB   TYPE STANDARD TABLE OF T001P     WITH HEADER LINE,
             INT_COSTC   TYPE STANDARD TABLE OF CSKT      WITH HEADER LINE,
             INT_EXCEL   TYPE STANDARD TABLE OF T_EXCEL   WITH HEADER LINE,
             EVENT       TYPE SLIS_T_EVENT WITH HEADER LINE,
             LISTHEAD    TYPE SLIS_T_LISTHEADER WITH HEADER LINE.
    *                        VARIABLES                             *
    DATA : W_HIREDATE TYPE BEGDA,
           W_WAGEGRP  TYPE TRFGR,
           W_CPCODE   TYPE ZCCODE,
           W_CAREERCD TYPE CHAR6,
           W_PROMTYPE TYPE ZTSTYPE,
           W_NOOFYRS  TYPE ZNOYRS,
           W_LASTPROM TYPE CHAR10,
           W_PROMDATE TYPE BEGDA,
           W_YEAR     TYPE CHAR4,
           W_APYEAR   TYPE CHAR4,
           W_APPRST   TYPE SY-DATUM,
           W_DISDATE  TYPE ENDDA,
           W_APPREND  TYPE ENDDA,
           W_ABSST    TYPE ENDDA,
           W_ABSEND   TYPE ENDDA,
           W_ABSYR    TYPE CHAR4,
           W_MONTH(2) TYPE N,
           W_AWL      TYPE CHAR9,
           W_LWP      TYPE CHAR9,
           W_DISCI    TYPE T_OUTPUT-DISCI,
           W_ONE(2)   TYPE N VALUE '01',
           W_CURDATE TYPE CHAR10,
           W_HEADING TYPE LVC_TITLE.
    *                        SELECTION SCREEN                      *
    SELECTION-SCREEN BEGIN OF BLOCK FRM1 WITH FRAME TITLE TEXT-001.
    SELECT-OPTIONS:
      S_WAGRP    FOR  P0008-TRFGR OBLIGATORY,
      S_FROM     FOR  P0000-BEGDA OBLIGATORY NO-EXTENSION.
    SELECTION-SCREEN END OF BLOCK FRM1.
    * Selection screen serach help for wage groups.
    INCLUDE : ZHRI0003.
    *                        AT SELECTION SCREEN                   *
    *                        START OF SELECTION                    *
    START-OF-SELECTION.
      PERFORM PU_EXEUTIVES_PROM.
      IF S_FROM-HIGH IS INITIAL.
        S_FROM-HIGH = SY-DATUM.
      ENDIF.
    *Fetching employee data for all infotypes.
    GET PERNR.
      PERFORM  PU_DATA_RETRIEVAL.
    *                        START OF SELECTION                    *
    END-OF-SELECTION.
      PERFORM PU_FINAL_TABLE.
      PERFORM PU_GRID_DISPLAY.
      PERFORM PU_FREE_TABLES.
    *                        SUBROUTINES                           *
    *&      Form  PU_DATA_RETRIEVAL
    FORM PU_DATA_RETRIEVAL .
    * To find out date of join for employee
      PERFORM PU_DATA_OF_JOIN.
    * Employee Personnel data
      RP_PROVIDE_FROM_LAST P0002 SPACE PN-BEGDA PN-ENDDA.
      IF PNP-SW-FOUND NE C_ONE.
        REJECT.
      ENDIF.
    * Employee Name into output table
      INT_OUTPUT-NAME = P0002-VORNA.
    *  INT_OUTPUT-DOB  = P0002-GBDAT.
      PERFORM PU_DATE_CONVERSION USING    P0002-GBDAT
                                 CHANGING INT_OUTPUT-DOB.
      IF P0002-GESCH EQ 1.
        INT_OUTPUT-***  = 'Male'.
      ELSE.
        INT_OUTPUT-***  = 'Female'.
      ENDIF.
    * Fetching employees from employee sub goup of Non Executive
      RP_PROVIDE_FROM_LAST P0001 SPACE PN-BEGDA PN-ENDDA.
      IF PNP-SW-FOUND NE C_ONE.
        REJECT.
      ENDIF.
      IF P0001-PERSK  EQ '30' OR P0001-PERSK  EQ '20'.
    * Position for employee into output table
        PERFORM  PU_POSTION_TEXT.
      ELSE.
        REJECT.
      ENDIF.
    * Position for employee into output table
      PERFORM  PU_POSTION_TEXT.
    * Persoonel Sub Area text .
      READ TABLE INT_PESUB WITH KEY WERKS = P0001-WERKS
                                    BTRTL = P0001-BTRTL.
      IF SY-SUBRC EQ 0.
        INT_OUTPUT-PESUB = INT_PESUB-BTEXT.
      ENDIF.
      READ TABLE INT_COSTC WITH KEY KOSTL = P0001-KOSTL.
      IF SY-SUBRC EQ 0.
        INT_OUTPUT-COSTC = INT_COSTC-KTEXT.
      ENDIF.
    * Fetching employees from Additional Personal Data
      RP_PROVIDE_FROM_LAST P0077 SPACE PN-BEGDA PN-ENDDA.
      IF PNP-SW-FOUND EQ C_ONE.
    * Ethnic origin of employee  into output table
        INT_OUTPUT-ETHIC = P0077-RACKY.
      ENDIF.
    * Selecting data from  basic pay last record with wage group
      RP_PROVIDE_FROM_LAST P0008 SPACE PN-BEGDA PN-ENDDA.
      IF PNP-SW-FOUND NE C_ONE.
        REJECT.
      ELSE.
        W_WAGEGRP = P0008-TRFGR.
    * Employee Pay Scale Group  into output table
        INT_OUTPUT-GRADE = P0008-TRFGR.
      ENDIF.
    * Selecting data from  Education with wage group
      SORT P0022 BY BEGDA.
      PROVIDE * FROM P0022 BETWEEN PN-BEGDA AND PN-ENDDA.
        IF SY-TABIX EQ 1.
          READ TABLE INT_QUALFI WITH KEY AUSBI = P0022-AUSBI.
          IF SY-SUBRC EQ 0.
            INT_OUTPUT-QUAL1 = INT_QUALFI-ATEXT.
          ENDIF.
        ELSEIF SY-TABIX EQ 2.
          READ TABLE INT_QUALFI WITH KEY AUSBI = P0022-AUSBI.
          IF SY-SUBRC EQ 0.
            INT_OUTPUT-QUAL2 = INT_QUALFI-ATEXT.
          ENDIF.
        ELSEIF SY-TABIX EQ 3.
          READ TABLE INT_QUALFI WITH KEY AUSBI = P0022-AUSBI.
          IF SY-SUBRC EQ 0.
            INT_OUTPUT-QUAL3 = INT_QUALFI-ATEXT.
          ENDIF.
        ELSEIF SY-TABIX EQ 4.
          READ TABLE INT_QUALFI WITH KEY AUSBI = P0022-AUSBI.
          IF SY-SUBRC EQ 0.
            INT_OUTPUT-QUAL4 = INT_QUALFI-ATEXT.
          ENDIF.
        ELSEIF SY-TABIX EQ 5.
          READ TABLE INT_QUALFI WITH KEY AUSBI = P0022-AUSBI.
          IF SY-SUBRC EQ 0.
            INT_OUTPUT-QUAL5 = INT_QUALFI-ATEXT.
          ENDIF.
        ENDIF.
      ENDPROVIDE.
    * Carrer path code for employee from Additional Personal Data.
      RP_PROVIDE_FROM_LAST P9002 SPACE PN-BEGDA PN-ENDDA.
      IF PNP-SW-FOUND EQ C_ONE.
        W_CPCODE  = P9002-CPCODE.
        INT_OUTPUT-CPCODE = P9002-CPCODE.
        IF W_CPCODE EQ '001'.
          IF W_HIREDATE < C_EARLYDT.
            CONCATENATE W_CPCODE
                        C_EARLY
                  INTO  W_CAREERCD.
          ELSE.
            CONCATENATE W_CPCODE
                        C_NEW
                  INTO  W_CAREERCD.
          ENDIF.
        ELSE.
          W_CAREERCD = W_CPCODE.
        ENDIF.
      ENDIF.
    * Detrmine Promotion by Test/Service
      READ TABLE INT_NONEXE WITH KEY CPCODE    = W_CAREERCD
                                     WAGEGROUP = W_WAGEGRP.
      IF SY-SUBRC EQ 0.
        W_PROMTYPE = INT_NONEXE-TSTYPE.
        W_NOOFYRS  = INT_NONEXE-NOYRS.
        INT_OUTPUT-PROMT = W_PROMTYPE.
        INT_OUTPUT-NOYRS = W_NOOFYRS.
      ENDIF.
    * Retriving last promotion date from actions
      DELETE INT_PROM WHERE MASSN NE 'B3'.
      SORT INT_PROM BY BEGDA DESCENDING.
    *  RP_PROVIDE_FROM_LAST INT_PROM SPACE PN-BEGDA PN-ENDDA.
      READ TABLE INT_PROM INDEX 1.
      IF SY-SUBRC EQ 0 AND INT_PROM-MASSN EQ 'B3'.
        PERFORM PU_DATE_CONVERSION USING  INT_PROM-BEGDA
                                 CHANGING W_LASTPROM.
      ELSE.
        PERFORM PU_DATE_CONVERSION USING  W_HIREDATE
                                   CHANGING W_LASTPROM.
      ENDIF.
    *  As there is no ending date for records which happen on same date
    *  for cross check to get last promotion Infotype 0302' is retived
      IF P0302[] IS NOT INITIAL.
        DELETE P0302 WHERE MASSN NE 'B3'.
        SORT  P0302 BY BEGDA DESCENDING.
        READ TABLE P0302 INDEX 1.
        IF SY-SUBRC EQ 0 AND
           INT_PROM-BEGDA IS NOT INITIAL.
          IF INT_PROM-BEGDA < P0302-BEGDA.
            PERFORM PU_DATE_CONVERSION USING  P0302-BEGDA
                                     CHANGING W_LASTPROM.
          ENDIF.
        ENDIF.
      ENDIF.
      IF W_LASTPROM+0(2) GT '01'.
        W_LASTPROM+0(2) = '01'.
        W_ONE = W_LASTPROM+3(2) + 1.
        W_LASTPROM+3(2) =  W_ONE.
      ENDIF.
    * Last promaotion date for Employee into output table
      INT_OUTPUT-LPROM =  W_LASTPROM.
    * To Find out promotion due date for employee.
    * Fetching service availabilty data
      W_YEAR     =  W_LASTPROM+6(4).
      W_YEAR     =  W_YEAR + W_NOOFYRS.
      CONCATENATE  W_YEAR
                     W_LASTPROM+3(2)
                   W_LASTPROM+0(2)
              INTO W_PROMDATE.
    * Check promotion duedate is with in input range.
      IF S_FROM-LOW IS NOT INITIAL.
        CHECK W_PROMDATE GE S_FROM-LOW.
      ENDIF.
      IF S_FROM-HIGH IS NOT INITIAL.
        CHECK W_PROMDATE LE S_FROM-HIGH.
      ENDIF.
    * Promaotion due date for Employee into output table
      PERFORM PU_DATE_CONVERSION USING    W_PROMDATE
                                 CHANGING INT_OUTPUT-PROMD.
    * Apprisal rating data.
    * If promotion month is JAN,FEB,MAR deduct 6 years
      IF W_PROMDATE+4(2) EQ C_JAN OR
         W_PROMDATE+4(2) EQ C_FEB OR
         W_PROMDATE+4(2) EQ C_MAR.
        CLEAR W_YEAR.
        W_YEAR   = W_PROMDATE+0(4).
        W_APYEAR = W_YEAR - 1.
        W_YEAR   = W_YEAR - 6.
      ELSE.
    * If promotion month is not JAN,FEB,MAR deduct 5 years
        W_YEAR   = W_PROMDATE+0(4).
        W_APYEAR = W_YEAR.
        W_YEAR   = W_YEAR - 5.
      ENDIF.
      CONCATENATE  W_YEAR
                   '0401'
              INTO W_APPRST.
      CONCATENATE  W_APYEAR
                   '0331'
              INTO W_APPREND.
      DELETE P0025 WHERE BEGDA LT W_APPRST
                      OR BEGDA GT W_APPREND.
      PROVIDE * FROM P0025 BETWEEN PN-BEGDA AND PN-ENDDA.
        IF SY-TABIX EQ 1.
          INT_OUTPUT-APPR1 = P0025-KSU01.
        ELSEIF SY-TABIX EQ 2.
          INT_OUTPUT-APPR2 = P0025-KSU01.
        ELSEIF SY-TABIX EQ 3.
          INT_OUTPUT-APPR3 = P0025-KSU01.
        ELSEIF SY-TABIX EQ 4.
          INT_OUTPUT-APPR4 = P0025-KSU01.
        ELSEIF SY-TABIX EQ 5.
          INT_OUTPUT-APPR5 = P0025-KSU01.
        ENDIF.
      ENDPROVIDE.
    * Absence data.
      IF W_PROMDATE+4(2) EQ C_JAN.
        CLEAR W_YEAR.
        W_YEAR   = W_PROMDATE+0(4).
        W_ABSYR  = W_YEAR - 1.
        W_MONTH  = '11'.
        W_YEAR   = W_YEAR - 2.
      ELSE.
    * If promotion month is not JAN,FEB,MAR deduct 5 years
        W_YEAR   = W_PROMDATE+0(4).
        W_ABSYR  = W_YEAR.
        W_MONTH  = W_PROMDATE+4(2).
        W_MONTH  = W_MONTH - 01.
        W_YEAR   = W_YEAR - 1.
      ENDIF.
      CONCATENATE W_YEAR
                  W_MONTH
                  '23'
             INTO W_ABSST.
      CONCATENATE  W_ABSYR
                   W_MONTH
                   '22'
              INTO W_ABSEND.
      SORT   P2001 BY BEGDA.
      DELETE P2001 WHERE ( AWART NE C_AWL AND
                           AWART NE C_LWP )  OR
                         ( BEGDA LT W_ABSST
                     OR    BEGDA GT W_ABSEND ).
      PROVIDE * FROM P2001 BETWEEN PN-BEGDA AND PN-ENDDA.
        IF P2001-AWART  EQ  C_AWL.
          W_AWL = W_AWL + P2001-ABWTG.
        ELSEIF P2001-AWART  EQ  C_LWP.
          W_LWP = W_LWP + P2001-ABWTG.
        ENDIF.
      ENDPROVIDE.
      INT_OUTPUT-AWL = W_AWL.
      INT_OUTPUT-LWP = W_LWP.
    * Increments dates' data.
      DELETE INT_CHGPY WHERE MASSN NE 'B7'.
      SORT   INT_CHGPY BY BEGDA DESCENDING.
      IF INT_CHGPY[] IS NOT INITIAL.
        INT_INCRE-PERNR = INT_CHGPY-PERNR.
        PROVIDE * FROM INT_CHGPY  BETWEEN PN-BEGDA
                                      AND PN-ENDDA.
          IF SY-TABIX EQ 1.
            PERFORM PU_DATE_CONVERSION USING    INT_CHGPY-BEGDA
                                       CHANGING INT_INCRE-INCR1.
          ELSEIF SY-TABIX EQ 2.
            PERFORM PU_DATE_CONVERSION USING    INT_CHGPY-BEGDA
                                       CHANGING INT_INCRE-INCR2.
          ELSEIF SY-TABIX EQ 3.
            PERFORM PU_DATE_CONVERSION USING    INT_CHGPY-BEGDA
                                       CHANGING INT_INCRE-INCR3.
          ENDIF.
        ENDPROVIDE.
        APPEND INT_INCRE.
        CLEAR  INT_INCRE.
      ENDIF.
    * Disciplinary Actions.
      CLEAR W_YEAR.
      W_YEAR = W_PROMDATE+0(4).
      W_YEAR = W_YEAR - 3.
      CONCATENATE  W_YEAR
                   W_PROMDATE+4(4)
              INTO W_DISDATE.
      SORT P9545 BY MDATE.
      DELETE P9545 WHERE MDATE LT W_DISDATE
                      OR MDATE GT W_PROMDATE.
      PROVIDE * FROM P9545 BETWEEN PN-BEGDA
                              AND  PN-ENDDA.
        READ TABLE INT_DISCIP WITH KEY MCODE = P9545-MCODE.
        IF SY-SUBRC EQ 0.
          INT_DISCACT-PERNR  = P9545-PERNR.
          INT_DISCACT-DESCRI = INT_DISCIP-DESCRI.
          PERFORM PU_DATE_CONVERSION USING    P9545-MDATE
                                     CHANGING INT_DISCACT-MDATE.
          INT_DISCACT-COMM1 = ','.
          INT_DISCACT-COMM2 = ','.
          APPEND INT_DISCACT.
          CLEAR  INT_DISCACT.
        ENDIF.
      ENDPROVIDE.
      APPEND INT_OUTPUT.
      CLEAR INT_OUTPUT.
      CLEAR : W_HIREDATE,W_WAGEGRP,W_CPCODE,W_CAREERCD,W_PROMTYPE,
              W_NOOFYRS,W_LASTPROM,W_PROMDATE,W_YEAR,W_APYEAR,
              W_APPRST,W_DISDATE,W_APPREND,W_ABSST,W_ABSEND,
              W_ABSYR,W_MONTH,W_AWL,W_LWP,W_DISCI.
    ENDFORM.                    " PU_DATA_RETRIEVAL
    *&      Form  PU_DATA_OF_JOIN
    FORM PU_DATA_OF_JOIN .
      CLEAR INT_OUTPUT.
      READ TABLE P0000 WITH KEY  MASSN = 'B1'.
      IF SY-SUBRC NE 0 OR  P0000-STAT2 NE '3'.
        REJECT.
      ELSE.
    * Personnel number into output table
        INT_OUTPUT-PERNR = P0000-PERNR.
        PERFORM PU_DATE_CONVERSION USING P0000-BEGDA
                                CHANGING INT_OUTPUT-DOJ.
        W_HIREDATE = P0000-BEGDA.
      ENDIF.
    ENDFORM.                    " PU_DATA_OF_JOIN
    *&      Form  PU_POSTION_TEXT
    FORM PU_POSTION_TEXT .
      DATA  : S_OBJECT TYPE OBJEC_T,
              PERNR_TAB  TYPE HRQUERY_PERNR_T ,
              SOBID_TAB  TYPE HRQUERY_SOBID_T ,
              WA_SOBID TYPE HRQUERY_SOBID,
              WA_PERNR TYPE HRQUERY_PERNR,
              WA_OBJECT TYPE OBJEC.
      WA_PERNR-PERNR = P0001-PERNR.
      APPEND WA_PERNR TO PERNR_TAB.
      WA_SOBID-PLVAR = '01'.
      WA_SOBID-OTYPE = P0001-OTYPE.
      WA_SOBID-SOBID = P0001-PLANS.
      APPEND WA_SOBID TO SOBID_TAB.
      WA_SOBID-PLVAR = '01'.
      WA_SOBID-OTYPE = 'O'.
      WA_SOBID-SOBID = P0001-ORGEH.
      APPEND WA_SOBID TO SOBID_TAB.
      CALL FUNCTION 'HR_GET_TEXT_FOR_OBJECTS'
        EXPORTING
          BEGDA       = PN-BEGDA
          ENDDA       = PN-ENDDA
        IMPORTING
          OBJEC_TAB   = S_OBJECT
        CHANGING
          PERNR_TAB   = PERNR_TAB
          SOBID_TAB   = SOBID_TAB
        EXCEPTIONS
          WRONG_DATES = 1
          OTHERS      = 2.
      IF SY-SUBRC EQ 0.
        LOOP AT S_OBJECT INTO WA_OBJECT.
          IF WA_OBJECT-OTYPE EQ 'O'.
            INT_OUTPUT-ORGUN = WA_OBJECT-STEXT.
          ELSEIF  WA_OBJECT-OTYPE EQ 'S'.
            INT_OUTPUT-DESIG = WA_OBJECT-STEXT.
          ENDIF.
        ENDLOOP.
      ENDIF.
    ENDFORM.                    " PU_POSTION_TEXT
    *&      Form  PU_EXEUTIVES_PROM
    FORM PU_EXEUTIVES_PROM .
      SELECT * FROM ZHRT007 INTO TABLE INT_NONEXE.
      SELECT * FROM ZHRT004 INTO TABLE INT_DISCIP.
      SELECT * FROM T001P   INTO TABLE INT_PESUB.
      SELECT * FROM CSKT    INTO TABLE INT_COSTC
                                 WHERE SPRAS EQ SY-LANGU.
      SELECT * FROM T518B   INTO TABLE INT_QUALFI
                                 WHERE LANGU EQ SY-LANGU.
    ENDFORM.                    " PU_EXEUTIVES_PROM
    *&      Form  PU_DATE_CONVERSION
    FORM PU_DATE_CONVERSION  USING    INPUT_DATE    TYPE SY-DATUM
                             CHANGING OUTPUT_DATE   TYPE CHAR10.
      CALL FUNCTION 'CONVERT_DATE_TO_EXTERNAL'
        EXPORTING
          DATE_INTERNAL            = INPUT_DATE
        IMPORTING
          DATE_EXTERNAL            = OUTPUT_DATE
        EXCEPTIONS
          DATE_INTERNAL_IS_INVALID = 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.                    " PU_DATE_CONVERSION
    *&      Form  PU_FINAL_TABLE
    * Preparing final internal table for output to excel
    FORM PU_FINAL_TABLE .
      DATA : W_STR1(4)  TYPE N,
             W_STR2(4)  TYPE N,
             W_STR3(4)  TYPE N,
             W_EXSTR(4) TYPE N,
             W_ORSTR(4) TYPE N,
             W_INSTR(4) TYPE N,
             W_ONSTR(4) TYPE N,
             W_DISFLAG  TYPE CHAR1,
             W_INCFLAG  TYPE CHAR1.
      LOOP AT INT_OUTPUT.
        MOVE-CORRESPONDING INT_OUTPUT TO INT_EXCEL.
        LOOP AT INT_DISCACT WHERE PERNR = INT_OUTPUT-PERNR.
          IF SY-TABIX EQ 1.
            CONCATENATE INT_DISCACT-DESCRI
                         SPACE
                        INT_DISCACT-MDATE
                   INTO W_DISCI.
            INT_EXCEL-DISCI = W_DISCI.
          ELSE.
            W_DISFLAG = 1.
          ENDIF.
        ENDLOOP.
        LOOP AT INT_INCRE WHERE PERNR = INT_OUTPUT-PERNR.
          INT_EXCEL-INCR1 =  INT_INCRE-INCR1.
          INT_EXCEL-INCR2 =  INT_INCRE-INCR2.
          INT_EXCEL-INCR3 =  INT_INCRE-INCR3.
        ENDLOOP.
        APPEND INT_EXCEL.
        CLEAR  INT_EXCEL.
        CLEAR : W_STR1,W_STR2,W_STR3.
        IF W_DISFLAG EQ 1.
          W_ORSTR = W_EXSTR.
          LOOP AT INT_DISCACT WHERE PERNR = INT_OUTPUT-PERNR.
            IF SY-TABIX NE 1.
              CONCATENATE INT_DISCACT-DESCRI
                           SPACE
                          INT_DISCACT-MDATE
                     INTO W_DISCI.
              INT_EXCEL-DISCI = W_DISCI.
              APPEND INT_EXCEL.
              CLEAR  INT_EXCEL.
              CLEAR : W_STR2,W_EXSTR.
            ENDIF.
          ENDLOOP.
        ENDIF.
      ENDLOOP.
    ENDFORM.                    " PU_FINAL_TABLE
    *&      Form  PU_GRID_DISPLAY
    *       text
    *  -->  p1        text
    *  <--  p2        text
    FORM PU_GRID_DISPLAY .
      DATA W_GT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV.
      PERFORM F_FIELDCAT_INIT USING 'IT_HEADER' W_GT_FIELDCAT[].
      IF INT_EXCEL[] IS NOT INITIAL.
        CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
          EXPORTING
            I_CALLBACK_PROGRAM = SY-CPROG
            IT_FIELDCAT        = W_GT_FIELDCAT[]
            IT_EVENTS          = EVENT[]
          TABLES
            T_OUTTAB           = INT_EXCEL
          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.
      ELSE.
        MESSAGE S011(ZHR).
        LEAVE LIST-PROCESSING.
      ENDIF.
    ENDFORM.                    " PU_GRID_DISPLAY
    *&      Form  F_FIELDCAT_INIT
    FORM F_FIELDCAT_INIT USING IT_TABLE
                               LT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV.
      DATA: LS_FIELDCAT TYPE SLIS_FIELDCAT_ALV.
      CLEAR LS_FIELDCAT.
      LS_FIELDCAT-FIELDNAME    = 'PERNR'.
      LS_FIELDCAT-TABNAME      = INT_EXCEL.
      LS_FIELDCAT-OUTPUTLEN    = 14.
      LS_FIELDCAT-SELTEXT_L = 'Personnel Number'.
      LS_FIELDCAT-FIX_COLUMN = 'X'.
      APPEND LS_FIELDCAT TO LT_FIELDCAT.
      CLEAR LS_FIELDCAT.
      LS_FIELDCAT-FIELDNAME    = 'NAME'.
      LS_FIELDCAT-TABNAME      = INT_EXCEL.
      LS_FIELDCAT-OUTPUTLEN    = 30.
      LS_FIELDCAT-SELTEXT_L    = 'Name'.
      APPEND LS_FIELDCAT TO LT_FIELDCAT.
      CLEAR LS_FIELDCAT.
      LS_FIELDCAT-FIELDNAME    = 'DESIG'.
      LS_FIELDCAT-TABNAME      = INT_EXCEL.
      LS_FIELDCAT-OUTPUTLEN    = 25.
      LS_FIELDCAT-SELTEXT_L    = 'Desigination'.
      APPEND LS_FIELDCAT TO LT_FIELDCAT.
      CLEAR LS_FIELDCAT.
      LS_FIELDCAT-FIELDNAME    = 'PESUB'.
      LS_FIELDCAT-TABNAME      = INT_EXCEL.
      LS_FIELDCAT-OUTPUTLEN    = 16.
      LS_FIELDCAT-SELTEXT_L    = 'Personnel Sub Area'.
      APPEND LS_FIELDCAT TO LT_FIELDCAT.
      CLEAR LS_FIELDCAT.
      LS_FIELDCAT-FIELDNAME    = 'ORGUN'.
      LS_FIELDCAT-TABNAME      = INT_EXCEL.
      LS_FIELDCAT-OUTPUTLEN    = 25.
      LS_FIELDCAT-SELTEXT_L    = 'Organization Unit'.
      APPEND LS_FIELDCAT TO LT_FIELDCAT.
      CLEAR LS_FIELDCAT.
      LS_FIELDCAT-FIELDNAME    = 'COSTC'.
      LS_FIELDCAT-TABNAME      = INT_EXCEL.
      LS_FIELDCAT-OUTPUTLEN    = 14.
      LS_FIELDCAT-SELTEXT_L    = 'Cost Center'.
      APPEND LS_FIELDCAT TO LT_FIELDCAT.
      CLEAR LS_FIELDCAT.
      LS_FIELDCAT-FIELDNAME    = 'ETHIC'.
      LS_FIELDCAT-TABNAME      = INT_EXCEL.
      LS_FIELDCAT-OUTPUTLEN    = 6.
      LS_FIELDCAT-SELTEXT_L    = 'Ethic'.
      APPEND LS_FIELDCAT TO LT_FIELDCAT.
      CLEAR LS_FIELDCAT.
      LS_FIELDCAT-FIELDNAME    = 'CPCODE'.
      LS_FIELDCAT-TABNAME      = INT_EXCEL.
      LS_FIELDCAT-OUTPUTLEN    = 7.
      LS_FIELDCAT-SELTEXT_L    = 'CPCode'.
      APPEND LS_FIELDCAT TO LT_FIELDCAT.
      CLEAR LS_FIELDCAT.
      LS_FIELDCAT-FIELDNAME    = 'GRADE'.
      LS_FIELDCAT-TABNAME      = INT_EXCEL.
      LS_FIELDCAT-OUTPUTLEN    =  12.
      LS_FIELDCAT-SELTEXT_L    = 'Current Grade'.
      APPEND LS_FIELDCAT TO LT_FIELDCAT.
      CLEAR LS_FIELDCAT.
      LS_FIELDCAT-FIELDNAME    = '***'.
      LS_FIELDCAT-TABNAME      = INT_EXCEL.
      LS_FIELDCAT-OUTPUTLEN    = 6.
      LS_FIELDCAT-SELTEXT_L    = 'Gender'.
      APPEND LS_FIELDCAT TO LT_FIELDCAT.
      CLEAR LS_FIELDCAT.
      LS_FIELDCAT-FIELDNAME    = 'DOB'.
      LS_FIELDCAT-TABNAME      = INT_EXCEL.
      LS_FIELDCAT-OUTPUTLEN    = 11.
      LS_FIELDCAT-SELTEXT_L    = 'Date of Birth'.
      APPEND LS_FIELDCAT TO LT_FIELDCAT.
      CLEAR LS_FIELDCAT.
      LS_FIELDCAT-FIELDNAME    = 'DOJ'.
      LS_FIELDCAT-TABNAME      = INT_EXCEL.
      LS_FIELDCAT-OUTPUTLEN    = 11.
      LS_FIELDCAT-SELTEXT_L    = 'Date of Join'.
      APPEND LS_FIELDCAT TO LT_FIELDCAT.
      CLEAR LS_FIELDCAT.
      LS_FIELDCAT-FIELDNAME    = 'QUAL1'.
      LS_FIELDCAT-TABNAME      = INT_EXCEL.
      LS_FIELDCAT-OUTPUTLEN    = 13.
      LS_FIELDCAT-SELTEXT_L    = 'Qualification 1'.
      APPEND LS_FIELDCAT TO LT_FIELDCAT.
      CLEAR LS_FIELDCAT.
      LS_FIELDCAT-FIELDNAME    = 'QUAL2'.
      LS_FIELDCAT-TABNAME      = INT_EXCEL.
      LS_FIELDCAT-OUTPUTLEN    = 13.
      LS_FIELDCAT-SELTEXT_L    = 'Qualification 2'.
      APPEND LS_FIELDCAT TO LT_FIELDCAT.
      CLEAR LS_FIELDCAT.
      LS_FIELDCAT-FIELDNAME    = 'QUAL3'.
      LS_FIELDCAT-TABNAME      = INT_EXCEL.
      LS_FIELDCAT-OUTPUTLEN    = 13.
      LS_FIELDCAT-SELTEXT_L    = 'Qualification 3'.
      APPEND LS_FIELDCAT TO LT_FIELDCAT.
      CLEAR LS_FIELDCAT.
      LS_FIELDCAT-FIELDNAME    = 'QUAL4'.
      LS_FIELDCAT-TABNAME      = INT_EXCEL.
      LS_FIELDCAT-OUTPUTLEN    = 13.
      LS_FIELDCAT-SELTEXT_L    = 'Qualification 4'.
      APPEND LS_FIELDCAT TO LT_FIELDCAT.
      CLEAR LS_FIELDCAT.
      LS_FIELDCAT-FIELDNAME    = 'QUAL5'.
      LS_FIELDCAT-TABNAME      = INT_EXCEL.
      LS_FIELDCAT-OUTPUTLEN    = 13.
      LS_FIELDCAT-SELTEXT_L    = 'Qualification 5'.
      APPEND LS_FIELDCAT TO LT_FIELDCAT.
      CLEAR LS_FIELDCAT.
      LS_FIELDCAT-FIELDNAME    = 'LPROM'.
      LS_FIELDCAT-TABNAME      = INT_EXCEL.
      LS_FIELDCAT-OUTPUTLEN    = 16.
      LS_FIELDCAT-SELTEXT_L    = 'Last Promotion Date'.
      APPEND LS_FIELDCAT TO LT_FIELDCAT.
      CLEAR LS_FIELDCAT.
      LS_FIELDCAT-FIELDNAME    = 'PROMD'.
      LS_FIELDCAT-TABNAME      = INT_EXCEL.
      LS_FIELDCAT-OUTPUTLEN    = 16.
      LS_FIELDCAT-SELTEXT_L    = 'Promotion Due Date'.
      APPEND LS_FIELDCAT TO LT_FIELDCAT.
      CLEAR LS_FIELDCAT.
      LS_FIELDCAT-FIELDNAME    = 'PROMT'.
      LS_FIELDCAT-TABNAME      = INT_EXCEL.
      LS_FIELDCAT-OUTPUTLEN    = 14.
      LS_FIELDCAT-SELTEXT_L    = 'Promotion Type'.
      APPEND LS_FIELDCAT TO LT_FIELDCAT.
      CLEAR LS_FIELDCAT.
      LS_FIELDCAT-FIELDNAME    = 'NOYRS'.
      LS_FIELDCAT-TABNAME      = INT_EXCEL.
      LS_FIELDCAT-OUTPUTLEN    = 15.
      LS_FIELDCAT-SELTEXT_L    = 'Number of Years'.
      APPEND LS_FIELDCAT TO LT_FIELDCAT.
      CLEAR LS_FIELDCAT.
      LS_FIELDCAT-FIELDNAME    = 'AWL'.
      LS_FIELDCAT-TABNAME      = INT_EXCEL.
      LS_FIELDCAT-OUTPUTLEN    = 22.
      LS_FIELDCAT-SELTEXT_L    = 'Absence Without Leave'.
      APPEND LS_FIELDCAT TO LT_FIELDCAT.
      CLEAR LS_FIELDCAT.
      LS_FIELDCAT-FIELDNAME    = 'LWP'.
      LS_FIELDCAT-TABNAME      = INT_EXCEL.
      LS_FIELDCAT-OUTPUTLEN    = 22.
      LS_FIELDCAT-SELTEXT_L    = 'Leave Without Pay'.
      APPEND LS_FIELDCAT TO LT_FIELDCAT.
      CLEAR LS_FIELDCAT.
      LS_FIELDCAT-FIELDNAME    = 'APPR1'.
      LS_FIELDCAT-TABNAME      = INT_EXCEL.
      LS_FIELDCAT-OUTPUTLEN    = 15.
      LS_FIELDCAT-SELTEXT_L    = 'Apprisal 1st'.
      APPEND LS_FIELDCAT TO LT_FIELDCAT.
      CLEAR LS_FIELDCAT.
      LS_FIELDCAT-FIELDNAME    = 'APPR2'.
      LS_FIELDCAT-TABNAME      = INT_EXCEL.
      LS_FIELDCAT-OUTPUTLEN    = 15.
      LS_FIELDCAT-SELTEXT_L    = 'Apprisal 2nd'.
      APPEND LS_FIELDCAT TO LT_FIELDCAT.
      CLEAR LS_FIELDCAT.
      LS_FIELDCAT-FIELDNAME    = 'APPR3'.
      LS_FIELDCAT-TABNAME      = INT_EXCEL.
      LS_FIELDCAT-OUTPUTLEN    = 15.
      LS_FIELDCAT-SELTEXT_L    = 'Apprisal 3rd'.
      APPEND LS_FIELDCAT TO LT_FIELDCAT.
      CLEAR LS_FIELDCAT.
      LS_FIELDCAT-FIELDNAME    = 'APPR4'.
      LS_FIELDCAT-TABNAME      = INT_EXCEL.
      LS_FIELDCAT-OUTPUTLEN    = 15.
      LS_FIELDCAT-SELTEXT_L    = 'Apprisal 4th'.
      APPEND LS_FIELDCAT TO LT_FIELDCAT.
      CLEAR LS_FIELDCAT.
      LS_FIELDCAT-FIELDNAME    = 'APPR5'.
      LS_FIELDCAT-TABNAME      = INT_EXCEL.
      LS_FIELDCAT-OUTPUTLEN    = 15.
      LS_FIELDCAT-SELTEXT_L    = 'Apprisal 5th'.
      APPEND LS_FIELDCAT TO LT_FIELDCAT.
      CLEAR LS_FIELDCAT.
      LS_FIELDCAT-FIELDNAME    = 'DISCI'.
      LS_FIELDCAT-TABNAME      = INT_EXCEL.
      LS_FIELDCAT-OUTPUTLEN    = 60.
      LS_FIELDCAT-SELTEXT_L    = 'Disciplinary Actions - Date'.
      APPEND LS_FIELDCAT TO LT_FIELDCAT.
      CLEAR LS_FIELDCAT.
      LS_FIELDCAT-FIELDNAME    = 'INCR1'.
      LS_FIELDCAT-TABNAME      = INT_EXCEL.
      LS_FIELDCAT-OUTPUTLEN    = 15.
      LS_FIELDCAT-SELTEXT_L    = '1st Increment'.
      APPEND LS_FIELDCAT TO LT_FIELDCAT.
      CLEAR LS_FIELDCAT.
      LS_FIELDCAT-FIELDNAME    = 'INCR2'.
      LS_FIELDCAT-TABNAME      = INT_EXCEL.
      LS_FIELDCAT-OUTPUTLEN    = 15.
      LS_FIELDCAT-SELTEXT_L    = '2nd Increment'.
      APPEND LS_FIELDCAT TO LT_FIELDCAT.
      CLEAR LS_FIELDCAT.
      LS_FIELDCAT-FIELDNAME    = 'INCR3'.
      LS_FIELDCAT-TABNAME      = INT_EXCEL.
      LS_FIELDCAT-OUTPUTLEN    = 15.
      LS_FIELDCAT-SELTEXT_L    = '3rd Increment'.
      APPEND LS_FIELDCAT TO LT_FIELDCAT.
    ENDFORM.                    " F_FIELDCAT_INIT
    *&      Form  PU_FREE_TABLES
    FORM PU_FREE_TABLES .
      FREE :  INT_NONEXE  ,
              INT_OUTPUT  ,
              INT_DISCACT ,
              INT_QUALFI  ,
              INT_INCRE   ,
              INT_DISCIP  ,
              INT_PESUB   ,
              INT_COSTC   ,
              INT_EXCEL   ,
              EVENT       ,
              LISTHEAD    .
    ENDFORM.                    " PU_FREE_TABLES
    reward points if helpful
    Edited by: mohammed  abdul hai on Jul 25, 2008 7:21 PM

Maybe you are looking for

  • How do I get rid of a document that appears on desk top?

    A document appears on my desk top. How do I get rid of it?

  • Repetitive Wire - FRFT help

    Hi Everyone, My client requested for me to implement Repetitive Wires and treasury payment program. I have not done this before but for my understanding all the configuration needed are treasury payment program and creating repetitive codes and group

  • Struts - How not to lose parameter after validate() method

    Hi I have following problem. When I submit a form(action= sendMessage.do) from site generated in writeMessage.do?id=1 action and validate method find errors it forwards to writeMessage.do I need to forward to writeMessage.do?id=1 <action path="/sendM

  • How can I make the landscape or portrait senser working when playing video

    I use MPMoviePlayerController to play the movie. Can I implement it like the method - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceO rientation? I know we can set orientation using setOrientation:UIDeviceOrientationPo

  • Problem about lidopen or log in itself when it sleep

    what i can do about this.I have checked another discussion about that i have enter this syslog -k Sender kernel -k Message Req Wake and then came out this; Jan 20 23:08:31 Burak-MacBook-Pro kernel[0] <Debug>: Wake reason: EC.LidOpen (User) Jan 21 09: