Debugging Error - missing attribute in WorkForce Management Client API

Team,

Im trying to figure out the following error. My assumption is it's because connection config mostly hitting the previous version of the WFM API. But that shouldn't be the case because same connection config I used in local testing and it's working fine. But when I setup this connection on Airflow I do see this issue -

The following connection config Im using -

import time
from typing import TypeVar, Iterable, Callable
import PureCloudPlatformClientV2

host = "https://api.usw2.pure.cloud"
client_id = ""
client_secret = ""
# return PureCloudPlatformClientV2.api_client.ApiClient()
PureCloudPlatformClientV2.configuration.host = host
api_inst = PureCloudPlatformClientV2.api_client.ApiClient().get_client_credentials_token(client_id, client_secret)
PureCloudPlatformClientV2.configuration.access_token = api_inst.access_token
api_instance = PureCloudPlatformClientV2.WorkforceManagementApi()

Brief on error - Few attributes are missing from the API instance and the one resource path Im triggering is
"get_workforcemanagement_adherence_historical_job(job_id)" and the referred documentation is here

ERROR -
Traceback (most recent call last):
File "/usr/local/lib/python3.8/site-packages/airflow/models/taskinstance.py", line 984, in _run_raw_task
result = task_copy.execute(context=context)
File "/usr/local/lib/python3.8/site-packages/airflow/operators/python_operator.py", line 113, in execute
return_value = self.execute_callable()
File "/usr/local/lib/python3.8/site-packages/airflow/operators/python_operator.py", line 118, in execute_callable
return self.python_callable(*self.op_args, **self.op_kwargs)
File "/home/airflow/credify/upflow/upflow/dags/dw_genesys_redshift/daily_wfm_load.py", line 70, in determine_wfm_day_metrics_intervals
hook_instance = GenesysWFMAdherenceDayMetricsAPIHook()
File "/home/airflow/credify/upflow/upflow/hooks/genesys/work_force_management/genesys_wfm_job_api_hook.py", line 74, in init
self._check_job_status_callable = self.client.get_workforcemanagement_adherence_historical_job
AttributeError: 'WorkforceManagementApi' object has no attribute 'get_workforcemanagement_adherence_historical_job'

Appreciate the immediate response. Thanks!

