[Forum FAQ] A content management tool with dashboard based on SharePoint List

1. 
Scenario:
The SharePoint OOTB List has saved us a lot of time on managing mess data. It provides three forms to create/view/edit items, the ability to save the views we want with some specific filtering and sorting condition, versioning for easy restoring, and we
can make it advanced with workflow contains the specific business logic.
However, if there is a need for better user experience, interacting with the public APIs and a bit of script to customize the web page would be required.
Suppose there is a requirement like this:
We need a content collection tool which collects ideas from contributors, the newly ideas will be reviewed by reviewers.
We may need to filter the list in a convenient way, get the wanted result with the data from the list and display in a chart or rank list. 
We can add some buttons in Metro style to display the counting result of the data from the list dynamically. When we click them, the list will be filtered and sorted to display a friendly set of items. Also, we need to display a trend of the mess data graphically
in some beautiful charts.  If we want to find out some outstanding contributors, top contributor board would be more comfortable than the top N items in the OOTB list view.
The page would look like this:
2. 
Introduction:
Engineers will come up with some ideas in the daily job and write a content to enlighten others. Reviewers will help to review ideas or contents and publish the contents if qualified.
The complete process looks like this:
As we can see, only the approved idea can be written as a content and only the approved content can be published.
2.1
How it works
We build the whole tool in one page. All ideas and contents will be saved in a custom list. This is how it looks like:
There are three parts in this page:
1       
2       
2.1       
2.1.1       
Top menu
The top menu contains three elements:
A Drop Down menu for filtering data by team, it will refresh the other two parts with the filtered data:
A hyperlink “STATISTIC” links to a PowerBI report whose data source is the custom list.
A hyperlink “FEEDBACK” for collecting feedbacks:
The feedbacks will be saved in another list:
2.1.2       
Information menu
This part will display the calculated data retrieved from the list within tiles, chart and ranking list.
The tiles can be clicked to filter and refresh the list view.
2.1.3       
List view
A list stores all ideas and contents with the properties needed. It can be filtered by the Top menu and Information menu.
The customization on the OOTB custom list template makes it more powerful and more suit for this scenario:
1. An item leveled comment feature (based on OOTB Tags & Notes feature) for other users make comments to an idea or content:
2. Title column: When there is no attachment in the current item, it redirects to the default DisplayForm page. If there is, it will open the attachment (usually a .docx file) in Word Online in a new tab.
3. ECB menu: Add some custom shortcuts for popular actions:
4. A hyperlink column stores the hyperlink points to the website where the content is published to.
3.   
How to achieve it
This solution will be hosted in SharePoint Online environment, so we do all the job using JavaScript, REST API and Client Object Model.
The Drop Down menu, tiles, rank list are generated with some HTML+CSS.
The Trend Chart, we take advantage of the Combo chart in the Google chart library.  
The list view is hosted in a <iframe> which can be easily filtered and refreshed by just passing a generated URL with query string.
For the customization on the list view and the ECB menu, JSLink with Client Object Model would be OK.
3.1
Specific to every part
3.1.1       
Top menu
3.1.1.1 
Drop Down menu for retrieving filtered data and refreshing the display of the related controls
When user selects a team here, there will be a request sent out for retrieving items of the list. By default, the limit is 100 when using REST API to get list items, so we can append a “$top=1000” to require more items from server.
Code snippet like this:
$.ajax({
url: _spPageContextInfo.webAbsoluteUrl + "/_api/web/lists/getbytitle('" + listName + "')/items?$top=1000",
method: "GET",
headers: { "Accept": "application/json; odata=verbose" },
success: function (data) {
console.log("getListItems succ");
console.log(data);
error: function (data) {
alert("getListItems error");
//failure(data);
Then we will get the “data” as a JSON format string, it contains all the values we need from the list:
We can get the values we want like this:
//get item Count
var arr = [], len;
for(key in data.d.results)
arr.push(key);
len = arr.length;
for(var ii=0; ii<len; ii++)
var team = data.d.results[ii].Team;
var month = data.d.results[ii].Month;
As we need to know the counts of each type of ideas or contents, we use an array for saving the counters:
//ary to store all counters for tiles: all/pendingIdea/pendingContent/my/approvedIdea/approvedContent
var aryAllCounters = [0,0,0,0,0,0];
for(var ii=0; ii<len; ii++)
//get pendingIdeaCount
if(data.d.results[ii].Statuss === 'Pending')
aryAllCounters[1]++;
Once all the numbers are ready, we can do the refreshing.
As the list view page is hosted in a <iframe>, all we need to do is passing a constructed URL with query string:
url_team = URL + "?FilterField1="+FIELD_MYTEAM+"&FilterValue1=" + sel_val;
$iframe.attr('src', url_team);
3.1.1.2 
Hyperlink for popping up a dialog to collect feedbacks
The feedback dialog hosts another page which contains two buttons and one text area.
The HTML code of the FEEDBACK button:
<a id="feedback" href="#" onclick="javascript:openDialogBox('../SitePages/Feedback.aspx');">FEEDBACK</a>
The openDialogBox() function:
function openDialogBox(url){
var options = SP.UI.$create_DialogOptions();
options.url = url;
options.height = 130;
options.width = 425;
options.title = "Feedback";
SP.UI.ModalDialog.showModalDialog(options);
In the Feedback.aspx page, when user click submit button, we will save the content of the text area into the feedback list:
function addListItem()
this.clientContext = new SP.ClientContext.get_current();
this.oList = clientContext.get_web().get_lists().getByTitle('Feedback');
var itemCreateInfo = new SP.ListItemCreationInformation();
this.oListItem = this.oList.addItem(itemCreateInfo);
//set person field
var userValue = new SP.FieldUserValue();
//userValue.set_lookupId(this.currentUser.get_id());
userValue.set_lookupId(_spPageContextInfo.userId);
oListItem.set_item('Provider', userValue);
//Sets the specified field value
oListItem.set_item('Title', str);
//datetime field
var currDate = new Date();
oListItem.set_item('Submit_Time',currDate);
oListItem.update();
clientContext.executeQueryAsync(Function.createDelegate(this, this.onQuerySucceeded_add), Function.createDelegate(this, this.onQueryFailed));
3.1.2       
Information menu
3.1.2.1 
Tile shortcut
In the click event of the tiles, the code will pass a generated URL with query string to the <iframe>:
//filter list only
$tile.click(function(){
//distinguish tiles by id
var v = $(this).attr('id');
switch(v)
case S_MY_CONTENT:
url_team1 = URL + "?FilterField1="+FIELD_COMPOSER+"&FilterValue1=" + currentUsername;
break;
case S_PENDING_IDEA:
url_team1 = url_team + "&FilterField2="+FIELD_STATUS+"&FilterValue2=Pending&FilterField3="+FIELD_IDEATYPE+"&FilterValue3=Idea";
break;
$iframe.attr('src', url_team1);
3.1.2.2 
Trend chart
The chart will be initialized with the numbers by month stored in a 3D array:
google.load("visualization", "1", {packages:["corechart"]});
google.setOnLoadCallback(drawVisualization);
function drawVisualization(ary)
// Some raw data (not necessarily accurate)
var data = google.visualization.arrayToDataTable(ary);
var view = new google.visualization.DataView(data);
view.setColumns([0, 1,
{ calc: "stringify",
sourceColumn: 1,
type: "string",
role: "annotation"
2]);
// Create and draw the visualization.
var ac = new google.visualization.ComboChart(document.getElementById('chart1'));
ac.draw(view, {
//legend: 'top',
legend: {
title : '',
//width: 0,
//height: 285,
vAxis: {title: "", format:'#',viewWindowMode:'explicit',
viewWindow:{
min:0
},ticks: ticks
//hAxis: {title: ""},
lineWidth: 4,
bar: {groupWidth: "60%"},
seriesType: "bars",
series: {1: {type: "line"}},
chartArea:{
colors: ['#A4C400', '#F9A13B']
3.1.2.3 
Top contributors rank list
When retrieving list items, we can get the “AuthorId” which represents the id of the user in the siteUserInfoList. We run another request to retrieve all items in the siteUserInfoList which stores the username with the URL of profile.
Then we can use a hash table(provided by jshashtable.js) to store the user id, username and profile URL:
$.ajax({
url: _spPageContextInfo.webAbsoluteUrl + "/_api/web/siteUserInfoList/Items",
method: "GET",
headers: { "Accept": "application/json; odata=verbose" },
success: function (data) {
console.log(data);
//get item Count
var arr = [], len;
for(key in data.d.results)
arr.push(key);
len = arr.length;
var ht_authors = new Hashtable();
for(var ii=0; ii<len; ii++)
if(authorSet.contains(data.d.results[ii].Id))
if(data.d.results[ii].Picture != null)
ht_authors.put(data.d.results[ii].Id, data.d.results[ii].Title+'|'+data.d.results[ii].Picture.Url);
else
ht_authors.put(data.d.results[ii].Id, data.d.results[ii].Title+'|');
console.log("ht_authors.keys(): "+ht_authors.keys());
console.log("ht_authors.values(): "+ht_authors.values());
error: function (data) {
alert("error");
//failure(data);
3.1.3       
List view
For the Comment button, custom title link and the custom published link of each item, we can use JSLink to achieve.
Comment button: It is supposed to be the OOTB “Type” column, I change the icon and modify the click event of it to pop up a comment dialog which take advantage of the OOTB “Tags&Notes” feature;
Custom Title link: As there will be two situations of an item: has attachment or not. We will need to run a request to get the URL of attachment and change the hyperlink of the Title field accordingly:
(function () {
// Create object that have the context information about the field that we want to change it output render
var linkFiledContext = {};
linkFiledContext.Templates = {};
linkFiledContext.Templates.Fields = {
//"Attachments": { "View": AttachmentsFiledTemplate }
"LinkTitle": { "View": TitleFieldTemplate },
"Published_x0020_Link": { "View": PublishedLinkFieldTemplate },
"DocIcon": { "View": DocIconFieldTemplate },
"MyTeam": { "View": MyTeamFieldTemplate }
SPClientTemplates.TemplateManager.RegisterTemplateOverrides(linkFiledContext);
function DocIconFieldTemplate(ctx)
var htmlStr = "";
var listId = ctx.listName;
var itemId = ctx.CurrentItem.ID;
var s = listId + "," + itemId;
htmlStr += "<img width='16' height='16' class=' ms-draggable' alt='Comment' src='"+_spPageContextInfo.webAbsoluteUrl+"/Shared%20Documents/img/comment-icon.png' border='0' ms-draggableragId='0' onclick='CommentIcon(\""+ s +"\")'></img>";
return htmlStr;
function CommentIcon(s)
var listId = s.split(',')[0];
var itemId = s.split(',')[1];
var url=_spPageContextInfo.webAbsoluteUrl+"/_layouts/15/socialdataframe.aspx?listid="+listId+"&id="+itemId+"&mode=1";
console.log(url);
openCustomDialog(url,"Comment",650,520);
function openCustomDialog(pageUrl,title,width,height)
SP.UI.ModalDialog.showModalDialog({
url: pageUrl,
width: width,
height: height,
title: title,
dialogReturnValueCallback: function (result){
if(result== SP.UI.DialogResult.OK)
parent.window.location.href=parent.window.location.href;
function PublishedLinkFieldTemplate(ctx)
//console.log(ctx);
var htmlStr = "";
var itemPublishedLink = "";
var itemPublishedLinkDesc = "";
if((ctx.CurrentItem.Published_x0020_Link != ''))
itemPublishedLink = ctx.CurrentItem.Published_x0020_Link;
itemPublishedLinkDesc = ctx.CurrentItem["Published_x0020_Link.desc"];
htmlStr = "<a href='" + itemPublishedLink + "' target='_blank'>" + itemPublishedLinkDesc + "</a>";
return htmlStr;
function MyTeamFieldTemplate(ctx)
var htmlStr = "";
var itemMyTeam = "";
if((ctx.CurrentItem.MyTeam[0] != undefined) && (ctx.CurrentItem.MyTeam[0] != null))
itemMyTeam = ctx.CurrentItem.MyTeam[0].lookupValue;
htmlStr = itemMyTeam;
return htmlStr;
function TitleFieldTemplate(ctx) {
console.log(ctx.CurrentItem);
var itemId = ctx.CurrentItem.ID;
var itemTitle = ctx.CurrentItem.Title;
var listName = ctx.ListTitle;
var siteUrl = _spPageContextInfo.webAbsoluteUrl;
var listUrl = _spPageContextInfo.webAbsoluteUrl + "/Lists/" +listName;
var fileNames = getAttachmentsNames(listName, itemId);
console.log(fileNames);
var fileNameAry = fileNames.split("|");
var htmlStr = "";
//check the attachment existence
if(fileNameAry[0] != '')
for(var j = 0; j < fileNameAry.length; j++)
var fileName = fileNameAry[j];
var s1 = "<a class=\"ms-listlink ms-draggable\" onmousedown=\"return VerifyHref(this, event, '1', 'SharePoint.OpenDocuments.3', '1";
//1``https://microsoft.sharepoint.com/teams/spfrmcs
var s2 = "/_layouts/15/WopiFrame.aspx?sourcedoc=";
//2``/teams/spfrmcs/Lists/Content%20Pool
var s3 = "/Attachments/";
//3``137
var s4 = "/";
//4``[Forum FAQ] Highlight the list tab in Quick Launch when the list view changes.docx
var s5 = "&action=default'); return false;\" href=\"";
//5``https://microsoft.sharepoint.com/teams/spfrmcs/Lists/Content Pool
var s6 = "/Attachments/";
//6``137
var s7 = "/";
//7``[Forum FAQ] Highlight the list tab in Quick Launch when the list view changes.docx
var s8 = "\" target=\"_blank\" DragId=\"1\">";
//8``Highlight the list tab in Quick Launch when the list view changes
var s9 = "</a>";
var s = s1+siteUrl+s2+listUrl+s3+itemId+s4+fileName+s5+listUrl+s6+itemId+s7+fileName+s8+itemTitle+s9;
htmlStr += s;
//console.log(htmlStr);
if (j != fileNameAry.length - 1)
htmlStr += "<br/>";
//if no attachments, set the <a> point to displayForm
else
htmlStr += "<a class='ms-listlink ms-draggable' onclick='EditLink2(this,28);return false;' onfocus='OnLink(this)' href='" + siteUrl + "/_layouts/15/listform.aspx?PageType=4&ListId=%7BE54A4FBB%2DDDC2%2D4F7E%2D8343%2D8A1C78757CF4%7D&ID=" + itemId + "&ContentTypeID=0x010079A1D928FF77984C80BFEF1D65C3809F' target='_blank' DragId='0'>" + itemTitle + "</a>";
return htmlStr;
function getAttachmentsNames(listName,itemId) {
var url = _spPageContextInfo.webAbsoluteUrl;
var requestUri = url + "/_api/web/lists/getbytitle('" + listName + "')/items(" + itemId + ")/AttachmentFiles";
var str = "";
// execute AJAX request
$.ajax({
url: requestUri,
type: "GET",
headers: { "ACCEPT": "application/json;odata=verbose" },
async: false,
success: function (data) {
for (var i = 0; i < data.d.results.length; i++)
if(i != 0)
str += "|";
str += data.d.results[i].FileName;
error: function (err) {
//alert(err);
return str;
3.2
How to make them work together
When selecting an option in the Drop Down menu, the Information menu and the List view will be refreshed separately.
When clicking the tiles, only the list view will be filtered and refreshed, the other parts will not be influenced.
When items created/modified, the whole page will be refreshed to keep all the numbers in each part updated.  A workflow will also be triggered to inform engineers or reviewers the progress of an item or content.
3.3
Other customizations
3.3.1       
ECB menu and permission control
As we need to refresh the page when new item or modify item, we put all the form pages in a custom modal dialog and execute the refresh in the success callback function.
There are three roles: Site owner, reviewer and engineer. They have limited privileges according to the roles they are:
Site owner: Full control on the list, can see all the buttons in the ECB menu;
Reviewer: There is another list which stores the names of each team and reviewers’ names of each team. The reviewer has limited full control only on the team they belong to. To other teams, the role can be seen as a visitor;
Composer
(create owner): The one who contribute an idea. For the ideas\contents from other teams, this role can be seen as visitor.
The ECB menu they can see is:
For the visitor, the ECB menu will only display a few buttons:
The code:
(function () {
var viewContext = {};
viewContext.Templates = {};
viewContext.OnPostRender = OnViewPostRender;
SPClientTemplates.TemplateManager.RegisterTemplateOverrides(viewContext);
function OnViewPostRender(ctx) {
$("a[title='More options']").removeAttr("onclick");
$(".ms-list-itemLink").removeAttr("onclick");
$("a[title='More options']").attr("onclick", "showMenuList(this);return false;");
function showMenuList(obj) {
var itemId = $(obj).parents("tr").attr("id").split(",")[1];
//show ECB menu
CoreInvoke('ShowECBMenuForTr', obj, event);
var teamId = getCurrentTeamId("Content Pool", itemId);
var styles = "";
if (isSiteOwner("Technet SharePoint Team Owners")) {
styles = "li[text='Delete Item ']{display:block;} li.ms-core-menu-separator:last-child{display:block;} ul.ms-core-menu-list > li:nth-last-child(5){display:block;} li[text='Edit Item ']{display:block;} li[text='Upload Document']{display:block;} li[text='Approve']{display:block;} li[text='Reject']{display:block;} li[text='Add Publish Link']{display:block;}";
} else if (isReviewer("List1_FAQ_team", teamId, "Reviewers")) {
styles = "li[text='Delete Item ']{display:block;} li.ms-core-menu-separator:last-child{display:block;} ul.ms-core-menu-list > li:nth-last-child(5){display:block;} li[text='Edit Item ']{display:block;} li[text='Upload Document']{display:block;} li[text='Approve']{display:block;} li[text='Reject']{display:block;} li[text='Add Publish Link']{display:block;}";
} else if (isComposer(obj)) {
styles = "li[text='Delete Item ']{display:block;} li.ms-core-menu-separator:last-child{display:block;} ul.ms-core-menu-list > li:nth-last-child(5){display:block;} li[text='Edit Item ']{display:block;} li[text='Upload Document']{display:block;} li[text='Approve']{display:none;} li[text='Reject']{display:none;} li[text='Add Publish Link']{display:none;}";
} else {
styles = "li[text='Delete Item ']{display:none;} li.ms-core-menu-separator:last-child{display:none;} ul.ms-core-menu-list > li:nth-last-child(5){display:none;} li[text='Edit Item ']{display:none;} li[text='Upload Document']{display:none;} li[text='Approve']{display:none;} li[text='Reject']{display:none;} li[text='Add Publish Link']{display:none;}";
includeStyleElement(styles);
//get current team id
function getCurrentTeamId(listName,itemId){
var teamId="";
var requestUri = _spPageContextInfo.webAbsoluteUrl +
"/_api/Web/Lists/getByTitle('"+listName+"')/items("+itemId+")?$select=MyTeamId";
// execute AJAX request
$.ajax({
url: requestUri,
type: "GET",
headers: { "ACCEPT": "application/json;odata=verbose" },
async: false,
success: function (data) {
if(data.d.MyTeamId!=null){
teamId=data.d.MyTeamId;
}else{
teamId="0";
error: function () {
//alert("Failed to get details");
return teamId;
//check whether is owner
//Technet SharePoint Team Owners
function isSiteOwner(groupName) {
var flag = false;
var requestUri = _spPageContextInfo.webAbsoluteUrl + "/_api/Web/effectiveBasePermissions";
// execute AJAX request
$.ajax({
url: requestUri,
type: "GET",
headers: { "ACCEPT": "application/json;odata=verbose" },
async: false,
success: function (data) {
var permissions = new SP.BasePermissions();
permissions.fromJson(data.d.EffectiveBasePermissions);
flag = permissions.has(SP.PermissionKind.managePermissions);
error: function () {
//alert("Failed to get details");
return flag;
function isComposer(obj) {
var flag = false;
var userId = _spPageContextInfo.userId;
var composerId = $(obj).parents("tr").find("a[href*='userdisp.aspx']").attr("href").split("ID=")[1];
if (composerId == userId) {
flag = true;
return flag;
//check whether is reviewer
function isReviewer(listName,teamId,peopleColumn){
var flag=false;
var userId=_spPageContextInfo.userId;
// begin work to call across network
var requestUri = _spPageContextInfo.webAbsoluteUrl +
"/_api/Web/Lists/getByTitle('"+listName+"')/items?$select=ID&$filter=(ID eq '"+teamId+"' and "+peopleColumn+"Id eq '"+userId+"')";
// execute AJAX request
$.ajax({
url: requestUri,
type: "GET",
headers: { "ACCEPT": "application/json;odata=verbose" },
async: false,
success: function (data) {
if(data.d.results.length>0){
flag=true;
error: function () {
//alert("Failed to get details");
return flag;
//insert style into page
function includeStyleElement(styles) {
var style = document.createElement("style");
style.type = "text/css";
(document.getElementsByTagName("head")[0] || document.body).appendChild(style);
if (style.styleSheet) {
//for ie
style.styleSheet.cssText = styles;
} else {
//for w3c
style.appendChild(document.createTextNode(styles));
3.3.2       
Workflow email customization
The email will only be sent to engineer or team reviewer in the three scenarios:
When engineer uploads an idea or content, reviewer will receive an email;
When engineer uploads a content to an existing idea, reviewer will receive an email;
When reviewer approve/reject an idea or content, engineer will receive an email;
The design of the workflow process  :
 The email design like this:
Email to engineer
Email to reviewer
Let us know if you are interested in it. Happy coding!
Please click to vote if the post helps you. This can be beneficial to other community members reading the thread.

A good solution. Liked it very much. Can you please make it a technet blog for others.
[email protected]

Similar Messages

  • Integration of ADF with Vignette(Content Management Tool)

    Hi
    Is it possible to integrate ADF with vignette(Content Management Tool) in any way so that i could have the power of both the tools in developing web pages and managing the contents of it in a better way?

    ADF is an standards-based J2EE development framework, if Vignette support integration with J2EE applications then the answer would be yes, but you need to ask Vignette support.
    BTW - this forum is for Oracle Portal questions, please use the ADF forum for questions on ADF.
    Thanks,
    Mick.

  • Web content management tools for enterpise portal

    I'm currently trying to research web content management tools for enterprise portal.
    My general requirements are:
    -  Tool should sit on top of the portal/km and not require another landscape infrastructure, in other words we don't need another document management repository, but rather a way an easier interface to KM.
    -  Should be geared towards end-user management of actual content.  In other words IT provides the site framework and the business user handles the rest, with approvals with business unit
    -  Compatible with EP 7.0
    My research so far has turned up two possible solutions:
    - Webpage composer delivered by SAP
    - EasyWCM by btexx
    Are there any other solutions that people are using which might meet these needs or alternative web content management tools that could live with the portal on the same physical hardware environment?  I have searched this forum and ecohub and have not found much besides this thread which is now almost 4 years old:
    https://forums.sdn.sap.com/click.jspa?searchID=24164203&messageID=448870
    Thank you,
    Stephen

    Hi Stephen
    I'm not aware of too many other options than the ones already mentioned here. Also Iu2019m probably not the right person to ask as I have been part of the development team for the KMD product.  So Iu2019m a bit biased on that part.
    You could try to have a look at this presentation where other WCM solutions are mentioned (page 5):
    https://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/d07b5354-c058-2a10-a98d-a23f775808a6
    However if you are looking for a WCM solution with no extra landscape infrastructure and low initial setup effort you are (in my opinion) down to 3 options (Web Page Composer, Btexxu2019s or KMDu2019s product). I think all of them can be used for external content. Try to have a look at this web site u2013 made entirely with the web page composer:
    http://www.kmd.dk
    It was no easy task but it can be done.
    Martin

  • MicroSoft Content Management Server with WL Portal 10

    Hello,
    Has anyone got experience with integrating MS Content Management Server with the BEA WL Portal 10?
    i need develop a custom SPI?
    Comments, Issues, opinions?
    Best Regards,
    Zarco

    ------- Pallav Tandon wrote on 1/18/05 1:37 PM -------Cam you elaborate more on the type of integration you are looking for.WE have done integration at portlet level...crawler level etc for MCMS .. I can share my experiences if you can provide some direct queries
    Hi Pallav, we are also contemplating integration of MSCMS 2002 with plumtree. Can you describe what types of integration you have done?
    - Brandt

  • Sharepoint 2010 : Dashboard designer Datasource(Sharepoint List) will not preview data.

    Sharepoint 2010 : Dashboard designer Datasource(Sharepoint List) will not preview data.
    Preview Data-->No data
    default view is "All Items.aspx"  and I have site collection admin access.
    Any help Appreciated.
    Kannalo

    Hi Kannalo,
    You should first deploy the Dashboard to a preview site then you can preview in Dashboard designer.
    For more detailed steps to deploy a dashboard to a preview site ,please view this site:
    SharePoint 2010 PerformancePoint Services : Dashboards in Dashboard Designer (part 1) - Creating and Deploying a Dashboard :
    http://allcomputers.us/windows_server/sharepoint-2010-performancepoint-services---dashboards-in-dashboard-designer-(part-1)----creating-and-deploying-a-dashboard.aspx
    Best regards.
    Thanks
    Victoria Xia
    TechNet Community Support

  • Integrating Microsoft Filenet content Management system with oracle portal

    1. Client is having Microsoft Filenet system as content management.
    2. Client wants to integrate Filenet system with oracle portal.
    3. Please confirm whether it is feasible or not and kindly suggest us the
    document for integration process.

    I think clue is on the this line;
    at oracle.security.jazn.oc4j.JAZNFilter.doFilter(Unknown Source)
    make sure LDAP connection is working. Make sure use default ports for all connections. Most of the samples on the OTN uses default port, if you change them you, you have to modify sample code.

  • A website "Content Managment System" with CRM

    hi all,
    we're looking into revamping our company's website. It'll be mostly a B2B website (in the future b2c). We're looking into finding a Content Managment System (CMS) that can handle most of the work so people form our marketing department will be making change without manipulating the code. Most importantly we need the website to be able to link into our SAP CRM. The only simliar products i was able to find was CoreMedia and Sybit. Do you guys recommend any kind of a CMS?
    Thanks you in previous!

    Hi Samer,
    the only integration supported by SAP is the integration with an SAP Enterprise Portal. However, SAP Internet Sales can be easily and extensively modified to fit virtually any needs. Maybe you could have a look at the "Development and Extension Guide" for E-Commerce which is available from the [SAP Service Marketplace|https://service.sap.com/crm-inst] (-> SAP CRM 2005 -> CRM Core and Standalone Components) and which shows many ways to fit the webshop to your needs.
    Best regards,
    Martin

  • How to get value with two parameter fro sharepoint list in SSRS reporting

    Hi 
    I am using Sharepoint list and fetching data in SSRS.
    Using three parameter as Department,Section and subsection.
    with filter everything working fine,but if i use category All and Sub category all for particular department,unable to get record.
    please let me know how to implement.
    Help will be appreciated.
    Hasan Jamal Siddiqui(MCTS,MCPD,ITIL@V3),Sharepoint and EPM Consultant,TCS
    |
    | Twitter

    Hi Hasan,
    Per my understanding you want to add mutilple value parameters to filter the data in the sharpoint list datasource report, right?
    I have a test based on the step by step details information in below link and all works fine which will make the multiple value parameter works fine:
    https://audministrator.wordpress.com/2014/02/17/sharepoint-list-add-distinct-parameter-value/
    Add the custom code from above link
    Parem1 is the parameter which get values from a query and with all the values(duplicate value),please setting as below:
    Param2 is the parameter which will display in the report have done the deduplication, check the "Allow Multiple values" and then Specify the available value and default value using below expression:
    =Split(Code.RemoveDups(JOIN(Parameters!Param1.Value, ",")), ",")
    Add the filter and preview.
    Similar thread below for your reference:
    SSRS reporting with sharepoint list using Distinct and Multivalue
    parameters
    If i have some misunderstanding, please try yto provide more details information about your requirements.
    Regards,
    Vicky Liu
    Vicky Liu
    TechNet Community Support

  • [Forum FAQ] How to sync time with a Domain Controller for a standalone server

    As we all known, if a computer belongs to an Active Directory domain, it will sync the time automatically by using the Windows Time service that is available on Domain Controllers.
    While a standalone server will synchronize with its local hardware time and Windows time server. (Figure 1)
    Figure 1.
    Under some circumstances, a standalone server is necessary in a product environment. We can sync the time of this standalone server with the Domain Controller using
    the steps below:
    1. Modified the value of the AnnounceFlags:
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config
    Under this entry we can see the default value of AnnounceFlags is 10 (Decimal), we configure the value as 5 (Decimal). (Figure 2)
    Figure 2.
    2. Confirm the value of the registry key below is set to 0:
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpServer 
    Figure 3.
    3. Configure the standalone server to synchronize with a specific time source (Domain Controller).
    In our test, we configured our Domain Controller (192.168.10.200) as the time source. Used the following commands:
    w32tm /config /syncfromflags:manual /manualpeerlist:192.168.10.200
    4. Sync the time with the Domain Controller using the command below:
    w32tm /config /update
    From the figure below (Figure 4), you can see the after we did all the steps above, the time on the standalone server was synced with the Domain Controller.
    Figure 4.
    (Note: Peerlist is a separated list of DNS servers, or IP Addresses for the time servers)
    More information:
    Windows Time Service Tools and Settings
    http://technet.microsoft.com/en-us/library/cc773263(WS.10).aspx#w2k3tr_times_tools_dyax
    Please click to vote if the post helps you. This can be beneficial to other community members reading the thread.

    Thank you for the instruction! I am sure it is one of the scenarios that majority of administrators will run into. So I suggest to write a wiki about it and publish it for this month's TechNet Guru in Windows Server section. This month's TechNet Guru can
    be found here:
    Calling All Wise Men! Windows
    Server Gurus Needed! Apply Within! No One Turned Away!
    Thanks for your informative post. :)
    Regards.
    Mahdi Tehrani   |  
      |  
    www.mahditehrani.ir
    Please click on Propose As Answer or to mark this post as
    and helpful for other people.
    This posting is provided AS-IS with no warranties, and confers no rights.
    How to query members of 'Local Administrators' group in all computers?

  • [Forum FAQ] WSUS Configuration Manager failed to subscribe to update categories and classifications on WSUS Server

    Symptom:
    You might see an error in Software Update Point Status Message when you run software updates synchronization. (Figure 1)
    WSUS Configuration Manager failed to subscribe to update categories and classifications to WSUS Server “Server Name”
    Figure 1
    When you check the WCM.log, WSUSCtrl.log and wsyncmgr.log. There is an error in WCM.log-“Category Product:6d76a2a5-81fe-4829-b268-6eb307e40ef3 (Windows 7 Language Packs) not found
    on WSUS”. (Figure 2)
    WCM.log:
    Figure 2
    Cause:
    Windows 7 language packs are available for computers that are running Windows 7 Ultimate or Windows 7 Enterprise. The Windows 7 language packs can be installed only from the Optional
    Updates section in Windows Update. However, these language packs are not available on the Microsoft Windows Server Update Services (WSUS) server or through the Microsoft Download Center.
    For more information, please review the link below:
    Windows 7 language packs are available for computers that are running Windows 7 Ultimate or Windows 7 Enterprise
    http://support.microsoft.com/kb/2534462/he
    Resolution:
    Go to Administration -> Overview -> Site Configuration -> Sites -> Right-click CAS -> Configure Site Components -> SUP Products tab, uncheck “Windows 7 Language
    Packs”, then sync again. (Figure 3)
    Figure 3
    After Sync successfully, the “Windows 7 Language Packs” option disappeared. (Figure 4)
    Figure 4
    Alternative:
    About installing Windows 7 language packs, you could use SCCM 2012 Package feature (download manually) or Windows Update.
    http://windows.microsoft.com/en-HK/windows/language-packs#lptabs=win7
    Please click to vote if the post helps you. This can be beneficial to other community members reading the thread.

    I managed to fix my issue by coping the Client, ClientUpgrade, and Scripts from the files from SCCM install discs folder SMSSETUP to c:\program files\Microsoft Configuration Manager folder.  I noticed that some of the files in the scripts
    folder was missing and I copied the other folders over because I felt that maybe my local copy of the Client installer where missing some key files as well.  Once I did that and disabled software update push, restarted the wsus computer, and re-enabled
    the software update push it was able to publish the client and start installing it that way.
    I thing the initial log messages where pointing me in the wrong direction for a few hours because I was thinking it was permissions as well and kept trying to figure that out but in the end I do not believe any of that was the reason I was receiving the
    same error as you where.

  • PowerPivot refresh error with data feed from sharepoint list with empty exception information

    Hi,
    My Powpivot refreshing error seems to be different from what others already experienced.
    Scenario:
    Constructed an external data source in the format of Http://<server_IP>/sites/<mysitecollection>/_vti_bin/listdata.svc
    selected one table with some of the needed columns in the next step
    Create calculate colums etc.
    Create pivot tables etc.
    All worked well offline
    Upload the workbook into PowerPivot Gallery
    Reference it from a page through Excel Web Service webpart allowing manual refresh
    The refresh always reports failure with the named external data source
    I opend the log file in C:\Program Files\Common Files\microsoft shared\Web Server Extensions\15\LOGS and located the following error messages:
    ASPPHOST::ShowEngineError: Out of line object 'DataSource', referring to ID(s) 'f8939b694cae', has been specified but has not been used。The following exception occurred while the managed IDbCommand interface was being used: .
    Please note in the above message, NO detailed exception message was given. In other words,
    the exception information is empty.
    I checked as many things as I possibly could includin the security accounts etc. All seem to be right. But this empty exception got me stuck here.
    What could possibly go wrong? Any help will be appreciated.
    Thanks.

    Hello,
    Here is a good article regarding Where to get information about data refresh failures for your reference, please see:
    http://social.technet.microsoft.com/wiki/contents/articles/3870.troubleshooting-powerpivot-data-refresh.aspx
    In addition, which credential option you're configured for the PowerPivot data refresh in SharePoint farm? You can go through the following articles regarding configure the PowerPivot data refresh:
    Configure the PowerPivot Unattended Data Refresh Account (PowerPivot for SharePoint):
    http://technet.microsoft.com/en-us/library/ff773327.aspx
    Configure Stored Credentials for PowerPivot Data Refresh (PowerPivot for SharePoint):
    http://technet.microsoft.com/en-us/library/ee210671.aspx
    Hope this helps.
    Regards,
    Elvis Long
    TechNet Community Support

  • Content management with FrameMaker

    The company I work for has had a customized EDD built for structured FrameMaker. A template was developed from the EDD and the authors make technical manuals with this template. Our manuals are printed in pdf and on hard copy. We do not have any current plans to publish on the web. We are currently using FrameMaker 7.2 and will soon go to version 8.0.....anyway, the "powers that be" are looking into a Content Management system for us. A portion of our company is using XMetal with the content management system. Is it possible, with the use of DITA, to continue to use FrameMaker with content management, in conjunction with an XMetal system? We DO NOT want to lose the WYSIWYG capability. On the other hand, are there any suggestions of how to build a type of data/content management system with elements in Structured FrameMaker? As I said earlier, we publish our manuals pdf or hard copy, so keep that in mind. Thanks, Vera

    Hi Vera...
    It really depends on the CMS and how it integrates with the authoring tools. There's no problem sharing DITA files between Frame and XMetaL, but the CMS may have a special connector with XMetaL that hasn't been developed for Frame. It may be that you'll have to request that the CMS vendor develop a similar connector for FM if it doesn't exist. If the CMS doesn't make use of a connector for XMetaL .. and you just check out files then check them back in .. this process should work fine for FM as well.
    Feel free to contact me off line for more info if you need help developing a connector for FM.
    Regards,
    ...scott
    Scott Prentice
    Leximation, Inc.
    www.leximation.com
    415.485.1892

  • Xi integration with third party error /incident management tools

    Hello XI folks,
    Has anybody experience with integration of XI monitoring and error management tools with external tools like HP-Openview, Tivoli or EARS, etc...?
    Any feedback is appreciated.
    Thanks,
    R.

    Hey Roberto,
    Could you integrate XI monitoring with any of the third parties you were asking?
    Can you please share some learnings and give some tips?
    thanks in advance,
    LSP

  • Good books on Business solution or content management by SharePoint 2013 OOB Apps or functionality along with examples

    Hi,
    Any help?
    Thanks
    srabon

    Hi,
    I recommend you the book named Beginning SharePoint 2013: Building Business Solutions:
    http://www.amazon.com/Beginning-SharePoint-2013-Building-Solutions/dp/1118495896
    Practical SharePoint 2013 Enterprise Content Management:
    http://www.amazon.com/Practical-SharePoint-Enterprise-Content-Management/dp/1430261692
    Best Regards,
    Lisa Chen
    TechNet Community Support
    Please remember to mark the replies as answers if they help, and unmark the answers if they provide no help. If you have feedback for TechNet Support, contact
    [email protected]

  • Third party CMS tool with SAP EP.

    Hello,
    I'm looking for a third party content management tool which can be plugged with SAP EP.
    Can you please suggest on this.
    Thanks in advance.
    Adiga Shrinivasa

    Hi Shrinivasa,
    there are a lot of WCMS Systems that can be plugged with EP. Just have a look at the <a href="https://www.sdn.sap.com/irj/sdn/developerareas/contentportfolio">portal content portfolio</a> where you'll find some certified business packages to integrate some CMS.
    I have good knowledge about CoreMedia and RedDot and they both run very well with EP. If I remember correctly,  the first one to be certified was a product from Interwoven, but I do not know that.
    If you do not want to invest in some external product for integration (doubled license fee, doubled administrational effort, ...) you should have a look at the following solutions:
    1. easy Web CMS by btexx (quite good)
    2. business package for web editing by SAP Consulting (same)
    3. SAP web page composer as shown on teched (part of SP 20 in Q1 2007)
    As I have a very close look to your issue (WCMS in EP) I'm looking forward to the web page composer. Maybe you should have a look at the teched slides.
    HTH,
    Carsten

Maybe you are looking for