Stuck on Variables
Hi,
I am making a database viewer using Dreamweaver, I can search
for the jobs in the database and have created a detail page so I
can view results from clickong on a link on the results page. My
problem comes now, I have a materials table, which show QUantity,
price per item and how many are used. There is also an additional
upcost of either 20%, 5% or 10%. WHen I search on a link, it is
using a recordID as a variable to display the results on the next
page and looking to a recordset of various SQL statements ending
with WHERE Job_No = 'colname'
I need to make a variable to collect the recordID of colname
and do the maths so it will result with SELECT Quantity *
Unit_Price plus the Additional upcost of a % to display the total.
But, I aint got a clue where to begin to make a variabl.
Please Help
Cheers
Paul
Thinking about this some more, I guess what I need is to somehow when I popup the dialog reset the view's bind variable to their initial state. Setting them to NULL or empty string doesn't do it. Then it's stuck on those values. I need to set it to whatever af:query expects.
Similar Messages
-
Hi I want to call this variable from with the command action, but everyway i've tried creates an error, there must be a simple asnwer, thanks for your help
public void serviceSearchCompleted(int transID, int respCode)
services.trimToSize();
if (services.isEmpty())
Form form = new Form( "Complete But BluEZPlan Not Found" );
String f = "The selected mobile does not have BluEZPlan Installed";
form.append( f );
mBackCommandServs = new Command("Back",null, Command.BACK, 0);
form.addCommand(mBackCommandServs);
form.setCommandListener(new CommandListener() {
public void commandAction(Command mBackCommandServs, Displayable s){display.setCurrent(mList);}});
Display.getDisplay(this).setCurrent( form );
else
Form form = new Form( "Friendly App Found" );
String f = "Are you sure you want to add this friend?" ;
RemoteDevice d = (RemoteDevice)devices.elementAt(chooseList.getSelectedIndex());
try //Save the phone's bluetooth address & name
String addy = d.getBluetoothAddress();
String name = d.getFriendlyName(false);
addy = "A.D.D".concat(addy);
String blueFriend = name.concat(addy); //HERE THIS STRING
catch(IOException ex)
{ ex.printStackTrace();}
mBackCommandServs = new Command("Back",null, Command.BACK, 0);
mAddCommandServs = new Command("Add","Yes Add as Friend", Command.OK, 0);
form.append( f );
form.addCommand(mAddCommandServs);
form.addCommand(mBackCommandServs);
form.setCommandListener(new CommandListener() {
public void commandAction(Command c, Displayable s)
if (c == mBackCommandServs)
display.setCurrent(mList);
if (c == mAddCommandServs)
{//PAIR HERE
try
RecordStore rs2 = RecordStore.openRecordStore("Friends", true); //Open RS
byte[] dataBlueFriend = blueFriend.getBytes(); //HERE IS THE ERROR
rs2.addRecord(dataBlueFriend,0,dataBlueFriend.length);
rs2.closeRecordStore();
catch (RecordStoreException ex)
ex.printStackTrace();
System.out.println("paired");
Display.getDisplay(this).setCurrent( form );
//System.out.println("services completed");
}Cannot find symbol - variable blueFriendtry
String blueFriend = name.concat(addy); //HERE THIS STRING
} // Here the 'blueFriend' variable is no longer in scope. It's gone, as it should be, based on the bracing scope! -
JavaScript to save MAFF in Firefox
I am experimenting with iMacros (Firefox add-on) to automate as task that Firefox will do. I simply want to save the current page with the MAFF extension. The JavaScript that the iMacros forum has lead me to, is this:
// I stuck these variable in just to try something.
var doc = "http://www.traderjoes.com";
var file = "C:\\Export\\Test.maff";
var format = "MAFF";
// I stuck these variable in just to try something.
var MafObjects = {};
Components.utils.import("resource://maf/modules/mafObjects.jsm",
MafObjects);
var jobListener = {
onJobComplete: function(aJob, aResult) {
if (!Components.isSuccessCode(aResult)) {
// An error occurred
} else {
// The save operation completed successfully
onJobProgressChange: function(aJob, aWebProgress, aRequest,
aCurSelfProgress,
aMaxSelfProgress,
aCurTotalProgress,
aMaxTotalProgress) { },
onStatusChange: function(aWebProgress, aRequest, aStatus,
aMessage) { }
var saveJob = new MafObjects.SaveJob(jobListener);
saveJob.addJobFromDocument(doc, file, format);
saveJob.start();
I was only getting an error on line 26 because this was sample code. With the little JavaScript I know I tried to add some variables on the lines before the code starts. The thing is that when I try to search for syntax example for the method .addJobFromDocument I don’t find much, just like two results. Is this a method of JavaScript? Usually with things from the DOM you will get a great deal of information on them.
Does anybody know a way of automating the save of MAFF of the current open tab in Firefox and then closing the browser? iMacros was something I came to and glad to see it features but really I just want to automate from a command line the saving of a URL as a MAFF archive The doc (that I got from iMacros forum) also had these code snippets but I don’t have much idea how to use them. Thanks
var fileUri = Components.
classes["@mozilla.org/network/io-service;1"].
getService(Components.interfaces.nsIIOService).
newFileURI(file);
var persistObject = new MafObjects.MafArchivePersist(null, format);
persistObject.saveDocument(doc, fileUri);
Also:
var doc = gBrowser.contentDocument;
var file = Components.classes["@mozilla.org/file/local;1"].
createInstance(Components.interfaces.nsILocalFile);
file.initWithPath("C:\\My Documents\\Test.maff");
var format = "TypeMAFF";The location for application folder level scripts was changed with Acrobat/Reader 10.0.1.1 update.
You may need to use the "app.getPath" method to locate the exact location for your scriipts or verify the location. -
Payload variables not working & Profiles stuck on 'Sending'
Hi all,
I've been trying to use Profile Manager to specify user e-mail accounts on Mac devices (eg, MacBooks) but I've been encountering a couple of problems. I've tried searching around and didn't find any answers.
First of all I'm running the latest Mountain Lion Sever. All clients have up-to-date Mountain Lion too.
Problem 1: Payload variables not working
I'd like to automatically setup Gmails on the MacBooks. Now the users' email addresses are already set to their gmail accounts. So all I have to be able to do is use the %email% payload variable as the username when I go set up the (IMAP) mail accounts in the Profile Manager. However, when I download the profile to the device, it does not convert the payload variable; ie, it tries to log into gmail with the username '%email%'. Other payload variables do not work either.
Oddly enough, the payload variables work as they should with iOS devices...
Problem 2: Profiles stuck on 'Sending'
After enrolling the devices, it seems a hit and miss whether the MacBook downloads the correct profiles from the server... Is there a way to force on the MacBook to update/refresh its profiles? Also, when I update profiles within Profile Manager, the changes are pushed to iOS devices fine but not to MacBooks. Those tasks are all stuck on Sending... Logging in, restarting etc. sometimes helps but not always... Is there a reason why?
Thanks in advance.Same problem here. Some profiles are being sent, some are stuck on the server. I have no idea why this difference.
Any luck solving the issue? -
Af:query stuck on previous search bind variables if set manually
I'm not sure if this is a bug or we're just doing something we're not supposed to do. It totally threw me off.
We didn't like any of the built-in ways of making a list type search, but we liked different aspects of different things available. So we created out own search component using a declarative component. The way it works is that we have an auto complete field which is a text field that pops up a table styled how we want it. When clicking or navigating onto the popup and pressing enter, it would select the value. We also wanted a more advanced search type thing which is pretty much the ADF LOV which pops up a dialog with essentially an af:query with a table. So we just put an image next to the search field that would pop up such a dialog.
One thing we wanted as well was to use the same collection for both the table in the auto complete popup and in the dialog. The dialog is allowed to have more columns or even different columns for that matter, but same collection model.
The problem is that I noticed that when I use the auto complete and then go to the dialog, the af:query would stop working. If the first thing I do is to go to the dialog, it would work fine. For the auto complete part, I'm calling ExecuteWithParams from the view criteria of our ADF BC View's Data Control. It seems like once we set the bind variable on the view manually, the af:query is stuck on the value that was set and the search button no longer responds to the search filters there. Can someone confirm if this is expected? It seems like Oracle did not expect that the same view would be used on an af:query's table and another table.Thinking about this some more, I guess what I need is to somehow when I popup the dialog reset the view's bind variable to their initial state. Setting them to NULL or empty string doesn't do it. Then it's stuck on those values. I need to set it to whatever af:query expects.
-
Stuck on a simple hierarchy variable...
Hey guys,
On the MBS(Marine Biology Simulation) i am creating a fish which teleports but i need to ensure that the nextLocation is valid (via the isValid method)
It is located in the Environment.java file and looks like this:
/** Verifies whether a location is valid in this environment.
* @param loc location to check
* @return <code>true</code> if <code>loc</code> is valid;
* <code>false</code> otherwise
boolean isValid(Location loc);[/code
Now in my TeleportFish.java
How would i set up the statement?
if(Environment().isValid() = true ) ?
This bit im stuck on because i have tried many things and it says cannot resolve variable isValid.
Helpppp :)
Thanks,Here is the method again in Environment.java
/** Verifies whether a location is valid in
this environment.
* @param loc location to check
* @return <code>true</code> if <code>loc</code> is
valid;
* <code>false</code> otherwise
boolean isValid(Location loc);
Yes everyone saw that before. So pass a Location object to that method and you won't get the syntax error any more. -
Stuck with showDetails, View Bind Variable and I18N
Hi all,
I have a very weird situation.
I am creating a view object with a bind variable.
I then create a JSF page, and drag a table based on the view to the screen.
I now drag the "ExecuteWithParam" action to the screen, and create it as a parameterized form.
This works fine - english or hebrew (in my case).
I know surround the parameter form with a showDetails component.
I enter values to the parameter, and click on the hide link. I click on the show link - all I get is a list of ? marks for hebrew characters, but the correct characters for english characters.
Everything works fine if the showDetails component contains regular input texts, or input texts that show/edit values from the view objects (but not bind variables).
If I put the bind variable on the screen (outside the showDetails), in addition to putting the form inside the showDetails component, then the following occurs:
1. Changes in the param form are ignored if I click on the show/hide link.
2. Hebrew works when I edit the input text that is outside the showDetails. This updates the value in the show details, and it displays hebrew correctly.
Very odd. Any tips?First of all i would like to thank you for replying to my thread.
Secondly, i would like to inform you that the example that i have provided is just for REPRODUCTION purposes.
The real scenario has to do with setting the where clause with the authenticated user so that the view will query for data only associated with the authenticated user.
The only way to overcome this behaviour is to include a view action (namedWhereClause in the page definition)
However, this is not how i want to implement this. This was working properly in 10g -
Stuck... Pease need help passing variable
Hi all....
I have an event listener added and it calls a function.
Adding the event listener passes the event to the function
automatically but what if i want to pass additional information to
it?
So this:
addEventListener(Event.ENTER_FRAME, doEveryFrame);
Becomes this
addEventListener(Event.ENTER_FRAME,
doEveryFrame(extra_var_passed));
function doEveryFrame(event:Event,
extra_var_passed:Number):void {
//code here
It seems because I am trying to pass a new variable it no
longer passes the event for me auto-magically.... how I go about
passing that event myself?
Is it possible to even pass another variable like
this??This is AS3, correct?
You need to create your own event object that has the
properties you need to pass.
Take a look at the tutorial on custom events here:
http://www.8bitrocket.com/newsdisplay.aspx?newspage=5776 -
System level environment variable stuck on -- for no apparent reason
A few days ago in my development work I turned on AEDebugSends and AEDebugReceives environment variables in a terminal shell so I could log the apple events being sent by my app. I have done this many times before but now they somehow have gotten on system wide and I can't get them off.
This means that AppleEvents are being logged for everything - for every user and this is persisting between reboots. -- this is leading to massive console.log and makes my debugging very difficult as every 10 seconds or some apple event gets logged
here is the output of an env command:
TERMPROGRAM=AppleTerminal
TERM=xterm-color
SHELL=/bin/bash
AEDebug=1
TERMPROGRAMVERSION=133
USER=smorr
_CF_USER_TEXTENCODING=0x1F5:0:0
AEDebugOSL=1
PATH=/bin:/sbin:/usr/bin:/usr/sbin
PWD=/Users/smorr
SHLVL=1
HOME=/Users/smorr
AEDebugVerbose=1
AEDebugReceives=1
LOGNAME=smorr
AEDebugSends=1
SECURITYSESSIONID=4144f0
_=/usr/bin/env
I have looked at ~/.profile and /etc/profile and /etc/bash_rc and there is nothing that turns on these variables.
I'd appreciate any help or direction from anyone.Hi smorr,
Are you saying that you actually see those environment variables set in your ~/.MacOSX/environment.plist file or that you discovered that technote and think that you'll find those variables set there? We need to know because no one has ever reported a process programmatically changing that file. It may be there for developers to use and it would certainly be perfect for that. It would be important to be certain about the first report.
For what it's worth there's a file that Apple's Terminal is notorious for setting incorrectly and that its preference file, ~/Library/Preferences/com.apple.Terminal.plist. If you haven't seen those variables in your ~/.MacOSX/environment.plist file then perusal of the preferences file would be prudent.
Gary
~~~~
An expert is a person who avoids the small errors as he
sweeps on to the grand fallacy.
-- Benjamin Stolberg -
Stuck with incompatibe types for the same generic variables
having trouble with generics
i have the static class Node<T> in a double linked list
whenever i make a node point to another node
i have incompatible type errors
Node<T> current;
Node<T> head;
src\DoubleList.java:135: incompatible types
found : DoubleList.Node<T>
required: DoubleList.Node<T>
current = head;Can you post more code? Specifically the class declarations for DoubleList and Node and a method where you have this issue. Please use the code tags (button above edit field) when you post.
-
Accordion variable panel height got stuck
Hi,
I've a couple of collapsible (dynamically generated) panels
in a accordionpanel (the accordion has three panels in total). When
the page opens all is oké. When i open one of the collapsible
panels, the accordionpanel auto change its height.
But when i switch to an other accordion panel and then switch
back to my first accordionpanel, which has all the collapsible
panels, and i then open one or more collapsible panels, the conten
in that accordionpanel is partly hidden, because the accordion
panel doesn't change its height anymore.
Has anyone a clue???
I can't show you the page, it's stull on my localwebserver
Thanx
hansSee http://labs.adobe.com/technologies/spry/samples/accordion/AccordionSample.html#VariablePan elHeights
-
Ok, details of installation below, so when I try compose an email, I just get a compose window icon stuck in the windows
taskbar can't actually enlarge it and use it. If I restart in safe mode with all addons disabled, then it works fine. But
If I restart normally and manually disable addons/plugins, then close and start normally again i.e not safe mode, it
breaks, so does not seem to be an addon or plugin but rather something with the configuration.
Application Basics
Name Thunderbird
Version 31.6.0
User Agent Mozilla/5.0 (Windows NT 6.1; rv:31.0) Gecko/20100101 Thunderbird/31.6.0
Profile Folder
Show Folder
(Local drive)
Application Build ID 20150330093429
Enabled Plugins about:plugins
Build Configuration about:buildconfig
Memory Use about:memory
Mail and News Accounts
ID Incoming server Outgoing servers
Name Connection security Authentication method Name Connection security Authentication method Default?
account2 (none) Local Folders plain passwordCleartext
account3 (nntp) news.mozilla.org:119 plain passwordCleartext stbeehive.oracle.com:465 SSL passwordCleartext true
account5 (imap) stbeehive.oracle.com:993 SSL passwordCleartext stbeehive.oracle.com:465 SSL passwordCleartext true
Crash Reports
Report ID Submitted
bp-0a8986d2-ff0c-41c3-9da6-e770e2141224 24/12/2014
bp-01f44ba7-3143-4452-ac98-981b62140123 23/01/2014
Extensions
Name Version Enabled ID
British English Dictionary 1.19.1 false [email protected]
Lightning 3.3.3 false {e2fda1a4-762b-4020-b5ad-a41df1933103}
Oracle Beehive Extensions for Thunderbird (OracleInternal) 1.0.0.5 false [email protected]
Important Modified Preferences
Name Value
accessibility.typeaheadfind.flashBar 0
browser.cache.disk.capacity 358400
browser.cache.disk.smart_size_cached_value 358400
browser.cache.disk.smart_size.first_run false
browser.cache.disk.smart_size.use_old_max false
extensions.lastAppVersion 31.6.0
font.internaluseonly.changed false
font.name.monospace.el Consolas
font.name.monospace.tr Consolas
font.name.monospace.x-baltic Consolas
font.name.monospace.x-central-euro Consolas
font.name.monospace.x-cyrillic Consolas
font.name.monospace.x-unicode Consolas
font.name.monospace.x-western Consolas
font.name.sans-serif.el Calibri
font.name.sans-serif.tr Calibri
font.name.sans-serif.x-baltic Calibri
font.name.sans-serif.x-central-euro Calibri
font.name.sans-serif.x-cyrillic Calibri
font.name.sans-serif.x-unicode Calibri
font.name.sans-serif.x-western Calibri
font.name.serif.el Cambria
font.name.serif.tr Cambria
font.name.serif.x-baltic Cambria
font.name.serif.x-central-euro Cambria
font.name.serif.x-cyrillic Cambria
font.name.serif.x-unicode Cambria
font.name.serif.x-western Cambria
font.size.fixed.el 14
font.size.fixed.tr 14
font.size.fixed.x-baltic 14
font.size.fixed.x-central-euro 14
font.size.fixed.x-cyrillic 14
font.size.fixed.x-unicode 14
font.size.fixed.x-western 14
font.size.variable.el 17
font.size.variable.tr 17
font.size.variable.x-baltic 17
font.size.variable.x-central-euro 17
font.size.variable.x-cyrillic 17
font.size.variable.x-unicode 17
font.size.variable.x-western 17
gfx.blacklist.suggested-driver-version 257.21
mail.openMessageBehavior.version 1
mail.winsearch.firstRunDone true
mailnews.database.global.datastore.id 8d997817-eec1-4f16-aa36-008d5baeb30
mailnews.database.global.indexer.enabled false
network.cookie.prefsMigrated true
network.tcp.sendbuffer 65536
places.database.lastMaintenance 1429004341
places.history.expiration.transient_current_max_pages 78789
plugin.disable_full_page_plugin_for_types application/pdf
plugin.importedState true
plugin.state.flash 0
plugin.state.java 0
plugin.state.np32dsw 0
plugin.state.npatgpc 0
plugin.state.npctrl 0
plugin.state.npdeployjava 0
plugin.state.npfoxitreaderplugin 0
plugin.state.npgeplugin 0
plugin.state.npgoogleupdate 0
plugin.state.npitunes 0
plugin.state.npoff 0
plugin.state.npqtplugin 0
plugin.state.nprlsecurepluginlayer 0
plugin.state.npunity3d 0
plugin.state.npwatweb 0
plugin.state.npwlpg 0
plugins.update.notifyUser true
Graphics
Adapter Description NVIDIA Quadro FX 580
Vendor ID 0x10de
Device ID 0x0659
Adapter RAM 512
Adapter Drivers nvd3dum nvwgf2um,nvwgf2um
Driver Version 8.15.11.9038
Driver Date 7-14-2009
Direct2D Enabled Blocked for your graphics driver version. Try updating your graphics driver to version 257.21 or newer.
DirectWrite Enabled false (6.2.9200.16571)
ClearType Parameters Gamma: 2200 Pixel Structure: R
WebGL Renderer Blocked for your graphics driver version. Try updating your graphics driver to version 257.21 or newer.
GPU Accelerated Windows 0. Blocked for your graphics driver version. Try updating your graphics driver to version 257.21 or newer.
AzureCanvasBackend skia
AzureSkiaAccelerated 0
AzureFallbackCanvasBackend cairo
AzureContentBackend cairo
JavaScript
Incremental GC 1
Accessibility
Activated 0
Prevent Accessibility 0
Library Versions
Expected minimum version Version in use
NSPR 4.10.6 4.10.6
NSS 3.16.2.3 Basic ECC 3.16.2.3 Basic ECC
NSS Util 3.16.2.3 3.16.2.3
NSS SSL 3.16.2.3 Basic ECC 3.16.2.3 Basic ECC
NSS S/MIME 3.16.2.3 Basic ECC 3.16.2.3 Basic ECCNoticed this in the info supplied:
Graphics Adapter Description NVIDIA Quadro FX 580
Vendor ID 0x10de
Device ID 0x0659
Adapter RAM 512
Adapter Drivers nvd3dum nvwgf2um,nvwgf2um
Driver Version 8.15.11.9038
Driver Date 7-14-2009
Direct2D Enabled Blocked for your graphics driver version.
Try updating your graphics driver to version 257.21 or newer.
Could you update your graphics driver and retest. -
How To Capture A Column Value In A Report And Store It In A Variable?
Portal Version: 3.0.6.6.5
RDBMS Versjion: 8.1.7.0.0
OS/Vers. Where Portal is Installed:: SunOS 5.8
I have a Portal report where I added a checkbox for each row of data that is being displayed. The user can select checkbox for as many rows as he/she wants. The user can then click a button, which iteratively passes the value of a column as a parameter to a procedure.
I am using the Portal field that ends with a ".FIELD#>" For example, if my report is based on the following SQL statement:
SELECT EMP_UNID FROM EMPLOYEES WHERE STATUS = 'E'
Then the field I am using to capture the value is <#EMP_UNID.FIELD#>
So the <INPUT> looks like:
<TD>
<INPUT TYPE="checkbox" NAME="checkboxSelect" value="<#EMP_UNID.FIELD#>">
</TD>
And the Javascript code looks like:
htp.p('<SCRIPT LANGUAGE="JavaScript1.1">');
htp.p('<!--');
htp.p('function runAccept() {');
htp.p('for (var i=0; i<20; i++)');
htp.p('if (document.formSelect.checkboxSelect.checked == true)');
htp.p('{');
htp.p('myRegExp = /"/gi;');
htp.p('parameter = document.formSelect.checkboxSelect[i].value.replace(myRegExp, "z");');
htp.p('parameter = parameter.substring(parameter,parameter.indexOf(">")+1,parameter.lastIndexOf("<")-1)');
htp.p('alert(parameter);');
-- htp.p('CallableStatement cstmt = null;');
-- htp.p('cstmt = conn.prepareCall("{call --runAcceptRecord(parameter)}")');
-- htp.p('cstmt.execute ();');
htp.p('}');
htp.p('}');
htp.p('//-->');
htp.p('</SCRIPT>');
The problem, however, is that Portal stores not only the actual value in <#EMP_UNID.FIELD#>, but also some HTML tags, most of which can be removed via the Display Options page. There are some tags that cannot be removed in this fashion, because Portal does not allow nulls in those. So we are stuck with an HTML tag (i.e. <FONT SIZE>) that is stuffed in that variable along with the value. The problem is further complicated by the existence of double quotes within that tag that undesirably terminates the VALUE assignment.
So for instance, what you might get from Portal is this:
<TD><INPUT TYPE="checkbox" NAME="checkboxSelect" value="<FONT SIZE="+0">219</FONT>"> </TD><TD ALIGN="RIGHT"><FONT SIZE="+0">219</FONT></TD>
<TD ALIGN="LEFT"><FONT SIZE="+0">E</FONT></TD>
It is in the value="<FONT SIZE="+0">219</FONT>" part of the code where the extra double quote is terminating the Javascript code. I have tried escape() and replace() to remove the extra double quotes, but have not got it to work. The problem is happening too early at this point, and what I have tried is after the fact.
Obviously, the problem is that I shouldn't be using <#EMP_UNID.FIELD#> since the intent of this is to add html tags for display purposes. That is done by Portal, and I thus have no control over it unless I take drastic means and modify Portal's innerworkings, which I don't care to do.
My question therefore is, what other variable can I use in Reports to capture just the value? I am hoping that there is a variable in Reports like the ones for Forms which has a prefix of A_. Or is there another method for doing this?
Thanks in advance
FredI found htf.formcheckbox function which was what I needed. With that, my javascript code was cut down to just a few lines. Didn't need to strip away the html tags. This function will just return the value.
Refer to:
http://metalink.oracle.com/metalink/plsql/ml2_documents.showDocument?p_database_id=NOT&p_id=116534.1 for specific example of this function.
http://technet.oracle.com/doc/appsrvr4082/guides/plsql_r.pdf for a reference list of all htp's. -
Hello
I'm hoping that someone here might be able to help or point me in the right direction. Apologies for the long post.
Just to set the scene, I am a SQL Server DBA and have very limited experience with System Centre so please go easy on me.
At the company I am currently working they are complaining about very poor performance when running reports (any).
Quick look at the database server and CPU utilisation being a constant 90-95%, meant that you dont have to be Sherlock Holmes to realise there is a problem. The instance consuming the majority of the CPU is the instance hosting the datawarehouse and in particular
a stored procedure in the DWStagingAndConfig database called Staging.GroomDwStagingData.
This stored procedure executes continually for 2 hours performing 500,000,000 reads per execution before "timing out". It is then executed again for another 2 hours etc etc.
After a bit of diagnosis it seems that the issue is either a bug or that there is something wrong with our data in that a stored procedure is stuck in an infinite loop
System Center 2012 SP1 CU2 (5.0.7804.1300)
Diagnosis details
SQL connection details
program name = SC DAL--GroomingWriteModule
set quoted_identifier on
set arithabort off
set numeric_roundabort off
set ansi_warnings on
set ansi_padding on
set ansi_nulls on
set concat_null_yields_null on
set cursor_close_on_commit off
set implicit_transactions off
set language us_english
set dateformat mdy
set datefirst 7
set transaction isolation level read committed
Store procedures executed
1. dbo.p_GetDwStagingGroomingConfig (executes immediately)
2. Staging.GroomDwStagingData (this is the procedure that executes in 2 hours before being cancelled)
The 1st stored procedure seems to return a table with the "xml" / required parameters to execute Staging.GroomDwStagingData
Sample xml below (cut right down)
<Config>
<Target>
<ModuleName>TransformActivityDim</ModuleName>
<WarehouseEntityName>ActivityDim</WarehouseEntityName>
<RequiredWarehouseEntityName>MTV_System$WorkItem$Activity</RequiredWarehouseEntityName>
<Watermark>2015-01-30T08:59:14.397</Watermark>
</Target>
<Target>
<ModuleName>TransformActivityDim</ModuleName>
<WarehouseEntityName>ActivityDim</WarehouseEntityName>
<RequiredWarehouseEntityName>MTV_System$WorkItem$Activity</RequiredWarehouseEntityName>
<ManagedTypeViewName>MTV_Microsoft$SystemCenter$Orchestrator$RunbookAutomationActivity</ManagedTypeViewName>
<Watermark>2015-01-30T08:59:14.397</Watermark>
</Target>
</Config>
If you look carefully you will see that the 1st <target> is missing the ManagedTypeViewName, which when "shredded" by the Staging.GroomDwStagingData returns the following result set
Example
DECLARE @Config xml
DECLARE @GroomingCriteria NVARCHAR(MAX)
SET @GroomingCriteria = '<Config><Target><ModuleName>TransformActivityDim</ModuleName><WarehouseEntityName>ActivityDim</WarehouseEntityName><RequiredWarehouseEntityName>MTV_System$WorkItem$Activity</RequiredWarehouseEntityName><Watermark>2015-01-30T08:59:14.397</Watermark></Target><Target><ModuleName>TransformActivityDim</ModuleName><WarehouseEntityName>ActivityDim</WarehouseEntityName><RequiredWarehouseEntityName>MTV_System$WorkItem$Activity</RequiredWarehouseEntityName><ManagedTypeViewName>MTV_Microsoft$SystemCenter$Orchestrator$RunbookAutomationActivity</ManagedTypeViewName><Watermark>2015-01-30T08:59:14.397</Watermark></Target></Config>'
SET @Config = CONVERT(xml, @GroomingCriteria)
SELECT
ModuleName = p.value(N'child::ModuleName[1]', N'nvarchar(255)')
,WarehouseEntityName = p.value(N'child::WarehouseEntityName[1]', N'nvarchar(255)')
,RequiredWarehouseEntityName =p.value(N'child::RequiredWarehouseEntityName[1]', N'nvarchar(255)')
,ManagedTypeViewName = p.value(N'child::ManagedTypeViewName[1]', N'nvarchar(255)')
,Watermark = p.value(N'child::Watermark[1]', N'datetime')
FROM @Config.nodes(N'/Config/*') Elem(p)
/* RESULTS - NOTE THE NULL VALUE FOR ManagedTypeViewName
ModuleName WarehouseEntityName RequiredWarehouseEntityName ManagedTypeViewName Watermark
TransformActivityDim ActivityDim MTV_System$WorkItem$Activity NULL 2015-01-30 08:59:14.397
TransformActivityDim ActivityDim MTV_System$WorkItem$Activity MTV_Microsoft$SystemCenter$Orchestrator$RunbookAutomationActivity 2015-01-30 08:59:14.397
When the procedure enters the loop to build its dynamic SQL to delete relevant rows from the inbound schema tables it concatenates various options / variables into an executable string. However when adding a NULL value to a string the entire string becomes
NULL which then gets executed.
Whilst executing "EXEC(NULL)" would cause SQL to throw an error and be caught, executing the following doesnt
DECLARE @null_string VARCHAR(100)
SET @null_string = 'hello world ' + NULL
EXEC(@null_string)
SELECT @null_string
So as it hasnt caused an error the next part of the procedure is to move to the next record and this is why its caught in an infinite loop
DELETE @items WHERE ManagedTypeViewName = @View
The value for the variable @View is the ManagedTypeViewName which is NULL, as ANSI_NULLS are set to ON in the connection and not overridded in the procedure then the above statement wont delete anything as it needs to handle NULL values differently (IS NULL),
so we are now stuck in an infinite loop executing NULL for 2 hours until cancelled.
I amended the stored procedure and added the following line before the loop statement which had the desired effect and "fixed" the performance issue for the time being
DELETE @items WHERE ManagedTypeViewName IS NULL
I also noticed that the following line in dbo.p_GetDwStagingGroomingConfig is commented out (no idea why as no notes in the procedure)
--AND COALESCE(i.ManagedTypeViewName, j.RelationshipTypeViewName) IS NOT NULL
There are obviously other ways to mitigate the dynamic SQL string being NULL, there's more than one way to skin a cat and thats not why I am asking this question, but what I am concerned about is that is there a reason that the xml / @GroomingCriteria is incomplete
and / or that the procedures dont handle potential NULL values.
I cant find any documentation, KBs, forum posts of anyone else having this issue which somewhat surprises me.
Would be grateful of any help / advice that anyone can provide or if someone can look at their 2 stored procedures on a later version to see if it has already been fixed. Or is it simply that we have orphaned data, this is the bit that concerns most as I dont
really want to be deleting / updating data when I have no idea what the knock on effect might be
Many many thanks
AndyFirst thing I would do is upgrade to 2012 R2 UR5. If you are running non-US dates you need the UR5 hotfix also.
Rob Ford scsmnz.net
Cireson www.cireson.com
For a free SCSM 2012 Notify Analyst app click
here -
Default value of BeX customer Exit variable not Displayed in WeBI??
Hello Experts,
We are stuck with a problem where WeBI report is created on top of BeX query and we are not able to see the default value of Bex Customer exit variable in WeBI run. Here is the complete scenario:
1. One restricted KF is created in BeX, restricted with Customer exit variable on net Due date. And this variable is mandatory, ready for input, and Default value in calculated is user exit as current Week's Monday.
2. So, by default KF data should be restricted to Monday of current week, if user does not change this value.
3. Now, WeBI report is created on top of this Bex query, and all is working fine, i.e. we are getting variable as Prompt in WeBI, but Default value is not shown while Running the Webi Report.
So, need your inputs on the same, if default values from BeX in WeBI is supported or not? If yes, why this is happening, and how to resolve it?
Please notice, the restrcition is in KF only, it is not a separate restrcition on Net Due date in Filter area or in Defualt area of BeX
and we are on SAP BW 7.1 and BOXI 3.1 SP4.
Regards,
Vipul
Edited by: VIPUL GOYAL on Nov 23, 2011 9:44 PMHi,
See 1285993 - Support of Customer Exit Variables from BEx query into WebIntelligence via OLAP universe
WebI will prompt when executed, but the default values calculated by the user exit - do not appear.
Note: If the BEx variable has property 'ready for input' set / enabled, then its WebI prompt shows ok, but no default value appears.
Cause
This behaviour expected 'by design' (in the context of the product's current limitations) as explained in the online guide below:
Please refer to Chapter 7, page 44, document link here: http://help.sap.com/businessobject/product_guides/boexir3/en/xi3_sap_olap_universes_en.pdf
Characteristic variable > processing type > Customer Exit is "Supported, without user entry"
--> This should be understood as meaning "User will not be shown a prompt"
regards,
H
Maybe you are looking for
-
Cost center in F.08 standard report.
Dear Friends , I need cost centre to be included in RFSSLD00 (Tcode-F.08) Report. It is basically a mpp program i dont know how to add that as the input parameter in this report. there is also a dynamic selection ,i need to know how
-
Canvas becomes too big when generating tabs on a content canvas
I want to generate the following layout: <New content canvas> block 1 height 15 width 80 prompt: field prompt: field <New tab canvas page> tab 1 height 31 width 80 Multirecord block which is a detail of block 1 <New tab canvas page> tab 2 height 31 w
-
What video cameras are compatible with Final Cut Express?
I live in Japan and was thinking of buying a Victor " Full High Definition" video camera (1920x1080). The only thing I was warned about by the salesperson is that unless I have a Blue-Ray DVD recorder/player, I will never be able to enjoy true Full H
-
hi, i have an scenario that receive and IDOC and create two flat files. I did it using two BS and two Communication channels. but possible create my two flat file using one BS and one CC?? Regards Rodrigo Pertierra
-
Creation of table,views etc
Hi All, I want step by step procedure to create table views etc etc.Can u please get back to me in detail procedure. Thanks and Regards, Jaya.