Record Actual Working Times in CATS
Hi All,
I was wondering about the possibility of entering From and To time in CAT2 and let CATS calculate the daily/ total hours as per the times entererd by me.
Kindly share the possibilities for getting this requirement fullfilled.
Thanks,
Binu
Hi Doug and Raj,
Appreciate your input.
I had made the chnages thru CAC1. However, adding form and to time does add to the total time. For the total time to be added, you need to added hours along with from and to time.
I realised that thru standard I wont be able to auto calculate the total worked hours, hence tryin to achieve this requirement thru user exit.
This will reduce the time taken by Time Keepers to enter CATS for labours.
Regards,
Binu
Similar Messages
-
Record working times with CATS
Hello experts,
I am a beginner and I really need your help regarding this point. we want to start recording working times in our PPM system. In our system we have the integration of our ERP system with CATS. We can easily registrate in ERP working time on each personnel number, on a specific cost center for cProjects, on activity type special defined for each role. We also transfer this costs with resources to controlling - so, in ERP system everything works fine.
But, when I go to PPM system - I'm lost. all that I maintained on ERP system is available on Accounting Tab in Detail Data -which is good. But, I am not able to see the confirmed work on task level, tab "Dates and work" (see screenshot attached). Do I miss some customizing? or how should I proceed in order that this field "confirmed work" to be filled with the data registrated on ERP?
Thanks a lot!
Best regards,
Ruxandra P.Hello Cassoké,
have you enabled CATS-integration with cProjects in customizing?
1) Customizing CATS-Integration for your project type in PPM
Checkbox "Time/Travel Expenses Rec. CATS/SRM/FIN". Setting up "Accounting Integration".
2) Customizing CATS-Integration from CATS-profile-customizing
For your CATS Data Entry Profil you have to select the Checkbox "From Project Assignment" to get your worklist populated from cProjects (task is released, person assigned to task, etc...)
3) Only entries with status '30' from CATSDB will be transferred to DPR_CONF_LI by the report "DPR_CATS_CPR_TRANSF"
4) And of course, don't forget to uncheck "Test" :-) when running "DPR_CATS_CPR_TRANSF".
regards,
Peter -
Automator - Does Record Actually Work?
Never had much luck with Automator in Leopard, so I thought I'd give it a try in Snow Leopard doing what I thought would be an easy task using the Record feature.
The very first step was choosing the Apple Menu and then System Preferences…
I did more after that, but that's where it failed. When I play it back, the mouse cursor flies over to the Apple menu, goes down to Mac OS X Software… circles it and selects it, which opens Safari, of course.
I never recorded that. I went straight down to System Preferences. It's one thing for it to choose the wrong item, but the way the mouse cursor actually circles around the wrong item is baffling to me. (It's kind of creepy too.)
I've deleted the action and restarted Automator and I never can get it to work right.
Is what I'm trying to do not possible with Automator and that's why it's doing this??
I seem to remember long ago that you could record actions in AppleScript but often they didn't seem to work, is this the same?I've never been able to make the Record feature work correctly.
Eric -
Hello Guru's,
We are working on Time Management and for this we are using Working Time iView in Employee Self-Service role.
We are using Record Working Time and in this we record the working times and in the WBS Element cell there is option like F4 which opens up a popup and we can search for Projects (or WBS element) I want to make changes to that screen.
Please guide me where to do the changes for that?
I looked into the code but couldn't find.
Thanks in Advance for your time.
Regards,
PramodHi Pramod,
In order to modify the standard webdynpro record working time application , you have to do below steps.
Import source code ( XSS Components ) in NWDI
Create a track.
From Developer studio , connect to DTR and check out the source code .
Create the sap.com/ess~cat (DC') project in NWDS.
Modify the standard SAP code as per your needs .
Refer JDI Cookbook for ESS.doc for above tasks.
Thanks
Aravinda -
Record working time giving error
hi experts,
I have implemented one sap note 1017728.The description of the note is mentioned below:
The note is related to recording of working time in portal.The note is completely implemented in sap r/3 side ,but when the user is testing the same in the portal he is getting an error:
Page 1 from 21017728SAP Note Sep 19, 20075Version
Processor PRRUDRA
Processing Status In Process
Implementation Status Processor
Processing Status
Implementation Status
Language
Short Text
Component
THEMK_NAME
NOTE_TEXT
SAP Note
Version
DATELanguage E
Short Text CATS-WD:Duplicate line is created when template is saved.
Component CA-TS-IA-XS
Description
Symptom
In record working time a duplicate line is created when the template is saved or refreshed.This happens only when the
WBS element exists in the
data profile of the user.
Other terms
WBS, Save, template, refresh, duplicate, external, internal representation
Reason and Prerequisites
Program error.This issue happens because of the comparison between the
external and internal representation of the WBS element which are different.
Solution
Apply the attached correction instructions and also follow the below mentioned manual steps.
1.Create the method COMPARE_VALUES in the interface IF_XSS_CAT_UIA_TR_ACCESS.
The parameters for this method should be as follows.
PARAMETER Type Typing Method Associated Type Description FIELDNAME Importing Type FIELDNAME Fieldname
COMPARISON Importing Type Ref To DATA
RESULT Exporting Type BOOLE_D Data element for domain BOOLE: TRUE (='X') and FALSE (=' ')
Apply the corresponding Support Package to incorporate the relevant
changes.
Valid Releases:
Software Component Release
DSCR
RELEASE
RELEASE
RELEASE
DSCR
ALSTXT
ALETXT
SAP Note
Version
DATESAP R/3 Enterprise AddOn Human Resource
500
600
700
References to Relevant Support Packages:
Software Component Release Package Name:
SAP R/3 Enterprise AddOn Human Resource
600 SAPKGPHD19
Please suggest what to do.
regards
PrasunWhat about the cats profile. You need to check the cats profile. This error is of cats profile only.
if the profile is set accordingly then you wont get this error.
Its not a workflow issue
ask your wf consultant to check
The reason is that with tast 31000004 the rule is not defined.
Pl follow the step below and it will start working
1. run pftc transaction
2. select task type - standard task
3. put task 31000004
4. Click on change
5. Click on default rule tab
6. key value 00000168/00000157
7. compile it
8. go to additional data -> agent assignment-> maintain
9. select the task and click on attributes
10. select radio button general task
11. click on transfer
12. click on generate button then back
13. save
Message was edited by:
Barin Desai -
Unable to save data in record working time
Hi All,
I am working on ESS portal , when I try to record & save working time in portal , it throw an error message as 'Unable to save data'.
Can you plz assist me on this.
Usefull answers will be awarded.
Thanks,
NilimaHi ALL,
I'm too facing the same problem....usefull answers will be awarded. -
ESS Record Working Time .. Restrict Time Entry with Relative limit
Hi SDN Users,
We are using ERP 2005 and EP 7.0 with webdynpro java ESS applications for Time, Travel and Personal Information.
In the ESS Record Working Time application, a user can scroll to any date he wants in the past or in the future and record/edit working times. The application does not take into consideration the setting made in the time entry profile for relative limit.
Please suggest the best way I can include this in the webdynpro application for Record Working Time. (in other words I would like to restrict the users to NOT be able to scroll before and later than 1 week from the current week).
Can this be achieved by modifying any ABAP program / BADI / User Exit (OR)
Would this require Webdynpro Code changes ?
Please suggest some changes if any one has gone through a similar requirement.
Thank You,
SalomeHello Salome ,
You can use the following way out for this :
Lets say you want to allow one week before Begda , rest entries not allowed .
1. VcCatRecordentry View - make a method called dateValid(); this would return true / flase
we can get begda and endda.
wdcontext.currentcontextelement.gettimesheetBegda();
wdcontext.currentcontextelement.gettimesheetendda();
Date sysDate = new Date(Calendar.getInstance().getTimeInMillis());
int sysDay = sysDate.getDay();
2. Instantiate the Calendar Calendar c1 = new GregorianCalendar();
3. c1.add(c1.DATE,-7);
Date dt_end = c1.getTime();
now compare the dt_end to begda if it return >0
then in on action navigation nxt - report exception
this would work , since I did the same and it worked absolutely well for me .
Regards
Sandeep Sharma
Edited by: Sandeep Sharma on Jul 8, 2009 7:41 PM -
Approval of Working Times tasks show in UWL and shouldn't
Our employees use ESS to record their working time and the managers use MSS to approve that time. Occasionally the task Approval of Working Times, along with the sender date, name and a Cats attachment, appears in the managers UWL which makes it look like someone has time to be approved however, we do not go to the UWL to approve time. If this task is clicked on in the UWL a u201CService cannot be reached HTTP 404 u2013 Not foundu201D error is thrown. The send date of this task does correspond with a date when the employee entered time in ESS which the manager approved a few days later in MSS. So it appears that occasionally but not regularly or in any sort of pattern, time workflows to both MSS where the managers approve it and to the UWL where we donu2019t want it and sits there and drives the managers crazy. (Managers do go to the UWL to approve PCRs.) We have checked the workflow log and cannot see a split. How do we prevent the time approval from routing to the UWL?
Hi,
For me it seems that the the workflow should be turned off. There are ways to disable tasks from UWL, etc. (to not show them), but I would definately take a look to the CATS configurations in SPRO (unfortunately I don't remember the exact path, but it should not be too difficult to find). Basically there is place where you define that which workflow task is send to the manager when the employee releases the timesheet. You can perhaps remove this task from the configuration or perhaps there is some checkbox or something where you can turn of the workflow or whatever. Take look to this first. If you have CATS/HR people on your site, they will probably know what I am talking about.
Another perhaps good option could be that you do certain configurations for UWL and then the CATS approval application is opened when the managers click the item in UWL -. but I would first try to prevent the work item to be sent to the workflow at all, if it should not be sent there at the first place.
Regards,
Karri -
ESS & MSS - CATS regular/Record Working Time (Web Dynpro)
Hello,
SAP Library help (http://help.sap.com/saphelp_nw70/helpdata/en/ef/e18d3f7057eb0ce10000000a114084/frameset.htm) says the following:
Compared with CATS classic, the following constraints exist for this Web application:
Since CATS regular is an Employee Self-Service application, time administrators or data entry personnel cannot recording working time data.
Is there any workaround to solve it? I mean, we need to recording working time data centrally through ESS or MSS. That's possible? Any enhacement for that? No matter where to do it (ESS or MSS).
Thanks!
Miguel Angel.Hi Jigar,
That's almost exactly the requirement we need to implement!
Basically we need:
a. The employees with computer will record their own working times via ESS
b. For the employees without computer, their working times will be recorded via MSS by:
1. their org unit superior OR
2. someone like a time administrator defined in a custom list containing "employees for the time administrator".
I mean, someone called "time administrator" will record working time for a determined numbers of employees, but this "time administrator" is not the org unit superior. It's possible?? This is the mostly case.
Other requirements:
- Default time sheets and target hours for employees (for each employee the corresponding time sheet and target hours)
Thanks!!
Miguel Angel. -
Show Target hours in Recording Working Time(CATS) ESS version
Hi All,
I am trying to find out, if I can show the planned target hours on the web side of the Record Working Times component like it is shown in CAT2 as the first entry in the table. Is this possible ? Cna it be done by customizing somehow ?
Regards,
Paulo Poinha -- AccentureHi Paulo
I think the only way here would be to modify the standard Web Dynpro application directly in a JDI system. Check note 872892 for more info on this.
-Mikko -
We are facing issue in Record working time where there are users who belong to Org unit "70001573u201D. The chief position of org unit 70001573 is not occupied.
70001573 Org units are belonging to Org unit 70001601 which is occupied by EMMA POWELL.
So now the user whose belongs to 70001573 org unit, when they raise the record working time and release the same, Since 70001573 is not occupied by any person the request should go to Org Unit 70001601.
Currently the system not functioning as per the said requirement.
The user whose belong to 70001573 org unit, when they raise the record working time and release the same , the request not going any manager for the approval which shout not be case .
We even though implement Note 595073 - Workflow behavior with vacant chief positions
But we still are facing the issue.which TASK are you using for CATS? Also have you implemented the badi_cats_approval to check for this scenario ie vacant position etc or exit cats00008
also
The actual user to who's inbox the workitem should be routed to is only
determined in subsequent processing. Further, it is not mandatory that a
user is actually assigned. Please note that workitems in general may be
assigned to users, positions, work center etc. It is therefore by
intention that an error is not raised in the scenario under
consideration.
best option is BADI_CATS_APPROVAL -
How to hide a warning message in Record working time
Hi,
I am entering working hours which is greater than actual planning hours in Record Working Time and if i click on Review it throws warning like
Number of hours recorded 14,00 exceeds target hours 7,50
I dont want to show this warning message
Please let me know how to do that
Thanks
Bala DuvvuriNachy,
we can enhance this FM and use one of the user exits
CATS0001 CATS: Set up worklist
CATS0002 CATS: Supplement recorded data
CATS0003 CATS: Validate recorded data
CATS0004 CATS: Deactivate functions in the user interface
CATS0005 CATS: Customer field enhancements
CATS0006 CATS: Validate entire time sheet
CATS0007 CATS: Subscreen on initial screen
CATS0008 CATS: Determine workflow recipients for approval
CATS0009 CATS: Customer-Specific Text Fields in Data Entry Section
CATS0010 CATS: Customer-Specific Text Fields in Worklist
CATS0011 CATS: Customer functions
CATS0012 CATS: Subscreen on data entry screen
Thanks
Bala Duvvuri -
Record Working Time task merging multiple employees into a single task
Hi Everyone,
I'm going to check our configuration again to see if this is standard behaviour, config, or a problem with EHP 3's version of record working time.
So if employee A submits to manager A 1 task is created. Then when employee B submits to manager A we were expecting 2 tasks. However, we've been noticing manager A is getting 1 task with several line times.
We are ok with it merging tasks for employee A over multiple weeks. That is ideal actually.
The problem is that employee B's task should be separate.
Is there a quick fix?
Thanks,
Doug RobbinsI did try 31000007 and noticed the same behavior. Are you saying I should use an older version of the task to get back to grouped by employee number and not merging everything?
Well this causing us issues for a few reasons. The main one we developed a work around because we had to make sure emails were not being sent to 1 person for all the employees with their data. That would cause obvious security concerns.
But when forward tasks out managers want to be able to forward a specific employee's requests and not all of them. If some customers want this it should be a configurable option. To allow companies that want 1 single task or companies that want 1 task/employee/week.
This is inconsistent with the other portal applications. It would be nice if Germany picked 1 way of doing things or provided more configuration options. I'm hoping that OSS gives us something because merging everything into a single task for all employees is not the behaviour we want or expected.
I always appreciate your input because you have been very helpful as I learn about portal.
Thanks,
Doug R
Thanks you -
Header information not displaying in ABAP Webdynpro record working time
1. I am not seeing the header information, personnel number, name, cost center, on the ABAP Webdynpro record working time timesheet. When I run the timesheet profile in CAT2 the header contains the personnel number, name, cost center, but these do not display when the ABAP Webdynpro timesheet is run
2. Is there a version of the ABAP webdynpro timesheet that prompts for the personnel number, date and profile prior to executing the timesheet? I want to define an ESS link for managers to update timesheets of individual teammates. The teammate do not necessarily have to be their direct reportsHi David,
CATS Webdynpro application is a OIF fpm. Please check if you have performed the FPM IDR configuration properly.
In standard, the ESS CATS does not prompt for the personnel number except in CE scenario. In MSS addon, you have an option to launch the ESS CATS application on-behalf of the employee. Please refer to the sap library documentation.
Hope this helps,
Regards,
Roy -
Java.lang.NullPointerException in the record working time iview
Hello,
I am getting java.lang.NullPointerException when I try to access the record working time iView. Below is the full exception chain.
Please help me out in fixing the issue.
java.lang.NullPointerException
at com.sap.pcuigp.xssutils.pernr.FcEmployeeServicesInterface.getEmployeenumber(FcEmployeeServicesInterface.java:115)
at com.sap.pcuigp.xssutils.pernr.wdp.InternalFcEmployeeServicesInterface.getEmployeenumber(InternalFcEmployeeServicesInterface.java:175)
at com.sap.pcuigp.xssutils.pernr.wdp.InternalFcEmployeeServicesInterface$External.getEmployeenumber(InternalFcEmployeeServicesInterface.java:235)
at com.sap.xss.hr.cat.record.blc.RfcManager.init(RfcManager.java:791)
at com.sap.xss.hr.cat.record.blc.wdp.InternalRfcManager.init(InternalRfcManager.java:248)
at com.sap.xss.hr.cat.record.blc.FcCatRecordInterface.onInit(FcCatRecordInterface.java:344)
at com.sap.xss.hr.cat.record.blc.wdp.InternalFcCatRecordInterface.onInit(InternalFcCatRecordInterface.java:234)
at com.sap.xss.hr.cat.record.blc.wdp.InternalFcCatRecordInterface$External.onInit(InternalFcCatRecordInterface.java:484)
at com.sap.pcuigp.xssfpm.wd.FPMComponent$FPM.attachComponentToUsage(FPMComponent.java:922)
at com.sap.pcuigp.xssfpm.wd.FPMComponent$FPM.attachComponentToUsage(FPMComponent.java:891)
at com.sap.pcuigp.xssfpm.wd.FPMComponent$FPMProxy.attachComponentToUsage(FPMComponent.java:1084)
at com.sap.xss.hr.cat.record.vac.calendar.VcCatCalendar.onInit(VcCatCalendar.java:251)
at com.sap.xss.hr.cat.record.vac.calendar.wdp.InternalVcCatCalendar.onInit(InternalVcCatCalendar.java:194)
at com.sap.xss.hr.cat.record.vac.calendar.VcCatCalendarInterface.onInit(VcCatCalendarInterface.java:162)
at com.sap.xss.hr.cat.record.vac.calendar.wdp.InternalVcCatCalendarInterface.onInit(InternalVcCatCalendarInterface.java:146)
at com.sap.xss.hr.cat.record.vac.calendar.wdp.InternalVcCatCalendarInterface$External.onInit(InternalVcCatCalendarInterface.java:222)
at com.sap.pcuigp.xssfpm.wd.FPMComponent.doProcessEvent(FPMComponent.java:564)
at com.sap.pcuigp.xssfpm.wd.FPMComponent.doEventLoop(FPMComponent.java:438)
at com.sap.pcuigp.xssfpm.wd.FPMComponent.wdDoInit(FPMComponent.java:196)
at com.sap.pcuigp.xssfpm.wd.wdp.InternalFPMComponent.wdDoInit(InternalFPMComponent.java:110)
at com.sap.tc.webdynpro.progmodel.generation.DelegatingComponent.doInit(DelegatingComponent.java:108)
at com.sap.tc.webdynpro.progmodel.controller.Controller.initController(Controller.java:215)
at com.sap.tc.webdynpro.progmodel.controller.Controller.init(Controller.java:200)
at com.sap.tc.webdynpro.clientserver.cal.ClientComponent.init(ClientComponent.java:430)
at com.sap.tc.webdynpro.clientserver.cal.ClientApplication.init(ClientApplication.java:362)
at com.sap.tc.webdynpro.clientserver.session.ApplicationSession.initApplication(ApplicationSession.java:783)
at com.sap.tc.webdynpro.clientserver.session.ApplicationSession.doProcessing(ApplicationSession.java:303)
at com.sap.tc.webdynpro.clientserver.session.ClientSession.doApplicationProcessingPortal(ClientSession.java:761)
at com.sap.tc.webdynpro.clientserver.session.ClientSession.doApplicationProcessing(ClientSession.java:696)
at com.sap.tc.webdynpro.clientserver.session.ClientSession.doProcessing(ClientSession.java:253)
at com.sap.tc.webdynpro.clientserver.session.RequestManager.doProcessing(RequestManager.java:192)
at com.sap.tc.webdynpro.clientserver.session.core.ApplicationHandle.doProcessing(ApplicationHandle.java:73)
at com.sap.tc.webdynpro.portal.pb.impl.AbstractApplicationProxy.sendDataAndProcessActionInternal(AbstractApplicationProxy.java:864)
at com.sap.tc.webdynpro.portal.pb.impl.AbstractApplicationProxy.create(AbstractApplicationProxy.java:220)
at com.sap.portal.pb.PageBuilder.updateApplications(PageBuilder.java:1351)
at com.sap.portal.pb.PageBuilder.createPage(PageBuilder.java:356)
at com.sap.portal.pb.PageBuilder.init(PageBuilder.java:550)
at com.sap.portal.pb.PageBuilder.wdDoInit(PageBuilder.java:193)
at com.sap.portal.pb.wdp.InternalPageBuilder.wdDoInit(InternalPageBuilder.java:150)
at com.sap.tc.webdynpro.progmodel.generation.DelegatingComponent.doInit(DelegatingComponent.java:108)
at com.sap.tc.webdynpro.progmodel.controller.Controller.initController(Controller.java:215)
at com.sap.tc.webdynpro.progmodel.controller.Controller.init(Controller.java:200)
at com.sap.tc.webdynpro.clientserver.cal.ClientComponent.init(ClientComponent.java:430)
at com.sap.tc.webdynpro.clientserver.cal.ClientApplication.init(ClientApplication.java:362)
at com.sap.tc.webdynpro.clientserver.session.ApplicationSession.initApplication(ApplicationSession.java:783)
at com.sap.tc.webdynpro.clientserver.session.ApplicationSession.doProcessing(ApplicationSession.java:303)
at com.sap.tc.webdynpro.clientserver.session.ClientSession.doApplicationProcessingStandalone(ClientSession.java:741)
at com.sap.tc.webdynpro.clientserver.session.ClientSession.doApplicationProcessing(ClientSession.java:694)
at com.sap.tc.webdynpro.clientserver.session.ClientSession.doProcessing(ClientSession.java:253)
at com.sap.tc.webdynpro.clientserver.session.RequestManager.doProcessing(RequestManager.java:192)
at com.sap.tc.webdynpro.serverimpl.defaultimpl.DispatcherServlet.doContent(DispatcherServlet.java:62)
at com.sap.tc.webdynpro.serverimpl.defaultimpl.DispatcherServlet.doPost(DispatcherServlet.java:53)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.runServlet(HttpHandlerImpl.java:401)
at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.handleRequest(HttpHandlerImpl.java:266)
at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:386)
at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:364)
at com.sap.engine.services.httpserver.server.RequestAnalizer.invokeWebContainer(RequestAnalizer.java:1039)
at com.sap.engine.services.httpserver.server.RequestAnalizer.handle(RequestAnalizer.java:265)
at com.sap.engine.services.httpserver.server.Client.handle(Client.java:95)
at com.sap.engine.services.httpserver.server.Processor.request(Processor.java:175)
at com.sap.engine.core.service630.context.cluster.session.ApplicationSessionMessageListener.process(ApplicationSessionMessageListener.java:33)
at com.sap.engine.core.cluster.impl6.session.MessageRunner.run(MessageRunner.java:41)
at com.sap.engine.core.thread.impl3.ActionObject.run(ActionObject.java:37)
at java.security.AccessController.doPrivileged(Native Method)
at com.sap.engine.core.thread.impl3.SingleThread.execute(SingleThread.java:104)
at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java:176)Hi,
All the parameters are maintained in the SU01 but we are in strange situation here only for one test user id we are getting null pointer exception with the time sheet. We compared with the user id which is working there is no difference in the parameters
maintained. Please tell me why this behavior between two user ids.
These two are manager user ids. For employee user ids time sheet is working fine.
Maybe you are looking for
-
This has been happening for about a month now.
-
anybody facing issues on vodafone in bangalore for iphone 5s. horrible voice breaking occurs. Really frustrting as voice calls break and automaticcaly gets disconnected.
-
Processing Sequence issue of FTP protocol
Hi,we are using the standard SAP MDM data syndication mode which using SAP XI to publish the data to client system.In this sceanrio,we think the data files generated by MDM Syndication Server should be processed according to their time stamp in the f
-
TS3694 Error message re purchased music
I purchased some music from iTunes Store and it won't sync to my iPhone. Here's the error message: "Some of the items in the iTunes library were not copied to the iPhone because you are not authorized for them on this computer." Computer IS authorize
-
How to buy a monthly licence for illustrator?
I'd like to buy a temporary licence for Illustrator CC. Some weeks ago I sow a monthly license (about 36 dollars or euros, I don't remember); the licence I sow didn't contemplate an yearly fee and it could be interrupted in any moment. Does anybody k