thinkwise-software-factory-messages

Creates and maintains modeled user-facing messages in Thinkwise Software Factory models.

5|Updated Aug 25, 2026
One-click install
npx skills add https://github.com/rkortThinkwise/sf-mcp-skills-temp --skill thinkwise-software-factory-messages-rkortthinkwise
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: thinkwise-software-factory-messages
Source: https://github.com/rkortThinkwise/sf-mcp-skills-temp/tree/main/thinkwise-software-factory-messages
Command: npx skills add https://github.com/rkortThinkwise/sf-mcp-skills-temp --skill thinkwise-software-factory-messages-rkortthinkwise

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve? Designing user-facing messages in a Thinkwise Software Factory model involves many interlocking decisions — severity, location, abort behavior, translations, message options, process-flow wiring, and database-error capture — and getting any of them wrong produces vague popups, message storms, or silently suppressed errors. This Skill guides the full message lifecycle so every msg row, translation, and caller is modeled correctly. ## Core Features & Use Cases - Message creation workflow: Step-by-step creation of msg rows, msg_option choice rows, and per-language translations, including the shared-translation gotcha where options like yes/no share one translation across all messages. - SQL and process-flow wiring: Verified patterns for calling tsf_send_message and tsf_send_progress with safe XML parameter building, abort/rollback handling, and routing process flows on exact msg_option status codes via the show_msg action. - Database error capture: Designing msg_error_code, regex, and priority rules that translate raw SQL Server constraint errors into business-friendly text without masking unrelated failures. - Use Case: When adding a confirmation to a Delete Customer task, the Skill helps you pick severity and location, draft parameterized text naming the record and consequence, create the msg and translations, and wire it as the task's confirmation message. ## Quick Start Ask the AI to create a Thinkwise message for a specific situation, such as an error when an order cannot be released, and have it model the msg row, translations, and SQL call.

Frequently Asked Questions about thinkwise-software-factory-messages

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I create a message in Thinkwise Software Factory?

Create a msg row with a purpose-based msg_id, severity, and msg_location_id, then add one transl_object_transl row per application language using type_of_object 4. For choice messages, add msg_option rows with response_type and status codes, then wire the caller via SQL, a task confirmation, or a process flow action.

How do I call a Thinkwise message from SQL?

Call the tsf_send_message subroutine with msg_id, parmtr_string, and abort_ind parameters. Build the parameter XML with for xml path('text') so special characters are escaped, and pair an aborting call with an explicit rollback and return since abort does not roll back transactions automatically.

How do I translate database constraint errors into friendly messages in Thinkwise?

Configure msg_error_code, msg_regular_expression, and priority on a msg row so the engine error is captured and replaced with localized text. Give business-specific captures a lower priority number than the generic base-model captures at priority 100, and anchor the specific constraint name in the regex.

Why does editing a yes/no message option change other messages in Thinkwise?

A msg_option's translated label is keyed by its bare msg_option_id, not scoped by msg_id, so every message using the option id yes shares one translation row. Editing it changes the label everywhere; create a distinct msg_option_id like yes_continue when a message needs its own wording.

How do I branch a Thinkwise process flow on the chosen message option?

Use a show_msg process action and capture the status_code output into a process variable via the pre-seeded process_action_modeler_fixed_output row, then branch with decision actions on the numeric status codes. For a simple binary yes/no message, the last_process_action_successful step condition is sufficient.

When should I avoid using popup messages in Thinkwise?

Avoid popups for routine feedback, successful saves, and Defaults or Layouts logic that fires frequently, since interrupting dialogs train users to dismiss them unread. Use panel or snackbar locations for non-blocking status, and reserve popups for errors, warnings, and choices that genuinely require attention.