2017-12-11 38 views
1

私は外部サービスにデータをエクスポートしているSugarCrmプラグインを持っています。私は更新された/削除された/新しい連絡先のロジックフックを使用していますが、私はすでに存在するデータの同期に問題があります。私はSugarCRMからすべてのデータを抽出しなければならず、私が使用しようとした2つのSugarBeanメソッド、get_full_list()とget_list()があります。最初の1つは私に完全な連絡先リストを与えますが、1つのJson maxでバッチ1000連絡先で送信する必要があります。2番目の方法は連絡先の最初のページのみを返します(設定設定10 - 1000maxエントリに依存します)。SugarCRM 6.5.26 CE - SugarBeanを使用した連絡先のエクスポート[php]

// 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もサポートしています後のページを聴く。これは次のように定義されます:function get_list($order_by = "", $where = "", $row_offset = 0, $limit=-1, $max=-1, $show_deleted = 0, $singleSelect=false, $select_fields = array())。 2ページ目のあなたはなど、それ2000作る、第3ページに、= 1000$row_offsetを指定できることを意味だから、基本的になるまで、= 1000$limitでget_list呼び出し、各反復後1000によって0の初期$row_offsetを高めるループを実行 1000レコード未満またはnullが返されます。ここで

あなたがそれらの豆を処理の問題に実行する場合、いくつかの一般的なヒントです:あなたが抱えている問題は、不完全なデータであれば

  • 、そのIDを使用して、手動で各Beanをロードしてみてください。いくつかのSugar関数はデフォルトですべての(特別な)フィールドをロードしません。
  • 何も問題がないと思われる場合は、PHPログでエラーを確認してください。たぶん多くの豆を一度に読み込むと、PHPのmax_execution_timeまたはmemory_limitに問題が発生する可能性があります。
+0

私は制限とオフセットでget_list()を使用して結果を得ることができましたが、私がドキュメントを読んでいたら、それを得ることができませんでした...ありがとう! –

関連する問題