WELCOME TO THE COMMUNITY
find what you are looking for or ask a new question
Home > Forum > Latest posts

latest posts

MVP
In reply to: Markus Jenni

Hi Dominik

We are creating calendar entries by using the MS Graph.
When using the calendar API there is a property isOnlineMeeting that you can set to true.

Here you find the documentation with an example
https://learn.microsoft.com/en-us/graph/outlook-calendar-online-meetings?tabs=http#example-create-and-make-meeting-available-as-an-online-meeting

Hi Markus,
Thank you for quick answer.
Microsoft Graph is great tool, like you said. We are investigating the possibilities of such usage within one of our processes.
We will have a look if such flag (isOnlineMeeting) will appear in WebCon BPS exchange integration standard action type :)
It would be greate to have it out-of-the-box within exchange actions (and Microsoft Graph probably behind it).
Best Regards, Dominik

Hello everyone,

I have a workflow where data is imported and instances are created. After the import, a timeout (minute) is defined which further delays the instance.
A field value (multiline text) is set on the path. At this point, the workflow encounters an error (Concurrency Error).
However, if I manually pass the WF instance on the path, the field value is set correctly.


I hope someone can help me.
Thanks in advance.

Error Stacktrace:


Nachricht
Fehler Setze Symbol - Fehlerhafte Rezepturen während betreten des Schrittes. (Schritt: Bearbeitung Produktion, Pfad: Ja)
Concurrency Error
Log
Error code: 100
Einzelner Wert:
Attributwert von "Symbol - Fehlerhafte Rezepturen" auf "" geändert.


