BPT Process

  
I see our in our Production web page there is a BPT Task box. But when I try to learn about the process, I cannot see it in the Outsystems Development Service Studio. Does BPT Process is the part of Service Studio or is it done externally. Can anybody please explain me about this. Thanks.
Hi v,

Processes can be created in Service Studio and edited using the process flow editor.  You will find processes in the Processes folder which is in the Processes tab of Service Studio.

You can see the task box because there are tasks that you can select and complete.

To see the process that has created the tasks you can see, you would have to open the application that contains that process.  If you aren't in the right application you would not be able to see that process.
I am seeing in the correct Application. I can see it in the production. I still activated in the ETATasbox for the particular tenant in that espace. But I cannot see the task box, i tried to create new notification but still I cannot see the taskbox. Not sure why.
Hi v,

You should troubleshoot it using 3 different steps:
  • EPATaskbox is not configured for you espace - you can do it by going into your enviorment http://<servername>/EPA_Taskbox/;
  • Check if you have any "active" human activity assign to your user - go to Service Center, Process Monitor, you should search for your process with active instances and active human activities;
  • You directly using the BPT Metamodel using the some logic that is used by the EPA Taskbox - you can read here how you can do it. 
You need to understand that if your user is not associeted with active human activities, something that you need to validate using your business logic, nothing is going to be visible inside EPA Taskbox.

Regards,
Paulo Garrudo
I tried verifying  all the steps you mentioned
1.

2.

3. Business process is to show if there is any new new notification in the task box of the application who has Project manager role. I tried to upload a document and the person loggin as Projectmanager in the application should see this upload details in the task box.
But I see no task box.
For the step 3, you can run a query to know if the activity is associted to the user. 

Check below the query that allows you to know which activities are associted with the user. If you want to use it directly into the your database, first you need to convert to phisical table names.

SELECT
    {Activity}.[Id] AS IActivityId,
    ISNULL({Activity_Definition_Lang}.[Label], {Activity_Definition}.[Label]) AS Label,
    {Activity}.[Inbox_Detail] AS Detail,
    {Activity}.[Created] AS StartDate,
    {Activity}.[Due_Date] AS DueDate,
    CASE WHEN {Activity}.[Due_Date] IS NULL or {Activity}.[Due_Date]=@NullDate
        THEN 0 
        ELSE DATEDIFF(day, {Activity}.[Due_Date], getdate()) END AS DaysOverdue,
    ISNULL({Activity_Definition_Lang}.[Inbox_Instructions], {Activity_Definition}.[Inbox_Instructions]) AS InboxInstructions,
    {Activity_Definition}.[Skippable] AS Skippable,
    {Process}.[Id] AS ProcessId,
    ISNULL({Process_Definition_Lang}.[Label], {Process_Definition}.[Label]) AS ProcessLabel,
    {User}.[Id] UserMasterId,
    {User}.[Name] UserName,
    {Group}.[Id] GroupId,
    {Group}.[Name] GroupName,
    {ACTIVITY_INBOX}.*

  FROM {Activity}
  INNER JOIN {Activity_Status} ON {Activity}.[Status_Id] = {Activity_Status}.[Id] AND {Activity_Status}.[Appears_In_Inbox] = 1
  INNER JOIN {Activity_Definition} ON {Activity}.[Activity_Def_Id] = {Activity_Definition}.[Id] AND {Activity_Definition}.[Is_Active] = 1 
  INNER JOIN {Process} ON {Activity}.[Process_Id] = {Process}.[Id] AND {Process}.[Status_Id] = 1
  INNER JOIN {Process_Status} ON {Process}.[Status_Id] = {Process_Status}.[Id] AND {Process_Status}.[Is_Terminal] = 0
  INNER JOIN {Process_Definition} ON {Activity_Definition}.[Process_Def_Id] = {Process_Definition}.[Id] AND {Process_Definition}.[Is_Active] = 1 AND {Process_Definition}.[Is_Locked] = 0
  INNER JOIN {Tenant} ON {Activity}.[Tenant_Id] = {Tenant}.[Id] AND {Tenant}.[Is_Active] = 1
  INNER JOIN {Espace} ON {Process_Definition}.[Espace_Id] = {Espace}.[Id] AND {Espace}.[Is_Active] = 1 AND {Espace}.[Is_Locked] = 0
  LEFT JOIN {Activity_Definition_Lang} ON {Activity_Definition}.[Id] = {Activity_Definition_Lang}.[Activity_Def_Id] AND {Activity_Definition_Lang}.[Locale] = @Locale 
  LEFT JOIN {Process_Definition_Lang} ON {Process_Definition}.[Id] = {Process_Definition_Lang}.[Process_Def_Id] AND {Process_Definition_Lang}.[Locale] = @Locale 
  LEFT JOIN {User} ON {User}.[Id] = {Activity}.[User_Id]
  LEFT JOIN {Group} ON {Group}.[Id] = {Activity}.[Group_Id]
  LEFT JOIN {ACTIVITY_INBOX} ON {ACTIVITY_INBOX}.[ACTIVITYId] = {Activity}.[Id]
  WHERE (
    {Activity}.[User_Id] = @UserId 
  OR (  {Activity}.[User_Id] IS NULL 
    AND ({Activity}.[Group_Id] IS NULL OR EXISTS (
            SELECT 1
            FROM {Group_User}
            WHERE {Group_User}.[User_Id] = @UserId AND {Group_User}.[Group_Id] = {Activity}.[Group_Id]
            )
        )
    AND ({Activity_Definition}.[Requires_Permission] = 0 OR EXISTS (
            SELECT 1
            FROM {Activity_Def_Role}
            INNER JOIN {User_Effective_Role} 
                ON {User_Effective_Role}.[User_Id] = @UserId AND  {Activity_Def_Role}.[Role_Id] = {User_Effective_Role}.[Role_Id] 
            WHERE {Activity_Def_Role}.[Activity_Def_Id] = {Activity_Definition}.[Id]
            )
        )
    )
  )
/* Custom Filters */
  AND 1 = 1
/* End of Custom Filters */

ORDER BY 
    [DaysOverdue] DESC,
    [DueDate],
    [StartDate]