Skip to content

Commit b74fc86

Browse files
waleedlatif1claude
andcommitted
fix(sap-concur): align with live API on travel-profile, itineraries, and context types
- list_travel_profiles_summary: rename Status query to Active with 1/0 values, tighten LastModifiedDate format hint - list_itineraries / get_itinerary: use documented userid_type / userid_value / ItemsPerPage / Page query keys - create_report_comment: contextType allows MANAGER (move to EXPENSE_READ_CONTEXT_TYPE_OPS) - get_list_item: drop unused listId from block (tool only needs itemId) - Tighten description copy on list_expenses/get_itemizations/associate_attendees/remove_all_attendees Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
1 parent 306cc57 commit b74fc86

8 files changed

Lines changed: 23 additions & 21 deletions

File tree

apps/sim/blocks/blocks/sap_concur.ts

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@ const EXPENSE_READ_CONTEXT_TYPE_OPS = [
4444
'sap_concur_list_expenses',
4545
'sap_concur_get_expense',
4646
'sap_concur_get_itemizations',
47+
'sap_concur_create_report_comment',
4748
'sap_concur_list_report_comments',
4849
'sap_concur_list_exceptions',
4950
]
@@ -59,7 +60,6 @@ const ATTENDEE_CONTEXT_TYPE_OPS = [
5960
'sap_concur_list_attendee_associations',
6061
'sap_concur_associate_attendees',
6162
'sap_concur_remove_all_attendees',
62-
'sap_concur_create_report_comment',
6363
]
6464

