Is there API to get or view agile document attachment for training system interface?
Hello Agile gurus,
We currently have agile interfaced to pilgrim/smartsolve (training system).
We are not happy with our integration because it literally takes 7 clicks for a user to open a training document. The integrations sends the doc#, rev and url for the actual attachment via boomi to smartsolve.
The user logs into smartsolve, clicks ‘read and signoff’, then has to download the url, open the url, log into agile, save the document then click and open the document!
What we’d like to know is if any of you have used an api ( to avoid the url download and agile sign in ) to just view/get the document in one click? We would like to keep the data we send to smartsolve the same but invoke the url internally and pass credentials to login to agile securely.
The other option we have heard of is actually replicating the actual doc or pdf attachment across to smartsolve but we really don’t like the idea of having the physical document in two places.
What I have done before is propagate the URL directly to the file into external systems, so users just click one link and BAM! there’s the attachment. Yep, it’s just that cool. There are some caveats, so keep reading. I’m sure you’re aware that the attachments are stored as files in an organized directory structure using a file name prefix, file ID, and file extension (optional.) The path to the file is stored in the database, so all you need is the path to the file and throw some type of web server on top of the file vault, such as IIS or Apache HTTP, and now you have direct access to the attachments.
WARNING!! WARNING!! WARNING!!
Doing this will bypass all security restrictions governing the attachments. If someone happens to know the file path, file ID, and extension to sensitive files (I know you memorize this stuff…) then they could download the file. The web server access logs would track the download to the IP where the request came from, but that’s about all the tracking you’ll get, unless you put some other type of software on top of the web server that provides additional controls.
Thanks so much for your answer.
So we are passing the url for the document attachment folder and file to the training system. This is the query we use:
item.item_number AS Document_Number,
item.description AS Document_Description,
rev.rev_number AS Document_Rev,
rev.release_type AS Lifecycle_Phase,
rev.release_date AS Released_Date,
C.route_date AS Route_Date,
P2.list20 AS Training_Required,
AM.ID AS AM_ID,
CASE WHEN P2.list20 = 3496296 THEN ‘http://servernameprod:7001/Agile/link/File%20Folder/’||A.Attachment_Number||’/’||REPLACE(F.FileName,’ ‘,’%20’)
ELSE ‘http://servernamedev:7001/Agile/link/File%20Folder/’||A.Attachment_Number||’/’||REPLACE(F.FileName,’ ‘,’%20’)
END AS URL,
0 AS DOC_IS_NEW_REVISION, — Load all documents as initial for first Release
NT.Description AS DOT_TYPE
JOIN page_two P2 on item.id=P2.id
JOIN nodetable NT on item.subclass = NT.ID
JOIN rev on item.id = rev.ITEM
JOIN change C on C.ID = rev.change
JOIN attachment_map AM on AM.parent_id = item.ID AND AM.parent_id2 = item.latest_released_eco AND AM.list01 IN (3497855,3496359)
JOIN attachment A on AM.Attach_ID = A.ID
JOIN Version_File_Map VSM on VSM.Version_ID = AM.Latest_VSN
JOIN Files F on F.ID = VSM.File_ID
WHERE P2.list20 in (3496296,3497055)
AND rev.latest_flag = 1 AND rev.release_type IN (974,975) AND rev.rev_number <> ‘null’
AND rev.release_date >= sysdate – 10
This runs in boomi. There are 2 versions – this one picks up new documents released since the last time the query was run. The other one picks up documents on changes in CCB and passes that url so training coordinator can get those set up in training system pending release of the change.
Are you saying that you pass the actual agile########.doc in the url from the ifs vault (d:oracle\agile\agilevault) on the server?
And when you say ‘throw some type of web server on top of the file vault, such as IIS or Apache HTTP’ – is there documentation on that somewhere.?
We’re version 9.3.3 – 2 servers – one agile PLM, other DB server. The vault is sitting on the PLM server.
Thank you so much for your help!