0

我正在尝试在 Concur 中创建一个用户。我参考了这篇文章来获取 Xml 格式。

这是 http POST 请求(使用 POSTMAN),

要求

POST https://www.concursolutions.com/api/user/v1.0/users HTTP/1.1
Authorization: OAuth 0_xxxxxxxtoF3bsxxxBrNwzxxxx=
Accept: application/xml
Content-Type: application/xml; charset=utf-8
Host: www.concursolutions.com
Content-Length: 227
Expect: 100-continue

<Batch xmlns='http://www.concursolutions.com/api/user/2011/02'><UserProfile><EmpId>E0005</EmpId><FeedRecordNumber>1</FeedRecordNumber><LoginId>myuser1@mycompany.com</LoginId><Password>myP@@sword</Password></UserProfile></Batch>

回复

000000B2 <Error><Message>batch element is missing. Please check your
request.</Message><Server-Time>2016-03-28T19:34:02</Server-Time><Id>XXXXXXXX-AACE-4A49-8EE6-669EF3XXXXX</Id></Error>
00000000

为什么它抱怨缺少“批处理”元素,但显然它在内容中?有没有我可以参考的官方文档来获取创建用户的 XML 格式?

注意:我已经在其中标记了 C#,因为我正在尝试让我的 C# 代码为此工作。我已经编写了代码来生成上述请求并获得相同的响应。

注意:在参考帖子中,<EmpId>标签未关闭。当我第一次尝试时,我收到一条错误消息,提示“请求 XML 无效。:第 1 行位置 242 上的 'EmpId' 开始标记与 'UserProfile' 的结束标记不匹配。第 1 行,位置 328。”。所以我在我的 XML 中纠正了这个错误。然后我收到批处理元素丢失错误。因此,我并不完全相信 XML 结构。

4

1 回答 1

0

我从Concur Developer forum得到了答案。问题是它需要区分大小写的“批处理”元素。这不是我提到的 XML 格式的唯一问题。

这是用于在 V3 中添加用户的有效 XML Schema,

<batch xmlns="http://www.concursolutions.com/api/user/2011/02" 
xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
<UserProfile xmlns="http://www.concursolutions.com/api/user/2011/02" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
<FeedRecordNumber>1</FeedRecordNumber>
<Active>Y</Active>
<LoginId>FirstLast@contoso.com</LoginId>
<FirstName>First</FirstName>
<LastName>Last</LastName>
<CtryCode>US</CtryCode>
<LocaleName>en_US</LocaleName>
<CrnKey>USD</CrnKey>
<EmpId>0001</EmpId>
<EmailAddress>FirstLast@contoso.com</EmailAddress>
<Password>password</Password>
<IsTestEmp>N</IsTestEmp>
<ExpenseApprover>Y</ExpenseApprover>
<Custom21>US</Custom21>
<ExpenseUser>Y</ExpenseUser>
<InvoiceApprover>N</InvoiceApprover>
<InvoiceUser>N</InvoiceUser>
<LedgerName>DEFAULT</LedgerName>
<LedgerCode></LedgerCode>
<LocalName>en_US</LocalName>
</UserProfile>
</batch>
于 2016-03-29T22:30:05.653 回答