mirror of
https://github.com/simstudioai/sim.git
synced 2026-09-24 15:45:35 +08:00
fix(sap-concur): correct Cash Advance v4.1 paths, add SCIM filter param
- Update Cash Advance create/get/issue tools from /cashadvance/v4/ to /cashadvance/v4.1/ to match the live API - Add filter query param to list_users (SCIM v4.1 supports filtering by userName, employeeNumber, externalId) - Regenerate docs MDX Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.7
parent
b74fc86f80
commit
6f8b574af0
@@ -67,7 +67,7 @@ Approve an expense report as a manager (PATCH /expensereports/v4/reports/\{repor
|
||||
|
||||
### `sap_concur_associate_attendees`
|
||||
|
||||
Associate attendees with an expense (POST /expensereports/v4/users/\{userId\}/context/TRAVELER/reports/\{reportId\}/expenses/\{expenseId\}/attendees).
|
||||
Associate attendees with an expense (POST /expensereports/v4/users/\{userId\}/context/\{contextType\}/reports/\{reportId\}/expenses/\{expenseId\}/attendees).
|
||||
|
||||
#### Input
|
||||
|
||||
@@ -96,7 +96,7 @@ Associate attendees with an expense (POST /expensereports/v4/users/\{userId\}/co
|
||||
|
||||
### `sap_concur_create_cash_advance`
|
||||
|
||||
Create a cash advance (POST /cashadvance/v4/cashadvances).
|
||||
Create a cash advance (POST /cashadvance/v4.1/cashadvances).
|
||||
|
||||
#### Input
|
||||
|
||||
@@ -686,7 +686,7 @@ Get a budget item header by ID (GET /budget/v4/budgetItemHeader/\{id\}).
|
||||
|
||||
### `sap_concur_get_cash_advance`
|
||||
|
||||
Get a cash advance (GET /cashadvance/v4/cashadvances/\{cashadvanceId\}).
|
||||
Get a cash advance (GET /cashadvance/v4.1/cashadvances/\{cashAdvanceId\}).
|
||||
|
||||
#### Input
|
||||
|
||||
@@ -988,7 +988,7 @@ Get expense itemizations (GET /expensereports/v4/users/\{userId\}/context/\{cont
|
||||
| `password` | string | No | Password \(only for password grant\) |
|
||||
| `companyUuid` | string | No | Company UUID for multi-company access tokens |
|
||||
| `userId` | string | Yes | Concur user UUID |
|
||||
| `contextType` | string | Yes | Access context \(TRAVELER per the v4 spec\) |
|
||||
| `contextType` | string | Yes | Access context: TRAVELER, MANAGER, or PROXY |
|
||||
| `reportId` | string | Yes | Expense report ID |
|
||||
| `expenseId` | string | Yes | Expense ID |
|
||||
|
||||
@@ -1426,7 +1426,7 @@ Get a single user by UUID (GET /profile/identity/v4.1/Users/\{id\}).
|
||||
|
||||
### `sap_concur_issue_cash_advance`
|
||||
|
||||
Issue a cash advance (POST /cashadvance/v4/cashadvances/\{cashadvanceId\}/issue).
|
||||
Issue a cash advance (POST /cashadvance/v4.1/cashadvances/\{cashAdvanceId\}/issue).
|
||||
|
||||
#### Input
|
||||
|
||||
@@ -1651,7 +1651,7 @@ List expenses on a report (GET /expensereports/v4/users/\{userId\}/context/\{con
|
||||
| `password` | string | No | Password \(only for password grant\) |
|
||||
| `companyUuid` | string | No | Company UUID for multi-company access tokens |
|
||||
| `userId` | string | Yes | Concur user UUID |
|
||||
| `contextType` | string | Yes | Access context \(TRAVELER per the v4 spec\) |
|
||||
| `contextType` | string | Yes | Access context: TRAVELER, MANAGER, or PROXY |
|
||||
| `reportId` | string | Yes | Expense report ID |
|
||||
|
||||
#### Output
|
||||
@@ -2081,10 +2081,10 @@ List travel profile summaries (GET /api/travelprofile/v2.0/summary). LastModifie
|
||||
| `username` | string | No | Username \(only for password grant\) |
|
||||
| `password` | string | No | Password \(only for password grant\) |
|
||||
| `companyUuid` | string | No | Company UUID for multi-company access tokens |
|
||||
| `lastModifiedDate` | string | Yes | Required ISO 8601 date \(YYYY-MM-DD or full timestamp\) |
|
||||
| `lastModifiedDate` | string | Yes | Required UTC datetime in YYYY-MM-DDThh:mm:ss format |
|
||||
| `page` | number | No | 1-based page number |
|
||||
| `itemsPerPage` | number | No | Items per page \(max 200\) |
|
||||
| `active` | string | No | Status filter \(sent as Status query param\): "Active" or "Inactive". Omit for all. |
|
||||
| `active` | string | No | Active filter \(sent as Active query param\): "1" \(active\) or "0" \(inactive\). Omit for all. |
|
||||
| `travelConfigs` | string | No | Comma-separated travel configuration ids |
|
||||
|
||||
#### Output
|
||||
@@ -2238,6 +2238,7 @@ List Concur user identities (GET /profile/identity/v4.1/Users).
|
||||
| `companyUuid` | string | No | Company UUID for multi-company access tokens |
|
||||
| `count` | number | No | Max number of users to return \(default 100, max 1000\) |
|
||||
| `cursor` | string | No | SCIM v4.1 pagination cursor returned by a prior call |
|
||||
| `filter` | string | No | SCIM filter expression. Supported attributes: userName, employeeNumber, externalId. |
|
||||
| `attributes` | string | No | Comma-separated list of attributes to include in the response |
|
||||
| `excludedAttributes` | string | No | Comma-separated list of attributes to exclude from the response |
|
||||
|
||||
@@ -2318,7 +2319,7 @@ Recall a submitted expense report (PATCH /expensereports/v4/users/\{userId\}/con
|
||||
|
||||
### `sap_concur_remove_all_attendees`
|
||||
|
||||
Remove all attendees from an expense (DELETE /expensereports/v4/users/\{userId\}/context/TRAVELER/reports/\{reportId\}/expenses/\{expenseId\}/attendees).
|
||||
Remove all attendees from an expense (DELETE /expensereports/v4/users/\{userId\}/context/\{contextType\}/reports/\{reportId\}/expenses/\{expenseId\}/attendees).
|
||||
|
||||
#### Input
|
||||
|
||||
|
||||
@@ -11570,11 +11570,11 @@
|
||||
},
|
||||
{
|
||||
"name": "Associate Attendees",
|
||||
"description": "Associate attendees with an expense (POST /expensereports/v4/users/{userId}/context/TRAVELER/reports/{reportId}/expenses/{expenseId}/attendees)."
|
||||
"description": "Associate attendees with an expense (POST /expensereports/v4/users/{userId}/context/{contextType}/reports/{reportId}/expenses/{expenseId}/attendees)."
|
||||
},
|
||||
{
|
||||
"name": "Remove All Attendees",
|
||||
"description": "Remove all attendees from an expense (DELETE /expensereports/v4/users/{userId}/context/TRAVELER/reports/{reportId}/expenses/{expenseId}/attendees)."
|
||||
"description": "Remove all attendees from an expense (DELETE /expensereports/v4/users/{userId}/context/{contextType}/reports/{reportId}/expenses/{expenseId}/attendees)."
|
||||
},
|
||||
{
|
||||
"name": "List Report Comments",
|
||||
@@ -11666,15 +11666,15 @@
|
||||
},
|
||||
{
|
||||
"name": "Create Cash Advance",
|
||||
"description": "Create a cash advance (POST /cashadvance/v4/cashadvances)."
|
||||
"description": "Create a cash advance (POST /cashadvance/v4.1/cashadvances)."
|
||||
},
|
||||
{
|
||||
"name": "Get Cash Advance",
|
||||
"description": "Get a cash advance (GET /cashadvance/v4/cashadvances/{cashadvanceId})."
|
||||
"description": "Get a cash advance (GET /cashadvance/v4.1/cashadvances/{cashAdvanceId})."
|
||||
},
|
||||
{
|
||||
"name": "Issue Cash Advance",
|
||||
"description": "Issue a cash advance (POST /cashadvance/v4/cashadvances/{cashadvanceId}/issue)."
|
||||
"description": "Issue a cash advance (POST /cashadvance/v4.1/cashadvances/{cashAdvanceId}/issue)."
|
||||
},
|
||||
{
|
||||
"name": "List Itineraries (Trips)",
|
||||
|
||||
@@ -9,7 +9,7 @@ import type { ToolConfig } from '@/tools/types'
|
||||
export const createCashAdvanceTool: ToolConfig<CreateCashAdvanceParams, SapConcurProxyResponse> = {
|
||||
id: 'sap_concur_create_cash_advance',
|
||||
name: 'SAP Concur Create Cash Advance',
|
||||
description: 'Create a cash advance (POST /cashadvance/v4/cashadvances).',
|
||||
description: 'Create a cash advance (POST /cashadvance/v4.1/cashadvances).',
|
||||
version: '1.0.0',
|
||||
params: {
|
||||
datacenter: {
|
||||
@@ -67,7 +67,7 @@ export const createCashAdvanceTool: ToolConfig<CreateCashAdvanceParams, SapConcu
|
||||
headers: () => ({ 'Content-Type': 'application/json' }),
|
||||
body: (params) => ({
|
||||
...baseProxyBody(params),
|
||||
path: `/cashadvance/v4/cashadvances`,
|
||||
path: `/cashadvance/v4.1/cashadvances`,
|
||||
method: 'POST',
|
||||
body: params.body,
|
||||
}),
|
||||
|
||||
@@ -10,7 +10,7 @@ import type { ToolConfig } from '@/tools/types'
|
||||
export const getCashAdvanceTool: ToolConfig<GetCashAdvanceParams, SapConcurProxyResponse> = {
|
||||
id: 'sap_concur_get_cash_advance',
|
||||
name: 'SAP Concur Get Cash Advance',
|
||||
description: 'Get a cash advance (GET /cashadvance/v4/cashadvances/{cashadvanceId}).',
|
||||
description: 'Get a cash advance (GET /cashadvance/v4.1/cashadvances/{cashAdvanceId}).',
|
||||
version: '1.0.0',
|
||||
params: {
|
||||
datacenter: {
|
||||
@@ -70,7 +70,7 @@ export const getCashAdvanceTool: ToolConfig<GetCashAdvanceParams, SapConcurProxy
|
||||
const cashAdvanceId = trimRequired(params.cashAdvanceId, 'cashAdvanceId')
|
||||
return {
|
||||
...baseProxyBody(params),
|
||||
path: `/cashadvance/v4/cashadvances/${encodeURIComponent(cashAdvanceId)}`,
|
||||
path: `/cashadvance/v4.1/cashadvances/${encodeURIComponent(cashAdvanceId)}`,
|
||||
method: 'GET',
|
||||
}
|
||||
},
|
||||
|
||||
@@ -10,7 +10,7 @@ import type { ToolConfig } from '@/tools/types'
|
||||
export const issueCashAdvanceTool: ToolConfig<IssueCashAdvanceParams, SapConcurProxyResponse> = {
|
||||
id: 'sap_concur_issue_cash_advance',
|
||||
name: 'SAP Concur Issue Cash Advance',
|
||||
description: 'Issue a cash advance (POST /cashadvance/v4/cashadvances/{cashadvanceId}/issue).',
|
||||
description: 'Issue a cash advance (POST /cashadvance/v4.1/cashadvances/{cashAdvanceId}/issue).',
|
||||
version: '1.0.0',
|
||||
params: {
|
||||
datacenter: {
|
||||
@@ -76,7 +76,7 @@ export const issueCashAdvanceTool: ToolConfig<IssueCashAdvanceParams, SapConcurP
|
||||
const cashAdvanceId = trimRequired(params.cashAdvanceId, 'cashAdvanceId')
|
||||
return {
|
||||
...baseProxyBody(params),
|
||||
path: `/cashadvance/v4/cashadvances/${encodeURIComponent(cashAdvanceId)}/issue`,
|
||||
path: `/cashadvance/v4.1/cashadvances/${encodeURIComponent(cashAdvanceId)}/issue`,
|
||||
method: 'POST',
|
||||
body: params.body ?? {},
|
||||
}
|
||||
|
||||
@@ -68,6 +68,13 @@ export const listUsersTool: ToolConfig<ListUsersParams, SapConcurProxyResponse>
|
||||
visibility: 'user-or-llm',
|
||||
description: 'SCIM v4.1 pagination cursor returned by a prior call',
|
||||
},
|
||||
filter: {
|
||||
type: 'string',
|
||||
required: false,
|
||||
visibility: 'user-or-llm',
|
||||
description:
|
||||
'SCIM filter expression. Supported attributes: userName, employeeNumber, externalId.',
|
||||
},
|
||||
attributes: {
|
||||
type: 'string',
|
||||
required: false,
|
||||
@@ -92,6 +99,7 @@ export const listUsersTool: ToolConfig<ListUsersParams, SapConcurProxyResponse>
|
||||
query: buildListQuery({
|
||||
count: params.count,
|
||||
cursor: params.cursor,
|
||||
filter: params.filter,
|
||||
attributes: params.attributes,
|
||||
excludedAttributes: params.excludedAttributes,
|
||||
}),
|
||||
|
||||
@@ -327,6 +327,7 @@ export interface GetItineraryParams extends SapConcurBaseParams {
|
||||
export interface ListUsersParams extends SapConcurBaseParams {
|
||||
count?: number
|
||||
cursor?: string
|
||||
filter?: string
|
||||
attributes?: string
|
||||
excludedAttributes?: string
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user