Хранилище Veeva возвращает INVALID_SESSION_ID, даже если вход выполнен успешно - PullRequest
0 голосов
/ 11 декабря 2018

У меня есть следующий код для получения product_id из хранилища veeva:

let volt_APILogin = () => {
    let args = {
        data: { username: VOLT_CREDENTIALS.get('cred').Username  , password: VOLT_CREDENTIALS.get('cred').Password },
        headers : { "Content-Type": "application/x-www-form-urlencoded", "Cache-Control": "no-cache" }
    };

    return new Promise(function(resolve, reject){
        client.post("https://vv-agency-indegene.veevavault.com/api/v18.3/auth", args, function (data, response) {
            SESSIONID = data.sessionId;
            console.log(SESSIONID);            
            resolve("Connected Successfully");
        });
    });
} 

let volt_getProduct = () => {
    return new Promise(function(resolve,reject){
        let args = {      
            headers: {
                "Authorization" : SESSIONID
            }        
        };

        console.log(SESSIONID);

        client.post(`https://vv-agency-indegene.veevavault.com/api/v18.3/query?q=SELECT id FROM product__v WHERE name__v = '${VOLT_CREDENTIALS.get('cred').productName }'` , args , function( data , res) {
            console.log(data);
            console.log( 'PRODUCT ID IS ' + data.data[0].id);
            productID = data.data[0].id;
            resolve("Product ID");
        });
    })  
}

Я называю эти функции так:

volt_APILogin().then( () => {
      volt_getProduct().then( () => {

      });
});

Но я получаю следующую ошибку:

{ responseStatus: 'FAILURE',
  errors:
   [ { type: 'INVALID_SESSION_ID',
       message: 'Invalid or expired session ID.' } ] }

Однако я не верю, что мой идентификатор сессии недействителен, как указано в документе ЗДЕСЬ .Я что-то надеваю?Если у меня нет необходимых привилегий, я должен получить ошибку INSUFFICIENT_ACCESS, не так ли?

...