Enabling a Client to use Sessions
Hi guys
I want to write a webclient which communicates with a servlet with more than 1 or 2 exchanges of data. The communication requires knowledge of all previous data passed between the two.
The client i have so far programmed using the URLconnection class. Is there a method for enabling session tracking???
you are writing your own web client
the cookies refers to the browser where you can turn on/off
cookies
turning cookies on in a browser just means that it manages
the sessionid stuff its self.
and you will have to implement it in your webclient.
its not hard, just extract the sessionid from the server
response,store it and append it to each url
Similar Messages
-
How to disable client cookie using Servlet code
Hi All,
I want to disable the client cookie using JSP or servlet code.Is it possible how I can do it.
Thanks in Advance .Hi,
first of all, the URL rewriting option (URLRewritingEnabled) in the weblogic.xml must be set to true.
Now, for all first-timer web requests the BEA WLS always uses URL rewriting in addition to cookies to see wether the browser accepts cookies or not.
I would try to rip of all of the cookies in the header, then flush the response to force the http header to be written.
I have never tried it and has no idea if it will work, however the teory behind supports the idea.
This will not work for toggling session tracking mechanism from a session already established with cookies, the session will be lost if attempted to do this without the URL-rewriting enabled on the page.
- Anders M. -
Enabling ARD client automatically enables Screen Sharing
Basically the exact opposite problem described here http://discussions.apple.com/thread.jspa?messageID=8910629�
If I enable ARD client on any machine, whether it's running Leopard, Tiger or Panther, other Leopard client users are potentially able to observe and control that machine using the Screen Sharing feature, if they had the correct username and password, and the client being observed would have no idea. Fortunately they haven't figured this out yet.
This is a problem for me, as I need the ability to observe/control other client machines in this office using my ARD admin, but I need to ensure my Leopard users cannot do the same thing using the Screen Sharing feature.The problem is that I almost always inevitably end up having to reveal the admin password at some point when I'm trouble shooting a staff member's Mac over the phone while he's overseas on business for example.
Once a user name and password slip out, there's really not much you can do to keep people out. Even if you have a special account for ARD, if someone else has administrator privileges, they can just turn on Screen Sharing or Remote Management for their account. So only if your users are good about not turning that on can you really keep unauthorized users out of your systems.
You might want to look into "neutered" admin accounts. It's a bit tricky, but it is possible to give some administrator privileges to an account but not all of them. Then you could perhaps allow the privileges your users need but still keep them from giving away the keys to the entire system. There's a PDF of a MacWorld session available here (clicking that link will download a zipped file). It's a bit old, but it should still be valid, and it's sketchy (it's the preso slides) but might provide sufficient information. If it's too sketchy, I have a QuickTime of the session the same people presented in 2008 that I could give you if you have a place to upload it (it's too large to email).
Regards.
Regards.
Message was edited by: Dave Sawyer -
How can I change java.policy at runtim on client machines using java webst?
Hi,
I have to change java.policy to launch my application through webstart to provide one RuntimePermission "permission java.lang.RuntimePermission "getClassLoader";"
Its because of a bug in java bug "_http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4809366_"
So, my problem here is, how can I do this dynamically on each client machine's java.policy.
I have spent time on this and found some alternatives
1. Specifying an Additional Policy File at Runtime by launching application "java -Djava.security.manager -Djava.security.policy=someURL SomeApp"
Please refer more on this "http://docs.oracle.com/javase/6/docs/technotes/guides/security/PolicyFiles.html"
But, here the problem is, how can I do this using webstart (expert.jnlp) file even though I have the "java-vm-args" tag, its not supporting this argument.
Please refer "http://docs.oracle.com/javase/6/docs/technotes/guides/javaws/developersguide/syntax.html#security";
2. Implementing the Policy in code.
But, not sure how to do this..
How can I grant the runtime permission on every user's machine dynamycally?
Here are some background details on this:
I am using java6 and weblogic 10.3.3.
Here is thing that I tried,
My application downloads a few jars to the client machines using java webstart and then it will get the initial context using the t3 protocal. The jars include wlclient.jar and ojdbc6.jar initially.
The problem here I was facing, when I tried request a bean, it is giving me the following exception in the client logs.It is requesting one state less session bean and I checked the server logs as well and the bean has returned the expected values properly.
But here I observed one more thing, before this request, one session bean(state less) has been requested successfully.
java.rmi.MarshalException: CORBA MARSHAL 0 No; nested exception is:
org.omg.CORBA.MARSHAL: vmcid: 0x0 minor code: 0 completed: No
at com.sun.corba.se.impl.javax.rmi.CORBA.Util.mapSystemException(Unknown Source)
at javax.rmi.CORBA.Util.mapSystemException(Unknown Source)
at com.mbt.expert.server.util._ServerDBQueryObjectRemote_Stub.getExchangeList(Unknown Source)
at com.mbt.expert.util.DBQueryObject.getExchangeList(DBQueryObject.java:419)
at com.mbt.expert.view.dialogs.OpenExchangeDialog.actionPerformed(OpenExchangeDialog.java:425)
at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
at java.awt.Component.processMouseEvent(Unknown Source)
at javax.swing.JComponent.processMouseEvent(Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Window.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.awt.EventQueue.access$000(Unknown Source)
at java.awt.EventQueue$1.run(Unknown Source)
at java.awt.EventQueue$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source)
at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue$2.run(Unknown Source)
at java.awt.EventQueue$2.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.Dialog$1.run(Unknown Source)
at java.awt.Dialog$3.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.awt.Dialog.show(Unknown Source)
at com.mbt.expert.view.dialogs.OpenExchangeDialog.displayDialog(OpenExchangeDialog.java:606)
at com.mbt.expert.mdi.actions.OpenExchangeAction.execute(OpenExchangeAction.java:204)
at com.mbt.mdi.MDICommand.actionPerformed(MDICommand.java:47)
at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
at java.awt.AWTEventMulticaster.mouseReleased(Unknown Source)
at java.awt.Component.processMouseEvent(Unknown Source)
at javax.swing.JComponent.processMouseEvent(Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Window.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.awt.EventQueue.access$000(Unknown Source)
at java.awt.EventQueue$1.run(Unknown Source)
at java.awt.EventQueue$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source)
at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue$2.run(Unknown Source)
at java.awt.EventQueue$2.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
Caused by: org.omg.CORBA.MARSHAL: vmcid: 0x0 minor code: 0 completed: No
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
at java.lang.reflect.Constructor.newInstance(Unknown Source)
at java.lang.Class.newInstance0(Unknown Source)
at java.lang.Class.newInstance(Unknown Source)
at com.sun.corba.se.impl.protocol.giopmsgheaders.MessageBase.getSystemException(Unknown Source)
at com.sun.corba.se.impl.protocol.giopmsgheaders.ReplyMessage_1_2.getSystemException(Unknown Source)
at com.sun.corba.se.impl.protocol.CorbaMessageMediatorImpl.getSystemExceptionReply(Unknown Source)
at com.sun.corba.se.impl.protocol.CorbaClientRequestDispatcherImpl.processResponse(Unknown Source)
at com.sun.corba.se.impl.protocol.CorbaClientRequestDispatcherImpl.marshalingComplete(Unknown Source)
at com.sun.corba.se.impl.protocol.CorbaClientDelegateImpl.invoke(Unknown Source)
at org.omg.CORBA.portable.ObjectImpl._invoke(Unknown Source)
... 80 more
The same is working in some other machine which are in different network. So, I have replaced the wlclient.jar with the wlthint3client.jar.
After replacing this jar I was getting the below exception in client logs while requesting a state less session bean.I also checked whether the request is reaching the server (bean) or not, but its not reaching the server.The problem is same at all the machines irrespective of the networks.
java.lang.AssertionError: Failed to generate class for com.mbt.expert.server.session.LoginSessionBean_tqw6yu_HomeImpl_1033_WLStub
at weblogic.rmi.internal.StubGenerator.generateStub(StubGenerator.java:797)
at weblogic.rmi.internal.StubGenerator.generateStub(StubGenerator.java:786)
at weblogic.rmi.extensions.StubFactory.getStub(StubFactory.java:74)
at weblogic.rmi.internal.StubInfo.resolveObject(StubInfo.java:213)
at weblogic.rmi.internal.StubInfo.readResolve(StubInfo.java:207)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at java.io.ObjectStreamClass.invokeReadResolve(Unknown Source)
at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source)
at java.io.ObjectInputStream.readObject0(Unknown Source)
at java.io.ObjectInputStream.readObject(Unknown Source)
at weblogic.utils.io.ChunkedObjectInputStream.readObject(ChunkedObjectInputStream.java:197)
at weblogic.rjvm.MsgAbbrevInputStream.readObject(MsgAbbrevInputStream.java:598)
at weblogic.utils.io.ChunkedObjectInputStream.readObject(ChunkedObjectInputStream.java:193)
at weblogic.rmi.internal.ObjectIO.readObject(ObjectIO.java:62)
at weblogic.rjvm.ResponseImpl.unmarshalReturn(ResponseImpl.java:240)
at weblogic.rmi.cluster.ClusterableRemoteRef.invoke(ClusterableRemoteRef.java:348)
at weblogic.rmi.cluster.ClusterableRemoteRef.invoke(ClusterableRemoteRef.java:259)
at weblogic.jndi.internal.ServerNamingNode_1033_WLStub.lookup(Unknown Source)
at weblogic.jndi.internal.WLContextImpl.lookup(WLContextImpl.java:405)
at weblogic.jndi.internal.WLContextImpl.lookup(WLContextImpl.java:393)
at javax.naming.InitialContext.lookup(Unknown Source)
at com.mbt.expert.mdi.ExpertVariable.getLoginSession(ExpertVariable.java:455)
at com.mbt.expert.view.dialogs.Login.okPressed(Login.java:187)
at com.mbt.expert.view.dialogs.Login.keyPressed(Login.java:141)
at java.awt.Component.processKeyEvent(Unknown Source)
at javax.swing.JComponent.processKeyEvent(Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.KeyboardFocusManager.redispatchEvent(Unknown Source)
at java.awt.DefaultKeyboardFocusManager.dispatchKeyEvent(Unknown Source)
at java.awt.DefaultKeyboardFocusManager.preDispatchKeyEvent(Unknown Source)
at java.awt.DefaultKeyboardFocusManager.typeAheadAssertions(Unknown Source)
at java.awt.DefaultKeyboardFocusManager.dispatchEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Window.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.Dialog$1.run(Unknown Source)
at java.awt.event.InvocationEvent.dispatch(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
Caused by: java.lang.reflect.InvocationTargetException
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
at java.lang.reflect.Constructor.newInstance(Unknown Source)
at weblogic.rmi.internal.StubGenerator.generateStub(StubGenerator.java:795)
... 55 more
Caused by: java.security.AccessControlException: access denied (java.lang.RuntimePermission getClassLoader)
at java.security.AccessControlContext.checkPermission(Unknown Source)
at java.security.AccessController.checkPermission(Unknown Source)
at java.lang.SecurityManager.checkPermission(Unknown Source)
at java.lang.ClassLoader.getSystemClassLoader(Unknown Source)
at weblogic.utils.classloaders.AugmentableClassLoaderManager.getAugmentableClassLoader(AugmentableClassLoaderManager.java:48)
at weblogic.rmi.internal.ClientRuntimeDescriptor.findLoader(ClientRuntimeDescriptor.java:254)
at weblogic.rmi.internal.ClientRuntimeDescriptor.getInterfaces(ClientRuntimeDescriptor.java:132)
at weblogic.rmi.internal.StubInfo.getInterfaces(StubInfo.java:77)
at com.mbt.expert.server.session.LoginSessionBean_tqw6yu_HomeImpl_1033_WLStub.ensureInitialized(Unknown Source)
at com.mbt.expert.server.session.LoginSessionBean_tqw6yu_HomeImpl_1033_WLStub.<init>(Unknown Source)
... 60 more
I have tried one more thing, I have taken all the required jars to one of the client machines and executed the main class (by setting the required class path) from cmd using java instead of javaws. Surprisingly, its working fine with out any problem using the wlthint3client.jar.
I also tried the same, by placing wlclient.jar using java in the same way(from cmd instead of javaws ), but I was facing the same exception while requesting the second session bean and found the same above exception in client logs.
To resolve this, I come across the java bug that I have given earlier "_http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4809366_".
In that page, I found a work around for this; suggested by bea to add the Runtime permission "permission java.lang.RuntimePermission "getClassLoader";" to the clients java.policy
So, please suggest me a way to resolve this problem.
Please suggest me if you have any other solutions for this problem.
Thanks in advance :)I still think your problem is nothing to do with that ancient non-bug and that you should be looking elsewhere. You might be lucky and find someone here who can say "Ah, I know what that is" but I doubt it because since Oracle took over Sun this site has gone down hill big time.
-
Enable more than two concurrent sessions in Server 2012 r2
Hello,
I have setup RDS on Server 2012 R2 with the following roles: (RD Connection Broker, RD Session Host, RD Gateway, RD Licensing, RD Web Access). My sole purpose for this setup was to enable this server and only this server to allow more than 2
concurrent RDP connections.
Here is some background information:
1. I will not be using RemoteApps or the Web access, I only only need to RDP into this server with more than 2 concurrent connections.
2. The licensing server is activated and I have a 50 user CAL installed on it. It has issued licenses to 3 users that have logged into the server while I was looking at the Web site features. So I know the licensing is working properly.
3. This server does reside in a domain but I'm looking to have everything self contained on just the one box. I do not want to put anything on my domain controller or a separate machine.
4. Everything looks to be fully configured in all of the roles. I have no warnings about things not being configured correctly.
5. When I attempt to login with a 3rd user to this system, it still prompts to have me remove one of the previous 2 sessions.
I know I must be looking right past the setting or it is in a very convoluted space, but how do I enable this server to allow more than 2 RDP sessions? I've made the change in group policy for (Administrative Templates\Windows Components\Remote Desktop
Services\Remote Desktop Session Host\Connections\Limit number of connections) to 50 but this still not seem to correct the problem.
Thanks for any answers you can provide,
Fred LevarioHi Fred,
Thank you for posting in Windows Server Forum.
Are you working with Domain or Workgroup environment?
Because from your description seems you want everything on single server. To enable more than 2 RDP session for your server we need to Add RD Session Host and RD Licensing Role Services, configure the RD Licensing mode, and licensing server name in the local
group policy, Activate the RD Licensing server and install RDS CALs using RD Licensing Manager.
You can configure the Licensing mode and licensing server through GPO as per below path.
Computer Configuration\ Administrative Templates\ Windows Components\ Remote Desktop Services\ Remote Desktop Session Host\ Licensing
Use the specified Remote Desktop license servers - Provide the FQDN of the license servers to use
Set the Remote Desktop licensing mode - Specify the ‘per user’ or ‘per device’ licensing types
More information.
RD Licensing Configuration on Windows Server 2012
http://blogs.technet.com/b/askperf/archive/2013/09/20/rd-licensing-configuration-on-windows-server-2012.aspx
Hope it helps!
Thanks.
Dharmesh Solanki
TechNet Community Support -
Can I use sessions to solve a problem?
I have a set of three pages called say "pick", "edit" and "confirm". The edit page is on one of a set of 5 spry tabbed panels.The server is unix and the machine uses windows 64 bit and CS5.5.
Pick uses a drop down list to select an item to edit. It then sends the record index to the edit page where it is edited.
Edit then updates the page and sends the user to the confirm page where he told that the edit was OK and is given a link that takes him back to the edit page.
So far everything works fine - the record is edited and the user knows it. But he needs to be able to check it, and that's the problem..
While this link does send the user back to the previous page, it does not send any info as to which record it should pull out.
I have tried to store the value of the record index in a session, but just cannot get it to be available ion the confirm page.
As soon as I enter <?php session_start() ?> on line 1 of any page, I get the message :
Warning: Cannot modify header information - headers already sent on line 1 on the pick page and line 62 on the edit page as soon as a button is pressed, or, in the case of the edit page, as soon as live View is active.
This line is where the page is directed to the next page using a stock Dreamweaver udate record behaviour.:
$updateGoTo = "editok.php";
if (isset($_SERVER['QUERY_STRING'])) {
$updateGoTo .= (strpos($updateGoTo, '?')) ? "&" : "?";
$updateGoTo .= $_SERVER['QUERY_STRING'];
}header(sprintf("Location: %s", $updateGoTo)); // This is line 62.
I have checked all the lines for white space, made sure that the instruction is on line 1 and have no include files other than connection files, all with no white space. Matters not whether I put them before or after the session start instruction.
I even created a new page with just a form and a field to send and this gives the same message - this was not on a spry panel..
PHP ini has the path to sessions set up, and sessions are visible there.
I get the feeling that the tabbed panels could be part of the problem, as when the user lands on the edit page, he has to select the second panel, so some output must have been sent to the browser.and that would kill the session I think?
Is there a way of passing the info from page to page without using sessions?Thanks Burak - I was aware of the bom problem.
Bregent - I think that I found the problem. I was using a set of 5 spry tabs with a form on each and trying to update them one at a time. To get to any of the forms, I had to open a tab, so I assume that the browser generated some output and that was why I had problems with the sessions.
So I found out how to set up the tabs within the same form, which meant that I could edit all 5 pages at one go, and only post them on the last one. I got the idea from a post on the spry forum which links to a page containing code which does this at
http://www.soleproductions.com/oakley/tabform.php
With some slight modification, this gave me a better solution with no need for sessions.
This still left the problem of passing the edit page location to the confirm page. Its such a long time since I have used parameters that I had forgotten them.
However, a little modification to the update record server behaviour enabled me to pass the correct value from the $_POST array to the confirm page.
Like so:
From this:
$updateGoTo = "editok.php";
if (isset($_SERVER['QUERY_STRING'])) {
$updateGoTo .= (strpos($updateGoTo, '?')) ? "&" : "?";
$updateGoTo .= $_SERVER['QUERY_STRING'];
}header(sprintf("Location: %s", $updateGoTo));
To this:
$updateGoTo = "editok.php?pick=" . $_POST['club_index'] . "";
if (isset($_SERVER['QUERY_STRING'])) {
$updateGoTo .= (strpos($updateGoTo, '?')) ? "&" : "?";
$updateGoTo .= $_SERVER['QUERY_STRING'];
header(sprintf("Location: %s", $updateGoTo));
Using this code there was no problem with "headers already sent."
None of the info is particularly sensitive.
Thanks for the interest.
Howard Walker -
How to enable remote debugging for a session other than the current one
Hi all,
I am trying to figure out how to enable remote debugging for a session other than the one I am currently using.
More specifically, we have an application that is making database calls to Oracle 11gR2. Something is causing an exception during this invocation. My system is currently not set up to recompile said application, so I can't just add the debug call to the code and recompile. Therefore I would like to be able to log into the database (as sys, if necessary) and invoke dbms_debug_jdwp.connect_tcp on the desired session.
The docs indicate that I should be able to do so:
dbms_debug_jdwp.connect_tcp(
host IN VARCHAR2,
port IN VARCHAR2,
session_id IN PLS_INTEGER := NULL,
session_serial IN PLS_INTEGER := NULL,
debug_role IN VARCHAR2 := NULL,
debug_role_pwd IN VARCHAR2 := NULL,
option_flags IN PLS_INTEGER := 0,
extensions_cmd_set IN PLS_INTEGER := 128);
But when I try (even as sys), I get the following:
exec dbms_debug_jdwp.connect_tcp('1.2.3.4',5678,<session id>,<session serial>);ORA-00022: invalid session ID; access denied
ORA-06512: at "SYS.DBMS_DEBUG_JDWP", line 68
ORA-06512: at line 1
00022. 00000 - "invalid session ID; access denied"
*Cause: Either the session specified does not exist or the caller
does not have the privilege to access it.
*Action: Specify a valid session ID that you have privilege to access,
that is either you own it or you have the CHANGE_USER privilege.
I've tried granting the 'BECOME USER' privilege for the relevant users, but that didn't help. I read something about having to set some kind of ACL as of 11gR1, but the reference documentation was very confusing.
Would someone be able to point me in the right direction? Is this even possible, or did I misread the documentation?Interesting deduction, that would be very useful indeed. I hate recompiling just to add the debug call, and it can't be done in our production environment. But it seems unlikely to me it would be implemented this way.
I would cross-post this in the SQL AND PL/SQL forum though, as this is really a database issue, not with the SQL Developer tool. Do add the links to the other posts in each.
Regards,
K. -
How to scroll up and down in IBM client access using windows 7 on mac running bootcamp
How to scrool up and down in Client Access 5250 (AS/400 emulator) using windows 7 on Mac running boot camp. The key board does not function within the client access 5250 session?
You can also share a printer between the Mac/PC as well as files and mounted Volumes, see the Tiger articles here
http://www.ifelix.co.uk/tech/
You may want to use Bonjour for Windows on your PC
http://www.apple.com/macosx/features/bonjour/
Then there are VNC clients for Mac/PC that also allow you to actually control the other machine, if they aren't in the same room and you just need to check something quick that can be handy, it's kind of slow though for regular use.
The main benefit of partitioning is being able to have different versions of bootable OS on them. You can try out Leopard on a new partition, while keeping your Tiger partition intact, you can have a XP/Vista partition for parallels or BootCamp, etc... other than that drives are pretty much fast enough, having smaller partitions probably won't realize any significant speed ups over searching the whole large drive. -
Can you use Crystal Reports on a webpage without having to use session?
In all of the examples I have seen it shows using the session to store the reportdocument object between postbacks. That means that clicking the page buttons fires a postback. Other reporting tools such as PDF, ActiveReports, and others do not have to do this. Is this a limitation of Crystal and a COM backend or is it just a common sample and not the only option?
How do you get paging to work without having to use session and do postbacks? AJAX, Javascript, converting to a PDF, etc. would all be possible ways to not require a postback.
My problem is that I am using SQL Server to store the session and the reportdocument object is not serializeable. I have been told I can buy Crystal Report Server for $5000 and this will work. But in reality I can buy other reporting tool for $500 or convert them to SQL Reporting and it will work as well. So I am trying to be reasonable and figure out what I need to do. That seems like a bit much to need a whole server application to serve the reports just to turn on paging for a couple of simple reports. I'm hoping there is a way to not use session to get paging to work.
I have consider pushing the report into viewstate and not session. But I would rather not push it into either. Is this a valid option?
What is the typical way to handle this sort of thing? Do you really have to push it into session to get the CrystalReportViewer control to page on an ASPX page. What other options are there?
Any suggestions, thoughts, or ideas would be very much appreciated. This is causing enough of a problem where the company is asking me to look at alternatives if we cannot solve this.
Best regards,
JonAcrobat doesnu2019t cause postbacks when paging because the acrobat reader installed locally, so its viewing is in a client-side control. I imagine the same thing is the case for ActiveReports (some sort of client-side activex control installed).
If the winform viewer was used on in your web page, then you wouldnu2019t get postbacks either, but then you'd need Crystal Reports runtime on the client to view in that control. And placing a winviewer in a web page give me shivers...
So, to avoid using session, recreate the reportdocument and re-load the report on postbacks.
As Surabh mentioned, you can serialize the report but you will have to use teh InProc RAS. There is an issue thought; you start to get load errors and otehr errors after viewing 3 reports. I belive this has been reported to R&D for a fix comment, but I do not have and ETA at this time. The code for the InProc RAS SDK would be as follows:
If Not IsPostBack Then
Dim rpt As New CrystalDecisions.CrystalReports.Engine.ReportDocument
Dim boReportClientDocument As CrystalDecisions.ReportAppServer.ClientDoc.ISCDReportClientDocument
' rpt.ReportAppServer = "Inproc:multithreaded"
rpt.Load("c:inetpubwwwroot estSerializeInprocRASEmployee Profile.rpt",
OpenReportMethod.OpenReportByTempCopy)
boReportClientDocument = rpt.ReportClientDocument
Dim x As String = boReportClientDocument.DataDefController.Database.Tables(0).Name
' boReportClientDocument.DatabaseController.logon("sa", "admin")
Dim convertUtil As New CrystalDecisions.ReportAppServer.Utilities.Conversion()
Dim serializedDoc As String
serializedDoc = convertUtil.ToString(rpt.ReportClientDocument)
Session.Add("SerializedDoc", serializedDoc)
'ViewState.Add("SerializedDoc", serializedDoc)
Response.Write("The document has been serialized.")
CrystalReportViewer1.ReportSource = boReportClientDocument.ReportSource
Else
Label1.Visible = False
Button1.Visible = False
Dim x As String
x = ViewState("SerializedDoc").ToString()
Dim deSerializedDoc As ISCDReportClientDocument
Dim convertUtil As New Conversion
deSerializedDoc = convertUtil.ToReportClientDocument(Session("SerializedDoc").ToString())
'deSerializedDoc = convertUtil.ToReportClientDocument(ViewState("SerializedDoc").ToString())
CrystalReportViewer1.ReportSource = deSerializedDoc
Response.Write("You are viewing a de-Serialized report" & "<BR>")
Response.Write(ViewState("SerializedDoc").ToString())
End If
[1542991 - How to serialize the ReportClientDocument using the RAS .NET SDK?|http://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/com.sap.km.cm.docs/oss_notes_boj/sdn_oss_boj_bi/sap(bD1lbiZjPTAwMQ==)/bc/bsp/spn/scn_bosap/notes%7B6163636573733d36393736354636443646363436353344333933393338323636393736354637333631373036453646373436353733354636453735364436323635373233443330333033303331333533343332333933393331%7D.do]
- Ludek
Edited by: Ludek Uher on Dec 9, 2011 11:16 AM -
How to use session state protection
I use Apex 3.2.1
I access my site by a url passing a parameter like this : f?p=101:1:0::::ITEM1:1234567. There is no login and password to access the site.
The value of the parameter ITEM1 is the authorization of the first page, with a database function for the verification.
To secure my site I want to use session state protection so, I enabled it , then I defined "Arguments Must have checksum" for the page 1.
Now , when i try to acces my site with the same url it does not work.
it is the first time a try to use session state protection, could someone tell me what's wrong?Hi user5719906,
I would suggest that as you need to pass an item and are unable to generate a checksum as you are not yet logged in, that you will need to allow arguments without checksum for this page.
This could be a bit of a hole in your security, but as long as you know it is there and clear the cache for all pages that you branch to, you should be able work around it.
The issue is that a malicious user can set page and application items via the url to an unsecured page.
Regards
Michael -
Urgent!! Problem in using session invalidate()
Dear all,
I think may be the problem has been posted here before, but i can't find the solution yet. I hope you can help me about this.
My case is that i wrote a logout servlet for my web site. So i use session.invalidate() in the servlet. After that it will redirect to the home page again. At this time, NullPointerException is thrown. I have tried many ways to solve this problem, but still failed.
Can anyone help me? Thanks for advanced.
Priscillahere is the error printed out:
java.lang.NullPointerException
at com.sssw.srv.http.CommonLogger.log(CommonLogger.java:217)
at com.sssw.srv.http.httpd.log(httpd.java:4229)
at com.sssw.srv.http.Client.log(Client.java:254)
at com.sssw.srv.http.Client.loop(Client.java:1300)
at com.sssw.srv.http.Client.runConnection(Client.java:1495)
at com.sssw.srv.http.Client.run(Client.java:1442)
at java.lang.Thread.run(Thread.java:479) -
Creating a simple java client for a session EJB local interface
Hi all
Is it possible to create a simple java client for a session ejb local interface with JDeveloper.
The problem is that it creates a test client for a remote interface only...
i.e.
MySessionEJB sessionEJB = context.lookup("MySessionEJB")
and once i try to adjust it manually for the local interface...
MySessionEJBLocal sessionEJB = (MySessionEJBLocal) context.lookup("MySessionEJBLocal") (MySessionEJBLocal - is the name of my local interface)
it generates the exception:
javax.naming.NotFoundException: SessionEJBLocal not found
at...........................(RMIClientContext.java:52)
There is still no problem with accessing the local interface object from the jsf project where i've added <ejb-local-ref> tag into the web.xml file.
but i need the possibility of testing the simple java client for the local interface to test business methods wich should return objects without indirect properties
Thanks in advance.
Alex.Pedja thanks for reply.
I still dont understand what is wrong with my example.
The first peace of the code i wrote (getting the reference to the remote interface object) works pretty well, and even more it is produced automatically by JDeveloper, so why we cant get a reference to the local interface object the same way?
Certanly we should use the local interface for getting access to the resource functioning under the same local jvm and i think it doesnt metter wich app server we really use wls or oas or others
Thanks. Alex. -
hai
can anyone post me bdc using session method plzHi,
ABAP BDC SESSION METHOD SAMPLE CODE
pool of form routines
include zmppn001.
Define BDC Table Structure
data: begin of itab_bdc_tab occurs 0.
include structure bdcdata.
data: end of itab_bdc_tab.
Input record layout of Leagcy File
data: begin of itab_xcel occurs 0,
matnr(18) type c,
werks(4) type c,
alnag(2) type c,
verid(4) type c,
text1(40) type c,
bstmi like mkal-bstmi,
bstma like mkal-bstma,
adatu(10) type c,
bdatu(10) type c,
stlal(2) type c,
stlan(1) type c,
serkz(1) type c,
mdv01(8) type c,
elpro(4) type c,
alort(4) type c,
end of itab_xcel.
data: begin of lt_pp04_cache occurs 0,
matnr like itab_xcel-matnr,
werks like itab_xcel-werks,
alnag like itab_xcel-alnag,
plnnr like mapl-plnnr,
arbpl like crhd-arbpl,
ktext like crtx-ktext,
end of lt_pp04_cache.
data: v_ssnnr(4) type n,
v_lines_in_xcel like sy-tabix,
v_ssnname like apqi-groupid,
v_trans_in_ssn type i,
wa_xcel LIKE itab_xcel,
l_tabix like sy-tabix,
v_matnr like rc27m-matnr,
v_plnnr like mapl-plnnr,
v_plnal like mapl-plnal,
v_tcode like sy-tcode value 'C223',
v_plnty like plas-plnty value 'R',
v_objty like crhd-objty value 'A',
v_plpo_steus like plpo-steus value 'PP04',
v_verwe like crhd-verwe value '0007'.
Parameters
selection-screen: skip 3.
selection-screen: begin of block 1 with frame.
parameters: p_name like rlgrap-filename
default 'C:\My Documents\InputFile.txt'
obligatory,
bdc session name prefix
p_bdcpfx(6) default 'ZPVCRT'
obligatory,
number for transction per BDC session
p_trnssn type i
default 2000 obligatory,
retain the BDC session after successfull execution
p_keep like apqi-qerase
default 'X',
user who will be executing BDC session
p_uname like apqi-userid
default sy-uname
obligatory.
selection-screen: end of block 1.
possible entry list (F4 dropdown) for input file name
at selection-screen on value-request for p_name.
*-SELECT FILE FROM USERS LOCAL PC
call function 'WS_FILENAME_GET'
exporting
DEF_FILENAME = ' '
def_path = 'C:\Temp\'
mask = ',.,..'
mode = 'O'
title = 'Select File '(007)
importing
filename = p_name
RC =
exceptions
inv_winsys = 1
no_batch = 2
selection_cancel = 3
selection_error = 4
others = 5.
if sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
endif.
begin the show
start-of-selection.
read data from input file
perform transfer_xcel_to_itab.
loop at itab_xcel.
hang on to xcel line num
l_tabix = sy-tabix.
each line in the xcel file marks begining of new prod.version defn
if num-of-trnas-in-session = 0, create new BDC session
if v_trans_in_ssn is initial.
perform bdc_session_open.
endif.
begin new bdc script for rtg create trans
fill in bdc-data for prod.version maintenance screens
perform bdc_build_script.
insert the bdc script as a BDC transaction
perform bdc_submit_transaction.
keep track of how many BDC transactions were inserted in the BDC
session
add 1 to v_trans_in_ssn.
if the user-specified num of trans in BDC session is reached OR
if end of input file is reached, close the BDC session
if v_trans_in_ssn = p_trnssn or
l_tabix = v_lines_in_xcel.
perform bdc_session_close.
clear v_trans_in_ssn.
endif.
endloop.
top-of-page.
call function 'Z_HEADER'
EXPORTING
FLEX_TEXT1 =
FLEX_TEXT2 =
FLEX_TEXT3 =
FORM TRANSFER_XCEL_TO_ITAB *
Transfer Xcel Spreadsheet to SAP Internal Table *
form transfer_xcel_to_itab.
Read the tab-delimited file into itab
call function 'WS_UPLOAD'
exporting
filename = p_name
filetype = 'DAT'
IMPORTING
filelength = flength
tables
data_tab = itab_xcel
exceptions
conversion_error = 1
file_open_error = 2
file_read_error = 3
invalid_table_width = 4
invalid_type = 5
no_batch = 6
unknown_error = 7
others = 8.
if sy-subrc = 0.
sort the data
sort itab_xcel by matnr werks.
clear v_lines_in_xcel.
if no data in the file - error out
describe table itab_xcel lines v_lines_in_xcel.
if v_lines_in_xcel is initial.
write: / 'No data in input file'.
stop.
endif.
else.
if file upload failed - error out
write: / 'Error reading input file'.
stop.
endif.
endform.
FORM BDC_SESSION_OPEN *
Open BDC Session *
form bdc_session_open.
create bdc session name = prefix-from-selectn-screen + nnnn
add 1 to v_ssnnr.
concatenate p_bdcpfx v_ssnnr into v_ssnname.
open new bdc session
call function 'BDC_OPEN_GROUP'
exporting
client = sy-mandt
group = v_ssnname
keep = p_keep
user = p_uname
exceptions
client_invalid = 1
destination_invalid = 2
group_invalid = 3
group_is_locked = 4
holddate_invalid = 5
internal_error = 6
queue_error = 7
running = 8
system_lock_error = 9
user_invalid = 10
others = 11.
endform.
FORM BDC_BUILD_SCRIPT *
Build BDC *
form bdc_build_script.
data: l_arbpl like crhd-arbpl,
l_text1 like mkal-text1,
l_mdv01 like mkal-mdv01,
l_mapl like mapl.
clear bdc-data itab - begin of new bdc transaction
clear itab_bdc_tab.
refresh itab_bdc_tab.
read material cross reference tables to determine sap part#
clear : v_matnr, v_plnnr, v_plnal.
perform read_matnr_cross_ref using itab_xcel-matnr
itab_xcel-werks
changing v_matnr.
determine the version description to use
if itab_xcel-text1 is initial.
l_text1 = itab_xcel-verid.
else.
l_text1 = itab_xcel-text1.
endif.
determine the routing group# and group ctr# to use
perform read_routing .
determine the production line to use
if itab_xcel-mdv01 is initial.
if not provided in the file then:
prod line = work ctr on the last PP04 op of the rtg determined above
perform read_wc_on_last_pp04 using v_plnnr v_plnal
changing l_mdv01.
NOTE: when executing the above form\routine, if v_plnnr is initial
or v_plnal is initial, THEN l_mdv01 will automatically be
returned blank (ie initial)
else.
l_mdv01 = itab_xcel-mdv01.
endif.
build bdc script
perform bdc_build_script_record
fill in initial screen
using: 'X' 'SAPLCMFV' '1000',
' ' 'BDC_OKCODE' '=ENTE',
' ' 'MKAL-WERKS' itab_xcel-werks,
' ' 'MKAL-MATNR' v_matnr,
' ' 'MKAL_ADMIN-DISPO' space,
' ' 'MKAL-PLNNR' space,
' ' 'MKAL_ADMIN-STTAG' space,
' ' 'MKAL-PLNNG' space,
' ' 'MKAL-MDV01' space,
' ' 'MKAL-PLNNM' space,
click create button on initial screen and go to detail screen
'X' 'SAPLCMFV' '1000',
' ' 'BDC_OKCODE' '=CREA',
fill in the detail screen and go back to initial screen
'X' 'SAPLCMFV' '2000',
' ' 'BDC_OKCODE' '=CLOS',
' ' 'MKAL_EXPAND-MATNR' v_matnr,
' ' 'MKAL_EXPAND-VERID' itab_xcel-verid,
' ' 'MKAL_EXPAND-TEXT1' l_text1,
' ' 'MKAL_EXPAND-BSTMI' itab_xcel-bstmi,
' ' 'MKAL_EXPAND-BSTMA' itab_xcel-bstma,
' ' 'MKAL_EXPAND-ADATU' itab_xcel-adatu,
' ' 'MKAL_EXPAND-BDATU' itab_xcel-bdatu,
' ' 'MKAL_EXPAND-PLTYG' v_plnty,
' ' 'MKAL_EXPAND-PLNNG' v_plnnr,
' ' 'MKAL_EXPAND-ALNAG' v_plnal,
' ' 'MKAL_EXPAND-STLAL' itab_xcel-stlal,
' ' 'MKAL_EXPAND-STLAN' itab_xcel-stlan,
' ' 'MKAL_EXPAND-SERKZ' itab_xcel-serkz,
' ' 'MKAL_EXPAND-MDV01' l_mdv01,
' ' 'MKAL_EXPAND-ELPRO' itab_xcel-elpro,
' ' 'MKAL_EXPAND-ALORT' itab_xcel-alort,
save the production version from initial screen
'X' 'SAPLCMFV' '1000',
' ' 'BDC_OKCODE' '=SAVE'.
endform.
FORM BDC_SUBMIT_TRANSACTION *
Submit BDC Session *
form bdc_submit_transaction.
Load BDC script as a trqansction in BDC session
call function 'BDC_INSERT'
exporting
tcode = v_tcode
tables
dynprotab = itab_bdc_tab
exceptions
internal_error = 01
not_open = 02
queue_error = 03
tcode_invalid = 04.
endform.
FORM BDC_BUILD_SCRIPT_RECORD *
form bdc_build_script_record using dynbegin name value.
clear itab_bdc_tab.
if dynbegin = 'X'.
move: name to itab_bdc_tab-program,
value to itab_bdc_tab-dynpro,
'X' to itab_bdc_tab-dynbegin.
else.
move: name to itab_bdc_tab-fnam,
value to itab_bdc_tab-fval.
shift itab_bdc_tab-fval left deleting leading space.
endif.
append itab_bdc_tab.
endform.
FORM BDC_SESSION_CLOSE *
Close BDC Session *
form bdc_session_close.
close the session
call function 'BDC_CLOSE_GROUP'
exceptions
not_open = 1
queue_error = 2
others = 3.
skip 2.
if sy-subrc ne 0.
write: / 'Error Closing BDC Session ' , 'RETURN CODE: ', sy-subrc.
else.
write : / 'Session created:', v_ssnname,
50 '# of transactions:', v_trans_in_ssn.
endif.
endform.
*& Form read_routing_cache
*FORM read_routing_cache USING pi_matnr
pi_werks
pi_alnag
pi_verid
pi_mdv01.
DATA: BEGIN OF lt_plpo OCCURS 0,
vornr LIKE plpo-vornr,
objty LIKE crhd-objty,
objid LIKE crhd-objid,
arbpl LIKE crhd-arbpl,
END OF lt_plpo,
l_mapl_plnnr LIKE mapl-plnnr.
determine the routing group#
CLEAR lt_pp04_cache.
chk if its in the cache first, if not then get it from MAPL table
and put it in the cache
READ TABLE lt_pp04_cache WITH KEY matnr = pi_matnr
werks = pi_werks
alnag = pi_alnag.
IF sy-subrc = 0.
do nothing - lt_pp04_cache header line has rtg#
ELSE.
get the routing group # from MAPL
SELECT plnnr INTO l_mapl_plnnr
FROM mapl UP TO 1 ROWS
WHERE matnr = pi_matnr AND
werks = pi_werks AND
plnty = 'R' AND
plnal = pi_alnag AND
loekz = space.
ENDSELECT.
put it in the cache internal table
IF NOT l_mapl_plnnr IS INITIAL.
lt_pp04_cache-matnr = pi_matnr.
lt_pp04_cache-werks = pi_werks.
lt_pp04_cache-alnag = pi_alnag.
lt_pp04_cache-plnnr = l_mapl_plnnr.
APPEND lt_pp04_cache.
ENDIF.
ENDIF.
if the rtg# was determined AND
-- the work center was not determined yet AND
-- work center was really needed for this line in the input file
then
-- read the work center from last PP04 operation on the routing
-- update the cache accordingly
IF NOT lt_pp04_cache-plnnr IS INITIAL AND
lt_pp04_cache-arbpl IS INITIAL AND
( pi_verid IS INITIAL OR
pi_mdv01 IS INITIAL ).
read the last PP04 operation
CLEAR lt_plpo.
REFRESH lt_plpo.
SELECT vornr eobjty eobjid e~arbpl
INTO CORRESPONDING FIELDS OF TABLE lt_plpo
FROM plas AS b
INNER JOIN plpo AS c
ON bplnty = cplnty AND
bplnnr = cplnnr AND
bzaehl = czaehl
INNER JOIN crhd AS e
ON carbid = eobjid
WHERE b~plnty = v_plnty AND
b~plnnr = lt_pp04_cache-plnnr AND
b~plnal = lt_pp04_cache-alnag AND
c~loekz = space AND
c~steus = v_plpo_steus AND
e~objty = v_objty AND
e~werks = lt_pp04_cache-werks AND
e~verwe = v_verwe.
SORT lt_plpo BY vornr DESCENDING.
READ TABLE lt_plpo INDEX 1.
IF NOT lt_plpo-arbpl IS INITIAL.
lt_pp04_cache-arbpl = lt_plpo-arbpl.
read work center description
SELECT SINGLE ktext INTO lt_pp04_cache-ktext
FROM crtx WHERE objty = lt_plpo-objty AND
objid = lt_plpo-objid AND
spras = sy-langu.
the following read will get the index of the correct record to be
updated in the cache
READ TABLE lt_pp04_cache
WITH KEY matnr = pi_matnr
werks = pi_werks
alnag = pi_alnag.
MODIFY lt_pp04_cache
INDEX sy-tabix
TRANSPORTING arbpl ktext.
ENDIF.
ENDIF.
*ENDFORM. " read_last_pp04_operation_cache
*& Form read_routing
form read_routing.
data: begin of lt_mapl occurs 0,
plnnr like mapl-plnnr,
plnal like mapl-plnal,
end of lt_mapl,
l_arbpl like crhd-arbpl.
get all the rtg# and grp ctr# from MAPL
select plnnr plnal
into corresponding fields of table lt_mapl
from mapl
where matnr = v_matnr and
werks = itab_xcel-werks and
plnty = v_plnty and "Rate Routing
loekz = space. "with del flag = OFF
sort lt_mapl by plnal.
if not itab_xcel-verid is initial.
if the verid=0001 then use the 1st good rtg-grp# and grp-ctr#
if itab_xcel-verid = '0001'.
read table lt_mapl index 1.
v_plnnr = lt_mapl-plnnr.
v_plnal = lt_mapl-plnal.
else.
if the verid<>0001 then use the rtg-grp# and grp-ctr# of the routing
whose work center on the last PP04 operation matches the given verid
loop at lt_mapl.
clear l_arbpl.
get the work center from the last PP04 operation
perform read_wc_on_last_pp04 using lt_mapl-plnnr
lt_mapl-plnal
changing l_arbpl.
if itab_xcel-verid = l_arbpl.
v_plnnr = lt_mapl-plnnr.
v_plnal = lt_mapl-plnal.
exit.
endif.
endloop.
endif.
else.
do nothing
endif.
For version IDs that are other then '0000' or 'ZWIP' :--
if itab_xcel-verid NE '0000' and
itab_xcel-verid NE 'ZWIP'.
if routing group# or group counter was not determined, make the
valid-to date 99/99/9999 so that the BDC, on execution, errors out.
if v_plnnr is initial or
v_plnal is initial.
itab_xcel-bdatu = '99/99/9999'.
endif.
endif.
determine the routing group#
CLEAR lt_pp04_cache.
chk if its in the cache first, if not then get it from MAPL table
and put it in the cache
READ TABLE lt_pp04_cache WITH KEY matnr = pi_matnr
werks = pi_werks
alnag = pi_alnag.
IF sy-subrc = 0.
do nothing - lt_pp04_cache header line has rtg#
ELSE.
get the routing group # from MAPL
put it in the cache internal table
IF NOT l_mapl_plnnr IS INITIAL.
lt_pp04_cache-matnr = pi_matnr.
lt_pp04_cache-werks = pi_werks.
lt_pp04_cache-alnag = pi_alnag.
lt_pp04_cache-plnnr = l_mapl_plnnr.
APPEND lt_pp04_cache.
ENDIF.
ENDIF.
if the rtg# was determined AND
-- the work center was not determined yet AND
-- work center was really needed for this line in the input file
then
-- read the work center from last PP04 operation on the routing
-- update the cache accordingly
IF NOT lt_pp04_cache-plnnr IS INITIAL AND
lt_pp04_cache-arbpl IS INITIAL AND
( pi_verid IS INITIAL OR
pi_mdv01 IS INITIAL ).
read the last PP04 operation
CLEAR lt_plpo.
REFRESH lt_plpo.
SELECT vornr eobjty eobjid e~arbpl
INTO CORRESPONDING FIELDS OF TABLE lt_plpo
FROM plas AS b
INNER JOIN plpo AS c
ON bplnty = cplnty AND
bplnnr = cplnnr AND
bzaehl = czaehl
INNER JOIN crhd AS e
ON carbid = eobjid
WHERE b~plnty = v_plnty AND
b~plnnr = lt_pp04_cache-plnnr AND
b~plnal = lt_pp04_cache-alnag AND
c~loekz = space AND
c~steus = v_plpo_steus AND
e~objty = v_objty AND
e~werks = lt_pp04_cache-werks AND
e~verwe = v_verwe.
SORT lt_plpo BY vornr DESCENDING.
READ TABLE lt_plpo INDEX 1.
IF NOT lt_plpo-arbpl IS INITIAL.
lt_pp04_cache-arbpl = lt_plpo-arbpl.
read work center description
SELECT SINGLE ktext INTO lt_pp04_cache-ktext
FROM crtx WHERE objty = lt_plpo-objty AND
objid = lt_plpo-objid AND
spras = sy-langu.
the following read will get the index of the correct record to be
updated in the cache
READ TABLE lt_pp04_cache
WITH KEY matnr = pi_matnr
werks = pi_werks
alnag = pi_alnag.
MODIFY lt_pp04_cache
INDEX sy-tabix
TRANSPORTING arbpl ktext.
ENDIF.
ENDIF.
endform. " read_last_pp04_operation_cache
*& Form read_wc_on_last_pp04
form read_wc_on_last_pp04 using pi_plnnr
pi_plnal
changing pe_arbpl.
data: begin of lt_plpo occurs 0,
vornr like plpo-vornr,
objty like crhd-objty,
objid like crhd-objid,
arbpl like crhd-arbpl,
end of lt_plpo.
get all the PP04 operations for the given rtg# & grp-ctr#
select vornr eobjty eobjid e~arbpl
into corresponding fields of table lt_plpo
from plas as b
inner join plpo as c
on bplnty = cplnty and
bplnnr = cplnnr and
bzaehl = czaehl
inner join crhd as e
on carbid = eobjid
where b~plnty = v_plnty and "Rate Routing
b~plnnr = pi_plnnr and
b~plnal = pi_plnal and
c~loekz = space and "Oper Del Flag = OFF
c~steus = v_plpo_steus and "PP04
e~objty = v_objty. "WC Obj Type = 'A'
read the last operation
sort lt_plpo by vornr descending.
read table lt_plpo index 1.
pe_arbpl = lt_plpo-arbpl.
endform.
Reward Points if useful
Raghunath.S
9986076729 -
Missing DTOs in Client JAR Using Appc
Hello,
I've been running Appc on my server JAR to generate my client JAR. It works great,
except that some of the files utilized by the application, namely the DTOs, are
not being packaged into the JAR. I think I know why this is occurring, but I'm
not sure how to fix it. Let me explain how a simplified version of the app works:
It's a security administration app, so there's this idea of users and their roles.
The only remote bean in the JAR is a stateless session bean. It has the following
methods:
public UserDTO getUser(String pUserId);
public List getRolesForUser(String pUserId);
public void updateUser(UserDTO pUser);
public void replaceRolesForUser(List pRoles);
Simple enough, right? The Appc process knows to place the UserDTO class in the
client JAR since it is referenced in the interface. However, what the Appc process
does not realize is that the List of roles being returned is actually a List of
RoleDTOs.
The calling client application uses the RoleDTO class when iterating through the
list of roles. Since the client application is a remote application and thus
has only the client EJB JAR in its classpath, the client app can't compile; it
can't find a definition for RoleDTO. Is there some way to force the Appc process
to include all DTOs?
Thanks,
LeoThanks. That's what I thought!
Rob Woollen <[email protected]> wrote:
Your analysis is correct. There's no real clean solution in this case
other than returning a RoleDTO[] or updating the client-jar file with
the missing classes.
-- Rob
Leo J. Hart IV wrote:
Hello,
I've been running Appc on my server JAR to generate my client JAR.It works great,
except that some of the files utilized by the application, namely theDTOs, are
not being packaged into the JAR. I think I know why this is occurring,but I'm
not sure how to fix it. Let me explain how a simplified version ofthe app works:
It's a security administration app, so there's this idea of users andtheir roles.
The only remote bean in the JAR is a stateless session bean. It hasthe following
methods:
public UserDTO getUser(String pUserId);
public List getRolesForUser(String pUserId);
public void updateUser(UserDTO pUser);
public void replaceRolesForUser(List pRoles);
Simple enough, right? The Appc process knows to place the UserDTOclass in the
client JAR since it is referenced in the interface. However, whatthe Appc process
does not realize is that the List of roles being returned is actuallya List of
RoleDTOs.
The calling client application uses the RoleDTO class when iteratingthrough the
list of roles. Since the client application is a remote applicationand thus
has only the client EJB JAR in its classpath, the client app can'tcompile; it
can't find a definition for RoleDTO. Is there some way to force theAppc process
to include all DTOs?
Thanks,
Leo -
Just trying out my new mac but email won't load, error says "The mail server denied access to the account because an administrator or other mail client was using it when Mail tried to log in. Try again later." A little lock is beside the email inbox account, no password prompted and account is online and enabled... Thoughts?
Have you tried clicking on the lock to see it it will then ask for a passwored. Otherwise, try reblooting.
Maybe you are looking for
-
Maintain hierarchy data in R/3
Hello experts, How to maitain hierarchy data in R/3. Any pointerts will be appreciated. Thanks Konda Reddy
-
Hi, I'm playing a little bit with the trial version of Numbers, just to see if my good old Ti is still capable to run it properly before buying a full license of iWorks. By the way, it seems like there's some kind of round-off error. Try to build a s
-
Front Row .mov - audio only
Hi guys, i've been trying to watch some .MOV files in Front Row and it has issues with some only playing audio. As far as i can deduce, with basically nil knowledge about computing, the common theme with files played in Front Row, playing audio only,
-
Please put a cost object with valid JV data for GL accoutnt (line 001)
Dear All, When the user is trying to post ASKBN, They are getting an error saying "Please put a cost object with valid JV data for GL accoutnt (line 001)" So we tried to look up the error, and the WBS, Cost center, profit center and JVA details are a
-
E72 Deleted all messages and now backup wont resto...
Hello there - I am in such a mood and want my problem resolved so much that I will pay anyone that helps Basically on E72, I had messages in inbox, my folders and sent section. Once I restarted phone and then phone froze. I felt the problem was due t