The API definition is the following and its missing get_workforcemanagement_adherence_historical_job ->```
methods in the api - ['class', 'delattr', 'dict', 'dir', 'doc', 'eq', 'format', 'ge', 'getattribute', 'gt', 'hash', 'init', 'init_subclass', 'le', 'lt', 'module', 'ne', 'new', 'reduce', 'reduce_ex', 'repr', 'setattr', 'sizeof', 'str', 'subclasshook', 'weakref', 'api_client', 'delete_workforcemanagement_businessunit', 'delete_workforcemanagement_businessunit_activitycode', 'delete_workforcemanagement_businessunit_planninggroup', 'delete_workforcemanagement_businessunit_scheduling_run', 'delete_workforcemanagement_businessunit_servicegoaltemplate', 'delete_workforcemanagement_businessunit_week_schedule', 'delete_workforcemanagement_businessunit_week_shorttermforecast', 'delete_workforcemanagement_managementunit', 'delete_workforcemanagement_managementunit_workplan', 'delete_workforcemanagement_managementunit_workplanrotation', 'get_workforcemanagement_adherence', 'get_workforcemanagement_adhocmodelingjob', 'get_workforcemanagement_agent_managementunit', 'get_workforcemanagement_agents_me_managementunit', 'get_workforcemanagement_businessunit', 'get_workforcemanagement_businessunit_activitycode', 'get_workforcemanagement_businessunit_activitycodes', 'get_workforcemanagement_businessunit_intraday_planninggroups', 'get_workforcemanagement_businessunit_managementunits', 'get_workforcemanagement_businessunit_planninggroup', 'get_workforcemanagement_businessunit_planninggroups', 'get_workforcemanagement_businessunit_scheduling_run', 'get_workforcemanagement_businessunit_scheduling_run_result', 'get_workforcemanagement_businessunit_scheduling_runs', 'get_workforcemanagement_businessunit_servicegoaltemplate', 'get_workforcemanagement_businessunit_servicegoaltemplates', 'get_workforcemanagement_businessunit_week_schedule', 'get_workforcemanagement_businessunit_week_schedule_generationresults', 'get_workforcemanagement_businessunit_week_schedule_headcountforecast', 'get_workforcemanagement_businessunit_week_schedule_history_agent', 'get_workforcemanagement_businessunit_week_schedules', 'get_workforcemanagement_businessunit_week_shorttermforecast', 'get_workforcemanagement_businessunit_week_shorttermforecast_data', 'get_workforcemanagement_businessunit_week_shorttermforecast_generationresults', 'get_workforcemanagement_businessunit_week_shorttermforecast_longtermforecastdata', 'get_workforcemanagement_businessunit_week_shorttermforecast_planninggroups', 'get_workforcemanagement_businessunit_week_shorttermforecasts', 'get_workforcemanagement_businessunits', 'get_workforcemanagement_businessunits_divisionviews', 'get_workforcemanagement_historicaldata_deletejob', 'get_workforcemanagement_historicaldata_importstatus', 'get_workforcemanagement_managementunit', 'get_workforcemanagement_managementunit_activitycodes', 'get_workforcemanagement_managementunit_adherence', 'get_workforcemanagement_managementunit_agent', 'get_workforcemanagement_managementunit_agent_shifttrades', 'get_workforcemanagement_managementunit_shifttrades_matched', 'get_workforcemanagement_managementunit_shifttrades_users', 'get_workforcemanagement_managementunit_user_timeoffrequest', 'get_workforcemanagement_managementunit_user_timeoffrequests', 'get_workforcemanagement_managementunit_users', 'get_workforcemanagement_managementunit_week_schedule', 'get_workforcemanagement_managementunit_week_schedules', 'get_workforcemanagement_managementunit_week_shifttrades', 'get_workforcemanagement_managementunit_workplan', 'get_workforcemanagement_managementunit_workplanrotation', 'get_workforcemanagement_managementunit_workplanrotations', 'get_workforcemanagement_managementunit_workplans', 'get_workforcemanagement_managementunits', 'get_workforcemanagement_managementunits_divisionviews', 'get_workforcemanagement_notifications', 'get_workforcemanagement_schedulingjob', 'get_workforcemanagement_shifttrades', 'get_workforcemanagement_timeoffrequest', 'get_workforcemanagement_timeoffrequests', 'patch_workforcemanagement_businessunit', 'patch_workforcemanagement_businessunit_activitycode', 'patch_workforcemanagement_businessunit_planninggroup', 'patch_workforcemanagement_businessunit_scheduling_run', 'patch_workforcemanagement_businessunit_servicegoaltemplate', 'patch_workforcemanagement_managementunit', 'patch_workforcemanagement_managementunit_user_timeoffrequest', 'patch_workforcemanagement_managementunit_week_shifttrade', 'patch_workforcemanagement_managementunit_workplan', 'patch_workforcemanagement_managementunit_workplanrotation', 'patch_workforcemanagement_timeoffrequest', 'post_workforcemanagement_adherence_historical', 'post_workforcemanagement_agentschedules_mine', 'post_workforcemanagement_businessunit_activitycodes', 'post_workforcemanagement_businessunit_agentschedules_search', 'post_workforcemanagement_businessunit_intraday', 'post_workforcemanagement_businessunit_planninggroups', 'post_workforcemanagement_businessunit_servicegoaltemplates', 'post_workforcemanagement_businessunit_week_schedule_agentschedules_query', 'post_workforcemanagement_businessunit_week_schedule_copy', 'post_workforcemanagement_businessunit_week_schedule_reschedule', 'post_workforcemanagement_businessunit_week_schedules', 'post_workforcemanagement_businessunit_week_schedules_generate', 'post_workforcemanagement_businessunit_week_shorttermforecast_copy', 'post_workforcemanagement_businessunit_week_shorttermforecasts_generate', 'post_workforcemanagement_businessunits', 'post_workforcemanagement_historicaldata_deletejob', 'post_workforcemanagement_historicaldata_validate', 'post_workforcemanagement_managementunit_agentschedules_search', 'post_workforcemanagement_managementunit_historicaladherencequery', 'post_workforcemanagement_managementunit_move', 'post_workforcemanagement_managementunit_schedules_search', 'post_workforcemanagement_managementunit_timeoffrequests', 'post_workforcemanagement_managementunit_timeoffrequests_query', 'post_workforcemanagement_managementunit_week_shifttrade_match', 'post_workforcemanagement_managementunit_week_shifttrades', 'post_workforcemanagement_managementunit_week_shifttrades_search', 'post_workforcemanagement_managementunit_week_shifttrades_state_bulk', 'post_workforcemanagement_managementunit_workplan_copy', 'post_workforcemanagement_managementunit_workplan_validate', 'post_workforcemanagement_managementunit_workplanrotation_copy', 'post_workforcemanagement_managementunit_workplanrotations', 'post_workforcemanagement_managementunit_workplans', 'post_workforcemanagement_managementunits', 'post_workforcemanagement_notifications_update', 'post_workforcemanagement_schedules', 'post_workforcemanagement_timeoffrequests']

Hello, it sounds like you're probably using an old version of the SDK that doesn't contain those methods. The recommended best practice is to keep your application updated with the latest version of the package. That method is confirmed to be in the SDK's source code here: https://github.com/MyPureCloud/platform-client-sdk-python/blob/master/build/PureCloudPlatformClientV2/apis/workforce_management_api.py#L1207

1 Like

This topic was automatically closed 31 days after the last reply. New replies are no longer allowed.