如何与 Kronos API 进行通信?

2023-11-25

我有一个Kronos入口点http://kronos../wfc/XmlService我应该能够访问,但是当我在浏览器中打开它时,响应是:

<Kronos_WFC>
<Response Status="Failure" ErrorCode="1332" Message="WFP-01110 The MIME type of the request is invalid. Type Found: . Valid types: text/xml, application/xml."></Response>
</Kronos_WFC>

我应该做什么才能使用网络服务?

顺便说一句,我正在使用 C# 与服务器通信。


您可以使用 XML POST 请求与 Kronos API 进行通信。

The WFC v5.0 Developer's Toolkit Programmer's Guide1 provides a general guide for communicating with the Kronos API in various languages. The first chapter covers the XML API, which is how all API requests will be sent.

登录请求

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>

付款期总请求

此请求加载员工的工资期总计123452017年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 标签的完整列表可以在劳动力计时开发工具包参考指南 (需要登录).


您发送 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 开发人员工具包程序员指南的第 2 章包括在以下位置发送 XML 请求的示例:Java and 视觉基础。不过,我建议您研究特定于您所使用的任何语言的更新的 XML 或 HTTP 请求库。


有用的资源

  • Workforce Timekeeper v8.0.16 开发人员工具包参考指南 (需要登录)
  • WFC v5.0 开发人员工具包程序员指南
  • Kronos 产品的文档和服务包 (需要登录)
  • WFC-API.js - 用于向 WFC API 发送 XML 请求的 JavaScript
  • TimeCardView - Kronos API 的开源 Web UI
  • Kronos 社区论坛

脚注:

1: The quoted documentation was originally written for Kronos WFC 5.0 (API 1.0). While later versions should use the same API, I cannot guarantee accuracy for other versions. (See XML API version 6.3 to 8.0 upgrade)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何与 Kronos API 进行通信? 的相关文章

随机推荐

  • 更改 WinRT 中的 UI 文化

    是否可以动态更改 WinRT 中的 UI 文化 我发现了ApplicationLanguages PrimaryLanguageOverride en 但这仅在显示应用程序 UI 之前有效 而不是在显示之后 例如 我想通过设置更改 UI 语
  • 无法设置桌子高度[重复]

    这个问题在这里已经有答案了 我有一个简单的 html 表格 我无法设置该桌子的高度 我错过了什么吗 table border 1 height 10px tr td b Name b td tr tr td b Name b td tr t
  • 从 Julia 调用 Fortran 函数,返回数组:未知函数,段错误?

    我想从 Julia 调用 Fortran 库中的函数 在这种情况下 我有一个函数eye它接受一个 Integer 并返回一个二维整数数组 Fortran 模块被编译成共享库 使用 gfortran shared fPIC o matrix
  • 在 ubuntu 中导入 pyautogui 抛出 KEYERROR :DISPLAY

    Traceback most recent call last File 1 py line 1 in
  • 如何将值的数组参数输入到 Firebird 存储过程?

    我想输入一个数组参数ID 数为火鸟存储过程 INPUT LIST ID 1 2 12 45 75 45 我需要执行这个 SQL 命令 SELECT FROM CITY WHERE ID CITY IN INPUT LIST ID 是否可以
  • UIImage缩放后变得模糊。为什么?(iOS 5.0)

    UIImage缩放后总是变得模糊 如何才能保持清晰 UIImage rescaleImageToSize CGSize size CGRect rect CGRectMake 0 0 0 0 size width size height U
  • 从 ACF 相关图中提取置信区间值

    在 R 中 我们可以运行时间序列的 ACF 相关图 置信区间带将以浅蓝色绘制 但是当我拉取 ACF 对象的结构时 我找不到这些值 有谁知道如何提取置信区间带的值 e g List of 6 acf num 1 27 1 1 1 0 0645
  • 将 var 放入 jquery :gt()

    我有一个列表设置display none以及一些显示第 3 项的代码 HTML ul li item 1 li li item 2 li li item 3 li li item 4 li ul jquery var item 1 li g
  • 如何忽略 mod_rewrite 中的目录?

    我试图让 modrewrite 规则跳过该目录vip 我已经尝试了很多方法 如下所示 但没有成功 BEGIN WordPress
  • 将 VS Code Jupyter Notebook 中的输出折叠到可滚动窗口中

    有没有办法在 VS Code Jupyter Notebook 的可滚动窗口中显示输出 例如很长的数据帧 我知道按字母 o 可以折叠所有输出 但拥有可滚动窗口仍然更好 因为它允许您在引用其他窗口的同时检查输出 我也检查了这个link但无法让
  • 如何检查字符串中是否有特殊字符或者某个字符是否是GoLang中的特殊字符

    从输入读取字符串后 我需要检查其中是否有特殊字符 您可以使用 strings ContainsAny 来查看符文是否存在 package main import fmt strings func main fmt Println strin
  • numpy.genfromtxt 与 datetime.strptime 转换器

    我有与此类似的数据gist我正在尝试用 numpy 提取数据 我对 python 相当陌生 所以我尝试使用以下代码来做到这一点 import numpy as np from datetime import datetime convert
  • jQuery 追加如果不存在

    我想附加一个div仅当它尚不存在时 我正在尝试这样做 但它不起作用 method id on change function e if this find option selected data method column id 1 if
  • Java:静态类?

    我有一门充满实用功能的课程 实例化它的实例没有语义意义 但我仍然想调用它的方法 处理这个问题的最佳方法是什么 静态类 抽象的 标记为 Final 的类上的私有构造函数和静态方法
  • 为什么 ScheduledExecutorService 不根据需要生成线程?

    在我的应用程序中 我使用 ScheduledExecutorService 但仅生成一个线程来处理计划任务 这是因为 ScheduledExecutorService 不会生成线程来处理挂起的任务吗 下面是一个代码片段 它将仅输出 run
  • CUDA:为什么按位运算符有时比逻辑运算符更快?

    当我要从内核中榨取最后一点性能时 我通常会发现替换逻辑运算符 and with 按位运算符 and 使内核更快一些 这是通过查看 CUDA Visual Profiler 中的内核时间摘要观察到的 那么 为什么按位运算符faster比 CU
  • 如何更改shinydashboard中侧边栏的字体大小

    我是shinydashboard的新手 不熟悉CSS 谁能告诉我如何更改shinydashboard中侧边栏的字体大小 非常感谢 下面是我的代码 library shinydashboard library shiny ui lt dash
  • PHP 中的密码安全

    您认为哪种方法最安全 我从 php net 上取下了这些片段 我只是想知道 因为人们发布了自己的内容 而我只是无法理解为什么有些人是这样的 有人可以帮助我并告诉我更多关于这些的信息吗 哪个最安全 为什么 1 2
  • 为什么我们不能覆盖`||`和`&&`?

    大卫 A 布莱克他在书中指出 条件赋值运算符 以及它很少被发现的 表弟 两者都提供与伪操作符方法相同的快捷方式 但基于操作符 即 and 您无法覆盖它 为什么他特别提到我们不能覆盖 and 与对象上的其他一些运算符不同 对象的行为在逻辑上可
  • 如何与 Kronos API 进行通信?

    我有一个Kronos入口点http kronos wfc XmlService我应该能够访问 但是当我在浏览器中打开它时 响应是