Uploaded image for project: 'Incubator'
  1. Incubator
  2. INCUBATOR-36

Veeva connector

    XMLWordPrintable

Details

    • New Feature
    • Resolution: Fixed
    • Major
    • 1.0
    • None
    • None

    Description

      VEEVA connector

       

      Veeva is a CMS specialized in Content management in a highly regulated environment.

       

      We need to create a content picker to allow practitioners to select modular content from veeva to place it in medical portals.

       

      The picker should be context specific (Certain pages can`t have certain types of veeva content due to regulatory reasons.) Therefore our standard standard picker framework won`t fit a JSField based approach is advisable.

       

      You can access the sandbox at https://vvtechpartner-atypical-promomats01.veevavault.com/

      Here are the first few steps that can get you started:

      • Authentication - You’ll need a sessionId ** token that you can then pass with each request for authentication
      • Postman Request: “Username and Password”
      • Relevant vars:
      1. {}{}     **     Username
      2. {}{}     **     Password
      • Get Modules - Once you’re authenticated you can request a list of modules. Most of the requests are done using VQL. There are sometimes endpoints for the requests you’re trying to make but VQL is usually more flexible. For example, there is an endpoint to get modules 
      • Postman Request: “Query Modules”
      • Query Breakdown: SELECT <module_columns>, (SELECT <module_asset_columns> FROM module_asset_vr) FROM content_module_v [WHERE <condition>]
      • Get module assets – Once you have a module that you want to retrieve the assets of, you can send a VQL query to get that info
      • Postman Request: “Query Modules Assets”
      • Query Breakdown: SELECT <module_assset_columns, can include joins as above> FROM content_module_asset__v [WHERE <condition>]
      • Using endpoints – You can try to do it all using dedicated endpoints instead of VQL but I ran into road blocks. If you want to get a list of modules and the assets that belong to them, you would go as follows:
      • Request modules
      1. {}{}     **     Request: *https://developer.veevavault.com/api/22.3/#retrieve-object-record-collection*
      2. {}{}     **     Params:
      • object_name = content_module__v
      • Request info about a module
      1. {}{}     **     Request: *https://developer.veevavault.com/api/22.3/#retrieve-object-record*
      2. {}{}     **     Params
      • object_name = content_module__v
      • object_record_id = <module_id> ex: V3L000000001001
      1. {}{}     **     Problem – as you’ll see, the list of module assets that are present in the module are not a part of that response
      • Request module assets
      1. {}{}     **     Request: *https://developer.veevavault.com/api/22.3/#retrieve-object-record-collection*
      2. {}{}     **     Params:
      • object_name = content_module_asset__v
      • Request info about a module asset
      1. {}{}     **     Request: *https://developer.veevavault.com/api/22.3/#retrieve-object-record*
      2. {}{}     **     Params
      • object_name = content_module__v
      • object_record_id = <module_asset_id> ex: V3M000000001019
      1. {}{}     **     Problem – you now do get the parent module of this module asset, but this is the reverse of what we need. We therefore need to join requests b and d, and we need VQL to do that…

      Checklists

        Acceptance criteria

        Attachments

          Activity

            People

              tmiyar Teresa Miyar
              jschulte Jan Schulte
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:
                Work Started: