How to save time entry, Gen3, PutTimeEntry?

  • 1
  • Question
  • Updated 1 month ago
  • Acknowledged
  • (Edited)

All we really want is the ability to
submit a time entry, so we’d need:

1.       Way to identify a project task (Is a task code globally unique)? Or do we need client code + project code + task code

2.       Specify a date, number of hours, comment

I found the PutTimeEntry service, which seems like it should be the service call we want, except i ran into a couple of issues:

1. I don't see any way to specify a client/project/task
2. I have no idea what this required field is asking for: unitOfWorkId

Thanks!

Klaus
Photo of Rubba, Klaus

Rubba, Klaus

  • 2 Posts
  • 0 Reply Likes

Posted 11 months ago

  • 1
Photo of Aashnee Kamboj

Aashnee Kamboj, Community Moderator

  • 1522 Posts
  • 106 Reply Likes
Hi Klaus,

Thank you for using the Replicon Community!

The client/project/task can be added via the custom metadata section in the PutTimeEntry service. You will be asked to put up the Key URI and then expand the values to put in the URI/Name of the client/project/task.The key URI however, has to be found out and is not same as the project/task/client URI. The key uri ideally confirms whether a project/task/client value is being input instead of which project/task/client value is provided. I will have a support rep contact you in order to help you find the same.

As for your second question, the unitofworkid is a temporary correlation ID called by few service calls. They can be anything as per your choice but have to be unique for each entry that you make. E.g. 12345, 12346 and so on..

Thanks,
Aashnee
Photo of Rubba, Klaus

Rubba, Klaus

  • 2 Posts
  • 0 Reply Likes
Ok, it's almost making sense now. Ideally, i'd rather not use URI's as they seem to be a pain to find. So instead I'd rather user the loginName rather than user URI, and say task code instead of task URI.

Looking at the generated request i've got so far, it seems to use 'slug' instead of 'code', or maybe i'm out to lunch and that's not what slug refers to at all. Don't see any slug on a project task.

Using URI's i could find, i was able to submit the below request, and it actually came back with "All access checks failed to authorize operation 'PutTimeEntry' ". So not sure if this would work if i had proper authorization.

Crazy thing is, I was able to do a PutStandardTimesheet2 request, which happily blew away my entire existing timesheet :(

I've been able to find most URI's through other calls, shouldn't I be able to find the keyUri without your help also?

btw: we enabled a permission called something like punchtime entry, but that didn't  help. Couldn't find a permission for editing time entry, i.e. Action(urn:replicon:time-entry-action:edit-time-entry)

Also, i'm starting to wonder, is 'PutTimeEntry' just for editing a time entry? Or also for POST'ing a new entry?

Edit: we added edit timesheet permission to supervisor role, and now i'm back to just getting an internal server error. Why wouldn't a user have permissions to edit their own time entry? makes no sense...
{
  "timeEntry": {
    "target": null,
    "user": {
      "uri": "urn:replicon-tenant:arcg3prod:user:520",
      "loginName": "krubba",
      "parameterCorrelationId": null
    },
    "entryDate": {
      "year": 2017,
      "month": 8,
      "day": 28
    },
    "timeAllocationTypeUris": [],
    "interval": null,
    "customMetadata": [
      {
        "keyUri": null,
        "value": {
          "uri": "urn:replicon-tenant:arcg3prod:task:9253",
          "slug": null,
          "bool": null,
          "date": null,
          "number": null,
          "text": "Is this the comment?",
          "time": {
            "hour": "1",
            "minute": "30",
            "second": "0"
          },
          "calendarDayDurationValue": null,
          "workdayDurationValue": null,
          "dateRange": null,
          "collection": []
        }
      }
    ],
    "extensionFieldValues": []
  },
  "unitOfWorkId": "123"
}
(Edited)
Photo of Aashnee Kamboj

Aashnee Kamboj, Community Moderator

  • 1522 Posts
  • 106 Reply Likes
Hi Klaus,

Apologies for the delay in responding. 

We did understand from the email conversation of yours with our support rep that you are on the Gen 3 version of the Replicon Timesheet. The puttimeentry service ideally functions for the latest version (custom timesheet format). We would recommend you to upgrade to the latest version. 

As for your query on updating the timesheet, yes it is possible however, it involves a series of service requests. You will have to Perform some Get calls to retrieve the existing timesheet data, add the entries that have to be added and then go with the Put call.

The new timesheet format does have a lot of scope of customization as well. Let us know a convenient time to reach you and we will be glad to talk things through!

Thanks,
Aashnee
Photo of Barker, Dan

Barker, Dan

  • 9 Posts
  • 1 Reply Like
I would love to get some details on how to add a comment. The code above does not add a comment when putting a string in the text section. Where would we put a comment.