[INCUBATOR-36] Veeva connector Created: 07/Jun/23  Updated: 22/Jan/24  Resolved: 22/Jan/24

Status: Closed
Project: Incubator
Component/s: None
Affects Version/s: None
Fix Version/s: 1.0

Type: New Feature Priority: Major
Reporter: Jan Schulte Assignee: Teresa Miyar
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Template:
Acceptance criteria:
Empty
Date of First Response:
Work Started:

 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…


 Comments   
Comment by Teresa Miyar [ 06/Oct/23 ]

This issue it's already being worked on by Riste

Comment by Teresa Miyar [ 22/Jan/24 ]

version 1.0 released today

Generated at Mon Feb 12 12:33:13 CET 2024 using Jira 9.4.2#940002-sha1:46d1a51de284217efdcb32434eab47a99af2938b.