Как правило, в sugarcrm есть два «типа» документов.Те, которые были добавлены в модуль «Документ», а также те, которые были добавлены на субпанель «История», например, в модуле «Учетная запись».
Чтобы получить документы, связанные с учетными записями, следует обратиться к таблице notes
.Это также содержит все остальное из подпанели истории, которые связаны с учетной записью, например, электронные письма.Вы можете правильно фильтровать столбец document_type, если все документы используют один и тот же document_type.(Замените [account_id]
и [session_id]
)
<soapenv:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:sug="http://www.sugarcrm.com/sugarcrm" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">
<soapenv:Header/>
<soapenv:Body>
<sug:get_entry_list soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<session xsi:type="xsd:string">[session_id]/session>
<module_name xsi:type="xsd:string">Notes</module_name>
<query xsi:type="xsd:string">parent_type = 'Accounts' AND parent_id = '[account_id]'</query>
<order_by xsi:type="xsd:string"></order_by>
<offset xsi:type="xsd:int">0</offset>
<select_fields xsi:type="sug:select_fields" soapenc:arrayType="xsd:string[1]">
<select_fields xsi:type="xsd:string">id</select_fields>
<select_fields xsi:type="xsd:string">name</select_fields>
<select_fields xsi:type="xsd:string">filename</select_fields>
<select_fields xsi:type="xsd:string">document_revision_id</select_fields>
</select_fields>
<max_results xsi:type="xsd:int">100</max_results>
<deleted xsi:type="xsd:int">0</deleted>
</sug:get_entry_list>
</soapenv:Body>
</soapenv:Envelope>
Чтобы получить документы из модуля «Документы», вы в основном делаете то же самое, но для этого требуется два шага.Сначала извлеките документы из таблицы documents
, а затем используйте document_revision_id
для извлечения документа id
и filename
из таблицы document_revisions
.
Чтобы загрузить / получить документ,вам нужны id
и filename
.Файлы обычно хранятся в /cache/upload
в корневой папке sugarcrm и имеют имя id
.Таким образом, если документ имеет id=a06bfc2e-c6e9-ac53-9e7b-4bf4e4d862ca
, документ можно извлечь из http://my-suger/cache/upload/a06bfc2e-c6e9-ac53-9e7b-4bf4e4d862ca
.Полученный файл должен быть переименован в filename
, полученный из ответа веб-службы.