Help with XI calling an RFC
Hello Experts,
I have inherited the following situation that is currently not working - and I need to resolve it. We have a 3rd party program that stores data in a MySQL 5.0 database. A java proxy server is set up to send jobs from that database to XI. Then XI is supposed to call an RFC on our SAP 6.40 system. Somewhere along the way there is a problem. I can debug the ABAP RFC code myself, but the problem is before any job gets to the RFC. How can I tell if the RFC is being called at all? How can I tell if jobs are being stored in a queue on XI?
Any help as to where to begin would be greatly appreciated. I am very new to XI, so even things you might think are obvious would help.
Reward points for helpful answers
Thanks
Hi,
see the below links
Queue stopped - and queue register - https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/20bb9649-e86e-2910-7aa9-88ed4972a5f6
Introduction to queues in message mapping - /people/venkat.donela/blog/2005/06/09/introduction-to-queues-in-message-mapping
Eo/EOIO?BE - Queue - ? - /people/sap.india5/blog/2006/01/03/xi-asynchronous-message-processing-understanding-xi-queues-part-i
Please go through these links
/people/sap.india5/blog/2006/01/03/xi-asynchronous-message-processing-understanding-xi-queues-part-i
For queues in message mapping
/people/venkat.donela/blog/2005/06/09/introduction-to-queues-in-message-mapping
Here are the Queues for Asynchronous Message Processing
http://help.sap.com/saphelp_nw2004s/helpdata/en/7b/94553b4d53273de10000000a114084/frameset.htm
https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/f078394a-4469-2910-c4bf-853c75674694
There are some cases when re-executing the message makes it pass successfully.
For such errors, just schedule the program RSXMB_RESTART_MESSAGES, so that such messages can be re-started and don't block a queue.
you've to set the parameter MONITOR/QRFC_RESTART_ALLOWED to 1.
Now Coming back to Queues getting Blocked I dont hink Queue Prioritization is a ggod Idea, We have to manually Deal with Queues and the Data in Ind, remember if are force to delete any data from the Queues Delete the Complete LUW rather then individual message.
Have a Look at this Blog as well::
/people/stefan.grube/blog/2006/04/27/how-to-deal-with-stuck-eoio-messages-in-the-xi-30-adapter-framework
Regards
Piyush
Please reward some points if found usefull
Similar Messages
-
Help with htmldb_Get calling an on_demand application proccess
Hi,
I wonder if anyone can help with a problem I have. I have a button (coded in Javascript) that uses htmldb_Get to call an on_demand application process that should be updating the database. Unfortunately it does not, and I cannot see what I've done wrong! Perhaps some fresh eyes can help?
Call to htmldb_get / application process
var get = new htmldb_Get(null,&APP_ID.,'APPLICATION_PROCESS=applicationProcessSaveToDB',0);
get.add('STO_ID',myStoId)
get.add('DTE_ID',myDteId)
get.add('ADJ',myAdj)
var gReturn = get.get();
alert( 'gReturn <'+gReturn+'>' ) ;
On_demand process code
DECLARE
l_msg VARCHAR2 (2000);
BEGIN
SELECT :ADJ || CHR(10) || :STO_ID || CHR(10) || :DTE_ID
INTO l_msg
FROM dual;
UPDATE fid_live.tffd_cash_sls
SET local_est_manl_adj = :ADJ
, est_manl_adj = pk$_sa_exchange.f$_get_ukp_value
TO_NUMBER( pk$_sa_sel.f$_sel_sto_no( :STO_ID ) ),
:ADJ,
pk$_sa_sel.f$_sel_calendar_dte( :DTE_ID )
WHERE sto_id = :STO_ID
AND dte_id = :DTE_ID;
-- COMMIT;
HTP.prn (l_msg);
EXCEPTION WHEN OTHERS THEN
l_msg:='Exception has occurred '||SQLERRM||', '||SQLCODE;
HTP.prn (l_msg);
END;
I was expecting to see (a) the database updated (it is not) and (b) the text string l_msg echoed back via the alert(gReturn) - it does not (but does if I comment out the UPDATE statement, which makes me wonder if the SQL is being rejected, but then I'd hope that the exception block would return an error message).
Can anyone help?
Many thanks,
MarkB...Hi Mark,
for the future in case you have again a problem with an on-demand process. The following posting which I have written some time ago should help you to test it.
http://inside-apex.blogspot.com/2006/12/how-to-test-on-demand-process.html
Testing without the javascript call and seeing the actual result values is much easier then the through javascript.
Greetings
Patrick
My APEX Blog: http://inside-apex.blogspot.com
The ApexLib Framework: http://apexlib.sourceforge.net
The APEX Builder Plugin: http://sourceforge.net/projects/apexplugin/ -
I have a problem with method calling as it does the method but doesn't send the values to the main program. The Need section in the main should take in the Max and Allocation arrays from the setMax and setAllocation but it doesn't. I figure I'm missing a return call or something. Could you help me out.
public class Project4
public static void main (String[] args)
int[] Available=new int[4];
int[][]Max=new int[5][4];
int[][]Allocation=new int[5][4];
int[][] Need=new int[5][4];
setMax();
setAllocated();
setAvailable();
//Creates the need.
int numMax, numAlloc, numNeed;
for(int row=0; row<5; row++)
for (int col=0; col<4; col++)
numMax=Max[row][col];
numAlloc=Allocation[row][col];
numNeed=numMax-numAlloc;
Need[row][col]=numNeed;
for(int row=0; row<Need.length; row++)
for (int col=0; col<Need[row].length; col++)
System.out.print (Need[row][col]);
System.out.println();
System.out.println();
//From here on checks to see if available.
int[] processLeft=new int[5];
int numChecker, numAvail, counter, check, num, stop, processCounter;
int i=0;
num=0;
stop=3;
processCounter=0;
for(int row=num; row<Need.length; row++)
int col=0;
counter=Need[row].length;
numChecker=Need[row][col];
numAvail=Available[col];
do
check=0;
numChecker= Need[row][col];
numAvail=Available[col];
col++;
if (numChecker<=numAvail)
check=1;
while(numChecker<=numAvail && col<counter);
if(col==counter && check==1)
System.out.println("Process P"+row+" executes");
for(col=0; col<Allocation.length-1; col++)
numChecker=Allocation[row][col];
numAvail=Available[col];
numAvail=numChecker+numAvail;
Available[col]=numAvail;
num++;
processCounter=processCounter+1;
else
processLeft=row;
i++;
// Checks the processes left over
int j=0;
int row=0;
int col=0;
counter=Need[row].length;
while(processLeft[j]!=5 && processCounter!=5)
row=processLeft[j];
do
check=0;
numChecker= Need[row][col];
numAvail=Available[col];
col++;
if (numChecker<=numAvail)
check=1;
while(numChecker<=numAvail && col<counter);
if(col==counter && check==1)
System.out.println("Process P"+row+" executes");
for(col=0; col<Allocation.length-1; col++)
numChecker=Allocation[row][col];
numAvail=Available[col];
numAvail=numChecker+numAvail;
Available[col]=numAvail;
processCounter=processCounter+1;
j++;
safe(processCounter);
public static void setAllocated()
// Creates the Allocation
int[][] Allocation= {{3,0,0,2},{1,0,0,0},{1,3,5,4},{0,6,3,2},{0,0,1,4}};
for(int row=0; row<Allocation.length; row++)
for (int col=0; col<Allocation[row].length; col++)
System.out.print (Allocation[row][col]);
System.out.println();
System.out.println();
public static void setMax()
// Creates the max
int[][] Max= {{3,0,1,2},{1,5,5,0},{2,3,5,6},{0,6,5,2},{0,6,5,6}};
for(int row=0; row<Max.length; row++)
for (int col=0; col<Max[row].length; col++)
System.out.print (Max[row][col]);
System.out.println();
System.out.println();
public static void setAvailable()
// Creates the Available.
int[] Available={3,5,2,0};
public static void safe(int processCounter)
// Prints if it is safe or not
if(processCounter!=5)
System.out.println("\n The system is not safe");
else
System.out.println("\n The system is safe");those methods declare and initialize variables that exist only within that specific method, so no other method can see them
move the 4 arrays you declare in main() out of the method into the class body, then in the other methods, don't declare new arrays, simply initialize the ones you just moved into the class body
or alternatively, you could make the methods return the arrays they create, and instead of your main method creating arrays, it simply works with whatever those methods return
btw 20 minutes is a bit early to be getting impatient -
Need help with project (calling methods) please!!
Hi there i have a project for uni requiring me to create a java program that creates a random No. and lets the user have three guesses to find the No. When the users guesses correct he gets a message telling him hes won and if he doesnt get it correct he gets a message telling him the correct No then terminates.
The code has to call an outside method called[b] Public Static Boolean CheckGuess
I have tried to create this and got it to compile with no errors (eventually) but i keep getting a message saying i have whenever i type any number in. I think the problem is the way i am calling the method i havnt got much experience this is all pretty new to me any help would be really appreciated. Thanks.
import javax.swing.*;
import java.util.*;
public class Coursework1{
public static void main(String args[]){
int randomnumber,usersguessint,checkguess,guessvalid,attempts;
String usersguess,output;
boolean match;
//create random number generator
Random numGenerator = new Random();
//generate a random number between 1 & 10 inclusive
randomnumber = Math.abs(numGenerator.nextInt(9))+1;
//initialize variable attempts
for ( attempts = 0; attempts < 3; attempts++ ) {
//ask user for his first guess
usersguess=JOptionPane.showInputDialog("Please enter your guess between 1 & 10");
//convert users guess to integer
usersguessint = Integer.parseInt(usersguess);
//validate input
while (usersguessint<1||usersguessint>10){
usersguess=JOptionPane.showInputDialog("You entered an incorrect number \nPlease enter a numberbetween 1 & 10");
//convert users guess to integer
usersguessint = Integer.parseInt(usersguess);
} //end while loop
//call boolean method
if (match=true){
//display text area in JoptionPane
output="You won";
JOptionPane.showMessageDialog(null,output,"You Won",JOptionPane.INFORMATION_MESSAGE);
break;}
else{
output="Try again";
JOptionPane.showInputDialog("Try again");
} //end if
} //end for
}//end main
//user defined method
public static boolean checkGuess(int usersguessint,int randomnumber){
boolean match = false;
if (usersguessint == randomnumber){
match = true;
return match;
}//end method
}//endclassThank you very much that worked a treat the program is working better now. I have just realised that my for loopcontaining my counter may be in the wrong place as the program is running though both messages 3 times e.g
"Please enter your guess between 1 & 10"
"Try again"
"Please enter your guess between 1 & 10"
"Try again"
"Please enter your guess between 1 & 10"
"Try again"
"Please enter your guess between 1 & 10"
"Try again"
I want my program to run like
"Please enter your guess between 1 & 10"
"Try again"
"Try again"
"Try again"
Do u think if i placed my for stament (counter) in between the two messages it would eliminate this problem. -
Tried 3x to get help with my Call Waiting.
The 800-Verizon number is a call center in Mexico! I need to speak to someone who actually knows what I'm talking about. I was on hold for over 30 minutes! Please provide a number for someone here in the United States who is familiar with Verizon services (REALLY familiar; not through some training class).
Thank youThese forums are primarily peer to peer support where users try to help each other. Occasionally you might get a Verizon rep to respond but not always.
You could try using the chat support
http://www22.verizon.com/content/contactus/
Click on the options in the menus. You will see a link to start a chat at some point. -
Need help with scenario BPM Http-RFC Sync/async bridge
hi all!
i've got the following scenario: HTTP-BPM(XI)-RFC synchronous both of them. for that, i'm using S/A bridge in the BPM, but i'm getting the error 'Timeout condition of pipeline reached'. i think the problem is that the process gets lost in the sync/async communication, because in the trace level shows CL_XMS_PLSRV_CALL_BPE-ENTER_PLSRV" and after that every message are 'wait time starting'.
don't know the reason of the error. Maybe I missed something to configure?
the BPM is like this:
Receiver(Open Sync/Async bridge) -> Transformation (mapping from http request to RFC request) -> SyncSend (RFC request and response) -> Transformation (mapping from rfc response to http response) -> Send (Close S/A Bridge)
the IR is configured like this:
Message Types u2013 External Definitions u2013 Imported Objects
mt_cxml_request -> contains xsd of xcml request template.
mt_cxml_response -> contains xsd of xcml response template.
zintegracion_pedidos -> imported RFC from R/3
zintegracion_pedidos.response -> imported RFC from R/3
Message Interfaces
mi_cxml_request_async_abs
mi_cxml_request_sync_abs
mi_cxml_request_sync_out
mi_xcml_response_async
mi_rfc_request_asyn_abs
mi_rfc_request_sync_abs
mi_rfc_request_sync_in
mi_rfc_response_async_abs
Message Mappings
mm_cxml_request_to_rfc_request -> mapping from http request (cxml) to rfc request.
mm_rfc_response_to_cxml_response -> mapping from rfc response to http response (cxml).
Interface Mappings
im_cxml_request_async_abs_to_rfc_request_async_abs
im_rfc_response_async_abs_to_cxml_response_async_abs
and the ID is configured like this:
Business system DES -> created business system for RFC adapter with interface mi_rfc_request_sync_in as receiver. Comunication channel u2018RFC Receiveru2019
Businnes service VW -> created businnes service for HTTP adapter with interface mi_cxml_request_sync_out as sender. Comunication channel u2018HTTP Senderu2019
Receiver Determination
two receiver determinations. One for BPM and the other one for RFC(R/3):
|VW| mi_cxml_request_sync_out:
|BPM_PO| mi_rfc_request_sync_abs:
Interface Determination
two interface determinations:
|VW| mi_cxml_request_sync_out | | BPM_PO:
|BPM_PO| mi_rfc_request_sync_abs | * | * :
Sender Agreement
VW
mi_cxml_request_sync_out
Receiver Agreement
|BPM_PO| |DES| mi_rfc_request_sync_inhi all,
i've removed the transformations from the BPM, and i've created:
in IR:
- interface mapping: im_xcml_request_to_rfc_request_sync_abs
source interface: mi_cxml_request-sync_abs
target interface: mi_rfc_request_sync_abs
in ID:
- receiver determination: |VW| mi_cxml_request_sync_abs
sender service: VW
interface: mi_cxml_request_sync_abs
receiver: DES
interface mapping:im_xcml_request_to_rfc_request_sync_abs
- interface determination: |VW| mi_cxml_erquest_sync_abs ||
sender service: VW
interface: mi_cxml_request_sync_abs
inbound interface: mi_rfc_request_sync_abs
interface mapping: im_xcml_request_to_rfc_request_sync_abs
- receiver agreement: |VW| |DES| mi_rfc_request_sync_abs
sender service: VW
receiver service: DES
receiver interface: mi_rfc_request_sync_abs
not sure these are the steps i had to do for mapping xml to rfc. but the result is the same error as before, the timeout.
i couldn't test with RTW because i'm getting an error 401 unauthorized.
i'd do it without BPM but the issue is that i wanted to add another step that would be to send the response from rfc to mail too once i got this BPM running. i mean, the response from RFC would be sent to http response and mail both.
the only way i can imagine to do it is with BPM but i'm really fed up with it.
thank u very much folks -
Help with my caller display through my broadband t...
hello
I currently have number's including landlines showing up as 004401209xxxxxx when people try to call even tho i have them set up in the phone book. Is this a common fault and if so how can I fix it please help really bugging me now!!! I have caller displayMy Broadband Talk gives the correct number when called from a landline, and the callers name if it in my Hub Phone contacts - just checked and still does and has always done. Do you have a 056 Talk number? Mine is a geographic number on my home exchange - there may be a difference for 056 numbers.
Ectophile - the international format for the number quoted would be 00441209xxxxxx as the leading zero for the std code is omitted.
Peter -
6280 Can anyone help with Loudspeaker Call Waiting...
Hi, When I am talking on the phone and somebody calls me, the call waitng function puts the person I was talking to on loudspeaker, is there a way of changing that so that you just get a beep in your ear?
It's probably a dodgy firmware!
Give your mobile operator a call (if it's Three, no supprise!! - it should be 5.92 or similar, then call 333 from your handset) and ask them what the most up to date firmware is. You can find out what version you are on by pressing *#0000# on your handset. Make a note of it when you call as they may say you should send it in (should be free) for flashing. Don't forget EVERYTHING will be wiped so make a backup and keep the SIM & memory card!
Hope this helps.
Aubs -
Help with GUI (calling one class from other class)
Hi everybody,
I am new at GUI and I need your help..
I have a JPanel, named "holdAll", layout of which is set to BorderLayout. I have implemented all other JPanels in different class files. For example, I have TopPanel, LeftPanel, etc. as shown below
LeftPanel myLeft = new LeftPanel();
holdAll.add(myLeft, BorderLayout.WEST);
RightPanel myRight = new RightPanel();
holdAll.add(myRight, BorderLayout.EAST);
TopPanel myTop = new TopPanel();
holdAll.add(myTop, BorderLayout.NORTH);
MiddlePanel myMiddle = new MiddlePanel();
holdAll.add(myMiddle, BorderLayout.CENTER);
BottomPanel myBottom = new BottomPanel();
holdAll.add(myBottom, BorderLayout.SOUTH);
That works well but I have difficulties in ActionListeners.. For example, in my TopPanel class I have the code below:
public void actionPerformed(ActionEvent e) {
if (e.getSource() == btnInsert) {
int returnVal = fc.showOpenDialog(fc);
if (returnVal == JFileChooser.APPROVE_OPTION) {
File file = fc.getSelectedFile();
myImage newImage = new myImage(file);
System.out.println(newImage.myHashCode());
Here, if I have upload new image, then I have to update the listImage in the LeftPanel class.. But, I could not access the lstImage object in the LeftPanel class from the actionListener event in the TopPanel class.
What should I do? Is my design poor?public class TopPanel extends JPanel implements ActionListener { //it doesn't allow "extends JPanel, Observable"
JFileChooser fc;
JButton btnInsert;
JButton btnDelete;
public TopPanel() {
setLayout(new FlowLayout());
setBorder(BorderFactory.createBevelBorder(1, Color.WHITE, Color.GRAY));
btnInsert = new JButton("Insert");
btnDelete = new JButton("Delete");
JLabel myLabel = new JLabel(" Search : ");
JTextField txtSearch = new JTextField();
txtSearch.setColumns(20);
JToolBar searchToolBar = new JToolBar();
fc = new JFileChooser();
btnInsert.addActionListener(this);
searchToolBar.add(btnInsert);
searchToolBar.add(btnDelete);
searchToolBar.add(myLabel);
searchToolBar.add(txtSearch);
add(searchToolBar);
public void actionPerformed(ActionEvent e) {
if (e.getSource() == btnInsert) {
int returnVal = fc.showOpenDialog(fc);
if (returnVal == JFileChooser.APPROVE_OPTION) {
File file = fc.getSelectedFile();
*//Here I want to send fc.GetName() to the JList in the LeftPanel*
my LeftPanel class is below:
public class LeftPanel extends JPanel{
public LeftPanel(){
this.setLayout(new BorderLayout());
setBorder(BorderFactory.createBevelBorder(1, Color.WHITE, Color.GRAY));
JPanel pnlButtons = new JPanel();
JButton btnName = new JButton("Name");
JButton btnSize = new JButton("Size");
JButton btnDate = new JButton("Date");
pnlButtons.add(btnName);
pnlButtons.add(btnSize);
pnlButtons.add(btnDate);
pnlButtons.setBorder(BorderFactory.createLineBorder(Color.BLACK));
JPanel pnlImage = new JPanel();
JList lstImage = new JList();
lstImage.setVisible(true);
pnlImage.add(new JScrollPane(lstImage));
add(pnlButtons, BorderLayout.NORTH);
add(pnlImage, BorderLayout.CENTER);
Is there any simple way? -
Help with exception calling cmp entity bean from session bean
Hi,
I know someone else posted a very similar problem recently but I think the root of my problem may be different.
This is the exception that I receive:
javax.transaction.TransactionRolledbackException: CORBA TRANSACTION_ROLLEDBACK 9998 Maybe; nested exception is:
org.omg.CORBA.TRANSACTION_ROLLEDBACK: vmcid: 0x2000 minor code: 1806 completed: Maybe
at com.sun.corba.ee.internal.iiop.ShutdownUtilDelegate.mapSystemException(ShutdownUtilDelegate.java:114)
at javax.rmi.CORBA.Util.mapSystemException(Util.java:65)
at itsthes.security._SecurityManager_Stub.findUserRoles(Unknown Source)
at itsthes.security._SecurityManager_Stub.findUserRoles(Unknown Source)
at itsthes.security.servlets.SecurityUserListView.processRequest(SecurityUserListView.java:80)
at itsthes.security.servlets.SecurityUserListView.doGet(SecurityUserListView.java:94)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:740)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at org.apache.catalina.core.StandardWrapperValve.invokeServletService(StandardWrapperValve.java:720)
at org.apache.catalina.core.StandardWrapperValve.access$000(StandardWrapperValve.java:118)
at org.apache.catalina.core.StandardWrapperValve$1.run(StandardWrapperValve.java:278)
at java.security.AccessController.doPrivileged(Native Method)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:274)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:505)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:212)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:505)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:203)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:505)
at com.iplanet.ias.web.connector.nsapi.NSAPIProcessor.process(NSAPIProcessor.java:157)
at com.iplanet.ias.web.WebContainer.service(WebContainer.java:598)
Caused by: org.omg.CORBA.TRANSACTION_ROLLEDBACK: vmcid: 0x2000 minor code: 1806 completed: Maybe
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
at java.lang.reflect.Constructor.newInstance(Constructor.java:274)
at java.lang.Class.newInstance0(Class.java:306)
at java.lang.Class.newInstance(Class.java:259)
at com.sun.corba.ee.internal.iiop.messages.ReplyMessage_1_2.getSystemException(ReplyMessage_1_2.java:94)
at com.sun.corba.ee.internal.iiop.LocalClientResponseImpl.getSystemException(LocalClientResponseImpl.java:120)
at com.sun.corba.ee.internal.POA.GenericPOAClientSC.invoke(GenericPOAClientSC.java:133)
at org.omg.CORBA.portable.ObjectImpl._invoke(ObjectImpl.java:457)
at itsthes.security._SecurityManager_Stub.findUserRoles(Unknown Source)
... 17 more
This is my primary key implementation:
public final class SecurityUserKey implements java.io.Serializable {
public java.lang.Integer userId;
public java.lang.Integer roleId;
public java.lang.String emailAddress;
* Creates an empty key for Entity Bean: SecurityUser
public SecurityUserKey() {
* @see java.lang.Object#equals(java.lang.Object)
public boolean equals(java.lang.Object otherOb) {
if (this == otherOb) {
return true;
if (!(otherOb instanceof itsthes.security.entitybeans.SecurityUserKey)) {
return false;
itsthes.security.entitybeans.SecurityUserKey other = (itsthes.security.entitybeans.SecurityUserKey) otherOb;
return (
(userId==null?other.userId==null:userId.equals(other.userId))
(roleId==null?other.roleId==null:roleId.equals(other.roleId))
(emailAddress==null?other.emailAddress==null:emailAddress.equals(other.emailAddress))
* @see java.lang.Object#hashCode()
public int hashCode() {
return (
(userId==null?0:userId.hashCode())
^
(roleId==null?0:roleId.hashCode())
^
(emailAddress==null?0:emailAddress.hashCode())
My entity method invocation is this:
public Collection findUserRoles() {
Vector userCollection=new Vector();
try {
Context jndiContext = new InitialContext();
LocalSecurityUserHome home = (LocalSecurityUserHome) jndiContext.lookup(this.securityUserBean);
Iterator i = home.findAll().iterator();
while ( i.hasNext() ) {
LocalSecurityUser securityUser = (LocalSecurityUser)i.next();
SecurityUser sessionBean=mapLocalSecurityUser(securityUser);
userCollection.add(sessionBean);
} catch (javax.naming.NamingException e) {
System.err.println(e);
} catch (javax.ejb.FinderException e) {
System.err.println(e);
return userCollection;
If anyone could point me in the right direction that would be great.
thanks,
WilliamHi,
The Transaction Rollback exception may be due to the SystemException thrown in your findUserRoles() code which force the container to rollback the transaction. catch the generic exception in your findUserRoles() code and veriy what went wrong.
i hope this helps.
-ram -
Please help with correcting calling class and method errors
Hi All,
I have created a game (like battleship) for 2 tanks. I can't seem to connect the classes and methods to get the values for the last die face rolled; last direction rolled on a 4 headed dice; the x and y position for each tank; the armour value and the firePower (or hit value) to print.
Each row of these values is supposed to print 50 times using a while loop.
(N.B. The code is appended below my name.)
Could anyone please help me? I would be most grateful. Thank you.
Steve
import java.util.*;
class Client
static Die die;
static Direction dir;
static Tank tk1;
static Tank tk2;
public static final
void main( String[] argv)
die = new Die();
dir = new Direction();
tk1 = new Tank();
tk2 = new Tank();
int lastFace;
int setfaceLast;
int x;
int y;
int armourVal;
int firePower;
int battleNum=0;
int battles;
int moves = 0;
System.out.println("Tank");
System.out.println("'\t' Number");
System.out.println("'\t' Dir");
System.out.println("'\t' xValue");
System.out.println("'\t' yValue");
System.out.println("'\t' Armour");
System.out.println("Firepower"+'\n');
int i=0;
//int getLastFace();
//int LastDirName();
while (i <= 50);
int XPos;
int YPos;
Pos p = new Pos();
p.setXPos(x);
p.setYPos(y);
System.out.println ("'\t' Tank 1-");
//System.out.println ( die.getLastFace());
//System.out.println( dir.getLastDirName());
System.out.println(Pos(x));
System.out.println(Pos(y));
System.out.println(armourVal);
System.out.println(firePower+'\n');
System.out.println ("Tank 2-");
System.out.println ( lastFace);
//System.out.println(LastDir);
System.out.println(x);
System.out.println(y);
System.out.println(armourVal);
System.out.println(firePower+'\n');
moves++;
System.out.println(" '\n' + BATTLE");
class Tank
public static final int MINGRID;
public static final int MAXGRID;
static Die die = new Die();
static Direction dir = new Direction();
private static int battleCount;
private static int moveCount;
private int x;
private int y;
private int armourVal;
private int firePower;
public Tank()
int MINGRID=-10;
int MAXGRID=10;
battleCount=0;
moveCount=0;
x=0;
y=0;
armourVal=10;
firePower=1;
public
int getmove()
die.roll();
dir.roll();
dir.getLastDir();
die.getLastFace();
int x;
int y;
int Pos;
switch( dir.getLastDir() )
case Direction.UP:
y += die.getLastFace();
break;
case Direction.DOWN:
y -= die.getLastFace();
break;
case Direction.RIGHT:
x += die.getLastFace();
case Direction.LEFT:
x-= die.getLastFace();
break;
if ( x > MAXGRID )
x = (2 * MAXGRID) - x;
else if ( x < MINGRID )
x = (-2 * MINGRID) - x;
if ( y > MAXGRID )
y = (-2 * MAXGRID) - y;
else if ( y < MINGRID )
y = (-2 * MINGRID) - y;
if ( x == -3 && y == -3 )
firePower++;
System.out.println("Yipee - more firepower.");
if ( x == 3 && y == 3)
this.armourVal += 10;
System.out.println("Yipee - more armour.");
return Pos;
//printDetails();
public boolean getcontinueBattle(Tank tk2)
moveCount++;
if ( x == tk2.x && y == tk2.y)
battleCount++;
System.out.println("Battle");
tk2.armourVal -= firePower;
armourVal -= tk2.firePower;
if (tk2.armourVal < 0 )
int moveCount, battleCount;
return false;
if ( armourVal < 0 )
int moveCount, battleCount;
return false;
return true;
public int getprintDetails()
int ptDet;
return ptDet;
class Direction
private int lastFaceDir;
private Random rnd;
public static final int UP = 1;
public static final int DOWN = 2;
public static final int LEFT = 3;
public static final int RIGHT = 4;
String direction;
private
int getRandomNum()
int raw = rnd.nextInt();
raw = Math.abs( raw );
raw %= 4;
raw++;
return raw;
public
Direction()
rnd = new Random();
roll();
public
int roll()
lastFaceDir = getRandomNum();
if (lastFaceDir == UP)
direction = "up";
else if (lastFaceDir == DOWN)
direction= "down";
else if (lastFaceDir == LEFT)
direction = "left";
else if (lastFaceDir == RIGHT)
direction= "right";
return lastFaceDir;
public
int getLastFaceDir()
return lastFaceDir;
}// end class
class Die
private int lastFace;
private Random rnd;
private
int getRandomNum()
int raw = rnd.nextInt();
raw = Math.abs( raw );
raw %= 6;
raw++;
return raw;
public
Die()
rnd = new Random();
roll();
public
int roll()
lastFace = getRandomNum();
return lastFace;
public
int getLastFace()
return lastFace;
}// end classI got this sorted!
I unzipped the JAR and loaded the classes individually - so now the "reference" issue went away. Instead I now have a new problem, but I will post that seperately. -
RFC hangs with a call to function module SSFC_PARSE_CERTIFICATE
Hello ,
We are working on BI 7.0 SP9 .
When we try to test the RFC connection from the WAS Abap to the portal ( WAS JAVA ) using SM59 , the test is hanging but we can read in the bottom of the screen 'Connexion bcv51sf2... OK' !!!
The test connection works sometimes .
But when its not working , with the debug mode , I can see that the program SAPLSSFG/LSSFGU19 is hanging in the function module SSF_GET_PARAMETER with a call to the function SSFC_PARSE_CERTIFICATE
CALL FUNCTION 'SSFC_PARSE_CERTIFICATE'
EXPORTING
CERTIFICATE = PABCERT
IMPORTING
SUBJECT = STR_PROFILEID
EXCEPTIONS
SSF_KRN_ERROR = 1
SSF_KRN_NOMEMORY = 2
SSF_KRN_NOSSFLIB = 3
SSF_KRN_INVALID_PAR = 4
OTHERS = 5.
ENDIF.
ENDIF.
ENDFUNCTION.
The variable STR_PROFILEID has the value of the field ID of the table SSF_PSE_H
STR_PROFILEID =CN=QWO, OU=XXXXX, O=YYYY, C=FR
Due to this error , we cant transport BI Web templates because at the end of the import in the method execution of the transport there is a call to the portal with the RFC. And the transport is hanging
Thanks in advance for you help .
Happy new year. Milan.Hi Frank ,
See below the result of the test :
Test for function group SSFG
Function module SSF_GET_PARAMETER
Export parameters
Value
APPFOUND
<SYST>
SSFTOOLKIT
SAPSECULIB
STR_FORMAT
PKCS7
STR_PAB
/usr/sap/QWO/DVEBMGS01/sec/SAPSYS.pse
STR_PAB_PASSWORD
STR_PROFILEID
CN=QWO, OU=XXXX, O=YYYY, C=FR
STR_PROFILE
/usr/sap/QWO/DVEBMGS01/sec/SAPSYS.pse
STR_PROFILEPW
STR_HASHALG
SHA1
STR_ENCRALG
DES-CBC
B_INCCERTS
X
B_DETACHED
B_DISTRIB
X
But my problem now , it's that 1 of the 2 RFC is working fine and the other one after 1 good rfc test , is hanging now at the end of the function 'CONVERSION_EXIT_ISOLA_OUTPUT' line 14 !!!
See below the ABAP stack just before the hanging .
1 FUNCTION CONVERSION_EXIT_ISOLA_OUTPUT.
2 *"----
3 ""Lokale Schnittstelle:
4 *" IMPORTING
5 *" VALUE(INPUT)
6 *" EXPORTING
7 *" VALUE(OUTPUT)
8 *"----
9 OUTPUT = SAVE_INPUT(1) = INPUT.
10 CHECK SAVE_INPUT(1) NA ' *'.
11 SELECT SINGLE * FROM T002 WHERE SPRAS = INPUT.
12 CHECK SY-SUBRC = 0.
13 OUTPUT = T002-LAISO.
14 ENDFUNCTION.
Stack Dep Event type Event Program Include Line
10 FUNCTION CONVERSION_EXIT_ISOLA_OUTPUT SAPLLANG LLANGU04 14
9 FORM CONVERSION_EXIT SAPCNVE SAPCNVE 107
8 EVENT SYSTEM-EXIT SAPLDSYA <SYSINI> 20
7 FUNCTION DOKU_OBJECT_EXIST SAPLDSYA LDSYAU09 43
6 FORM FILL_EXCL_TAB RSDBRUNT RSDBRUNT 5.664
5 FORM %_INIT_PBO_LAST RSDBRUNT RSDBRUNT 4.061
4 FORM INIT_PBO RSDBRUNT RSDBRUNT 3.666
3 FORM %_INIT_PBO_NEW RSRFCPIN RSRFCPIN 496
2 MODULE (PBO) %_INIT_PBO RSRFCPIN RSRFCPIN 496
1 EVENT SYSTEM-EXIT RSRFCPIN <SYSINI> 20
As i said in the first post , the RFC test is hanging sometimes but now it seems that it's not hanging everytime at the same line of the abap code , if i can trust the debugger !
...and after another RFC test , now all the RFC to the portal are working ...
It seems that when it's hanging , it's at the end of the functions ( SYSTEM_CALLSTACK
or CONVERSION_EXIT_ISOLA_OUTPUT or SSF_GET_PARAMETER ) .
A memory or OS problem ?
Best Regards. Milan. -
Erratic behavior with multiple calls to the same RFC
Hi,
I am running into a strange problem invoking a custom RFC from a .NET application. I would appreciate it if someone has any insight into it.
The steps to call the RFC are straightforward:
1. Open the connection to SAP server
2. Make the call
3. Close the connection
As you can imagine, the code is also quite simple.
In my simulation program, I have a button on a UI form that one can click and execute the above steps.
The problem I am running into is that, on multiple calls, sometimes the parameter values that show up on the SAP side are not right. When the input parameter (a structure) is viewed in the ABAP debugger, the field values are all getting exchanged. For example, first name field contains values for the last name. Also, some fields that are supposed to have values do not have any.
Just before the RFC call is made, when we look at the structures on the .NET side, the field values are the way they are supposed to be.
I have not been able to establish a pattern. Sometimes, it takes two clicks to reproduce this problem. Sometimes it takes five.
One of the team members thinks that this starts occurring right after one call fails for some valid reasons. However, I am not yet convinced.
Having written many custom .NET applications using RFCs an BAPIs, I am fairly conversant with the technology. However, this one just baffles me. It appears something is getting messed up at the RFC layer itself. Does anyone have any idea on what could be happening?
Thank you in advance for your help.
PradeepIndeed this is interesting .
The problem is caused by an incompatible change from .NET Framework 1.1 to 2.0. Howerver, the documentation on the 1.1. API was not clear enough to decide if the incompatible change was adequate or not. Now in detail:
NCo runtime uses the reflection API Type.GetProperties to read and cache all properties of a Proxy structure. NCo assumes that the order of the returned properties is the same on each call and especially that it is the order of the properties as they appear in source code. This was the behavior in .NET 1.1. It has changed in 2.0, see e.g. the internet forum discussion in http://www.thescripts.com/forum/thread455492.html .
Calling Type.GetProperty(<PropertyName>) or Type.SetProperty(<PropertyName>) in your code moves the mentioned properties up in the list returned by Type.GetProperties() later inside of NCo.
We found the following work-arroud:
When using late-binding, call a dummy Type.GetProperties() before any GetProperty or SetProperty. -
Search Help with Web Dynpro call on another system
Hi all,
I have to create a search help with web dynpro on a field but the database is on another system... How can I do?
Many Thanks in advance...I would use a search help exit. Nothing WDA specific here, as this has been possible long before WDA came around. With a search help exit you define the search help like normal, but instead of database table or view being the source of selection, you have a function module. Within the coding of this function module you can call an RFC to read data from another system or call a web service if you need to bridge over to something that isn't ABAP based.
You can read more about Search Help Exits here:
http://help.sap.com/saphelp_nw70ehp1/helpdata/en/cf/21ee52446011d189700000e8322d00/frameset.htm -
can anyone help with facetime? im getting missed calls but it doesnt actually come up with an incoming call.....the person im trying to contact just gets missed calls also?
I've noticed that once you miss a call on FaceTime on a desktop Mac, it won't work properly again until you restart the machine.
I sent in Feedback so we'll see how that goes.
Maybe you are looking for
-
WLC 5508 8.0.100 AP dropout anf fallback issue
After WLC upgrade to 8.0.100 [ not in HA mode], the AP seem to be dropping out and reconnect using the fallback to IP- inspite of the statically configured IP on the AP Running Outdoor mesh AIR-CAP1552E-N-K9 on WLC 5508 (Cisco Controller) >show boot
-
About Function module reltate to Enhancement
Hi All, i need to know about the Usage and purpose of the function module FKK_BP_BADI_UPDATE. Kindly help me to know about this function module
-
Hello I have a PDF form which will be available over a public website for users to download and fill their information. Upon filling and clicking the Submit, the PDF will invoke my servlet which is deployed on Websphere Server. Is the data transmissi
-
Screenshot pictures a violation of privacy?
I don't know if I can get the answer here, but it's worth a shot. There is someone taking screen shots of a private group chat that my sister and I are part of. The individual suspected of sharing the conversations to outside people has since been re
-
Generating RSS Feeds using files with extension .xml
Bonjour! Apologies if this is not the correct forum - please redirect me if necessary. I am trying to create an .xml file to upload to my server allowing me to generate rss feeds on my web site. If i understand correctly (I am a beginner webmaster) f