Customizations on Simplified UI (FUSE) - HCM Cloud Service

Hello Team, Requirement: 1.Ability to Add new icon on Simplified UI(FUSE) and Navigate to the required destination task.                       2. Ability to change the destination of the page upon clicking Performance, It should redirect to Classic Perfromance Page. Can the above two requirements be achieved using Simplified UI ?I was able to add new box in Classical UI Welcome Dashboard and navigate directly to Perfromance page from Landing page. Client wants similar functionality to happen from Simplified UI. Note: We are on SaaS and dont have any access to developer.       Thanks in Advance for the Help!!                          RegardsSuveer


WebCenterSites 12 - Widget / portlet equivalent

Hi, I'm new to WebcenterSites and I'm not yet familiar with with all the concepts and names (SiteEntry, CSElement..).Instead, I'm familiar with MVC concept and other CMS. What I'm trying to do is to create: 1) a simple page layout with a fixed header and footer, and two main columns (or one) in which I can drag and drop anything2) a simple widget (the one that should be put into the page) that calls an external webservice (json/jaxb) and render content accordingly, based on a template. Is it so complicated to do this? What's the 'equivalent' for the concept of widget/portlet in WCS 12? I've looked into ProxyAsset, but they seems to be so complicated.. also, I saw that Gadgets have been deprecated from this release. Can you please help me? Thanks and regardsGiulio
Hi, It is definitely and easily possible with WebCenter Sites 12c or earlier version of Oracle WebCenter Sites 11g to implement following: 1) a simple page layout with a fixed header and footer, and two main columns (or one) in which I can drag and drop anythingVery easy and very common scenario within WebCenter Sites. Download Jump Start Kit (JSK): Oracle WebCenter Sites 11g version from Oracle Support.2) a simple widget (the one that should be put into the page) that calls an external webservice (json/jaxb) and render content accordingly, based on a template.Again, very common ask by any client. You can download JSK from Oracle Support and check avisports for how youtube videos are embedded using Proxy asset. Implementing proxy asset is very easy once you get the gist of it. I definelty suggest to go with proxy asset if your external webservice provides you API to fetch data.Furthermore, read about proxy assets in detail here -,Guddu
Hi Guddu, thanks for the information.For point 1, I think that I've almost understood how to do it, using fragment taglib and controller logic.For point 2, (the widget) I experimented creating a SiteEntry with a controller (that call the external WS) and a root CSElement for rendering. I dropped it into the page, and it worked (after I could find how to drop a SiteEntry inside a container). Anyway, I'm wondering which is the best practices for this use cases, I don't think that ProxyAsset can completely satisfy what I'm trying to do:1) creating a form component in which the user insert the address, with     * custom options that can be configured about field visibility and obligatoriness     * external web service call to save the user on a 3rd party system.2) creating a product list with:     * custom options about the pagination of the products (5,10, 20)     * external web service call that retrieves the product and render them Thanks in advance.Regards Giulio
Hi, 1. For user, it would be simple <form> tag, on entering email and submit, its simple ajax call to external service. No role of WCS except you write logic in JSP for form.2. Not clear about the requirement. What is custom options about the pagination of products? Yeah, you can write web service call to retrieve the product. Furthermore, as proxy asset only stores metadata, in your case, it can be product SKU or some product unique id. You can make static list of recommendation asset using these products for any targeting too. RegardsGuddu
Hi Guddu,my main concerns are the following: 1) I don't want to code everything in JSP, and I would want to perform some validation on a controller before sending data to the 3rd party system2) I would like to be able to drag and drop my 'widget' into the page, and configuring it in order to have variables that I can use in the template, for example:     - shopping cart component should display net or gross value, according to business user configuration     - fields on delivery address component should be marked as mandatory or not according to business user configuration At the moment, I think that, to have this flexible behaviour, i need to create an Asset Type for each component type (ShoppingBag, DeliveryAddress).In this way, I could store the configurations in the asset and render it accordingly. Do you agree?  I still don't think that proxy assets fit my requirement, because data from the external systems are 'volatile' and I don't want to save anything in CMS. Thanks againGiulio

