Saving data on custom button click in list tile
Hi,
I have a list tile, on which certain records are being populated based on the flag "Confirm_flag=0".
When I click on 'confirm All' button which is on the same tile, the 'Confirm_flag' has to be updated to '1' for all records.
I added the code the following code on the 'Confirm All' click
anchoronthetile.bo.MakeDirty(True) -- to make 'save' button enable
mcore_beforeSave(true) -- calling the event for saving
After that I added the code on mcore_beforeSave()
anchoronthetile.bo.save()
But this code not giving the proper out and How to set the "Confirm_Flag" value to 1?
Please help me out
thanx & regds
Mateen
Hi Mohammed,
As you have a BusinessCollection, thus you need to loop throught the businesscollection collecting each record into similar type of business object and then update the values.
e.g
DIM Businessobject as new objectOfTypeBusinesscollection
BusinessCollection = Tile.anchor.Bo
For each businessobject in businesscollection
businessobject.confirm_flag = '1'
next
This is a psuedocode and you can work upon the same to furnish it.
Best Regards,
Pratik Patel
<b>Reward with Points!</b>
Similar Messages
-
Hello All,
I have custom ribbon button on editform/dispform in my list. I want to display current list name on button click of this custom ribbon button. How to achieve it??
Thanks in advance..!!Hey,
Did you ever tried this variables?
Anyways variable _spPageContextInfo.pageListId' works for me. It will give list GUID on listforms.
<CommandUIHandler Command="EditFormButtonCommand" CommandAction="javascript:window.open(L_Menu_BaseUrl + '/_layouts/incitemkt/downloadallattachments.aspx?ID=' + {ItemId} + '&source=' + _spPageContextInfo.pageListId);" />
Thanks. -
Displaying an HTML Data Set on button click
I'm using the code from the
HTML
DATA Set Example
I have the code in a function and I want to have it display
in a div on the page when a user clicks a specific button.
I get this error message: "spry:region or spry:detailregion
attribute has no data set!"
This is my javascript:
function evalNames( )
var myArrayOfData = [
{ lastname: "Davis", firstname: "Kirk" },
{ lastname: "Miller", firstname: "James" },
{ lastname: "Wilson", firstname: "Alex" },
{ lastname: "Moore", firstname: "Albert" },
{ lastname: "Taylor", firstname: "Eric" },
{ lastname: "Anderson", firstname: "Vincent" },
{ lastname: "Thomas", firstname: "Anthony" },
{ lastname: "Lee", firstname: "John" },
{ lastname: "Smith", firstname: "Edward" },
{ lastname: "Johnson", firstname: "Neil" },
{ lastname: "Williams", firstname: "Steve" },
{ lastname: "Jones", firstname: "John" },
{ lastname: "Brown", firstname: "Joe" }
var hashTable = [];
for (var i = 0; i < myArrayOfData.length; i++)
myArrayOfData
.ds_RowID = i;
hashTable = myArrayOfData
var dsPeople = new Spry.Data.DataSet();
dsPeople.data = myArrayOfData;
dsPeople.dataHash = hashTable;
dsPeople.loadData();
var Output2 = "<input type="button" value="Sort By Last
Name" onclick="dsPeople.sort(['lastname', 'firstname'], 'toggle');"
/>";
Output2 +="<input type="button" value="Sort By First Name"
onclick="dsPeople.sort(['firstname', 'lastname'], 'toggle');"
/>";
Output2 +="<div spry:region="dsPeople">";
Output2 +="<table border="1">";
Output2
+="<tr><th>ds_RowID</th><th>Last
Name</th><th>First Name</th></tr>";
Output2 +="<tr
spry:repeat="dsPeople"><td>{ds_RowID}</td><td>{lastname}</td><td>{firstname}</td></tr>";
Output2 +="</table>";
Output2 +="</div>";
document.getElementById("nameResults").innerHTML = Output2;
I have a button on my page with the function evalNames() and
I have a div called "nameResults"
Is there an easier way to accomplish the same thing with the
Spry Framework? In theory should I be able to get this html data to
display in a div on the user's click of a button? Any suggestions
on making this work(it could just be a syntax error in the way my
var Output2 is written)?Hello,
Based on the code above I discovered a number of problems:
1. The dsPeople DataSet has sense inside the function only so
the regions will not be able to use it. Instead you should move the
dsPeople DataSet declaration outside the function in global scope.
2. The code you try to inject into the innerHTML is not
valid. Inside double quotes all the double quotes should be escaped
or single quotes should be used.
3. The regions are instantiated only a single time on page
load so if you need to inject a new region into the page you'll
have to reinitialize the regions or the new region will not be
considered.
Based on your code above I change it a little bit to solve
the issues:
<script type="text/javascript">
var dsPeople = new Spry.Data.DataSet();
function evalNames( )
var myArrayOfData = [
{ lastname: "Davis", firstname: "Kirk" },
{ lastname: "Miller", firstname: "James" },
{ lastname: "Wilson", firstname: "Alex" },
{ lastname: "Moore", firstname: "Albert" },
{ lastname: "Taylor", firstname: "Eric" },
{ lastname: "Anderson", firstname: "Vincent" },
{ lastname: "Thomas", firstname: "Anthony" },
{ lastname: "Lee", firstname: "John" },
{ lastname: "Smith", firstname: "Edward" },
{ lastname: "Johnson", firstname: "Neil" },
{ lastname: "Williams", firstname: "Steve" },
{ lastname: "Jones", firstname: "John" },
{ lastname: "Brown", firstname: "Joe" }
var hashTable = [];
for (var i = 0; i < myArrayOfData.length; i++)
myArrayOfData.ds_RowID = i;
hashTable = myArrayOfData;
dsPeople.data = myArrayOfData;
dsPeople.dataHash = hashTable;
dsPeople.loadData();
var Output2 = "<input type='button' value='Sort By Last
Name' onclick='dsPeople.sort([\'lastname\', \'firstname\'],
\'toggle\');' />";
Output2 +="<input type='button' value='Sort By First
Name' onclick='dsPeople.sort([\'firstname\', \'lastname\'],
\'toggle\');' />";
Output2 +="<div spry:region='dsPeople'>";
Output2 +="<table border='1'>";
Output2
+="<tr><th>ds_RowID</th><th>Last
Name</th><th>First Name</th></tr>";
Output2 +="<tr
spry:repeat='dsPeople'><td>{ds_RowID}</td><td>{lastname}</td><td>{firstname}</td></tr>";
Output2 +="</table>";
Output2 +="</div>";
var el = document.getElementById("nameResults");
el.innerHTML = Output2;
Spry.Data.initRegions();
</script>
</head>
<body>
<div id="nameResults" style="border: 1px solid
red"></div>
<a href="#" onclick="evalNames(); return false;">Eval
Names</a>
</body>
A more easy way to achieve your goal is that the region to
already exists in page having either the visibility hidden or the
display: none CSS attributes set and the button only to change the
CSS property to display the region. The solution in this situation
will work better from point of view of performance as the
initRegions manual call will initialize again all the regions in
page.
Regards,
Cristian MARIN -
Hi Expert,
I need help.
I created a custom button to download data to an excel sheet. after clicking the button I am getting message
"An error occurred; please try again. If the error persists, please contact technical support.".
I tried debugging WCEM, but it is not even reaching that point.
Your help will be highly appreciated.
here is the code.
BitContentview.XHTML
<wec:commandButton id="bdtexcel" immediate="true" actionListener="#{cc.vch.DownloadBITData}" type="submit" value="#{i18n['invoices.ui.openitems.printSelected']}"/>
UI-repository.xml
<ViewComponent name="BITContentView" componentHandlerClassName="com.cpr.cprwec.app.comm.module.ebpp.ui.handler.impl.BITDetailViewVCHandler"/>
BITDetailViewVCHnadler.java
package com.cpr.cprwec.app.comm.module.ebpp.ui.handler.impl;
import com.cpr.cprwec.app.comm.module.ebpp.backendobject.interf.EbppBackend;
import java.io.IOException;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
import javax.faces.context.FacesContext;
import javax.faces.context.FacesContext;
import javax.faces.event.ActionEvent;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletResponse;
import com.cpr.cprwec.app.comm.module.ebpp.modulemgmt.impl.EbppModuleAccessImpl;
import com.cpr.cprwec.app.comm.module.ebpp.modulemgmt.interf.EbppModuleAccess;
import com.cpr.cprwec.app.comm.module.ebpp.ui.dto.impl.DisputeDataDTOImpl;
import com.cpr.cprwec.app.comm.module.ebpp.ui.dto.impl.OpenItemDTOImpl;
import com.cpr.cprwec.app.comm.module.ebpp.ui.dto.interf.DisputeDataDTO;
import com.cpr.cprwec.app.comm.module.ebpp.ui.dto.interf.OpenItemDTO;
import com.cpr.cprwec.app.comm.module.ebpp.ui.dto.impl.BITDataDTOImpl;
import com.cpr.cprwec.app.comm.module.ebpp.ui.dto.interf.BITDataDTO;
import com.cpr.cprwec.app.comm.module.ebpp.ui.dto.impl.BITDetailDTOImpl;
import com.cpr.cprwec.app.comm.module.ebpp.ui.dto.interf.BITDetailDTO;
import com.sap.wec.app.common.module.common.attachment.businessobject.interf.Attachment;
import com.sap.wec.tc.core.backend.sp.jco.JCoConnection;
import com.sap.wec.tc.core.businessobject.BusinessObjectException;
import com.sap.wec.tc.core.common.exceptions.ApplicationBaseRuntimeException;
import com.sap.wec.tc.core.common.logging.WCFLocation;
import com.sap.wec.tc.core.common.searching.businessobject.impl.GenericSearch;
import com.sap.wec.tc.core.common.searching.businessobject.interf.GenericSearchReturnResultData;
import com.sap.wec.tc.core.common.util.GenericFactory;
import com.sap.wec.tc.core.common.util.Message;
import com.sap.wec.tc.core.common.util.MessageList;
import com.sap.wec.tc.core.common.util.table.Table;
import com.sap.wec.tc.core.common.util.table.TableRow;
import com.sap.wec.tc.core.modulemgmt.ForeignModuleAccess;
import com.sap.wec.tc.core.modulemgmt.ModuleAccess;
import com.sap.wec.tc.core.modulemgmt.exceptions.ModuleInactiveException;
import com.sap.wec.tc.core.modulemgmt.exceptions.ModuleLifecycleException;
import com.sap.wec.tc.core.runtime.WecFrameworkRuntime;
import com.sap.wec.tc.core.runtime.WecSession;
import com.sap.wec.tc.core.runtime.jsf.WecFrameworkRuntimeJSF;
import com.sap.wec.tc.core.runtime.jsf.composition.PageManagerBean;
import com.sap.wec.tc.core.runtime.navigation.NavigationCondition;
import com.sap.wec.tc.core.ui.composition.menu.MenuManager;
import com.sap.wec.tc.core.ui.composition.menu.MenuMetadataException;
import com.sap.wec.tc.core.ui.vc.BuildTime;
import com.sap.wec.tc.core.ui.vc.NavigationParameterBinding;
import com.sap.wec.tc.core.ui.vc.RequestParameterBinding;
import com.sap.wec.tc.core.ui.vc.impl.ViewComponentHandlerBaseImpl;
import com.cpr.cprwec.app.comm.module.ebpp.businessobject.interf.BIT;
import com.cpr.cprwec.app.comm.module.ebpp.businessobject.impl.BITImpl;
public class BITDetailViewVCHandler extends
ViewComponentHandlerBaseImpl<EbppModuleAccess> {
protected static final WCFLocation LOCATION = WCFLocation
.getInstance(BITDetailViewVCHandler.class.getName());
public BITDataDTO bitDataDTO;
public BITDetailDTO bitDetailDTO;
public List<BITDataDTO> BITDataDTOList;
public List<BITDetailDTO> BITDetailDTOList;
public boolean noBITData;
public boolean noBITDetail;
public boolean renderPanel = true;
public boolean isDownloadBITData;
public boolean isDownloadBITDetail;
public boolean downloadStarted=false;
public boolean BITFound =false;
public boolean isBITFound() {
return BITFound;
public void setDownloadStarted( boolean downloadStarted ){
this.downloadStarted = downloadStarted;
public boolean getDownloadStarted(){
return this.downloadStarted;
public void setBITFound(boolean BITFound) {
this.BITFound = BITFound;
public String getObjectID() {
return objectID;
public void setObjectID(String objectID) {
this.objectID = objectID;
public List<BITDataDTO> getBITDataDTOList() {
return BITDataDTOList;
public List<BITDetailDTO> getBITDetailDTOList() {
return BITDetailDTOList;
public Boolean getNoBITData() {
return noBITData;
public Boolean getNoBITDetail() {
return noBITDetail;
public Boolean getRenderPanel() {
return renderPanel;
private static final int DEFAULT_BUFFER_SIZE = 1024000;
public Attachment attachmentData;
public Attachment getAttachmentData() {
return attachmentData;
@RequestParameterBinding(maxLength = 1024)
protected String objectID;
@BuildTime
public String processBuildTime() throws BusinessObjectException {
BIT BIT = null;
noBITData = noBITDetail = false;
renderPanel = true;
if (isLoggedIn()) {
if ( isDownloadBITData == true ){
this.downloadBITDataExcel();
else {
this.getModuleAccess().getBITBO().clearMessages();
BIT = this.moduleAccess.getBITBO().getBITFromBackend(objectID);
BITDataDTOList = BIT.getBITDataDTOList();
BITDetailDTOList = BIT.getBITDetailDTOList();
MessageList objectData = this.getModuleAccess().getBITBO()
.getMessageList();
if (objectData.size() > 0) {
noBITData = noBITDetail = true;
renderPanel = false;
this.addMessageList(objectData);
return checkLoginCondition();
private boolean isLoggedIn() {
return checkLoginCondition() == null;
private String checkLoginCondition() {
NavigationCondition navCondition = getNavigationCondition("login");
if (!navCondition.isFullfiled()) {
navCondition.addToNavigationStack();
return navCondition.getOutcome();
return null;
public String downloadBITData(){
downloadStarted = true;
isDownloadBITData = true;
downloadBITDataExcel();
return checkLoginCondition();
public void downloadBITDataExcel() {
// dummyDebug("downloadBITDataExcel", BITDataDTOList.size(), "", "" );
if (BITDataDTOList.size() > 0) {
try {
attachmentData = this.getModuleAccess().getDownloadBO()
.getBITDataExcel(BITDataDTOList);
if (attachmentData != null) {
FacesContext faces = FacesContext.getCurrentInstance();
HttpServletResponse response = (HttpServletResponse) faces
.getExternalContext().getResponse();
response.reset();
response.setContentType(attachmentData
.getAttachmentMimeType());
response.setContentLength(attachmentData
.getAttachmentContent().length);
response.setHeader("Content-disposition",
"attachment;filename="
+ attachmentData.getAttachmentName());
response.setBufferSize(DEFAULT_BUFFER_SIZE);
ServletOutputStream out;
try {
out = response.getOutputStream();
out.write(attachmentData.getAttachmentContent());
out.flush();
faces.responseComplete();
} catch (IOException e) {
throw new ApplicationBaseRuntimeException(
"Problem opening file", e);
} finally {
attachmentData = null;
} catch (BusinessObjectException e) {
e.printStackTrace();
isDownloadBITData = false;Thanks Hamendra for checking the issue.
I am setting up breakpoints in WCEM, tab JAVA EE then from menu RUN->Toggle brekpoints and then debug configuration.
the breakpoints are in several places in handler class BITDetailviewVCHandler class including method downloadBITData.
this method I am calling from BitContentview.XHTML
<wec:commandButton id="bdtexcel" immediate="true" actionListener="#{cc.vch.DownloadBITData}" type="submit" value="#{i18n['invoices.ui.openitems.printSelected']}"/>
When the BIT page is loading the control stops at the breakpoint.
but it is not stopping there when i click the 'Excel Download' button.
How do I get the log file. I am very new to WCEM, please guide me.
I tried to debug the UI using Google chrome. it is giving me the following error.
POST https://<>/<>/<>/<>HomePage.jsf?wec-appid=<>MAINAPP6&wec-locale=en_US 500 (Internal Server Error)
when I expand the node
c.event.trigger:<>/<>/javax.faces.resource/sap/comp.theme/templates/jquery/lib/jquery-1.4.2.min.js.jsf:54
c.event.trigger:<>/<>/javax.faces.resource/sap/comp.theme/templates/jquery/lib/jquery-1.4.2.min.js.jsf:54
c.event.trigger:<>/<>/javax.faces.resource/sap/comp.theme/templates/jquery/lib/jquery-1.4.2.min.js.jsf:66
(anonymous function):<>/<>/javax.faces.resource/sap/comp.theme/templates/jquery/lib/jquery-1.4.2.min.js.jsf:30
c.extend.each:<>/<>/javax.faces.resource/sap/comp.theme/templates/jquery/lib/jquery-1.4.2.min.js.jsf:24 c.fn.c.each:<>/<>/javax.faces.resource/sap/comp.theme/templates/jquery/lib/jquery-1.4.2.min.js.jsf:66 c.fn.extend.trigger:<>/<>/javax.faces.resource/<>dev/comp.theme/templates/jquery/js/commandButton.js.jsf:31
com.sap.wec.commandButton.submitForm:<>/<>/main/<>HomePage.jsf?wec-appid=<>MAINAPP6&objectID=500000233&page=D61CFFF8E75D48A1B348F315D209EFF9&wec-locale=en_US:48 onclick
Navigated to https://wsapdjd803.<>.ca:<>/<>/main/<>HomePage.jsf?wec-appid=<>MAINAPP6&wec-locale=en_US
Seems to be it is failing somewhere commandButton-related JavaScript functions
Thanks
Subassish -
Issue with list saving data after sites upgrade from sharepoint 2010 to sharepoint 2013
Issue with list saving data after sites upgrade from sharepoint 2010 to sharepoint 2013
Newform.aspx of list:-
Custom List is not saving data sometimes in the new form after 15 minutes and only blank entry record got created without saving data, even though some columns are mandatory fields?Hello dcakumar,
Sounds like a strang issue. If you can reproduce this can you see some errors in the ULS logs?
- Dennis | Netherlands | Blog |
Twitter -
How can I get a List ID information using JScript on ribbon button click - SharePoint2010
Dear All,
I want to display the custom list ID column information on ribbon button click using a JScript.
For This I have added a JScript in Layout folder in VS 2010 empty project solution and I have put
the following Jscript code. While running and clicking the ribbon button, it seems like JScript is not
invoking and not producing any result. It is like control is not going to Jscript file. How can I find out
the issue???? can anyone please help me on anything wrong with my script or is
it some-other problem which causes the blank result???
It is a farm sharepoint2010 solution, debugging is not working in Visual Studio & IE!!!!
Somebody please help, hard to find the error.....
Please note the JScript Code: RibAlert.js
<script>
'//var siteUrl = '/sites/MySiteCollection';
var siteUrl = 'http://a5-12457/AllItems.aspx';
function retrieveListItems()
var clientContext = new SP.ClientContext(siteUrl);
var oList = clientContext.get_web().get_lists().getByTitle('Custom List');
var camlQuery = new SP.CamlQuery();
camlQuery.set_viewXml('<View><Query><Where><Geq><FieldRef Name=\'ID\'/>' +
'<Value Type=\'Number\'>1</Value></Geq></Where></Query><RowLimit>10</RowLimit></View>');
this.collListItem = oList.getItems(camlQuery);
clientContext.load(collListItem);
clientContext.executeQueryAsync(Function.createDelegate(this, this.onQuerySucceeded), Function.createDelegate(this, this.onQueryFailed));
function onQuerySucceeded(sender, args)
var listItemInfo = '';
var listItemEnumerator = collListItem.getEnumerator();
while (listItemEnumerator.moveNext())
var oListItem = listItemEnumerator.get_current();
listItemInfo += '\nID: ' + oListItem.get_id() +
'\nTitle: ' + oListItem.get_item('Title') +
'\nBody: ' + oListItem.get_item('Body');
alert(listItemInfo.toString());
function onQueryFailed(sender, args)
alert('Request failed. ' + args.get_message() + '\n' + args.get_stackTrace());
</script>
Please note the Elements.xml
<?xml version="1.0" encoding="utf-8"?>
<Elements xmlns="http://schemas.microsoft.com/sharepoint/">
<CustomAction
Id="CustomRibbonButton"
Location="CommandUI.Ribbon"
RegistrationId="100"
RegistrationType="List">
<CommandUIExtension>
<CommandUIDefinitions>
<CommandUIDefinition
Location="Ribbon.ListItem.Manage.Controls._children">
<Button
Id="Ribbon.ListItem.Manage.Controls.TestButton"
Command="ShowAlert"
Image16by16="http://a5-12457/IconLib/ICONBTN.jpg"
Image32by32="http://a5-12457/IconLib/ICONBTN.jpg"
LabelText="Comapre alert"
TemplateAlias="o2"
Sequence="501" />
</CommandUIDefinition>
</CommandUIDefinitions>
<CommandUIHandlers>
<!-- <CommandUIHandler Command="AboutButtonCommand" CommandAction="javascript:alert();" EnabledScript="javascript:enable();"/> -->
<CommandUIHandler Command="ShowAlert" CommandAction="javascript:alert();" EnabledScript="return true;"/>
</CommandUIHandlers>
</CommandUIExtension>
</CustomAction>
<!-- <CustomAction Id="Ribbon.Library.Actions.Scripts" Location ="ScriptLink" ScriptSrc="/_layouts/DocumentTabTwo/RibButton.js" /> -->
<CustomAction Id="Ribbon.Library.Actions.Scripts" Location ="ScriptLink" ScriptSrc="/_layouts/RibAlert.js" />
</Elements>Dear All,
I want to display the custom list ID column information on ribbon button click using a JScript.
For This I have added a JScript in Layout folder in VS 2010 empty project solution and I have put
the following Jscript code. While running and clicking the ribbon button, it seems like JScript is not
invoking and not producing any result. It is like control is not going to Jscript file. How can I find out
the issue???? can anyone please help me on anything wrong with my script or is
it some-other problem which causes the blank result???
It is a farm sharepoint2010 solution, debugging is not working in Visual Studio & IE!!!!
Somebody please help, hard to find the error.....
Please note the JScript Code: RibAlert.js
<script>
'//var siteUrl = '/sites/MySiteCollection';
var siteUrl = 'http://a5-12457/AllItems.aspx';
function retrieveListItems()
var clientContext = new SP.ClientContext(siteUrl);
var oList = clientContext.get_web().get_lists().getByTitle('Custom List');
var camlQuery = new SP.CamlQuery();
camlQuery.set_viewXml('<View><Query><Where><Geq><FieldRef Name=\'ID\'/>' +
'<Value Type=\'Number\'>1</Value></Geq></Where></Query><RowLimit>10</RowLimit></View>');
this.collListItem = oList.getItems(camlQuery);
clientContext.load(collListItem);
clientContext.executeQueryAsync(Function.createDelegate(this, this.onQuerySucceeded), Function.createDelegate(this, this.onQueryFailed));
function onQuerySucceeded(sender, args)
var listItemInfo = '';
var listItemEnumerator = collListItem.getEnumerator();
while (listItemEnumerator.moveNext())
var oListItem = listItemEnumerator.get_current();
listItemInfo += '\nID: ' + oListItem.get_id() +
'\nTitle: ' + oListItem.get_item('Title') +
'\nBody: ' + oListItem.get_item('Body');
alert(listItemInfo.toString());
function onQueryFailed(sender, args)
alert('Request failed. ' + args.get_message() + '\n' + args.get_stackTrace());
</script>
Please note the Elements.xml
<?xml version="1.0" encoding="utf-8"?>
<Elements xmlns="http://schemas.microsoft.com/sharepoint/">
<CustomAction
Id="CustomRibbonButton"
Location="CommandUI.Ribbon"
RegistrationId="100"
RegistrationType="List">
<CommandUIExtension>
<CommandUIDefinitions>
<CommandUIDefinition
Location="Ribbon.ListItem.Manage.Controls._children">
<Button
Id="Ribbon.ListItem.Manage.Controls.TestButton"
Command="ShowAlert"
Image16by16="http://a5-12457/IconLib/ICONBTN.jpg"
Image32by32="http://a5-12457/IconLib/ICONBTN.jpg"
LabelText="Comapre alert"
TemplateAlias="o2"
Sequence="501" />
</CommandUIDefinition>
</CommandUIDefinitions>
<CommandUIHandlers>
<!-- <CommandUIHandler Command="AboutButtonCommand" CommandAction="javascript:alert();" EnabledScript="javascript:enable();"/> -->
<CommandUIHandler Command="ShowAlert" CommandAction="javascript:alert();" EnabledScript="return true;"/>
</CommandUIHandlers>
</CommandUIExtension>
</CustomAction>
<!-- <CustomAction Id="Ribbon.Library.Actions.Scripts" Location ="ScriptLink" ScriptSrc="/_layouts/DocumentTabTwo/RibButton.js" /> -->
<CustomAction Id="Ribbon.Library.Actions.Scripts" Location ="ScriptLink" ScriptSrc="/_layouts/RibAlert.js" />
</Elements> -
Custom button goes missing after click the button in Customer Master
Hi All,
I have one query regarding Custom tab button in Custome MAster.I have implemented BAdIs using CUSTOMER_ADD_DATA_CS and CUSTOMER_ADD_DATA to match my requirment.
Query:
While click the custom button(which i have created in Customer Master) , the subscreen is displayed but the Custom Button is missing.Where in Standard Buttons like 'GENERAL DATA' and 'COMPANY CODE DATA' Std buttons in Customer master Etc. buttons going to disable mode while click these button in custome mastar.
Is there any OSS notes to implement OR we required to set up some PF status to match above requirment.
Please let me know.
Thanks,
SridharIf I follow you, no. That's the way it works. The buttons are composited with the background so become part of it. I'd rethink the design.
Basically, you don't want the highlights to determine the color of unselected buttons. You'll always have fringes and jaggies. Having a non-transparent color set for the unselected state kind of does what you want, but won't look the best. -
Is there a list of open items at key date per customer?
Hello,
In FBL5N you can get a list of open items for a customer at some specific date.
I'm looking for a summarized list that would give me a list of sums of open items for some customer per day, so I would see for example for one month what was the sum of open items for this customer on each day.
Is there already some similar report in SAP?
Thanks and best regards,
DavidHi,
I still don't think we understand each other.
If I run FBL5N I have option to select:
- Items that are or were open at the key date are displayed on one date
- All items posted on the posting date specified fromde date1 to date2.
- Items that were cleared at the clearing date specified
I would like a list of all items from option 1 (Items that are or were open at the key date are displayed on one date) so items that are or were STILL open and not yet cleared on one date, but not just for one date but for more days.
If I use your suggestion I get what items opened or cleared on one day not how many items were still open on particular day.
So a list of how many opened items were there at the day, and notjust items that were opened on that day but also all previous items that were not yet cleared at that day. -
Customizing tables not asking for Customizing Request while saving data
Hi,
I have some customizing tables in my development server (Delivery Class = 'C').
These always used to ask for a Customizing Request whenever data was saved in them.
Suddenly, I have noticed they are no more asking for any Customizing Request. I cross-checked in the Transport Organizer and confirmed that there are no customizing requests of mine which may be already holding any data entries of these tables.
I wonder why this may be happening (believe it to be some basis configuration issue. also asked my basis guy but he has no clue).
Kindly suggest.
Thanks,
ZThanks Navneet and Gautham.
My problem is now solved. Let me summarize the problem and the solution now.
-> The customization tables suddenly stopped asking for a request while saving data.
Somehow the settings had been reset, and as Gautham pointed out, it was corrected in the tcode SCC4
-> Most of the tables now worked fine, but still few of them didnt ask for requests
Here, I found out that the developers had chosen "no, or user, recording routine" instead of "standard recording routine". For such tables, when i check in the tcode SE54, menu path Environment -> Maintenance Objects -> Change, I find the Transport category 'No Transport'. Regenerating the maintenance generator choosing "standard recording routine" fixes this and the tables now ask for a customizing request.
Thanks, both, for the quick response. -
Saving data in database using textbox and save button
Hello. I just want a help about my code because when i close the application the data that i add is not been saved.
Here is my code of save:
function saveData(event:MouseEvent):void
status.text = "Saving data";
insertStmt = new SQLStatement();
insertStmt.sqlConnection = conn;
var sql:String = "INSERT INTO employees (firstName, lastName, salary) VALUES (:param, :param1, :param2)";
insertStmt.text = sql;
insertStmt.parameters[":param"] = firstName.text;
insertStmt.parameters[":param1"] = lastName.text;
insertStmt.parameters[":param2"] = salary.text;
insertStmt.addEventListener(SQLEvent.RESULT, insertResult);
insertStmt.addEventListener(SQLErrorEvent.ERROR, insertError);
insertStmt.execute();
Here is the full code:
import fl.data.DataProvider;
import flash.data.SQLResult;
import flash.data.SQLConnection;
import flash.filesystem.File;
import flash.data.SQLStatement;
import flash.data.SQLConnection;
var conn:SQLConnection;
var createStmt:SQLStatement;
var insertStmt:SQLStatement;
var insertStmt2:SQLStatement;
var insertStmt3:SQLStatement;
var selectStmt:SQLStatement;
var insert1Complete:Boolean = false;
var insert2Complete:Boolean = false;
saveBtn.addEventListener(MouseEvent.CLICK, saveData);
loadBtn.addEventListener(MouseEvent.CLICK, getData);
init();
function init():void
conn = new SQLConnection();
conn.addEventListener(SQLEvent.OPEN, openSuccess);
conn.addEventListener(SQLErrorEvent.ERROR, openFailure);
status.text = "Creating and opening database";
// Use these two lines for an on-disk database
// but be aware that the second time you run the app you'll get errors from
// creating duplicate records.
// var dbFile:File = File.applicationStorageDirectory.resolvePath("DBSample.db");
// conn.openAsync(dbFile);
// Use this line for an in-memory database
conn.openAsync(null);
function openSuccess(event:SQLEvent):void
conn.removeEventListener(SQLEvent.OPEN, openSuccess);
conn.removeEventListener(SQLErrorEvent.ERROR, openFailure);
createTable();
function openFailure(event:SQLErrorEvent):void
conn.removeEventListener(SQLEvent.OPEN, openSuccess);
conn.removeEventListener(SQLErrorEvent.ERROR, openFailure);
status.text = "Error opening database";
trace("event.error.message:", event.error.message);
trace("event.error.details:", event.error.details);
function createTable():void
status.text = "Creating table";
createStmt = new SQLStatement();
createStmt.sqlConnection = conn;
var sql:String = "";
sql += "CREATE TABLE IF NOT EXISTS employees (";
sql += " empId INTEGER PRIMARY KEY AUTOINCREMENT,";
sql += " firstName TEXT,";
sql += " lastName TEXT,";
sql += " salary NUMERIC CHECK (salary >= 0) DEFAULT 0";
sql += ")";
createStmt.text = sql;
createStmt.addEventListener(SQLEvent.RESULT, createResult);
createStmt.addEventListener(SQLErrorEvent.ERROR, createError);
createStmt.execute();
function createResult(event:SQLEvent):void
createStmt.removeEventListener(SQLEvent.RESULT, createResult);
createStmt.removeEventListener(SQLErrorEvent.ERROR, createError);
addData();
function createError(event:SQLErrorEvent):void
status.text = "Error creating table";
createStmt.removeEventListener(SQLEvent.RESULT, createResult);
createStmt.removeEventListener(SQLErrorEvent.ERROR, createError);
trace("CREATE TABLE error:", event.error);
trace("event.error.message:", event.error.message);
trace("event.error.details:", event.error.details);
function addData():void
status.text = "Adding data to table";
insertStmt = new SQLStatement();
insertStmt.sqlConnection = conn;
var sql:String = "";
sql += "INSERT INTO employees (firstName, lastName, salary) ";
sql += "VALUES ('Bob', 'Smith', 8000)";
insertStmt.text = sql;
insertStmt.addEventListener(SQLEvent.RESULT, insertResult);
insertStmt.addEventListener(SQLErrorEvent.ERROR, insertError);
insertStmt.execute();
insertStmt2 = new SQLStatement();
insertStmt2.sqlConnection = conn;
var sql2:String = "";
sql2 += "INSERT INTO employees (firstName, lastName, salary) ";
sql2 += "VALUES ('John', 'Jones', 8200)";
insertStmt2.text = sql2;
insertStmt2.addEventListener(SQLEvent.RESULT, insertResult);
insertStmt2.addEventListener(SQLErrorEvent.ERROR, insertError);
insertStmt2.execute();
function insertResult(event:SQLEvent):void
var stmt:SQLStatement = event.target as SQLStatement;
stmt.removeEventListener(SQLEvent.RESULT, insertResult);
stmt.removeEventListener(SQLErrorEvent.ERROR, insertError);
if (stmt == insertStmt)
insert1Complete = true;
else
insert2Complete = true;
if (insert1Complete && insert2Complete)
status.text = "Ready to load data";
function insertError(event:SQLErrorEvent):void
status.text = "Error inserting data";
insertStmt.removeEventListener(SQLEvent.RESULT, insertResult);
insertStmt.removeEventListener(SQLErrorEvent.ERROR, insertError);
trace("INSERT error:", event.error);
trace("event.error.message:", event.error.message);
trace("event.error.details:", event.error.details);
function getData(event:MouseEvent):void
status.text = "Loading data";
selectStmt = new SQLStatement();
selectStmt.sqlConnection = conn;
var sql:String = "SELECT empId, firstName, lastName, salary FROM employees";
selectStmt.text = sql;
selectStmt.addEventListener(SQLEvent.RESULT, selectResult);
selectStmt.addEventListener(SQLErrorEvent.ERROR, selectError);
selectStmt.execute();
function saveData(event:MouseEvent):void
status.text = "Saving data";
insertStmt = new SQLStatement();
insertStmt.sqlConnection = conn;
var sql:String = "INSERT INTO employees (firstName, lastName, salary) VALUES (:param, :param1, :param2)";
insertStmt.text = sql;
insertStmt.parameters[":param"] = firstName.text;
insertStmt.parameters[":param1"] = lastName.text;
insertStmt.parameters[":param2"] = salary.text;
insertStmt.addEventListener(SQLEvent.RESULT, insertResult);
insertStmt.addEventListener(SQLErrorEvent.ERROR, insertError);
insertStmt.execute();
function selectResult(event:SQLEvent):void
status.text = "Data loaded";
selectStmt.removeEventListener(SQLEvent.RESULT, selectResult);
selectStmt.removeEventListener(SQLErrorEvent.ERROR, selectError);
var result:SQLResult = selectStmt.getResult();
resultsGrid.dataProvider = new DataProvider(result.data);
// var numRows:int = result.data.length;
// for (var i:int = 0; i < numRows; i++)
// var output:String = "";
// for (var prop:String in result.data[i])
// output += prop + ": " + result.data[i][prop] + "; ";
// trace("row[" + i.toString() + "]\t", output);
function selectError(event:SQLErrorEvent):void
status.text = "Error loading data";
selectStmt.removeEventListener(SQLEvent.RESULT, selectResult);
selectStmt.removeEventListener(SQLErrorEvent.ERROR, selectError);
trace("SELECT error:", event.error);
trace("event.error.message:", event.error.message);
trace("event.error.details:", event.error.details);Your database system may well have a setting for character encoding when creating new databases. If you set that to unicode JDBC should store and retrieve UNICODE strings automatically.
As to the HTML side, you should generally use UTF-8 encoding. You need an editor which understands UTF-8. JSPs and servlets have ways of specifying the encoding which goes into the http headers. For static HTML pages you may have to add a header like:
<META http-equiv="Content-type" value="text/HTML; charset=UTF-8">
When receiving form data you need to do
request.setCharacterEncoding("UTF-8"); -
How to move a selected row data from one grid to another grid using button click handler in flex4
hi friends,
i am doing flex4 mxml web application,
i am struck in this concept please help some one.
i am using two seperated forms and each form having one data grid.
In first datagrid i am having 5 rows and one button(outside the data grid with lable MOVE). when i am click a row from the datagrid and click the MOVE button means that row should disable from the present datagrid and that row will go and visible in the second datagrid.
i dont want drag and drop method, i want this process only using button click handler.
how to do this?
any suggession or snippet code are welcome.
Thanks,
B.venkatesan.Hi,
You can get an idea from foolowing code and also from the link which i am providing.
Code:
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute"
width="613" height="502" viewSourceURL="../files/DataGridExampleCinco.mxml">
<mx:Script>
<![CDATA[
import mx.collections.ArrayCollection;
import mx.binding.utils.BindingUtils;
[Bindable]
private var allGames:ArrayCollection;
[Bindable]
private var selectedGames:ArrayCollection;
private function initDGAllGames():void
allGames = new ArrayCollection();
allGames.addItem({name: "World of Warcraft",
creator: "Blizzard", publisher: "Blizzard"});
allGames.addItem({name: "Halo",
creator: "Bungie", publisher: "Microsoft"});
allGames.addItem({name: "Gears of War",
creator: "Epic", publisher: "Microsoft"});
allGames.addItem({name: "City of Heroes",
creator: "Cryptic Studios", publisher: "NCSoft"});
allGames.addItem({name: "Doom",
creator: "id Software", publisher: "id Software"});
protected function button1_clickHandler(event:MouseEvent):void
BindingUtils.bindProperty(dgSelectedGames,"dataProvider" ,dgAllGames ,"selectedItems");
]]>
</mx:Script>
<mx:Label x="11" y="67" text="All our data"/>
<mx:Label x="10" y="353" text="Selected Data"/>
<mx:Form x="144" y="10" height="277">
<mx:DataGrid id="dgAllGames" width="417" height="173"
creationComplete="{initDGAllGames()}" dataProvider="{allGames}" editable="false">
<mx:columns>
<mx:DataGridColumn headerText="Game Name" dataField="name" width="115"/>
<mx:DataGridColumn headerText="Creator" dataField="creator"/>
<mx:DataGridColumn headerText="Publisher" dataField="publisher"/>
</mx:columns>
</mx:DataGrid>
<mx:FormItem label="Label">
<mx:Button label="Move" click="button1_clickHandler(event)"/>
</mx:FormItem>
</mx:Form>
<mx:Form x="120" y="333">
<mx:DataGrid id="dgSelectedGames" width="417" height="110" >
<mx:columns>
<mx:DataGridColumn headerText="Game Name" dataField="name" width="115"/>
<mx:DataGridColumn headerText="Creator" dataField="creator"/>
<mx:DataGridColumn headerText="Publisher" dataField="publisher"/>
</mx:columns>
</mx:DataGrid>
</mx:Form>
</mx:Application>
Link:
http://social.msdn.microsoft.com/Forums/en-US/winformsdatacontrols/thread/ae9bee8d-e2ac-43 c5-9b6d-c799d4abb2a3/
Thanks and Regards,
Vibhuti Gosavi | [email protected] | www.infocepts.com -
Been using Firefox for years, running Windows XP. This morning when I opened pages in another tab, did not see them on tab strip. Only way to find them is to click on List All Tabs Button and it shows list. Cannot get them to display on tab strip. If I open in another window, it works, like it should. If I click on plus sign on tab strip it opens another tab, but can't see the previous ones except with List All Tabs Button. Any suggestions on how to turn tab strip back on? Thanks, jayem33
If it works in a new window then you can drags tabs from the not working window to that new window.
You can also try to close the tabs via Ctrl+W and restore the closed tabs via Shift+Ctrl+T -
Adding custom button to Ribbon for custom list definition
I'm trying to add a custom button to the ribbon, specifically for a custom list definition. I have two custom list definitions, one for a document library (Type="11008") and one for a list (Type="10002").
I can use the following CustomAction to successfully add a button to the document library ribbon:
<CustomAction Id="MyCustomAction.DocLib"
RegistrationId="11008"
RegistrationType="List"
Location="CommandUI.Ribbon">
<CommandUIExtension>
<CommandUIDefinitions>
<CommandUIDefinition Location="Ribbon.Library.Share.Controls._children">
<Button
Id="MyCustomAction.DocLib.Button"
Alt="Help"
Sequence="5"
Command="SayHi"
Image32by32Left="-64" Image32by32Top="-320" Image32by32="/_layouts/$Resources:core,Language;/images/formatmap32x32.png"
Image16by16Left="-64" Image16by16Top="-176" Image16by16="/_layouts/$Resources:core,Language;/images/formatmap16x16.png"
LabelText="Say Hi!"
TemplateAlias="o1"/>
</CommandUIDefinition>
</CommandUIDefinitions>
<CommandUIHandlers>
<CommandUIHandler Command="SayHi" CommandAction="javascript:alert('Hi!');"/>
</CommandUIHandlers>
</CommandUIExtension>
</CustomAction>
If I try to do the same thing for my list, the button does not show up:
<CustomAction Id="MyCustomAction.List"
RegistrationId="10002"
RegistrationType="List"
Location="CommandUI.Ribbon">
<CommandUIExtension>
<CommandUIDefinitions>
<CommandUIDefinition Location="Ribbon.List.Share.Controls._children">
<Button
Id="MyCustomAction.List.Button"
Alt="Help"
Sequence="5"
Command="SayHi"
Image32by32Left="-64" Image32by32Top="-320" Image32by32="/_layouts/$Resources:core,Language;/images/formatmap32x32.png"
Image16by16Left="-64" Image16by16Top="-176" Image16by16="/_layouts/$Resources:core,Language;/images/formatmap16x16.png"
LabelText="Say Hi!"
TemplateAlias="o1"/>
</CommandUIDefinition>
</CommandUIDefinitions>
<CommandUIHandlers>
<CommandUIHandler Command="SayHi" CommandAction="javascript:alert('Hi!');"/>
</CommandUIHandlers>
</CommandUIExtension>
</CustomAction>
What am I missing that is keeping me from getting this button to show up in my List ribbon?Well, I debated just deleting my question, but I'll leave it up in case someone else runs into this. My custom list definition for my list had <Toolbar Type="Freeform" />. I don't remember why I changed that, but once I changed
that back to <Toolbar Type="Standard"/> my custom buttons started showing up as expected.
The answer
here pointed me in the right direction. -
How to submit data from multiple Input Ports in single SUBMIT button click
Hi,
I am in SPS8.
What exactly steps I need to perform to submit data from multiple Input Ports.
I couldn't able to submit One input Form and one Input Table to BAPI data service in single SUBMIT button click.
I debugged the VC application in SPS8.
While debugging, I found that when I click the SUBMIT button in the Input Form, Only data in that Input
form are being passed to the BAPI, But not the Table Form data.
If I click on the SUBMIT button in another Input Table, Only data from that table is being passed to the BAPI, but not the Input form data.
Essentially I need to submit both of them in one SUBMIT button.
Thanks,
RamakrishnaRamakrishna,
From the word document that you sent to me the steps you are missing to map the appropriate information into the BAPI is first you are not mapping all data rows into the table input port. To do this double click on the input table view and change your selection mode from single to multiple. Then when you click on your link between the BAPI and your input table you will see a new option appears under data mapping "Mapping Scope" select All Data Rows.
That's the first part of the problem to get the BAPI to recognize both the inputs coming from the form and the table eliminate the submit button from the form. Drag and drop a link from the output port of the table view to the Input port of the BAPI. Double click on the link between the BAPI and the table view and open the expressions editor for the two fields:
1/ Automatic Source
2/ SKIP_ITEMS_WITH_ERROR
On the hierarchical folder structure on the right expand expand the Data Fields node to find the fields from the form and map them accordingly.
Now when you hit the submit button on your table it should pass the BAPI all the parameters from both the form and the table.
Hope this helps,
Cheers,
Scott -
Custom button and Custom fields in item data tab of SRM shopping cart
Hello All,
I am new to SRM 7.
There is a requirement to add a custom button and on the click of a button I need to pop up some custom fields , and
store it in SRM system.
The webdynpro component is /SAPSRM/WDC_UI_SC_DOFC_D1.
Can you pls tell me the process of adding, popup and transfer of the fields to SRM tables.
Should we adding some fileds in SPRO->Extensions and field control.
Kindly help.
Regards
VinayHi,
I dont have access to SRM system but you can use enhancment concepts to enhance the standard component.
Refer http://wiki.sdn.sap.com/wiki/display/SRM/HidingtabofShoppingcartinSAPSRM7.0 which is having something simmilar requirment.
also refer http://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/700317da-bd79-2c10-368e-8f18bf5d8b81?QuickLink=index&overridelayout=true
I hope this will helpful for you to achive your requirments.
Thanks,
Chandra
Maybe you are looking for
-
Is there anyway to: 1) use a different AppleID to sign into different devices for the 'Find My Friends' app using iOS8? It appears that any device using the same iCloud account must also use the same AppleID for "Find My Friends" now. I just got off
-
Digital signatures getting more difficult
I'm sure there are good reasons for the changes, but from my viewpoint digital signatures in Acrobat are becoming less convenient with each new version I try. I make extensive use of invisible signatures, with a number of people required to invisibly
-
SC DPM 2012 SP1 does not display cleaning tape in console
Hi everyone, I'm running DPM and have a IBM TS3100 tape library. I have installed a LTO5 compatible IBM cleaning tape into the library. But a cannot see this tape in console. In web interface, I can see it as "Unknown" tape in slot 15. There was an a
-
I use firefox for e-mail and am unsure how to close a message without losing the connection to firefox. Then I need to go through the tedious task of entering my username and password everytime I am finished reading the message and close it. How can
-
Hello SAP Experts, I have installed BI 7.0. And i have created an RFC connection for BI to R3. It was working fine but now the SAP R/3 source system in RSA1 is giving an error "Result of the destination check:Name or password in incorrect(repeat logo