Time sheet, rates, date dependent

I am trying to figure out the best database design for the following;
I have individuals (stored in Agents table) that enter their billing or time worked each day for different projects. Now we have different rates that we pay based on the person and what
the project is. And we also have to account for individuals getting pay cuts or raises over time. So....
I have the following tables;
  Agents - table of each person
  Projects - table of all projects we work
  Rates - table with AgentID, ProjectID, StartDate, EndDate, Rate
  Billing - table with Date, AgentID, ProjectID
So my current implementation a billing entry must be made by an agent, and I have to create a join to the rates table based on AgentID, ProjectID, and Date between StartDate and EndDate.
This just seems incredibly ugly and all the billing data can be easily changed if a change were made to the rates. I'm assuming most time sheets calculate the total rate and store it in the table so it never changes unless someone specifically goes back to
update the data? I'm just wondering if there is a better method for tracking this sort of data. Thanks

Based on your current database structure 
Agent -   Unique record for each person
Project - Unique record for each project
Rates -   Unique record for agent and project
Billing -   Unique record for agent and project
So basically, you don't need billing table if you are fine with change in billing rate in the middle of any project.  
But if you have to track the Employee cost per project then you might have to keep an entry in Billing table with billing start date, billing end date and active flag (kind of
SCD type 2).
Just a random thought again, you can also have a rate table only and make a new row every time rate is changed or billing is changed. but remember, if rate is changed then you must change the rate of existing employee in that current project (i.e. new row
for all those employee also)

