{"id":4117,"date":"2017-12-14T00:29:27","date_gmt":"2017-12-13T23:29:27","guid":{"rendered":"http:\/\/gpmfactory.com\/?p=4117"},"modified":"2018-01-11T09:32:08","modified_gmt":"2018-01-11T08:32:08","slug":"plugin-apex-pour-oracle-content-experience-cloud","status":"publish","type":"post","link":"https:\/\/gpmfactory.com\/index.php\/2017\/12\/14\/plugin-apex-pour-oracle-content-experience-cloud\/","title":{"rendered":"APEX Plugin for Oracle Content &#038; Experience Cloud Service"},"content":{"rendered":"<h3>Object<\/h3>\n<p>This plugin displays the content of either a folder or a file by relying on <a href=\"https:\/\/docs.oracle.com\/en\/cloud\/paas\/content-cloud\/developer\/applinks-resource.html\"><strong>applink<\/strong><\/a> feature of <a href=\"https:\/\/cloud.oracle.com\/en_US\/content\">Oracle Content &amp; Experience Cloud Service<\/a> (formerly Oracle documents Cloud Service).<br \/>\ncf\u00a0<a href=\"https:\/\/docs.oracle.com\/en\/cloud\/paas\/content-cloud\/developer\/applinks-resource.html\">documentation<\/a><\/p>\n<p>cf <a href=\"https:\/\/youtu.be\/zhe-wDHwLn0\">Vid\u00e9o<\/a><!--more--><\/p>\n<p>The following sample show integration of this plugin in the packaged application <em>Customer Tracker<\/em>.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-4118 size-large\" src=\"http:\/\/gpmfactory.com\/wp-content\/uploads\/2017\/12\/apex28-1024x559.png\" alt=\"\" width=\"720\" height=\"393\" srcset=\"https:\/\/gpmfactory.com\/wp-content\/uploads\/2017\/12\/apex28-1024x559.png 1024w, https:\/\/gpmfactory.com\/wp-content\/uploads\/2017\/12\/apex28-300x164.png 300w, https:\/\/gpmfactory.com\/wp-content\/uploads\/2017\/12\/apex28-768x419.png 768w, https:\/\/gpmfactory.com\/wp-content\/uploads\/2017\/12\/apex28.png 1343w\" sizes=\"auto, (max-width: 720px) 100vw, 720px\" \/><\/p>\n<p>A region named documents, based on the plugin, has been added to the other tabs.<\/p>\n<p>&nbsp;<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-4119 size-large\" src=\"http:\/\/gpmfactory.com\/wp-content\/uploads\/2017\/12\/apex22-1024x557.png\" alt=\"\" width=\"720\" height=\"392\" srcset=\"https:\/\/gpmfactory.com\/wp-content\/uploads\/2017\/12\/apex22-1024x557.png 1024w, https:\/\/gpmfactory.com\/wp-content\/uploads\/2017\/12\/apex22-300x163.png 300w, https:\/\/gpmfactory.com\/wp-content\/uploads\/2017\/12\/apex22-768x418.png 768w, https:\/\/gpmfactory.com\/wp-content\/uploads\/2017\/12\/apex22.png 1348w\" sizes=\"auto, (max-width: 720px) 100vw, 720px\" \/><\/p>\n<h3>Prerequisites:<\/h3>\n<ul>\n<li>Subscription to Oracle Content &amp; Experience Cloud Service (CEC)<\/li>\n<li>Instance of Oracle Apex which allows to add certificate (this is not the case for apex.oracle.com)<\/li>\n<li><a href=\"https:\/\/apex.oracle.com\/pls\/apex\/germancommunities\/apexcommunity\/tipp\/6121\/index-en.html\">Install certificate with orapki<\/a><\/li>\n<li>Setup wallet credentials in Apex admin interface (once)<\/li>\n<li>Have valid credentials for a CEC member who is owner or manager of folders<\/li>\n<li>have following informations on hand:<\/li>\n<li>Oracle identity domain the content instance is attached with<\/li>\n<li>credentials of member who is owner or manager of file or folder<\/li>\n<li>Member GUID who will be assigned with the applink (can be different form previous one)<\/li>\n<li>Folder or File GUID<\/li>\n<\/ul>\n<h3>Process<\/h3>\n<p>The plugin starts by <a href=\"http:\/\/gpmfactory.com\/index.php\/2017\/11\/21\/mise-en-oeuvre-des-applinks-dans-oracle-content-experience\/\">creating an applink<\/a>\u00a0. A plsql code is used for calling a REST Api through https and\u00a0 this is the reason why a certificate must be added previously in the db wallet. During the call, we must give:<\/p>\n<ol>\n<li>the folder GUID,<\/li>\n<li>the role assigned to the user in the apex session,<\/li>\n<li>the User locale,<\/li>\n<li>and the CEC member assigned to.<\/li>\n<\/ol>\n<p>Once the applink has been called, the plugin get the following informations:<\/p>\n<ul>\n<li>iframe url<\/li>\n<li>Access Token<\/li>\n<li>Refresh token<\/li>\n<\/ul>\n<p>Then, the plugin generates specific Javascript code which fills the Div container for the iframe.<\/p>\n<p>Once the APEX session is terminated, the Apex user will not be able to access to the folder. This is why Applink is well suited for contextual (in the context of an application) usage of CEC.<\/p>\n<h3>Authentication<\/h3>\n<p>The plugin need a basic authentication which is done by the server at plsql level (Apex).<\/p>\n<p>OAuth is not use because the flow implemented by CEC involve a manual login from user (through OAM).<br \/>\nin other words, <a href=\"http:\/\/gpmfactory.com\/index.php\/2017\/11\/21\/mise-en-oeuvre-de-oauth-avec-oracle-content-experience\/\">Oauth, in this version, doesn&rsquo;t implement Client Credential Oauth flow<\/a>.<br \/>\nIn the plugin, the credential will be passed as a base64 encoded value.<br \/>\nenter a sql statement which returns one column that contains a base64 encoded credential<\/p>\n<p>ie: select &lsquo;sjdfhkjsdhfkjshdfks&#8211;&lsquo; key from dual<br \/>\nThe plugin doesn&rsquo;t encode in base64, therefore encoding must be done (cf below)<br \/>\nAs a reminder, the string to be encoded is in the format of: &lt;user&gt;:&lt;password&gt; (don&rsquo;t forget the \u00ab\u00a0:\u00a0\u00bb)<br \/>\nsample of query statement:<\/p>\n<pre>select replace(utl_raw.cast_to_varchar2\r\n (utl_encode.base64_encode(\r\n utl_raw.cast_to_raw('USERNAME:PWD')\r\n )\r\n ),chr(13)||chr(10),'')\r\nfrom dual<\/pre>\n<h3>Limitations:<\/h3>\n<ul>\n<li>works only for folders. File is not implemented yet<\/li>\n<li>Doesn&rsquo;t work with apex.oracle.com<\/li>\n<\/ul>\n<p>Ce plugin permet de visualiser le contenu d&rsquo;un folder dans une application Apex.<br \/>\nLe principe de fonctionnement s&rsquo;appuie sur le m\u00e9canisme <em><strong>applink<\/strong><\/em>, et il est tr\u00e8s bien adapt\u00e9 \u00e0 un contexte applicatif.<\/p>\n<p>T\u00e9l\u00e9chargement: cf <a href=\"https:\/\/apex.world\/ords\/f?p=100:710:8911302859518::::P710_PLG_ID:COM.GPMFACTORY.ORADOCS\">apex.world<\/a><\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Object This plugin displays the content of either a folder or a file by relying on applink feature of Oracle Content &amp; Experience Cloud&#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"ppma_author":[150],"class_list":["post-4117","post","type-post","status-publish","format-standard","hentry","category-non-classe"],"authors":[{"term_id":150,"user_id":1,"is_guest":0,"slug":"admin8700","display_name":"Patrick","avatar_url":"https:\/\/secure.gravatar.com\/avatar\/209d5ed69b74d288390621ab4c1d3773?s=96&d=mm&r=g","0":null,"1":"","2":"","3":"","4":"","5":"","6":"","7":"","8":""}],"_links":{"self":[{"href":"https:\/\/gpmfactory.com\/index.php\/wp-json\/wp\/v2\/posts\/4117","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/gpmfactory.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/gpmfactory.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/gpmfactory.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/gpmfactory.com\/index.php\/wp-json\/wp\/v2\/comments?post=4117"}],"version-history":[{"count":9,"href":"https:\/\/gpmfactory.com\/index.php\/wp-json\/wp\/v2\/posts\/4117\/revisions"}],"predecessor-version":[{"id":4244,"href":"https:\/\/gpmfactory.com\/index.php\/wp-json\/wp\/v2\/posts\/4117\/revisions\/4244"}],"wp:attachment":[{"href":"https:\/\/gpmfactory.com\/index.php\/wp-json\/wp\/v2\/media?parent=4117"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/gpmfactory.com\/index.php\/wp-json\/wp\/v2\/categories?post=4117"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/gpmfactory.com\/index.php\/wp-json\/wp\/v2\/tags?post=4117"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/gpmfactory.com\/index.php\/wp-json\/wp\/v2\/ppma_author?post=4117"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}