sábado, 4 de julio de 2009

AgilePoint extensibility

First we are going to talk about AgilePoint extensions:
  • AgilePart
  • AgileWork
  • AgileStub
  • AgileConnector
Extensibility is the main advantage of AgilePoint so this is going to be the main issue in this blog, so if you are interested in out of the box functionalities do not waste your time her :-).

AgileParts

This is the first extension point that we are to talk about.

What is an AgilePart? is a method that the engine is going to call at runtime passing the parameters that you have gathered using the WFAgilePartDescriptor that you have created in the AgilePart project template in Visual Studio.

Easy :-), but what does it mean?

When you create an AgilePart project, you have 2 main classes, AgilePart and AgilePart descriptor.

Every method that you decorate with an WFAgilePartDescriptor is going to be exposed as an AgilePart in Envision and the WFAgilePartDescriptor is going to be exposed by Envision in the right side property grid to gather configuration from Business User .

When the engine arrives to the AgilePart at runtime, the method is called and you get the actual values of the configuration and you can do whatever you want with them.

So what is the approach AgilePoint have?

AgilePoint provides a mechanism to gather information from business users at design time and this configuration is used at run time to make technical stuff that AgileParts(and AgileWorks) isolate.

Stop reading for 10 miuntes and thik about it...

This is really powerful, you can use a standard and extensible interface, Visio and .Net, to get all configuration that you need for your runtime, and this configuration can be as user friendly as you can imagine, and you can use .Net platform at runtime to connect to other systems and run your technical stuff.

The key point here is expose your technical needs translatig them to user friendly language, for example if youare going to call to your ERP using whatever protocol and parameters,... that you need(as you can see I am not an expert in ERP systems :-)), the Business User's should not care about this technical needs, he should care about where to get the amount of his invoice, the name of the client,...

So your work as IT guy is provide the interface to configure this call to the ERP and the user at design time should not care if your ERP is SAP,Axapta a database or csv file, this is your responsability.

2 comentarios:

  1. Hi,

    I am new to AgileConnector and AgileExtender. I want to write an AgileConnector/AgileExtender which takes care of all our DB transaction rather then having multiple DB agileshape in visio. Could you please give me an example of how to write connector to handle DB transactions ?

    ResponderEliminar
    Respuestas
    1. Hi Vimal,
      Could you provide more details about what you want to achieve?. For instance, do you need the user to configure a set of SQL statements that are going to be executed in a transaction?
      What do you want the process engine to do in case of a failure? rollback and continue the process? rollback and suspend?.
      How are this statements going to be configured? Using a set the standard shapes?
      Regards

      Eliminar