2017-09-18 1 views
0

Ich verwende zeep, um eine Verbindung mit der Five9 Call Center API herzustellen, um den Anrufprotokollbericht abzurufen.Python: Zeep Fehler

Mein Code ist wie folgt:

class Five9api: 

    start = (datetime.now() - timedelta(days=1)).replace(hour=0, minute=0, second=0, microsecond=0) 
    end = datetime.now() 
    user = 'user' 
    pwd = 'pwd' 
    criteria = {'time': {'end': end, 'start': start}} 
    key = None 

    def __init__(self, folderName, reportName): 
     self.client = None 
     self.folderName = folderName 
     self.reportName = reportName 

    def open_client(self): 
     if self.client is None: 
      self.client = Five9(self.user, self.pwd) 

    def run_report(self): 
     identifier = self.client.configuration.runReport(folderName=self.folderName, reportName=self.reportName, 
                 criteria=self.criteria) 
     Five9api.key = identifier 

    def get_report_results(self): 
     get_results = self.client.configuration.getReportResult(Five9api.key) 

     return get_results 

ich eine Störung erhalte, wenn ich die Methode run_report verwenden, um einen Schlüssel zurückzugeben, die auf das Verfahren get_report_results geben wird. Was verursacht diesen folgenden Fehler?

zeep.exceptions.Fault: Result is not ready due to process is not complete 

Der einzige Weg, um diesen Fehler ist, wie so ...

Report = Five9api("Call Log Reports", "Call Log") 
Report.open_client() 
Report.run_report() 
time.sleep(5) 
data = Report.get_report_results() 

Antwort

0

ein time.sleep zwischen den genannten zwei Methoden zur Einführung Bevor Sie Berichtsergebnisse mit getReportResult abzurufen, können Sie überprüfen, ob es bereit, mit isReportRunning Methode:

def get_report_results(self): 
    while client.service.isReportRunning(identifier=Five9api.key, timeout=100): 
     None 
    get_results = self.client.configuration.getReportResult(Five9api.key) 

Siehe vollständige Dokumentation hier: Configuration Web Services, API Reference Guide

Verwandte Themen