1. This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn More.
  2. Anuncie Aqui
    Anuncie aqui você Também: fdantas@4each.com.br

Path Variables RequestBuilder

Discussão em 'Progress 4GL' iniciado por rohis, Setembro 26, 2023.

  1. rohis

    rohis Membro Ativo

    Olá!
    Estou consumindo uma API com o Método Post
    O RequestBuilder foi criado da seguinte forma:
    // build the request
    oRequest = RequestBuilder:post(cURL)
    :AddHeader('Content-Type', 'application/json')
    :AddHeader('Authorization', c-authorization)
    :AddJsonData (oSuccessObj)
    :AddPathVariables('doctype', 'expense') //Como corrigir isto enviando a Path Variable ????
    :Request.

    Preciso adicionar uma variável 'doctype' com valor 'expense' em uma sessão 'Path Variables'. Como adiciono isto no oRequest?

    No Postman está na aba Params representado conforme a tela abaixo
    upload_2023-9-26_17-34-50.jpeg
  2. rafael.andrade

    rafael.andrade Membro Master Moderador Equipe de Suporte

    Não entendi, não tem a função AddPathVariables ???
  3. rohis

    rohis Membro Ativo

  4. rafael.andrade

    rafael.andrade Membro Master Moderador Equipe de Suporte

    Não dá pra fazer o mesmo com o Progress?
  5. rohis

    rohis Membro Ativo

    Olá! consegui fazer. Estou melhorando a minha habilidade aos poucos neste sentido.
    na documentação do Concur mostra o parâmetro na URL mesmo
    https://{datacenterURI}/financialintegration/fi/v4/companies/transactiontypes/*{docType}*/transactions/postingconfirmations

    Na coleção Postman que eu tinha como exemplo a URL estava assim e acabou me con
    https://us2.api.concursolutions.com/financialintegration/fi/v4/companies/transactiontypes/:doctype/transactions/postingconfirmations

    Via Progress, ficou assim
    https://us2.api.concursolutions.com/financialintegration/fi/v4/companies/transactiontypes/expense/transactions/postingconfirmations

    Chamada - com o exemplo do trecho:

    //https://us2.api.concursolutions.com...pes/expense/transactions/postingconfirmations
    ASSIGN c-authorization = 'Bearer ' + p-token1h
    cURL = 'https://us2.api.concursolutions.com/financialintegration/fi/v4/companies/transactiontypes/'
    cURL = cURL + tt-dados.DocType + '/' + 'transactions/postingconfirmations'
    oClient = ClientBuilder:Build():UsingLibrary(oLib):SetNumRetries(3):SetRetryPause(1):SetRequestTimeout(40):Client.

    // build the request
    oRequest = RequestBuilder:post(cURL)
    :AddHeader('Content-Type', 'application/json')
    :AddHeader('Authorization', c-authorization)
    :AddJsonData (oSuccessObj)
    :Request.

    // make the request
    oResponse = oClient:Execute(oRequest) no-error.

    Aproveitando também, eu gostaria de compartilhar que obter os dados de resposta do Concur foi outro desafio, mas consegui gravar tanto em um JSon físico quanto em uma temp-table.

    O SAP retornou um JSon que o Progress entende como tipo JsonConstruct.
    Existem poucas bases de conhecimento e exemplos sobre isto .
    IF TYPE-OF(oEntity, JsonConstruct) THEN
    CAST(oEntity, JsonConstruct):WriteFile('c:\ob1\temp\entity.json', true).

    O que dizem...'JsonConstruct is the super-type of JsonArray and JsonObject.' A solução está neste post: https://community-archive.progress.com/forums/00019/60722.html#206756

    Sugiro depois criarmos uma base de conhecimento só para isto.

    Obrigada! Abraços!
    rlfritz e rafael.andrade curtiram isso.

Compartilhe esta Página