Скачать документы с Sugarcrm - PullRequest
0 голосов
/ 06 января 2012

Я использую SOAP API для SugarCRM. Я хочу скачать документ с помощью PHP. Я понятия не имею, как скачать документ. Заранее спасибо.

1 Ответ

3 голосов
/ 06 января 2012

Как правило, в 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, полученный из ответа веб-службы.

...