您可以使用 XML POST 请求与 Kronos API 进行通信。
WFC v5.0 Developer's Toolkit Programmer's Guide 1提供了使用各种语言与 Kronos API 进行通信的一般指南。第一章介绍了 XML API,它是所有 API 请求的发送方式。
Kronos WFC 的标准 XML 登录请求。这必须在任何其他请求之前首先发送。
<Kronos_WFC version="1.0">
<Request Object="System" Action="Logon" Username="ValidUsername" Password="ValidPassword"/>
</Kronos_WFC>
回复:
<Kronos_WFC version="1.0" TimeStamp="11/15/2017 3:35PM GMT-05:00">
<Response Status="Success" Timeout="1800" PersonKey="123456" Object="System" Username="ValidUsername" Action="Logon" PersonNumber="112233">
</Response>
</Kronos_WFC>
注销请求
此注销请求将结束您的活动 Kronos 会话。
<Kronos_WFC version="1.0">
<Request Object="System" Action="Logoff"/>
</Kronos_WFC>
支付期间总请求
12345
此请求加载2017 年 10 月 20 日至 2017 年 10 月 27 日期间员工的工资期总计。
<Kronos_WFC version="1.0">
<Request Action="Load">
<Timesheet>
<Employee>
<PersonIdentity PersonNumber="12345"/>
</Employee>
<Period>
<TimeFramePeriod PeriodDateSpan="10/20/2017 - 10/27/2017"/>
</Period>
</Timesheet>
</Request>
</Kronos_WFC>
Kronos API 标签的完整列表可以在Workforce Timekeeping 开发者工具包参考指南中找到(需要登录)。
您发送 POST 请求的方法可能因您的语言而异。但是,XML 请求格式和 API 入口点 ( <ServerName>/wfc/XmlService
) 应该适用于所有语言。
下面是一个用于发送 Kronos 登录请求的 Python 3 脚本示例:
import requests
url = "http://localhost/wfc/XmlService"
headers = {'Content-Type': 'text/xml'}
data = """<Kronos_WFC version = "1.0">
<Request Object="System" Action="Logon" Username="SomeUsername" Password="SomePassword"/>
</Kronos_WFC>"""
# Login to Kronos and print response
session = requests.Session() # preserve login cookies across requests
response = session.post(url, data=data, headers=headers)
print(response.text)
WFC Developer's Toolkit Programmer's Guide 的第 2 章包括在Java和Visual Basic中发送 XML 请求的示例。但是,我建议查看特定于您使用的任何语言的更新的 XML 或 HTTP 请求库。
有用的资源
脚注:
1:引用的文档最初是为 Kronos WFC 5.0 (API 1.0) 编写的。虽然以后的版本应该使用相同的 API,但我不能保证其他版本的准确性。(参见XML API 版本 6.3 到 8.0 的升级)