# Class R.R.RemoteApplication(SimpleItem):

Part of Reportek.RemoteApplication View In Hierarchy

    A computerised application, executed by an activity.
    It executes a set of operations on a remote server and generates a feedback object
    into the envelope as result of these.
    The instance data for the RemoteApplication is stored in the workitem
    as an additional property - app_name - contaning a dictionary like:
    {
        'analyze':      {code, retries_left, last_error, next_run},
        'getResult':    {jobID: {code, retries_left, last_error, next_run, fileURL}}
    }

    First, a call is made to the 'analyze' function from the remote service which retireves
    the list of files that will be analyzed along with their jobIDs

    Second, the 'getResult' remote service function is called for every job

    Possible codes for app_name['analyze']:
        0 - started
        2 - nothing to do
        1 - done
        -2 - failed

    Possible codes for app_name['getResult'][jobID]:
        0 - processing
        1 - result succefully brought
        -2 - failed

Line # | Kind | Name | Docs
--- | --- | --- | ---
84 | Method | __init__ | Initialize a new instance of Document
98 | Method | __setstate__ | Undocumented
104 | Method | manage_settings | Change properties of the QA Application
118 | Method | __call__ | Runs the Remote Aplication for the first time
163 | Method | callApplication | Called on regular basis
211 | Method | __analyzeDocuments | Makes an XML/RPC call to the 'analyzeXMLFiles' function from the XQuery service
265 | Method | __getResult4XQueryServiceJob | Makes an XML/RPC call to the 'getResult' function from the remote service
312 | Method | __initializeWorkitem | Adds QA-specific extra properties to the workitem
323 | Method | __manageAutomaticProperty | The instance data for the RemoteApplication is stored in the workitem
353 | Method | decodeAppData | Return a string which can be displayed on the history page of the envelope
386 | Method | __finishApplication | Completes the workitem and forwards it

def __init__(self, id, title, RemoteServer, RemoteService, app_name, level='files', nRetries=5, retryFrequency=300, nTimeBetweenCalls=60):
Initialize a new instance of Document If a document is created through FTP, self.absolute_url doesn't work.

def __setstate__(self, state):
Undocumented
def manage_settings(self, title, RemoteServer, RemoteService, app_name, level, nRetries, retryFrequency, nTimeBetweenCalls):
Change properties of the QA Application

def __call__(self, workitem_id, REQUEST=None):
Runs the Remote Aplication for the first time

def callApplication(self, workitem_id, REQUEST=None):
Called on regular basis

def __analyzeDocuments(self, p_workitem_id, p_files_dict):
Makes an XML/RPC call to the 'analyzeXMLFiles' function from the XQuery service

def __getResult4XQueryServiceJob(self, p_workitem_id, p_jobID):
Makes an XML/RPC call to the 'getResult' function from the remote service for an existing job

def __initializeWorkitem(self, p_workitem_id):
Adds QA-specific extra properties to the workitem

def __manageAutomaticProperty(self, p_workitem_id, p_analyze={}, p_getResult={}):

    The instance data for the RemoteApplication is stored in the workitem
    as an additional property - app_name - contaning a dictionary like:
    {
        'analyze':      {code, retries_left, last_error, next_run},
        'getResult':    {jobID: {code, retries_left, last_error, next_run, fileURL}}
    }
    Possible codes for app_name['analyze']:
        0 - started
        1 - done
        -2 - failed
        2 - nothing found to assess

    Possible codes for app_name['getResult'][jobID]:
        0 - started
        1 - result succefully brought
        -2 - failed

def decodeAppData(self, p_workitem, p_application_title):
Return a string which can be displayed on the history page of the envelope

def __finishApplication(self, p_workitem_id, REQUEST=None):
Completes the workitem and forwards it