6565
const ALLOCATION_CONTEXT_TYPE_OPS = [
@@ -928,7 +928,7 @@ export const SapConcurBlock: BlockConfig<SapConcurProxyResponse> = {
928928
placeholder: 'List ID',
929929
condition: {
930930
field: 'operation',
931-
value: ['sap_concur_get_list', 'sap_concur_list_list_items', 'sap_concur_get_list_item'],
931+
value: ['sap_concur_get_list', 'sap_concur_list_list_items'],
932932
},
933933
required: {
934934
field: 'operation',
@@ -1080,7 +1080,7 @@ export const SapConcurBlock: BlockConfig<SapConcurProxyResponse> = {
10801080
id: 'lastModifiedDate',
10811081
title: 'Last Modified Date',
10821082
type: 'short-input',
1083-
placeholder: 'YYYY-MM-DD or 1900-01-01T12:00:00',
1083+
placeholder: '1900-01-01T00:00:00 (UTC datetime)',
10841084
condition: {
10851085
field: 'operation',
10861086
value: 'sap_concur_list_travel_profiles_summary',
@@ -1110,8 +1110,8 @@ export const SapConcurBlock: BlockConfig<SapConcurProxyResponse> = {
11101110
type: 'dropdown',
11111111
options: [
11121112
{ label: 'Any', id: '' },
1113-
{ label: 'Active', id: 'Active' },
1114-
{ label: 'Inactive', id: 'Inactive' },
1113+
{ label: 'Active', id: '1' },
1114+
{ label: 'Inactive', id: '0' },
11151115
],
11161116
value: () => '',
11171117
condition: { field: 'operation', value: 'sap_concur_list_travel_profiles_summary' },
@@ -1684,7 +1684,6 @@ export const SapConcurBlock: BlockConfig<SapConcurProxyResponse> = {
16841684
case 'sap_concur_get_list_item':
16851685
return {
16861686
...auth,
1687-
listId: params.listId || undefined,
16881687
itemId: params.itemId,
16891688
}
16901689
case 'sap_concur_list_budgets':
@@ -1723,7 +1722,7 @@ export const SapConcurBlock: BlockConfig<SapConcurProxyResponse> = {
17231722
page: params.travelProfilePage ? Number(params.travelProfilePage) : undefined,
17241723
itemsPerPage: params.itemsPerPage ? Number(params.itemsPerPage) : undefined,
17251724
active:
1726-
params.travelProfileActive === 'Active' || params.travelProfileActive === 'Inactive'
1725+
params.travelProfileActive === '1' || params.travelProfileActive === '0'
17271726
? params.travelProfileActive
17281727
: undefined,
17291728
travelConfigs: params.travelConfigs || undefined,
@@ -1886,7 +1885,10 @@ export const SapConcurBlock: BlockConfig<SapConcurProxyResponse> = {
18861885
page: { type: 'number', description: 'Page number (lists/list_items)' },
18871886
travelProfilePage: { type: 'number', description: 'Profile summary page number' },
18881887
itemsPerPage: { type: 'number', description: 'Profile summary items per page' },
1889-
travelProfileActive: { type: 'string', description: 'Status filter ("Active" or "Inactive")' },
1888+
travelProfileActive: {
1889+
type: 'string',
1890+
description: 'Active filter ("1" for active, "0" for inactive)',
1891+
},
18901892
travelConfigs: { type: 'string', description: 'Comma-separated travel config ids' },
18911893
searchText: { type: 'string', description: 'Locations v5 free-text search' },
18921894
locCode: { type: 'string', description: 'Locations v5 location code' },

apps/sim/tools/sap_concur/associate_attendees.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ export const associateAttendeesTool: ToolConfig<AssociateAttendeesParams, SapCon
1212
id: 'sap_concur_associate_attendees',
1313
name: 'SAP Concur Associate Attendees',
1414
description:
15-
'Associate attendees with an expense (POST /expensereports/v4/users/{userId}/context/TRAVELER/reports/{reportId}/expenses/{expenseId}/attendees).',
15+
'Associate attendees with an expense (POST /expensereports/v4/users/{userId}/context/{contextType}/reports/{reportId}/expenses/{expenseId}/attendees).',
1616
version: '1.0.0',
1717
params: {
1818
datacenter: {

apps/sim/tools/sap_concur/get_itemizations.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ export const getItemizationsTool: ToolConfig<GetItemizationsParams, SapConcurPro
6666
type: 'string',
6767
required: true,
6868
visibility: 'user-or-llm',
69-
description: 'Access context (TRAVELER per the v4 spec)',
69+
description: 'Access context: TRAVELER, MANAGER, or PROXY',
7070
},
7171
reportId: {
7272
type: 'string',

apps/sim/tools/sap_concur/get_itinerary.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -88,8 +88,8 @@ export const getItineraryTool: ToolConfig<GetItineraryParams, SapConcurProxyResp
8888
body: (params) => {
8989
const tripId = trimRequired(params.tripId, 'tripId')
9090
const query = buildListQuery({
91-
useridType: params.useridType,
92-
useridValue: params.useridValue,
91+
userid_type: params.useridType,
92+
userid_value: params.useridValue,
9393
systemFormat: params.systemFormat,
9494
})
9595
return {

apps/sim/tools/sap_concur/list_expenses.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ export const listExpensesTool: ToolConfig<ListExpensesParams, SapConcurProxyResp
6666
type: 'string',
6767
required: true,
6868
visibility: 'user-or-llm',
69-
description: 'Access context (TRAVELER per the v4 spec)',
69+
description: 'Access context: TRAVELER, MANAGER, or PROXY',
7070
},
7171
reportId: {
7272
type: 'string',

apps/sim/tools/sap_concur/list_itineraries.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -137,10 +137,10 @@ export const listItinerariesTool: ToolConfig<ListItinerariesParams, SapConcurPro
137137
startDate: params.startDate,
138138
endDate: params.endDate,
139139
bookingType: params.bookingType,
140-
useridType: params.useridType,
141-
useridValue: params.useridValue,
142-
itemsPerPage: params.itemsPerPage,
143-
page: params.page,
140+
userid_type: params.useridType,
141+
userid_value: params.useridValue,
142+
ItemsPerPage: params.itemsPerPage,
143+
Page: params.page,
144144
includeMetadata: params.includeMetadata,
145145
includeCanceledTrips: params.includeCanceledTrips,
146146
createdAfterDate: params.createdAfterDate,

apps/sim/tools/sap_concur/list_travel_profiles_summary.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ export const listTravelProfilesSummaryTool: ToolConfig<
6767
type: 'string',
6868
required: true,
6969
visibility: 'user-or-llm',
70-
description: 'Required ISO 8601 date (YYYY-MM-DD or full timestamp)',
70+
description: 'Required UTC datetime in YYYY-MM-DDThh:mm:ss format',
7171
},
7272
page: {
7373
type: 'number',
@@ -86,7 +86,7 @@ export const listTravelProfilesSummaryTool: ToolConfig<
8686
required: false,
8787
visibility: 'user-or-llm',
8888
description:
89-
'Status filter (sent as Status query param): "Active" or "Inactive". Omit for all.',
89+
'Active filter (sent as Active query param): "1" (active) or "0" (inactive). Omit for all.',
9090
},
9191
travelConfigs: {
9292
type: 'string',
@@ -105,7 +105,7 @@ export const listTravelProfilesSummaryTool: ToolConfig<
105105
LastModifiedDate: lastModifiedDate,
106106
Page: params.page,
107107
ItemsPerPage: params.itemsPerPage,
108-
Status: params.active,
108+
Active: params.active,
109109
travelConfigs: params.travelConfigs,
110110
})
111111
return {

apps/sim/tools/sap_concur/remove_all_attendees.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ export const removeAllAttendeesTool: ToolConfig<RemoveAllAttendeesParams, SapCon
1212
id: 'sap_concur_remove_all_attendees',
1313
name: 'SAP Concur Remove All Attendees',
1414
description:
15-
'Remove all attendees from an expense (DELETE /expensereports/v4/users/{userId}/context/TRAVELER/reports/{reportId}/expenses/{expenseId}/attendees).',
15+
'Remove all attendees from an expense (DELETE /expensereports/v4/users/{userId}/context/{contextType}/reports/{reportId}/expenses/{expenseId}/attendees).',
1616
version: '1.0.0',
1717
params: {
1818
datacenter: {

0 commit comments

Comments
 (0)