Concurrency Error
bei System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction)
bei System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose)
bei System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean& dataReady)
bei System.Data.SqlClient.SqlDataReader.TryConsumeMetaData()
bei System.Data.SqlClient.SqlDataReader.get_MetaData()
bei System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString, Boolean isInternal, Boolean forDescribeParameterEncryption, Boolean shouldCacheForAlwaysEncrypted)
bei System.Data.SqlClient.SqlCommand.CompleteAsyncExecuteReader(Boolean isInternal, Boolean forDescribeParameterEncryption)
bei System.Data.SqlClient.SqlCommand.InternalEndExecuteReader(IAsyncResult asyncResult, String endMethod, Boolean isInternal)
bei System.Data.SqlClient.SqlCommand.EndExecuteReaderInternal(IAsyncResult asyncResult)
bei System.Data.SqlClient.SqlCommand.EndExecuteReaderAsync(IAsyncResult asyncResult)
bei System.Threading.Tasks.TaskFactory`1.FromAsyncCoreLogic(IAsyncResult iar, Func`2 endFunction, Action`1 endAction, Task`1 promise, Boolean requiresSynchronization)
--- Ende der Stapelüberwachung vom vorhergehenden Ort, an dem die Ausnahme ausgelöst wurde ---
bei System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
bei System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
bei WebCon.WorkFlow.BusinessLogic.Helpers.TransactionsHelper.<>c__DisplayClass11_0.<<EnlistToWorkFlowTransactionScalarAsync>b__0>d.MoveNext()
--- Ende der Stapelüberwachung vom vorhergehenden Ort, an dem die Ausnahme ausgelöst wurde ---
bei System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
bei System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
bei WebCon.WorkFlow.BusinessLogic.Helpers.TransactionsHelper.<ExecuteTransactionAsync>d__15.MoveNext()
--- Ende der Stapelüberwachung vom vorhergehenden Ort, an dem die Ausnahme ausgelöst wurde ---
bei System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
bei System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
bei WebCon.WorkFlow.BusinessLogic.Helpers.TransactionsHelper.<EnlistToWorkFlowTransactionScalarAsync>d__11.MoveNext()
--- Ende der Stapelüberwachung vom vorhergehenden Ort, an dem die Ausnahme ausgelöst wurde ---
bei System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
bei System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
bei WebCon.WorkFlow.BusinessLogic.Helpers.SqlCommandAdapterNotStatic.<>c__DisplayClass31_0.<<ExecuteScalarAsync>b__0>d.MoveNext()
--- Ende der Stapelüberwachung vom vorhergehenden Ort, an dem die Ausnahme ausgelöst wurde ---
bei System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
bei System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
bei WebCon.WorkFlow.BusinessLogic.Helpers.SqlQueryLogger.<ExecuteWithDebugSaveAsync>d__10`1.MoveNext()
--- Ende der Stapelüberwachung vom vorhergehenden Ort, an dem die Ausnahme ausgelöst wurde ---
bei System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
bei System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
bei WebCon.WorkFlow.BusinessLogic.Helpers.SqlCommandAdapterNotStatic.<ExecuteScalarAsync>d__31.MoveNext()
--- Ende der Stapelüberwachung vom vorhergehenden Ort, an dem die Ausnahme ausgelöst wurde ---
bei System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
bei System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
bei WebCon.WorkFlow.Data.Repositories.Subelements.RowsRepository.<UpdateAsync>d__3.MoveNext()
--- Ende der Stapelüberwachung vom vorhergehenden Ort, an dem die Ausnahme ausgelöst wurde ---
bei System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
bei WebCon.WorkFlow.BusinessLogic.BusinessLogic.Subelements.Save.SubelementRowSaver.<SaveExistingRows>d__8.MoveNext()
--- Ende der Stapelüberwachung vom vorhergehenden Ort, an dem die Ausnahme ausgelöst wurde ---
bei System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
bei System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
bei WebCon.WorkFlow.BusinessLogic.BusinessLogic.Subelements.Save.SubelementRowSaver.<SaveRows>d__6.MoveNext()
--- Ende der Stapelüberwachung vom vorhergehenden Ort, an dem die Ausnahme ausgelöst wurde ---
bei System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
bei System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
bei WebCon.WorkFlow.BusinessLogic.BusinessLogic.Subelements.Save.SubelementSaveController.<Save>d__6.MoveNext()
--- Ende der Stapelüberwachung vom vorhergehenden Ort, an dem die Ausnahme ausgelöst wurde ---
bei System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
bei System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
bei WebCon.WorkFlow.BusinessLogic.BusinessLogic.ElementManagement.FormFields.Subelements.SubelementFormField.<Save>d__116.MoveNext()
--- Ende der Stapelüberwachung vom vorhergehenden Ort, an dem die Ausnahme ausgelöst wurde ---
bei System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
bei WebCon.WorkFlow.BusinessLogic.Managers.WorkflowManagement.WorkFlowManager.<SaveSubelementsValuesAsync>d__49.MoveNext()
--- Ende der Stapelüberwachung vom vorhergehenden Ort, an dem die Ausnahme ausgelöst wurde ---
bei System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
bei System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
bei WebCon.WorkFlow.BusinessLogic.Helpers.WorkFlowManagerProxy.<SaveSubelementsValuesAsync>d__0.MoveNext()
--- Ende der Stapelüberwachung vom vorhergehenden Ort, an dem die Ausnahme ausgelöst wurde ---
bei System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
bei System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
bei WebCon.WorkFlow.BusinessLogic.Automations.Engine.Evaluators.ActionEvaluator.<EvaluateAsync>d__23.MoveNext()

MVP

Hi Dominik

We are creating calendar entries by using the MS Graph.
When using the calendar API there is a property isOnlineMeeting that you can set to true.

Here you find the documentation with an example
https://learn.microsoft.com/en-us/graph/outlook-calendar-online-meetings?tabs=http#example-create-and-make-meeting-available-as-an-online-meeting

MVP

Hi Artur
I'll start with the Error - it's caused due to wrong filter on the HR View.

Those filters are translated by WEBCON to SQL queries, you can look how the query looks like for example with using diagnostics*, but for now it's not required.
With that in mind we can compare it to what happens under the hood, the query looks something like this (it's very rough, there is much more, but that is the part which we have to focus on):
SELECT * FROM V_WFElements WHERE {QM_Parent_ID}
It's missing an equality operator, it should be more like this:
SELECT * FROM V_WFElements WHERE {QM_Parent_ID} = {WFD_ID}

So you should make some kind of a comparsion when filtering, and you most certainly want to compare value from form attribute QM Parent ID with Data Source Columns (attachment) - ID should be what you are looking for.

At this moment you are copying subworkflow ID into a field on parent workflow - this works fine, when you are sure that there will be only one subworfklow - creating new subworkflows will override this value.
If there is a possibility that more subworkflows of same type will be created, then I'd suggest creating a field on subworkflow, which will contain ID of parent - this way, you can also handle one to many relations.

This is also something that webcon does when you set start mode as 'subworkflow of current instance', it saves the ID of parent into WFD_WFDID column of child element - available as 'Instance ID from parent workflow' in Values tab of business rules/filters etc. From what i know this is required to make step Wait for subworkflows work - you can't achieve it with custom relations.
Sometimes you might want to have your own relation though, for ease of use.

*https://community.webcon.com/posts/post/diagnostics-and-form-behavior-registration-mechanism/215/40

MVP

Hi Matthias,
By design possibility to add / remove / edit attachments requires editing rights. By default it's even stricter - only person which added attachment can remove it, and in exactly same step where it has been added.

You could though solve it in 2/3 ways, maybe someone will come up with another ones:
1. Give sales employee edit rights, but create edit restrictions on fields/paths (if fields are in group, then group level restriction is enough), something like 'When user doesn't have a task' - should be possible using 'Assigned persons', and 'Current user is one of'. It is a bit of work though.
2. Create a 2 step subworkflow, which will be used to add attachments to parent - create a global* 'hyperlink start element'** action, and use related attachments *** tab to display them.
3. Is an variation on 2 - creating subworkflow, but after registering that subworkflow, you could use move workflow **** action - trigger it on child, and target parent workflow. Add technical path on each step of parent workflow, with Add Attachment ***** action - this should target latest child workflow for attachment adding.

I'd probably try to work with 2nd approach, as it looks like least pain to maintain it.
Also - you could try a variant with only 1 subworkflow dedicated to keep attachments added 'during process' instead of creating a subworkflow each time attachments are added.

Note from my perspective - usually letting someone add information during the process, when it's not their time to act without proper information flow might lead to errors.
If someone from Sales have a new attachment, maybe a better way would be to give everyone possibility to move workflow to Sales, where they can attach what is needed, and use 'Back to the previous step' destination step on a path in sales.
It forces Sales to inform someone that there is some kind of a new data, because they have to ask current assignees to pass them the instance.

* https://docs.webcon.com/docs/2023R3/Studio/Workflow/Workflow_GlobalAction3/
** https://docs.webcon.com/docs/2023R3/Studio/Action/Form/Action_Hyperlink
*** https://docs.webcon.com/docs/2023R3/Studio/Process/Attribute/Basic/Itemlist/BasicColumns/RelativeAttachmentsConfig
**** https://docs.webcon.com/docs/2023R3/Studio/Action/Workflow/MoveManyWorkFlows/
***** https://docs.webcon.com/docs/2023R3/Studio/Action/Attachments/Action_AddAttachment

Hello everyone, I am new to Webcon so it might be a dumb question.
Anyway, I am trying to create an App where one Department starts one Workflow that creates subworkflows for several other departments. The main Workflow should be able to see the current status/step of every subworkflow.
But with what I did, I am getting 2 Errors
[Form] "Failed with an unknown exception Fehler-ID: d1a18cc6-c67d-43bb-b883-66e3584445e9"
[] "during saga execution: Failed with an unknown exception".
See the attachment for a picture of that.

How I tried to realise this scenario:
On the only path from the Start button i have an automation that starts a subworkflow and then saves the subworkflow ID to a technical field. (Or at least I think that it should do that, see attachments).
Then in the mainform Workflow I have a step that is waiting for the Subworkflow and there a Tab that should get the status.
For that I created a Data table and put the technical field as the filter.
And when I test this I get a huge error message from the Query test.

With that I think that I am either doing something increadibly wrong, or it will be a simple thing like a checkbox I am missing. Which of the 2 is it and how do I fix this?

Thanks in advance.

MVP
In reply to: Paweł Tołoczko

Maybe I was not clear ..

1) I would like to start from button (see attachment) (no problem)
2) then open in new window (no problem)
3) save flow to receive Signature of Flow [OK, I can press Save button or go by Save path but I would like to automate it ... but other way I need
change option to populate Item list related to value change of Drop down list >>> https://community.webcon.com/forum/thread/4511?messageid=4511
4) then picking any value from Drop down List (nr Zamówienia)
5) Then I can "pull" menu button action if drop down value change [because I have got saved Flow with Signature = fully present in Initiation step ]
and fill Item list related to "Nr Zamówienia" (Signature)

The Item list is different for each "Nr Zamówienia" ... so I can't initialize Item list if I don't know what value will be in "Nr Zamówienia" (I think like that ... or maybe I'm wrong ... For me item list initialization is = all time the same value on start)
- user will pick any from available from range (those which are in particular step in this moment)

Item initialization doesn't have to be static, in most cases it's not, so it can have different values based on 'Nr zlecenia' field :)

I've made a quick prototype on public portal*, you should be able to connect to it as Tom Green (it's 2023.1.2.99 version) you might need to download it - possible also through portal under user avatar menu.

In attachments some screenshots from config:
* Configuration of item list initialization (i've simplified it, so it might not be exactly your buisness use case, but same solution - i want to load all Orders on Delivery form, based on selected Customer) - there is a bug in Designer Studio which renders column as it's not existing, but it only visual bug.
* Configuration of on change 'Customer'
* Configuration of Form rule on page load in 'Start' step - it's required to automatically initialize list when using 'Start new element' hyperlink
* Configuration of technical action, to make sure that list is loaded when using start a subworkflow


* https://portal.webconbps.com/db/1/app/545

In reply to: Mihai Marza

Hello,

I had some issues with choicefields, in my case the configuration for the field was simple: ID and Name.
If I was adding by action a value that would match "Name", the field would display the value correctly, but when I was checking it in SSMS I would get only that value instead of ID#Name.
I had to change the action to add ID#Name in order to work.
You can try and do a test with a simple action and add ID#Name and see if its working.

Regards

It's true, when you are parse only Name then in database system could only insert Name. But when User save work or go to another step, system check the values and updating the data (i checked in database, there is nothing missing). I believe option in Screenshot no 1 is responsible for that.
I check this action in many levels and still got same problem - could'nt parse value in fields. I tested in format ID#Name - and still had same problem. And like i said - there is some data that match, but i don't see the pattern (it's the same value, but in diffrent row).
All that fields are Choice Field with Autocomplete.

Hello,

I had some issues with choicefields, in my case the configuration for the field was simple: ID and Name.
If I was adding by action a value that would match "Name", the field would display the value correctly, but when I was checking it in SSMS I would get only that value instead of ID#Name.
I had to change the action to add ID#Name in order to work.
You can try and do a test with a simple action and add ID#Name and see if its working.

Regards