Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

extract_from_batch_response #235

Closed
MarsMinerstone opened this issue May 20, 2024 · 3 comments · Fixed by #237
Closed

extract_from_batch_response #235

MarsMinerstone opened this issue May 20, 2024 · 3 comments · Fixed by #237
Assignees

Comments

@MarsMinerstone
Copy link

MarsMinerstone commented May 20, 2024

Проблема в методе extract_from_batch_response, в файле fast_bitrix24/server_response.py.

Код, который я выполняю:

result = await bitrix_client.call(
    "crm.item.add",
    {
        "entityTypeId": 1,
        "fields": {
            "first_name": "first_name",
            "family_name": "family_name",
            "third_name": "third_name",
            "age": date(1999, 12, 12),
            "age_": 12,
            "user_tg_id": "user_tg_id",
            "phone": "phone",
        }
    }
)
print(result)

Вот ссылка на используемый мной метод Bitrix24 REST API:
https://dev.1c-bitrix.ru/rest_help/crm/dynamic/methodscrmitem/crm_item_add.php

Вот такой результат я получаю:
"item"

Следуя по шагам выполнения, выясняю, что в функцию extract_from_batch_response приходит данный словарь, что в целом приемлемый для меня ответ от api, и с которым я бы мог работать:

{'order0000000000': {'item': {'id': 46, 'xmlId': None, 'title': 'Лидерская программа #46', 'createdBy': 6511, 'updatedBy': 6511, 'movedBy': 6511, 'createdTime': '2024-05-20T09:01:39+03:00', 'updatedTime': '2024-05-20T09:01:39+03:00', 'movedTime': '2024-05-20T09:01:39+03:00', 'categoryId': 122, 'opened': 'N', 'stageId': 'DT133_122:NEW', 'previousStageId': '', 'begindate': '2024-05-20T03:00:00+03:00', 'closedate': '2024-05-27T03:00:00+03:00', 'companyId': None, 'contactId': None, 'opportunity': 0, 'isManualOpportunity': 'N', 'taxValue': 0, 'currencyId': 'RUB', 'opportunityAccount': 0, 'taxValueAccount': 0, 'accountCurrencyId': 'RUB', 'mycompanyId': None, 'sourceId': 'CALLBACK', 'sourceDescription': None, 'webformId': None, 'ufCRM_30__I': 'fio[0]', 'ufCRM_30__F': 'fio[1]', 'ufCrm_30_': '', 'ufCrm30Gorod': '', 'ufCRM_30__TG': 'None', 'ufCrm30Spes': '', 'ufCRM_30__DR': '1999-12-12T03:00:00+03:00', 'ufCrm30_1713945028': None, 'ufCrm30_1713945184': None, 'ufCrm30_1713945484': None, 'ufCrm30_1713945543': None, 'ufCrm30_1713945562': None, 'ufCrm30_1713956150473': None, 'ufCRM_30_1714103168': '25', 'ufCrm30_1714103555': None, 'ufCrm30_1714103618': '', 'ufCrm30_1714103630': 'N', 'ufCrm30_1714104884176': None, 'ufCrm30_1714106355377': None, 'ufCrm30_1714111271': None, 'ufCrm30_1714112298027': None, 'ufCrm30_1714113441': None, 'ufCRM_30_1714122056': 'fio[2]', 'ufCrm30_1714131633': None, 'ufCrm30_1714131799': None, 'ufCrm30_1714131815': 'N', 'ufCrm30_1714131831': '', 'ufCRM_30_1714131841': 0, 'ufCrm30_1714204151': None, 'assignedById': 6511, 'lastActivityBy': 6511, 'lastActivityTime': '2024-05-20T09:01:39+03:00', 'utmSource': None, 'utmMedium': None, 'utmCampaign': None, 'utmContent': None, 'utmTerm': None, 'observers': [], 'contactIds': [], 'entityTypeId': 133}}}

однако после условия:
if self.is_nested(first_item) or isinstance(first_item, list):
результатом метода становится один из ключей "item".

Конкретно, весь словарь обрезается в момент:
result_list = list(chain(*result_list))
Избавившись от этого преобразования, у меня получилось получить то, что я хотел. Но я понимаю, что в этой части кода был какой-то смысл, поэтому жду ответа от вас.

Думаю проблема в том, что это взаимодействие с каким-то кастомным смарт-процессом, и подобный вывод не был предусмотрен в разработки библиотеки.

@leshchenko1979
Copy link
Owner

Спасибо, посмотрю попозже

@leshchenko1979
Copy link
Owner

А можете приложить полный лог выполнения вышеописанного кода?

@MarsMinerstone
Copy link
Author

