Best practice in work with context and data


#1

Hi! i am new in Camunda, but i have some expirience in big BPMS. So i want know right way to easy and no-mess-in-diagram implement context store and modify it by users in user task and task list.

For example, i save some object.
I want:

  1. Put this object thru API and start process.
  2. Show form to user in tasklist with this object and give possibility to change some data, include nested elements.
  3. Save users changes in object.
  4. Put object to other API.

And i want that was look in BPMN like this:
image

In some bpms you need to do it like this(exaggerating):


I want to avoid this mess, becouse it didnt give value. Some times we can cover it with call activity, or make code in one Activity, but this is the same.

So i want khow all posobilites( listners,input/output, field injection, etc…) provided by camunda, to make my diagram look i want and my logic work like i want.

I understand, that we need do some work to generate form, load\save input etc. But, if it possible, i what do it maxim cheap in develop time.

Object in JSON

{
“contact”: {
“isPublished”: true,
“dateAdded”: “2018-06-13T10:36:34+03:00”,
“dateModified”: “2018-06-14T10:29:18+03:00”,
“createdBy”: null,
“createdByUser”: " ",
“modifiedBy”: 2,
“modifiedByUser”: “api api”,
“id”: 5140,
“points”: 0,
“color”: null,
“fields”: {
“all”: {
“id”: 5140,
“title”: “”,
“firstname”: “name”,
“lastname”: “lastname”,
“company”: “”,
“position”: “”,
“email”: “email”,
“mobile”: “”,
“phone”: “”,
“points”: 0,
“fax”: “”,
“address1”: “”,
“address2”: “”,
“city”: “”,
“state”: “”,
“zipcode”: “”,
“country”: “”,
“preferred_locale”: “”,
“attribution_date”: “”,
“attribution”: “”,
“website”: “”,
“honey”: “”,
“dadated”: true,
“genitive__full”: “genitive__full”,
“dative_full”: “genitive__full”,
“ablative_full”: “genitive__full”,
“qc”: “1”,
“facebook”: “”,
“foursquare”: “”,
“googleplus”: “”,
“instagram”: “”,
“linkedin”: “”,
“skype”: “”,
“twitter”: “”,
“otcestvo”: “”,
“pol”: “”
}
},
“lastActive”: “2018-06-13T23:13:11+03:00”,
“owner”: null,
“ipAddresses”: [
{
“ip”: “111.111.111.111”,
“id”: 12431,
“ipDetails”: {
“city”: “”,
“region”: “”,
“zipcode”: “”,
“country”: “”,
“latitude”: “”,
“longitude”: “”,
“isp”: “”,
“organization”: “”,
“timezone”: “”,
“extra”: “”
}
}
],
“tags”: [],
“utmtags”: [],
“stage”: null,
“dateIdentified”: “2018-06-13T10:37:19+03:00”,
“preferredProfileImage”: null,
“doNotContact”: [],
“frequencyRules”: []
}
}


#2

Hi @kotskin,

you can handle complex objects directly in the user forms and service delegates.

Have a look at the Form SDK documentation: https://docs.camunda.org/manual/7.9/reference/embedded-forms/json-data/ and this example: https://github.com/camunda/camunda-bpm-examples/tree/master/usertask/task-form-embedded-json

Hope this helps, Ingo


#3

Thanks, looks good! i go deeper in this topic