Similar Messages

  • Transferring Time Sheet Data to Controlling/Financial Module

    All:
    I have an issue I am entering data via CAT2 and have supplied a receiver cost center, using wage type MI10 and entered times 8 hours per day.  I have entered salary data into the basic pay via Personnel Management.  I have approved the time sheet data but it appears that it is only relevant for transfer to the HR module and not the CO module.  Any help would be greatly appreciated.  I am attempting to use these modules to record actual hours worked and associated wage rates then post entries to CO for reporting.
    Thanks,
    Jeremy

    Sorry I wasn't clear it appears that it is not available for transfer to controlling.  It appears it is only building the data structures for transfer in HR and not CO.  I get the message "No data for transfer" it appears once I approve the time sheet data it creates intermediate structures/table for transferring to other modules and is only creating the structure/table for HR.  I can successfully transfer data to HR but not CO.  What data on the time sheet entry triggers it to build the CO structures/tables.
    Thanks,
    Jeremy

  • Data Entry Profile for Time Sheet Entry on Internet / Intranet

    hello gurus,
    i am trying to configure Time sheet entry on portal via internet / intranet. I did come across articles on it but am confused as to how to create Date Entry Profile as it seems to be the first step in configuring the time sheet.
    Also mt OT calculation shud be based on the hrs input in the time sheet. How can this be achieved
    Any inputs on this pls??
    rgds,

    At a very high level you will need to:
    1. Create the Data Entry Profiles.  These are the templates that employees see when they go into their timesheet, and there are lots of options depending on what other modules and/or further processing is required for the time entries.
    SAP Customizing Implementation Guide > Cross-Application Components > Time Sheet > Specific Settings for CATS regular > CATS regular > Record Working Time > Set Up Data Entry Profiles
    2. Define the field selection. i.e. the columns that will be visible in the timesheet, and which ones are required/read only
    SAP Customizing Implementation Guide > Cross-Application Components > Time Sheet > Specific Settings for CATS regular > CATS regular > Record Working Time > Define Field Selection
    3. If you are using manager approvals, you will then need to set up the approval views.  The default ones may be sufficient for your requirements or they may need tweaking slightly
    SAP Customizing Implementation Guide > Cross-Application Components > Time Sheet > Specific Settings for CATS regular > CATS regular > Approve Working Time
    4. In order to valuate the entries you will then need to set up a Time Evaluation schema; this will analyse the time entries and convert them into wage and/or time types which can then be processed by Payroll for payment.  There are standard schema which can be used as a basis, but you will need to tailor them to meet your requirements.
    SAP Customizing Implementation Guide > Time Management > Time Evaluation
    For all of these sections it is worth reading the SAP help material either in the IMG itself or in the online SAP library
    e.g. http://help.sap.com/saphelp_erp60/helpdata/en/64/400b2b470211d189720000e8322d00/frameset.htm for CATS,
    http://help.sap.com/saphelp_erp60/helpdata/en/8a/9868bc46c411d189470000e829fbbd/frameset.htm for Time Evaluation

  • Execution time seems to be dependent on data when it shouldn't

    Hi, consider the code shown below.  It generates a 2D array of random values between 0 and 1 and then builds an array with values of 0 or 1 depending on whether the random value was greater than a predefined threshold or not. 
    I expected the running time to be independent of the value of the threshold, but there is significant difference (see results below). 
    Any idea why this would be?  Also note the difference in running time when autoindexing and when using an array-greater-than.

    I would say the way to determine whether it is the branch-prediction (i.e. sequence of comparison) or the 64/32 bit effect (actual data dependence independent of the order of comparisons) that is causing this behaviour is through the following experiment:
    Create 2 large equal-sized arrays with random values:  the first with random values between 0 and 1, and the second with the first half filled with random values between 0 and 0.5 and the second half with random values between 0.5 and 1.  Then time how long it takes to perform a comparison on the whole array with a threshold of 0.5. 
    So if the cause is branch prediction, the second array will threshold faster than the first as the branch prediction will be correct in all but 2 comparisons (at the start of the array and at the middle off the array).
    However, if the cause is the 64/32 bit suggestion, both arrays will threshold in the same amount of time.
    Well here are my results:
    On my PC there is no significant running time difference whether it is single our double precision. 
    There is a large difference though when I run the two same size arrays and compare them to 0.5 - the one with the first half containing random values smaller than 0.5 and the second half random values larger than 0.5 runs 25% faster than one with random values between 0 and 1.
    Thus my verdict - it is branch prediction that is the cause of the data-dependent running times. 

  • Find out the time sheet data entry fields

    hi
    this is satish,
              i inserted the time sheet values in the time sheet data entry view. now the my problem is where these field values store in which tables.
    thanks for all

    Hi:
    I need to transfer CATS data to FICO. I found out about transaction CAT7.
    At the moment, I have 2 issues:
    1) My CATSDB data have status "30". However, there is no corresponding entries in CATSCO. Could you tell me what I need to do to ensure that CATSCO has values?
    2) My FICO system is running on 4.6C whereas my HR system is running on ECC6.0. Can CAT7 still works?
    I appreciate your response.
    Thanks,
    Ash

  • MSS Approve Time sheet data error

    Hi,
    In MSS Approve time sheet data I get a
    The ASSERT condition was violated., error key: RFC_ERROR_SYSTEM_FAILURE:com.sap.tc.webdynpro.modelimpl.dynamicrfc.WDDynamicRFCExecuteException: The ASSERT condition was violated., error key: RFC_ERROR_SYSTEM_FAILURE
    at com.sap.tc.webdynpro.modelimpl.dynamicrfc.DynamicRFCModelClassExecutable.execute(DynamicRFCModelClassExecutable.java:101)
    at com.sap.xss.hr.cat.approve.blc.FcCatApprove.rfcExecute(FcCatApprove.java:307)
    at com.sap.xss.hr.cat.approve.blc.FcCatApprove.init(FcCatApprove.java:276)
    at com.sap.xss.hr.cat.approve.blc.wdp.InternalFcCatApprove.init(InternalFcCatApprove.java:243)
    at com.sap.xss.hr.cat.approve.blc.FcCatApproveInterface.onInit(FcCatApproveInterface.java:136)
    at com.sap.xss.hr.cat.approve.blc.wdp.InternalFcCatApproveInterface.onInit(InternalFcCatApproveInterface.java:133)
    In spro I have configured
    Approval Mode MSS_LTV_EE
    CATS Approval MSS_LCA_EE
    Request Mode ESS_LEA_EE
    Team View Mode MSS_LTV_EE
    I have added pernr and name in the fields selection
    Following is the st22 dump
    Error analysis 
    The following checkpoint group was used: "No checkpoint group specified" 
    If in the ASSERT statement the addition FIELDS was used, you can find 
    the content of the first 8 specified fields in the following overview: 
    " (not used) " 
    " (not used) " 
    " (not used) " 
    " (not used) " 
    " (not used) " 
    " (not used) " 
    " (not used) " 
    " (not used) " 
    Regards
    Srini

    Srini,
    This thread might be handy.
    ESS, Employee Search error: The ASSERT condition was violated
    Good Luck.
    Sandeep Tudumu

  • Approve Time Sheet data

    Hi friends,
    I am getting problem when trying to "Approve Time Sheet data " from MSS. I am not using Work flow but the link given in MSS Team. When i am clicking on the link  the first page is comming and i can see the requested working time for approval. But when i click on the review an error occured. the details is:
    Exception condition "NOT_FOUND" raised., error key: RFC_ERROR_SYSTEM_FAILURE
    From R3 by ST22 i checked the error. Its like...
    Runtime Errors OBJECTS_OBJREF_NOT_ASSIGNED
    Exception CX_SY_REF_IS_INITIAL
    What happened?
    Error in the ABAP Application Program
    The current ABAP program "CL_MSS_CAT_APPR_APPLICATION===CP" had to be
    terminated because it has
    come across a statement that unfortunately cannot be executed.
    I can approve the working time from R3 by cats_appr_lite transaction.
    Please help.
    Thanks,
    Sekhar

    Hi Mani,
    It is a good thing you have found this post, as it demonstrates that you put in some effort to search for similar posts to your problem.
    However, if the post you found is like 3 years old and there are no replies, chances are the guy did not find a solution or isn't visiting here anymore. So it might be a good idea to raise a new post, to increase you chances of getting some answers.

  • Data Source 0ca_ts_is_1(Time sheet data (Approved)) configaration problem

    Hi Experts,
      we need to extract the data from <b>0ca_ts_is_1</b>(Time sheet data (Approved) but the problem is the no of records in the table <b>CATSDB</b> is <b>849</b> but in RSA3 (0ca_ts_is_1) there are <b>500</b> records only.
    What could be the resons?.
    could you kindly suggest me any thing.
    Thanks,
    Shaliny. M

    no
    i have increased the no of records and also calls
    still i am getting only 500+ records only
    thanks,
    shaliny

  • 0ca_ts_is_1(Time sheet data (Approved) No of records are wrong

    Hi Experts,
    we need to extract the data from 0ca_ts_is_1(Time sheet data (Approved) but the problem is the no of records in the table CATSDB  with status is 849 but in RSA3 (0ca_ts_is_1) there are 500 records only.
    could you kindly suggest me any OSS notes please.
    Thanks,
    Shaliny. M

    Hi Shaliny,
    in BW you will see only the time sheet data wich are ok, that means , which have been confirmed (Approve?)
    I hope this helps you

  • Data Source 0ca_ts_is_1(Time sheet data (Approved)) config prob(urgent)

    Hi Experts,
    we need to extract the data from 0ca_ts_is_1(Time sheet data (Approved) but the problem is the no of records in the table <b>CATSDB</b> is <b>849</b> but in <b>RSA3</b> (0ca_ts_is_1) there are <b>500</b> records only.
    What could be the resons?.
    could you kindly suggest me any thing.
    Thanks,
    Shaliny. M

    ..the data may be summarized
    what is the level on granularity in CATSDB
    Is all the fields in this table are seen in the datasource 0ca_ts_is_1
    If some fields are missing the data is summarized to the next available level of granularity
    You can see the combined totals of table contents and RSA3 total contents of certain key figures to ensure this

  • ESS Time Sheet Entry Error - "critical error, data has been lost"

    I tried saving his time sheet data on the ESS . I noticed that when I went back to check on the draft, Draft has no longer exists  or had any information. When I tried to find the draft, I got the message "critical error, data has been lost"
    Can any one help on this issue if faced.

    Hello,,
    Are you able to enter time on the backend via Cat2, for example?
    Please provide further details for the community to assist you.
    Details like:
    - Which ERP version are you running?
    - Do I have any dumps or logs on ST22 and SLG1?
    Thank you.

  • Date Calculation on Time Sheet

    Hi,  I am working on getting our time sheets out of excel and into a fillable pdf.  I have had noproblems with any part of it until I got to the date calculations.
    I have looked at other threads and tried the recomendations but couldn't make it work.
    This is what I need.
    I have a field called weekending, this field is set to a date format of mm/dd/yyyy and is keyed by the employee when they are working on the time sheet.
    The calcuation I need is for the dates for each day of the week.  Our payweek starts on Sunday and ends on Saturday.  So the calcuation for our first day of the week, Sunday would need to be the date entered in the field weekending - 6 days , for Monday weekending - 5 days, Tuesday weekending - 4 days, Wednesday weekending - 3 days, Thursday weekending - 2 days, Friday weekending - 1 days, Saturday weekending - 0 days.
    Each day of the week has it own field and needs its own calculation.  Please help, I am using Acrobat 9 Standard.

    lj,
    Pages 08 has a feature, gone in Numbers 09, that allows you to fill an entire column or row with the same formula by creating it in a Header. What happens, as I recall, it that your formula is copied to all the body cells and disappears from the header cell in which it was created.
    It seems to me that you have begun with a Header Column, but you are using it as a normal column and are surprised when it acts like a Header column is designed to do.
    My first suggestion is that you read the User Guide regarding Headers and Footers. Then Select Column B, click the menu triangle in the label and select Add Column Before. Next copy your content from your Column A and Paste it into your now blank Column B. Lastly, delete Column A so that you no longer have a Header Column. That should eliminate the Header behavior that is tripping you up.
    Jerry

  • Employee Search in MSS Approve Time Sheet Data

    Employee Search in MSS Approve Time Sheet Data (Net Weaver Portal 2004s)
    In MSS we need upper level managers to be able to approve time for employees who reside in lower level org units and are not the manager’s direct reports.  This is usually the case when the chief the employees do report to directly is absent.
    In the MSS Team view the links General Information, Compensation Information and Personnel Development have an Employee Search iView with a dropdown containing options for Direct Reports, Employees from Organizational Structure, Employees from Organizational Units and Employee Search.  We have been told that in previous versions of MSS that functionality existed in the Approve Time Sheet Data iView as well which would appear to solve our problem.
    Is this functionality available in Approve Time Sheet Data and if so how is it configured?  Or is there another way (other than manipulating the org structure) for managers to view non-direct reports and approve their time?

    Hi Mani,
    It is a good thing you have found this post, as it demonstrates that you put in some effort to search for similar posts to your problem.
    However, if the post you found is like 3 years old and there are no replies, chances are the guy did not find a solution or isn't visiting here anymore. So it might be a good idea to raise a new post, to increase you chances of getting some answers.

  • Transfer the data time sheet to CO

    Hello
    I transfer the datas time sheet to CO.
    I want to use BW for the reporting but I don't see the datas, which extractor can use for extract these datas to BW...
    Have you got an idea?
    Thank you
    Jeremy

    Hello
    When I use the the extractor CATTS , I can see the datas.
    But after the transfer the dats to CO, I don't see the datas in the cube
    I don't see the details per personn in CO
    Have you got an idea?
    Thank you
    Jeremy

  • Monthly Time Sheet Dates

    I am building a monthly time sheet. I need all the dates to populate once the initial date is chosen by the user. I have this working properly for each month that has 31 days. For months with 30 days, it populates the first day of the next month. How do I make sure that the only the dates for the month selected are populated?
    Any help is appreciated!
    Tracy

    Hello!
    Thank you for your response, but I can not get it to function properly.
    I added a text field to calculate the number of days.  Here is the script I placed in the text field:
    form1.commentSub.NoofDays::calculate - (FormCalc, client)
    var StartDate = Ref(SubPg1.tableSub.Table1.Row1.Date1)
    var EndDate = Ref(SubPg1.tableSub.Table1.Row2.Date2)
    var MonthStart = Date2Num(Date1.formattedValue, "MM/DD/YYYY")
    var nMonth = Num2Date(MonthStart, "MM")                                                                                                     ; Current Month
    var nDay = Num2Date(MonthStart, "DD")                                           ; Current Day
    var nYear = Num2Date(MonthStart, "YYYY")                                        ; Current Year
    var nFirstDay = Date2Num(Concat(nMonth,"01", nYear), "MM/DD/YYYY")        ; First Day in the current month
    var nLastDay
    var nCountDays = nFirstDay
    StartDate.rawValue = Num2Date(nFirstDay, "MM/DD/YYYY") ; Set first day of month as start date
    ; Determine number of days in the current month
    var nMonthCheckStart = Num2Date(nFirstDay, "MM")
    var nMonthCheckEnd
    for i=0 upto 31 step 1 do
              nCountDays = nCountDays + 1
              nMonthCheckEnd = Num2Date(nCountDays , "MM")
              if(nMonthCheckStart == nMonthCheckEnd) then
                        nLastDay = nCountDays
              endif
    endfor
    EndDate.rawValue = Num2Date(nLastDay, "MM/DD/YYYY") ; Set lastday of month as end date
    $.rawValue = Num2Date(nLastDay, "DD") ; Set number of days this month
    In the date field where the user selects the date. I have this:
    form1.SubPg1.tableSub.Table1.Row1.Date1::exit - (FormCalc, client)
    var dayNum = Date2Num($.formattedValue,"MM/DD/YY")
    Row2.Date2.rawValue = Num2Date(dayNum+1,"MM/DD/YY")
    Row3.Date3.rawValue = Num2Date(dayNum+2,"MM/DD/YY")
    Row4.Date4.rawValue = Num2Date(dayNum+3,"MM/DD/YY")
    Row5.Date5.rawValue = Num2Date(dayNum+4,"MM/DD/YY")
    Row6.Date6.rawValue = Num2Date(dayNum+5,"MM/DD/YY")
    Row7.Date7.rawValue = Num2Date(dayNum+6,"MM/DD/YY")
    Row8.Date8.rawValue = Num2Date(dayNum+7,"MM/DD/YY")
    Row9.Date9.rawValue = Num2Date(dayNum+8,"MM/DD/YY")
    Row10.Date10.rawValue = Num2Date(dayNum+9,"MM/DD/YY")
    Row11.Date11.rawValue = Num2Date(dayNum+10,"MM/DD/YY")
    Row12.Date12.rawValue = Num2Date(dayNum+11,"MM/DD/YY")
    Row13.Date13.rawValue = Num2Date(dayNum+12,"MM/DD/YY")
    Row14.Date14.rawValue = Num2Date(dayNum+13,"MM/DD/YY")
    Row15.Date15.rawValue = Num2Date(dayNum+14,"MM/DD/YY")
    Row16.Date16.rawValue = Num2Date(dayNum+15,"MM/DD/YY")
    Row17.Date17.rawValue = Num2Date(dayNum+16,"MM/DD/YY")
    Row18.Date18.rawValue = Num2Date(dayNum+17,"MM/DD/YY")
    Row19.Date19.rawValue = Num2Date(dayNum+18,"MM/DD/YY")
    Row20.Date20.rawValue = Num2Date(dayNum+19,"MM/DD/YY")
    Row21.Date21.rawValue = Num2Date(dayNum+20,"MM/DD/YY")
    Row22.Date22.rawValue = Num2Date(dayNum+21,"MM/DD/YY")
    Row23.Date23.rawValue = Num2Date(dayNum+22,"MM/DD/YY")
    Row24.Date24.rawValue = Num2Date(dayNum+23,"MM/DD/YY")
    Row25.Date25.rawValue = Num2Date(dayNum+24,"MM/DD/YY")
    Row26.Date26.rawValue = Num2Date(dayNum+25,"MM/DD/YY")
    Row27.Date27.rawValue = Num2Date(dayNum+26,"MM/DD/YY")
    Row28.Date28.rawValue = Num2Date(dayNum+27,"MM/DD/YY")
    Row29.Date29.rawValue = Num2Date(dayNum+28,"MM/DD/YY")
    Row30.Date30.rawValue = Num2Date(dayNum+29,"MM/DD/YY")
    Row31.Date31.rawValue = Num2Date(dayNum+30,"MM/DD/YY")
    Row1.Day1.rawValue = Num2Date(dayNum,"EEE")
    Row2.Day2.rawValue = Num2Date(dayNum+1,"EEE")
    Row3.Day3.rawValue = Num2Date(dayNum+2,"EEE")
    Row4.Day4.rawValue = Num2Date(dayNum+3,"EEE")
    Row5.Day5.rawValue = Num2Date(dayNum+4,"EEE")
    Row6.Day6.rawValue = Num2Date(dayNum+5,"EEE")
    Row7.Day7.rawValue = Num2Date(dayNum+6,"EEE")
    Row8.Day8.rawValue = Num2Date(dayNum+7,"EEE")
    Row9.Day9.rawValue = Num2Date(dayNum+8,"EEE")
    Row10.Day10.rawValue = Num2Date(dayNum+9,"EEE")
    Row11.Day11.rawValue = Num2Date(dayNum+10,"EEE")
    Row12.Day12.rawValue = Num2Date(dayNum+11,"EEE")
    Row13.Day13.rawValue = Num2Date(dayNum+12,"EEE")
    Row14.Day14.rawValue = Num2Date(dayNum+13,"EEE")
    Row15.Day15.rawValue = Num2Date(dayNum+14,"EEE")
    Row16.Day16.rawValue = Num2Date(dayNum+15,"EEE")
    Row17.Day17.rawValue = Num2Date(dayNum+16,"EEE")
    Row18.Day18.rawValue = Num2Date(dayNum+17,"EEE")
    Row19.Day19.rawValue = Num2Date(dayNum+18,"EEE")
    Row20.Day20.rawValue = Num2Date(dayNum+19,"EEE")
    Row21.Day21.rawValue = Num2Date(dayNum+20,"EEE")
    Row22.Day22.rawValue = Num2Date(dayNum+21,"EEE")
    Row23.Day23.rawValue = Num2Date(dayNum+22,"EEE")
    Row24.Day24.rawValue = Num2Date(dayNum+23,"EEE")
    Row25.Day25.rawValue = Num2Date(dayNum+24,"EEE")
    Row26.Day26.rawValue = Num2Date(dayNum+25,"EEE")
    Row27.Day27.rawValue = Num2Date(dayNum+26,"EEE")
    Row28.Day28.rawValue = Num2Date(dayNum+27,"EEE")
    Row29.Day29.rawValue = Num2Date(dayNum+28,"EEE")
    Row30.Day30.rawValue = Num2Date(dayNum+29,"EEE")
    Row31.Day31.rawValue = Num2Date(dayNum+30,"EEE")
    It still adds the beginning date for the following month if the month selected only has 30 days.  
    I am not sure how to attach the file here for you to see.
    Tracy

Maybe you are looking for