REST APIを動作させようとしています。はい、コードはPythonですが、PHPなど何か知っていれば、助けてくれると思っています。SuiteCRM/SugarCRM RESTエンドポイントバージョン4.1の使用
私は2つの機能を書いています。 1はヘルパーです。
def post(self, method, parameters):
args = collections.OrderedDict()
args['method'] = method
args['input_type'] = 'json'
args['response_type'] = 'json'
args['rest_data'] = json.dumps(parameters)
res = requests.post(self.url, data=args, verify=False)
if res.ok == False:
return None
return res.json()
以下のget_module_entriesの実装では、最初の20個のレコードしか取得できません。私が何をスキップしたり取ったりしても、最初の20レコードしか取得しません。
def get_module_entries(self, module, skip=0, take=1):
args = collections.OrderedDict()
args['session'] = self.session_id
args['module_name'] = module
args['query'] = ''
args['order_by'] = ''
args['select_fields'] = ''
args['link_name_to_fields_array'] = ''
args['offset'] = str(skip)
args['max_results'] = str(take)
args['deleted'] = 0
args['Favorites'] = 0
res = self.post('get_entry_list', args)
return res
私はselect_fields
をコメントアウトし、link_name_to_fields_array
、それは名誉をスキップして取るん。だから、私はすべてのレコードを取得するためにfuctionを打つことができます。ただし、返されるオブジェクトにはIDのみがあり、他のすべてのフィールドが欠落しています。ここで私は、これらの2行をコメントアウトしています
{"module_name": "Accounts", "name_value_list": [], "id": "<snipped out>"}
:彼らはこのようになります。
def get_module_entries(self, module, skip=0, take=1):
args = collections.OrderedDict()
args['session'] = self.session_id
args['module_name'] = module
args['query'] = ''
args['order_by'] = ''
#args['select_fields'] = ''
#args['link_name_to_fields_array'] = ''
args['offset'] = str(skip)
args['max_results'] = str(take)
args['deleted'] = 0
args['Favorites'] = 0
res = self.post('get_entry_list', args)
return res
動作は非常に奇妙です。私はすべてのフィールドがほしいと思うので、スキップして取ることを尊敬したい。私が1つの行をコメントアウトし、いずれかの行をコメントアウトすると動作しません。これをどうやって解決するのですか?
渡す時に、オフセット= 0を決定し、チェックがあり、20〜に何かをする方法はありますそのGUI設定を邪魔することなく "すべて"? – 010110110101
私は気づいていません。考え方は、1ページあたりのレコード数を設定して、各ページのオフセットを要求することです。例えば20 /ページ。オフセットは、たとえば、1,21,41などの範囲から開始されます(0から20の間でも構いません)。また、残りの/ soapはSuiteCRM内のGUIには影響しません。合計レコードは、各通話中の返品です。 –