Setting BitmapImage source inside the skin
Hi all
As a Flex 4 newbie, I've been banging my head for two days trying do to something that could seem pretty trivial to you (and to me as well at first sight) but lefted me completely clueless...
I want to design a fairly simple custom component using the Gumbo architecture. My component falls into 2 parts:
* a logo picture on the left side
* a buttonbar next on the right side
My component must be designed to be quite generic, that is to say the source of the logo image is a property of the component as well as the items of the ButtonBar.
So here is what I did so far:
I wrote an AS class describing the behavior of my component "MapToolBar.as":
package nova.style
import spark.components.ButtonBar;
import spark.components.supportClasses.SkinnableComponent;
import spark.primitives.BitmapImage;
[SkinState("normal")]
[SkinState("disabled")]
public class MapToolBar extends SkinnableComponent
// Define skin parts
[SkinPart(required="false")]
public var clientLogo:BitmapImage;
[SkinPart(required="true")]
public var tools:ButtonBar;
// Define component data
private var _logoSrc:String;
public function set logoSrc(src:String):void {
_logoSrc=src;
[Bindable]
public function get logoSrc():String {
return _logoSrc;
private var _toolsItems:Array;
public function set toolsItems(items:Array):void {
_toolsItems=items;
[Bindable]
public function get toolsItems():Array {
return _toolsItems;
public function MapToolBar()
super();
override protected function getCurrentSkinState():String {
if (enabled) {
return "normal";
} else {
return "disabled";
And the associated skin mxml class:
<?xml version="1.0" encoding="utf-8"?>
<s:SparkSkin xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/halo">
<fx:Declarations>
<!-- Place non-visual elements (e.g., services, value objects) here -->
</fx:Declarations>
<fx:Script>
<![CDATA[
import mx.collections.ArrayList;
import nova.style.skins.ToolBarSkin;
// Initialise les données des skinparts après leur création.
private function handleCreationComplete(event:Event):void {
clientLogo.source = hostComponent.logoSrc;
tools.dataProvider = new ArrayList(hostComponent.toolsItems);
]]>
</fx:Script>
<s:states>
<s:State name="disabled"/>
<s:State name="normal"/>
</s:states>
<!-- host component -->
<fx:Metadata>
[HostComponent("nova.style.MapToolBar")]
</fx:Metadata>
<s:layout>
<s:BasicLayout />
</s:layout>
<s:HGroup creationComplete="handleCreationComplete(event);">
<s:BitmapImage id="clientLogo"/>
<s:ButtonBar id="tools" skinClass="nova.style.skins.ToolBarSkin"/>
</s:HGroup>
</s:SparkSkin>
As you can notice, my inner ButtonBar has got its own skinClass has well. This is because I'm trying to divide my application in as many reusable bricks as possible. So here's ToolBarSkin:
<?xml version="1.0" encoding="utf-8"?>
<s:SparkSkin xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" alpha.disabled="0.5" xmlns:mx="library://ns.adobe.com/flex/halo">
<!-- host component -->
<fx:Metadata>
<![CDATA[
* @copy spark.skins.spark.ApplicationSkin#hostComponent
[HostComponent("spark.components.ButtonBar")]
]]>
</fx:Metadata>
<s:states>
<s:State name="normal"/>
<s:State name="disabled"/>
</s:states>
<fx:Declarations>
<!---
Specifies the skin class for the middle button(s) on the ButtonBar.
@default spark.skins.spark.ButtonBarMiddleButtonSkin
-->
<fx:Component id="middleButton">
<s:ButtonBarButton skinClass="nova.style.skins.ToolBarButtonSkin"/>
</fx:Component>
</fx:Declarations>
<s:Rect x="-5" alpha="0.8" left="1" right="1" top="1" bottom="1" radiusX="10" radiusY="10">
<s:fill>
<s:LinearGradient rotation="-90">
<s:GradientEntry color="#040303" ratio="0"/>
<s:GradientEntry color="#858584" ratio="1"/>
</s:LinearGradient>
</s:fill>
</s:Rect>
<!---
@copy spark.components.SkinnableDataContainer#dataGroup
-->
<s:DataGroup id="dataGroup" top="5" left="10" right="5" bottom="5">
<s:layout>
<s:HorizontalLayout gap="12" />
</s:layout>
</s:DataGroup>
</s:SparkSkin>
And yes, the ButtonBarButton skin is also customized, 'cause I want to display an icon on them... Here it is :
<?xml version="1.0" encoding="utf-8"?>
<s:SparkSkin xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/halo" xmlns:d="http://ns.adobe.com/fxg/2008/dt" xmlns:ai="http://ns.adobe.com/ai/2008" minWidth="21" minHeight="21" alpha.disabledStates="0.5">
<!-- states -->
<s:states>
<s:State name="up" />
<s:State name="over" stateGroups="overStates" />
<s:State name="down" stateGroups="downStates" />
<s:State name="disabled" stateGroups="disabledStates" />
<s:State name="upAndSelected" stateGroups="selectedStates, selectedUpStates" />
<s:State name="overAndSelected" stateGroups="overStates, selectedStates" />
<s:State name="downAndSelected" stateGroups="downStates, selectedStates" />
<s:State name="disabledAndSelected" stateGroups="selectedUpStates, disabledStates, selectedStates" />
</s:states>
<!-- host component -->
<fx:Metadata>
<![CDATA[
[HostComponent("spark.components.ButtonBarButton")]
]]>
</fx:Metadata>
<fx:Script>
/* Define the skin elements that should not be colorized.
For toggle button, the graphics are colorized but the label is not. */
static private const exclusions:Array = ["labelDisplay"];
override public function get colorizeExclusions():Array {return exclusions;}
</fx:Script>
<s:Group d:id="2" d:type="layer" d:userLabel="Calque 1">
<s:Group x="1" y="1" d:id="3">
<s:Path alpha="0.7" winding="nonZero" ai:knockout="0" data="M2 30C0.896484 30 0 29.1016 0 28L0 2C0 0.896484 0.896484 0 2 0L28 0C29.1025 0 30 0.896484 30 2L30 28C30 29.1016 29.1025 30 28 30L2 30Z" >
<s:fill>
<s:LinearGradient x="15.0005" y="30" scaleX="29.9995" rotation="-90">
<s:GradientEntry color="#d9d9d9" ratio="0"/>
<s:GradientEntry color="#f2f2f2" ratio="1"/>
</s:LinearGradient>
</s:fill>
</s:Path>
</s:Group>
</s:Group>
<!-- Icone embarquée -->
<s:HGroup horizontalCenter="0" verticalCenter="0"
creationComplete="img.source = hostComponent.data;">
<!-- layer 8: icon -->
<s:BitmapImage id="img" />
</s:HGroup>
</s:SparkSkin>
Finally, in my main application I invoke my component like this :
<nova:MapToolBar logoSrc="@Embed(source='/assets/img/clients/ge.png')" skinClass="nova.style.MapToolBarSkin">
<nova:toolsItems>
<s:ButtonBarButton id="redBtn"
label="Red"
data="@Embed(source='/assets/img/crown.png')"
/>
<s:ButtonBarButton id="orangeBtn"
label="Orange"
data="@Embed(source='/assets/img/disk.png')"
/>
<s:ButtonBarButton id="yelloyBtn"
label="Yellow"
data="@Embed(source='/assets/img/nuclear.png')"
/>
</nova:toolsItems>
</nova:MapToolBar>
Unfortunately,I get the following at runtime:
* the logo image is never displayed - yet the path is correct and the step-by-step debug confirms that the handleCreationComplete() method gets called with correct values being assigned to my parts !
* each buttonbarbutton throws this stackexception, and of course my button icons aren't displayed either, only buttons' backgrounds show up:
ArgumentError: Error #2015: BitmapData non valide.
at flash.display::BitmapData()
at spark.primitives::BitmapImage/set source()[E:\dev\gumbo_beta2\frameworks\projects\spark\src\spark\primitives\BitmapImage.as:269]
at nova.style.skins::ToolBarButtonSkin/___ToolBarButtonSkin_HGroup1_creationComplete()[C:\EnvDevEclipse\Workspace-Head\novacom-flex-proto-customcomp\src\nova\style\skins\ToolBarButtonSkin.mxml:56]
at flash.events::EventDispatcher/dispatchEventFunction()
at flash.events::EventDispatcher/dispatchEvent()
at mx.core::UIComponent/dispatchEvent()[E:\dev\gumbo_beta2\frameworks\projects\framework\src\mx\core\UIComponent.as:11749]
at mx.core::UIComponent/set initialized()[E:\dev\gumbo_beta2\frameworks\projects\framework\src\mx\core\UIComponent.as:1525]
at mx.managers::LayoutManager/doPhasedInstantiation()[E:\dev\gumbo_beta2\frameworks\projects\framework\src\mx\managers\LayoutManager.as:759]
at mx.managers::LayoutManager/doPhasedInstantiationCallback()[E:\dev\gumbo_beta2\frameworks\projects\framework\src\mx\managers\LayoutManager.as:1069]
Any help would be really much appreciated
Thanks
Matt
Well, I've already solved one of the two issues
In order to display the icons on my buttonbar buttons, I just needed to point at {hostComponent.data.data} instead of {hostComponent.data}. I'm not sure why, but {hostComponent.data} in my skin class is a handle on my instance of ButtonBarButton, not its "data" property. Any explanation is welcomed
I still have got the first issue though. Oddly enough my design works if I put an mx Image instead of the spark BitmapImage for the client logo. That will do the trick for the moment but I'd prefer to deliver a 100% pure spark component in my prototype, and I can see no reason why BitmapImage works inside my ButtonBarButtons and doesn't otherwise...
Similar Messages
-
What is the need for setting property data inside the JMSMesage
Hi
Could anybody please let me know
*What is the need for setting property data inside the JMSMesage??
For example i have a seen a similar example as shown ??
I have seen a
Message.setStringProperty("Sport","Basketball");
and also please tell me how can the MDB recievies this property data ??
Thanks in advance .raviprivate wrote:
Could anybody please let me know
*What is the need for setting property data inside the JMSMesage??
For example i have a seen a similar example as shown ??
I have seen a
Message.setStringProperty("Sport","Basketball"); Look at the detail JMS documentation on [Message Properties|http://java.sun.com/j2ee/sdk_1.3/techdocs/api/javax/jms/Message.html] .
>
and also please tell me how can the MDB recievies this property data ?? MDB onMessage method argument is the Message object and if you look at the documentation, Message interface has getter methods to retrieve the properties. -
Setting tray selects inside the crystal report
I am writing a report which will have 3 possible page layouts.
I would like to print page 1 from a specific tray while page 2 and 3 from a differenet tray. Is there a way to control this or set
the paper source/ printer tray from inside the crystal report itself?
Thank you so much for your time on this.Hi
In Crystal Reports Designer we can not select the print tray at runtime for a single report however to workaround on this, you can insert different subreports.
Insert subreport for different chunk of data for which you want different trays. Please note inserting multiple subreports can cause a slower execution of report.
Go to file ->print -> set the tray from Printer paper -> source
but it depends on the type of printer is in use and on the printer driver.As its printer dependent you need to check the printer options for trays in control panel.
Hope this helps!!
Amit -
How to set error message inside the loop...module pool
Dear all,
Am creating Table Control without wizard. In that i am looping the values, that is, Once if i entered 5 digit values means, 12345-08... the values should be stored in z-table like this 12345,12346,12347,12348 . That is 5-8 it as to update in z table. for this i createdloop at itab and inside that i written a code to count the value and all. and also its clearly updating the value in ztable too. now i want to know, if once again i entered the same value means, like 12345-08.. it as to show error messge.I dont know how to set the condition with error message inside the single loop .... Its all comes under module pool program.
Thanks,
Santhosh.RIf i understood your doubt, here goes the answer.
LOOP AT itab INTO wa_itab. " This is your loop
l_tabix = sy-tabix. "l_tabix receives the line of the loop
READ TABLE itab WITH KEY itab = wa_itab. "itab is the same tab of your loop
IF sy-subrc EQ 0 AND l_tabix NE sy-tabix. "Here the sy tabix have the value of the read table.
* Here you do your error treatment.
ENDIF.
ENDLOOP.
Explanation: When you are looping your internal table, you use a READ TABLE to see the already recorded registers. If the read table finds one register (sy-subrc EQ 0) and the this register is not the one of the current line (l_tabix NE sy-tabix). It means you have a duplicated register.
Maybe there is someway easier to do this, but this is what i thought now.
I hope this was your doubt hehe.
Thales Schmidt -
Folders and files are not set as links inside the ConsumerExplorer KM
I use ConsumerExplorer as Layout Set on most of the KMs in our EP6 but some of them recently have problem showing the content with links. (If I have folder, I can't click to open because is not underlined as link. the same for files.) As I mention it happen just on the default Layout Set which is ConsumerExplorer and as I check all settings are correct on the ConsumerResourceRenderer and ConsumerCollectionRenderer. I did not update any of these settings. Just to be clear...it happened to some of the KMs the rest are set with the same Layout Set and there is no problem with them. Please if somebody have idea where could be the problem?
Not the first or last time for this complaint. It's a failing in the Panther Finder, and beyond our powers to fix. Send Apple a Feedback:
http://www.apple.com/macosx/feedback/
They don't read these forums regularly.
Quicksilver Mac OS X (10.3.8) -
Setting ANT_OPTS inside the build.xml
I am using OAS 10.1.3. For the build process, i am using the ant and jdk inside the OAS itself.
My problem is that, i need to set the ANT_OPTS everytime before i run the build script.
I dnt want to do this. Instead, i want to set this somewhere inside the build file itselves.
I understand that, i can set the ANT_OPTS inside ant.bat in $ANT_HOME and can also set ANT_OPTS in env variables.
Is there any way, that i can set this option inside the build.xml ?Go to ant.jakarta.org. They have numerous tutorials. Do some research first. If you run into an actual problem, then post what it is.
- Saish -
How to set image source path in formsweb.cfg file in forms 11g
Hi,
I had written HTML code in the formsweb.cfg file in forms 11g. In the below code i am unable to retrive image file(i.e., .gif, .jpeg) from the server or local machine.
In the below HTML code i set image source in the image tag as below:
<img src="E:\Oracle\Middleware\Oracle_FRHome1\tools\web\html\agilis-life-new11_04.GIF"
Is this correct path to fetch the images from the server or local machine .
Please help me out how to set path for image in html or is there any alternate process to retrive images.
Here is the code :
[INDIVIDUALUAT]
workingDirectory=D:\Aims10dev\Work
form=LMstartup.fmx
userid=rmenu/rmenu@RLIFEQA64
codebase=/forms/java
imageBase=codebase
width=1005
height=750
WebUtilArchive=/forms/java/frmwebutil.jar,/forms/webutil/jacob.jar
WebUtilLogging=off
WebUtilLoggingDetail=normal
WebUtilErrorMode=Alert
WebUtilDispatchMonitorInterval=5
WebUtilTrustInternal=true
WebUtilMaxTransferSize=16384
baseHTMLjinitiator=webutiljini.htm
baseHTMLjpi=webutiljpi.htm
archive_jini=frmall_jinit.jar,life-icons-round.jar,Agilis_Icon.jar,life_Icon.jar,personalize.jar,hyperlink.jar,amazingbutton.jar
archive=frmall.jar
separateFrame=False
lookandfeel=Generic
EndUserMonitoringURL=True
usesdi=yes
#HTMLbeforeForm= <table width="1005" border="0" cellspacing="0" cellpadding="0"><tr><td width="200"><img src="/forms/html/agilis-life-logo.gif" width="200" height="80" /></td><td width="10"><img src="/forms/html/agilis-life-new11_02.gif" width="36" height="80" /></td><td width="805" valign="top" background="/forms/html/agilis-life-new11_03.gif"></td></tr></td></tr></table>
HTMLbeforeForm=<body topmargin="0" leftmargin="0" > <table width="1005" height="100" border="0" cellspacing="0" cellpadding="0"><tr><td width="200" valign="bottom" ><img src="E:\Oracle\Middleware\Oracle_FRHome1\tools\web\html\agilis-life-logo.gif" width="200" height="80" /></td><td width="10" valign="bottom" ><img src="E:\Oracle\Middleware\Oracle_FRHome1\tools\web\html\agilis-life-new11_02.gif" width="36" height="80" /></td><td width="550" valign="bottom" ><img src="E:\Oracle\Middleware\Oracle_FRHome1\tools\web\html\agilis-life-new11_03.gif" width="550" height="80" /></td><td valign="bottom"><table width="219" height="90" border="0" cellspacing="0" cellpadding="0"><tr><td height="36" valign="bottom" align="center"><img src="E:\Oracle\Middleware\Oracle_FRHome1\tools\web\html\agile-logo.jpg" height="36"></td></tr><tr><td height="10" valign="bottom"> <div align="right"><span style="font-family:Arial, Helvetica, sans-serif; font-size:12px; font-weight:bold; text-decoration:none; color:#00000; " >Home | Change Password | Logout</span></div></td></tr><tr><td colspan="3" valign="bottom"><img src="E:\Oracle\Middleware\Oracle_FRHome1\tools\web\html\agilis-life-new11_04.GIF" width="100%" height="39" /></td></tr></table></td></tr></td></tr></table></body>AFAIK, this is not the correct way to set the image location.
We call the working directory as context, so inside the context root along with WEB-INF, maintain a folder with name img and put all the images in that directory.
You can use either .\<image_folder> or the optimum way would be (if you are using JSPs) to use getContext() method and traverse accordingly.
FYI,,, using getContext() will give you context root directory, from there it is as simple as accessing any other folder.
Hope this answers your question.
Cheers,
Jeets. -
Any sources for styling \ skinning the Slider component?
Any sources for styling \ skinning the Slider component?
ie setting the background invisible or using another graphic in place of the line/rectangle graphic. using another graphic for the thumb. replacing the current graphic thumb has restrictions in dimensions,: http://flash.sikotiko.com/2009/05/05/as3-skinning-slider-component/
-
Performance checking inside the source code
performance checking inside the source code who to check it.
thanks and regards
chandra sekharI guess you are asking how to check it, then here is the answer
SQL Trace transaction ST05
The trace list has many lines that are not related to the SELECT statement in the ABAP program. This is because the execution of any ABAP program requires additional administrative SQL calls. To restrict the list output, use the filter introducing the trace list.
The trace list contains different SQL statements simultaneously related to the one SELECT statement in the ABAP program. This is because the R/3 Database Interface - a sophisticated component of the R/3 Application Server - maps every Open SQL statement to one or a series of physical database calls and brings it to execution. This mapping, crucial to R/3s performance, depends on the particular call and database system. For example, the SELECT-ENDSELECT loop on the SPFLI table in our test program is mapped to a sequence PREPARE-OPEN-FETCH of physical calls in an Oracle environment.
The WHERE clause in the trace list's SQL statement is different from the WHERE clause in the ABAP statement. This is because in an R/3 system, a client is a self-contained unit with separate master records and its own set of table data (in commercial, organizational, and technical terms). With ABAP, every Open SQL statement automatically executes within the correct client environment. For this reason, a condition with the actual client code is added to every WHERE clause if a client field is a component of the searched table.
To see a statement's execution plan, just position the cursor on the PREPARE statement and choose Explain SQL. A detailed explanation of the execution plan depends on the database system in use -
I have added an Issue tracking list to my SharePoint team site 2013. Then I wanted to add 5 extra columns to my list . So I did the following:-
I went to site settings.
Then I added 5 new site columns.
I went back to my list setting, I click on the “Issue” content type, and I added the 5 newly added site columns to my "Issue" content type , using the “Add from existing site or list columns” link as follow:-
And then these columns were added automatically inside the Edit, Create& Display forms.
But since this is the first time I work on such a task , so I want to make sure that I did every thing correctly. Because I am not sure why the 5 newly added site columns will have their source field inside the “Issue” content type as blank , as shown in
the above picture. So does this indicate that there is a problem ? or this is because I have added the 5 newly added site columns to the List content type and not inside the Content type at the site level ?
ThanksHi,
It’s by design, the Source field means the content type name.
As you said, when we create a new column, if we not attach the column to a content type, then the column would have not the source field option.
However, if you create a new column, then add the column in a content type, the content type would automatically update in the site.
Now, you would see a source content type appear.
Thanks & Regards,
Jason
Jason Guo
TechNet Community Support -
When viewing most text on most websites, it displays properly. However, there are two instances where text will either tend to, or consistently, become jumbled into a mess of seemingly random characters. Oddly enough, these seemingly random characters are not, in fact, random. The same weird character will be used to replace the same regular English text character consistently across the entire area that has been jumbled.
The two instances where this tends to occur most often, or consistently in some cases, are, first, when a paragraph or particular section of formatted text contains special characters, such as Chinese or Japanese characters, or accented letters. When this happens, usually the paragraph that contains the special characters is completely jumbled, while the rest of the text on the page will have intermittent jumbling on a word or two. Most often, the word "the" is jumbled in this case.
The second instance where this happens is when a website uses specially formatted text in some form or another. I, not being an expert at web development, am not sure what kind of formatting causes it, but I can provide consistent examples in lieu of my experience:
- Example 1:
[http://img408.imageshack.us/img408/9564/firefoxcharencodingissu.jpg]
Example 1 shows a portion of a screen-shot of the website "Joystiq.com". Every single article title on the front page of this blog is consistently jumbled, while the text of the article itself remains untouched. Please note that when this jumbled text is highlighted, it is visible un-jumbled in the right-click menu as well as in the source code of the page. Other consistent instances can be found within many search fields on various websites. For instance, the search bar located at the top right of "Kotaku.com" consistently displays jumbled characters both on its default text of "Search" and on any text that is typed into the search box itself.
- Example 2:
[http://img822.imageshack.us/img822/9564/firefoxcharencodingissu.jpg]
Example 2 shows both the jumbling of the paragraph containing the character "☆" as well as the subsequent peppering of the rest of the article's text with small jumbled words. Below this is the DOM Source of the selected text which shows how the text itself is being rendered properly within the site's source. Additionally, for convenience, I have edited on to the bottom of the image a small snippet of what the search bar on the same page looks like. Notice how the grayed-out text that normally would read "Search" is instead jumbled.
This issue has been plaguing my browser for the past year or so, and I had hoped that it would go away with subsequent Firefox updates. It has not gone away.
Thank you for reading! Please help!This issue can be caused by an old bitmap version of the Helvetica or Geneva font or (bitmap) fonts that Firefox can't display in that size.
Firefox can't display some old bitmap fonts in a larger size and displays gibberish instead.
You can test that by zooming out (View > Zoom > Zoom Out, Ctrl -) to make the text smaller.
Uninstall (remove) all variants of that not working font to make Firefox use another font or see if you can find a True type version that doesn't show the problem.
There have also been fonts with a Chinese name reported that identify themselves as Helvetica, so check that as well.
Use this test to see if the Helvetica font is causing it (Copy & Paste the code in the location bar and press Enter):
<pre><nowiki>data:text/html,
Helvetica<br><font face="Helvetica" size="25">abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ</font><br>
Helvetica Neue<br><font face="Helvetica Neue" size="25">abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ</font>
</nowiki></pre>
You should reset the network.http prefs that show user set on the about:config page.<br />
Not all websites support http pipelining and if they do not then you can have issues with images or other problems.
See also http://kb.mozillazine.org/Images_or_animations_do_not_load#First_steps -
ORA-30926: unable to get a stable set of rows in the source tables
hi,
I am loading data from source table to target table in a interface.
Using LKM incremental update .
In the merge rows step , getting the below error.
30926 : 99999 : java.sql.SQLException: ORA-30926: unable to get a stable set of rows in the source tables
please help as what should be done to resolve this.Below is the query in the merge step...
when i run from SQL also, same error
SQL Error: ORA-30926: unable to get a stable set of rows in the source tables
30926. 00000 - "unable to get a stable set of rows in the source tables"
*Cause: A stable set of rows could not be got because of large dml
activity or a non-deterministic where clause.
*Action: Remove any non-deterministic where clauses and reissue the dml.
merge into TFR.INVENTORIES T
using TFR.I$_INVENTORIES S
on (
T.ORGANIZATION_ID=S.ORGANIZATION_ID
and T.ITEM_ID=S.ITEM_ID
when matched
then update set
T.ITEM_TYPE = S.ITEM_TYPE,
T.SEGMENT1 = S.SEGMENT1,
T.DESCRIPTION = S.DESCRIPTION,
T.LIST_PRICE_PER_UNIT = S.LIST_PRICE_PER_UNIT,
T.CREATED_BY = S.CREATED_BY,
T.DEFAULT_SO_SOURCE_TYPE = S.DEFAULT_SO_SOURCE_TYPE,
T.MATERIAL_BILLABLE_FLAG = S.MATERIAL_BILLABLE_FLAG,
T.LAST_UPDATED_BY = S.LAST_UPDATED_BY
,T.ID = TFR.INVENTORIES_SEQ.NEXTVAL,
T.CREATION_DATE = CURRENT_DATE,
T.LAST_UPDATE_DATE = CURRENT_DATE
when not matched
then insert
T.ORGANIZATION_ID,
T.ITEM_ID,
T.ITEM_TYPE,
T.SEGMENT1,
T.DESCRIPTION,
T.LIST_PRICE_PER_UNIT,
T.CREATED_BY,
T.DEFAULT_SO_SOURCE_TYPE,
T.MATERIAL_BILLABLE_FLAG,
T.LAST_UPDATED_BY
,T.ID,
T.CREATION_DATE,
T.LAST_UPDATE_DATE
values
S.ORGANIZATION_ID,
S.ITEM_ID,
S.ITEM_TYPE,
S.SEGMENT1,
S.DESCRIPTION,
S.LIST_PRICE_PER_UNIT,
S.CREATED_BY,
S.DEFAULT_SO_SOURCE_TYPE,
S.MATERIAL_BILLABLE_FLAG,
S.LAST_UPDATED_BY
,TFR.INVENTORIES_SEQ.NEXTVAL,
CURRENT_DATE,
CURRENT_DATE
) -
MERGE error : unable to get a stable set of rows in the source tables
Hi,
For an update, the following MERGE statement throws the error-unable to get a stable set of rows in the source tables:
MERGE INTO table2t INT
USING (SELECT DISTINCT NULL bdl_inst_id,.......
FROM table1 ftp
WHERE ftp.gld_business_date = g_business_date
AND ftp.underlying_instrument_id IS NOT NULL) ui
ON ( ( INT.inst_id = ui.inst_id
AND g_business_date BETWEEN INT.valid_from_date
AND INT.valid_to_date
OR ( INT.ric = ui.ric
AND g_business_date BETWEEN INT.valid_from_date
AND INT.valid_to_date
OR ( INT.isin = ui.isin
AND g_business_date BETWEEN INT.valid_from_date
AND INT.valid_to_date
OR ( INT.sedol = ui.sedol
AND g_business_date BETWEEN INT.valid_from_date
AND INT.valid_to_date
OR ( INT.cusip = ui.cusip
AND g_business_date BETWEEN INT.valid_from_date
AND INT.valid_to_date
WHEN MATCHED THEN
UPDATE
SET INT.inst_id = ui.inst_id, INT.ric = ui.ric
WHEN NOT MATCHED THEN
INSERT (inst_key, ......)
VALUES (inst_key, ......);
To determine the existence of a record, first check if any match is found on the first key, if not then search for the second key and so on.
Now two records with differenct first key, i.e. inst_id, can have the same ric(second key). On a rerun, with the target table already populated, the code fails. The reason is it finds duplicate entries for the second key.
Any suggestions on how to make this work?
Thanks in advance.
AnnieAnnie
You've spotted the problem (that two records have the same RIC). MERGE doesn't allow that; each record in the data being updated is only allowed to be updated once.
Is there a PK column (or columns) that we can rely on?
What you can try is to outer join FTP to INT. Something like:
MERGE INTO INT int1
USING (
select columns_you_need
from (
select ftp.columns -- whatever they are
, int2.columns
, row_number() over (partition by int2.pk_columns order by int2.somecolumns) as rn
from ftp
left join int int2
on (the condition you used in your query)
where rn=1
) s
WHEN MATCHED THEN UPDATE ...
WHEN NOT MATCHED THEN INSERT ...So if you can restrict the driving query so that only the first one of the possible updates actually gets presented to the MERGE operation, you might be in with a chance :-)
And of course this error is nothing to do with any triggers.
HTH
Regards Nigel -
ORA-30926: unable to get a stable set of rows in the source table
When user are trying to open a form getting below error.
com.retek.platform.exception.RetekUnknownSystemException:ORA-30926: unable to get a stable set of rows in the source tables
Please advice
Edited by: user13382934 on Jul 9, 2011 1:32 PMPlease try this
create table UPDTE_DEFERRED_MAILING_RECORDS nologging as
SELECT distinct a.CUST_ID,
a.EMP_ID,
a.PURCHASE_DATE,
a.drank,
c.CONTACT_CD,
c.NEW_CUST_CD,
a.DM_ROW_ID
FROM (SELECT a.ROWID AS DM_ROW_ID,
a.CUST_ID,
a.EMP_ID,
a.PURCHASE_DATE,
dense_rank() over(PARTITION BY a.CUST_ID, a.EMP_ID ORDER
BY a.PURCHASE_DATE DESC, a.ROWID) DRANK
FROM deferred_mailing a) a,
customer c
WHERE a.CUST_ID = c.CUST_ID
AND a.EMP_ID = c.EMP_ID
AND (a.PURCHASE_DATE <= c.PURCHASE_DATE OR
c.PURCHASE_DATE IS NULL)
and a.drank=1;
The query you've posted is behaving according to the expectations. The inner select is returning one row and the outer is returning two as the
WHERE a.CUST_ID = c.CUST_ID
AND a.EMP_ID = c.EMP_ID
AND (a.PURCHASE_DATE <= c.PURCHASE_DATE OR
c.PURCHASE_DATE IS NULL)
conditions are seeing two rows in the table customer.
I've added the a.drank=1 clause to skip the duplicates from the inner table and distinct in the final result to remove duplicates from the overall query result.
For eg, if you have one more row in the deferred_mailing like this
SQL> select * from DEFERRED_MAILING;
CUST_ID EMP_ID PURCHASE_
444 10 11-JAN-11
444 10 11-JAN-11
then the query without "a.drank=1" will return 4 rows like this by the outer query.
CUST_ID EMP_ID PURCHASE_ DM_ROW_ID DRANK C N
444 10 11-JAN-11 AAATi2AAGAAAACcAAB 2 Y Y
444 10 11-JAN-11 AAATi2AAGAAAACcAAA 1 Y Y
444 10 11-JAN-11 AAATi2AAGAAAACcAAB 2 Y Y
444 10 11-JAN-11 AAATi2AAGAAAACcAAA 1 Y Y
It'll return the below even if we use distinct on the same query(i.e. without a.drank=1)
CUST_ID EMP_ID PURCHASE_ DM_ROW_ID DRANK C N
444 10 11-JAN-11 AAATi2AAGAAAACcAAB 2 Y Y
444 10 11-JAN-11 AAATi2AAGAAAACcAAA 1 Y Y
which contains duplicates again.
So, we need a combination of distinct and dense here.
btw, Please mark the thread as 'answered', if you feel you got your question answered. This will save the time of others who search for open questions to answer.
Regards,
CSM -
Setting the content type inside the ABAP mapping.
Hello All,
Can any one help me by telling me how to set the content-type inside ABAP mapping. I have searched a large no of blogs and help.sap.com for the same.
My requirement is I want to change the MIME type of the Main Document in side SXMB_MONI so that can change the content type of Main document which is application\xml by default.
I would appreciate an early response regarding the same.
AbinashHello Raj,
The output of my ABAP mapping is a flat file. So when I try to open the file with content type application/xml in the message monitor it shows the file has some error which is natural. The way to get around this problem is change the content type to application\txt from application\xml.
I am not finding an option to set the content type inside the ABAP mapping for the same.
Abinash
Maybe you are looking for
-
Since upgrading to v6, I have lost audio on many websites. but not all.
YouTube and Pandora specifically. the Video plays properly, but not audit. I have uninstalled FF, along with addons and plugins, and then reinstalled. still have the same issue. Using chrome or (blech) IE, the media plays correctly. i downloaded late
-
NaN on one server but not another
Anyone heard of a situation where dynamic text (set using XML) will show up fine on one server, but display "NaN" on another (in this case, a Windows server, with the Flash Player code on an .asp page)? If it helps, the SWF is using AS2. And the XML
-
Where does the router fallback to load IOS when the IOS in flash memory is corrupted?
If the ios image stored in flash is corrupted from where does the IOS is picked up?
-
Change language, change language
just got aperture and its in chinese or japanese. how do i change to english at least?
-
Help! Colours are all washed out
Hi Folks, I have an LG Flatron M2380 DF monitor/tv which I have calibrated with a Pantone Huey Pro to D65 colour temp and 2.20 gamma. My photoshop CS5 colour settings are set shown below. The pictures look great on the screen but if I print on my Eps