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.

Any suggestions/ideas?

 

Thank you,

Laura

 

Add Comment
3 Answer(s)

Sadly, I think many of us have run into this exact need over the years. I am unaware of an API but if you have SSO you should be able to minimize clicks with the direct URL.

Agile Angel Answered on April 22, 2020.
Add Comment

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.

Agile Angel Answered on April 22, 2020.
Add Comment

Hi Keith,

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:

****

select item.id,

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,

C.status change_status,

C.in_review,

P2.list20 AS Training_Required,

AM.ID AS AM_ID,

AM.Attach_ID,

A.Attachment_Number,

VSM.File_ID,

F.FileName,

F.File_Type,

F.File_Size,

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

”AS DOC_SOURCE_DOCUMENT_NO,

”DOC_SOURCE_DOCUMENT_REV,

NT.Description AS DOT_TYPE

FROM item

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!

Laura

Agile User Answered on April 23, 2020.

Yep, all you need to do is set the document root, or some other virtual directory, and point it to the vault directory. It’s pretty basic IIS / HTTPD stuff and there’s tons of documentation and videos online.

on April 23, 2020.
Add Comment

Your Answer

By posting your answer, you agree to the privacy policy and terms of service.