How do you use the saveRecord() with state transitions in CBA?


The IBM TRIRIGA Connector for Business Applications (CBA) has the saveRecord() method. If saveRecord() runs without an action parameter, it triggers not-audited field validation (read-only, formulas, etc.). Is it fine to use this method without an action name?

For example, saveRecord could call a state transition by its name in a parameter. But a record could be in any state, so this state transition could be not-applicable to the current state. What if a record receives the wrong transition? (I guess InvalidActionNameException.) Should this situation be handled by process design? Or by state validations in the code which is difficult to maintain? Or another way?

[Admin: To see other related posts, use the CBA tag or Connector tag.]

Continue reading

Why is the lease record stuck in “Processing” during activation?


We are running TRIRIGA 10.5.2 and 3.5.2.2. Some of our lease records are getting stuck in “Processing” status after we try to activate the record. Since it is processing, we have no buttons at the top to Revise, Save, etc. This only happens sometimes, and only to lease records that have payment schedules. From the looks of it, all the payment line items do get created. A couple questions:

  • (1) Is there a fix to this to keep it from happening again?
  • (2) Can these records that are stuck in processing be pushed to active or do they have to be re-entered?

I was actually able to apply a workflow fix provided by IBM so that this will not happen going forward. So far, it has been working as planned…

With regards to getting the leases “unstuck”, I created an editable query, imported the State Transition Actions (on the Advanced tab in the query form), and ran the report to select and process the “stuck” leases. This worked with no issues and I did not have to delete or retire the leases. They were functioning properly after getting them out of the “Processing” state.

[Admin: This post is related to the 01.12.16 post about records getting stuck. To see other related posts, use the Performance tag or Workflow tag.]

Continue reading

Why doesn’t a state transition action show in a portal section?


In a portal section that contains a query, it seems that no action buttons that originate from a state transition are shown. They only show up when we enlarge or maximise the portal section. However, custom action buttons (such as Accept and Reject) that are linked with popup windows are visible both in a minimised portal section and in an enlarged portal section. Is this behaviour normal? Or is it a platform limitation?

Continue reading

IV87444: “Prompt Before Query” returns all results in TRIRIGA


When closing a window launched from a navigation portal, based on a “Prompt Before Query” report that did not have any filters in place, the system automatically runs the query without any filters and returns all records.

After we reviewed this, it was decided that the Cancel (“X”) button has no state value. So, it shouldn’t refresh any pages. Thus, the “X” button should emulate the browser window’s Close (“X”) button. Moving forward, we fixed an issue with “Prompt Before Query” in the application. Previously, when a user clicked on the “Add” button of any “Prompt Before Query” section and immediately closed the prompted window, the query still got refreshed and ran. So the query results got displayed after the action was called. But now, after clicking on the Close (“X”) button on any form, the calling window will not get refreshed unless other action buttons are clicked, such as “Save”, “Create Draft”, “Activate”, and so on.

Continue reading

How do you unretire and return records to a null state in bulk?


How do I do a mass-change of status from “Retired” to “Unretire” (Active), so that I can delete, i.e. change TRIRECORDSTATESY to “null”?

What happened was that I added Action Type (System Delete), Action Name (Delete) to my navigation item. However, when I used that “Delete” function after selecting multiple records on my query, the records just went from “Active” to “Retired”, which left it as TRIRECORDSTATESY = triRetired. I reviewed the state transition for that business object, and the transition can go from Null > triActive > triRetired.

Do I have to add a custom action to my navigation item to “Unretire” the records? And then add another custom action to my navigation item to set the TRIRECORDSTATESY to “null”? What value do I put in the Action Name?

[Admin: This post is related to the 02.24.16 post about executing the Cleanup Agent (a.k.a. Platform Maintenance Scheduler) after retiring a record, and the 04.13.16 post about moving a record to the null transition state.]

Continue reading

How are transitions related to status updates via workflow?


In general, record transitions from “Draft” to “Active” either invoke a Close via the transition, or via a workflow invoked during the called action in TRIRIGA. This allows for a page refresh, and is important in the context of the Status value displayed on the record.

In some cases, it is possible to encounter a race condition where the page refresh/reload action is caught behind asynchronous and synchronous processes. An example is in the Work Task record. If the transition action does NOT invoke a Close action, the record status can display “Review In Progress” after activation. This is described in the attached graphic…

As a rule, it is more process-safe to call Close when there are asynchronous workflows operating against the workflow at the time of a state transition, as shown on the right-hand side of this graphic. Data is not displayed as permanent till a Close or Permanent Save is called.

Continue reading

IV84742: CSRF vulnerability where actions do not require a token


Some state-changing actions are not having the security token properly enforced, which can be a potential CSRF exposure. CSRF attacks with no token can generally be addressed by using the KNOWN_REFERRER_LIST property in the TRIRIGAWEB.properties file.

We added security validation to several pages throughout the platform. The issue has been resolved.

Continue reading