Невозможно отправить отпуск через API расчета зарплаты PyXero
Я проверил свои данные постов с помощью функции предварительного просмотра Xero API и успешно отправил отпуск. Аналогично следующему (идентификаторы разные):
<LeaveApplication>
<EmployeeID>9f8f9336-4a24-4309-8498-d7de6fd10ef3</EmployeeID>
<LeaveTypeID>e7c26052-46d9-4611-85b7-850eb3041d82</LeaveTypeID>
<Title>Seth Test Leave</Title>
<StartDate>2019-01-13T00:00:00</StartDate>
<EndDate>2019-01-18T00:00:00</EndDate>
</LeaveApplication>
Я использую следующий код Python в записной книжке Jupyter:
data = {'EmployeeID': '9f8f9336-4a24-4309-8498-d7de6fd10ef3',
'LeaveTypeID': 'e7c26052-46d9-4611-85b7-850eb3041d82',
'Title': 'Annual Leave',
'StartDate': datetime(2019, 1, 14),
'EndDate': datetime(2019, 1, 14)}
xero.payrollAPI.leaveapplications.save_or_put(data)
Я получаю следующий вывод на консоль, но никаких признаков того, что отпуск был отправлен, когда я просматриваю заявки на отпуск через портал Xero онлайн.
('https://api.xero.com/payroll.xro/1.0/LeaveApplications',
{},
'post',
{'xml': b'<EmployeeID>9f8f9336-4a24-4309-8498-d7de6fd10ef3</EmployeeID>
<LeaveTypeID>e7c26052-46d9-4611-85b7-850eb3041d82</LeaveTypeID>
<Title>Annual Leave</Title>
<StartDate>2019-01-14T00:00:00</StartDate>
<EndDate>2019-01-14T00:00:00</EndDate>'},
None,
False)
Принимая во внимание, что мой POST работает с Xero API Previewer и его можно увидеть на портале Xero. Кроме того, при просмотре истории в программе предварительного просмотра API я вижу, что это "GET", а не "POST". У меня сложилось впечатление, что "save_or_put" будет делать POST и обновлять существующую запись или создавать новую запись. Любые предложения о том, почему это не пост?