Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

InTime provides a SOAP Web Service Interface that allows two-way flow of information to external systems. This enables automated and efficient transfer of data to and from your other systems reducing effort and duplication.  

...

try{

//Attempt to read the placement first to see if it already exists

IntimeServiceV2_0Stub.GetPlacementByExternalId getPlacementRequest=new IntimeServiceV2_0Stub.GetPlacementByExternalId();

getPlacementRequest.setId("WEB-PLC-001");

getPlacementRequest.setToken(ticket);

GetPlacementByExternalIdResponse placementResponse=stub.getPlacementByExternalId(getPlacementRequest);

IntimeServiceV2_0Stub.Placement placement=placementResponse.get_return();

if (placement == null) {

    //placement does not exist

    placement = new IntimeServiceV2_0Stub.Placement();

    placement.setExternalId("WEB-PLC-001");

}


//Consultant

IntimeServiceV2_0Stub.Consultant consultant= new IntimeServiceV2_0Stub.Consultant();

IntimeServiceV2_0Stub.GetConsultantsByExternalId getConsultantRequest=new IntimeServiceV2_0Stub.GetConsultantsByExternalId();

getConsultantRequest.setId("WEB-CON01");

getConsultantRequest.setToken(ticket);   //from authenticate call

GetConsultantsByExternalIdResponse consultantResponse=stub.getConsultantsByExternalId(getConsultantRequest);

IntimeServiceV2_0Stub.Consultant[] cons=consultantResponse.get_return();IntimeServiceV2_0Stub.Consultant consultant= new IntimeServiceV2_0Stub.Consultant();

if (cons== null || cons.size() < 1) {

    //consultant did not exist    

    consultant.setExternalId("WEB-CON01");

    consultant.setFirstname("Web");

    consultant.setLastname("Consultant");

    consultant.setEmail("C@c.com");

    IntimeServiceV2_0Stub.CreateOrUpdateConsultant createConsultantRequest = new IntimeServiceV2_0Stub.CreateOrUpdateConsultant();

    createConsultantRequest.setToken(ticket);

    createConsultantRequest.setConsultant(consultant);

    IntimeServiceV2_0Stub.CreateOrUpdateConsultantResponse createConsultantResult=stub.createOrUpdateConsultant(createConsultantRequest);

    if (result createConsultantResult != null) {

System.out.println("Created/updated Placement Consultant with ID:" + resultcreateConsultantResult.get_return());

    }

} else {

    consultant = cons[0];

}

placement.setConsultant(consultant);


//Client

IntimeServiceV2_0Stub.Consultant consultant Client client = new IntimeServiceV2_0Stub.ConsultantClient();

consultant.setExternalId("CONS_001");

consultant.setEmail("y@y.com");

consultant.setFirstname("WebIntimeServiceV2_0Stub.GetClientsByExternalId getClientRequest=new IntimeServiceV2_0Stub.GetClientsByExternalId();

getClientRequest.setId("WEB-CLI01");consultant

getClientRequest.setLastnamesetToken("Consultant"ticket);placement.setConsultant(consultant   //from authenticate call

GetClientsByExternalIdResponse clientResponse=stub.getClientsByExternalId(getClientRequest);

IntimeServiceV2_0Stub.Client client = new IntimeServiceV2_0Stub.Client();

client.setExternalId("CLIENT_001");

client.setName("Web Client 001");

client.setTermsTemplateName("Default Charge Terms");

placement.setClient(client);

IntimeServiceV2_0Stub.Manager manager = new IntimeServiceV2_0Stub.Manager();

manager.setExternalId("MGR_001");

manager.setEmail("z@z.com");

manager.setFirstname("Web");

manager.setLastname("Manager");

manager.setClientExternalId("CLIENT_001");

placement.setManager(manager);

placement[] clients=clientResponse.get_return();

if (clients== null || clients.size() < 1) {

     //client did not exist    

    client.setExternalId("WEB-CLI01");   

    client.setName("Web Client 001");

    client.setTermsTemplateName("Default Charge Terms");

    //populate other fields

    IntimeServiceV2_0Stub.CreateOrUpdateClient createClientRequest = new IntimeServiceV2_0Stub.CreateOrUpdateClient();

    createClientRequest.setToken(ticket);

    createClientRequest.setClient(client);

    IntimeServiceV2_0Stub.CreateOrUpdateClientResponse createClientResult=stub.createOrUpdateClient(createClientRequest);

    if (createClientResult != null) {

System.out.println("Created/updated Client with ID:" + createClientResult.get_return());

    }

} else {

    client = clients[0];

}

placement.setClient(client);


//Manager

IntimeServiceV2_0Stub.Manager manager = new IntimeServiceV2_0Stub.Manager();

IntimeServiceV2_0Stub.GetManagersByExternalId getManagerRequest=new IntimeServiceV2_0Stub.GetManagersByExternalId();
getManagerRequest.setId("WEB-MAN01");
getManagerRequest.setToken(ticket);   //from authenticate call
GetManagersByExternalIdResponse managerResponse=stub.getManagersByExternalId(getManagerRequest);
IntimeServiceV2_0Stub.Manager[] mgrs=managerResponse.get_return();
if (mgrs== null || mgrs.size() < 1) {
    //manager did not exist    
    manager.setExternalId("WEB-MAN01");
    manager.setFirstname("Web");
    manager.setLastname("Manager");
    manager.setEmail("m@m.com");
    manager.setClient(client);
    IntimeServiceV2_0Stub.CreateOrUpdateManager createManagerRequest = new IntimeServiceV2_0Stub.CreateOrUpdateManager();
    createManagerRequest.setToken(ticket);
    createManagerRequest.setManager(manager);
    IntimeServiceV2_0Stub.CreateOrUpdateManagerResponse createManagerResult=stub.createOrUpdateManager(createManagerRequest);
    if (createManagerResult != null) {
        System.out.println("Created/updated Manager with ID:" + createManagerResult.get_return());
    }
} else {
    manager = mgrs[0];
}
placement.setManager(manager);


//Worker

IntimeServiceV2_0Stub.GetWorkersByExternalId getWorkerRequest=new IntimeServiceV2_0Stub.GetWorkersByExternalId();
getWorkerRequest.setId("WEB-WKR01");
getWorkerRequest.setToken(ticket);   //from authenticate call
GetWorkersByExternalIdResponse workerResponse=stub.getWorkersByExternalId(getWorkerRequest);
IntimeServiceV2_0Stub.Worker[] wkrs=workerResponse.get_return();
if (wkrs== null || wkrs.size() < 1) {
    //worker did not exist    
    worker.setExternalId("WEB-WKR01");
    worker.setFirstname("Web");
    worker.setLastname("Worker");
    worker.setEmail("w@w.com");
    //populate other details


    IntimeServiceV2_0Stub.CreateOrUpdateWorker createWorkerRequest = new IntimeServiceV2_0Stub.CreateOrUpdateWorker();
    createWorkerRequest.setToken(ticket);
    createWorkerRequest.setWorker(worker);
    IntimeServiceV2_0Stub.CreateOrUpdateWorkerResponse createWorkerResult=stub.createOrUpdateWorker(createWorkerRequest);
    if (createWorkerResult != null) {
        System.out.println("Created/updated Worker with ID:" + createWorkerResult.get_return());
    }
} else {
    worker = wkrs[0];
}
placement.setWorker(worker);


//set/update other placement fields

placement.setContractedHours(new BigDecimal(37.5));

placement.setCurrencyForCharge("GBP");

placement.setCurrencyForPayExpenses("GBP");

placement.setCurrencyForPayTimesheets("GBP");

placement.setChargeableExpenseApprovalRoute("Client Manager Approval");

placement.setNonChargeableExpenseApprovalRoute("Auto Approval");

placement.setTimesheetApprovalRoute("Auto Approval");

placement.setExpenseTemplate("Default");

placement.setHolidayAccuralRate(0.12);

placement.setJobDescription("Web Placement 1");

placement.setJobTitle("Web Test 001");

placement.setNoCommunications("");

placement.setPurchaseOrderNum("po_num");

placement.setSalesCostCentre("scc");

placement.setTimesheetDateCalculatorName("weekly");

placement.setPerm(false);


Calendar cal1 = Calendar.getInstance(java.util.TimeZone.getTimeZone("GMT"));

cal1.set(20172021, 3, 1, 0, 0, 0);

placement.setStart(cal1);

Calendar cal2 = Calendar.getInstance(java.util.TimeZone.getTimeZone("GMT"));

cal2.set(20192023, 3, 1, 0, 0, 0);

placement.setEnd(cal2);


IntimeServiceV2_0Stub.Rate[] rates = new IntimeServiceV2_0Stub.Rate[1];

IntimeServiceV2_0Stub.Rate rate1 = new IntimeServiceV2_0Stub.Rate();

rate1.setName("Standard Hours");

rate1.setPay(new BigDecimal(9.99));

rate1.setCharge(new BigDecimal(11.11));

rate1.setPayElementCode("001");

rate1.setPeriod("Hourly");

rate1.setPeriodDuration(60);

rate1.setPriorityOrder(0);

rate1.setTimePattern("DEFAULT");

rate1.setTimesheetFields("START_FINISH_BREAK");

rate1.setSelectableByWorkers(true);

rates[0] = rate1;

placement.setRates(rates);


IntimeServiceV2_0Stub.CreateOrUpdatePlacement request = new IntimeServiceV2_0Stub.CreateOrUpdatePlacement();

request.setToken(ticket);

request.setPlacement(placement);


IntimeServiceV2_0Stub.CreateOrUpdatePlacementResponse result=stub.createOrUpdatePlacement(request);

if (result != null) {

System.out.println("Created/updated Placement with ID:" + result.get_return());

}

} catch (java.lang.Exception e) {

System.out.println("Exception occurred: " + e);

}


...

FieldConstant

Comment

Notes
Client


invoice period0Weekly

1Two-Weekly

2Four-Weekly

3Calendar Monthly

44-4-5




Worker


workerTypepayeFor PAYE Workers

ltdFor Ltd Company Workers

external-contractorFor Non Ltd Company Workers

cisFor CIS Workers

umbFor Workers operating through an UmbrellaYou must specify the umbrella against the worker, otherwise the worker will appear as LTD.




cisBusinessTypeSoleTrader


Company


Trust


Partnership





cisPercentage0


20


30





paymentFrequencyweekly


monthly


<InPay Payroll Name>If InPay connected, for PAYE workers, use the InPay Payroll Name




timesheetsOnInvoices0Timesheets On Invoices

1Timesheets Not On Invoices




paperOnInvoices-1Agency Default

0No Attachments

1Attach Paper Timesheets

2Attach Expense Group Paper

4Attach Expense Receipts Paper

<sum of the above>Attach the appropriate paperFor example, 5 to attach timesheets and receipts




genderM


F


UUnkown




LTD invoice period0Weekly

1Two-Weekly

2Four-Weekly

3Calendar Monthly

44-4-5




Payment Methodbacs


cheque


cash


chaps


ach


international


building society





Placement


layoutstandard
See Maintaining Placements

calendar





timesheetDateCalculatorweekly
See Maintaining Placements. You can see all possible values for this in the ui.

monthly


<many more>See UI for all options.




Rates


period60For hourly rates entered in hours format (hours only or start, break, finish).

1440For fixed rates of a specified duration entered in decimal format (decimal or tickbox)




periodDuration<any integer>The duration in minutes for the fixed rate (e.g. 60 for hours, 480 for a day).




timePatterndefaultWill use the selected default time pattern

<any string>The string should match the name of a time pattern in the system




timesheetFieldsSTART_FINISH_BREAKEnter start, break, finishOnly when period above is 60

HOURSEnter hours onlyOnly when period above is 60

DECIMALEnter time as a decimalOnly when period above is 1440

DAYTickbox only (equivalent to entering decimals as 1.00)Only when period above is 1440