Используя раздел «Опробовать» SAP Business Accelerator Hub, мне не удалось отфильтровать бухгалтерские документы с использованием значения свойства «LastChangeDate». Хотя фильтрация по значениям текстовых свойств, например «AccountingDocument», работает должным образом.
Ссылка на SAP, чтобы опробовать API: https://api.sap.com/api/API_OPLACCTGDOCITEMCUBE_SRV/tryout
https://sandbox.api.sap.com/s4hanacloud/sap/opu/odata/sap/API_OPLACCTGDOCITEMCUBE_SRV/A_OperationalAcctgDocItemCube?$top=50&$filter=AccountingDocument%20eq%20'100000032'&$inlinecount=allpages
Запрос выше вернет ответ ниже. (Исходный ответ намного больше, я сократил его, оставив только важные поля.)
{
"__metadata": {
"id": "https://sandbox.api.sap.com/s4hanacloud/sap/opu/odata/sap/API_OPLACCTGDOCITEMCUBE_SRV/A_OperationalAcctgDocItemCube(CompanyCode='1010',FiscalYear='2015',AccountingDocument='100000032',AccountingDocumentItem='1')",
"uri": "https://sandbox.api.sap.com/s4hanacloud/sap/opu/odata/sap/API_OPLACCTGDOCITEMCUBE_SRV/A_OperationalAcctgDocItemCube(CompanyCode='1010',FiscalYear='2015',AccountingDocument='100000032',AccountingDocumentItem='1')",
"type": "API_OPLACCTGDOCITEMCUBE_SRV.A_OperationalAcctgDocItemCubeType"
},
"CompanyCode": "1010",
"FiscalYear": "2015",
"AccountingDocument": "100000032",
"LastChangeDate": "/Date(1502841600000)/",
}
Как вы можете видеть, LastChangeDate этого бухгалтерского документа имеет значение «/Date(1502841600000)/». Используя эти данные, я предположил, что следующий запрос даст мне ответ, который я ищу.
https://sandbox.api.sap.com/s4hanacloud/sap/opu/odata/sap/API_OPLACCTGDOCITEMCUBE_SRV/A_OperationalAcctgDocItemCube?$top=50&$filter=LastChangeDate%20eq%20'%2FDate(1502841600000)%2F'&$inlinecount=allpages
Вот ответ, который я получаю, который по сути представляет собой 400 плохих запросов.
{
"error": {
"code": "005056A509B11EE1BB8AF4A65EC3CA20",
"message": {
"lang": "en",
"value": "Invalid parametertype used at function 'eq' (Position: 16)"
},
"innererror": {
"transactionid": "25669476CF9401C0E00665F8B4DE9B04",
"timestamp": "20240605163836.8291520",
"Error_Resolution": {
"SAP_Transaction": "For backend administrators: use ADT feed reader \"SAP Gateway Error Log\" or run transaction /IWFND/ERROR_LOG on SAP Gateway hub system and search for entries with the timestamp above for more details",
"SAP_Note": "See SAP Note 1797736 for error analysis (https://service.sap.com/sap/support/notes/1797736)"
}
}
}
}
Возможно ли сделать то, что я пытаюсь?





После некоторых поисков я нашел ответ на свой вопрос.
https://sandbox.api.sap.com/s4hanacloud/sap/opu/odata/sap/API_OPLACCTGDOCITEMCUBE_SRV/A_OperationalAcctgDocItemCube?$top=50&$filter=LastChangeDate%20ge%20datetime'2024-06-05T00%3A00%3A00'&$inlinecount=allpages
Я предположил, что мне нужно использовать время эпохи в фильтре, потому что именно это возвращает SAP, но можно использовать дату и время, как я это сделал.
Как сейчас написано, ваш ответ неясен. Пожалуйста, отредактируйте , чтобы добавить дополнительную информацию, которая поможет другим понять, как это относится к заданному вопросу. Более подробную информацию о том, как писать хорошие ответы, вы можете найти в справочном центре.
Пожалуйста, опубликуйте ответ в виде текста, а не изображения. Спасибо.