Как выполнить HTTP-вызов PUT из XLRease для обновления данных в Adobe Workfront?

Я пытаюсь сделать HTTPPUTзапросить у XLRease обновление данных в Adobe Workfront. Мне удалось успешно войти в систему с помощью клиента API иGETданные. Я также смог успешно обновить данные с помощью Postman, а также с помощью собственного скрипта Python. я используюHttpRequestбиблиотека в XLR. Я получаю тот же ответ в XLR, что и при успешном обновлении при использовании Postman, однако данные не обновляются при использовании XLR.

Мой код выглядит следующим образом:

      import json

WORKFRONT_API_HOST = releaseVariables['url']
WORKFRONT_API_VERSION = releaseVariables['wfApiVersion']
WORKFRONT_API_KEY = releaseVariables['apiKey']
WORKFRONT_USERNAME = releaseVariables['wfUsername']

FI_ID = releaseVariables['target_customer_id']
newPortfolioId = releaseVariables['target_portfolio_id']

WORKFRONT_API_URL = WORKFRONT_API_HOST + WORKFRONT_API_VERSION

def wfLogin():

    sessionID = ""
    login_endpoint = "/login"
    login_request = HttpRequest({'url': WORKFRONT_API_URL})
    login_response = login_request.get(login_endpoint + "?apiKey=" + str(WORKFRONT_API_KEY).replace("u'","'") + "&username=" + WORKFRONT_USERNAME, contentType='application/json')
    
    if login_response.getStatus() != 200:
        print('# Error logging into WF\n')
        print(login_response.getStatus())
        print(login_response.errorDump())
        sys.exit(1)
    else:
        json_response = json.loads(login_response.getResponse())
        print ("Logged in to WF")
        sessionID = json_response['data']['sessionID']
        
    return sessionID
    
def wfLogout(sessionID):
    
    logout_endpoint = "/logout"
    logout_request = HttpRequest({'url': WORKFRONT_API_URL})
    logout_response = logout_request.get(logout_endpoint + "?sessionID=" + sessionID, contentType='application/json')
    
    if logout_response.getStatus() != 200:
        print('# Error logging out of WF\n')
        print(logout_response.getStatus())
        print(logout_response.errorDump())
        sys.exit(1)
    else:
        json_response = json.loads(logout_response.getResponse())
        print ("Logged out of WF")
    

result = []

session_id = wfLogin()

if session_id != "":
    
    customer_request = HttpRequest({'url': WORKFRONT_API_URL})
    endpoint = '/prgm/%s?sessionID=%s&portfolioID=%s&customerID=%s' % (FI_ID, session_id, newPortfolioId, FI_ID)
    jsonObj = "{}"
    payload = {}

    customer_response = customer_request.put(endpoint, jsonObj, contentType='application/json')
    
    if customer_response.getStatus() != 200:
        print('# Error connecting to WF\n')
        print(customer_response)
        print(customer_response.getStatus())
        print(customer_response.errorDump())
        sys.exit(1)
    else:
        response_json = json.loads(customer_response.getResponse())
        print ("response_json: ", response_json)
        
    #log out of current session
    wfLogout(session_id)

else:
    print ("No sessionID is available")
    sys.exit(1)

0 ответов

Другие вопросы по тегам