Workflow Design Question
I am starting to design/develop a workflow based solution that follows the following pattern
a) User submits a form, say Invoice
b) Based on the region, BU the invoice gets routed to different groups of people (Level 1)
c) Level 1 may need more information and may have to send it to Supervisors (Level 2). The Level 1 person will not know who the specific Supervisor person or group is. So, the system will have to route to specific group based on some content. Otherwise skip to e)
d) Level 2 will return the task back to Level 1 with info or complete it by themselves
e) System sends the task for approval based on some lookup in an ERP. if the system does not find the approval person's info, it needs to route it to Level 3 (Exception)
d) Level 3 group may assign the task directly to a person/group in an ad-hoc basis
Can I accomplish this in 1 WF task? If so what pattern i would use ? I can accomplish this using 4-5 different task, but that creates more complexity in the process and also reduces visibility of the task as it moves through the process.
Any ideas ?
IMHO: You can not implement this in one single human-workflow defintion. I advise to implement this in various HW's in combincation with BPEL as wofklow-orchestrator.
Marc
http://orasoa.blogspot.com
Similar Messages
-
Workflow design questions: FM vs WF to call FM
Hereu2019s a couple of workflow design questions.
1. We have Workitem 123 that allow user to navigate to a custom transaction TX1. User can make changes in TX1. At save or at user command of TX1, the program will call a FM (FM1) to delete WI 123 and create a new WI to send to a different agent.
Since Workitem 123 is still open and lock, the FM1 cannot delete it immediately, it has to use a DO loop to check if the Workitem 123 is dequeued before performing the WI delete.
Alternative: instead of calling the FM1, the program can raise an event which calls a new workflow, which has 1 step/task/new method which call the FM1. Even with this alternative, the Workitem 123 can still be locked when the new workflowu2019s task/method calls the FM1.
I do not like the alternative, which calls the same FM1 indirectly via a new workflow/step/task/method.
2. When an application object changes, the user exit will call a FMx which is related to workflow. The ABAP developer do not want to call the FMx directly, she wants to raise an event which call a workflow .. step .. task .. method .. FMx indirectly. This way any commit that happens in the FMx will not affect the application objectu2019s COMMIT.
My recommendation is to call the FMx using u2018in Update tasku2019 so that the FMx is only called after the COMMIT of the application object.
Any recommendation?
AmyMike,
Yes, in my first design, the TX can 1. raise a terminating event for the existing workitem/workflow and then 2. raise another event to call another workflow. Both 1 and 2 will be in FM1.
Then the design question is: Should the FM1 be called from TX directly or should the TX raise an event to call a new workflow which has 1 step/task, which calls a method in the Business object, and the method calls the FM1?
In my second design question, when an application object changes, the user exit will call a FMx which is related to workflow. The ABAP developer do not want to call the FMx directly, she wants to raise an event which call a workflow, which has 1 step/task, which calls a method, which calls the FMx indirectly. This way any commit that happens in the FMx will not affect the application objectu2019s COMMIT.
My recommendation is either call the FMx using u2018in Update tasku2019 so that the FMx is only called after the COMMIT of the application object or raise an event to call a receiver FM (FMx).
Thanks.
Amy -
Hint: Start a Java Console Window to diagnose problems in Workflow Designer
Hello -
A trick you can use to try and identify problem you are having using the Workflow deisgner is to turn on the JavaConsole for the designer session. On windows you can do this by modifying the shortcut to start designer. Add the following parameter to the end of the path:
"c:\wf\adobe_livecycle_workflow_7_0_designer.exe" -is:javaconsole
Note the Quotes around the path, and the parameter after the quotes.
This will open a console window along with workflow designer - any exceptions thrown will print a stack trace here (as well as any System.out lines you use in a QPac Dialog etc.) I would recommend using this option all the time as it may help diagnose issues.
In the case if mis-matched versions on the server and client you can expecct errors like "InAuthenticPrincipalException", "InvalidClassException" or SerialVersionUID mis-match.
Hope this helps,
WillI have created two projects, one by Java and the
other one by VC++. Now I want to start the VC++ app,
which is a console app, in the Java program. I tried
using "Runtime.getRuntime().exec(path of VC app)",
but it doesn't work. Even I found with this way, the
Window cmd line cannot be started either. Coz this VC
app is console based, I suspect if there are some
restrictions on the Window Console App to be called
by this Runtime class. Could anybody here help me
with that? Thanks a lot!No. There often seems to be some confusion about how the exec methods work and the restrictions since it is coming from Java.
Let me clear that up.
That is 100% rubbish.
When runtime exec "doesn't work" it means that you have not used it correctly or understand the environment in which it is running or a a myriad of other confusions. But this question gets asked alot and about one point I cannot be more clear. There is NOTHING special happening because it is Java. Windows or Linux or whatever you are running is NOT saying "Well I won't run that program run because it is Java and I hate it. Ha ha!"
No. What it means when it "doesn't work" is that either the OS is saying "what they hell did you just say?" or because the OS says "okay" and does something that you didn't expect.
At any rate please read the following article that has helped many before you http://www.javaworld.com/javaworld/jw-12-2000/jw-1229-traps.html -
Design question: Scheduling a Variable-timeslot Resource
I originally posted this in general java programming, because this seemed like a more high-level design descussion. But now I see some class design questions. Please excuse me if this thread does not belong here (this is my first time using the forum, save answering a couple questions).
Forum,
I am having trouble determining a data structure and applicable algorithm (actually, even more general than the data structure -- the general design to use) for holding a modifiable (but more heavily read/queried than updated), variable-timeslot schedule for a given resource. Here's the situation:
Let's, for explanation purposes, say we're scheduling a school. The school has many resources. A resource is anything that can be reserved for a given event: classroom, gym, basketball, teacher, janitor, etc.
Ok, so maybe the school deal isn't the best example. Let's assume, for the sake of explanation, that classes can be any amount of time in length: 50 minutes, 127 minutes, 4 hours, 3 seconds, etc.
Now, the school has a base operation schedule, e.g. they're open from 8am to 5pm MTWRF and 10am to 2pm on saturday and sunday. Events in the school can only occur during these times, obviously.
Then, each resource has its own base operation schedule, e.g. the gym is open from noon to 5pm MTWRF and noon to 2pm on sat. and sun. The default base operation schedule for any resource is the school which "owns" the resource.
But then there are exceptions to the base operation schedule. The school (and therefore all its resources) are closed on holidays. The gym is closed on the third friday of every month for maintenance, or something like that. There are also exceptions to the available schedule due to reservations. I've implemented reservations as exceptions with a different status code to simplify things a little bit: because the basic idea is that an exception is either an addition to or removal from the scheduleable times of that resource. Each exception (reservation, closed for maintenance, etc) can be an (effectively) unrestricted amount of time.
Ok, enough set up. Somehow I need to be able to "flatten" all this information into a schedule that I can display to the user, query against, and update.
The issue is complicated more by recurring events, but I think I have that handled already and can make a recurring event be transparent from the application point of view. I just need to figure out how to represent this.
This is my current idea, and I don't like it at all:
A TimeSlot object, holding a beginning date and ending date. A data structure that holds list of TimeSlot objects in order by date. I'd probably also hold an index of some sort that maps some constant span of time to a general area in the data structure where times around there can be found, so I avoid O(n) time searching for a given time to find whether or not it is open.
I don't like this idea, because it requires me to call getBeginningDate() and getEndDate() for every single time slot I search.
Anyone have any ideas?If I am correct, your requirement is to display a schedule, showing the occupancy of a resource (open/closed/used/free and other kind of information) on a time line.
I do not say that your design is incorrect. What I state below is strictly my views and should be treated that way.
I would not go by time-slot, instead, I would go by resource, for instance the gym, the class rooms (identified accordingly), the swimming pool etc. are all resources. Therefore (for the requirements you have specified), I would create a class, lets say "Resource" to represent all the resources. I would recommend two attributes at this stage ("name" & "identifier").
The primary attribute of interest in this case would be a date (starting at 00:00hrs and ending at 24:00hrs.), a span of 24hrs broken to the smallest unit of a minute (seconds really are not very practical here).
I would next encapsulate the availability factor, which represents the concept of availability in a class, for instance "AvailabilityStatus". The recommended attributes would be "date" and "status".
You have mentioned different status, for instance, available, booked, closed, under-maintainance etc. Each of these is a category. Let us say, numbered from 0 to n (where n<128).
The "date" attribute could be a java.util.Date object, representing a date. The "status", is byte array of 1440 elements (one element for each minute of the day). Each element of the byte array is populated by the number designation of the status (i.e, 0,1,2...n etc.), where the numbers represent the status of the minute.
The "Resource" class would carry an attribute of "resourceStatus", an ordered vector of "ResourceStatus" objects.
The object (all the objects) could be populated manually at any time, or the entire process could be automated (that is a separate area).
The problem of representation is over. You could add any number of resources as well as any number of status categories.
This is a simple solution, I do not address the issues of querying this information and rendering the actual schedule, which I believe is straight forward enough.
It is recognized that there are scope for optimizations/design rationalization here, however, this is a simple and effective enough solution.
regards
[email protected] -
Urgent Help needed in loggin to Workflow designer
Hi there,
I have a written a program from which a workflow get triggered automatically. The programs runs file in my machine. When i deploy it in my server machine it doesn't work. The server machine has a sandbox installed. But my machine doesn't have a sandbox. I have installed all tools separately in my machine.
When i run my application in the server machine the following error comes:
java.lang.reflect.UndeclaredThrowableException
at $Proxy1.login(Unknown Source)
at com.adobe.workflow.client.QLCSessionImpl.login(QLCSessionImpl.java:11
6)
at TriggerWorkflow.main(TriggerWorkflow.java:50)
Caused by: java.io.InvalidObjectException: inauthentic principal assertion
at com.adobe.idp.Context.getValidatedAuthResultFromAssertion(Unknown Sou
rce)
at com.adobe.idp.Context.readResolve(Unknown Source)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
sorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:324)
at java.io.ObjectStreamClass.invokeReadResolve(ObjectStreamClass.java:92
5)
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1
655)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1274)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:324)
at java.rmi.MarshalledObject.get(MarshalledObject.java:135)
at org.jboss.invocation.jrmp.interfaces.JRMPInvokerProxy.invoke(JRMPInvo
kerProxy.java:136)
at org.jboss.invocation.MarshallingInvokerInterceptor.invoke(Marshalling
InvokerInterceptor.java:67)
at org.jboss.proxy.TransactionInterceptor.invoke(TransactionInterceptor.
java:46)
at org.jboss.proxy.SecurityInterceptor.invoke(SecurityInterceptor.java:5
3)
at org.jboss.proxy.ejb.StatelessSessionInterceptor.invoke(StatelessSessi
onInterceptor.java:100)
at org.jboss.proxy.ClientContainer.invoke(ClientContainer.java:85)
... 3 more
com.adobe.workflow.client.QLCException: Login failed, or you do not have permiss
ions to login to this application
at com.adobe.workflow.client.QLCSessionImpl.login(QLCSessionImpl.java:12
6)
at TriggerWorkflow.main(TriggerWorkflow.java:50)
I am seriously bugged by this error. I am giving the correct user name and password but still the error comes. I dont know how to solve this. This might be some small settings change. But i am not sure. Also when i try to connect the workflow designer through Eclispe in that server machine, even there the login failure message still comes.
Can anyone please advise on this as it is very urgent.
SurajHi Suraj
Since you're getting this with Workflow Designer as well as your code, it doesn't look like it's anything with your code.
It looks very much to me like you're specifying an invalid username and/or password.
- Can you log into fm or adminui using the same username and password?
- Can you log in to either Workflow Designer or your custom application using a different username and password?
- Does your username or password contain non-USAscii characters?
One thing I have seen is where there is a user in LDAP whose login name is "administrator". This can conflict with the LiveCycle local "administrator" account, and prevent you from logging in.
I hope this is of some help...
Howard
http://www.avoka.com -
LDAP design question for multiple sites
LDAP design question for multiple sites
I'm planning to implement the Sun Java System Directory Server 5.2 2005Q1 for replacing the NIS.
Currently we have 3 sites with different NIS domains.
Since the NFS over the WAN connection is very unreliable, I would like to implement as follows:
1. 3 LDAP servers + replica for each sites.
2. Single username and password for every end user cross those 3 sites.
3. Different auto_master, auto_home and auto_local maps for three sites. So when user login to different site, the password is the same but the home directory is different (local).
So the questions are
1. Should I need to have 3 domains for LDAP?
2. If yes for question 1, then how can I keep the username password sync for three domains? If no for question 1, then what is the DIT (Directory Infrastructure Tree) or directory structure I should use?
3. How to make auto map work on LDAP as well as mount local home directory?
I really appreciate that some LDAP experta can light me up on this project.Thanks for your information.
My current environment has 3 sites with 3 different NIS domainname: SiteA: A.com, SiteB:B.A.com, SiteC:C.A.com (A.com is our company domainname).
So everytime I add a new user account and I need to create on three NIS domains separately. Also, the password is out of sync if user change the password on one site.
I would like to migrate NIS to LDAP.
I want to have single username and password for each user on 3 sites. However, the home directory is on local NFS filer.
Say for userA, his home directory is /user/userA in passwd file/map. On location X, his home directory will mount FilerX:/vol/user/userA,
On location Y, userA's home directory will mount FilerY:/vol/user/userA.
So the mount drive is determined by auto_user map in NIS.
In other words, there will be 3 different auto_user maps in 3 different LDAP servers.
So userA login hostX in location X will mount home directory on local FilerX, and login hostY in location Y will mount home directory on local FilerY.
But the username and password will be the same on three sites.
That'd my goal.
Some LDAP expert suggest me the MMR (Multiple-Master-Replication). But I still no quite sure how to do MMR.
It would be appreciated if some LDAP guru can give me some guideline at start point.
Best wishes -
Design question for database connection in multithreaded socket-server
Dear community,
I am programming a multithreaded socket server. The server creates a new thread for each connection.
The threads and several objects witch are instanced by each thread have to access database-connectivity. Therefore I implemented factory class which administer database connection in a pool. At this point I have a design question.
How should I access the connections from the threads? There are two options:
a) Should I implement in my server class a new method like "getDatabaseConnection" which calls the factory class and returns a pooled connection to the database? In this case each object has to know the server-object and have to call this method in order to get a database connection. That could become very complex as I have to safe a instance of the server object in each object ...
b) Should I develop a static method in my factory class so that each thread could get a database connection by calling the static method of the factory?
Thank you very much for your answer!
Kind regards,
Dak
Message was edited by:
dakgerSo your suggestion is to use a static method from a
central class. But those static-methods are not realy
object oriented, are they?There's only one static method, and that's getInstance
If I use singleton pattern, I only create one
instance of the database pooling class in order to
cionfigure it (driver, access data to database and so
on). The threads use than a static method of this
class to get database connection?They use a static method to get the pool instance, getConnection is not static.
Kaj -
Workflow Designer: template url problem
Hi all,
I successfully installed:
Forms/Form Manger 7.0.1 on w2k3_box1;
Workflow Server 7.0.1 on w2k3_box2;
Using:
Jboss 3.2.5,
MSS 2K,
JDK 1.4.2_11
with manual options. Adminui appears fine, FormsIVS appears fine.
In Workflow Desginer, I tried to define a new workflow. In initform, when I clicked on "browse" botton next to "template url" field, I got error msg:
com.adobe.appstore.AppstoreException
Can anyone give a clue of how to resolve it? I have uploaded a test form into forms repository, and trying to refer to it in the workflow designer.
Thanks!
Scott JiangHi all,<br /><br />Thanks for the response. I have tried WF designer on both client and WF server side. Same result. <br /><br />If anyone can point me to the documention where it says Form Manager and Workflow have to be installed in the same box that's great. I'm told to install them on separate boxes because version 6, has been done in that way, and due to transaction volume we'd like to install them separately. Has any customer done in this kind of configuration? <br />BTW, I already checked "Integrating LiveCycle Products" doc.<br /><br />There is the log from java console. Seems like JNDI lookup failed on the client side code when I click the "template url" button.<br />===================================================================<br />com.adobe.appstore.AppstoreFactoryException: com.adobe.appstore.AppstoreException<br /> at com.adobe.ebxml.registry.appstore.AppstoreFactory.getAppstore(Unknown<br /> Source)<br /> at com.adobe.workflow.saf.SAFApplication.getAppstore(SAFApplication.java<br />:827)<br /> at com.adobe.workflow.saf.SAFApplication.browseAppstore(SAFApplication.j<br />ava:837)<br /> at com.adobe.workflow.tools.processdesigner.JUrlCellEditor$1.actionPerfo<br />rmed(JUrlCellEditor.java:104)<br /> at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)<br /> at javax.swing.AbstractButton$ForwardActionEvents.actionPerformed(Unknow<br />n Source)<br /> at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)<br /> at javax.swing.DefaultButtonModel.setPressed(Unknown Source)<br /> at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Sour<br />ce)<br /> at java.awt.Component.processMouseEvent(Unknown Source)<br /> at java.awt.Component.processEvent(Unknown Source)<br /> at java.awt.Container.processEvent(Unknown Source)<br /> at java.awt.Component.dispatchEventImpl(Unknown Source)<br /> at java.awt.Container.dispatchEventImpl(Unknown Source)<br /> at java.awt.Component.dispatchEvent(Unknown Source)<br /> at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)<br /> at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)<br /> at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)<br /> at java.awt.Container.dispatchEventImpl(Unknown Source)<br /> at java.awt.Window.dispatchEventImpl(Unknown Source)<br /> at java.awt.Component.dispatchEvent(Unknown Source)<br /> at java.awt.EventQueue.dispatchEvent(Unknown Source)<br /> at java.awt.EventDispatchThread.pumpOneEventForHierarchy(Unknown Source)<br /><br /> at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)<br /> at java.awt.EventDispatchThread.pumpEvents(Unknown Source)<br /> at java.awt.EventDispatchThread.pumpEvents(Unknown Source)<br /> at java.awt.EventDispatchThread.run(Unknown Source)<br />Caused by: com.adobe.appstore.AppstoreException<br /> at com.adobe.ebxml.registry.appstore.AppstoreDelegate.lookup(Unknown Sou<br />rce)<br /> at com.adobe.ebxml.registry.appstore.AppstoreDelegate.<init>(Unknown Sou<br />rce)<br /> ... 27 more<br />Caused by: javax.naming.NameNotFoundException: com not bound<br /> at org.jnp.server.NamingServer.getBinding(NamingServer.java:495)<br /> at org.jnp.server.NamingServer.getBinding(NamingServer.java:503)<br /> at org.jnp.server.NamingServer.getObject(NamingServer.java:509)<br /> at org.jnp.server.NamingServer.lookup(NamingServer.java:253)<br /> at sun.reflect.GeneratedMethodAccessor163.invoke(Unknown Source)<br /> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces<br />sorImpl.java:25)<br /> at java.lang.reflect.Method.invoke(Method.java:324)<br /> at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:261)<br /> at sun.rmi.transport.Transport$1.run(Transport.java:148)<br /> at java.security.AccessController.doPrivileged(Native Method)<br /> at sun.rmi.transport.Transport.serviceCall(Transport.java:144)<br /> at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:4<br />60)<br /> at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport<br />.java:701)<br /> at java.lang.Thread.run(Thread.java:534)<br /> at sun.rmi.transport.StreamRemoteCall.exceptionReceivedFromServer(Unknow<br />n Source)<br /> at sun.rmi.transport.StreamRemoteCall.executeCall(Unknown Source)<br /> at sun.rmi.server.UnicastRef.invoke(Unknown Source)<br /> at org.jnp.server.NamingServer_Stub.lookup(Unknown Source)<br /> at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:530)<br /> at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:509)<br /> at javax.naming.InitialContext.lookup(Unknown Source)<br /> ... 29 more
-
Problem logging into Workflow Designer
Hi,
here is my problem. Workflow 7.0 is installed on W2k3 EE (with Forms and Form Manager) via turnkey installation ( and is on Jboss of course). I've got four other computers in domain. All with XP. And only from one i can login into Workflow Designer. All computers has access to server (with workflow installed), and to server with AD. Workflow is integrated with LDAP (i see new users added in AD after synchronization). And the problem is: that i can log into workflow designer only from one computer. And on all users that have process developer rights i can also log (on that one and only computer). On all other computers i got the following error:
java.lang.reflect.UndeclaredThrowableException
at $Proxy1.login(Unknown Source)
at com.adobe.workflow.client.QLCSessionImpl.login(QLCSessionImpl.java:116)
at com.adobe.workflow.saf.SAFLoginDialog$3.run(SAFLoginDialog.java:122)
Caused by: java.io.InvalidObjectException: inauthentic principal assertion
at com.adobe.idp.Context.getValidatedAuthResultFromAssertion(Context.java:291)
at com.adobe.idp.Context.readResolve(Context.java:246)
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 java.rmi.MarshalledObject.get(Unknown Source)
at org.jboss.invocation.jrmp.interfaces.JRMPInvokerProxy.invoke(JRMPInvokerProxy.java:136)
at org.jboss.invocation.MarshallingInvokerInterceptor.invoke(MarshallingInvokerInterceptor.j ava:67)
at org.jboss.proxy.TransactionInterceptor.invoke(TransactionInterceptor.java:46)
at org.jboss.proxy.SecurityInterceptor.invoke(SecurityInterceptor.java:53)
at org.jboss.proxy.ejb.StatelessSessionInterceptor.invoke(StatelessSessionInterceptor.java:1 00)
at org.jboss.proxy.ClientContainer.invoke(ClientContainer.java:85)
... 3 more
com.adobe.workflow.client.QLCException: Login failed, or you do not have permissions to login to this application
at com.adobe.workflow.client.QLCSessionImpl.login(QLCSessionImpl.java:126)
at com.adobe.workflow.saf.SAFLoginDialog$3.run(SAFLoginDialog.java:122)
I've tryied reinstalling system, jdk, workflow designer and nothing helped.
Maybe someone has any clue.
RegardsHi,
Howard's first post:
1 - i can't log as administrator/password from any other machine than my
2 - all the machines can ping server by name and by ip
3 - i don't know anything about that patch (so didn't install)
4 - yes
5 - yes, they are identical
Howard's second post:
that is from where i took the error message
Mr. Style's post:
i compared the size of workflow designer on my machine and on other and
EUREKA, they are different, also i got some extra directories in workflow designer directory (but this is because of using janel trick), so i copy all extra directories and workflow designer exe to other machines and now it's working.
Thank You Mr. Styles.
ps. still don't know how to check workflow designer version and from where i got different version on my machines (i was sure that i installed from one archive) -
Hi All,
We are currently working with SOA Suite 11.1.1.4. I have a SOA application requirement to receive real-time feed for six data tables from an external third party. The implementation consists of five one-way operations in the WSDL to populate the six database tables.
I have a design question. The organization plans to use this data across various departments which requires to replicate or supply the data to other internal databases.
In my understanding there are two options
1) Within the SOA application fork the data hitting the web-service to different databases.
My concern with this approach is what if organizations keep coming with such requests and I keep forking and supplying multiple internal databases with the same data. This feed has to be real-time, too much forking with impact the performance and create unwanted dependencies for this critical link for data supply.2) I could tell other internal projects to get the data from the populated main database.
My concern here is that firstly the data is pushed into this database flat without any constraints and it is difficult to query to get specific data. This design has been purposely put in place to facilitate real-time performance.Also asking every internal projects to get data from main database will affect its performance.
Please suggest which approach should I take (advantage/disadvantage. Apart from the above two solutions, is there any other recommended solution to mitigate the risks. This link between our organization and external party is somewhat like a lifeline for BAU, so certainly don't want to create more dependencies and overhead.
ThanksI had tried implementing the JMS publisher/subscriber pattern before, unfortunately I experienced performance was not so good compared to the directly writing to the db adapter. I feel the organization SOA infrastructure is not setup correctly to cope with the number of messages coming through from external third party. Our current setup consists of three WebLogic Servers (Admin, SOA, BAM) all running on only 8GB physical RAM on one machine. Is there Oracle guideline for setting up infrastructure for a SOA application receiving roughly 600000 messages a day. I am using SOA 11.1.1.4. JMS publisher/subscriber pattern just does not cope and I see significant performance lag after few hours of running. The JMS server used was WebLogic JMS
Thanks
Edited by: user5108636 on Jun 13, 2011 4:19 PM
Edited by: user5108636 on Jun 13, 2011 7:03 PM -
LiveCycle Workflow Designer 7.1
I have successfully installed:
Adobe Live Cycle Form Manager 7.02
Adobe Live Cycle WorkFlow 7.0
Adobe Live Cycle Reader Extensions
They are installed on the server. I installed:
Adobe Live Cycle WorkFlow 7.0 Designer
It is on my workstation. This is sometimes connected to the
server and most of the time it is not. I can not login to the
Adobe Live Cycle WorkFlow 7.0 Designer on the workstation.
I have tried to login as Administrator, password but, it does
not allow me to sign in.
How do I set privliges for the Adobe Live Cycle WorkFlow 7.0
Designer on the workstation?
What do I need to use the Adobe Live Cycle WorkFlow 7.0
Designer by itself on the workstation?
Can Workflow Designer run dis-connected from the server?
Sincerely,
Frank Burns
Consultant
RockwellCollins/Cedar Rapids
(319) 295-9486Hello -
It is entirely possible that you have a version mis-match on the client and the server you are pointed to. The 'context' object which identifies a logged in user must be of the exact same version in the client and server software.
A trick you can use to try and identify problem you are having using the Workflow deisgner is to turn on the JavaConsole for the designer session. On windows you can do this by modifying the shortcut to start designer. Add the following parameter to the end of the path:
"c:\wf\adobe_livecycle_workflow_7_0_designer.exe" -is:javaconsole
Note the Quotes around the path, and the parameter after the quotes.
This will open a console window along with workflow designer - any exceptions thrown will print a stack trace here (as well as any System.out lines you use in a QPac Dialog etc.) I would recommend using this option all the time as it may help diagnose issues.
In the case if mis-matched versions on the server and client you can expecct errors like "InAuthenticPrincipalException", "InvalidClassException" or SerialVersionUID mis-match.
Hope this helps,
Will -
Method design question...and passing object as parameter to webserice
I am new to webservice...one design question
i am writing a webservice to check whether a user is valid user or not. The users are categorized as Member, Admin and Professional. For each user type I have to hit different data source to verify.
I can get this user type as parameter. What is the best approach to define the method?
Having one single method �isValidUser � and all the client web service can always call this method and provide user type or should I define method for each type like isValidMember, isValidAdmin ?
One more thing...in future the requirement may change for professional to have more required field in that case the parameter need to have more attribute. But on client side not much change if I have a single isValidUser method...all they have to do is pass additional values
isValidUser(String username, String usertype, String[] userAttributes){
if usertype == member
call member code
else if usertype = professional
call professional code
else if usertype = admin
call admin code
else
throw error
or
isValidMember(String username, String[] userAttributes){
call member code
One last question, can the parameter be passed as object in web service like USER object.First of all, here is my code
CREATE OR REPLACE
TYPE USERCONTEXT AS OBJECT
user_login varchar2,
user_id integer,
CONSTRUCTOR FUNCTION USERCONTEXT (
P_LOGIN IN INTEGER
P_ID_ID IN INTEGER
) RETURN SELF AS RESULT
Either your type wont be compiled or this is not the real code.. -
Aggregation level - design question
Hi, All
we are in BI-IP ( Netweaver 2004s SPS16).
I have a design question for this scenario.
User needs to plan the amounts for a duration (start period and end period), Jan2008 -Dec2008 (001.2008, 012.2008) = 12000.
We need to distribute this to the periods equally. 001.2008 = 1000, 002.2008 =1000 .... 012.2008=1000.
If the user changes the period amounts, it should be reflected back in the duration amount.
Pl suggest the design for the aggregation levels to achieve this.
Thanks in advance.
veluHello Velu,
As the name also goes, creating an "aggregation level" will only result in "aggregation". What your requirement is, is called disaggregation or distribution - this cannot happen automatically - you will either have to use the feature in input queries or use the distribution planning function or create your own planning function using fox/exit. -
Centralized WLC Design Question
Dears,
In my scenario, i am designing CEntralized WLC deployment. I have 30 AP in Buidling X(200 Users) and 20 AP in Buidling Y(150 Users). I am planning to install HA WLC CLuster where Pimary & Secondary WLC will reside in physically different Data Centers A & B.
I have a wireless Design Question and i am not able to get clear answers. Please refer to the attached drawing and answer the following queries:
If Buidling X users want to talk to building Y Users, then how Control & Data Traffic flow will happen between Buidling X & Y. Would all the traffic will go to Primary WLC from Bldg X APs first and then it will be Re Routed back to Buidling Y APs? Can i achieve direct switching between Bldg X&Y APs without going toward WLC?
If Building X & Y Users want to access the internet, how would be traffic flow? Would the traffic from X&Y AP will go tunnel all the traffic towards WLC and then it will be routed to internet gateway?is it possible for Bldg X&Y AP to directly send traffic towards Internet Gateway without going to controllers?
I have planned to put WLC at physically different locations in different DC A & B. Is it recommended to have such a design? What would be the Failver traffic volume if Primary WLC goes down and secondary controller takes over?
My Reason to go for Centralized deployment is that i want to achieve Centralized Authentication with Local Switching. Please give your recommendations and feedback
Regards,
RameezIf Buidling X users want to talk to building Y Users, then how Control & Data Traffic flow will happen between Buidling X & Y. Would all the traffic will go to Primary WLC from Bldg X APs first and then it will be Re Routed back to Buidling Y APs? Can i achieve direct switching between Bldg X&Y APs without going toward WLC?
Traffic flows to the WLC that is the primary for the AP's, then its routed over your network.
If Building X & Y Users want to access the Internet, how would be traffic flow? Would the traffic from X&Y AP will go tunnel all the traffic towards WLC and then it will be routed to Internet gateway?is it possible for Bldg X&Y AP to directly send traffic towards Internet Gateway without going to controllers?
The WLC isn't a router, so you would have to put the Internet traffic an a subnet and route.
I have planned to put WLC at physically different locations in different DC A & B. Is it recommended to have such a design? What would be the Failover traffic volume if Primary WLC goes down and secondary controller takes over?
Like I mentioned... earlier, the two HA WLC has to be on the same layer 2 subnet in order for you to use HA. The guide mentions an Ethernet cable to connect both the HA ports on the WLC.
Thanks,
Scott
Help out other by using the rating system and marking answered questions as "Answered" -
How to handle exception thrown in standard bo method in the workflow design
Hi Experts
how to handle exception thrown from standard bo method in the workflow design. For example, bo BUS2032, METHOD confirm. If the user cancel it, it will throw exception. In the workflow, how to catch this exception and add corresponding steps in the workflow.@jrockman li
Try to implement the logic that what ever you are performing in the BO mehtod in a FM and in the FM you have tab with name EXECPTIONS define the execption in that tab.Now in the BO method you call this FM and if the exception occurs by using RAISE you can raise the exception in the FM and based on the number of exceptions your sy-subrc value will be set
so when sys-subrc is not eq 0 then pass a value back t the workflow container., I think this will work.
a sample Snippet for understanding purpose
CALL FUNCTION 'GUI_DOWNLOAD'
EXPORTING
filename = <path>
filetype = 'ASC'
IMPORTING
filelength = lv_len
TABLES
data_tab = l_txt_tab
EXCEPTIONS
file_write_error = 1 " If this Exception occurs
invalid_type = 2
no_authority = 3
unknown_error = 4
OTHERS = 10.
CASE sy-subrc.
WHEN 1. " SY-SUBRC value will be 1 then,
" Pass or set the value back to the workflow conatiner element
ENDCASE.
Maybe you are looking for
-
Recommended Structure for Large Files
I am working at re-familiarizing myself with Oracle development and management so please forgive my ignorance on some of these topics or questions. I will be working with a client who is planning a large-scale database for what is called "Flow Cytome
-
I need some help with this continuos problem! I can't watch anything and my old video purchases won't download either.
-
What does this mean? I cannot seem to consistently make it happen. Only after a session has been going for a while. Closing the browser and coming back shows everything to be fine. Running on OC4J 903, BC4J from the latest Jdev production 904 oracle.
-
Nothing happens. I get the same screen that tells me to download the computer.
-
Does anyone know how to fix the issue with Flash videos on websites and the lack of sound. For me is only seems to happen on YouTube and ive also updated Flash Player manualy and it hast fixed the problem.