Dynamic Content triggered by Custom Event data

I have a campaign that is designed to include dynamic content. The campaign is to be triggered in a program by a custom event. Can I have dynamic content triggered off a data field in the custom event?
Tom Steele we might need a little more detail to be able to help :-)  Presume you mean Dynamic Content for use in an email or a landing page? But when you say "data field in a custom event" are you referring to a field referenced in an integration call or do you mean a field in a Custom Object or one of the pre-configured Eloqua Events objects. If it's either of the latter then there is no problem to create Dynamic Content based on a value in a field in a linked Custom Object or against a filed in a linked Event Object. You can even have multiple criteria, use AND and OR statements and group conditions together. Pop over to the ELopqua Docs here for more info. Greg
Provided this is related to Responsys,the answer is Yes you can do it.Proceed as folllow : 1) create campaign  dynamic variables in the data srouces of your campaign ( From Workbook > Data Sources > Add dynmaic variable)2) create the dynamic content versions with rules based on these campaign dynamic variable3) in your program, create program variables ( in the program canvas go to settings >  tracking and variables), with the exact same name as the one you used for the campaign dynamic variable4) in your program add your campaign and your custom event.5) when triggering the custom event, pass along the data you want to use for personnalisation, using again the same naming convention If you followed the proper naming convention the following should occur :The custom event is triger and pass along a value ( or several )The program is triggered and capture as entry variable the field(s) passed by the custom eventThe values are then pass to any node that has the field name used in them. Hope this is clear and it makes sense. Best Regards
That's a great answer Sikaar. But what about data when it will be coming via API and there's no data that's sitting Responsys? 
If you want to store your data in responsys you will need to ue hte " Set Data" node.If you don't, the data willl exist as entry data for this entry / this contact / this program only until the contact reached a end state. Hope it clarifies. Rgds
Hi Sikaar, Let me put forward my use-case for more understanding: I am trying to implement one use-case for behavioral triggered email campaign in which data feed will come from website through an API and automatically dynamic content will go to each users. Let me elaborate my use-case: Being a financial services company, we give pre-approved offers to customers, prospects who so ever comes to my offer page section. They need to put their mobile phone number, first name & last name and enter OTP to authorize themselves. Once, they authenticate, I can identify them that who's my existing customer or prospect one. This logic runs at my offer backend.  Now, once they are in --> there will be 2 scenarios - Either they will avail their ready offer or check and bounce back from my website. One user (customer or prospect) can have max. 10 offers for each product and it's all dynamic. For. e.g one can have only one offer or some can have more than one also. So, my intent is to retarget customers/prospects with their recommended offers once they sees their offer and bounce back from my offer page.  Data will flow into Responsys using API and campaign is supposed to trigger with all individual's recommended offer as a dynamic campaign. How will I achieve this use-case in Responsys? Can you please guide me with all the steps that will be required in getting this use case live. Let me know if there's any doubt. Regards,MF
So let me rephrase my original answer : 1) create a program in Responsys starting with a custom event -> email campaign -> end 2) in the PROGRAM, go to options and create all the variable you will need ( in the program canvas go to settings >  tracking and variables)  3) in the PROGRAM, go to your custom event and choose the appropriate event ( offers bounce back  in your case). You will make you API call to this custom event from your website to trigger the campaign ( see also ) 4) create campaign  dynamic variables in the data sources of your campaign ( From Workbook > Data Sources > Add dynmaic variable) with the exact same name as the one you used for the campaign dynamic variable 5) Either create the dynamic content versions with rules based on these campaign dynamic variable / or use RPL to script dynamic behaviorfor more information about RPL go to the reponsys help and search for RPL 6) when triggering the custom event, pass along the data you want to use for personnalisation, using again the same naming convention NB : I am choosing here to trigger a program and not a campaign as it is far more flexible, should you be willing to trigger another campaign, or add further steps, you would not require to change any code , but instead imply update the PROGRAM NB2 : I cannot really go in more details and strongly recommend you either turn to Professional Services to help you with the implementation. Best Regards
Hi Sikaar, Thanks for sharing. It helps now. Will now test and write back to you in case of any further doubts.  Well, I have got 3 more queries: 1. For custom event, do I have to create multiple custom events or only one which can solve for triggering multiple behavioral triggers. 2. Referring to point #3, do I have to create a blank supplemental table which will be joined with my profile contact list having all the custom variables as headers that will be required to be passed in content?  3. Referring to point #5, while creating a dynamic content regions, will I be calling the same custom variables which are mentioned in the above supp table or need to follow a different step. If RPL has to be used, what code will be useful in this and where it needs to be placed. Regards,MF
1. Literally up to you, depending on the difference between your use cases. If it is similar behaviours, one custom event is sufficient, you can pass along in the variables a "type" tant can be use in a data switch to route the customer in the appropriate branch of your program. 2. No you don't have to create any table, as the variable will only exist temporarily in the program. if you want to save them somewhere, use the technic mentionned earlier using Set data nodes 3. Yes you would be calling the same variables ( note you need to create them in the campaign first). depending on the possibilities, RPL might be helpful you will find a complete guide in the online help of reponsys Best regards
Thanks Sikaar for all your inputs. That's really appreciable. Will get back to you in case I get stuck somewhere Regards,MF
Sikaar KEIT-Oracle: Hey there, I have followed the same steps as suggested by you: 1. Defined a custom event for WEB TRIGGER API2. Created a program (Custom event >> Email Campaign >> End)3. Defined tracking entries & custom variables in program setting4. Created an email campaign with all & exact same custom variables to be personalized. But for the dynamic personalization where I have to personalize the content basis his personalized offer, I am getting stuck in defining the regions. Refer the attached screenshot where I have 3 parts which needs to be personalized - Product Name, Offer Amount & URL for that respective product for 'Know  More' CTA.    Also, in email workbook where I have to include audience, do I have to select all audience or I can create one blank SQL view with the condition as: select $a$.riid_ from $a$ where $a$.customer_id_='4645345883465345787234836473463454' $a$: Contact List Can you suggest how to take it forward? Regards,Mohsin
Hi, 1) for the dynamic content it looks perfect to me, ( you actually don't need to use regions)  just pass the variable with the exact same name ( i.e PRODUCT_NAME_1 ) in the custom event api call : "optionalData": [{"name": "CUSTOM_TEXT","value": "some text"},{"name": "PRODUCT_NAME_1","value": "AWESOME PRODUCT"},{"name": "AMOUNT_1","value": 12345},{"name": "BLINK_1","value": "" }] The HTML seems fine as rendered here. 2) you don't need to bother with the audience in content workbook, the email will be send to any one entering the program ( the criteria used in email workbook only applies if you launch the campaign from the workbook - no influence on programs)
Thanks Sikaar. That's really helpful. Just one question: In regards to dynamic content as per screenshot, how would I control on showing dynamic offers to each customer. For. e.g I can have 4 offers, other ones might have 6 offers, So in such cases, there could be 2 scenarios: 1. Creating each template with respective offers. E.g one template with single offer, other template have 2 offers and so on. Basis backend data, those customers who falls under single offer category, they will receive single offer template and so on. 2. What if I create a master template with all the offers say maximum offers could be 10, will that be possible I can control (hide & show) dynamicity in the single template in that campaign keeping everything same. What approach would you suggest will be best here? Regards,Mohsin
Hi, Option 1 is viable but not ideal, not really flexible. The option 2 logic is good, and can even go further with RPL. Basically with this scripting language you can create a loop that iterate through your product(s) and thus always have it displayed right. Again going through all this process here would not be appropriate - try to reach out to your CSM or the RPL guide. Just as an example the script would look like follow : <#data ProductsTable as products limit=3><#filter PRODUCT_ID=RECO_IDS><#fields DESCRIPTION DISCOUNT IMG PRIX PRODUCT_ID URL PRIX_PROMO>${products.URL} ${products.DESCRIPTION} <a alt="" href="${products.URL}" target="_blank" title=""><img src="${products.IMG}" /> </a> ${products.PRIX?string["0.00"]} </#data>
Thanks Sikar. I can understand. But that's really helpful. Thanks for sharing all the important information. I will check with my CSM. I think RPL is something which looks complex from a marketer's stand point. Rest all is good to go. Thanks,Mohsin

Form Builder (Form Building) in Sites

Hi All,We have a requirement from our client for content authors to create forms using Web Center Sites. The kind of form which is required is a "Contact Us" form, where by the author can specify certain bits of information from the browsing user. As we see it, there is nothing out of the box to support this. Our thinking is that we could use collections of attributes and make something quite rudimentary for the users to input their information. We would have to manually create some kind of service/servlet to take this information and email it out to the required people. Is there "any" kind of best practice regarding form building? I know its an open question and I am willing to provide further details and requirements. Regards Jason
You can design an asset model to handle the forms. You can use Page asset (or create your own container) and a Form Action and one or more FromQuestion assets. Create a template to render the form using Action and Question assets. Design the FormQuestion defintion to be flexible to handle various types of Question types (Text, Radio, Drop-down etc). Check the forms integration that we have done as a solution #  Regards,Ravi G

Standalone JSP Pages in Webcenter Sites

Hi Team, As part of the previous version(CS 7.5) we had created stand alone JSP's for creating assets in bulk using (XML Post and Asset API) in the advanced interface admin console.  Post the upgrade( since the user interface has been changed we are not able to incorporate the same in Contributor Interface. Can someone throw some light on how to achieve this?  Regards,Hari
Hi Team,Any update on the query?We have added a New Widget in the Dashboard which has few links that calls CSElement/SiteEntry. Our ask here is how to invoke the  CSElement/SiteEntry in the new tab within the Contributor Interface.We can load only assets which are part of the family. For eg:'asset','SiteEntry:1214929942369')" We want the SiteEntry to be previewed in the Contributor interface.How can we specify the action in the above syntax?.  Regards, Hari
Few Options for you  1. Since it is a custom JSP, you can invoke this by customizing the menu. 2. Create a WEM Application so that users can switch to WEM app to perform the action.

