Force COMMIT in ODI
Hi,
I am using an ODI package that has 1 interface + 1 odi invoke web service.
for the interface the commit is off.
When the interface populates the data, the bpel WS is called then. BPEL ws is async.
However since the commit happens at the end of the session bpel cant see the data.
I need a way to force a COMMIT, so that bpel can see the data.
Thanks,
Rosh
roshParab wrote:
Should not matter. COMMIT is fired at the end of a sucessful session. Hi Rosh
1st you should understand where you should aply above criteria.This is generally for interface where you have manually set the commit to false but not for the interface where commit is already set to true.I agree with GURU.It will be commited after the loading.You just test it by setting your commit to true and you will know whether its commiting or not.
Thanks
Similar Messages
-
Need help in force commit transaction .
Hi gurus,
Could some one put some light on one of the error log which looks like below.
DISTRIB TRAN 44444444.6A18C37038F78D45B83D166359109F1400000000
is local tran 241.0.3 (hex=f1.00.03)
change pending prepared tran, scn=98405872087 (hex=16.e97271d7)
to pending forced commit tran, scn= (hex=0.00000000)
Any suggestion is highly apprciated.
ThanksDistributed Transactions are transactions that involve more than one database --- transactions that do DML over Database Links.
It would seem that your database has one or more Database Links to one or more other databases. Users or the Application code or scheduled jobs execute transactions that involve one or more databases. The one or more remote databases has/have failed / shutdown and a transaction that was "in flight" has not been committed (Distributed Transactions use a Two-Phase commit mechanism whereby every database involved in the transaction must acknowledge it). Oracle will attempt to automatically resolve a transaction if the remote database becomes available again (is restarted). If the remote database is not available, the DBA / Manager must make a decision about the Distributed Transaction.
For example, a distributed transaction could involve deleting one row from database "A" (local) and inserting a row in database "B" (remote). If the remote database has not acknoweldged the insert, should the local database do a FORCE COMMIT of the deletion ? How would you handle database "B" if it comes up (is restarted later) and you find that the row did not get deleted there at all ---- (in fact, how will you identify the row ?).
Since a "FORCE COMMIT" is breaking ACID (you have two databases that are inconsistent with respect to that row if you FORCE COMMIT the delete), Oracle, wisely, does not do it automatically. It leaves the decission to the DBA / Manager who must invoke a FORCE COMMIT (or ROLLBACK) manuallyl.
(imagine the transaction deleting 3 rows from two tables and inserting one row in one table locally while at the same time updating 45 rows in 3 different remote tables --- how do you decide a FORCE COMMIT or ROLLBACK ?)
Hemant K Chitale -
Arrow keys force "commit" of Transform
I'm dragging some large images into a FW document and then transforming them (Command-T) to a smaller size. When I get them close to final size I nudge them around to make sure they're really the size I want - but as soon as I tap an arrow key the Transform control handles go away and I'm no longer in "transform" mode.
I assume this means that FW resamples the image pixels at that point - and so any further transforming counts as a second transformation (with further pixel degradation).
Why would using the arrows cause the Transform to "commit" like this? Photoshop doesn't do it...
Just another CS 4 inconsistency I guess (sigh)...Thanks for the link. I'm still gonna gripe here - bit less of a black hole, plus more chance of stirring up a mob, pitchforks, torches, etc.
I'm getting the feeling FW is a bit more solid on the PC. Wonder if it started life there?
It's interesting - I was talking to my wife about UI "feel" in various programs. We're all Mac so can't speak to the PC side, but Photoshop on the Mac just responds like it's reading your mind. FW does not - frequently misses clicks, doesn't select "intuitively", things drag funny or not where you want them to, etc. Flash too, maybe a little less so. Illustrator is picky too to some extent. InDesign as well. They all feel different and none as smooth as Photoshop.
We both miss Freehand. Interesting since it was also a Macromedia app (and other apps like FW or Flash don't seem to "feel" as smooth), but like Photoshop it seemed to have a well tuned UI as far as selecting and manipulating things. Illustrator feels a bit more "professional" as an app but not as slick in UI responsiveness.
Fireworks is this weird app that I want to like, and I think I DO like it, except that it has all these parts that just don't work like they "should" (i.e. like the user expects/intuits them to). Kind of like an old British motorcycle. I'm forcing myself to use it instead of my previous Photoshop/Imageready workflow, and I must say it's nice to stay in one app to work. Still takes me twice as long to do anything but guess that's learning curve. -
Can ODI does partial commit of large batch of data neglecting erroneous ones. If so how to achieve this? This would be very helpful especiall in a batch transaction where instead of rolling back entire batch due to erroneous records atleast the correct records can be commited to target
Hi,
Adding some more points,
As per i suggested eariler you can use CKM for capturing the error records. Using CKM is also a permanent solution for the data flow.
Below is the steps for CKM processings,
1. In your target data store declare a constraint (right click on the constraints, say INSERT CONDITION)
2. Lets assume that you need to capture records in a field which is not a number ie.,rather than numeric values. Then in the condion window select Sunopsis condition and in the Where box REGEXP_LIKE(<col_name>, '^[[:digit:]]*$'). It will pull all such records to E$ table.
3. Add this data store in your target and say FLOW_CONTROL to YES and RECYCLE_ERROR to YES in the Control tab of your interface select the CKM and constraints.
Your error records will be moved to E$ table and in the second run once you correct the error records in E$ table those records will again move to target table (recycle error).
Please explore the below link for more information on REGEXP.
http://www.oracle.com/technology/oramag/webcolumns/2003/techarticles/rischert_regexp_pt1.html
All the best.
Thanks,
Guru -
Cannot commit during managed transaction - MDB
Hi
I use message-driven bean to asynchronously send newsletters. To avoid restarting process from the beginning in case of any error, I save the recipients in database table, and remove row by row after email has been sent. To not mark my mail server as spammer I send it in chunks of 90 per minute. My recipients list is quite big, about 30k addresses. The code works perfect, but only few minutes... Then transaction is timed out, deleting of already sent recipients is not commited and the process begins again! That of course results in delivering the same message multiple times to the same recipients.
I tried setting autocommit to false and forcing commit before thread going sleep, but I kept getting error "cannot commit managed transaction".
Can anybody help?
Michal
int sentCount = 0;
con = locator.getPGDataSource().getConnection();
PreparedStatement stmt = con.prepareStatement("SELECT * " +
"FROM mail_recipient " +
"WHERE task_id = ? " +
"ORDER BY id ASC " +
"LIMIT " + CHUNK_SIZE + " ");
stmt.setInt(1, Integer.parseInt(id));
ResultSet rs = stmt.executeQuery();
StringBuffer sentIds = new StringBuffer();
while(rs.next()) {
if(!checkInProgressStatus(file))
return;
email = rs.getString("email");
String from_address = getMailProperty(account, "mail");
String display_name = getMailProperty(account, "display_name");
InternetAddress inetAddr = new InternetAddress(from_address,
display_name);
Mail mail = new Mail(inetAddr,
getMailProperty(account, "username"),
getMailProperty(account, "password"));
try {
mail.sendEmail(email, subject, content);
} catch (MessagingException ex) {
log.error("Cannot send to: " + email + " - user " + rs.getInt("customer_id"));
sentIds.append(rs.getInt("id") + ",");
if(++sentCount % CHUNK_SIZE == 0) {
try {
try {
rs.close();
stmt.close();
con.close();
} catch (SQLException ex) {
Connection con2 = null;
con2 = locator.getPGDataSource().getConnection();
PreparedStatement stmt2 =
con2.prepareStatement("DELETE FROM mail_recipient " +
"WHERE id IN(" +
sentIds.substring(0, sentIds.length()-1) + ")");
stmt2.executeUpdate();
sentIds = new StringBuffer();
stmt2 = con2.prepareStatement("SELECT COUNT(*) " +
"FROM mail_recipient " +
"WHERE task_id = ?");
stmt2.setInt(1, Integer.parseInt(id));
ResultSet rs2 = stmt2.executeQuery();
rs2.next();
int count = rs2.getInt(1);
log.error(count + "");
taskNode.setAttribute("recipients_left", count + "");
saveXML(doc, file);
try {
rs2.close();
stmt2.close();
con2.close();
} catch (SQLException ex) {
Thread.sleep(60*1000);
} catch (InterruptedException ex) {
con = locator.getPGDataSource().getConnection();
stmt = con.prepareStatement("SELECT * " +
"FROM mail_recipient " +
"WHERE task_id = ? " +
"ORDER BY id ASC " +
"LIMIT " + CHUNK_SIZE + " ");
stmt.setInt(1, Integer.parseInt(id));
rs = stmt.executeQuery();
}Using Kodo's connection pooling fixed the problem.
Thanks for the help.
Chris West wrote:
I suspect JBoss connection pooling could be the problem. A couple of
questions...
1. Do you know which versions of JBoss have this problem.
2. How do I configure Kodo to use it's own connection pool on JBoss?
-Chris West
Stephen Kim wrote:
I would highly suggest using Kodo's connection pool first and see if
that alleviates the problem. I recall JBoss having some connection pool
issues in certain versions.
Steve Kim
[email protected]
SolarMetric Inc.
http://www.solarmetric.com -
Error while execution ODI procedure : java.lang.NullPointerException
Hi,
I`m trying to execute a simple ODI procedure and I`m getting the following exception:
java.lang.NullPointerException
at com.sunopsis.dwg.dbobj.SnpSessTaskSql.execCollOrders(SnpSessTaskSql.java)
at com.sunopsis.dwg.dbobj.SnpSessTaskSql.treatTaskTrt(SnpSessTaskSql.java)
at com.sunopsis.dwg.dbobj.SnpSessTaskSqlS.treatTaskTrt(SnpSessTaskSqlS.java)
at com.sunopsis.dwg.dbobj.SnpSessTaskSql.treatTask(SnpSessTaskSql.java)
at com.sunopsis.dwg.dbobj.SnpSessStep.treatSessStep(SnpSessStep.java)
at com.sunopsis.dwg.dbobj.SnpSession.treatSession(SnpSession.java)
at com.sunopsis.dwg.cmd.DwgCommandScenario.treatCommand(DwgCommandScenario.java)
at com.sunopsis.dwg.cmd.DwgCommandBase.execute(DwgCommandBase.java)
at com.sunopsis.dwg.cmd.e.j(e.java)
at com.sunopsis.dwg.cmd.g.F(g.java)
at com.sunopsis.dwg.dbobj.SnpScen.a(SnpScen.java)
at com.sunopsis.dwg.dbobj.SnpScen.localExecuteSync(SnpScen.java)
at com.sunopsis.dwg.tools.StartScen.actionExecute(StartScen.java)
at com.sunopsis.dwg.function.SnpsFunctionBaseRepositoryConnected.execute(SnpsFunctionBaseRepositoryConnected.java)
at com.sunopsis.dwg.dbobj.SnpSessTaskSql.execIntegratedFunction(SnpSessTaskSql.java)
at com.sunopsis.dwg.dbobj.SnpSessTaskSql.treatTaskTrt(SnpSessTaskSql.java)
at com.sunopsis.dwg.dbobj.SnpSessTaskSqlS.treatTaskTrt(SnpSessTaskSqlS.java)
at com.sunopsis.dwg.dbobj.SnpSessTaskSql.treatTask(SnpSessTaskSql.java)
at com.sunopsis.dwg.dbobj.SnpSessStep.treatSessStep(SnpSessStep.java)
at com.sunopsis.dwg.dbobj.SnpSession.treatSession(SnpSession.java)
at com.sunopsis.dwg.cmd.DwgCommandScenario.treatCommand(DwgCommandScenario.java)
at com.sunopsis.dwg.cmd.DwgCommandBase.execute(DwgCommandBase.java)
at com.sunopsis.dwg.cmd.e.j(e.java)
at com.sunopsis.dwg.cmd.g.z(g.java)
at com.sunopsis.dwg.cmd.e.run(e.java)
at java.lang.Thread.run(Thread.java:595)
The source of the procedure:
select
P_ID,
P_NAME,
to_char(START_TIME_KEY,'DD-MON-YYYY HH24:MI:SS') as START_TIME_KEY,
to_char(END_TIME_KEY,'DD-MON-YYYY HH24:MI:SS') as END_TIME_KEY,
P_IS_ACTIVE,
from persons
The target of the procedure:
DECLARE
v_START_TIME_KEY DATE;
v_END_TIME_KEY DATE;
v_NAME VARCHAR2(200);
v_ID NUMBER;
BEGIN
v_NAME := '#P_NAME';
commit;
END;
ODI version: 10.1.3.5.5
Source and target technology: Oracle Database 11g Enterprise Edition Release 11.1.0.6.0 - 64bit Production
Thanks!Hello,
Is your aim to get the Name from the table into the variable. ?
And if there is only one row from the table you can use refresh variable to get the name:
if there are more rows and you want to do somehthing repeatedly using the name, then you need to use the method you have described.
Declare the variable in the pakcage and give some default value to the variable then call the procedure.
Regards
Reshma -
WTK 2.5 bug - jsr234, commit
I was testing CommitControl.setDeferred(false) and noticed that this api doesn't make pending changes to the Spectator. Is this a bug? Is the Spectator not considered a 'control' of the GlobalManager? It is the only place to obtain the listener, and when deferred mode is true the changes to the listener do not have an immediate effect. If this is a bug, can we get a patch somewhere?
"The CommitControl affects the parameters for these controls on the GlobalManager and all the SoundSource3D objects.
public void setDeferred(boolean deferred)
When switching back from the deferred mode to the immediate mode (setDeferred(false)) all the pending parameters from the buffer are transmitted to the audio processing system automatically."
Thanks.sound is to left of listener.
press 5 to turn on deferred mode
press 6 six times to move sound to the right
press 5 - should commit the changes, but audio still on the left
press 0 - changes are actually committed and sound is now heard from the right
import javax.microedition.lcdui.*;
import javax.microedition.midlet.*;
import javax.microedition.media.*;
import javax.microedition.media.control.*;
import javax.microedition.amms.*;
import javax.microedition.amms.control.*;
import javax.microedition.amms.control.audio3d.*;
import javax.microedition.amms.control.audioeffect.*;
public class MoveCommit extends MIDlet implements CommandListener {
private MainCanvas myCanvas;
private Display myDisplay;
CommitControl com;
LocationControl loc;
SoundSource3D ss3d;
Spectator man;
Player p;
static int FACTOR = 1000; //convert to mm
public MoveCommit() {
myCanvas = new MainCanvas();
myDisplay = Display.getDisplay(this);
init();
public void startApp() throws MIDletStateChangeException {
myDisplay.setCurrent(myCanvas);
public void pauseApp() {
public void destroyApp(boolean unconditional) {
public void commandAction(Command c, Displayable s) {
myDisplay.setCurrent(myCanvas);
myCanvas.repaint();
class MainCanvas extends Canvas
public void paint(Graphics g)
public void keyPressed (int key)
int[] pos = loc.getCartesian();
int x=pos[0] / FACTOR;
int y=pos[1] / FACTOR;
int z=pos[2] / FACTOR;
if (key == Canvas.KEY_NUM5)
if (com.isDeferred())
System.out.println("----automatically committing changes----");
com.setDeferred(false);
System.out.print("position now: ");
report();
System.out.println();
else
com.setDeferred(true);
System.out.print("last known parameters: ");
report();
System.out.println();
else if (key == Canvas.KEY_NUM0)
System.out.println("--force commit--");
com.commit(); //auto-commit may not be working in WTK2.5 Beta
System.out.print("position now: ");
report();
System.out.println();
else
moveXY(key,x,y,z);
repaint();
} //end keypressed()
void moveXY(int key, int x, int y, int z)
if (key == Canvas.KEY_NUM1)
{ //move
loc.setCartesian((x-1)*FACTOR,(y+1)*FACTOR,z*FACTOR);
else if (key == Canvas.KEY_NUM2)
{ //move
loc.setCartesian(x*FACTOR,(y+1)*FACTOR,z*FACTOR);
else if (key == Canvas.KEY_NUM3)
{ //move
loc.setCartesian((x+1)*FACTOR,(y+1)*FACTOR,z*FACTOR);
else if (key == Canvas.KEY_NUM4)
loc.setCartesian((x-1)*FACTOR,y*FACTOR,z*FACTOR);
else if (key == Canvas.KEY_NUM6)
{ //move
loc.setCartesian((x+1)*FACTOR,y*FACTOR,z*FACTOR);
else if (key == Canvas.KEY_NUM7)
loc.setCartesian((x-1)*FACTOR,(y-1)*FACTOR,z*FACTOR);
else if (key == Canvas.KEY_NUM8)
{ //move
loc.setCartesian(x*FACTOR,(y-1)*FACTOR,z*FACTOR);
else if (key == Canvas.KEY_NUM9)
{ //move
loc.setCartesian((x+1)*FACTOR,(y-1)*FACTOR,z*FACTOR);
void report()
int[] pos = loc.getCartesian();
System.out.println( "X="+pos[0]/FACTOR+
" Y="+pos[1]/FACTOR+
" Z="+pos[2]/FACTOR);
void init()
try
p = Manager.createPlayer(getClass().getResourceAsStream("helicopter.wav"), "audio/x-wav");
p.realize();
p.setLoopCount(-1); //loop forever
ss3d = GlobalManager.createSoundSource3D();
ss3d.addPlayer(p);
p.start();
loc = (LocationControl)ss3d.getControl("javax.microedition.amms.control.audio3d.LocationControl");
com = (CommitControl)GlobalManager.getControl("javax.microedition.amms.control.audio3d.CommitControl");
loc.setCartesian(-3*FACTOR,0,0); //place object to the left of the listener
System.out.println("Initialized.");
report();
catch (Exception e) {System.out.println(e); }
} //end midlet -
PO ORDCHG - idoc - releationship browser population Error
Hi ,
I tried to create a purchase order and changed it. All the configurations for IDOC are working fine for Purchase order creation and Change. The IDOC generated for Purchase order create is populated in the Releation ship browser but however the IDOC Created with ref to Change is not populating in the relationship browser.
ANY IDEA please.
Thanks and Regards,
Mukthineni KrishnaHI,
probably there's something wrong with the COMMIT phase. Try to force COMMIT during the IDOC creation in the CHANGE phase of Purchase Order or to use a WAIT instruction ... -
Oracle BPM Issue - By lock held by indoubt transaction
Hi ,
I am getting the below issue while processing the work items(Applications) in the Oracle BPM. I am using Oracle BPM 10g R3 (10.3.1.0.0 Build# 100812) in Linux Environment.
An unexpected error occured while trying to execute an automatic task,pending automatic tasks will continue to be executed. Details:\n"An error occured while accessing the database. Detail: SQL statement: 'SELECT DUETIME, ID, PROCESSID,INSTDID, THREADID, ANCESTORTHREADID, TSTAMP, TYPE, ACTIVITYNAME,ORIGINPROCESSDN, REAL THREADID, NETYPE, PRIORITY, LATER, DATA FROM PTODOITEMS WHERE DUETIME=2011-12-22 11:23:53.0 AND PROCESSID=31 AND ID=94370151 FOR UPDATE' Caused by :[BEA][Oracle JDBC Driver][Oracle]ORA-01591: lock held by in doubt distributed transaction 9.30.1176766 fuego.transaction.DatabaseException; An error occured while accessing the database. Detail:SQL statment: 'SELECT DUETIME, ID, PROCESSID,INSTDID, THREADID, ANCESTORTHREADID, TSTAMP, TYPE, ACTIVITYNAME,ORIGINPROCESSDN, REAL THREADID, NETYPE, PRIORITY, LATER, DATA FROM PTODOITEMS WHERE DUETIME=2011-12-22 11:23:53.0 AND PROCESSID=31 AND ID=94370151 FOR UPDATE' at
If I force COMMIT the Transaction 9.30.1176766 in the dba_2pc_pending, pending_trans$, pending_sessions$ tables, I am able to move forward.
Please help me to resolve this issue.
Thanks In Advance.
BhaskaraHi ,
I am getting the below issue while processing the work items(Applications) in the Oracle BPM. I am using Oracle BPM 10g R3 (10.3.1.0.0 Build# 100812) in Linux Environment.
An unexpected error occured while trying to execute an automatic task,pending automatic tasks will continue to be executed. Details:\n"An error occured while accessing the database. Detail: SQL statement: 'SELECT DUETIME, ID, PROCESSID,INSTDID, THREADID, ANCESTORTHREADID, TSTAMP, TYPE, ACTIVITYNAME,ORIGINPROCESSDN, REAL THREADID, NETYPE, PRIORITY, LATER, DATA FROM PTODOITEMS WHERE DUETIME=2011-12-22 11:23:53.0 AND PROCESSID=31 AND ID=94370151 FOR UPDATE' Caused by :[BEA][Oracle JDBC Driver][Oracle]ORA-01591: lock held by in doubt distributed transaction 9.30.1176766 fuego.transaction.DatabaseException; An error occured while accessing the database. Detail:SQL statment: 'SELECT DUETIME, ID, PROCESSID,INSTDID, THREADID, ANCESTORTHREADID, TSTAMP, TYPE, ACTIVITYNAME,ORIGINPROCESSDN, REAL THREADID, NETYPE, PRIORITY, LATER, DATA FROM PTODOITEMS WHERE DUETIME=2011-12-22 11:23:53.0 AND PROCESSID=31 AND ID=94370151 FOR UPDATE' at
If I force COMMIT the Transaction 9.30.1176766 in the dba_2pc_pending, pending_trans$, pending_sessions$ tables, I am able to move forward.
Please help me to resolve this issue.
Thanks In Advance.
Bhaskara -
Here is my column:
<mx:DataGridColumn
headerText="Name" editorDataField="selectedValue"
width="
{accounts.width*.9}"
dataField="
ccompany">
</mx:DataGridColumn>
ItemEditor:
[Bindable]
var availAccounsEditor:ClassFactory = new ClassFactory(comboItemRenderer);
private function populateSalesRepsAccounts(resultXML:XML, dummy:Object):void{
var availAccounts:DataGridColumn = accounts.columns[0];availAccounsEditor.properties = {labelField :
"ccompany", dataProvider : resultXML.customers};availAccounts.itemEditor = availAccounsEditor;
ItemEditor:
package
modulecode{
import flash.events.Event;
import mx.collections.*;
import mx.controls.*;
import mx.controls.listClasses.*;
import mx.events.*;
public class comboItemRenderer extends ComboBox implements IDropInListItemRenderer {
private var _selectedValue:String;
private var bSelectedValueSet:Boolean = false;
private var bDataProviderSet:Boolean = false;
public var dataProviderCopy:Object = new Object;
public function comboItemRenderer(){
super();}
override public function set dataProvider(value:Object):void {
super.dataProvider = value;
// This may get called before dataProvider is set, so make sure not null and has entries
if (value!=null && value.length){
// Got it, set flag bDataProviderSet =
true;}
// Override committ, this may be called repeatedly
override protected function commitProperties():void{
// invoke ComboBox version
super.commitProperties();
// If value set and have dataProvider
if (bSelectedValueSet && bDataProviderSet){
// Set flag to false so code won't be called until selectedValue is set again bSelectedValueSet=
false;
// Loop through dataProvider
for (var i:int=0;i<this.dataProvider.length;i++){
// Get this item's data
var item:String = dataProvider[i][DataGrid(listData.owner).columns[listData.columnIndex].dataField];
// Check if is selectedValue
if(item == _selectedValue){
// Yes, set selectedIndex
this.selectedIndex = i;
break;}
override public function set data(value:Object):void{
super.data = value; selectedValue = value[DataGrid(listData.owner).columns[listData.columnIndex].dataField];
// set for selectedValue
public function set selectedValue(s:String):void{
// Set flag bSelectedValueSet =
true;
// Save value _selectedValue = s;
// Invalidate to force commit invalidateProperties();
public function get selectedValue():String{
return _selectedValue;}
How do set the the selected from combobox value back to dataGrid?
ThanksHi Lan
Try This For Matrix......
'For Adding Values
oColumn = oColumns.Add("Drink", SAPbouiCOM.BoFormItemTypes.it_COMBO_BOX)
oColumn.TitleObject.Caption = "Drink"
oColumn.Width = 100
'Add Valid Values
oColumn.ValidValues.Add("Cola", "")
oColumn.ValidValues.Add("7up", "")
oColumn.ValidValues.Add("Fanta", "")
oColumn.ValidValues.Add("Orange Juice", "")
oColumn.ValidValues.Add("Water", "")
oColumn.ValidValues.Add("Lemonade", "")
oColumn.ValidValues.Add("Ice Tea", "")
oColumn.ValidValues.Add("Coffee", "")
'For selected Value
Dim ocombo As SAPbouiCOM.ComboBox
Dim oform As SAPbouiCOM.Form
Dim omat As SAPbouiCOM.Matrix
oform = SBO_Application.Forms.Item("MOR1")
omat = oform.Items.Item("mat").Specific
ocombo = omat.Columns.Item("Drink").Cells.Item(1).Specific
ocombo.Select("Fanta", SAPbouiCOM.BoSearchKey.psk_ByValue)
Thanks
Shafi -
Changing Excel decimalseperator using webutil
Hi all
I am migrating a few forms from 6i to 11g, one of this forms in 6i sends data (number data type) to excel cells, excel does some calculations and sends back the result.
In 11g this is becoming a nightmare, in Forms we are using SPANISH NLS_LANG and windows reginal setting to Spain so the decimal separator is comma however when we run the form in 11g I am always getting a number format error, I observed this error in jvm console:
java.lang.NumberFormatException: For input string: "1916,2232"
at sun.misc.FloatingDecimal.readJavaFormatString(Unknown Source)
at java.lang.Double.valueOf(Unknown Source)
at java.lang.Double.<init>(Unknown Source)
looks like JVM uses dot as decimal seperator and not a comma, I am not sure.
So if I cannot change JVM decimal seperator I think my best bet is change excel decimal seperator. Is this possible using webutil?
ThanksHi
1. What is the complete Forms version you are using? 11.1.1.4
2. What is the compete JRE version you are using? 1.6_21
3. What is the complete WebUtil version you are using? 11.1.1.4
4. What is the complete Jacob version you are using? 1.10.1
5. Have you tested this with a more common character set? For example: AMERICAN_AMERICA.WE8ISO8859P1 Yes, I have tested
The problem seems to me is following:
Forms (Spanish, comma decimal seperator) -> Webutil -> Excel (Spanish, comma decimal seperator) ERROR, I get the jaa number format error
If I try this:
Forms (AMERICAN, dot decimal seperator) -> Webutil -> Excel (Spanish, comma decimal seperator) ERROR when running excel calculation because excel is expecting comma decimal seperator
So far I only know how to change decimal seperator in Forms using NLS_NUMERIC_CHARACTER or NLS_LANG, I dont have a clue how can I force Webutil Or Jacob to use comma as decimal seperator, I dont know how to force comma as decimal seperator in excel and that is my question here unless anyone know how I can change decimal seperator in Webutil or Jacob?
Thanks! -
Xml file datamodel always the same file
Hello,
i have this kind of issue, i configured my ODI in the topology to load an external Xml file that will arrive every day. My load works good but i'm seeing now that ODI doesn't know that the file that i point to with configuration is different from one launch to another. It doesn't realize that the data inside are changed. I'm doing some test so every time that i receive a new xml file i rename the old one and i put there the new one. In my production system will be like this and scheduled but i'm scared about the fact that my ODI is not knowing the difference between my old file and the new one. Only if i close it and start it again he realize that the file is new and load the new data.
Have i forgot some configuration in some place? If yes where is and how i've to manage?
Thank you in Advance.
CorradoHello C.
Actually it's an ODI Procedure.
Try this:
PACKAGE_XML (your XML process package)
A) ODI PROCEDURE 01 (insert this step)
B) XML INTERFACES
C) ODI PROCEDURE 02 (insert this step)
Configure ODI PROCEDURES like this:
ODI PROCEDURE 01
Technology: XML
Comand on Target: SYNCHRONIZE FROM FILE
Schema: Your Source XML Schema.
Commit: Commit.
ODI PROCEDURE 02
Technology: XML
Comand on Target: SYNCHRONIZE FROM DATABASE
Schema: Your Target XML Schema.
Commit: Commit.
That is also explained on ODI Docs.
Let me know if that helps.
[]'s -
Message ID CPF7024, reason Code # 2
Hi Guys,
In our SCM production system, we use the the program given by SAP for managing the journal receivers..It deletes an old journal from the journal library and saves it to a another library, which we back off everynight...
Now all of a sudden, the program is not able to delete one of the old journals, and hence the subsequent journals are also not deleted, and hence our ASP is shooting up.
The reason code for not being able to delete the journal, its showing as Message ID CPF7024, reason Code # 2...which basically states that :
2 -- The receiver contains entries for changes that are not committed or
rolled back. These entries are necessary for IPL recovery operations.
This receiver is from last night...Is there a way to commit these or look at what has not been committed, so that we can delete the journals....
I have not brought down the system so far(offline)...and have not tried deleting this journal after that. I am speculating that it may give me the same message after that as well...
Any suggesstions?? Will it be alright if i bring down the system and then try the operation...??
Thanks
AbhiHi all, i have the same problem.
But in my case i can't do the IPL because the upgrade still running...
Is there other options to delete the journals manually?
I have search on internet and i got the following below, to use WRKJRNA...
Valid Reasons Why a DLTJRNRCV Receives Message CPF7024 RC2
The following are valid reasons why a DLTJRNRCV receives message CPF7024 with RC2 - the receiver contains entries for changes that are not committed or rolled back:
o
There are uncommitted changes. To resolve the problem, type WRKJRNA for the journal, press F15 to get into the receiver directory, and select Option 8 on the journal receiver to be deleted. For example, if a journal receiver called rcv34011 was attached on 12-13-99 at 13:03 and detached at 13:18, the user can locate the job that has not done a commit or rollback since 13:18. The user can use the WRKJRNA for the journal, press F19 and use Option 6 to display all commitment definitions currently associated with the journal. Work with each job that is active and determine if it was started after the Journal Receiver in question was attached and if this job can be ended. On this Work with Commitment Definitions screen, press F11 until the State field is displayed. Any commitment definitions with a State of PREPARED or LAST AGENT PENDING represent transactions that the application tried to commit, but are in-doubt due to a failure between phases one and two of the two-phase commit. Now determine whether the in-doubt commitment definitions are XA transactions by pressing F11 again until the Global Transaction ID field is displayed. If that field is blank, the transaction is non-XA, and should resolve by itself once communications are re-established with the remote system(s) involved in the transaction. If some unrecoverable error has occurred that will prevent communications with those system(s) from ever being re-established, the transaction will have to be manually completed using Option 14=Forced commit or Option16=Forced rollback, followed by Option 19=Cancel resync to make the commitment definition go away. If the Global Transaction ID field is not blank, the commitment definition represents an XA transaction. Such transactions must be completed per XA standard protocol. If any of the commitment definitions are not in a PREPARED or LAST AGENT PENDING state, they are still pending commit or rollback. You can display the commit cycle for such transactions by using Option 5=Display from the Work with Commitment Definitions screen, then Option F6=Display resource status, page down and select Journal, then Option 5=Display commit cycle entries. If the timestamp of the first entry (C SC) is later than the timestamp when the journal receiver was detached, this transaction is not preventing the receiver from being deleted. If the C SC timestamp is older than that, the user will have to determine why their application has not committed or rolled back such an old transaction.
Can somebody explain me how to use it?
Thanks all,
Cheung -
In combobox 'g' is getting cut off, 'g' is not fully visible
Hi Flex people,
I am facing problem in combobox, I have the items : 'moon' , 'manager' , 'marketing' in the combobox.
The text 'moon' is fully visible, but the in text 'manager' , 'g' is cut off, means character 'g' is not fully visible.
Please give solution to how to make the 'g' to visible in the selected item of combobox.
Please find the attached snapshot, that will give clear idea.
Thanks,
SushantTry this component:
<?xml version="1.0" encoding="utf-8"?>
<mx:ComboBox xmlns:mx="http://www.adobe.com/2006/mxml" creationComplete="init();" updateComplete="adjustComboDropDownWidth();"
buttonMode="true">
<mx:Script>
<![CDATA[
import mx.controls.List;
private var _selectedValue:String;
private var _selectedLable:String;
private var bSelectedValueSet:Boolean = false;
private var bDataProviderSet:Boolean = false;
[Bindable]
private var myDropdownFactory:ClassFactory;
// Override committ, this may be called repeatedly
override protected function commitProperties():void
// invoke ComboBox version
super.commitProperties();
// If value set and have dataProvider
if (bSelectedValueSet && bDataProviderSet)
// Set flag to false so code won't be called until selectedValue is set again
bSelectedValueSet=false;
// Loop through dataProvider
for (var i:int=0;i<this.dataProvider.length;i++)
// Get this item's data
var item:String = this.dataProvider[i].data;
// Check if is selectedValue
if(item == _selectedValue)
// Yes, set selectedIndex
this.selectedIndex = i;
break;
// Trap dataProvider being set
override public function set dataProvider(o:Object):void
// invoke ComboBox version
super.dataProvider = o;
// This may get called before dataProvider is set, so make sure not null and has entries
if (o!=null && o.length)
// Got it, set flag
bDataProviderSet = true;
// set for selectedValue
public function set selectedValue(s:String):void
// Set flag
bSelectedValueSet = true;
// Save value
_selectedValue = s;
// Invalidate to force commit
invalidateProperties();
* @author : Prashant Shelke.
* @date : 17/10/07
* @method name : init()
* @i/p params : -
* @return : void
* @description : To show tool-tip on line items objects of combobox.
public function init():void
myDropdownFactory = new ClassFactory(List);
myDropdownFactory.properties = {showDataTips:true, dataTipFunction:myDataTipFunction}
this.dropdownFactory = myDropdownFactory;
private function myDataTipFunction(value:Object):String
return (value.label);
* @author : Prashant Shelke.
* @date : 17/10/07
* @method name : adjustComboDropDownWidth()
* @i/p params : ComboBox
* @return : Number
* @description : computes dropdown width according to what dataprovider provided to it.
private function adjustComboDropDownWidth():void
this.dropdownWidth = calculateCustomPreferredSizeFromData();
* @author : Prashant Shelke.
* @date : 16/10/07
* @method name : calculateCustomPreferredSizeFromData()
* @i/p params : -
* @return : Number
* @description : computes dropdown width according to what dataprovider provided to it.
public function calculateCustomPreferredSizeFromData():Number
var dropDownWidth:Number = this.calculatePreferredSizeFromData(this.dataProvider.length).width+14;
if(dropDownWidth > this.width)
return dropDownWidth;
else
return this.width;
]]>
</mx:Script>
</mx:ComboBox> -
Workflow WS20000317 - Problem please help
Hi Sapgurus,
I am currently working on Workflow WS20000317, basically my requirement is that when the notification is created i have to intimate the user that a notification has been generated , but i don't know how to configure this workflow.
Could anybody please help me out so that i can complete my scenario.
Well i am starting a workflow also tha ti have created tru the user exit but it is giving me this dumb.
IF lh_transaction IS NOT BOUND.
lh_transaction = cl_swf_utl_transaction=>create( im_commit_work_control = l_do_c
l_transaction_created = 'X'.
ENDIF.
IF do_commit EQ 'W'.
CALL METHOD lh_transaction->set_trfc_executed( ).
ENDIF.
l_enqueue_owner = l_fbname.
CALL METHOD cl_swf_run_transaction_manager=>get_instance
EXPORTING
im_transaction = lh_transaction
im_enqueue_owner = l_enqueue_owner
RECEIVING
re_instance = lh_txmgr.
CALL METHOD cl_swf_run_wim_factory=>create_via_api
EXPORTING
im_context = l_crt_ctx
im_parameter = ls_wi_create
im_tx = lh_txmgr
im_language = language
RECEIVING
re_wi_handle = lh_wi_handle.
CALL METHOD lh_txmgr->save( ).
IF l_do_commit EQ 'X'.
COMMIT WORK.
ENDIF.
CATCH cx_swf_run_wim INTO l_excp.
IF l_transaction_created EQ 'X'.
CALL METHOD lh_transaction->remove( ).
ENDIF.
lh_alm_context = cl_swf_alm_factory=>create_context(
im_category = cl_swf_alm_factory=>c_cat_wi_create
im_system_type = cl_swf_alm_factory=>c_system_webflow ).
CALL METHOD lh_alm_context->raise_exception( l_excp ).
MESSAGE ID l_excp->t100_msg-msgid
TYPE l_excp->t100_msg-msgty
NUMBER l_excp->t100_msg-msgno
WITH l_excp->t100_msg-msgv1 l_excp->t100_msg-msgv2
l_excp->t100_msg-msgv3 l_excp->t100_msg-msgv4
RAISING id_not_created.
ENDTRY.
Thanks and Regards,
Rachti khanna
Message was edited by:
Rachit KhannaHi,
What about the container element values how can i set it the one i have told you .
I m not able to understand how to configure it i m totally confused please guide me.
I tried to run the workflow from my user exit using SWW_WI_START_SIMPLE but it is giving me this dumb
ENDIF.
*- create transaction and force commit work
lh_transaction = cl_swf_utl_transaction=>get( ).
IF lh_transaction IS NOT BOUND.
lh_transaction = cl_swf_utl_transaction=>create( im_commit_work_control = l_do_commi
l_transaction_created = 'X'.
ENDIF.
IF do_commit EQ 'W'.
CALL METHOD lh_transaction->set_trfc_executed( ).
ENDIF.
l_enqueue_owner = l_fbname.
CALL METHOD cl_swf_run_transaction_manager=>get_instance
EXPORTING
im_transaction = lh_transaction
im_enqueue_owner = l_enqueue_owner
RECEIVING
re_instance = lh_txmgr.
CALL METHOD cl_swf_run_wim_factory=>create_via_api
EXPORTING
im_context = l_crt_ctx
im_parameter = ls_wi_create
im_tx = lh_txmgr
im_language = language
RECEIVING
re_wi_handle = lh_wi_handle.
CALL METHOD lh_txmgr->save( ).
IF l_do_commit EQ 'X'.
COMMIT WORK.
ENDIF.
CATCH cx_swf_run_wim INTO l_excp.
IF l_transaction_created EQ 'X'.
CALL METHOD lh_transaction->remove( ).
ENDIF.
lh_alm_context = cl_swf_alm_factory=>create_context(
im_category = cl_swf_alm_factory=>c_cat_wi_create
im_system_type = cl_swf_alm_factory=>c_system_webflow ).
CALL METHOD lh_alm_context->raise_exception( l_excp ).
MESSAGE ID l_excp->t100_msg-msgid
TYPE l_excp->t100_msg-msgty
NUMBER l_excp->t100_msg-msgno
WITH l_excp->t100_msg-msgv1 l_excp->t100_msg-msgv2
l_excp->t10
RAISING id_not_created.
ENDTRY.
Could you please tell me what is the mistake here
Thanks for your reply.
Message was edited by:
Rachit Khanna
Maybe you are looking for
-
What's happening to my MacBook?!?!?!
My MacBook recently starting acting funny. Two days ago, I'm using it and it just completely shut off. I pressed the power button to turn it on again, I heard the startup chime, then I heard a "click" and it shut off again (no it wasn't the CD drive)
-
Can't drag and drop actions into a set
I'm using CS4 and haven't had this problem before. After loading various actions, I am unable to drag and drop them into one of my sets. The actions either drop above or below the set. I'd appreciate any suggestions. Thanks, Carole
-
Today, I updated to iOS 6 beta 3. iMessage won't activate and facetime too what do i do
Today, I updated to iOS 6 beta 3. iMessage won't activate
-
Upgrade to Lightroom 5 from Lightroom 4 with multiple installs?
I purchased Adobe Lightroom 4.0 MLP UE DVD, which allowed me 3 installations. Now I would like to upgrade to Lightroom 5 for the $79, but I wanted to know will I still be able to upgrade all 3 of my installations when I purchase a single upgrade??? W
-
How does one resize a photo to the dimensions required by a contest?
How does one resize a photo in aperture to the dimensions required by contest?