1

I have implemented a website using Oracle Webcenter Portal (WCP) integrated with Oracle Webcenter Content (WCC).

Some pages of the website need to show public documents that are stored in WCC. In order to do this I use WCP content presenters. However, I realized that, in order for the document to be visible to a user that is not logged in, that document must have no account associated in WCC.

However, for security reasons, prior to it's release the document needs to have an account.

I was trying to use WCC Workflow events to alter the account using wfUpdateMetaData Idoc function. However, after some research I realized that this function is only capable of altering metadata that was manually created by me.

Is there any way to achieve this?

Thanks in advance.

1 Answers1

1

You have two possible approaches:

  1. It is possible to give access to non-logged in users, by giving access rights to Guest. It's probably not what you want, so I'll leave this option without further description for now.
  2. Second option is to change account by using executeService to call the UPDATE_DOCMETA service. It might an issue that the document is in an active workflow and you might have to call wfRelease prior to the service call (I have no possibility to test it right now)
Sam
  • 5,424
  • 1
  • 18
  • 33
  • UPDATE_DOCMETA only updates the latest revision. This may or may not be what you desire. If you want to update all revisions, then you would want to call UPDATE_DOCINFO. However, if you try to call this during workflow, you will run into a database transaction. Look at this component, for more info: https://bitbucket.org/mythics/workflowfolderupdate/ – Jonathan Hult Jun 19 '18 at 13:32
  • Hello Sam, thanks for your reply. Indeed the second option is the one I need. However I'm having some trouble implementing this in the workflow. The documentation you provided and other documentation I've been searching only seem to point out the way to use the execute service command in an external file. In my case I need to use the command in a workflow event using idoc script. Do you have any idea how to do that? – André Oliveira Jun 19 '18 at 14:23
  • First you set all the parameters like this: `<$variable=value$>`, then you call the service with `<$executeService("UPDATE_DOCMETA")$>`. If you want to try it out in an easy way, put them as url parameters to /cs/idcplg and add &IsJava as one of the parameters. – Sam Jun 19 '18 at 14:46
  • Hello Sam, I tried the following code "<$dDocAccount=CMCR$> <$executeService("UPDATE_DOCINFO")$>" in the exit tab of an event in my workflow. However, when I approve a document in that workflow I get the following error, "Failure of Web Server bridge. No backend server availabe for connection: timedout after 10 seconds or idempotent set to OFF or method not idempotent". I've checked my enterprise manager and all my services are up and running. Am I missing something? Or do I need to active sometype of service? – André Oliveira Jun 20 '18 at 09:49
  • I've been experimenting and I have surpassed the above issue. Currently the document gets approved but there is no change in the account. I've tried setting the wfAction variable to UPDATE_META and jumping to another step in the workflow where I executed the UPDATE_DOCINFO service in the entry event. But nothing happened. – André Oliveira Jun 20 '18 at 11:02