Help on Authentication Schema and public page

Hi
i'm developing a app using an authentication schema basede on OID.
The problem is that the first page to be load (page 1), doesn't require any permission...it's public....
the only way to aceed directly to this page witouth login is type "?p=2011:1"
there are some way to pass over the authentication schema, just calling the app "?p=2011"
the home link on aplication security is .....f?p=&APP_ID.:1
thanks

José,
This seems to be the same bug discussed here: Re: Difference between using Application Alias and Application Number You may need to use an Apache rewrite directive of some kind until we fix it.
Scott

Similar Messages

  • Session 0 (Zero) and public pages

    Hi APEX gurus,
    I have some difficulties with public pages and session 0 in combination with Tabs.
    The problem occur when i click on some of my Tabs. For some reason the session 0 is replaces with the proper session id. This only happens for some Tabs. When i go back to the previous Tab, session 0 i back i the URL...
    I have tried to replicate this problem in a new application but I'm not able to reproduse this behavior :(
    I use APEX version 3.2.1.00.12 and I only use one level of Tabs.
    Can anybody give me a hint or clue to how I can debug this problem?
    Best Regards
    Trond

    Some time ago, probably at the time of apex version 3.0 or even before, i had a similar issue.
    Session zero makes sense if you are trying to get a stable URL that can be indexed optimally by search bots.
    If you have a similar requirement, then it makes sense to change tab templates and replace javascript doSubmits with links containing session zero, because that will enable spiders to drill down your application, which would be impossible in the other way, unless there are additional links somewhere else in the page.
    You will achieve the twofold result of stabilizing the indexed URLs and also make session zero more persistent for the user.
    Flavio
    http://oraclequirks.blogspot.com

  • Urgent Help: How to Convert a Public Page into an Internal page

    Hi,
    i need to convert public pages of a collaboration room into internal pages.
    Please let me know if you know the solution.
    Regards,
    vibhu

    You should probably stick to the original thread on this, otherwise you'll end up going over repetitive information...
    http://forums.adobe.com/thread/1338668?tstart=0

  • Help With Integrating Servlet and JSP Page?

    Hello There
    --i made jsp page that contain name and description fields and add button
    --and i made servlet that contain the code to insert name and description in the database
    --and i want to make that when the user hit the add button
    -->the entered name and description is sent to the servlet
    and the servlet sent them to database?
    here's what i 've done:
    the jsp code:
    <html:html locale="true">
        <head>
            <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
            <title>
            Categories Page
           </title>
            <html:base/>
        </head>
        <body style="background-color: white">
        <form action="jpage.jsp" method="get">
            <h1>
                <center>
    categories Operations
                </center>
            </h1>
            <h3>
                 <label>Name</label>
            <input type="text" name="name" value="" size="10" />
                 <label>Description</label>
             <input type="text" name="description" value="" size="10" />
             <input type="submit" value="Add" name="button" />
           </h3>
       </form>
        </body>
    </html:html>the servlet code:
    import java.io.*;
    import java.util.Enumeration;
    import javax.servlet.*;
    import javax.servlet.http.*;
    import java.sql.*;
    import java.net.*;
    class NewServlet1 extends HttpServlet{
         Connection conn;
         private ServletConfig config;
    public void init(ServletConfig config)
      throws ServletException{
         this.config=config;
    public void service (HttpServletRequest req, HttpServletResponse res)
    throws ServletException, IOException {
       HttpSession session = req.getSession(true);
       res.setContentType("text/html");
    try{
         Class.forName("com.mysql.jdbc.Driver");
       conn = DriverManager.getConnection("jdbc:mysql://localhost/struts", "root", "");
         PreparedStatement ps;
       ps = conn.prepareStatement ("INSERT INTO categories (Name, Description) VALUES(?,?)");
          ps.setString (1, "aa");
          ps.setString (3, "bb");
          ps.executeUpdate();
          ps.close();
          conn.close();
      }catch(Exception e){ e.getMessage();}
      public void destroy(){}
    }

    The JSP Code:
    <html:html locale="true">
        <head>
            <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
            <title>
            Categories Page
           </title>
            <html:base/>
        </head>
        <body style="background-color: white">
        <form action="actionServlet.do?action=Additem" method="*post*">
            <h1>
                <center>
    categories Operations
                </center>
            </h1>
            <h3>
                 <label>Name</label>
            <input type="text" name="name" value="" size="10" />
                 <label>Description</label>
             <input type="text" name="description" value="" size="10" />
             <input type="button" value="Submit">
           </h3>
       </form>
        </body>
    </html:html>The Servlet Code:
    import java.io.*;
    import java.util.Enumeration;
    import javax.servlet.*;
    import javax.servlet.http.*;
    import java.sql.*;
    import java.net.*;
    public class NewServlet1 extends HttpServlet implements SingleThreadModel {
        public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException,IOException {
            doPost(request,response);
        public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException,IOException {
              String action = request.getParameter("action"); // action = "Additem"
              if (action.equals("Additem")) {
                   String name = request.getParameter("name");
                   String description = request.getParameter("description");
                         RequestDispatcher reqDisp = null;
                   try{
                  Connection conn;
                  PreparedStatement ps;
         Class.forName("com.mysql.jdbc.Driver");
       conn = DriverManager.getConnection("jdbc:mysql://localhost/struts", "root", "");
       ps = conn.prepareStatement ("INSERT INTO categories (Name, Description) VALUES(?,?)");
          ps.setString (1, name);
          ps.setString (3, description);
          ps.executeUpdate();
          ps.close();
          conn.close();
          reqDisp= request.getRequestDispatcher("./index.jsp");
          reqDisp.forward(request, response);
                   catch (Exception ex){
                        System.out.println("Error: "+ ex);
    }The web.xml code:
    <?xml version="1.0" encoding="UTF-8"?>
    <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
        <servlet>
            <servlet-name>action</servlet-name>
            <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
            <init-param>
                <param-name>config</param-name>
                <param-value>/WEB-INF/struts-config.xml</param-value>
            </init-param>
            <init-param>
                <param-name>debug</param-name>
                <param-value>2</param-value>
            </init-param>
            <init-param>
                <param-name>detail</param-name>
                <param-value>2</param-value>
            </init-param>
            <load-on-startup>2</load-on-startup>
            </servlet>
        <servlet>
            <servlet-name>NewServlet1</servlet-name>
            <servlet-class>NewServlet1</servlet-class>
        </servlet>
        <servlet-mapping>
            <servlet-name>action</servlet-name>
            <url-pattern>*.do</url-pattern>
        </servlet-mapping>
        <servlet-mapping>
            <servlet-name>NewServlet1</servlet-name>
            <url-pattern>/NewServlet1</url-pattern>
        </servlet-mapping>
        <session-config>
            <session-timeout>
                30
            </session-timeout>
        </session-config>
        <welcome-file-list>
            <welcome-file>index.jsp</welcome-file>
            </welcome-file-list>
            <servlet>
         <servlet-name>actionServlet</servlet-name>
         <servlet-class>com.test.servlet.NewServlet1</servlet-class>
    </servlet>
    <servlet-mapping>
         <servlet-name>actionServlet</servlet-name>
         <url-pattern>*.do</url-pattern>
    </servlet-mapping>
        </web-app>

  • Help needed in schema and flow of my DB

    I am dealing with a large scale of data and the senario is that.
    i am getting data from stream , i have developed an aplication called AClient (in C++) which is getting data from stream and putting that data live in my db table called live using ODBC (previously i was using Pro C but i didnot find good help on that for new versions), this data insertion is like 2000 records per min, each record is approx. 200k.
    As this data is very critical so we can't afford to miss this data.Data is automatically getting commit on each insertion, so the I/O operations bar is HIGH.
    Now after saving this data live, we perform some actions using oracle JOBs,
    I1. One job is used to fetch approx. 200,000 from table Live, merge 5-6 records into one record after every 1 hour, and put these records in a table named COM.
    I2. One jos is used to fetch approx. 200,000 from table Live other than those inserted in COM, and put them in another table INCOM.
    I3. One job is to fetch all records preior to 6 hours, and put them in an archive table ARC, also delete them from Live.
    Now to export this data in CSVs we are using some more Oracle JOBs.
    E1. One job is to fetch last two hours data from COM table and export this data in CSV format after every 2 hours.
    E2. One job is to fetch one day records from INCOM table and export this data in CSV format scheduled in night time , once for a day.
    Now the problem is that i am facing performace issues, i have got a very good hardware with 32GB RAM , 1.5T harddisk and quard core processsors.
    TOP issues are fetching data is too slow, and I/O operations shown in OEM preformace tab are too many.
    Please guide me what should i do.
    like using partition tables,
    and/or use of BI tools, fetch using cubes & dimensions.
    and/or use any special tunning related to memory or I/O.
    and/or rescheduling the JOBs.
    and/or perform analyze table to make fetch process faster.
    ANY HELP.

    I have worked on this system many times before.
    Not the one you have written but others that could be described with the exact same words.
    And each and every time the reason is that they don't scale and the performance is abysmal.
    What you have done, in the design, is systematically violate every performance and scalability rule and all, seemingly, for a good reason.
    The problem is that databases don't work that way.
    If you can not risk losing data write a log file, just as Oracle writes its redo logs.
    Then write one process that takes the raw input and generates the desired output.
    I can already hear the protest about how this can not be done. I've heard those too over and over again. Yet, amazingly, there are
    those of us out here that get paid to do so ... and we do so successfully.
    So if you want to avoid hiring a high-priced consultant ... rethink the design.
    PS: You do not need an ARC table at all. Ever. This is Oracle not a toy.

  • Help with HTML tags and web page creating

    I have a project that is supposed to use an HTML class we make. He has given us the basics but we have to fill it in. My question is: How do you code a value that has been passed to a method into an html tag. For instance we have one that is called makeEmail and it is supposed to place an email address on a webpage. Here is the method, I just need to figure out how to code it correctly. Any suggestions on how to do this?
    public void makeEmail(String address)
    webPage += "" + address + "";
    }

    An email tag in html is very similar to a hyperlink. The string you want the makeEmail method to create is as follows:
    <a href="mailto:(email address")>(email address or description or whatevber you want displayed on screen)</a>So using for example my email address, you use the following line:
    <a href="mailto:[email protected]">Send an email to Mr_Silly</a>It is very much worth looking into an html tutorial, try searching for one on the web, cos there a thousands out there. It is a very simple language to learn.
    :-)

  • Help with exp schema and related objects

    I need to export a schema from one database to another. I must also be able to export the tablespaces, roles, constraints, etc that are associated with it that aren't necessarily part of the schema. Is there an easy way to do this? I had already tried simply doing a schema exp/imp and it threw up a bunch of errors mostly grants which isn't that big of a deal but some of the tables were not created due to tablespaces being missing.

    exp system/manager file=exp.dmp log=exp.log full=y at the source database.
    imp system/manager file=exp.dmp log=imp_show.log full=y show=y - create the log file without importing the data
    edit the imp_show.log and extract the statements that are needed to re-create users,roles,alter user and grants.
    Pre-create the tablespaces using SQL*Plus in the target database.
    execute the modified imp_show.log(All DDl's)
    imp system/manager file=exp.dmp log=imp.log fromuser=A touser=B
    Re-compile all the Invalid Objects.
    HTH
    -Anantha

  • Need help with JSF table and scrollable pages

    I need help regarding usage of <t:dataTable>
    I have a List on my managed bean. It has 50 records.
    I am displaying the first 10 records and need to implement paging.
    I hear that there is a faces taglibrary called tomahawk which provides a <t:dataTable> and a <t:dataScroller> to implement scrolling.
    Is there a sample implentation that I can take a look at to see how I can solve my problem??
    Any help is highly appreciated.
    Thanks
    Amol

    Check here: http://www.irian.at/myfaces/dataScroller.jsf;jsessionid=F3F50A51583FEEF38D968A4AF5DC949C

  • Remote user Authentication in customize login page

    Hi all,
    I would like to make sincere request to all you that I am not able authenticate my users based on tables. I start to learn HTML DB before 20 days and created simple application.
    Requirement:
    1: Created new login page P16 other than inbuilt login page 101.
    2: created table “trx_employee_login” which will keep track of user information
    3: after giving URL to user if user enters usr/passwd then it should take username and password (remote ) and validate in “trx_employee_login” table and if it exist then open some (page 34) page
    in the current application.
    Approach:
    1: written authentication function as
    CREATE OR REPLACE FUNCTION custom_auth (
    p_username IN VARCHAR2,
    p_password IN VARCHAR2
    RETURN BOOLEAN
    IS
    l_password VARCHAR2 (4000);
    l_stored_password VARCHAR2 (4000);
    l_count NUMBER;
    BEGIN
    SELECT COUNT (*)
    INTO l_count
    FROM trx_employee_login
    WHERE user_name LIKE p_username;
    IF l_count > 0
    THEN
    SELECT PASSWORD
    INTO l_stored_password
    FROM trx_employee_login
    WHERE user_name LIKE p_username;
    IF l_password = l_stored_password
    THEN
    RETURN TRUE;
    ELSE
    RETURN FALSE;
    END IF;
    ELSE
    RETURN FALSE;
    END IF;
    END;
    2: created authentication scheme and entered
    return custom_auth;
    in authentication function.
    3: same like I created Set Username cookie :
    begin
    owa_util.mime_header('text/html', FALSE);
    owa_cookie.send(
    name=>'LOGIN_USERNAME_COOKIE',
    value=>lower(:P16_USERNAME));
    exception when others then null;
    end;
    and other process to like 101 page
    but I m not able to get the result showing always message “Invalid Login Credentials”
    Please it will be great help if any one will help me. I m trying from the last 5 days but not able to do. I love to do myself first and if not possible then like to ask others. So please need help. Any other approach will be appreciated.
    Thanks && Regards
    Ravi

    Thanks Scott very Much,
    I changed but still I am not getting showing invalid credetial.
    Any how I got some hope by you. Can you have look on this please again.I am very new in HTML so after six days trying I am bit tensed.Here is what I am doing
    1: Created new login page Page 16.
    2: In page rendering process I created a “Before Header process named Get cookie Name ” just like inbuilt login Page :
    declare
    v varchar2(255) := null;
    c owa_cookie.cookie;
    begin
    c := owa_cookie.get('LOGIN_USERNAME_COOKIE');
    :P16_USERNAME := c.vals(1);
    exception when others then null;
    end;
    Incase of :P101_USERNAMR I change it as :P101_USERNAMR .
    3: In page rendering I created “Clear Cache for all Items on Pages (PageID,PageID,PageID)”
    process for page 16.
    4: In Page processing I created a process named “Set Username Cookie” type After computation and Validation.
    5: In page processing I ceated process Login just like page 101 and changed as
    wwv_flow_custom_auth_std.login(
    P_UNAME => v('P16_USERNAME'),
    P_PASSWORD => :P16_PASSWORD,
    P_SESSION_ID => v('APP_SESSION'),
    P_FLOW_PAGE => :APP_ID||':1'
    6: created one branch “On submit after processing to go to page 1 my welcome page”
    7: Created Authorisation scheme function returning Boolean:
    DECLARE
    l_count NUMBER;
    BEGIN
    SELECT COUNT (*)
    INTO l_count
    FROM trx_employee_login
    WHERE user_name = :p16_username AND PASSWORD = :p16_password;
    IF l_count > 0
    THEN
    RETURN TRUE;
    ELSE
    :p16_username := NULL;
    :p16_password := NULL;
    RETURN FALSE;
    END IF;
    END;
    8: I modified the function and make it UPPER case comparison as :
    CREATE OR REPLACE FUNCTION custom_auth (
    p_username IN VARCHAR2,
    p_password IN VARCHAR2
    RETURN BOOLEAN
    IS
    l_password VARCHAR2 (4000);
    l_stored_password VARCHAR2 (4000);
    l_count NUMBER;
    BEGIN
    -- First, check to see if the user is in the user table
    SELECT COUNT (*)
    INTO l_count
    FROM trx_employee_login
    WHERE UPPER (user_name) = UPPER (p_username);
    IF l_count > 0
    THEN
    -- First, we fetch the stored hashed password & expire date
    SELECT PASSWORD
    INTO l_stored_password
    FROM trx_employee_login
    WHERE UPPER (user_name) = UPPER (p_username);
    -- Finally, we compare them to see if they are the same and return
    -- either TRUE or FALSE
    IF l_password = l_stored_password
    THEN
    RETURN TRUE;
    ELSE
    RETURN FALSE;
    END IF;
    ELSE
    RETURN FALSE;
    END IF;
    END;
    In case of point 5 I mentioned how should I call my custom_auth function.
    I m not getting if I am changing it as
    custom_auth_ (
    P_UNAME => v('P16_USERNAME'),
    P_PASSWORD => :P16_PASSWORD,
    P_SESSION_ID => v('APP_SESSION'),
    P_FLOW_PAGE => :APP_ID||':1'
    then showing error and if
    custom_auth_ (
    P_UNAME => v('P16_USERNAME'),
    P_PASSWORD => :P16_PASSWORD
    then wroung number of argument showing .
    That’s what I am doing. I know I am doing some blunder but not getting where.
    Can u please take a look and tell me what changes I should made to work this code.
    Thanks && Regards.

  • Custom authentication scheme: Invalid Session Target

    Yesterday I spent a lot of time figuring out what was happening and I'm not sure if this is a bug or a feature...
    Create an application with some public pages (1,2,101) and some non-public pages (3,4).
    Created a list on page 0 listing all pages but only listing page 3 and 4 when user is logged in.
    Created a custom authentication scheme.
    Running the application showed me the page 1 and the list containing 1,2,101.
    I could navigate to 101 and then log in after which I was taken to page 1 showing only 1,2,101.
    I changed page 101 so that it would take me to page 3 after logging in and it did. The list showed me 1,2,101,3,4 and the username was also visible.
    I could visit all pages correctly except page 1. Whenever I navigated to page 1 I effectively got logged out.
    Finally I discovered that I had set "Invalid Session Target" to page 1 in my authentication scheme.
    Is this the intended effect ?

    Rene,
    When a page is selected in the authentication scheme's Invalid Session Page LOV, it gets designated as "the login page". Whenever this page is rendered, APP_USER is null and APP_SESSION is a new session ID. This accounts for what you saw. It's sort of a quirk more than a bug or feature and we ought to properly document this behavior. If, for some reason, you needed a login page that you could navigate back to (after login) in the current session and using the current APP_USER value, you can deselect the page from the Invalid Session Page LOV in the authentication scheme and instead code this in the Invalid Session URL:
    f?p=&APP_ID.:101:&APP_SESSION.
    ...using 101 as the login page, but it can be any page ID as long as it's a public page.
    Scott

  • Calling a function in Pre-Authentication Process in Authentication Scheme

    Hello all,
    I want to call a function located somewhere inside apex (not in the database) from the Pre-Authentication Process in an Authentication Scheme.
    Is it possible?
    Regards Pedro.

    Pedro
    Possibly if you could unwrap the source of the package but basically you wouldn't want to mess with APEX's API.
    If this is your function then you want it somewhere in one of your own schemas (you won't potentially break APEX and you will retain it when you upgrade).
    If you wish, you could create your own authentication schema and only give yourself access to it (as well as execute to the applications parsing schema user). You could also just create it as in the application parsing schema
    CREATE OR REPLACE PACKAGE BODY xxxxxxx WRAPPED  This makes the source unreadable in the database. (remember to keep the original source yourself though!).
    Hope this helps
    Cheers
    Ben

  • Create Authentication Scheme From Scretch

    Hi there,
    I have build an application for users, but the problem i ran in to is that when i try to create a new Create Authentication Scheme,
    it doenst let me create one from scratch.
    only two options avaliable are :
    - Based on a pre-configured scheme from the gallery
    - As a copy of an existing authentication scheme
    Can some one maby explain me why i dont have the option to create a scheme from scratch, and what will i need to do to get the option.
    Yours Sincerly,
    Sebastian!

    The scenario is as follow,
    I'm working on a project as for my finals, and the they asked us to make a Authetication login for users.
    I can make groups and users in Apex. I've put some users in a group called: 'Developers'. I want users that are in 'Developers' to be blocked
    from certain pages in the application (they may not access all the pages, only certain pages).
    So i have read the book Pro Oracle Application Express 4 AUTHENTICATION AND USER MANAGEMENT
    and the book says you need to start wich an authentication for users.
    I tried it with several tutorials and still it doesnt work. I'm not that good in programming, I do understand what they are saying but finding everything in apex.oracle is just such a work.
    I did the following.
    Creating the my_users
    apexdemo@10gR2> create table my_users(
    username varchar2(8),
    password varchar2(8)
    insert into user_repository values
    ('john', '1234');
    This was to create a table and add a user into it.
    Next i created a custom Authentication Scheme and added the following code
    create or replace package pkg_auth as
    function authenticate(p_username in varchar2,
    p_password in varchar2) return boolean;
    end;
    create or replace package body pkg_auth as
    function authenticate(p_username in varchar2,
    p_password in varchar2) return boolean is
    -- default the result to 0
    v_result integer := 0;
    begin
    -- store 1 in v_result if a matching row
    -- can be found
    select 1
    into v_result
    from user_repository
    where username = lower(p_username)
    and password = p_password;
    -- return true if a matching record was found
    return(v_result = 1);
    exception
    -- if no record was found then return false
    when no_data_found then
    return false;
    end authenticate;
    end;
    I tried the code with
    declare
    bres boolean := false;
    begin
    -- use the correct username and password
    bres := pkg_auth.authenticate('john', '1234');
    if (bres = true) then
    dbms_output.put_line('Authentication was successful');
    else
    dbms_output.put_line('Authentication failed');
    end if;
    end;
    and it returned : Authentication was successful
    But when i try to login with the user him self i says login credentials invalid
    I dont know what i;m doing wrong or what i'm forgetting here to make it work.

  • What is SPNego Authentication Scheme?

    Could anybody please give me overview of SPNego authentication scheme?
    Why its needed??Any docs Available.
    Thanks in advance.
    Any help will be highly appretiated.
    Thanks and Regards
    Gaurav Namdeo

    Hi Gaurav,
    SPNego is Authentication Scheme,And it Ovecomes the limitations of other schems like it works smoothly with Unix And other OS,And many more.
    Go through thease links.
    spnego
    Download ZIP archive from SAP Note 994197
    Unzip the archive
    Deploy EARs
    sap.comtcsecauthjmx~ear.ear
    sap.comtcsecauthspnego~wizard.ear
    ecurity_example.ear
    Active Directory configuration and further more settings have to be done in the Zip file you will get a user guide just refer thet and proceed acording to that.
    Regards
    Vinit

  • Schemas and PCRs

    hi, experts.
    i need help in learning schemas and writing PCRs. please suggest me any book or send me any document that will help.
    regards,
    madhu

    hai..
    How to read rules and Schemas
    1.Structure of relationship in Rules and Schemas:
    a)Schemas consist of Functions and Sub-schemas
    b)Some functions have the rules attached to it as one of its parameter
    c)Rules consist of a set of operations to perform some actions
    d)Operations and Functions are the executable components
    As per the diagram Set of Operations make a Rule which in turn attached to some functions and those functions embedded in Schemas or Sub-schemas (Inside the main schemas) to decide the flow of the payroll program.
    Structure of a Schema:
    Func:
    This column is used to give a function name.
    Par1, Par2, Par3, Par4:
    1. Function has maximum four parameters.
    2. The function can have zero to four parameters as per the definition of the function.
    3. Pressing F4 we can get the list of all the values which can be used as parameters.
    4. For some functions in the first parameter is the name of the rule created.
    5. These parameter values are predefined the function is being created.
    D:
    1. This column is used to comment and uncomment a function.
    2. If (*) is being put then the line is commented and will not be executed in Payroll processing.
    3. If nothing is given then the line would be executable.
    Desc
    1. In this column description for the function is being used.
    Functions:
    Functions are used for;
    • Performing some payroll computations (E.g. INEPF function calculates the PF amount of an employee during payroll run)
    • Calling rules (E.g. P0045 function calls a rule INLN to compute the loan details of a personnel number).
    • Getting data from Infotypes (E.g. P0581 will get the data from Infotype-581 for payroll processing).
    • For some decisions. (E.g. IF & ENDIF function is used to execute as per the true and false decisions) etc.
    Rules:
    Rules are used for holding a set of operations for a particular requirement to be accomplished.
    Attributes:
    1. Program Class.
    a. There are two program classes to be assigned to the rule while creating.
    i. Payroll (C).
    ii. Time (T).
    2. Country Grouping.
    a. For Payroll program class the country grouping should be mentioned. (E.g. 40 for India).
    b. For Time management rule the country grouping should be (*).
    3. Employee Sub-grouping.
    a. All the wagetypes have an attribute of employee sub-grouping.
    b. It varies client to client.
    c. Value 3 means EE sub-grouping is 3.
    d. Value * means all EE Sun-groupings.
    4. Wagetypes.
    a. The wagetype in the internal table which is meant to be processed by the rule.
    b. If a value for Wagetype is being given then the particular wagetype is being queried for processing.
    c. If **** has been given then all the wagetypes present in the particular internal table will be processed.
    Structure of the Rule.
    Frequently Used Internal Tables in PY Processing:
    The Payroll driver uses lots of internal tables used for storing data temporarily in the program for processing. Some of the important internal tables are:
    The structure of internal tables:
    EE Sub-grouping:
    1. The Wagetype is assigned to a particular Employee sub-group.
    2. 3 is a particular employee subgroup for basic pay wagetype.
    3. * value means for all EE sub-grouping.
    Wagetype Code:
    1. The Wagetype code number is the number assigned to a particular pay component.
    Wagetype Description:
    1. The description for the wagetype code.
    NUM:
    1. If there is a split for the wagetypes then this NUM field will make them different.
    2. If A person’s basic salary is changed in the mid of the month then the wagetype will be split in two amounts with NUM = 01 and NUM = 02.
    RTE:
    1. The RTE column stores a value for;
    a. Rate of interest.
    b. Number of leave days.
    c. Projection factor. Etc.
    2. E.g. In the above diagram /401 wagetype has RTE value 10 which is the projection factor used for different calculations.
    AMT:
    1. This column possesses the amount of the particular wagetype.
    Use of the internal tables:
    1. The internal tables are being used for calculations on the NUM, RTE & AMT fields.
    2. These internal tables are being read by the rules row by row.
    3. The Calculation rule would be only processed for those wagetypes which are specified in the rule’s source code.
    4. The row in the internal table containing the wagetype which has been defined in rule attributes will be placed in the header of the internal table for processing.
    5. The processing would be as per the operations used in the rule.
    Some important Operations & Functions:
    • The editor for Operations and Functions is PE04.
    • While the payroll driver encounters a function and operation it would call a subroutine written in the payroll driver.
    • The subroutine name for the operation will be OP****, Where **** will be the name of the operation.
    • For E.g. for Operation AMT the subroutine name would be OPAMT.
    • The code written for the function will be found as a subroutine in payroll driver as FU****, where **** will be the name of the function.
    • For E.g. for function INEPF the subroutine name would be FUINEPF.
    Operations:
    AMT:
    1. This Operation would fetch the Amount of the wagetype queried in the rule, in the Variable AMT for processing.
    2. The Syntax of the Operation is ZZZOVVVV.
    3. ZZZ -> AMT.
    4. O -> Operand.
    5. VVV -> Value or Variable.
    6. For E.g. (AMT= 1000) will fetch the Amount of Wagetype 1000 into AMT.
    7. Pressing F1 on the AMT Operation will provide the documentation.
    RTE:
    1. This Operation would fetch the Rate of the wagetype queried in the rule, in the Variable RTE for processing.
    2. The Syntax of the Operation is ZZZOVVVV.
    3. ZZZ -> RTE.
    4. O -> Operand.
    5. VVV -> Value or Variable.
    6. For E.g. (RTE= /401) will fetch the Rate of Wagetype /401 into RTE.
    7. Pressing F1 on the RTE Operation will provide the documentation.
    NUM:
    1. This Operation would fetch the Split indicator of the wagetype queried in the rule, in the Variable NUM for processing.
    2. The Syntax of the Operation is ZZZOVVVV.
    3. ZZZ -> NUM.
    4. O -> Operand.
    5. VVV -> Value or Variable.
    6. For E.g. (NUM= 1000) will fetch the Split indicator of Wagetype 1000 into NUM.
    7. Pressing F1 on the NUM Operation will provide the documentation.
    ADDWT:
    1. This Operation will append one more row in the internal table (Processed by the rule).
    2. After calculating an amount from a particular wagetype the amount can be assigned to another wagetype and append to the internal table.
    3. For E.g. ADDWT 2050 will add the NUM, RTE, AMT calculated to the NUM, RTE & AMT of the wagetype 2050.
    4. If the Wagetype 2050 is not there before in the internal table then NUM, RTE & AMT would be 0.
    5. If any value of these three variables are present before then they will be added to the calculated ones.
    Functions:
    PIT:
    1. This function will read the internal table IT (Input table).
    2. The function will hold a rule as first parameter.
    PRT:
    1. This function will read the internal table RT (Results table).
    2. The function will hold a rule as first parameter.
    PDT:
    1. This function will read the internal table IT (Input table).
    2. The function will hold a rule as first parameter.
    PORT:
    1. This function will read the internal table ORT (Old results table).
    2. The function will hold a rule as first parameter.
    P0014:
    1. This function will read the Infotype 0014 for processing.
    2. The function will hold a rule as first parameter.

  • Hoe to create HR Schema and PCR's

    Hi experts,
             I am new to HR-ABAP. and I want to know about HR schema and PCR's and how it can be implemented???Plz. help me

    Hi,
    Generally schemas and PCR's are written by Functinal guys. They are mainly used in payroll processing. Schemas and PCR's are written using T-codes PE01,PE02 and PE03 there you have details explanantion for each step.
    Regards,
    Ramu N.

Maybe you are looking for

  • Ipod touch 4G is stuck in "connect to itunes" screen.

    I just got my brand new Ipod Touch 4G (iOS 4.3.5), I connected it to my PC and put some music on it, I was using itunes 10.4. I update to itunes 10.5.0 and it wouldn't recognize my ipod. I searched online for solutions with no luck. Itunes says: "itu

  • Search in folder when saving a file

    Hi, I have a problem with searching files when saving file. I created a new file with the default name ("Untitled-1"). I want to overwrite an existing file in my folder, but there is a lot of files. I do not want to type the entire name - I want to f

  • Help in jsp

    hi friends how use a download option in jsp thanks

  • Why does Safari 5.0.3 crash when viewing PDFs?

    I have noticed a number of posts recently on problems with Safari crashing. I have started getting problems viewing PDFs on some websites in Safari on my G4 Mac. When I click a link to view the PDF the window goes black, then the spinning beachball a

  • Elliptic keys

    Hi I am trying to understand how to use ECC on a JavaCard. I have two questions regarding keys: 1. Javadoc for ECPrivateKey.getS(...) states that: Returns the value of the secret key in plaintext formWhat does that mean? Is not the value of the priva