Facing problem in adding measure in Dimension hierarchy
Hi,
I am using OBIEE 10g Administrator tool.
I am trying to replicate same RPD(BI Model) as default sample "Paint.rpd" and have completed "Physical layer" successfully in offline mode. In BMM layer, dragged dimension and fact table from physical layer. And have created relation between dimension and fact table in physical and BMM layer.
Also created hierarchy (Dim Product, Dim Market and Dim Period) with respected key column.
When i try to associate measure value with one dimension, it completes successfully. But when i am trying same steps for other dimension, it was not able to associate.
I checked "Level" attribute of measure(For exp. Week Dollars, Month Dollars), i found it has single level instead to having all three dimension level.
Please help me to resolve this problem.
Your single help will be appreciated.
Thanks in advance.
Hi,
As my understanding of your question,
You can't add a single measure to multiple dimension hierarchies.please create a duplicate for the measure column and try to add it.It may resolve your problem.If any issues please feel free to post your message.
If it is useful please mark it as correct.Someone can easily refer.
thanks ,
prasanna
Similar Messages
-
Problem while adding a new dimension in a existing cube with data in BW3.5
Hi,
We are trying to create a new dimension with new characteristics in a existing cube. But while activating we are getting error that "InfoCube contains data; intentional changes not permitted". Can we add a new dimension in a existing cube with data in BW3.5? If it is not possible then we can take the backup and delete the data from cube and then change the cube. But my question is that, when we will transport the cube with changes to quality then will it transport successfully or same procedure needs to be done there as well.
Regards,
Saikathi,
Adding new infoobject /dimension to the cube containing data in 3.5 is not possible.
easier solution is create a new cube similar to old and add the new dimension and proceed.
else you have to drop data and transport.
Ramesh -
Facing problem while adding combobox using gridbaglayout
HI, I have used gridbaglayout in my panel. after adding the gridbaglayout, if i select long value combobox does't display all the value of the selected value. Why?
This is my code
cboPrioritySearchValue = new JComboBox();
cboPrioritySearchValue.setBackground(Color.white);
cboPrioritySearchValue.addItem("ALL");
cboPrioritySearchValue.addItem(Priority.NOT.getValue());
cboPrioritySearchValue.addItem(Priority.ONE.getValue());
cboPrioritySearchValue.addItem(Priority.TWO.getValue());
cboPrioritySearchValue.addItem(Priority.THREE.getValue());
cboPrioritySearchValue.addItem(Priority.FOUR.getValue());
setConstraints(gbc,gbc.WEST,gbc.NONE,2,1,2,8,new Insets(2,5,5,5),0,0,0,0);
gbl.setConstraints(cboPrioritySearchValue,gbc);
panel.add(cboPrioritySearchValue);This is my setConstraints method,
public GridBagConstraints setConstraints(GridBagConstraints gbc, int anchor,int fill,
int gridw, int gridh, int gridx, int gridy,
Insets insets, int ipadx, int ipady,
int weightx, int weighty)
gbc.anchor = anchor;
gbc.fill = fill;
gbc.gridwidth = gridw;
gbc.gridheight = gridh;
gbc.gridx = gridx;
gbc.gridy = gridy;
gbc.insets = insets;
gbc.ipadx = ipadx;
gbc.ipady = ipady;
gbc.weightx = weightx;
gbc.weighty = weighty;
return gbc;
}Edited by: JavaHeroPrince on May 13, 2010 6:58 AMThanks Pete, hopefully its only a temporary problem.Short answer: It is (well ... hopefully).
Long answer: My server's dying regularly because all the connections fill up in CLOSE_WAIT states. This doesn't seem to have the same root cause as the reported bugs that I can find (issues with older JDKs) so I'm interested in investigating it beyond just upgrading everything to the latest and crossing my fingers. Unfortunately that will take time and I'm a bit pressed for spare time at the moment - so: my apologies; the domain is likely to be down until after the weekend at least.
After the weekend I'll re-target sscce.org (and .com and .net which I acquired a little while back) to a different server that's not suffering from the problem. Or if Andrew prefers I'll target a server under his control. -
Facing problem on adding cloud system to eclipse.
Hello,
while adding cloud system to my eclipse IDE, it is asking to provide me the account name,user name and password. It is not accepting on providing the details. I believe user name and password to be provided same we provide to SAP community network. Please help mm if my assumption is wron.
Thanks,
Uday Kumar Narayana.for me it is created,
did you able to login to your cockpit using the same credentials.
SAP HANA Cloud Platform -
Facing Problem while adding Azure Project to existing C# web application
Hi,
I have a web application with 5 projects under one Solution. I want to publish this web application on Windows Azure, for that I have tried to add Windows Azure Cloud Service Project but this option is not appear in option list. But when I create new web
application add Windows Azure Cloud Service Project option appeared. I didn't understand why this happened. I have also tried to migrate old code to new project but having error
" The type or namespace name 'DataAnnotations' does not exist in the namespace 'System.ComponentModel' (are you missing an assembly reference?)"
If I add this dll then more than 18000 error occures like control not found(The name 'lnkbtnNew' does not exist in the current context).
Please help me out, I am struggling since couple of days.
Thanks in advance.Hi,
Please try the following steps, see if it helps.
1. create new azure cloud service project (it is better to choose the same version of .netframework with your web application );
2. right click the solution, add your web application as Existing Project
3. Right click on the “Roles” node in the Cloud Service project and select “Add | Web Role Project in solution…”
Please try to set the “Copy Local” to “True” in order to avoid assembly missing issue, see more at:
http://blogs.msdn.com/b/asiatech/archive/2013/01/09/how-to-resolve-the-could-not-load-file-or-assembly-issues-on-windows-azure-web-sites.aspx
If this post doesn't give you help, please follow up with more detailed information.
Best Regards,
Jambor
We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
Click
HERE to participate the survey. -
Facing problem in adding attributes for sales in organisation model
hi i am murali
for my organisation model in sales organisation i want to add division and distribution channel attributes.when i am in ooattrcust
transaction,i found that they were in invisible maintenance and i am not able to change them.please help meHi,
Please read:
Orgmodel-- Attributes
1. Goto T. Code: SM30
2. Enter T77OMATTR for Table/View and click Maintain Button.
3. Now Double click on Attributes. Here create your oun Attribute by copying an existing one / Create a New Entry.
Here you also have setting like Multi Values, Default Values etc.
4. After creating New Attribute, double click on Scenarios and select your required scenario then click on Attributes/Scenarios.
Here you include your newly created Attribute. Here you also have important settings like Inheritance Type, Reg Attr etc.
Alternatively you use T.Code OOATTRCUST instead of SM30.
Once this customization is done you can see your attribute in the Org Model Customization(T. Code: PPOMA_CRM).
HRBCI_ATTRIBUTES_BUFFER_UPDATE
Denis -
Problem in adding new tabs in master data screens for RE-FX in ECC 6.0
Dear members,
I am working on RE-FX in ECC 6.0. I need some advice on the foll matter:
When displaying master data for Rental Object (Rental Space) (Tcode REBDRO) there are three tabs that are visible. They are General Data, Measurement and Area Shares. I would like the tab "Supplementary Texts" to also appear as the fourth tab. I have gone to the node Screen Sequence under the Dialog node under Usage View under Master Data in RE-FX.
I have added this screen to the sequence and have saved it successfully. Now when i am trying to display the rental space (RS) it is still not showing the tab that I just added. When I am trying to remove one of the existing tabs, by going into the same screen sequence I am successful in doing that. I am also able to add some of the other tabs. However every time I am trying to add the tab "Supplementary texts", I am failing to display it in the master data.
Request you to please help me as I am not an expert in RE-FX.
Regards,
Suvarghya DuttaHi Survaghya,
We are facing problem in adding tab to transaction RESCSU. We have followed all the steps mentioned by you , like
1. Go to transaction BUPT .
2. Select Application Object - transactuion BUS0.
3.Selected Application object as RESU.
4. And then went to all the following transactions.
RESCSU0002 SU: Field Groups
RESCSU0003 SU: Views
RESCSU0004 SU: Sections
RESCSU0005 SU: Screens
RESCSU0006 SU: Screen Sequences.
5. Created one z function group , having 2 FM for PBO and PAI.
6. Also one subscreen having the field mapped to CI_INCLUDE - CI_VISCSU.
But still we are not able to see the tab on the settlemet screen.
We tried changing the screen sequence of existing tabs, we could change that, but after performing all the steps mentioned above we could not add new tab.
Please suggest where are we committing a mistake.
Thanks & Regards,
Deepti -
Facing problem in loading table using IKM Oracle Slowly Changing Dimension
Hi,
I am facing problem in loading dimension table using IKM Oracle Slowly Changing Dimension
Following is the setup :-
SRC :- source_table (MSSQL)
Staging :- staging_table (MSSQL)
TRGT :- target_table (Oracle)
-------- source_table
group_id int
group_version_id int
name varchar (255)
description varchar (255)
comments varchar (2000)
ref_number varchar (255)
is_latest_version decimal (5)
is_deleted decimal (5)
--------- target_table
id number (38,0) - Mapped to <%=odiRef.getObjectName( "L" , "SEQ_NAME" , "D" )%>.nextval
- Executed on target
- defined the column as SK in model
group_id number (38,0) - defined the column as NK in model
group_version_id number (38,0) - defined the column as NK in model
name varchar (255) - undefined on the model description
description varchar (255) - Add row on change
comments varchar (2000) - Add row on change
ref_number varchar (255) - Add row on change
is_latest_version number (1,0) - Add row on change
is_deleted number (1,0) - Add row on change
start_datetime date - SYSDATE
- Executed on target
- Starting Timestamp
end_datetime date - NULL
- Executed on target
- End Timestamp
I am using following KM's:-
LKM SQL to SQL
IKM Oracle Slowly Changing Dimension
CKM SQL
it gives me the following error -
920:Invalid relational operatorHi,
Yes, this is a run-time error. Currently I am debugging it by checking SNP_SESS_TXT_LOG based on sess_no ID.
Now, I get the following error.
I just see the following in the operator:-
911 : 42000 : java.sql.BatchUpdateException: ORA-00911: invalid character
911 : 42000 : java.sql.SQLException: ORA-00911: invalid character
java.sql.BatchUpdateException: ORA-00911: invalid character
at oracle.jdbc.driver.DatabaseError.throwBatchUpdateException(DatabaseError.java:342)
at oracle.jdbc.driver.OraclePreparedStatement.executeBatch(OraclePreparedStatement.java:10720)
at com.sunopsis.sql.SnpsQuery.executeBatch(SnpsQuery.java)
at com.sunopsis.dwg.dbobj.SnpSessTaskSql.execCollOrders(SnpSessTaskSql.java)
at com.sunopsis.dwg.dbobj.SnpSessTaskSql.treatTaskTrt(SnpSessTaskSql.java)
at com.sunopsis.dwg.dbobj.SnpSessTaskSqlC.treatTaskTrt(SnpSessTaskSqlC.java)
at com.sunopsis.dwg.dbobj.SnpSessTaskSql.treatTask(SnpSessTaskSql.java)
at com.sunopsis.dwg.dbobj.SnpSessStep.treatSessStep(SnpSessStep.java)
at com.sunopsis.dwg.dbobj.SnpSession.treatSession(SnpSession.java)
at com.sunopsis.dwg.cmd.DwgCommandSession.treatCommand(DwgCommandSession.java)
at com.sunopsis.dwg.cmd.DwgCommandBase.execute(DwgCommandBase.java)
at com.sunopsis.dwg.cmd.e.i(e.java)
at com.sunopsis.dwg.cmd.g.y(g.java)
at com.sunopsis.dwg.cmd.e.run(e.java)
at java.lang.Thread.run(Unknown Source)
So, I do not get any idea of the exact step that is causing failure.
Is there any setting in the operator that I am missing on? -
Facing problem While deleting rows and adding rows
Hi,
In my form i have pass values to table rows by selecting values from Dropdown list.
i have taken 3 hidden obj and passing the dropdown values to hidden objects and then from hidden objects to table rows.
h1,h2,h2 are hidden obj
EMPNO,EMPNAME, DESIGNATION are drop downlist
i have add button with the following code
if(form1.P1.ItemSet.EMPNO.rawValue != null){
form1.P1.ItemSet.instanceManager.addInstance();
form1.P1.execInitialize();
var dynamicArray = form1.P1.resolveNode("ItemSet[" + arrayIncri + "]");
dynamicArray .EMPNO.rawValue = form1.P1.hidden.h1.rawValue;
dynamicArray .EMPNAME.rawValue = form1.P1.hidden.h2.rawValue;
dynamicArray .DESIGNATION.rawValue = form1.P1.hidden.h3.rawValue;
arrayIncri++;
form1.P1.SF1.EmpID.rawValue = null;
form1.P1.SF1.EmpName.rawValue = null;
form1.P1.SF1.Designation.rawValue = null;
My delete button code is
_ItemSet.removeInstance(this.parent.index);
form1.P1.execInitialize();
My problem is adding is happening while click and deleting is happening to the perticular row but once i delete paricular row then again if i want to add new row then it is taking null values . and agian if i click add then the values are passing to the next row
means i am getting null row if i do add funtionality after delete funtionality....
Please help me out in this..
Subba reddyHi,
I got the answer for this query, but when i do download and upload of the files from R/3 to GRC. Still it is not showing me the new transactions which were developed in R/3.
it means when i try to add the transaction in a function, under search mode with respective of the r/3 system, it is not showing me the search results.
What i did was, i run the reports /VIRSA/ZCC_DOWNLOAD_DESC & /VIRSA/ZCC_DOWNLOAD_SAPOBJ and uploaded them as below in GRC.
Text Objects - /VIRSA/ZCC_DOWNLOAD_DESC
permissions - /VIRSA/ZCC_DOWNLOAD_SAPOBJ
For each of the download i get 2 files for each and i tried to upload both of them but no luck.
Please suggest me, as am missing anything in this process
SV -
Problem with open dimension hierarchy
Hi,
I Am useing BIApps 7.9.6.3 rpd.I Drag Employee Primary Owner Organization Dimension Hierarchy into presentation layer.That Table does not open. it showing processing.I Restarted the servers Also.
Why It Will Showing Any help.....Looks like a bug
Check this Doc ID 1505504.1 or ID 1415135.1
Pls mark as correct/helpful if helps
Edited by: veeravalli on Nov 19, 2012 10:02 AM
Edited by: veeravalli on Nov 19, 2012 10:05 AM -
I have a table which has 2 columns as Req ID , Parent ID.These are raw tables.Now the values in Req ID are:
Req1
Req1.1
Req1.2
Req1.1.1
Req1.1.1.1
These are the values in the column of Req ID.And the values in Parent id will determine the parent of one requirement ID.
Now i want to create a dimension hierarchy where i can drill from Req1 -> Req 1.1 ->Req1.1.1->Req1.1.1.1
Req1.2
This should be till 6 levels.Please suggest how it can be done ?
Edited by: 833131 on Feb 1, 2011 7:44 PMLooks like a bug
Check this Doc ID 1505504.1 or ID 1415135.1
Pls mark as correct/helpful if helps
Edited by: veeravalli on Nov 19, 2012 10:02 AM
Edited by: veeravalli on Nov 19, 2012 10:05 AM -
Report totals with dimension hierarchy column on pivot table incorrect
Hi,
I have a pivot table based report that has one dimension column, a dimension hierarchy column and various measures.
The row totals do not match, detail to total, and I have tried both complex server based aggregate and report based aggregation, but neither are giving me the correct answer.
I have also tried adding the column that is the same as the top level as the hierarchy, but hidden, but this does not help.
I have also tried adding the lowest level of detail column, but hidden, but this does not give me the solution I need as all of the figures then appear at detail not aggregated level.
Any ideas please?
thanks,
Robert.Can you validate the query hitting to the database and compare the results?
Mark if helps.
Thanks, -
JTable sorting - problem when adding elements (complete code inside)
I�m writing this email with reference to a recent posting here but this time with the code example. (I apologize for the duplicated posting � this time it will be with the code)
Problem: when adding more elements to the JTable (sorted) the exception: ArrayIndexOutOfBoundsException is thrown.
Example: If the elements in the table are 10 and then the user requests for 8 � the table will produce the correct result. However, if the user will ask for 11 items (>10) the exception will be thrown.
The program: The program below (compiles and running). A JTable is constructed with 3 items, when you click the button - the return result should be 4 items - this will generate the error, WHY?
I would highly appreciate your thoughts why this is happening and most importantly � how to fix it.
Thanks a lot
3 files:
(1) TableSorterDemo
(2) Traveler
(3)TableSorter
//TableSorterDemo:
package sorter;
import javax.swing.DefaultListModel;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.table.AbstractTableModel;
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
* TableSorterDemo is like TableDemo, except that it
* inserts a custom model -- a sorter -- between the table
* and its data model. It also has column tool tips.
public class TableSorterDemo implements ActionListener
private JPanel superPanel;
private JButton clickMe = new JButton("click me to get diff data");
private boolean DEBUG = false;
private DefaultListModel defaultListModel;
private JTable table;
public TableSorterDemo()
superPanel = new JPanel(new BorderLayout());
defaultListModel = new DefaultListModel();
init1();
TableSorter sorter = new TableSorter(new MyTableModel(defaultListModel)); //ADDED THIS
table = new JTable(sorter); //NEW
sorter.setTableHeader(table.getTableHeader()); //ADDED THIS
table.setPreferredScrollableViewportSize(new Dimension(500, 70));
//Set up tool tips for column headers.
table.getTableHeader().setToolTipText(
"Click to specify sorting; Control-Click to specify secondary sorting");
//Create the scroll pane and add the table to it.
JScrollPane scrollPane = new JScrollPane(table);
//Add the scroll pane to this panel.
superPanel.add("Center", scrollPane);
superPanel.add("South",clickMe);
clickMe.addActionListener(this);
public JPanel getPanel()
return superPanel;
public void init1()
//in real life this will be done from the db
Traveler a = new Traveler();
Traveler b = new Traveler();
Traveler c = new Traveler();
a.setFirstName("Elvis");
a.setLastName("Presley");
a.setSprot("Ping Pong");
a.setNumYears(3);
a.setVegetarian(true);
b.setFirstName("Elton");
b.setLastName("John");
b.setSprot("Soccer");
b.setNumYears(2);
b.setVegetarian(true);
c.setFirstName("shaquille");
c.setLastName("oneil");
c.setSprot("Golf");
c.setNumYears(22);
c.setVegetarian(true);
defaultListModel.addElement(a);
defaultListModel.addElement(b);
defaultListModel.addElement(c);
public void init2()
//in real life this will be done from the db
Traveler d = new Traveler();
Traveler e = new Traveler();
Traveler f = new Traveler();
Traveler g = new Traveler();
d.setFirstName("John");
d.setLastName("Smith");
d.setSprot("Tennis");
d.setNumYears(32);
d.setVegetarian(true);
e.setFirstName("Ron");
e.setLastName("Cohen");
e.setSprot("Baseball");
e.setNumYears(12);
e.setVegetarian(true);
f.setFirstName("Donald");
f.setLastName("Mac Novice");
f.setSprot("Vallyball");
f.setNumYears(1);
f.setVegetarian(true);
g.setFirstName("Eithan");
g.setLastName("Superstar");
g.setSprot("Vallyball");
g.setNumYears(21);
g.setVegetarian(true);
defaultListModel.addElement(d);
defaultListModel.addElement(e);
defaultListModel.addElement(f);
defaultListModel.addElement(g);
class MyTableModel extends AbstractTableModel
private DefaultListModel myModel;
public MyTableModel(DefaultListModel m)
myModel=m;
private String[] columnNames = {"First Name",
"Last Name",
"Sport",
"# of Years",
"Vegetarian"};
public int getColumnCount()
return columnNames.length;
public int getRowCount()
return myModel.size();
public String getColumnName(int column)
return getNames()[column];
public String[] getNames()
String[] names = {"First Name", "Last Name", "Sport", "# of Years", "Vegetarian"};
return names;
public Object getValueAt(int row, int col)
return distributeObjectsInTable(row, col, (Traveler) myModel.elementAt(row));
public Object distributeObjectsInTable(int row, int col, Traveler tr)
switch(col)
case 0:
return tr.getFirstName();
case 1:
return tr.getLastName();
case 2:
return tr.getSprot();
case 3:
return new Integer(tr.getNumYears());
case 4:
return new Boolean (tr.isVegetarian());
default:
return "Error";
public Class getColumnClass(int c)
return getValueAt(0, c).getClass();
private static void createAndShowGUI()
//Make sure we have nice window decorations.
JFrame.setDefaultLookAndFeelDecorated(true);
//Create and set up the window.
JFrame frame = new JFrame("TableSorterDemo");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//Create and set up the content pane.
TableSorterDemo newContentPane = new TableSorterDemo();
newContentPane.getPanel().setOpaque(true); //content panes must be opaque
frame.setContentPane(newContentPane.getPanel());
//Display the window.
frame.pack();
frame.setVisible(true);
public static void main(String[] args)
//Schedule a job for the event-dispatching thread:
//creating and showing this application's GUI.
javax.swing.SwingUtilities.invokeLater(new Runnable()
public void run()
createAndShowGUI();
public void actionPerformed(ActionEvent ae)
if (ae.getSource()==clickMe)
defaultListModel.removeAllElements();
init2(); //if the size of the model was less than 2 items - the result will be ok.
//in other words, if you commens the last 2 rows of this method (addElement(f) & g)
// the result will be fine.
table.updateUI();
}//(2) Traveler
package sorter;
public class Traveler
private String firstName;
private String lastName;
private String sprot;
private int numYears;
private boolean vegetarian;
public String getFirstName()
return firstName;
public String getLastName()
return lastName;
public int getNumYears()
return numYears;
public String getSprot()
return sprot;
public boolean isVegetarian()
return vegetarian;
public void setFirstName(String firstName)
this.firstName = firstName;
public void setLastName(String lastName)
this.lastName = lastName;
public void setNumYears(int numYears)
this.numYears = numYears;
public void setSprot(String sprot)
this.sprot = sprot;
public void setVegetarian(boolean vegetarian)
this.vegetarian = vegetarian;
}//(3)TableSorter
package sorter;
import java.awt.*;
import java.awt.event.*;
import java.util.*;
import java.util.List;
import javax.swing.*;
import javax.swing.event.TableModelEvent;
import javax.swing.event.TableModelListener;
import javax.swing.table.*;
public class TableSorter extends AbstractTableModel {
protected TableModel tableModel;
public static final int DESCENDING = -1;
public static final int NOT_SORTED = 0;
public static final int ASCENDING = 1;
private static Directive EMPTY_DIRECTIVE = new Directive(-1, NOT_SORTED);
public static final Comparator COMPARABLE_COMAPRATOR = new Comparator() {
public int compare(Object o1, Object o2) {
return ((Comparable) o1).compareTo(o2);
public static final Comparator LEXICAL_COMPARATOR = new Comparator() {
public int compare(Object o1, Object o2) {
return o1.toString().compareTo(o2.toString());
private Row[] viewToModel;
private int[] modelToView;
private JTableHeader tableHeader;
private MouseListener mouseListener;
private TableModelListener tableModelListener;
private Map columnComparators = new HashMap();
private List sortingColumns = new ArrayList();
public TableSorter() {
this.mouseListener = new MouseHandler();
this.tableModelListener = new TableModelHandler();
public TableSorter(TableModel tableModel) {
this();
setTableModel(tableModel);
public TableSorter(TableModel tableModel, JTableHeader tableHeader) {
this();
setTableHeader(tableHeader);
setTableModel(tableModel);
private void clearSortingState() {
viewToModel = null;
modelToView = null;
public TableModel getTableModel() {
return tableModel;
public void setTableModel(TableModel tableModel) {
if (this.tableModel != null) {
this.tableModel.removeTableModelListener(tableModelListener);
this.tableModel = tableModel;
if (this.tableModel != null) {
this.tableModel.addTableModelListener(tableModelListener);
clearSortingState();
fireTableStructureChanged();
public JTableHeader getTableHeader() {
return tableHeader;
public void setTableHeader(JTableHeader tableHeader) {
if (this.tableHeader != null) {
this.tableHeader.removeMouseListener(mouseListener);
TableCellRenderer defaultRenderer = this.tableHeader.getDefaultRenderer();
if (defaultRenderer instanceof SortableHeaderRenderer) {
this.tableHeader.setDefaultRenderer(((SortableHeaderRenderer) defaultRenderer).tableCellRenderer);
this.tableHeader = tableHeader;
if (this.tableHeader != null) {
this.tableHeader.addMouseListener(mouseListener);
this.tableHeader.setDefaultRenderer(
new SortableHeaderRenderer(this.tableHeader.getDefaultRenderer()));
public boolean isSorting() {
return sortingColumns.size() != 0;
private Directive getDirective(int column) {
for (int i = 0; i < sortingColumns.size(); i++) {
Directive directive = (Directive)sortingColumns.get(i);
if (directive.column == column) {
return directive;
return EMPTY_DIRECTIVE;
public int getSortingStatus(int column) {
return getDirective(column).direction;
private void sortingStatusChanged() {
clearSortingState();
fireTableDataChanged();
if (tableHeader != null) {
tableHeader.repaint();
public void setSortingStatus(int column, int status) {
Directive directive = getDirective(column);
if (directive != EMPTY_DIRECTIVE) {
sortingColumns.remove(directive);
if (status != NOT_SORTED) {
sortingColumns.add(new Directive(column, status));
sortingStatusChanged();
protected Icon getHeaderRendererIcon(int column, int size) {
Directive directive = getDirective(column);
if (directive == EMPTY_DIRECTIVE) {
return null;
return new Arrow(directive.direction == DESCENDING, size, sortingColumns.indexOf(directive));
private void cancelSorting() {
sortingColumns.clear();
sortingStatusChanged();
public void setColumnComparator(Class type, Comparator comparator) {
if (comparator == null) {
columnComparators.remove(type);
} else {
columnComparators.put(type, comparator);
protected Comparator getComparator(int column) {
Class columnType = tableModel.getColumnClass(column);
Comparator comparator = (Comparator) columnComparators.get(columnType);
if (comparator != null) {
return comparator;
if (Comparable.class.isAssignableFrom(columnType)) {
return COMPARABLE_COMAPRATOR;
return LEXICAL_COMPARATOR;
private Row[] getViewToModel() {
if (viewToModel == null) {
int tableModelRowCount = tableModel.getRowCount();
viewToModel = new Row[tableModelRowCount];
for (int row = 0; row < tableModelRowCount; row++) {
viewToModel[row] = new Row(row);
if (isSorting()) {
Arrays.sort(viewToModel);
return viewToModel;
public int modelIndex(int viewIndex)
return getViewToModel()[viewIndex].modelIndex;
private int[] getModelToView()
if (modelToView == null) {
int n = getViewToModel().length;
modelToView = new int[n];
for (int i = 0; i < n; i++) {
modelToView[modelIndex(i)] = i;
return modelToView;
// TableModel interface methods
public int getRowCount() {
return (tableModel == null) ? 0 : tableModel.getRowCount();
public int getColumnCount() {
return (tableModel == null) ? 0 : tableModel.getColumnCount();
public String getColumnName(int column) {
return tableModel.getColumnName(column);
public Class getColumnClass(int column) {
return tableModel.getColumnClass(column);
public boolean isCellEditable(int row, int column) {
return tableModel.isCellEditable(modelIndex(row), column);
public Object getValueAt(int row, int column) {
return tableModel.getValueAt(modelIndex(row), column);
public void setValueAt(Object aValue, int row, int column) {
tableModel.setValueAt(aValue, modelIndex(row), column);
// Helper classes
private class Row implements Comparable {
private int modelIndex;
public Row(int index) {
this.modelIndex = index;
public int compareTo(Object o) {
int row1 = modelIndex;
int row2 = ((Row) o).modelIndex;
for (Iterator it = sortingColumns.iterator(); it.hasNext();) {
Directive directive = (Directive) it.next();
int column = directive.column;
Object o1 = tableModel.getValueAt(row1, column);
Object o2 = tableModel.getValueAt(row2, column);
int comparison = 0;
// Define null less than everything, except null.
if (o1 == null && o2 == null) {
comparison = 0;
} else if (o1 == null) {
comparison = -1;
} else if (o2 == null) {
comparison = 1;
} else {
comparison = getComparator(column).compare(o1, o2);
if (comparison != 0) {
return directive.direction == DESCENDING ? -comparison : comparison;
return 0;
private class TableModelHandler implements TableModelListener {
public void tableChanged(TableModelEvent e) {
// If we're not sorting by anything, just pass the event along.
if (!isSorting()) {
clearSortingState();
fireTableChanged(e);
return;
// If the table structure has changed, cancel the sorting; the
// sorting columns may have been either moved or deleted from
// the model.
if (e.getFirstRow() == TableModelEvent.HEADER_ROW) {
cancelSorting();
fireTableChanged(e);
return;
// We can map a cell event through to the view without widening
// when the following conditions apply:
// a) all the changes are on one row (e.getFirstRow() == e.getLastRow()) and,
// b) all the changes are in one column (column != TableModelEvent.ALL_COLUMNS) and,
// c) we are not sorting on that column (getSortingStatus(column) == NOT_SORTED) and,
// d) a reverse lookup will not trigger a sort (modelToView != null)
// Note: INSERT and DELETE events fail this test as they have column == ALL_COLUMNS.
// The last check, for (modelToView != null) is to see if modelToView
// is already allocated. If we don't do this check; sorting can become
// a performance bottleneck for applications where cells
// change rapidly in different parts of the table. If cells
// change alternately in the sorting column and then outside of
// it this class can end up re-sorting on alternate cell updates -
// which can be a performance problem for large tables. The last
// clause avoids this problem.
int column = e.getColumn();
if (e.getFirstRow() == e.getLastRow()
&& column != TableModelEvent.ALL_COLUMNS
&& getSortingStatus(column) == NOT_SORTED
&& modelToView != null) {
int viewIndex = getModelToView()[e.getFirstRow()];
fireTableChanged(new TableModelEvent(TableSorter.this,
viewIndex, viewIndex,
column, e.getType()));
return;
// Something has happened to the data that may have invalidated the row order.
clearSortingState();
fireTableDataChanged();
return;
private class MouseHandler extends MouseAdapter {
public void mouseClicked(MouseEvent e) {
JTableHeader h = (JTableHeader) e.getSource();
TableColumnModel columnModel = h.getColumnModel();
int viewColumn = columnModel.getColumnIndexAtX(e.getX());
int column = columnModel.getColumn(viewColumn).getModelIndex();
if (column != -1) {
int status = getSortingStatus(column);
if (!e.isControlDown()) {
cancelSorting();
// Cycle the sorting states through {NOT_SORTED, ASCENDING, DESCENDING} or
// {NOT_SORTED, DESCENDING, ASCENDING} depending on whether shift is pressed.
status = status + (e.isShiftDown() ? -1 : 1);
status = (status + 4) % 3 - 1; // signed mod, returning {-1, 0, 1}
setSortingStatus(column, status);
private static class Arrow implements Icon {
private boolean descending;
private int size;
private int priority;
public Arrow(boolean descending, int size, int priority) {
this.descending = descending;
this.size = size;
this.priority = priority;
public void paintIcon(Component c, Graphics g, int x, int y) {
Color color = c == null ? Color.GRAY : c.getBackground();
// In a compound sort, make each succesive triangle 20%
// smaller than the previous one.
int dx = (int)(size/2*Math.pow(0.8, priority));
int dy = descending ? dx : -dx;
// Align icon (roughly) with font baseline.
y = y + 5*size/6 + (descending ? -dy : 0);
int shift = descending ? 1 : -1;
g.translate(x, y);
// Right diagonal.
g.setColor(color.darker());
g.drawLine(dx / 2, dy, 0, 0);
g.drawLine(dx / 2, dy + shift, 0, shift);
// Left diagonal.
g.setColor(color.brighter());
g.drawLine(dx / 2, dy, dx, 0);
g.drawLine(dx / 2, dy + shift, dx, shift);
// Horizontal line.
if (descending) {
g.setColor(color.darker().darker());
} else {
g.setColor(color.brighter().brighter());
g.drawLine(dx, 0, 0, 0);
g.setColor(color);
g.translate(-x, -y);
public int getIconWidth() {
return size;
public int getIconHeight() {
return size;
private class SortableHeaderRenderer implements TableCellRenderer {
private TableCellRenderer tableCellRenderer;
public SortableHeaderRenderer(TableCellRenderer tableCellRenderer) {
this.tableCellRenderer = tableCellRenderer;
public Component getTableCellRendererComponent(JTable table,
Object value,
boolean isSelected,
boolean hasFocus,
int row,
int column) {
Component c = tableCellRenderer.getTableCellRendererComponent(table,
value, isSelected, hasFocus, row, column);
if (c instanceof JLabel) {
JLabel l = (JLabel) c;
l.setHorizontalTextPosition(JLabel.LEFT);
int modelColumn = table.convertColumnIndexToModel(column);
l.setIcon(getHeaderRendererIcon(modelColumn, l.getFont().getSize()));
return c;
private static class Directive {
private int column;
private int direction;
public Directive(int column, int direction) {
this.column = column;
this.direction = direction;
}The table listens to the TableModel for changes. Changing the table by adding/removing
rows or columns has no affect on its table model. If you make changes to the table model
the table will be notified by its TableModelListener and change its view. So tell
MyTableModel about the change of data:
public class TableSorterDemo implements ActionListener
MyTableModel tableModel;
public TableSorterDemo()
defaultListModel = new DefaultListModel();
init1();
tableModel = new MyTableModel(defaultListModel);
TableSorter sorter = new TableSorter(tableModel);
public void actionPerformed(ActionEvent ae)
if (ae.getSource()==clickMe)
defaultListModel.removeAllElements();
init2();
tableModel.fireTableStructureChanged();
} -
Facing problem during uploadation of Routing data using CA01-BDC - URGENT
Dear All,
When I am trying to upload Routing data using CA01 in the Table Control scenario, then I am facing problem as my last 2 records are not getting uploaded from my Test file.
For example, I am having 47 records in my Test File and after setting Default size parameters (to avoid screen resolution problem)
I have 15 table control line items data per page. The Page down logic ('=P+') is working fine, but my below BDC code failed to take
the remainder last 2 records from the Test File.
Analysis: When I am running my Call Transaction bdc in foreground, then the 1st page down occurs after 15th record, 2nd page down occurs after 29th record( as in Table Control 1st pages 15th record is coming on the Top of 2nd page). 3rd page down occurs after 43rd record
(as 2nd pages 29th record is coming on the top of 3rd page). In the 4th Table Control Page 43rd record of previous page is coming on top, and then its taking 44th & 45th records from the Test File and then it is triggering SAVE (=BU). Thus, our last 2 records
(i.e. 46th, 47th record) are not getting uploaded in the routing screen from our Test File.
If anybody has encountered this scenario previously, please help me URGENTLY in fixing the bugs here. Its VERY, VERY URGENT
FYI. For others 45 successful records already uploaded, all the screen fields values are coming properly in the routing screen, and here there is no issue.
Thanks very much
Thanks & Regards
Sudipta Project Lead
Volvo Client Location
I am pasting my BDC source code below:
REPORT ZRT1_UPLOAD_CA01_F
NO STANDARD PAGE HEADING
LINE-SIZE 255.
I N C L U D E S *
Include for Data Declarations
INCLUDE zrout_top.
Include for Forms
INCLUDE zrout_form.
INCLUDE zrout_include_f_ca01.
*AT SELECTION-SCREEN ON VALUE-REQUEST FOR <field>
AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_FILE.
Attaching F4 help with filename
PERFORM F1001_GET_F4.
S T A R T - O F - S E L E C T I O N *
START-OF-SELECTION.
Perform to read the input file
PERFORM f_read_file.
Perform to fill the BDC data
PERFORM f_fill_bdctab.
E N D - O F - S E L E C T I O N *
END-OF-SELECTION.
FREE: i_bdcdata,
i_messtab,
i_record.
x----
*& Include ZROUT_TOP *
D A T A B A S E T A B L E S *
TABLES: t100. "Messages
D A T A D E C L A R A T I O N S *
T A B L E T Y P E S *****************************
For input data
TYPES: BEGIN OF ty_record,
matnr(18), "Material Number
werks(4), "Plant
verwe(3), "Usage
statu(3), "Status
arbpl(8), "Work Center
steus(4), "Control Key
ltxa1(40), "Description of Operation
bmsch(13), "Base Quantity
meinh(3), "Unit of Measure
vgw01(11), "Machine
vge01(3), "Unit of measure of activity
END OF ty_record.
I N T E R N A L T A B L E S ***********************
Internal Table for input file name
DATA: i_file_tab TYPE STANDARD TABLE OF sdokpath INITIAL SIZE 0.
Internal Table for BDC Data
DATA: i_bdcdata TYPE STANDARD TABLE OF bdcdata INITIAL SIZE 0.
Internal Table for BDC Messages
DATA: i_messtab TYPE STANDARD TABLE OF bdcmsgcoll INITIAL SIZE 0.
Internal Table for Input file
DATA: i_record TYPE STANDARD TABLE OF ty_record INITIAL SIZE 0.
W O R K A R E A S *************************
Work Area for input file name
DATA: wa_file_tab LIKE sdokpath.
Work Area for BDC Data
DATA: wa_bdcdata LIKE bdcdata.
Work Area for BDC Messages
DATA: wa_messtab LIKE bdcmsgcoll.
Work Area for Input file
DATA: wa_record TYPE ty_record.
V A R I A B L E S ****************************
DATA: v_filename TYPE string,
v_fnam(40) TYPE c.
DATA: wa_opt TYPE ctu_params.
C O N S T A N T S ***************************
CONSTANTS: c_werks TYPE rc27m-werks VALUE 'tp',
c_steus TYPE plpod-steus VALUE 'PP01'.
*Selection Screen.
SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.
PARAMETERS:
Input file name
P_FILE TYPE rlgrap-filename OBLIGATORY. " DEFAULT 'C:\'.
SELECTION-SCREEN END OF BLOCK B1.
x----
*& Include ZROUT_FORM *
*& Form f_fill_bdctab
Form to fill the BDC Data
FORM f_fill_bdctab.
TABLES mapl. "Assignment of Task Lists to Materials
DATA: l_cnt_item(3) TYPE n VALUE 1. "Line item counter
DATA: first(3) TYPE n VALUE 16. "Line item counter
DATA: next(3) TYPE n . "Line item counter
DATA: lin(3) TYPE n . "Line item counter
DATA: l_v_bmsch(13), "Base qty
l_v_meinh(3), "Unit of Measure
l_v_vgw01(11), "Machine
l_v_vgw02(11), "Labour
l_v_vge01(3). "Unit of measure of activity
DATA l_v_nextline TYPE sy-tabix.
DATA wa_temp TYPE ty_record.
Initialize Counter
l_cnt_item = 1.
SORT i_record BY matnr.
LOOP AT i_record INTO wa_record.
AT NEW matnr.
REFRESH: i_bdcdata,
i_messtab.
SET PARAMETER ID 'PLN' FIELD space.
SET PARAMETER ID 'PAL' FIELD space.
PERFORM f_bdc_dynpro USING 'SAPLCPDI' '1010'.
PERFORM f_bdc_field USING 'BDC_OKCODE'
'/00'.
Material Number
PERFORM f_bdc_field USING 'RC27M-MATNR'
wa_record-matnr.
Plant
PERFORM f_bdc_field USING 'RC27M-WERKS'
c_werks.
PERFORM f_bdc_field USING 'RC271-PLNNR'
Check if routing already exits for the material
SELECT * FROM mapl
INTO mapl
WHERE matnr EQ wa_record-matnr
AND werks EQ c_werks
AND plnty EQ 'N'.
IF sy-subrc EQ 0.
PERFORM f_bdc_dynpro USING 'SAPLCPDI' '1200'.
PERFORM f_bdc_field USING 'BDC_OKCODE'
'=ANLG '.
ENDIF.
ENDSELECT.
perform f_bdc_dynpro USING 'SAPLCPDA' '1200'.
perform f_bdc_field USING 'BDC_OKCODE'
'=VOUE'.
Group Counter
perform f_bdc_field USING 'PLKOD-PLNAL'
Usage
PERFORM f_bdc_field USING 'PLKOD-VERWE'
'1'.
Status
PERFORM f_bdc_field USING 'PLKOD-STATU'
'4'.
ENDAT.
PERFORM f_bdc_dynpro USING 'SAPLCPDI' '1400'.
Check if page is full
IF l_cnt_item EQ '16'.
Page down
PERFORM f_bdc_field USING 'BDC_OKCODE'
'=P+'.
l_cnt_item = 1.
ELSE.
PERFORM f_bdc_field USING 'BDC_OKCODE'
'/00'.
ENDIF.
CLEAR v_fnam.
Populate item level details
Work Center
CONCATENATE 'PLPOD-ARBPL(' l_cnt_item ')' INTO v_fnam.
PERFORM f_bdc_field USING v_fnam
wa_record-arbpl.
Control Key
CONCATENATE 'PLPOD-STEUS(' l_cnt_item ')' INTO v_fnam.
PERFORM f_bdc_field USING v_fnam
c_steus.
Description of Operation
CONCATENATE 'PLPOD-LTXA1(' l_cnt_item ')' INTO v_fnam.
PERFORM f_bdc_field USING v_fnam
wa_record-ltxa1.
Base Quantity
CONCATENATE 'PLPOD-BMSCH(' l_cnt_item ')' INTO v_fnam.
PERFORM f_bdc_field USING v_fnam
wa_record-bmsch.
Unit of Measure
CONCATENATE 'PLPOD-MEINH(' l_cnt_item ')' INTO v_fnam.
PERFORM f_bdc_field USING v_fnam
wa_record-meinh.
Machine
CONCATENATE 'PLPOD-VGW01(' l_cnt_item ')' INTO v_fnam.
PERFORM f_bdc_field USING v_fnam
wa_record-vgw01.
Labour
CONCATENATE 'PLPOD-VGW02(' l_cnt_item ')' INTO v_fnam.
PERFORM f_bdc_field USING v_fnam
wa_record-vgw02.
Unit of measure of activity
CONCATENATE 'PLPOD-VGE01(' l_cnt_item ')' INTO v_fnam.
PERFORM f_bdc_field USING v_fnam
wa_record-vge01.
l_cnt_item = l_cnt_item + 1.
CLEAR wa_record.
AT END OF matnr.
PERFORM f_bdc_field USING 'BDC_OKCODE'
'/00'.
PERFORM f_bdc_field USING 'BDC_OKCODE'
'=BU'.
wa_opt-DISMODE = 'A'.
wa_opt-DEFSIZE = 'X'.
wa_opt-UPDMODE = 'S'.
PERFORM f_bdc_transaction USING 'CA01'.
Initialize Counter
l_cnt_item = 1.
ENDAT.
ENDLOOP.
ENDFORM. " f_fill_bdctab
x----
*& Include ZROUT_INCLUDE_F_CA01 *
*& Form f_read_file
Form to read the file from presentation server
FORM f_read_file .
To get the file name
DATA l_v_file TYPE string.
l_v_file = P_FILE.
CALL FUNCTION 'GUI_UPLOAD'
EXPORTING
filename = l_v_file
filetype = 'ASC'
has_field_separator = 'X'
TABLES
data_tab = i_record
EXCEPTIONS
file_open_error = 1
file_read_error = 2
no_batch = 3
gui_refuse_filetransfer = 4
invalid_type = 5
no_authority = 6
unknown_error = 7
bad_data_format = 8
header_not_allowed = 9
separator_not_allowed = 10
header_too_long = 11
unknown_dp_error = 12
access_denied = 13
dp_out_of_memory = 14
disk_full = 15
dp_timeout = 16
OTHERS = 17.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
ENDIF.
ENDFORM. " f_read_file
*& Form f_bdc_dynpro
Form to populate BDC Tab for new screen
-->fp_program Screen program name
-->fp_dynpro Screen Number
Start new screen *
FORM f_bdc_dynpro USING fp_program fp_dynpro.
CLEAR wa_bdcdata.
wa_bdcdata-program = fp_program.
wa_bdcdata-dynpro = fp_dynpro.
wa_bdcdata-dynbegin = 'X'.
APPEND wa_bdcdata TO i_bdcdata.
ENDFORM. "f_bdc_dynpro
*& Form f_bdc_field
Insert field *
FORM f_bdc_field USING fp_fnam fp_fval.
IF NOT fp_fval IS INITIAL.
CLEAR wa_bdcdata.
wa_bdcdata-fnam = fp_fnam.
wa_bdcdata-fval = fp_fval.
APPEND wa_bdcdata TO i_bdcdata.
ENDIF.
ENDFORM. "f_bdc_field
*& Form f_bdc_transaction
Call transaction and error handling
-->fp_tcode Transaction code
FORM f_bdc_transaction USING fp_tcode.
DATA: l_mstring(480),
l_color TYPE i,
l_mode TYPE c.
REFRESH i_messtab.
CALL TRANSACTION fp_tcode USING i_bdcdata
OPTIONS FROM wa_opt
MESSAGES INTO i_messtab.
Messages during upload
LOOP AT i_messtab INTO wa_messtab.
CASE wa_messtab-msgtyp.
WHEN 'S'.
l_color = 5.
WHEN 'E'.
l_color = 6.
WHEN 'W'.
l_color = 3.
ENDCASE.
FORMAT COLOR = l_color.
SELECT SINGLE * FROM t100 WHERE sprsl = wa_messtab-msgspra
AND arbgb = wa_messtab-msgid
AND msgnr = wa_messtab-msgnr.
IF sy-subrc = 0.
l_mstring = t100-text.
IF l_mstring CS '&1'.
REPLACE '&1' WITH wa_messtab-msgv1 INTO l_mstring.
REPLACE '&2' WITH wa_messtab-msgv2 INTO l_mstring.
REPLACE '&3' WITH wa_messtab-msgv3 INTO l_mstring.
REPLACE '&4' WITH wa_messtab-msgv4 INTO l_mstring.
ELSE.
REPLACE '&' WITH wa_messtab-msgv1 INTO l_mstring.
REPLACE '&' WITH wa_messtab-msgv2 INTO l_mstring.
REPLACE '&' WITH wa_messtab-msgv3 INTO l_mstring.
REPLACE '&' WITH wa_messtab-msgv4 INTO l_mstring.
ENDIF.
CONDENSE l_mstring.
WRITE: / wa_messtab-msgtyp, l_mstring(250).
ELSE.
WRITE: / wa_messtab.
ENDIF.
FORMAT COLOR OFF.
ENDLOOP.
SKIP.
ENDFORM. " f_bdc_transaction
FORM F1001_GET_F4.
CALL FUNCTION 'KD_GET_FILENAME_ON_F4'
EXPORTING
PROGRAM_NAME = SY-REPID
DYNPRO_NUMBER = SY-DYNNR
FIELD_NAME = P_FILE
CHANGING
FILE_NAME = P_FILE
EXCEPTIONS
MASK_TOO_LONG = 1
OTHERS = 2.
IF SY-SUBRC <> 0.
File is not selected
MESSAGE I000 WITH TEXT-M01.
ENDIF.
ENDFORM. " F1001_GET_F4Sudipta,
Would request you to post this to ABAP-Forum for Immediate response.
I had this problem, but the ABAP guy did something to correct this...it was more of screen resoultion difference between the recorded system and uploading system. Please try to use the same system which was used to record and try.
Regards,
Prasobh -
Facing problem in integrating my custom jsp with the workflow engine
Hi,
I am using Jdeveloper 11.1.1.6.0 for BPM 11g implementation on my Application.I have Weblogic Server 10.3 Installed and configured the domain. Also the server is up and running.
I am trying to create workflow and wants to integrate it with my custom jsp but i am facing problem in integrating my custom jsp with the workflow engine.Can you please answer the following questions:
1)how to link BPM human task with my custom jsp (Requester jsp).
2)how my custom jsp data(Requester data) will be stored in workflow engine and how the same data will be visible to the next custom jsp(Reviewer jsp).
This is urgent .Any early reply will be great help.
Thanks in advance.
Edited by: 990133 on Mar 24, 2013 5:31 AMyou forgot to add the usage dependency in the DC metadata section in your DC, you have to add the XSS~utils and fpm as a used DC's as part of your DC, try to add those, if you already done that, so check where missed the adding of used webdynpro components in any of the VAC's or FC's,
Cheer,
Appa
Maybe you are looking for
-
Getting started with built-in display class
Hello all, I have a newbie question. I just installed Flash CS3 and I'm trying to get basic functionality working. I can't seem to display anything. It's recognizing the document class (Hello.as). I can trace messages in this class but just can't dis
-
Why Apple store can't Upgrade the storage for Macbook Pro Retina after sale?
Hello everyone I am disappointed from apple store . One month ago i bought the new MacBook Pro Retina with storage 256 GB and now i would like to upgrade the storage to 768 GB as mentioned in there website where you can configure the storage higher,b
-
Problem in adding data to database thru UDO object
hi i have created udo object thru b1 udo wizard...successfully with object type as "d1". and table name is "dummy". in that dummy table(master data table) i have added 3 user fileds called country, phone, email. and i have designed a screen with 5 co
-
PDF , word and excel doc s
Where can I find PDF files, word and excel docs downloaded to my I ppad 3 ?
-
Error when purchasing apps on iPad and iPhone
I keep getting the following error when I update my apps. http://twitter.com/adamprocter/status/179880119488352256/photo/1 Then sometimes those other apps gp greyed out - kinda stuck.