Key Column Value in Geometry Theme
Hi,
I have serveral predefined ThemeBasedFOI Layer like this:
<?xml version="1.0" standalone="yes"?>
<styling_rules key_column="ID">
<hidden_info>
<field column="BAUFELDNUMMER" name="Baufeld-Nr."/>
<field column="FLAECHE_TXT" name="Fläche (m²)"/>
</hidden_info>
<rule>
<features style="C.QY_EG_BAUFELDGRENZE"> (FLAECHE >= :1 AND FLAECHE <= :2) </features>
<label column="BAUFELDNUMMER" style="T.GP_BAUFELDNR"> 1 </label>
</rule>
</styling_rules>
How can I access the value of the key column of each feature in the themebasedFOI layer?
What I'm trying to do is calling MVThemeBasedFOI.getFOIData(). As a result i'm getting an Array of FOI data. Each element has an id-property, but unfortunately that ID is not the database ID i'm looking for. It looks likes "AAARYUAAJAAADBOAAN".
Thanks
Dominik
The id value of the FOI data element should be the value of whatever column set as key_column. What's the mapviewer version? Did you restart mapviewer or clear the metadata cache after making changes to the themes?
Similar Messages
-
"Item Containing Primary Key Column Value" does not display records
Hello,
We are developing a new page where an "Automated Row Fetch" process is needed.
With other pages we experienced no issues. But with a new one, when defining the value for the field “Item Containing Primary Key Column Value”, Apex displays no rows.
As far as we know, Apex should display all the fields defined for the page. Is there any property which affects the fields visibility?
The affected page has textarea and text fields.
Thanks in advance.Hello,
Sorry, we have already detected that the problem was at field definition.
Fields should be defined as "Source Type: Database Column". They were wrong defined.
Thanks. -
What is the key column name and value column name in JDBC Adapter parameter
Hi
Can any one please tell me what is the Key Column Name and Key Column Value in JDBC adatper parameters. If i dont mention those parameters i am getting the following error
<b> Value missing for mandatory configuration attribute tableEOColumnNameId</b>
Please help me
Best Regards
Ravi Shankar BHi
I am doing DataBase Lookup in XI
First i have created a Table in Database( CheckUser) which has two fields UserName and PhoneNumber and then i have created
I have created one Communication Channel For Reciever Adapter .
I have given the parameters like this
JDBC Driver : com.microsoft.jdbc.sqlserver.SQLServerDriver
Connection : jdbc:microsoft:sqlserver://10.7.1.43:1433;DatabaseName=Ravi;
UserName.... sa
password.... sa
persistence : Database
Database Table Name : CheckUser
Key column name and Value column name i left blank and activated
and then
I have created
Data Types : Source ...... UserName
Destination.... PhoneNumber
Message Types
Message Interfaces
In Message Mapping
I have created one User Defined function DBProcessing_SpecialAPI().This method will get the data from the database....
In this function i have written the following code
//write your code here
String query = " ";
Channel channel = null;
DataBaseAccessor accessor = null;
DataBaseResult resultSet = null;
query = "select Password from CheckUser where UserName = ' " +UserName[0]+ " ' ";
try {
channel = LookupService.getChannel("Ravi","CC_JDBC");
accessor = LookupService.getDataBaseAccessor(channel);
resultSet = accessor.execute(query);
for(Iterator rows = resultSet.getRows();rows.hasNext();){
Map rowMap = (Map)rows.next();
result.addValue((String)rowMap.get("Password"));
catch(Exception e){
result.addValue(e.getMessage());
finally{
try{
if(accessor != null)
accessor.close();
}catch(Exception e){
result.addValue(e.getMessage());
And the i have mapped like this
UserName -
> DBProcessing_SpecialAPI----
>PhoneNumber
when i am testing this mapping i am getting the following error
<?xml version="1.0" encoding="UTF-8"?>
<ns0:Dest_JDBC_MT xmlns:ns0="http://filetofilescenario.com/ilg"><phoneNumber>Plain exception:Problem when calling an adapter by using communication channel CC_JDBC (Party: , Service: Ravi, Object ID: c360bc139a403293afbc49d5c46e4478) Check whether the communication channel exists in the Integration Directory; also check the cache notifications for the instance Integration Server (central Adapter-Engine) Channel object with Id Channel:c360bc139a403293afbc49d5c46e4478 not available in CPA Cache.
com.sap.aii.mapping.lookup.LookupException: Problem when calling an adapter by using communication channel CC_JDBC (Party: , Service: Ravi, Object ID: c360bc139a403293afbc49d5c46e4478) Check whether the communication channel exists in the Integration Directory; also check the cache notifications for the instance Integration Server (central Adapter-Engine) Channel object with Id Channel:c360bc139a403293afbc49d5c46e4478 not available in CPA Cache.
at com.sap.aii.ibrun.server.lookup.AdapterProxyLocal.<init>(AdapterProxyLocal.java:61)
at com.sap.aii.ibrun.server.lookup.SystemAccessorInternal.getProxy(SystemAccessorInternal.java:98)
at com.sap.aii.ibrun.server.lookup.SystemAccessorInternal.<init>(SystemAccessorInternal.java:38)
at com.sap.aii.ibrun.server.lookup.SystemAccessorHmiServer.getConnection(SystemAccessorHmiServer.java:270)
at com.sap.aii.ibrun.server.lookup.SystemAccessorHmiServer.process(SystemAccessorHmiServer.java:70)
at com.sap.aii.utilxi.hmis.server.HmisServiceImpl.invokeMethod(HmisServiceImpl.java:169)
at com.sap.aii.utilxi.hmis.server.HmisServer.process(HmisServer.java:178)
at com.sap.aii.utilxi.hmis.web.HmisServletImpl.processRequestByHmiServer(HmisServletImpl.java:296)
at com.sap.aii.utilxi.hmis.web.HmisServletImpl.processRequestByHmiServer(HmisServletImpl.java:211)
at com.sap.aii.utilxi.hmis.web.workers.HmisInternalClient.doWork(HmisInternalClient.java:70)
at com.sap.aii.utilxi.hmis.web.HmisServletImpl.doWork(HmisServletImpl.java:496)
at com.sap.aii.utilxi.hmis.web.HmisServletImpl.doPost(HmisServletImpl.java:634)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.runServlet(HttpHandlerImpl.java:390)
at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.handleRequest(HttpHandlerImpl.java:264)
at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:347)
at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:325)
at com.sap.engine.services.httpserver.server.RequestAnalizer.invokeWebContainer(RequestAnalizer.java:887)
at com.sap.engine.services.httpserver.server.RequestAnalizer.handle(RequestAnalizer.java:241)
at com.sap.engine.services.httpserver.server.Client.handle(Client.java:92)
at com.sap.engine.services.httpserver.server.Processor.request(Processor.java:148)
at com.sap.engine.core.service630.context.cluster.session.ApplicationSessionMessageListener.process(ApplicationSessionMessageListener.java:33)
at com.sap.engine.core.cluster.impl6.session.MessageRunner.run(MessageRunner.java:41)
at com.sap.engine.core.thread.impl3.ActionObject.run(ActionObject.java:37)
at java.security.AccessController.doPrivileged(Native Method)
at com.sap.engine.core.thread.impl3.SingleThread.execute(SingleThread.java:100)
at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java:170)
</phoneNumber></ns0:Dest_JDBC_MT>
In RWB i have checked the status of JDBC driver its showing the following error
<b>Value missing for mandatory configuration attribute tableEOColumnNameId</b>
Best Regards
Ravi Shankar B
Message was edited by:
RaviShankar B -
Xsql:delete-request key-columns has to be form posted data?
I am trying to link a hyperlink "delete" on a table to a page "jobs-list-delete.xsql?jobnumber={JOBNUMBER}". When I use:
<form method="post" action="jobs-list-delete.xsql?jobnumber={JOBNUMBER}">
<input type="submit" value="delete"/>
</form>
it worked fine. but I want to use "delete" as a hyperlink instead of a button, so I tried the following:
Delete
unfortunately, it didn't work with the above hyperlink.
I would like to know if xsql:delete-request key-columns value has to be form posted data instead of a query string in an URL from a hyperlink. Is there any way to work around this?
The code I used in jobs-list-delete.xsql is as follows:
<xsql:delete-request key-columns="jobnumber" table="jobs" transform="request-to-InsertJob.xsl"/>
Thanks...
Wenqi Dwyer<xsql:delete-request> works with a posted XML request or a POST'ed HTML form.
To delete things with a simple HTTP GET, you can use <xsql:dml> and a DELETE statement. -
I have a query for an option in the target table. Update key column as explained in the link http://scn.sap.com/docs/DOC-46567
I tried to do the same but its not working as the same. Can someone explain how the keys in the target can be updated since Key is the primary requirement to find whether a record is update or insertHi phaneendranadh kandula
Its working as it mentioned in the above DOC.
Use input keys: Select Yes if your target table does not contain any primary key.
Update Key Column: Select Yes if you want to update key column values and loads data into target table by comparing your source data. Mainly useful for Data Recovery Operations.
Auto Correct Load: Always use auto correct load to avoid duplicates in the target table. -
Issue with getting sequance number from db in EO for a primary key column
Hello Experts,
we are working on ADf 11.1.1.2.
we are facing issue with sequence number in our UAT instance.
dev instance and sit instances did not gave any issues.
We have one EO in that for one attribute we have given the value as
new oracle.jbo.server.SequenceImpl("XXOZF_QA_CODE_S", object.getDBTransaction())).getSequenceNumber()
in order to get the primary key column value from db sequance .
<TransientExpression><![CDATA[(
new oracle.jbo.server.SequenceImpl("XXOZF_QA_CODE_S", object.getDBTransaction())).getSequenceNumber()
]]></TransientExpression>
now the issue is "I have incremented the sequence number through SQL plus from 10 to 20. And created a record on a VO which is based on above EO.
But the sequence iam getting is 11 instead of 21."
This is happening only in our uat instance all other instances are working fine.
Can any one tell us how this frame work is still pointing tho the old sequnce number.
regards
GayazAlso make sure that your sequence has NOCYCLE option.
some thing like this:
CREATE SEQUENCE test_seq
START WITH 1
INCREMENT BY 1
NOCACHE
NOCYCLE; -
Hit the exception when editing the value of row key column in a new created row in a table
1. I created a view object with 2 entity objects (parent table: YARD_FIXED_SLOT - child table: YARD_FIXED_SLOT_DETAIL) and the primary key of child table composes of 2 columns ( one of them is FK: YardFixedSlotDetail.FIXED_SLOT_ID REFERENCES YARD_FIXED_SLOT(FIXED_SLOT_ID)
SQL queries:
SELECT YardFixedSlotDetail.FIXED_SLOT_ID,
YardFixedSlotDetail.MODIFIED_DT,
YardFixedSlotDetail.SLOT_FROM_N,
YardFixedSlotDetail.SLOT_TO_N,
YardFixedSlotDetail.USER_ID,
YardFixedSlot.BLOCK_M,
YardFixedSlot.BLOCK_N,
YardFixedSlot.FIXED_SLOT_ID AS FIXED_SLOT_ID1,
YardFixedSlot.SECTION_N,
YardFixedSlot.STATUS_C,
YardFixedSlot.TERMINAL_C
FROM YARD_FIXED_SLOT_DETAIL YardFixedSlotDetail, YARD_FIXED_SLOT YardFixedSlot
YardFixedSlotDetail.FIXED_SLOT_ID = YardFixedSlot.FIXED_SLOT_ID
2. I dragged this view object into JSF page as an ediable table and add 'add' button to add a new row to the table. and the handling logic in managed bean is as followed. now one new row can be added succesfully in the table.
public void processSlotDetailCreation(ActionEvent ae)
DCBindingContainer bindings = (DCBindingContainer)getBindings();
DCIteratorBinding dciter = bindings.findIteratorBinding("YardFixedSlotDetailFindAllByBlock1Iterator");
Row row = dciter.getCurrentRow();
//get the last row for the index and create a new row for the //user to edit
Row lastRow = dciter.getNavigatableRowIterator().last();
YardFixedSlotDetailFindAllByBlockRowImpl newRow = (YardFixedSlotDetailFindAllByBlockRowImpl)dciter.getNavigatableRowIterator().createRow();
newRow.setFixedSlotId(new Integer(21));
newRow.setUserId("adftest");
newRow.setModifiedDt(new Timestamp(System.currentTimeMillis()));
//bug exist here
newRow.setSlotFromN(new Integer(1));
//newRow.setSlotToN(new Integer(1));
newRow.setNewRowState(Row.STATUS_INITIALIZED);
int lastRowIndex = dciter.getNavigatableRowIterator().getRangeIndexOf(lastRow);
dciter.getNavigatableRowIterator().insertRowAtRangeIndex( lastRowIndex+1, newRow);
// make the new row the current row of the table
dciter.setCurrentRowIndexInRange(lastRowIndex);
dciter.setCurrentRowWithKey(newRow.getKey().toStringFormat(true));
//table should have its displayRow attribute set to //"selected"
// AdfFacesContext.getCurrentInstance().addPartialTarget(slotDetailsTable);
3. When filling in a new value for SlotFromN column (note that SlotFromN column and FixedSlotId column are the rowKey), hit the exception below:
[2013-12-04T13:04:28.866+08:00] [DefaultServer] [ERROR] [] [oracle.adfinternal.view.faces.webapp.rich.RegistrationFilter] [tid: [ACTIVE].ExecuteThread: '14' for queue: 'weblogic.kernel.Default (self-tuning)'] [userId: <anonymous>] [ecid: eb5e281b-6b07-4c17-987e-049792c97dda-000001bf,0] [APP: YPCApp] [DSID: 0000KAvzIaA5qYWFLzmJOA1IbdqZ000003] ADF_FACES-60096:Server Exception during PPR, #7[[
oracle.jbo.InvalidOperException: JBO-29114 ADFContext is not setup to process messages for this exception. Use the exception stack trace and error code to investigate the root cause of this exception. Root cause error code is JBO-34014. Error message parameters are {0=oracle.jbo.Key[21 null ], 1=root}
at oracle.jbo.uicli.binding.JUCtrlHierBinding.bringNodeToRangeKeyPath(JUCtrlHierBinding.java:859)
at oracle.adfinternal.view.faces.model.binding.FacesCtrlHierBinding.bringNodeToRangeKeyPath(FacesCtrlHierBinding.java:122)
at oracle.adfinternal.view.faces.model.binding.RowDataManager.setRowKey(RowDataManager.java:131)
at oracle.adfinternal.view.faces.model.binding.FacesCtrlHierBinding$FacesModel.setRowKey(FacesCtrlHierBinding.java:951)
at org.apache.myfaces.trinidad.component.UIXCollection.setRowKey(UIXCollection.java:527)
at org.apache.myfaces.trinidad.component.UIXTable.setRowKey(UIXTable.java:760)
at oracle.adfinternal.view.faces.renderkit.rich.TableRendererUtils._processStampedChildrenForActiveRow(TableRendererUtils.java:2950)
at oracle.adfinternal.view.faces.renderkit.rich.TableRendererUtils.processFacetsAndChildrenForClickToEdit(TableRendererUtils.java:1604)
at oracle.adfinternal.view.faces.renderkit.rich.TableRenderer.processFacetsAndChildrenForClickToEdit(TableRenderer.java:352)
at oracle.adfinternal.view.faces.renderkit.rich.TableRenderer.decodeChildren(TableRenderer.java:193)
at org.apache.myfaces.trinidad.component.UIXComponentBase.decodeChildren(UIXComponentBase.java:1347)
at org.apache.myfaces.trinidad.component.UIXCollection.processDecodes(UIXCollection.java:226)
at org.apache.myfaces.trinidad.component.UIXComponentBase.decodeChildrenImpl(UIXComponentBase.java:1365)
at org.apache.myfaces.trinidad.component.UIXComponentBase.decodeChildren(UIXComponentBase.java:1351)
at org.apache.myfaces.trinidad.component.UIXComponentBase.processDecodes(UIXComponentBase.java:1124)
at org.apache.myfaces.trinidad.component.UIXComponentBase.decodeChildrenImpl(UIXComponentBase.java:1365)
at org.apache.myfaces.trinidad.component.UIXComponentBase.decodeChildren(UIXComponentBase.java:1351)
at org.apache.myfaces.trinidad.component.UIXComponentBase.processDecodes(UIXComponentBase.java:1124)
at org.apache.myfaces.trinidad.component.UIXComponentBase.decodeChildrenImpl(UIXComponentBase.java:1365)
at org.apache.myfaces.trinidad.component.UIXComponentBase.decodeChildren(UIXComponentBase.java:1351)
at org.apache.myfaces.trinidad.component.UIXComponentBase.processDecodes(UIXComponentBase.java:1124)
at org.apache.myfaces.trinidad.component.UIXComponentBase.decodeChildrenImpl(UIXComponentBase.java:1365)
at org.apache.myfaces.trinidad.component.UIXComponentBase.decodeChildren(UIXComponentBase.java:1351)
at org.apache.myfaces.trinidad.component.UIXComponentBase.processDecodes(UIXComponentBase.java:1124)
at org.apache.myfaces.trinidad.component.UIXComponentBase.decodeChildrenImpl(UIXComponentBase.java:1365)
at org.apache.myfaces.trinidad.component.UIXComponentBase.decodeChildren(UIXComponentBase.java:1351)
at org.apache.myfaces.trinidad.component.UIXComponentBase.processDecodes(UIXComponentBase.java:1124)
at org.apache.myfaces.trinidad.component.UIXComponentBase.decodeChildrenImpl(UIXComponentBase.java:1365)
at org.apache.myfaces.trinidad.component.UIXComponentBase.decodeChildren(UIXComponentBase.java:1351)
at org.apache.myfaces.trinidad.component.UIXComponentBase.processDecodes(UIXComponentBase.java:1124)
at org.apache.myfaces.trinidad.component.UIXComponentBase.decodeChildrenImpl(UIXComponentBase.java:1365)
at org.apache.myfaces.trinidad.component.UIXComponentBase.decodeChildren(UIXComponentBase.java:1351)
at org.apache.myfaces.trinidad.component.UIXComponentBase.processDecodes(UIXComponentBase.java:1124)
at org.apache.myfaces.trinidad.component.UIXComponentBase.decodeChildrenImpl(UIXComponentBase.java:1365)
at org.apache.myfaces.trinidad.component.UIXComponentBase.decodeChildren(UIXComponentBase.java:1351)
at org.apache.myfaces.trinidad.component.UIXComponentBase.processDecodes(UIXComponentBase.java:1124)
at org.apache.myfaces.trinidad.component.UIXComponentBase.decodeChildrenImpl(UIXComponentBase.java:1365)
at org.apache.myfaces.trinidad.component.UIXComponentBase.decodeChildren(UIXComponentBase.java:1351)
at org.apache.myfaces.trinidad.component.UIXComponentBase.processDecodes(UIXComponentBase.java:1124)
at org.apache.myfaces.trinidad.component.UIXComponentBase.decodeChildrenImpl(UIXComponentBase.java:1365)
at oracle.adf.view.rich.component.fragment.UIXRegion.decodeChildrenImpl(UIXRegion.java:605)
at org.apache.myfaces.trinidad.component.UIXComponentBase.decodeChildren(UIXComponentBase.java:1351)
at org.apache.myfaces.trinidad.component.UIXComponentBase.processDecodes(UIXComponentBase.java:1124)
at org.apache.myfaces.trinidad.component.UIXComponentBase.decodeChildrenImpl(UIXComponentBase.java:1365)
at org.apache.myfaces.trinidad.component.UIXComponentBase.decodeChildren(UIXComponentBase.java:1351)
at org.apache.myfaces.trinidad.component.UIXComponentBase.processDecodes(UIXComponentBase.java:1124)
at org.apache.myfaces.trinidad.component.UIXComponentBase.decodeChildrenImpl(UIXComponentBase.java:1365)
at org.apache.myfaces.trinidad.component.UIXComponentBase.decodeChildren(UIXComponentBase.java:1351)
at org.apache.myfaces.trinidad.component.UIXComponentBase.processDecodes(UIXComponentBase.java:1124)
at org.apache.myfaces.trinidad.component.UIXComponentBase.decodeChildrenImpl(UIXComponentBase.java:1365)
at org.apache.myfaces.trinidad.component.UIXComponentBase.decodeChildren(UIXComponentBase.java:1351)
at org.apache.myfaces.trinidad.component.UIXComponentBase.processDecodes(UIXComponentBase.java:1124)
at org.apache.myfaces.trinidad.component.UIXComponentBase.decodeChildrenImpl(UIXComponentBase.java:1365)
at org.apache.myfaces.trinidad.component.UIXComponentBase.decodeChildren(UIXComponentBase.java:1351)
at org.apache.myfaces.trinidad.component.UIXComponentBase.processDecodes(UIXComponentBase.java:1124)
at org.apache.myfaces.trinidad.component.UIXComponentBase.decodeChildrenImpl(UIXComponentBase.java:1365)
at org.apache.myfaces.trinidad.component.UIXComponentBase.decodeChildren(UIXComponentBase.java:1351)
at org.apache.myfaces.trinidad.component.UIXComponentBase.processDecodes(UIXComponentBase.java:1124)
at org.apache.myfaces.trinidad.component.UIXComponentBase.decodeChildrenImpl(UIXComponentBase.java:1365)
at org.apache.myfaces.trinidad.component.UIXComponentBase.decodeChildren(UIXComponentBase.java:1351)
at org.apache.myfaces.trinidad.component.UIXForm.processDecodes(UIXForm.java:75)
at org.apache.myfaces.trinidad.component.UIXComponentBase.decodeChildrenImpl(UIXComponentBase.java:1365)
at org.apache.myfaces.trinidad.component.UIXComponentBase.decodeChildren(UIXComponentBase.java:1351)
at org.apache.myfaces.trinidad.component.UIXComponentBase.processDecodes(UIXComponentBase.java:1124)
at javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:1176)
at javax.faces.component.UIViewRoot.processDecodes(UIViewRoot.java:933)
at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl$ApplyRequestValuesCallback.invokeContextCallback(LifecycleImpl.java:1574)
at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl._executePhase(LifecycleImpl.java:416)
at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:225)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:593)
at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:280)
at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:254)
at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:136)
at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:341)
at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:25)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:79)
at oracle.adf.model.servlet.ADFBindingFilter.doFilter(ADFBindingFilter.java:192)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:79)
at oracle.adfinternal.view.faces.webapp.rich.RegistrationFilter.doFilter(RegistrationFilter.java:106)
at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl$FilterListChain.doFilter(TrinidadFilterImpl.java:478)
at oracle.adfinternal.view.faces.activedata.AdsFilter.doFilter(AdsFilter.java:60)
at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl$FilterListChain.doFilter(TrinidadFilterImpl.java:478)
at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl._doFilterImpl(TrinidadFilterImpl.java:303)
at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl.doFilter(TrinidadFilterImpl.java:208)
at org.apache.myfaces.trinidad.webapp.TrinidadFilter.doFilter(TrinidadFilter.java:92)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:79)
at oracle.security.jps.ee.http.JpsAbsFilter$1.run(JpsAbsFilter.java:137)
at java.security.AccessController.doPrivileged(Native Method)
at oracle.security.jps.util.JpsSubject.doAsPrivileged(JpsSubject.java:315)
at oracle.security.jps.ee.util.JpsPlatformUtil.runJaasMode(JpsPlatformUtil.java:460)
at oracle.security.jps.ee.http.JpsAbsFilter.runJaasMode(JpsAbsFilter.java:120)
at oracle.security.jps.ee.http.JpsAbsFilter.doFilter(JpsAbsFilter.java:217)
at oracle.security.jps.ee.http.JpsFilter.doFilter(JpsFilter.java:81)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:79)
at oracle.dms.servlet.DMSServletFilter.doFilter(DMSServletFilter.java:225)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:79)
at weblogic.servlet.internal.RequestEventsFilter.doFilter(RequestEventsFilter.java:27)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:79)
at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.wrapRun(WebAppServletContext.java:3367)
at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3333)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120)
at weblogic.servlet.provider.WlsSubjectHandle.run(WlsSubjectHandle.java:57)
at weblogic.servlet.internal.WebAppServletContext.doSecuredExecute(WebAppServletContext.java:2220)
at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2146)
at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2124)
at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1564)
at weblogic.servlet.provider.ContainerSupportProviderImpl$WlsRequestExecutor.run(ContainerSupportProviderImpl.java:254)
at weblogic.work.ExecuteThread.execute(ExecuteThread.java:295)
at weblogic.work.ExecuteThread.run(ExecuteThread.java:254)
4. I think problem maybe is related with row key, but I need end user to change rowkey column value. does it allow changing the value of column as row key? I found this problem maybe only occur for new created row. For those existing rows, even I change the value of row key column, no such problem occurred, how do I handle this situation?
Appriciate if anybody can help.Hi Bangaram,
Thank you for your reply.
The error: "Root cause error code is JBO-34014. Error message parameters are {0=oracle.jbo.Key[21 null ], 1=root} "
I didn't create master records, I just used joint queries for information display of both master and detail. I am trying to create a row in the UI table to create a new detail record and master record already exists.
The row key for new added row in UI rich table is [21 null ], row key of detail records table composes of 2 columns. 21 is for FixedSlotId and null is for SlotFromN. when I provide a new value for SlotFromN column in UI rich table, problem will occur. -
Need to concatonate multiple values for same key columns into one string
Hi...I'm attempting to use PL/SQL to read through a table containing more than one column value for a set of keys, and concatonate those values together into one string. For example, in the STUDENT table, for a STUDENT_ID there are multiple MAJORS_ACCOMPLISHED such as History, Biology and Mathematics. Each of the majors is stored in a different row with the same STUDENT_ID due to different faculty DEPARTMENT values.
I want to read through the table and write out a single row for the STUDENT_ID and
concatonate the values for MAJORS_ACCOMPLISHED. The next row should be another STUDENT_ID and the MAJORS ACCOMPLISHED for that student..etc.
I've hit a wall trying to use cursors and WHILE loops to get the results I want. I'm hoping someone may have run across this before and have a suggestion. Tks!!I think you are looking for string aggregation.
The following are the replies posted by me in the forum recently on the same case.
they might help you.
Re: Concatenating multiple rows in a table - Very urgent - pls help
Re: Doubt in a query ( Urgent )
Re: How to remove words which consist of max 2 letters?
Re: output like Name1,Name2,Name3... -
Mapping a value to a key column
Hi,
I need some information in understanding the 2nd point from below
"2. UPDATE statement changes City from SF to LA on the source. This does not succeed on the
target. The SQLEXEC query looks up the City column in TCUSTMER1 and returns a value of
LA. Based on the COLMAP clause, the before and after versions of City both are now LA.
This leads to SQL error 1403 when executing the target WHERE clause, because a value
of LA does not exist for the City column in the target table."
I am unable to follow what exactly it states.
Can some one explain with a good example?
Reference:
Mapping a value to a key column
If using COLMAP to map a value to a key column (which causes the operation to become a
primary key update), the WHERE clause that Oracle GoldenGate uses to locate the target row
will not use the correct before image of the key column. Instead, it will use the after image.
This will cause errors if you are using any functions based on that key column, such as a
SQLEXEC statement.
The following illustrates what happens:
This is the SQLEXEC statement in the MAP statement:
SQLEXEC (id mytest, query "select city from TCUSTMER1 WHERE state = 'CA'",
noparams, ERROR RAISE),
This is the COLMAP statement in the MAP statement:
COLMAP ( usedefaults, city = mytest.city );
This is the sequence of events:
1. INSERT statement inserts the following:
INSERT into TCUSTMER1 values (Cust = ‘1234’, Name = ‘Ace’, City = ‘SF’,
State = ‘CA);
Commit;
This succeeds, because the SQLEXEC query will return mytest.city = ‘SF, so the target table
also will have a value of SF for City and CA for State.
2. UPDATE statement changes City from SF to LA on the source. This does not succeed on the
target. The SQLEXEC query looks up the City column in TCUSTMER1 and returns a value of
LA. Based on the COLMAP clause, the before and after versions of City both are now LA.
This leads to SQL error 1403 when executing the target WHERE clause, because a value
of LA does not exist for the City column in the target table.user582604 wrote:
I am unable to follow what exactly it states.Join the club. The description is admittedly a bit complicated to follow, but it's unlikely that you're actually experiencing a problem related to this.
It's just saying (as far as i can tell) either don't do a pk (primary key) update.... or (presumably) if you must do a pk update, do not also try at the same time to map the pk column to the result of some GG function (e.g., a sqlexec). When you have a replicat map "colmap(usedefaults, pk=sqlexec.result)", then the "where" clause constructed to perform the pk update on the target DB will use the new, updated ("after") value of the pk, and not the old, original ("before") value. Therefore the row won't be found on the target, since the pk has not actually been updated yet.
(To paraphrase, the docs could have just said: "See this? Don't do that.") -
Key frame values are not showing
Does anyone know why my key frame values are not showing? How do I get them back?
See this about showing and hiding columns:
After Effects Help | General user interface items -
Unable to pass report column value to url in select statement. Please help
Hi all,
I am trying to pass the report column value as follows:
select key, num,
case when Attachmentcnt(KEY) != 0 then
'f?p=&APP_ID.:91:&SESSION.:'' '':NO::P91_KEY,P91NUM,P91_PREVPG:'And I am passing values as follows:
{noformat}
'#KEY#,'#NUM#','9' ELSE null
END Attachment
from tableA
{noformat}
But, I am not able to figure out correct sysntax to pass these column values. Can anyone give me some help. I appreciate it.
rgds,
Suma.
Edited by: sumak on Jun 23, 2009 12:11 PM
Edited by: sumak on Jun 23, 2009 12:22 PMSuma,
If you're trying to generate a column with a URL, try something like the following:
select key, num,
case when Attachmentcnt(KEY) != 0 then
'f?p=&APP_ID.:91:&SESSION.:'' '':NO::P91_KEY,P91NUM,P91_PREVPG:'
|| tableA.key || ',' || tableA.num || ',' || :P91_PREVPG
else NULL
end
FROM tableA;
But the best way to pass these would include checksum values against the values of your parameters (to make sure a user doesn't hack them). You'll need to check the Apex User manual for details - See "Understanding Session State Protection".
Good luck,
Stew -
How to refresh/apply column value default setting on current files or folders
Hi All
I have set-up default column data per folder in my library (via
Library Settings > Column default settings) and it works great for new documents or folders that are added to the library.
But what do I do if I have an existing Library with folders and files and need to apply default column data to each? Is there a way of "refreshing" the default columns so that the data is populated through a specific folder and/or its sub-folders?
(I really hope this is an easy fix or just a setting that I over-looked somewhere!)
Thank you!I had to do this as well recently, and remembered your post.
Here is the function I wrote , this worked for text, choice, and metadata columns
It is pretty slow and could be optimized and broken up into more functions, but I had to do several things:
1. I mass-updated the content types in a library
2. On Library settings : set default values and also different defaults per folder
3. For each file I then needed to:
3.a. either copy the value from a column in the old content type to the new, or
3.b. set the column to the default
so this function does step 3, like I said it works for certain types of columns and can be sped up (I used it to update 700 files in a couple minutes), and it makes some assumptions about the environment but this at least is a starting point.
As Alex said you may want to change SystemUpdate($true) to just Update(), depending on your requirements.
<#
.SYNOPSIS
Resets columns in a document library to defaults for blank columns. Use this
after changing the content types or adding columns to a doc lib with existing files
.DESCRIPTION
Resets columns in a doc lib to their defaults. Will only set them if the columns are blank (unless overridden)
Will also copy some values from one column to another while you are there.
Can restrict the update to a subset of columns, or have it look for all columns with defaults.
Will use the list defaults as well as folder defaults.
All names of columns passed in should use InternalName.
This has ONLY been tested on Text, Choice, Metadata, and mult-Choice and Mult-Metadata columns
Pass in a list and it will recursively travel down the list to update all items with the defaults for the items in that folder.
If you call it on a folder, it will travel up the tree of folders to find the proper defaults
Author:
Chris Buchholz
[email protected]
@plutosdad
.PARAMETER list
The document library to update. Using this parameter it will update all files in the doc lib
.PARAMETER folder
The folder containing files to update. Function will update all files in this folder and subfolders.
.PARAMETER ParentFolderDefaults
Hashtable of internal field names as KEY, and value VALUE, summing up all the parent folders or list defaults.
If not supplied, then the function will travel up the tree of folders to the parent doclib to determine
the correct defaults to apply.
If the field is managed metadata, then the value is a string
Currently only tested for string and metadata values, not lookup or date
.PARAMETER termstore
The termstore to use if you are going to update managed metadata columns, this assumes we are only using the one termstore for all columns to update
If you are using the site collection specific termstore for some columns you want to update, and
the central termstore for others, then you should call this method twice, once with each termstore,
and specify the respective columns in fieldsToUpdate
.PARAMETER fieldsToCopy
Hashtable of internal field names, where KEY is the "to" field, and VALUE is the "from" field
Use this to copy values from one field to another for the item.
These override the defaults, and also cause the "from" (Value) fields to NOT be overwritten with defaults even if
they are in the fieldsToUpdate array.
Example: @{"MyNewColumn" = "My_x0020_Old_x0020_Column"}
.PARAMETER fieldsToUpdate
If supplied then the method will update only the fields in this array to their default values, if null then it will update
all fields that have defaults.
If you pass in an empty array, then this method will only copy fields in the fieldtocopy and not
apply any defaults
Example: @() - to only copy and not set any fields to default
Example2: @('UpdateField1','UpdateField2') will
.EXAMPLE
Set-SPListItemValuesToDefaults -list $list -fieldsToCopy @{"MyNewColumn" = "My_x0020_Old_x0020_Column"} -fieldsToUpdate @() -overwrite -termStore $termStore
This will not set any defaults, but instead only set MyNewColumn to non null values of My_x0020_Old_x0020_Column
It will overwrite any values of MyNewColumn
.EXAMPLE
Set-SPListItemValuesToDefaults -list $list -overwrite
This will set all columns to their default values even if they are filled in already
.EXAMPLE
Set-SPListItemValuesToDefaults -folder $list.RootFolder.SubFolder[3].SubFolder[5]
This will set all columns to their defaults in the given subfolder of a library
.EXAMPLE
Set-SPListItemValuesToDefaults -list $list -fieldsToUpdate @('ColumnOneInternalName','ColumnTwoInternalName')
This will set columns ColumnOneInternalName and ColumnTwoInternalName to their defaults for all items where they are currently null
.EXAMPLE
Set-SPListItemValuesToDefaults -list $list -fieldsToCopy @{"MyNewColumn" = "My_x0020_Old_x0020_Column"} -fieldsToUpdate @("MyNewColumn") -termStore $termStore
This will set all MyNewColumn values to their default, and then also copy the values of My_x0020_Old_x0020_Column to MyNewColumn where the old column is not null,
but both of these will only happen for items where MyNewColumn is null
.EXAMPLE
Set-SPListItemValuesToDefaults -list $list -fieldsToCopy @{"MyNewColumn" = "My_x0020_Old_x0020_Column"} -termStore $termStore
This will set ALL columns with defaults to the default value (if the item's value is null),
except for My_x0020_Old_x0020_Column which will not be modified even if it has a default value, and will also set MyNewColumn to the
value of My_x0020_Old_x0020_Column if the old value is not null
#>
function Set-SPListItemValuesToDefaults {
[CmdletBinding(SupportsShouldProcess=$true)]
param(
[Parameter(Mandatory=$true,ValueFromPipeline=$true,ParameterSetName="List")][Microsoft.SharePoint.SPList]$list,
[Parameter(Mandatory=$true,ValueFromPipeline=$true,ParameterSetName="Folder")][Microsoft.SharePoint.SPFolder]$folder,
[Parameter(Mandatory=$false,ParameterSetName="Folder")][HashTable]$ParentFolderDefaults,
[Parameter(Mandatory=$false)][HashTable]$fieldsToCopy,
[Parameter(Mandatory=$false)][Array]$fieldsToUpdate,
[Parameter(Mandatory=$false)][Microsoft.SharePoint.Taxonomy.TermStore]$termStore,
[Switch]$overwrite,
[Switch]$overwriteFromFields
begin {
#one or both can be null, but if both empty, then nothing to do
if ($null -ne $fieldsToUpdate -and $fieldsToUpdate.Count -eq 0 -and
( $null -eq $fieldsToCopy -or $fieldsToCopy.Count -eq 0)) {
Write-Warning "No fields to update OR copy"
return
if ($PSCmdlet.ParameterSetName -eq "Folder") {
$list = $folder.DocumentLibrary
if ($null -eq $termStore ) {
$taxonomySession = Get-SPTaxonomySession -site $list.ParentWeb.Site
$termStores = $taxonomySession.TermStores
$termStore = $termStores[0]
#if we did not pass in the parent folder defaults then we must go backward up tree
if ($PSCmdlet.ParameterSetName -eq "Folder" -and $null -eq $ParentFolderDefaults ) {
$ParentFolderDefaults = @{}
if ($null -eq $fieldsToUpdate -or $fieldsToUpdate.Count -gt 0) {
write-Debug "ParentFolderDefaults is null"
$tempfolder=$folder.ParentFolder
while ($tempfolder.ParentListId -ne [Guid]::Empty) {
Write-Debug "at folder $($tempfolder.Url)"
$pairs = $columnDefaults.GetDefaultMetadata($tempfolder)
foreach ($pair in $pairs) {
if (!$ParentFolderDefaults.ContainsKey($pair.First)) {
Write-Debug "Folder $($tempfolder.Name) default: $($pair.First) = $($pair.Second)"
$ParentFolderDefaults.Add($pair.First,$pair.Second)
$tempfolder = $tempfolder.ParentFolder
#listdefaults
Write-Debug "at list"
foreach ($field in $folder.DocumentLibrary.Fields) {
if ($field.InternalName -eq "_ModerationStatus") { continue }
#$field = $list.Fields[$name]
if (![String]::IsNullOrEmpty($field.DefaultValue)) {
#Write-Verbose "List default found key $($field.InternalName)"
if (!$ParentFolderDefaults.ContainsKey($field.InternalName)) {
Write-Debug "List Default $($field.InternalName) = $($field.DefaultValue)"
$ParentFolderDefaults.Add($field.InternalName,$field.DefaultValue)
process {
Write-Debug "Calling with $($PSCmdlet.ParameterSetName)"
Write-Debug "Parent folder hash has $($ParentFolderDefaults.Count) items"
if ($PSCmdlet.ParameterSetName -eq "List" ) {
$folder = $list.RootFolder
$ParentFolderDefaults=@{}
if ($null -eq $fieldsToUpdate -or $fieldsToUpdate.Count -gt 0) {
foreach ($field in $list.Fields) {
if ($field.InternalName -eq "_ModerationStatus") { continue }
if (![String]::IsNullOrEmpty($field.DefaultValue)) {
Write-Debug "List Default $($field.InternalName) = $($field.DefaultValue)"
$ParentFolderDefaults.Add($field.InternalName,$field.DefaultValue)
Write-Verbose "At folder $($folder.Url)"
$FolderDefaults=@{}
$FolderDefaults += $ParentFolderDefaults
if ($null -eq $fieldsToUpdate -or $fieldsToUpdate.Count -gt 0) {
$pairs = $columnDefaults.GetDefaultMetadata($folder)
foreach ($pair in $pairs) {
if ($FolderDefaults.ContainsKey($pair.First)) {
$FolderDefaults.Remove($pair.First)
Write-Debug "Folder $($folder.Name) default: $($pair.First) = $($pair.Second)"
$FolderDefaults.Add($pair.First,$pair.Second)
#set values
foreach ($file in $folder.Files) {
if ($file.CheckOutType -ne [Microsoft.SharePoint.SPFile+SPCheckOutType]::None) {
Write-Warning "File $($file.Url).CheckOutType = $($file.CheckOutType)) ... skipping"
continue
$item = $file.Item
$ItemDefaults=@{}
$ItemDefaults+= $FolderDefaults
#if we only want certain fields then remove the others
#Move this to every time we add values to the defaults
if ($null -ne $fieldsToUpdate ) {
$ItemDefaults2=@{}
foreach ($fieldInternalName in $fieldsToUpdate) {
try {
$ItemDefaults2.Add($fieldInternalName,$ItemDefaults[$fieldInternalName])
} catch { } #who cares if not in list
$ItemDefaults = $ItemDefaults2
#do not overwrite already filled in values unless specified
if (!$overwrite) {
$keys = $itemDefaults.Keys
for ($i=$keys.Count - 1; $i -ge 0; $i-- ) {
$key=$keys[$i]
try {
$val =$item[$item.Fields.GetFieldByInternalName($key)]
if ($val -ne $null) {
$ItemDefaults.Remove($key)
} catch {} #if fieldname does not exist then ignore, we should check for this earlier
#do not overwrite FROM fields in copy list unless specified
if (!$overwriteFromFields) {
if ($null -ne $fieldToCopy -and $fieldsToCopy.Count -gt 0) {
foreach ($value in $fieldsToCopy.Values) {
try {
$ItemDefaults.Remove($value)
} catch {} #who cares if not in list
#do not overwrite TO fields in copy list if we're going to copy instead
if (!$overwriteFromFields) {
if ($null -ne $fieldToCopy -and $fieldsToCopy.Count -gt 0) {
foreach ($key in $fieldsToCopy.Keys) {
$fromfield = $item.Fields.GetFieldByInternalName($fieldsToCopy[$key])
try {
if ($null -ne $item[$fromfield]) {
$ItemDefaults.Remove($key)
} catch {} #who cares if not in list
Write-Verbose $item.Url
$namestr = [String]::Empty
if ($ItemDefaults.Count -eq 0) {
write-Verbose "No defaults, copy only"
} else {
$str = $ItemDefaults | Out-String
$namestr += $str
Write-Verbose $str
if ($null -ne $fieldsToCopy -and $fieldsToCopy.Count -gt 0) {
$str = $fieldsToCopy | Out-String
$namestr +=$str
if ($PSCmdlet.ShouldProcess($item.Url,"Set Values: $namestr"))
#defaults
if ($null -ne $ItemDefaults -and $ItemDefaults.Count -gt 0) {
foreach ($key in $ItemDefaults.Keys) {
$tofield = $item.Fields.GetFieldByInternalName($key)
if ($tofield.TypeAsString -like "TaxonomyFieldType*") {
$taxfield =[Microsoft.SharePoint.Taxonomy.TaxonomyField]$tofield
$taxfieldValue = New-Object Microsoft.SharePoint.Taxonomy.TaxonomyFieldValue($tofield)
$lookupval=$ItemDefaults[$key]
$termval=$lookupval.Substring( $lookupval.IndexOf('#')+1)
$taxfieldValue.PopulateFromLabelGuidPair($termval)
if ($tofield.TypeAsString -eq "TaxonomyFieldType") {
$taxfield.SetFieldValue($item,$taxfieldValue)
} else {
#multi
$taxfieldValues = New-Object Microsoft.SharePoint.Taxonomy.TaxonomyFieldValueCollection $tofield
$taxfieldValues.Add($taxfieldValue)
$taxfield.SetFieldValue($item,$taxfieldValues)
} else {
$item[$field]=$ItemDefaults[$key]
#copyfields
if ($null -ne $fieldsToCopy -and $fieldsToCopy.Count -gt 0) {
#$fieldsToCopy | Out-String | Write-Verbose
foreach ($key in $fieldsToCopy.Keys) {
$tofield = $item.Fields.GetFieldByInternalName($key)
$fromfield = $item.Fields.GetFieldByInternalName($fieldsToCopy[$key])
if ($null -eq $item[$fromfield] -or ( !$overwrite -and $null -ne $item[$tofield] )) {
continue
if ($tofield.TypeAsString -eq "TaxonomyFieldType" -and
$fromfield.TypeAsString -notlike "TaxonomyFieldType*" ) {
#non taxonomy to taxonomy
$taxfield =[Microsoft.SharePoint.Taxonomy.TaxonomyField]$tofield
$termSet = $termStore.GetTermSet($taxfield.TermSetId)
[String]$fromval = $item[$fromfield]
$vals = $fromval -split ';#' | where {![String]::IsNullOrEmpty($_)}
if ($null -ne $vals -and $vals.Count -ge 0 ) {
$val = $vals[0]
if ($vals.Count -gt 1) {
write-Warning "$($item.Url) Found more than one value in $($fromfield.InternalName)"
continue
$terms =$termSet.GetTerms($val,$true)
if ($null -ne $terms -and $terms.Count -gt 0) {
$term = $terms[0]
$taxfield.SetFieldValue($item,$term)
Write-Verbose "$($tofield.InternalName) = $($term.Name)"
} else {
Write-Warning "Could not determine term for $($fromfield.InternalName) for $($item.Url)"
continue
} elseif ($tofield.TypeAsString -eq "TaxonomyFieldTypeMulti" -and
$fromfield.TypeAsString -notlike "TaxonomyFieldType*" ) {
Write-Debug "we are here: $($item.Name): $($fromfield.TypeAsString) to $($tofield.TypeAsString )"
#non taxonomy to taxonomy
$taxfield =[Microsoft.SharePoint.Taxonomy.TaxonomyField]$tofield
$termSet = $termStore.GetTermSet($taxfield.TermSetId)
$taxfieldValues = New-Object Microsoft.SharePoint.Taxonomy.TaxonomyFieldValueCollection $tofield
[String]$fromval = $item[$fromfield]
$vals = $fromval -split ';#' | where {![String]::IsNullOrEmpty($_)}
foreach ($val in $vals){
$terms =$termSet.GetTerms($val,$true)
if ($null -ne $terms -and $terms.Count -gt 0) {
$term=$terms[0]
$taxfieldValue = New-Object Microsoft.SharePoint.Taxonomy.TaxonomyFieldValue($tofield)
$taxfieldValue.TermGuid = $term.Id.ToString()
$taxfieldValue.Label = $term.Name
$taxfieldValues.Add($taxfieldValue)
} else {
Write-Warning "Could not determine term for $($fromfield.InternalName) for $($item.Url)"
continue
#,[Microsoft.SharePoint.Taxonomy.StringMatchOption]::ExactMatch,
$taxfield.SetFieldValue($item,$taxfieldValues)
$valsAsString = $taxfieldValues | Out-String
Write-Debug "$($tofield.InternalName) = $valsAsString"
} elseif ($tofield.TypeAsString -eq "TaxonomyFieldTypeMulti" -and
$fromfield.TypeAsString -eq "TaxonomyFieldType" ) {
#single taxonomy to multi
$taxfieldValues = New-Object Microsoft.SharePoint.Taxonomy.TaxonomyFieldValueCollection $tofield
$taxfield =[Microsoft.SharePoint.Taxonomy.TaxonomyField]$tofield
$taxfieldValues.Add($item[$fromfield])
$taxfield.SetFieldValue($item,$taxFieldValues)
Write-Verbose "$($tofield.InternalName) = $valsAsString"
} elseif ($tofield.TypeAsString -eq "TaxonomyFieldType" -and
$fromfield.TypeAsString -eq "TaxonomyFieldTypeMulti" ) {
#multi taxonomy to single taxonomy
Write-Warning "multi to non multi - what to do here"
continue
} elseif ($tofield.TypeAsString -eq "Lookup" -and
$fromfield.TypeAsString -ne "Lookup" ) {
#non lookup to lookup
Write-Warning "non lookup to lookup - still todo"
continue
} else {
#straight copy
$item[$tofield] = $item[$fromfield]
$item.SystemUpdate($false)
$folders = $folder.SubFolders | where name -ne "Forms"
$folders | Set-SPListItemValuesToDefaults -ParentFolderDefaults $FolderDefaults -fieldsToCopy $fieldsToCopy -fieldsToUpdate $fieldsToUpdate -overwrite:$overwrite -overwriteFromFields:$overwriteFromFields -termStore $termStore -
Updation of table records having 5-6 primary key columns.
I have a table structure having 12 primary composite keys.I have created report + form on this table.My requirement is to update the table by using form items fields.I am taking help of url option on report attribute page of application to fetch data on form page when we click on edit link of report page.Now i am having two problems which are as follows:-
(i)I am unable to update data as requirement is to update 5 to 6 primary fields along with other non primary keys.I tried to create Pl/SQL process which will run update query but this process is not updating values.Is there any way that i could fetch data direct from database table in query rather then taking item values.Is there any other workaround?
(ii)One of the primary key column contains records which have ' , ' in them .For ex:- cluth,bearing.So when i get navigated to edit page i am only getting text displayed as clutch i.e. text before ',' is getting displayed in text field while comma and the text after this is not getting displayed in text field of form page.
Any solutions will be very helpful.
Thanks
AbhiHello Abhi,
>> I am unable to update data as requirement is to update 5 to 6 primary fields along with other non primary keys
APEX wizards support a composite PK with up to 2 segments only. For every other scenario, you’ll have to manually create your DML code.
If you have control over your data model, I would listen very carefully to Andre advices. Using a single segment PK is the best practice way. If you can’t add PK to your table, it seems that you’ll have to write your own DML code. The Object Browser option of creating a Package with methods on database table(s) can be a great help.
>> … I am taking help of url option … One of the primary key column contains records which have ' , ' in them …
Using the f?p notation, to pass a comma in an item value, you should enclose the characters with backslashes. For example,
\cluth,bearing\In your case, it should be the item/column notation.
http://download.oracle.com/docs/cd/E17556_01/doc/user.40/e15517/concept.htm#BCEDJBEH
Regards,
Arie.
♦ Please remember to mark appropriate posts as correct/helpful. For the long run, it will benefit us all.
♦ Author of Oracle Application Express 3.2 – The Essentials and More -
BOOLEAN DEFAULT FALSE NOT NULL for key-column
Hello,
These statements show an unexpected behavior when a column is added to a table as 'BOOLEAN DEFAULT FALSE NOT NULL' and added afterward to the table's primary key column set:
create table test_1 (a char(1))
insert into test_1 values('A')
alter table test_1 add b boolean default false not null
alter table test_1 add primary key (a,b)
create table test_2 (a char(1), b boolean default false not null)
insert into test_2 (a) values('A')
alter table test_2 add foreign key f_test_1 (a,b) references test_1 (a,b)
-> [350]: Referential integrity violated
update test_1 set b=false
alter table test_2 add foreign key f_test_1 (a,b) references test_1 (a,b)
-> success
delete from test_2
delete from test_1
insert into test_1 (a,b) values('A',false)
insert into test_2 (a) values('A')
-> success
I think the error message '[350] Referential integrity violated' should not happen because the column 'b' really contains 'false'. But there obviously seem to be a difference before and after setting the column 'b' explicitly to 'false'. I can imagine that this depends on the way how the index for the primary key is updated. Probably the index is not properly updated in this context(?)
GabrielHi Gabriel,
you're right, this is a bug and indeed seems to caused by the way the DEFAULT boolean is stored in the page.
(There is no separate index for the primary key in MaxDB as all data is stored in B*trees - basically the table is the primary key).
This is how the record looks like when column b is 'false' only due to the change of the DEFAULT value:
ROOT/LEAF 460 perm entries : 1 [block 0]
bottom : 93 filevers: 14888 convvers: 83
writecnt: 1
1: (pos 00081)
00001 recLen : 12 recKeyLen : 4
00005 recVarcolOff: 0 recVarcolCnt: 0
record
1 2 3 4 5 6 7 8 9 10 11 12
81 82 83 84 85 86 87 88 89 90 91 92
dec: 12 0 4 0 0 0 0 0 32 65 0 0
hex: 0C 00 04 00 00 00 00 00 20 41 00 00
chr: A
And this is how it looks like after the explicit UPDATE:
ROOT/LEAF 460 perm entries : 1 [block 0]
bottom : 93 filevers: 14888 convvers: 84
writecnt: 2
1: (pos 00081)
00001 recLen : 11 recKeyLen : 3
00005 recVarcolOff: 0 recVarcolCnt: 0
record
1 2 3 4 5 6 7 8 9 10 11
81 82 83 84 85 86 87 88 89 90 91
dec: 11 0 3 0 0 0 0 0 32 65 0
hex: 0B 00 03 00 00 00 00 00 20 41 00
chr: A
Little difference but this leads to the problems during the foreign key validation.
I'll inform the developers next week about this.
As a workaround you'll have to explicitly update the columns for which you change the default setting.
regards,
Lars -
How to avoid to check if a column value is NULL?
Hi, I'm a newbee in Oracle.
I have a procedure like this:
create or replace
PROCEDURE get_employee
v_first_name IN VARCHAR2 DEFAULT NULL ,
v_middle_name IN VARCHAR2 DEFAULT NULL ,
v_last_name IN VARCHAR2 DEFAULT NULL ,
To select rows with matching multiple column values, I can simply do this:
SELECT *
FROM employee
WHERE first_name = v_first_name
AND middle_name = v_middle_name
AND last_name = v_last_name
The problem is v_middle_name can be NULL. This means,
I need check if v_middle_name is NULL, and if it is, I need use "IS NULL" instead, like this:
SELECT *
FROM employee
WHERE first_name = v_first_name
AND middle_name IS NULL
AND last_name = v_last_name
It seems very cumbersome to do a check for each column that can be null.
Is there a way that I do not need to do a check for every column?
or is it better to avoid having NULL values in those columns (and replace them with, say a space) ?
Thanks in advance.
SimonNormally, you would do something like
SELECT *
FROM employee
WHERE first_name = NVL( v_first_name, first_name )
AND middle_name = NVL(v_middle_name, middle_name )
AND last_name = NVL(v_last_name, last_name )Of course, if you can ensure that NULL data is not allowed (without creating phony non-NULL data), that is a good thing. In most systems, for example, it is probably reasonable to require a non-NULL first and last name. But you almost certainly cannot require a middle name.
Justin
Maybe you are looking for
-
Hi, Why do I get negative amount in IR8A file specifically in benefits in kind balances(MOA 275 & MOA 351)? How do I fix them? Thanks, Jerico
-
App panel doesn't show installed apps.
I had to reinstall Creative Cloud and it doesn't recognize all my already downloaded apps. The OPM.db fix mentioned here: http://helpx.adobe.com/creative-cloud/kb/apps-panel-reflect-creative-cloud.html didn't work. Trying to avoid having to uninstall
-
Hi all, I would like to know what table/object is locked during a goods movement? And also, can I lock a batch? If yes, what FM can I used to check whether a batch is being locked or not? Thanks in advance.
-
Mac Os X Mountain Lion - Firefox 19 As Firefox refused to start (crash during opening, crash reporter poppinng up) I tested: - safe mode - removing everything on ~/Library related to firefox - try a full firefox reinstall Nothing helped
-
For object RF_BELEG number range does not exist
Hi, while doing PGI, i get an error For Object RF_BELEG ,number range does not exist in company code ABCD. Where do i create the number range for this. I tried with FBN1 but not useful. " Diagnosis says, the database table NRIV has the delivery class