2017-12-11 19 views
1

외부 서비스에 데이터를 내보내는 SugarCrm 플러그인이 있습니다. 업데이트/삭제/새 연락처에 논리 후크를 사용하고 있지만 기존 데이터를 동기화하는 데 문제가 있습니다. SugarCRM에서 모든 데이터를 추출해야하며 사용하려고 시도한 SugarBean 메소드에는 get_full_list()와 get_list()가 있습니다. 첫 번째 것은 전체 연락처 목록을 제공하지만 일괄 Jon max로 보내야합니다. 두 번째 방법은 연락처의 첫 번째 페이지 만 반환합니다 (구성 설정 10 - 1000max 항목에 따라 다름).SugarCRM 6.5.26 CE - SugarBean을 사용하여 연락처 내보내기

// prepare contacts data from SugarBean 
    $bean = BeanFactory::getBean($module); 
    $contactResults = $bean->get_full_list(); 

그런 다음 $ contactResults에 FOREACH하고 필요한 형식으로 내가 원하는 데이터를 저장하고 postrequest를 통해 JSON로 보내

나는이 방법의 ATM을 사용하고 있습니다. 나는 배치로 분할하는 해결책을 찾기 위해 노력했지만, 임 get_full_list 또는 get_list 어느 :(붙어 나를 위해 작동하는 것 같다.

어떤 제안? 어쩌면 누군가가 이미? 감사합니다 사전에이 문제를 해결!

그것은 당신의 문제처럼 나에게 소리

답변

0

가 작동하지 않는 것에 대해 더 구체적으로하시기 바랍니다하지 않으면? 배치를 만드는 것입니다.

  • 배치로 배열을 분할의 경우 https://php.net/manual/en/function.array-chunk.php
  • 좀보고 할 수 있습니다
  • 또한 get_list은 나중에 페이지를 trieving. 그것은 다음과 같이 정의됩니다 : function get_list($order_by = "", $where = "", $row_offset = 0, $limit=-1, $max=-1, $show_deleted = 0, $singleSelect=false, $select_fields = array()). 당신은 그래서 기본적으로 get_list $limit = 1000으로 호출하는 루프를 실행 등이 2000을 만드는 세 번째 페이지, = 1000$row_offset을 지정할 수있는 두 번째 페이지 수단 및 각 반복 후 1000에 의해 0의 초기 $row_offset을 증가 일까지 1000 레코드 또는 null 레코드보다 작습니다.

    • 이 발생하는 문제가 불완전한 데이터, 그 ID를 사용하여 수동으로 각 빈을로드하려고 할 경우 : 당신이 그 콩을 처리하는 문제로 실행하면

    여기에 몇 가지 일반적인 힌트입니다. 일부 Sugar 함수는 기본적으로 모든 (특수) 필드를로드하지 않습니다.

  • 일이 아무 이유없이 실패한 것 같으면 PHP 로그에서 오류를 확인하십시오. 어쩌면 한 번에 많은 빈을로드하면 PHP의 max_execution_time 또는 memory_limit에 문제가 발생할 수 있습니다.
+0

한계 및 오프셋을 사용하여 get_list()를 사용하여 결과를 얻을 수 있었지만 문서를 읽을 때 얻을 수 없었습니다 ... 감사합니다! –