Workflow engines that integrate easily/work well with Spring Web? - spring

I have a Spring MVC web application that I need to introduce workflow into and was wondering if anyone had recommendations on existing products that would integrate well/easily with Spring.
The steps (if that's the term) in any given workflow may or may not involve user interaction - so you could imagine kicking off something like a sign-in workflow that involves the following steps:
- user choosing a login name and password and submitting
- once submitted an email is generated with a confirmation URL
- on click of the confirmation URL the user is asked a few more questions and then the account is enabled
- if URL is not click on in three days a reminder is sent
- if URL is not clicked on after reminder is sent, account is deleted
Admittedly this is a workflow that could be solved without a workflow engine and I'm just using the example to illustrate that the steps involved in the workflows may or may not involve user interaction, have a time element and a concept of branching on certain event.
I had a look at Spring WebFlow and this seems more geared toward putting webpages together in a certain order to achieve a particular flow through the UI as opposed to specifying a persistent workflow.
I had a look at Spring Workflow Extensions but (a)the documentation seemed a bit thin on the ground and (b) its still in incubation state, both of which make me a bit nervous.
Any suggestions?

I've worked with and evaluated a few workflow engine solutions. In general, they end up being so complicated to setup, it ends up being easier to code your workflow by hand. There is one open source project called OS Workflow that looks like it takes this complexity into account, but I haven't had an opportunity to give it a closer look yet. Also it doesn't look like the product is under active development currently.
I've used jBPM on a project, but I found the product to be confusing and not well documented. We ended up only using a very small set of the functionality and we plan on eventually replacing the functionality we're using with something homegrown.
Both frameworks also have Spring support via the Spring Modules project (which also looks to no longer have any development activity).
A quick google search found me this article on popular Java workflow solutions, but I'm not familiar with most of these products.

Related

Create pop-up announcements upon login?

I want to get all of my users to see announcements. As you already know, we can't force everyone to use a dashboard that would have the announcements located in it as outlined here: https://www.powerobjects.com/blog/2011/11/22/adding-announcements-to-the-dashboard-in-crm-2011/. I could add this component to the most frequently-used dashboards, but I'm not going to get complete compliance. Too many people use user-defined dashboards and views. Further, not all of our users use email or other correspondence consistently, so my channels of communication for updates to the system are limited. My best bet was to create a popup upon login containing announcements, akin to the "pending email" warning, which would appear upon login regardless of any other conditions:
I've dug around to try and see where that warning comes from, in hopes of reverse engineering it to build a new component... but I just couldn't figure it out. I've seen options on how to disable or circumvent it, which naturally is the opposite of what I'm trying to do.
Is something like this possible?
Unfortunately this is a missing most wanted piece/feature even today in latest 365 versions.
We are using Web resources in global dashboards to socialize such thing, as announcements are deprecated. We cannot circumvent personal dashboards as default scenario.
We are planning to explore Learning path for this requirement, but that’s not applicable for your version.

How do I create a custom global element/app within CRM Dynamics such that it shows on all pages and can control user navigation?

I need to add a custom element/mini-app/extension to CRM Dynamics sales such that it shows globally on all pages that the user navigates to and also can navigate the users urls when certain events happen.
What options exactly do I have to satisfy the above criteria?
The screenshot below shows a sample area that I need to build the app within as an example.
Id imagine there are many use cases where customizing a global element is worthwhile, especially since custom applications may need to be built.
I understand I can use the Resources to create a SPA such as angular which is running so long as the URL stays at the SPA url. But for our use case, we are looking to allow end users to be able to navigate the CRM using the custom controls. but when something happens in a another subsystem, we need end users who are logged into the CRM to instantly view data that is important to them.
Is this technically possible?
Unfortunately this is not feasible. There are some concepts to show learning path like that. It won’t satisfy your need.
I understand what you need, like a news feed or ad rotator for rolling content but context specific flyout area which is always pinned. There is no OOB option or customization/configuration available for achieving this. You can initiate this concept in Dynamics Ideas.
Like you said there can be a HTML web resource developed & embedded in a dashboard, this is very limited for your requirement.
Edit:
I think you are looking for Channel Integration Framework which will help you to configure third party CTI apps.
In CRM V9, they have introduced a new API call for 'Panel'. This panel loads to the side of the screen, and can display content regardless of where the user moves throughout the entire application. I've played around with it a bit for my own person reasons at work, but it looks to be exactly what you're looking for.
The call is 'Xrm.Panel.loadPanel(URL/WebResource)'
https://learn.microsoft.com/en-us/dynamics365/customer-engagement/developer/clientapi/reference/xrm-panel
However, the feature is currently in development, and should only be used in production at your own risk.

WordPress: What plugin(s) for job form tracking/management system?

Our construction consulting company currently uses an InfoPath/SharePoint job tracking/management system. We want to create a job form tracking platform for use on our site's WordPress backend, and I'm wondering what WordPress plugin(s) can offer this functionality.
All details regarding a job are entered into a form with various subsections, such as "Job Information" and "Architect Details." The platform needs to consist of two primary areas:
A form to enter relevant job details (preferably AJAX-based)
A directory to manage and track the jobs
Can someone point me in the direction of which plugins would be my best options?
To give you an idea of what we're looking for, our current system looks like this:
This could be accomplished with Contact Form 7, a very powerful and versatile AJAX-based contact form plugin, in conjunction with Contact Form DB which stores all contact form submissions in the database and basically allows you to view the database table that contains all the submissions.
Of course this isn't going to be very elegant if you don't have a developer to style it up (especially on the backend), but it will work functionally.
You could also look into integrating your form / contact form with a CRM like SalesForce, but again that will require some developer time.
Gravity Forms is pretty powerful to. But what #ennui states, probably some custom work.

GWT, with multiple clients

I am designing a web application using GWT currently, which is also the first time i am using GWT. I just have a general question about how (or can) GWT handles communications between multilpe clients.
My application needs user to login and has personalized pages for different users, GWT is well able to do all of these. The only problem is user needs to know what other users are doing, a simple example is like Google Talk, when one user is "typing", the other side will be noticed. So i am just wondering if GWT can do this?
As i said this is my first time using GWT, so, if GWT is well able to provide the these user interacting functions, i will go with GWT, otherwise i can make changes when it is not too late.
Thanks!!!
Looking at the example you gave, if user A starts typing, there's no problem sending the "started typing" event to the server. The server would than have to look up who user A is talking with (say, user B), and get the information to B's browser. This is, of course, the trickier part, but there is more than one way to perform the task, as described for instance here.
In summary, if you're OK with passing the requests through the server, I don't see a problem with using GWT as the underlying technology.
What you need is server push/ajax push/comet/many other names. I've summarized the options you have for GWT in a different answer.
For a quick start, check out NGiNX_HTTP_Push_Module - IMHO it's the easiest one to customize to your needs and they provide a nice chat example that should get you started. However, if you also use jQuery or Mootools in your application (for example, for UI effects), you might want to also consider Ajax Push Engine/APE-Project (but remember that jQuery/Mootools might require some tweaking to work with GWT). Those two are my favorites :)

How to go about planning a modular eCommerce web application?

I have been tasked with doing some planning and research for a home grown in house application. Our primary development language is ColdFusion and Flex3, so I wanted to attack this problem with a modular solution, using an MVC framework.
I must mention that I am not a huge ColdFusion developer, but will be one of the architects behind this app (yikes!). I have a few years experience developing ecommerce applications in .NET / PHP / ASP, but never on this type of scale.
The overall goal is to build a module based applciation that we can roll out and 'add' modules for functionality, so as not to lock ourselves in a certain direction.
The system requires two key things:
Functionality must be a 'drop and go' type, so that if the eCommerce application requires functionality like paypal processing, we drop in the paypal module, and bam it is an option at checkout, etc;
Ability to handle multiple brands (we have a few markets we serve, and each market has its own brand).
Ok enough background...
My key concerns are, how should I start? I am looking at using a ColdFusion MVC framework, any suggestions at which? I've looked at the following(for Coldfusion):
Model-Glue
Cairngorm
Pivot-MVC
Fusebox
Am I on the right track? I hope using an MVC will help reach the goal of a drop in and go modular functionality with reduced time spent coding repetitive things. I don't know enough about these MVC frameworks tho.
Would appreciate any helpful suggestions so I can formulate a precise plan of attack.
EDIT:
Having reviewed ColdBox, what would be a comparison to use it over another MVC? I've read that it does not support the 'drop and go' type of functionality.
Any other opinions on an MVC framework for CF?
I selected the ColdBox Framework for ColdFusion for its rich feature set, ability to be a controller for my Ajax/Flash/Web Service development, active community and frequent releases. Most importantly, I selected ColdBox for the amazing amount of documentation--allowing me faster answers while affording me even more time to write code rather than documenting how the application works.
I encourage a framework--any framework. It will foster faster development, help guide best practices and enable the application to have a long life--past you and other developers.
So, YES! You are on the right track.
Links of Interest
Sample Applications
Down and Dity ColdBox PDF
Documentation
ColdBox API Reference
Paid Training and Certification
Who Uses ColdBox
Respectfully,
Aaron Greenlee
If it were me, i'd plan the users viewpoint of the application, how many steps there were, how many different pages, what is the function, design purposes of each page.
Then plan out each page's logic, what it needs to do etc..step by step no code, just lots of comments.
Then maybe do a wireframe html/css pages with no coldfusion to show you step by step how the ecommerce application would act like..
Then start making page by page, and do lots of testing....the clearer your plans are for any plans, the less chance of feature creep.
Well, I hope I'm understanding you correctly here. All of the options you listed are great frameworks. However, when you set one up, at most, you're going to get a 'Hello World' sort of site out of it, and from there, you're probably on your own. MVC frameworks are designed to sort of split apart different part of programming (the logic, the appearance, the overall data model, etc.) to allow for easy reuse, but not at a level of 'Oh, add PayPal, Authorize.Net and PayflowPro to the last step of my cart' sort of application.
It sounds like you're looking for a CF-based eCommerce application like Cartweaver, and then to acquire or buy Cartweaver plugins to extend it (to offer different types of shipping, payment processing, etc., etc.).

Resources