What are the best practices to improve performance of inline editing

Hello AllCould you let me know what should be the best practices to improve inline editing performance.We have seen that inline editing takes time .1. while loading the asset 2. while updating the sections 3. At the time of saving asset.The content authors are using IE11.
Hello, This all boils down to how many asset operations are being carried out while editing an asset in WEB mode. If I am not wrong, Insite Editing is more useful for detail webpages like article detail webpage, product detail webpage, etc. If you have header, head, footer, nav and side nav on the webpage where insite editing is enable, that would mean lot of assets being loaded which editors may not be editing usually via WEB mode and also if those sections are dynamically rendered. So basically there is nothing much that can be done but still you can try the following:1. Create previewwrapper which calls various common non-editable sections as head, header, footer, nav and side nav as cached pagelet or doesn't call those section at all whichever have many asset operations. But while generating actual url via assembler or vanity url, take care to pass correct template and wrapper to generate correct web page url for live site.2. Also when editing asset using WEB mode, assets are loaded directly from db or resultset cache as rendermode variable is set to "insite". Hence, if you pass variable explicitly rendermode=live while calling common non-editable sections, may be loading time for assets might decrease (I have not tested though).3. Check for the assets/sections which are always dynamically loaded and does not uses insite editing feature can be excluded from the WEB mode itself to improve the performance of asset load while editing.4. Make sure that slotnames are unique across all editable section. Apart from this, I don't think there is much to do to improve performance. Regards,Guddu
Thanks Guddu for the reply.The recommendations are certainly worth trying.Do you think, loading other libraries/framework e.g. jquery/angularJS, CSS files will impact the performance? RegardsMilind
I hope the libraries/frameworks and static files are called via cached element. Furthermore, if you have analytics or some kind of tracking enabled, they should be excluded while in insite editing. You can make use of <insite:ifedit/> tag to check if current asset is in insite editing mode or not. RegardsGuddu