ERP Software Corner
- Category: Workflow
- Published on Sunday, 02 September 2007 02:00
- Written by Kevin Wilson
- Hits: 12718
To avoid an unnecessarily high number of tRFC calls during workflow implementation, some activities of the workflow runtime system, such as data flow or processor determination, are carried out under the userid of the person responsible instead of under WF-BATCH.
NOTE: Remember to assign this user the necessary authorizations, in particular for the HR authorization object PLOG. Assign more authorizations to the person responsible (for example, for PLOG we recommend the profile P_PLAN_ALL) or add empty background steps to your workflow definition (for example, based on the single step task TS30000044, object type WFTS, method EMPTY_BACKGROUND). Ultimately, there is a trade-off between security and performance. (See SAP Note 755767)
Note: The background user for the workflow runtime system or a user who creates an event always occupies a work process if a transactional RFC is sent. This occurs during the following actions in workflow:
When starting event receivers (that contains exiting an asynchronous method).
When starting a background step whose predecessor was not exited by an event.
The selection time of work items in a user inbox increases with the number of tasks which the user may process.
The selection time also increases with the number of available work items.
Data of a work item may have to be read by the database.
Reducing the number of work items for each workflow
Replace reading/calculating background methods by virtual attributes (for the evaluation of a virtual attribute, no work item is created).
Group together several small background methods in one large group (a work item is created for every background step).
Preventing unnecessary tRFCs
Replace asynchronous methods by synchronous methods (thus the system does not have to execute the exiting event = tRFC). This is usually possible if the method is not exited in the update program.
Do not check input data in the first workflow step but use the option to enter a check function module in transaction SWE2. Thus you avoid the generation of unnecessary work items and the relocation of unnecessary tRFCs.
Define the task assignment in the organizational model concretely. (Do not classify tasks as general tasks). Every user should only be a possible agent of very few tasks.
- Restrict the number of application servers on which you can start event receivers of events generated on a large-scale. As a result, other application servers will be available for 'regular' online operations. To do this, create a RFC destination of the type '3' in transaction SM51 and permit the load distribution. Remember that system parameters control the intervals according to which the message server searches free application servers. Then enter this destination in the detail screen for the event in transaction SWE2.
- Remove columns from the starting configuration of the inbox. A subsequent selection of the database occurs for the following columns:
- Task long name
- Finish by date
- Finish by time
- Overdue (up to and including Release 3.1I)
- Object (in older releases, object key 1)
- Group (in older releases, object key 2)
- Archive work items that are not required for a longer period and subsequently update the database indexes (read also notes 72873, 49545). Allow the system to buffer as much data as possible. To do this, maintain the entries in group WFLOW in table T77S0 (in particular, entries with identification codes BUF, INBOX, ROLE). With WFLOW INBOX, the buffer mode is set for tasks that are assigned to a user, as well as for organizational assignments of users. We can assume the following values:
- 'I' : Buffering in database INDX, refreshment at least once a day
- 'S' : Buffering in the shared buffer on the application server
- ' ' : No buffering
WFLOW ROLE is used to check the result of the agent determination. 'X' (recommended). The agent is checked if it is a possible agent (and not an excluded agent, and so on).
WFLOW BUF is no longer.
- As the system is running, index records are frequently created for the workflow runtime tables and then deleted again. This has a negative effect on performance during accesses via these indexes.
Note that you MUST shut down the R/3 System before starting the program
Depending on the data volume of the processes, indexes of the database runtime tables should be reorganized regularly (for example on a monthly basis). If you use ORACLE or INFORMIX, you can use the SAP tool SAPDBA to do this.
A reorganization should always be started after an archiving run.
The following tables / indexes should be edited in this case:
SWW_CONT - Index 0
SWW_CONTOB - Index 0
SWWWIDH - Index 0
SWWORGTASK - Index 0
SWWWIAGENT - Index 0
SWWWIHEAD - Index 0
Index E (as of Release 45A, if distribution is used)
SWWWIDEADL - Index 0
SWWWIRET - Index 0
SWEINSTCOU - Index B
SWWLOGHIST - Index 0
Index 1 (as of Release 4.6A)
SWZAI - Index 0 (if work queues are used)
SWZAIENTRY - Index 0 (if work queues are used)
SWZAIRET - Index 0 (if work queues are used)
SWPNODELOG - Index 0
SWPSTEPLOG - Index 0
SWP_ADM_US - Index 0 (as of Release 4.5A)
SWP_HEADER - Index 0
SWWBINDEF - Index 0 (as of Release 4.0A)
SWWRUNMETH - Index 0 (as of Release 4.0A)
SWWSWPRET - Index 0 (as of Release 4.0A)
SWP_NODEWI - Index 0 (as of Release 4.6A)
Production: In production systems it is recommended you archive workitems using the object WORKITEM. You can only archive workitems of status COMPLETED or CANCELLED. (Use transaction SARA) It is NOT recommended you use report RSWWWIDE in a production system because the report does not check dependencies, so there is always a danger to delete steps in a flow which is not completed.
Development/Test: Note(49545) To delete workitems using reports RSWWWIDE and RSWWHIDE please refer to note 49545 for additional details:
RSWWWIDE - this report deletes the work item including all attachments and dependent work items.
RSWWHIDE - this report deletes the work item history.
If you have large amounts of workitems to be deleted it may be necessary to restrict the selection criteria in RSWWWIDE by specifying specific date ranges, work item types or work item status. To be more concrete you can even run RSWWWIDE without anything specified in order to delete all workitems in the system. However, ALL workitems will be permanently deleted!
IDocs: Deletion of type C workitems: Notes(153205 & 126678) During IDoc inbound processing, an application object is generated from an IDoc. Before Release 4.6A, the relation between both objects is implemented via the so-called ContainerItems (type C work items). As of Release 4.6A the links between the IDocs and the application objects generated from them are stored via new functions and ContainerItems are no longer created.
Since the work items in the user inboxes are not private copies unlike mail, but are only references to a single work item, it is not possible to delete the inbox of only one user. Work items can only ever be deleted as such, that is, from the inboxes of all users.
Reports RSWWWIDE and RSWWHIDE are available for this. Both reports are purely administration tools. They delete all selected work items directly without further warning messages or authorization checks in the database. RSWWWIDE deletes the work item as such (including its attachments and all dependent work items), RSWWHIDE deletes the work item history. RSWWWIDE can also delete work items which are not in a final status or that are part of a higher-level workflow. After executing the reports, there is not a possibility to reconstruct the deleted work items.
For safety reasons we recommend first starting both reports online, making the required selection and setting the flag "Only display list". After making sure that the required selection is correct, the actual deletion should occur in a background, for performance reasons, whose only step is the report RSWWWIDE (or as a second step RSWWHIDE) in the variant determined beforehand.
As of Release 3.0D, you have the option of archiving work items. For this, both an archiving object WORKITEM and an archiving class WORKITEM were implemented within the Archive Development Kit (ADK) for work items. Users of this function should first make themselves familiar with the ADK (for example, via the online documentation).
To delete work items via the ADK, an archiving file must first be created. The work items stored in this archiving file can then be deleted in a second step via the ADK. The archiving and the deletion of work items via the ADK is described in detail in the online documentation for Workflow.
When archiving, it should be noted that attachments for a work item are not archived as well, but are deleted from the database in the deletion step which possibly follows.
The history for a work item and the step log for a workflow are deleted automatically when you use the ADK.
For reasons of consistency it is not possible to reload the archived data from the archive to the original database tables since the numbers of the archived work items are used again at a later date. Therefore, new data could be overwritten with old values during the reload.
However, it is possible to read the data in internal tables for possible separate evaluations. Report RSWWARCR is an easy example of such a read program. This report is considered as a templated for reading reports created by the customer in accordance with his requirements.
The actual data read back happens via the function module SWW_WI_LIST_ARCHIVED_READ.
- Different selections of data of the table SWWWIHEAD take a long time.
- To stop this incorrect behavior of the database you must change the secondary indexes on SWWWIHEAD so that the respective index contains the client (field CLIENT) as an additional first field.
- After this change, the database statistics must be refreshed if necessary.
- Note that the change to the secondary indexes requires that you reconstruct the respective indexes. During this time, you cannot use the workflow system. Make sure that all entries that are no longer required have been archived and deleted.
The system has a very high interface load and/or many tRFC/qRFC entries are in the error status and/or many tRFC/qRFCs wait for their processing
Before you solve the problem, you must make a more precise analysis of the problem.
1. Outgoing t/qRFCs
Check whether you use tRFC or qRFC:
- Use Transaction SE16 to check how many entries are contained in table ARFCSSTATE.
- Now determine for how many entries field ARFCRETURN is empty in table ARFCSSTATE.These entries stand for tRFCs which have not been processed yet or which encountered errors. Tables ARFCSSTATE and ARFCSDATA are affected here, these tables contain many entries. (refer also to point 5)
- All entries of table ARFCSSTATE, for which the ARFCRETURN field is not empty, come from qRFCs which are either not yet processed or which are in an error status.Here tables ARFCSSTATE, ARFCSDATA and TRFCQOUT are affected by the growth (refer also to 3). (see also 3rd)
1. Incoming t/qRFCs
a) Table ARFCRSTATE contains many entries, it does not matter if these were written by tRFC or qRFC. Find solutions in Note 366869.
b) Tables TRFCQIN, TRFCQDATA or TRFCQSTATE contain many entries. These are qRFC. (Refer also to 4.)
The following describes known solutions. If there is no solution for the situation in your system, open a message under component XX-SER-TCC, SAP will complete this note systematically.
Generally, you should not delete tRFC entries (especially qRFC entries), because, as a result, the applications that the databases use to communicate become inconsistent.(Only some cases mentioned in Note 366869 are exceptions) Apart from that, the following always applies:After deletion you must check and restore the consistency of the databases involved.
2. Known solutions for outgoing (sending) qRFC :
a) Example APO
When you call Transaction SMQ1, many queues are on CPICERR. The system writes this error if the data required by the Live-Cache was blocked during execution. Normally, the system post-processes this error automatically (by default every 15 min). If you want to make this post-processing immediately, you can subsequently send the queues from SMQ1 manually. You do not have to mind the sequence of the queues, the qRFC identifies automatically which other queues must be processed in which sequence within the same LUW.
However, if no lock but a real CPIC error is the cause for the CPICERR (example: target system not started, destination not maintained in SM59 ..), you must correct the error before post-processing.
a) Example CRM mobile sales
In Transaction SMQ1, many entries stand for queues having the name CRM_Site_00....XX in status NOSEND. Generally, these queues have many (> 100) entries, the first date (oldest queue entry) is older than one week.
These queues are the queues of the mobile clients.The owner of the mobile client have not logged on to the CRM (CONTRANS not started) from the SMQ1 after the "first date".The system constantly places queue entries into the outbound queue for each individual mobile client, this has the effect that the queues andd thus the qRFC table grow, this is due to the Deltaload from the OLTP and the replication of the data in the middleware.This results in a poorer performance for all qRFC users and above all for the communication to the OLTP System.
(The growth per queue depends above all on the quantity of data subscribed for the mobile client.
SAP recommends limiting the quantity to the minimum from the beginning.
The only solution here:The mobile clients must log on to the CRM and start CONTRANS on a regular basis (at least once a week). CAUTION:If one or more clients are no longer required or have no owner, they must be logged off from the admin station by the administrator. Temporarily, this actually causes load on the system, however, this causes a consistent removal of the queues.
1. Known solutions for incoming qRFC:
a) CRM: in Transaction SMQ2, queues stand on STOP.
Either the CRM application writes this STOP or it is set manually. A short STOP triggered by the application is normal.
If, however, the queues stand on STOP for a long time and were not deregistered by purpose in SMQR, an application problem exists. This can either have been caused by a short-term lock of the application object, and a simple reset of the status, and thus processing again, helps.
Or a real application error may exist, you can determine the cause by using Transaction SMW01:Select the date according to the queue STOP date, select the corresponding line and choose the 'Error' button. The system displays the application error which has to be solved by the user department. Afterwards you can trigger the queue again from SMW01 via menu Message --> Process --> Retry to process.
If you have intentionally deregistered the queue, note that stopping many queue entries for a long time can also affect the performance. You should register and process the queues again as soon as possible.
1. Known solutions for outgoing tRFC:
Using Transaction SM58 check now for all users which function module is supposed to be processed by the TRFCs:
a) For function modules: 'SWW_WI_*' and a status text indicating an error there is a workflow problem. First check the workflow Customizing using Transaction SWU3 and continue to search for possible workflow errors.
If you corrected the error, try to re-process the tRFC. If that does not work technically, you must first contact your workflow-application department to clarify which steps are to be taken in order to ensure the business flow before you use the "Reorganization" via Transaction SM58 to delete the entries that cannot be re-processed.
a) For function module: "IDOC_INBOUND_ASYNCHRONOUS" (Release 4.X and higher) or "INBOUND_IDOC_PROCESS" (3.X release) and a status text that refers to an error there is a ALE/EDI-RFC transmission problem.
Please check the technical function of the interface (Destination test in Transaction SM59, checking of the ALE/EDI Customizing for this interface).
Correct the error and then re-process the tRFC, otherwise this IDOC is lost for the business process.
a) A common cause with the use of ALE/EDI in the system in Releases as of 4.6 is that the error workflow is delivered for these interfaces, but the general workflow Customizing is not delivered. Since the workflow for the error handling cannot be deactivated in EDI, carry out the workflow Customizing in this case and define processors for the work items.
In ALE you have the choice to carry out the error handling either via the workflow or via Transactions BD87 and BD88.If you choose BD87/88, you can deactivate the workflow for the troubleshooting. So the TRFC entries for the error workflow are suppressed.
Concerning the deactivation of the error workflow for ALE and EDI proceed as follows:
- Transaction WEDI-> Control -> System Process Code. Here you can deactivate each standard tasks by selecting 'inactive'.
- Deactivate the event linking via Transaction SWE2 by removing the cross in the "Type Linkage active". Here you can deactivate the error workflow on message type level. You might only deactivate the event linking for certain message types.
Set event PROCESSSTATEREACHED always to 'active' for the IDoc object if you are communicating via the file interface, otherwise no immediate processing is possible.
If the error workflow has been deactivated and the IDOC errors have been corrected with BD87/88, you can delete the corresponding entries in the TRFC tables using Transaction SM58.
· Batch input processing is a useful way of calling up R/3 functionality with pre-filled fields. As such, it is well suited for use within workflow where much of the data comes from the workflow container. It also allows a work item to navigate to a certain screen within a transaction, making the task easier to carry out. Unfortunately, transactions change from release to release and this is outside the control of workflow. This means that a BDC method created by a customer in one release may no longer work in the next release.
o Solution: Use BAPIs where possible instead of BDC methods. Mark your BDC methods clearly, even going to the extent of making this show up in the method name (e.g. "UpdateMaterial_bdc" ). Create a catalog of BDC methods in your technical documentation and make sure that these methods are tested using the workflow test tools in the development system before going productive in the new release.
· Synchronization of the update task. This problem is the result of optimistic workflow modeling, where an incorrectly modeled workflow happens to work in one release, but stops working in the next. . Methods that use the update task to write data should be defined as asynchronous tasks with terminating events coming from the update task itself. This guarantees that the data is written to the database before the workflow continues. If this is not the case, the next step in the flow may be executed before the changes in the previous step have been written to the database. This is particularly important for 'create' methods where the next step will fail if it uses attributes of an object that have not yet been written to the database. In other words, changes are read before they are written. This problem is particularly acute during release upgrades because the performance of the workflow system has been increased from release to release. Whereas in earlier releases the update task may have been faster than the workflow system so the data was processed in the foreseen order, this may no longer be the case after the upgrade.
o Solution: Verify that all steps that write database changes have been correctly modeled. If the change is not relevant for the immediately following steps, the step can be ignored. If it looks as if there could be a timing problem, either convert the step to an asynchronous task with terminating events or ensure that the "update task" is switched off for the offending method. There is a parameter to force the "update task" to run synchronously for the CALL TRANSACTION command. E.g. CALL TRANSACTION 'MR01' USING bdc_data UPDATE 'S'. Asynchronous tasks are the better solution but require changing the workflow, so there will be situations where it makes more sense to simply turn the "update task" off for that method.
- Event triggering in HR. Prior to release 4. 0, events triggers could be customized for HR changes using the tables T588W and T588X. From release 4.0 onwards this customizing must be transferred to tables T779W and T779X in order for the events to be triggered.
- Table reference for a container is deleted. The container elements are defined referencing business objects or data repository fields. If an SAP structure is deleted or modified, the workitems and workflows may become erroneous when this change is imported during a release upgrade. Although changes to SAP structures and tables are rare, this did happen in release 4.0 when central address management was introduced. Various structures with the naming convention USRnn (where nn is a number) were changed. It is worth checking whether your containers reference these tables. If you find any, modify them in advance to reference another equivalent table. The new reference and the updated container definitions should be transported to the productive system far in advance of the upgrade.
- Tip: Create your own structure which references all the fields used in your container definitions. Include this structure in a simple ABAP report which does not have to do anything other than reference all the fields. If an SAP or customer structure that is used in a workflow is modified, a syntax error will occur in this report and you are warned. The report also prevents your system administrator accidentally deleting structures which are only referenced in workflow, and nowhere else.
· Manual activation required in Release 4.6c. This is a temporary condition but as the hot package is not available yet, it makes sense to report it here. An unexpected phenomenon in release 4. 6c is that after the release upgrade, the workflow definitions lose their cached run-time definition. This is easy to regenerate, but it is essential that this is done in the production system before going live after the upgrade.
o Use the transaction SWI1 to determine which workflows are running in the production system (check the 'advanced' flag to see workflow id. In each of these workflows, including the subflows, you must load the workflow into the workflow builder and then regenerate the run-time definition. You can do this from the display mode directly. There is no need to create a transport request or have special authorization.
· Application event triggers. It has been reported that there is a chance that an application may change their event publishing mechanism from Release to Release. Either the name of the event could change or the customizing required to trigger the event could change. It is worth checking that the events you use in your workflow are still being triggered properly after the Release upgrade. You may need to perform some additional customizing to get them triggered again.
· Delegation. Some transactions use the hard coded BOR object within the programming logic. An example of this is the event triggering of the application for the VBRK object. It appears that this has changed sometime between release 3.1 and 4.6. A consequence of this is that workflows based on your own subtype (e.g. zVBRK) will no longer work.
o The solution is to delegate VBRK to zVBRK and create the workflow based on VBRK (which has magically inherited all your new/modified methods/attributes/events). This rule applies throughout all mySAP components. If you want to extend a business object, create a subtype and then delegate it as described in the online documentation. Model your workflow using the original object type, not the "z" type. A positive side effect: You can usually navigate from the transaction that displays the business object (e.g. purchase order) to the workflow logs that involve this object. This is true, even if you have created the workflows yourself instead of using SAP delivered workflows, providing that your workflows reference the original business object (which you may have extended using delegated subobjects)
- Periodic Deadline Checking. In the SAP Web AS Release 6. 40 it is no longer possible to configure case-specific deadline monitoring. Periodic monitoring is supported and the interval between deadline checks can be customized. This has been done to reduce system load and avoid skipped deadlines when the system load is high. If you are configuring an old Release, you are recommended to avoid using case-specific deadline monitoring - configure periodic monitoring instead.
SWUD is the diagnosis transaction. This will guide you through the fault finding process. The check-list order is determined dynamically according to:
a) your workflow definition and
b) the statistics of the most common mistakes made when creating/activating a workflow.
The testbed, provides a launchpad for tests to ensure that your workflow definition is rugged enough for the production environment. It also allows you to access the tasks, subflows, object types, delegated object types and agent assignments directly, without going through the workflow builder first. (Foreground tasks with no agent assignment are marked in red from release 4.5 onwards). This list is also useful as a catalogue of the components of workflow for documentation or transport purposes.
Click on the "info" icon to read a description of the test being performed.
Any workflow accessed through this transaction is added to the last-used list. The workflow can be recalled at a later date by clicking on the reuse icon in the left-hand column of the last-used list.
The next section describes the transactions called from SWUD. Experts may find it easier calling them directly.
- Transaction SWU3: Verify Workflow Customizing.
In this transaction the most important basic customizing for workflow is checked. If you find any errors here, read the documentation for the error. If your system is BBP or CRM, see note 60801.
- Transaction SWEL: Event Log.
Note: Before you can use the event log, you must make sure it is activated. You check this in transaction SWELS. If you are not sure whether or not it is active, just deactivate and activate the event log once.
WARNING: An activated event log can lead to bad performance, and must not be activated constantly in a productive system.
- Transaction SWE2: Event type linkage
A workflow is usually started or triggered by an EVENT so it is important to make sure that an event occurrs. In the event log you can see the event and its business object type.
If an event has been successfully created, it is important to check if there is a receiver type for this event. The receiver type is the workflow that has been triggered by the event.
The coupling between an event and the receiver can be maintained in trans. SWE2.
- Transaction SWU0: Event simulation
If you have found NO receiver type in the event log, then you should check transaction SWU0, Simulate Events.
In this transaction you can simulate an event. The system will check all workflows that could be triggered by the event and tells you whether or not they were triggered. Information is displayed for the workflows that were not triggered successfully.
- Transaction SWI1: Work item list
If a workflow was been correctly triggered and started at least one WORK ITEM should be created. You can view the work items in transaction SWI1, Work Item Selection.
The easiest way for the selection is just to go into this transaction after you have checked the event log. By default all the work items of the last hour will be displayed.
You will find in this transaction the work item number, the status of the work item and the workflow task that has created the work item. Furthermore, (in the technical workitem display) you can have a look at the container by selecting a work item and using the menu GOTO -> CONTAINER. To display the work item details double click on the item. From the details you can see the selected/ possible/excluded agents for this work item by using the menu GOTO -> AGENT -> SELECTED/POSSIBLE/EXCLUDED AGENTS.
When the status of the work item shows an error you should have a look at the workflow log using the menu EDIT -> DISPLAY WORKFLOW LOG. Here you can see errors that have occurred.
- Transaction PFTC/SWDD: Task editor/Workflow Builder
If you want to have a look at the definition of the workflow you can use transaction PFTC, Maintain Tasks.
The button WORKFLOW BUILDER brings you to a graphical display of the workflow structure which is fairly easy to read and understand. On the tabstrip TRIGGERING EVENTS you can check if the triggering is activated or not and deactivate/activate it by clicking on the icon in front of the event.
- Transaction OOCU: Customizing overview
To check if the relevant tasks are activated and users are assigned, you can use transaction OOCU; Task Customizing Overview.
In this transaction all the tasks are sorted by the application components and are thus easy to find. Note that if you have almost no entries in this transaction, you should execute the report RS_APPL_REFRESH in transaction SE38.
- Transaction SWUE/SWUS: Event/workflow trigger
If you have activated a user exit, e.g. for the role determination, and you have problems with that, you most probably have to debug the workflow. This can be done using the transaction SWUS or SWUE.
With SWUE you can create an event. After you entered object type and event you have to fill the event parameters and the key for a specific object. If you want to debug the workflow you have to set the flag TRIGGER RECIEVER FM SYNCHR. If you have set a break point in your user exit or in any other function module of the workflow the system will stop at this break point and you can start analyzing.
The second possibility to debug a workflow is to use the transaction SWUS, the workflow test environment. In this transaction you have to enter the workflow task and fill the input data. Please use the F4-help to fill the input data. Here again you have to set a break point in your user exit or in any other function module of the workflow and then the system will stop there.
Now that you have a better understanding of how to use these transactions, you can follow the steps below to quickly analyze your workflow problems:
1. Go to transaction SWU3 and check if everything is okay. If it is not, please fix it before you proceed.
2. Go to transaction SWEL and check if an event is created. If not, check in transaction SWELS if the event log is activated.
- If you see an event but no workflow is triggered, proceed with step 3.
- If you see an event and a workflow is triggered, but the status of the triggering shows an error, proceed with step 3.
- If you see an event and a workflow is triggered and there is no error, proceed with step 4.
- If the event log is activated and you do not get any event, open up a message using the component of the application to which the business object type belongs. From release 20C for creation of shopping carts
the architecture of workflows changed and no events are visible!
3. Go to transaction SWU0 and simulate the event. Is the workflow that you expect to be triggered visible in the simulation?
- If it is not, then check the workflow definition in PFTC. The event must be defined as triggering event.
- If it is, but the event linkage is not activated, go to transaction OOCU and activated it.
- If it is visible, but it is not activated, go to transaction PFTC and activate it.
4. Go to transaction SWI1. Search for the work item that belongs to the workflow. Check the status of the work item.
- If it shows an error, look at the workflow log. Do you see any errors? If yes, you can probably find a solution in the SAPNet Frontend. (Tips and tricks on how to search for information and solutions in the SAPNet Frontend can be found in note 192194.) If you do not find any help in the SAPNet Frontend, please open up a message with the component BC-BMT-WFM and tell us the number of the error message and the name of the workflow.
- Different selections of data of the table SWWWIHEAD take a long time.