May 21 12:14:27 ruvds-5d49q python[98072]: 2024-05-21 12:14:27,334 - INFO - fast_bitrix24 - Starting call((<fast_bitrix24.bitrix.BitrixAsync object at 0x7180daf60c90>, 'crm.item.update', {'entityTypeId': 133, 'id': 247, 'fields': {'ufCRM_30_1714103630': None}}), {})
May 21 12:14:27 ruvds-5d49q python[98072]: 2024-05-21 12:14:27,334 - DEBUG - fast_bitrix24 - fast_bitrix24 version: 1.7.2
May 21 12:14:27 ruvds-5d49q python[98072]: 2024-05-21 12:14:27,334 - DEBUG - fast_bitrix24 - No IPython found
May 21 12:14:27 ruvds-5d49q python[98072]: 2024-05-21 12:14:27,334 - DEBUG - fast_bitrix24 - Concurrent requests increased: {'mcr_cur_limit': 50}
May 21 12:14:27 ruvds-5d49q python[98072]: 2024-05-21 12:14:27,334 - DEBUG - fast_bitrix24 - Requesting {'method': batch, 'params': {'halt': 0, 'cmd': {'order0000000000': 'crm.item.update?__order=order0000000000&entityTypeId=133&id=247&fields[ufCRM_30_1714103630]=None&'}}}
May 21 12:14:27 ruvds-5d49q python[98072]: 2024-05-21 12:14:27,524 - DEBUG - fast_bitrix24 - Response: {'result': {'result': {'order0000000000': {'item': {'id': 247, 'xmlId': '', 'title': 'Андрей Макарцев\n', 'createdBy': 6511, 'updatedBy': 6511, 'movedBy': 6511, 'createdTime': '2024-05-21T15:14:26+03:00', 'updatedTime': '2024-05-21T15:14:27+03:00', 'movedTime': '2024-05-21T15:14:26+03:00', 'categoryId': 122, 'opened': 'N', 'stageId': 'DT133_122:NEW', 'previousStageId': '', 'begindate': '2024-05-21T03:00:00+03:00', 'closedate': '2024-05-28T03:00:00+03:00', 'companyId': 0, 'contactId': 0, 'opportunity': 0, 'isManualOpportunity': 'N', 'taxValue': 0, 'currencyId': 'RUB', 'opportunityAccount': 0, 'taxValueAccount': 0, 'accountCurrencyId': 'RUB', 'mycompanyId': 0, 'sourceId': 'CALLBACK', 'sourceDescription': '', 'webformId': 0, 'ufCrm30I': 'Макарцев', 'ufCrm30F': 'Андрей', 'ufCrm_30_': 'celfi@mail.ru', 'ufCrm30Gorod': 'Свердловская область Екатеринбург', 'ufCrm30Tg': '@sdfsdfsfd', 'ufCrm30Spes': 'Управление HR, Служба развития новых площадок (СРНП), ', 'ufCrm30Dr': '1995-03-14T03:00:00+03:00', 'ufCrm30_1713945028': None, 'ufCrm30_1713945184': 3445, 'ufCrm30_1713945484': None, 'ufCrm30_1713945543': None, 'ufCrm30_1713945562': None, 'ufCrm30_1713956150473': None, 'ufCrm30_1714103168': '29', 'ufCrm30_1714103555': None, 'ufCrm30_1714103618': 'None', 'ufCRM_30_1714103630': None, 'ufCrm30_1714104884176': None, 'ufCrm30_1714106355377': None, 'ufCrm30_1714111271': None, 'ufCrm30_1714112298027': None, 'ufCrm30_1714113441': None, 'ufCrm30_1714122056': 'Андреевич', 'ufCrm30_1714131633': None, 'ufCrm30_1714131799': None, 'ufCrm30_1714131815': None, 'ufCrm30_1714131831': '', 'ufCrm30_1714131841': 79991111111, 'ufCrm30_1714204151': None, 'assignedById': 6511, 'lastActivityBy': 6511, 'lastActivityTime': '2024-05-21T15:14:26+03:00', 'utmSource': None, 'utmMedium': None, 'utmCampaign': None, 'utmContent': None, 'utmTerm': None, 'observers': [], 'contactIds': [], 'entityTypeId': 133}}}, 'result_error': [], 'result_total': [], 'result_next': [], 'result_time': {'order0000000000': {'start': 1716293667.476324, 'finish': 1716293667.52081, 'duration': 0.04448580741882324, 'processing': 0.04400205612182617, 'date_start': '2024-05-21T15:14:27+03:00', 'date_finish': '2024-05-21T15:14:27+03:00'}}}, 'time': {'start': 1716293667.454244, 'finish': 1716293667.52083, 'duration': 0.06658601760864258, 'processing': 0.04455399513244629, 'date_start': '2024-05-21T15:14:27+03:00', 'date_finish': '2024-05-21T15:14:27+03:00'}}

что-то типа такого

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
2 participants