本指南规定了如何将外部与会者与Concur expense中的费用条目相关联。假设您熟悉Concur费用和外部与会者的记录系统。它还假设您已经注册了应用程序,并且知道如何对SAP Concur平台进行API调用。
基URL: https://www.concursolutions.com/api/v3.0
对于某些类型的费用,如娱乐、商务餐饮和活动,提交费用报告的人员必须确定参与活动的所有人员。在Concur费用中,参与者被称为与会者.通常,与会者在SAP Concur之外的业务系统(如客户关系管理(CRM)应用程序)中被跟踪和管理。共同费用指的是这些与会者外部参与者.
要成功将与会者与费用条目关联,与会者和费用条目必须已存在于SAP Concur中。将外部与会者关联到费用条目包括以下步骤:
本节提供了将外部参与者关联到费用条目所需的SAP Concur API调用的详细信息。
以下是虚拟合作伙伴应用程序对SAP Concur平台进行的API调用序列。此应用程序有一个要与指定的费用条目关联的外部与会者集合。每个外部与会者都有一个由记录系统为与会者分配的唯一标识符,称为外部ID.
该应用程序有一个外部参与者的集合,它想关联到一个指定的费用条目。每个外部与会者都有一个唯一的标识符,由记录系统分配给与会者,称为外部标识符。
事件顺序如下:
下面几节提供每个API调用的详细信息。
识别费用分录的方法取决于费用分录是需要创建还是已经存在。无论您是创建一个新的费用条目还是搜索一个现有的条目,都可以使用GET Reports API和GET Report Details API来获取费用条目的惟一标识符。
创建新的费用分录时,SAP Concur平台会将费用分录的唯一标识符返回给开发人员。在某些情况下,开发人员需要创建费用条目。例如,在CRM应用程序中,有一个名为Sales Call的对象,它允许销售专业人员记录他们为潜在机会进行的销售拜访中涉及的费用和联系人。在这种情况下,开发人员在Concur expense中创建一个费用条目,以在销售电话中记录费用。有关如何在Concur expense中创建新费用条目的详细信息,请参阅以下API:
在某些情况下,费用分录已经存在。例如,在CRM应用程序中,有一个称为事件的对象,它包括联系人,但不包括费用。在这种情况下,与事件相关的费用作为导入的信用卡费用计入Concur费用。在这种情况下,您可以使用Expense Report web服务中的搜索功能来查找与事件关联的相关费用条目。搜索现有费用条目时,SAP Concur平台会将费用条目的唯一标识符返回给开发人员。
要确定SAP Concur是否有外部与会者的记录,请使用存储在SAP Concur中的外部与会者外部ID搜索词向与会者资源发出GET HTTPS请求:
收到https://www.concursolutions.com/api/v3.0/expense/attendees?externalid= {unique_identifier_for_external_attendee}HTTP/1.1批准:OAuth{此处有有效的OAuth访问令牌}内容类型:{application/json或application/xml到这里}
地点:
externalID记录系统为外部与会者分配的唯一标识符记录。如果存在具有此外部ID的与会者,则响应将包括该与会者的详细信息,包括其ID。
以下示例介绍如何在SAP Concur之外的业务系统中查找ID为5575592349的外部与会者的SAP Concur记录。
向与会者终结点发出GET HTTP请求:
收到https://www.concursolutions.com/api/v3.0/expense/attendees?externalid=5575592349HTTP/1.1批准:OAuth PBA8NW1QGJD4AZP9SGXTI374C=内容类型:应用程序/json
如果SAP Concur有外部与会者的记录,其在SAP Concur中的唯一标识符将在ID元素中返回,您可以跳到步骤4。如果SAP Concur没有记录,Items元素将为空,您需要按照步骤3中的规定在SAP Concur中添加外部与会者。
当SAP Concur有外部参与者的记录时,成功的响应如下所示:
{“项目”:[{“与会者类型代码”:“HCP”,“与会者类型ID”:“niJ6GaAD60bAetp3vtK6$sGRgCi1s”,“名字”:“埃米莉”,“姓氏”:“卡斯”,“中首字母”:无效的,“后缀”:无效的,“公司”:“生命护理行动中心”,“标题”:“妇产科”,“外部的”:"5575592349",“HasExceptionsPrevYear”:错误的,“HasExceptionsYTD”:错误的,“上一年度总金额”:0,“TotalAmountYTD”:0,“版本号”:1,“OwnerName”:“系统、一致”,“OwnerLoginID”:“并行系统”,“货币代码”:“美元”,“客户om1”:无效的,“Custom2”:无效的,“Custom3”:无效的,“海关4”:无效的,“海关5”:无效的,“海关6”:无效的,“海关7”:无效的,“海关8”:无效的,“海关9”:无效的,“海关10”:无效的,“海关11”:无效的,“Custom12”:无效的,“Custom13”:无效的,“Custom14”:无效的,“Custom15”:无效的,“Custom16”:无效的,“海关17”:无效的,“Custom18”:无效的,“Custom19”:无效的,“海关20”:无效的,“海关21”:无效的,“海关22”:无效的,“海关23”:无效的,“Custom24”:无效的,“Custom25”:无效的,“ID”:“nmBwIaoDagUkD8kXZGIl7B170uK9tE6pk”,“URI”:“https://rqa3-cb.concurtech.net/api/v3.0/expense/attendees/nmBwIaoDagUkD8kXZGIl7B170uK9tE6pk”}],“下一页”:无效的}
如果参与者在SAP Concur中不存在,向参会者资源发出POST请求,在SAP Concur中创建一个新的参与者:
帖子https://www.concursolutions.com/api/v3.0/expense/attendeesHTTP/1.1批准:OAuth{此处有有效的OAuth访问令牌}内容类型:{application/json或application/xml到这里}
请求内容体包括关于参与者的详细信息。例如:
{“与会者类型ID”:“与会者类型的ID”,“名字”:“泰勒”,“姓氏”:“埃尔南德斯”,“中首字母”:“E”,“公司”:“生命护理行动中心”,“标题”:“麻醉学”,“外部的”:"6164704601"}
要确定需要在POST请求的内容体中为AttendeeTypeID元素输入的值,请向AttendeeTypes资源发出GET请求。例如:
收到https://www.concursolutions.com/api/v3.0/expense/attendeetypesHTTP/1.1批准:OAuth PBA8NW1QGJD4AZP9SGXTI374C=内容类型:应用程序/json
在本例中,我们正在为Business Guest参与者类型查找参与者类型ID。一个成功的回应是这样的:
{“项目”:[{“姓名”:“商务客人”,“代码”:“BUSGUEST”,“参与者表单”:“gWgSQwsOy6EcM7sy3esMk25cqEZM9yf9gPg”,“DuplicateSearchFields”:[“标题”,“公司”,“OwnerEmpName”,“名字”,“姓氏”],“ConnectorID”:"",“允许人工入职人员”:符合事实的,“AllowAttendeeCountEditing”:错误的,“ID”:“gWjUHBxUY4iQLA9KTkbtUD6pc”,“URI”:"https://www.concursolutions.com /api/v3.0/费用/与会者类型/gWjUHBxUY4iQLA9KTkbtUD6pc”},{“姓名”:“雇员”,“代码”:“员工”,“参与者表单”:“gWgSQwsOy6EcM7sy3esMk25cqEZM9yf9gPg”,“DuplicateSearchFields”:[“标题”,“公司”,“OwnerEmpName”,“名字”,“姓氏”],“ConnectorID”:"",“允许人工入职人员”:符合事实的,“AllowAttendeeCountEditing”:错误的,“ID”:“gWjYs6nUm ptrgvkjvwYt2B3SN美元”,“URI”:“https://www.concursolutions.com/api/v3.0/expense/attendeetypes/gWjYs6nUm ptrgvkjvwYt2B3SN美元”}],“下一页”:无效的}
现在,我们可以向/api/v3.0/expense/attendeers端点发出POST请求:
帖子https://www.concursolutions.com/api/v3.0/expense/attendeesHTTP/1.1批准:OAuth PBA8NW1QGJD4AZP9SGXTI374C=内容类型:应用程序/json
在这个请求机构中:
{“与会者类型ID”:“gWjUHBxUY4iQLA9KTkbtUD6pc”,“名字”:“泰勒”,“姓氏”:“埃尔南德斯”,“中首字母”:“E”,“公司”:“生命护理行动中心”,“标题”:“麻醉学”,“外部的”:"6164704601"}
一个成功的回应是这样的:
{“ID”:“NMBWIAODAGUVXYGYZP$pWlPZOvpzUfsM”,“URI”:"https://www.concursolutions.com/api/v3.0/expense/attendees/nmBwIaoDagUvXYaxgYZp$pWlPZOvpzUfsM“}
获得参与者的ID后,向Entry attendee Associations资源发出POST请求。要进行此调用,与OAuth 2.0访问令牌关联的用户帐户必须具有SAP Concur帐户,该帐户必须具有以下角色之一:专业Web服务管理员或标准Web服务管理员。
这是调用的样子:
帖子https://www.concursolutions.com/api/v3.0/expense/entryattendeeassociations?user={URL\u编码的\u登录\u ID\u用于\u登录\u ID\u用于\u所有者\u费用项目}HTTP/1.1批准:OAuth{此处有有效的OAuth访问令牌}内容类型:应用程序/json接受:应用程序/json...{“EntryID”:“n4MrUpcqIH3ot4bFvFCNXCpk7TJOphLTH”,“与会者ID”:“nmBwIaoDagUkD8kXZGIl7B170uK9tE6pk”}
在本例中,POST请求的内容主体具有具有唯一标识符的费用条目n4MrUpcqIH3ot4bFvFCNXCpk7TJOphLTH
以及具有唯一标识符的与会者nmBwIaoDagUkD8kXZGI l7B170uK9tE6pk
.