ClarionHub - Latest topics https://clarionhub.com/latest Latest topics en Thu, 23 Apr 2026 15:00:08 +0000 Tricks to get Cybersource Credit card processing post to work uncategorized MAP
CyberSource:GenerateSignatureFromParams PROCEDURE (STRING signatureParams,STRING secretKey),STRING
END

MAP
CyberSource:GenerateHeader PROCEDURE (*typCCRetailMsg ccMsg, *NetWebClient pWeb, STRING PostString)
END

CyberSource:GenerateSignatureFromParams PROCEDURE (STRING signatureParams,STRING secretKey)

strParams StringTheory
strKey StringTheory

CODE

strParams.SetValue(signatureParams,st:clip)
strKey.SetValue(secretKey,st:clip)
strKey.Base64Decode()
! strParams.ToUnicode()
strParams.SetValue(NetMakeHMAC(strParams.GetValuePtr(), strParams.Length(), strKey.GetValue(), net:CALG_SHA_256))
strParams.Base64Encode()
return strParams.GetValue()

CyberSource:GenerateHeader PROCEDURE (*typCCRetailMsg ccMsg, *NetWebClient pWeb, STRING PostString)

lSecretKey STRING(100)
KeyId STRING(100)
MerchantId STRING(100)
HostName STRING(100)
HostTarget STRING(100)

strPost StringTheory
strHost StringTheory

strURL StringTheory

sGMTDate STRING(64)

lstart LONG
lend LONG

CODE

  MerchantId             = ccMsg.AcctNo
  KeyId                  = ccMsg.Key
  lSecretKey             = ccMsg.PW

  strURL.SetValue(ccMsg.TxnURL)
  
  lstart = 0
  lend = 0
  
  HostName = CLIP(strURL.FindBetween('https://', '.com', lstart, lend)) & '.com'
  lstart = 0
  lend = 0

  HostTarget = 'post /' & CLIP(strURL.FindBetween('.com/', '', lstart, lend))

  strPost.SetValue(CLIP(PostString))
  strPost.SetValue(NetMakeHash(strPost.GetValuePtr(),strPost.Length(),net:CALG_SHA_256))
  strPost.Base64Encode()

  sGMTDate = pWeb.CreateGMTDate()  

  strHost.SetValue('host: ' & CLIP(HostName) & '<10>' &|
                               'v-c-date: '        & CLIP(sGMTDate)   & '<10>' & |
                               'request-target: ' & CLIP(HostTarget) & '<10>' &|
                               'digest: SHA-256=' & strPost.GetValue() & '<10>' &|
                               'v-c-merchant-id: ' & CLIP(MerchantId) & '')

  pWeb.CustomHeader = |
                               'v-c-merchant-id: ' & CLIP(MerchantId) & '<13,10>' &|
                               'v-c-date: ' & CLIP(sGMTDate) & '' & '<13,10>' &|
                               'digest: SHA-256=' & strPost.GetValue() & '<13,10>' &|
                               'Signature: keyid="' & CLIP(KeyId) & '", algorithm="HmacSHA256",' &|
                               ' headers="host v-c-date request-target digest v-c-merchant-id", signature="' &|
                               CyberSource:GenerateSignatureFromParams(strHost.GetValue(), lSecretKey) & '"'

1 post - 1 participant

Read full topic

]]>
https://clarionhub.com/t/tricks-to-get-cybersource-credit-card-processing-post-to-work/9068 Thu, 23 Apr 2026 15:00:08 +0000 No No No clarionhub.com-topic-9068 Tricks to get Cybersource Credit card processing post to work
Net Talk Calling Javascript function uncategorized C11.1 NT 14.37
I have a javascript function called move().

I have a NT button and i want to execute the move() javascript function when the button is pressed.
I have tried multiple permutations and this is my current permutation for the button embed. However, it is not correct as the function does not execute.
This is the current iteration:
p_web.script(‘$(’‘[“move()”]’‘).call();’)
Can someone help me with the correct syntax to call this function from a NT button?
THanks,
Ron

5 posts - 2 participants

Read full topic

]]>
https://clarionhub.com/t/net-talk-calling-javascript-function/9067 Wed, 22 Apr 2026 20:37:13 +0000 No No No clarionhub.com-topic-9067 Net Talk Calling Javascript function
Button embed issues to Run One Copy of Two Browses uncategorized I have two different browse procedures that depends on a user’s categories. (Each of these procedures are set to only run one copy.) I used a button “Selected” embed point to select the appropriate browse:

IF UserType1 = TRUE
   START(Browse1, 25000)
ELSE
   START(Browse2, 25000)
END

This works as expected EXCEPT when that procedure is closed and I re-select the log button, the Select embed doesn’t run a second time. (I have to select some other button/procedure then when I reselect the log button, it seems to have reset itself?)

I moved my code to the Accept embed point, and that works without having to select a different button/procedure. When I close the log procedure and re-press the log button, it opens the appropriate procedure that was “de-activated” using the Select embed.

HOWEVER, using the Accept embed point, bypasses the Browse “run only one” code. Pressing it three times opens 3 copies of the procedure.

My work around is to leave the button embed points empty and have the button call a “Source Procedure” with the same code I had in the embed points.

Any info/ideas on why the Accept embed bypasses the run only one code in the Browse Procedure?

14 posts - 6 participants

Read full topic

]]>
https://clarionhub.com/t/button-embed-issues-to-run-one-copy-of-two-browses/9066 Wed, 22 Apr 2026 16:07:58 +0000 No No No clarionhub.com-topic-9066 Button embed issues to Run One Copy of Two Browses
The hidden cost of AI "magic" uncategorized I’ve been working through another pattern I’m seeing more often with AI-assisted development and finally put it into a guide + field note pair.

Guide:

https://askgoodquestions.dev/guides/the-hidden-cost-of-magic

Field note:

https://askgoodquestions.dev/field-notes/when-working-code-isnt-enough

The idea is simple, but I think it’s important:

AI makes it easier than ever to get working code. But that doesn’t automatically mean you have something you can safely own.

The moment where things get interesting is not when the code first works. It’s when something needs to change.

That’s where lack of understanding shows up, and where the real cost starts to become visible.

I’d be interested to hear how others are handling this. Are you finding that AI-generated code is holding up well over time, or are you seeing friction when it comes to maintenance and changes?

26 posts - 11 participants

Read full topic

]]>
https://clarionhub.com/t/the-hidden-cost-of-ai-magic/9065 Wed, 22 Apr 2026 00:48:18 +0000 No No No clarionhub.com-topic-9065 The hidden cost of AI "magic"
bsQuery for SQL Server developers — feedback wanted on a focused query/reporting tool Showcase Hi All,

I’m looking for developer feedback on a new Windows desktop tool I’ve been
building called bsQuery: www.datafortress.app/bsquery

bsQuery is a focused SQL query, data inspection, reporting, and
troubleshooting utility currently aimed at Microsoft SQL Server. It is
designed for developers, support teams, consultants, software vendors, and
trusted power users who want a faster, cleaner workspace for day-to-day
database work without the overhead of launching a full IDE every time.

I personally use bsQuery every day in my own software development projects
and for end-user support, so this is a tool being shaped by real-world daily
use rather than just theory. I simply got tired of waiting for SSMS to load
and wanted something that works the way I want it to work after 26 years of
SQL Server development.

A few of the things it includes:

  • multi-tab SQL editor
  • schema browser w/fast double-click multi field SELECT build
  • results grid
  • exports (json, xml, excel, csv, pdf, html w/formatting options)
  • report generator (report query results w/chart embedding, lots of
    configuration parameters)
  • charting
  • Ask A.I. assistance (have it write the script)
  • script/snippet support (pinned queries option)
  • comparison/helper tools
  • safer SELECT-first workflow options
  • much more!

I’m also exploring OEM / embedded use for software vendors that want to
include it with their vertical applications.

For more details, screenshots, and a printable one-page overview, please
take a look here:

www.datafortress.app/bsquery

The page is easy to share internally with a manager, product owner, business
owner, or anyone involved in purchase approval. They can also print it or
forward the link to others who need to review the product.

At this stage, I’m mainly trying to gauge interest and hear what other
developers think:

  • Would a tool like this be useful in your environment?
  • What features would you want added?
  • What would make it more valuable than the tools you already use?

I’m also considering two possible editions:

bsQuery Standard - SQL Server only
bsQuery Pro - All engines (PostgreSQL, MySQL, Oracle added)

I’d genuinely appreciate any feedback, criticism, feature requests, or
thoughts on positioning.

Thanks for your interest!
Greg Berthume
www.datafortress.app

11 posts - 5 participants

Read full topic

]]>
https://clarionhub.com/t/bsquery-for-sql-server-developers-feedback-wanted-on-a-focused-query-reporting-tool/9063 Tue, 21 Apr 2026 01:02:41 +0000 No No No clarionhub.com-topic-9063 bsQuery for SQL Server developers — feedback wanted on a focused query/reporting tool
Write calculated field to another field uncategorized Hi. How can I wrute a calculated age field to another field in my Clarion 8 program

8 posts - 5 participants

Read full topic

]]>
https://clarionhub.com/t/write-calculated-field-to-another-field/9061 Mon, 20 Apr 2026 17:42:19 +0000 No No No clarionhub.com-topic-9061 Write calculated field to another field
Clarion developer available looking for remote work Jobs Hi All,

I’m Jacques Ooms from Brackenfell South Africa. I’ve been a Clarion Developer for many years, starting in Clarion 2.1 for DOS. The majority of my experience has been in Clarion. I have used all versions for Windows up to the current Clarion 10 and 11.

I got experience in many fields.

I’m looking for remote work.

I am available from end of May 2026. Please contact me at : [email protected]

1 post - 1 participant

Read full topic

]]>
https://clarionhub.com/t/clarion-developer-available-looking-for-remote-work/9060 Mon, 20 Apr 2026 11:51:06 +0000 No No No clarionhub.com-topic-9060 Clarion developer available looking for remote work
Displaying a Procedure Name questions Is it possible to get a procedure name to include it upon a window. I am trying to have a single procedure I can call via Actions > Call A Procedure > Procedure Name > “Work In Progress” that will include the procedure name. eg. If the menu choice was “Users_Browse”, the Work In Progress window would display something to the effect of “Users_Browse is a Work In Progress”.
Any tips would be most welcome.

12 posts - 4 participants

Read full topic

]]>
https://clarionhub.com/t/displaying-a-procedure-name/9056 Sat, 18 Apr 2026 14:15:50 +0000 No No No clarionhub.com-topic-9056 Displaying a Procedure Name
ANN: The new Ask Good Questions site is live uncategorized Since I know that some folks were getting an error accessing the website I wanted to post a quick note that the new Ask Good Questions site is now up:

askgoodquestions.dev

I’ve cleaned up the layout, made it easier to read, and added an email signup option for anyone who wants a notice when I post something new.

The focus of the site is still the same: practical thinking about how to use AI well in real work, without hype and without losing control of the process.

If you’d rather subscribe directly, you can do that here:

1 post - 1 participant

Read full topic

]]>
https://clarionhub.com/t/ann-the-new-ask-good-questions-site-is-live/9055 Sat, 18 Apr 2026 06:51:55 +0000 No No No clarionhub.com-topic-9055 ANN: The new Ask Good Questions site is live
Reading Errors after ACCESS calls uncategorized It is well known that the following code is wrong;

If Access:table:Whatever <> Level:Benign
      lastError = Errorcode()
   End

This is because the ABC Methods explicitly do not preserve the actual ErrorCode et al from the file driver operation. So you cannot test ErrorCode(), Error(), FileErrorCode() or FileError() after an ABC call.

The Errors are however pushed into the GlobalErrors object, and hence can be queried. So the following code works;

If Access:table:Whatever <> Level:Benign
    lastError = GlobalErrors.GetError(ErrClarion)
    lastErrorCode = GlobalErrors.GetErrorCode(ErrClarion)
    lastFileError = GlobalErrors.GetError(ErrFile)
    lastFileErrorCode = GlobalErrors.GetErrorCode(ErrFile)
   End

3 posts - 2 participants

Read full topic

]]>
https://clarionhub.com/t/reading-errors-after-access-calls/9054 Sat, 18 Apr 2026 03:15:52 +0000 No No No clarionhub.com-topic-9054 Reading Errors after ACCESS calls
Template and Clarion version 6x questions Hi,
I need some advice with the CW6 template. It’s been a really long time since I’ve done any template coding, so I’m a little confused and frustrated as to why the template I made, which I think is perfectly functional, is giving me errors when compiling:

Syntax error: Parameter type has wrong scope: DATAGROUP
Syntax error: No matching prototype available

I am attaching a zip file containing a small VC6 DLL file that only returns a messagebox when calling a function. In addition, there is a CW6 hand-coded example that works ok and an app made with an IDE that gives the above-mentioned errors when compiled. The template file I’m struggling with is also included.
If anyone would be willing to take a look at this, I would be really grateful.

Best regards,
-Ville Vahtera
CW6_TEST.zip (30.7 KB)

3 posts - 2 participants

Read full topic

]]>
https://clarionhub.com/t/template-and-clarion-version-6x/9053 Fri, 17 Apr 2026 21:51:41 +0000 No No No clarionhub.com-topic-9053 Template and Clarion version 6x
Setting SDI window position at runtime above Taskbar code Ok slight brain fart…

I need to position an SDI window at runtime (center horizontally and above the taskbar)

I use the GetPosition(myWindow, x, y, w ,h) but missing how to get the total width/height of the desktop and the height of the taskbar?

TIA

5 posts - 4 participants

Read full topic

]]>
https://clarionhub.com/t/setting-sdi-window-position-at-runtime-above-taskbar/9050 Fri, 17 Apr 2026 15:38:25 +0000 No No No clarionhub.com-topic-9050 Setting SDI window position at runtime above Taskbar
Ask Good Quesitons: The AI Junk Drawer Problem uncategorized I’ve posted a new guide and companion field note on Ask Good Questions that may ring true for anyone doing serious AI-assisted development.

Guide:

The AI Junk Drawer Problem

https://askgoodquestions.dev/guides/the-ai-junk-drawer-problem/

Field note:

When our AI workflow became a junk drawer

https://askgoodquestions.dev/field-notes/the-day-our-ai-workflow-became-a-junk-drawer/

The central idea is simple: more context is not always better context. Rules, notes, reminders, and examples can help, but after a certain point they can also start competing with each other and making the AI less precise.

In practical terms, the AI is no longer just doing the task. It is also sorting through the pile around the task.

That seems especially relevant for Clarion developers, where existing constraints, working patterns, version realities, and compatibility concerns often matter more than shiny rewrites or modern-looking substitutions.

I’ll be exploring this idea further in the upcoming book, Real Programmers Use AI.

1 post - 1 participant

Read full topic

]]>
https://clarionhub.com/t/ask-good-quesitons-the-ai-junk-drawer-problem/9049 Thu, 16 Apr 2026 06:07:55 +0000 No No No clarionhub.com-topic-9049 Ask Good Quesitons: The AI Junk Drawer Problem
Supporting ClarionHub community Hi all,

Just a quick note to let everyone know that I’ve set up a simple way to support ClarionHub, if anyone wishes to (see the coffee cup in the header).

ClarionHub was originally created and run by Brahn, and after his passing in 2021, Rebecca, Brahn’s wife, very kindly helped keep things running behind the scenes. I’ve since taken over the hosting and ongoing management to keep the site available for the community.

There are ongoing costs involved in running the site, so I’ve added a “buy me a coffee” link for anyone who would like to contribute.

:backhand_index_pointing_right: https://buymeacoffee.com/clarionhub

This is completely optional — the site will remain free to use as always — but I wanted to make the option available.

Thanks,
Mark

7 posts - 5 participants

Read full topic

]]>
https://clarionhub.com/t/supporting-clarionhub/9045 Wed, 15 Apr 2026 14:15:23 +0000 No No No clarionhub.com-topic-9045 Supporting ClarionHub
Access violation error when running the application after installed NetTalk14 apps questions I’m getting access violation error with below log file ,how to resolve it step by step.

Exception occurred at address 01022AA9
Exception code C0000005: Access Violation
Process PID=19320  Image: C:\KeyProj\Clarion8\Municipal\run\kf80.exe
Thread 1  Handle=00000244  TID=14864

Exception parameters:
00000000
00000070

EAX=00000000    EBX=00000001    ECX=0112F148    EDX=00458100
ESI=03630ED8    EDI=0019FE2F    EBP=0019FEC4    ESP=0019FDCC
EIP=01022AA9    FLG=00010246

Call Stack:
01022AA9
010BDA03
76F2839E
76F2836E

Clarion modules:
01000000  08.00:9759  C:\KeyProj\Clarion8\Municipal\run\ClaRUN.dll
00A70000  08.00:9759  C:\KeyProj\Clarion8\Municipal\run\ClaDOS.dll
04A00000  08.00:9661  C:\KeyProj\Clarion8\Municipal\run\ClaIP.dll
13000000  08.00:9759  C:\KeyProj\Clarion8\Municipal\run\CLAnet.dll
04800000  08.00:9759  C:\KeyProj\Clarion8\Municipal\run\cwhhla.dll
00EE0000  08.00:9759  C:\KeyProj\Clarion8\Municipal\run\ClaBAS.dll
00F00000  07.03:7900  C:\KeyProj\Clarion8\Municipal\run\claelp.dll
00F30000  08.00:9759  C:\KeyProj\Clarion8\Municipal\run\ClaOLE.dll
01D20000  08.00:9759  C:\KeyProj\Clarion8\Municipal\run\ClaASC.dll
00FE0000  08.00:9759  C:\KeyProj\Clarion8\Municipal\run\ClaTPS.dll
01A80000  08.00:9759  C:\KeyProj\Clarion8\Municipal\run\CYBER80.dll
00F50000  08.00:9759  C:\KeyProj\Clarion8\Municipal\run\ELPSETUP.dll
01B40000  08.00:9759  C:\KeyProj\Clarion8\Municipal\run\KFMAIL80.dll
01CD0000  08.00:9759  C:\KeyProj\Clarion8\Municipal\run\ClaDB3.dll
01C80000  08.00:9759  C:\KeyProj\Clarion8\Municipal\run\ClaMSS.dll
05C00000  08.00:9759  C:\KeyProj\Clarion8\Municipal\run\TC80QWX.dll
01540000  08.00:9759  C:\KeyProj\Clarion8\Municipal\run\MTFILE80.dll
01180000  08.00:9759  C:\KeyProj\Clarion8\Municipal\run\KFGBL80.dll
00400000  08.00:9759  C:\KeyProj\Clarion8\Municipal\run\kf80.exe

Thread stack:
0019FDC0: 00 81 45 00  48 F1 12 01  9C 2A 02 01  2F FE 19 00 
0019FDD0: 00 00 00 00  C4 FE 19 00  EC FD 19 00  D8 0E 63 03 
0019FDE0: 00 81 45 00  08 81 45 00  2F FE 19 00  00 FE 19 00 
0019FDF0: 01 00 00 00  2F FE 19 00  50 2A 00 08  64 3E 00 08 
0019FE00: 00 00 00 00  0F E4 01 01  00 00 00 00  64 F1 42 00 
0019FE10: C4 FE 19 00  28 FE 19 00  08 81 45 00  D8 0E 63 03 
0019FE20: 00 00 00 00  D8 0E 63 03  64 F1 42 08  81 45 00 BC 
0019FE30: FB 12 01 00  00 00 00 00  FF FF FF 01  50 2A 00 08 
0019FE40: 64 3E 00 08  E2 B9 01 01  0C 83 42 00  17 FF 19 00 
0019FE50: DB 7E 42 00  00 00 00 00  48 E8 42 00  C4 FE 19 00 
0019FE60: 74 FE 19 00  A8 EC 42 00  0C 83 42 00  17 FF 19 00 
0019FE70: 64 F1 42 00  1B 1F 40 00  C7 DB 0B 01  CC FF 19 00 
0019FE80: 03 DA 0B 01  C4 FE 19 00  9C FE 19 00  13 4A 13 01 
0019FE90: 0C 83 42 00  17 FF 19 00  0C 83 42 00  00 50 02 05 
0019FEA0: 00 00 00 0C  83 42 00 13  00 00 00 13  2A DA 0B 01 
0019FEB0: BC 4A 13 01  2A 6F 11 01  17 FF 19 00  DC F2 19 00 
0019FEC0: 2C F3 19 00  80 FF 19 00  03 DA 0B 01  CC FF 19 00 
0019FED0: CC FF 19 00  45 6F 11 01  17 FF 19 00  17 FF 19 00 
0019FEE0: 08 DB 0B 01  38 96 AE 00  03 DA 0B 01  17 FF 19 00 
0019FEF0: 5C ED 42 00  0C 83 42 00  80 FF 19 00  10 FF 19 00 
0019FF00: 01 00 00 00  20 B9 45 00  00 70 45 00  0C 83 42 00 
0019FF10: FF 3D 0B 17  FF 19 00 BC  4A 13 01 BC  FE 19 00 04 
0019FF20: 00 00 00 3C  4B 13 01 38  96 AE 00 78  93 12 01 8C 
0019FF30: 93 12 01 A8  93 12 01 9C  93 12 01 C4  93 12 01 B8 
0019FF40: 93 12 01 00  00 00 00 08  DB 0B 01 0C  83 42 00 13 
0019FF50: 7C D6 0B 01  58 1E 40 00  58 1E 40 00  58 1E 40 00 
0019FF60: 00 00 00 00  0C 83 42 00  01 00 00 00  5C ED 42 00 
0019FF70: 68 1E 40 00  C9 FC 02 75  00 40 2D 00  B0 FC 02 75 


0019FF80: DC FF 19 00  9E 83 F2 76  00 40 2D 00  C9 71 B4 C2 
0019FF90: 00 00 00 00  00 00 00 00  00 40 2D 00  00 00 00 00 
0019FFA0: 00 00 00 00  00 00 00 00  00 00 00 00  00 00 00 00 
0019FFB0: 00 00 00 00  00 00 00 00  00 00 00 00  00 00 00 00 
0019FFC0: 00 00 00 00  8C FF 19 00  00 00 00 00  E4 FF 19 00 
0019FFD0: 60 B6 F3 76  8D 45 51 B4  00 00 00 00  EC FF 19 00 
0019FFE0: 6E 83 F2 76  FF FF FF FF  4D 95 F4 76  00 00 00 00 
0019FFF0: 00 00 00 00  58 1E 40 00  00 40 2D 00  00 00 00 00

12 posts - 6 participants

Read full topic

]]>
https://clarionhub.com/t/access-violation-error-when-running-the-application-after-installed-nettalk14-apps/9044 Wed, 15 Apr 2026 13:33:02 +0000 No No No clarionhub.com-topic-9044 Access violation error when running the application after installed NetTalk14 apps
Net Talk Server error: 501 Not Implemented : PHP Support not activated on this serve uncategorized HI,
I have a Net Talk server NT14.37 with c 11.1. It has been running fine on a Windows 11 VPS. All of a sudden I am getting these PHP support not activated on this server and one procedure browse j_pickup is telling me it cannot find the file. This is the garbage I am getting :slight_smile: Error [-1:2] opening file: C:\Webapp\InspAuto\web\a_mem_browse_j_pickup-a_mem_browse_j_pickup_value
15 34.444586 30068 InspAuto.exe [st][3] [netTalk][thread=3] SendError = 501 Not Implemented : PHP Support not activated on this server. FileRequest=[admin.php]
16 35.888494 30068 InspAuto.exe [st][3] [netTalk][thread=3] SendError = 501 Not Implemented : PHP Support not activated on this server. FileRequest=[66.php]
17 37.217808 30068 InspAuto.exe [st][3] [netTalk][thread=3] SendError = 501 Not Implemented : PHP Support not activated on this server. FileRequest=[a5.php]
18 39.281307 30068 InspAuto.exe [st][4] [netTalk][thread=4] SendError = 501 Not Implemented : PHP Support not activated on this server. FileRequest=[ol.php]
19 45.702755 30068 InspAuto.exe [st][3] [netTalk][thread=3] Error [-1:2] opening file: C:\Webapp\InspAuto\web\1.1
20 45.704805 30068 InspAuto.exe [st][3] [netTalk][thread=3] Sendfile error 404, Error 404 filename=C:\Webapp\InspAuto\web\1.1
21 45.704878 30068 InspAuto.exe [st][3] [netTalk][thread=3] SendError = 404 The page cannot be found : The page you are looking for might have been removed, had its name changed, or is temporarily unavailable. FileRequest=[1.1]
22 51.477169 30068 InspAuto.exe [st][3] [netTalk][thread=3] Error [-1:2] opening file: C:\Webapp\InspAuto\web\1.1
23 51.477261 30068 InspAuto.exe [st][3] [netTalk][thread=3] Sendfile error 404, Error 404 filename=C:\Webapp\InspAuto\web\1.1
24 51.477351 30068 InspAuto.exe [st][3] [netTalk][thread=3] SendError = 404 The page cannot be found : The page you are looking for might have been removed, had its name changed, or is temporarily unavailable. FileRequest=[1.1]
25 53.147641 30068 InspAuto.exe [st][3] [netTalk][thread=3] SendError = 501 Not Implemented : PHP Support not activated on this server. FileRequest=[style.php]
26 54.837910 30068 InspAuto.exe [st][3] [netTalk][thread=3] Error [-1:2] opening file: C:\Webapp\InspAuto\web\1.1
27 54.839129 30068 InspAuto.exe [st][3] [netTalk][thread=3] Sendfile error 404, Error 404 filename=C:\Webapp\InspAuto\web\1.1
28 54.839183 30068 InspAuto.exe [st][3] [netTalk][thread=3] SendError = 404 The page cannot be found : The page you are looking for might have been removed, had its name changed, or is temporarily unavailable. FileRequest=[1.1]
29 56.743131 30068 InspAuto.exe [st][3] [netTalk][thread=3] Error [-1:2] opening file: C:\Webapp\InspAuto\web\1.1
30 56.744846 30068 InspAuto.exe [st][3] [netTalk][thread=3] Sendfile error 404, Error 404 filename=C:\Webapp\InspAuto\web\1.1


HELP? What is this PHP stuff. Did malicious actor do something or did WIndows update and create this mess?
THanks,
ROn

5 posts - 3 participants

Read full topic

]]>
https://clarionhub.com/t/net-talk-server-error-501-not-implemented-php-support-not-activated-on-this-serve/9043 Wed, 15 Apr 2026 11:49:19 +0000 No No No clarionhub.com-topic-9043 Net Talk Server error: 501 Not Implemented : PHP Support not activated on this serve
🚀 Clarion VS Code Extension – Updates from v0.8.4 to v0.9.1 Announcements I’m pleased to announce the release of v0.9.1 of the Clarion VS Code Language Extension.

It’s been a while since my last update, with features and improvements added incrementally over several releases. Below is a summary of what’s new since then. This doesn’t cover everything, so please check the changelogs on the repo for full details.


:rocket: New Features

  • Added Find All References (Shift+F12) with full project-wide, scope-aware support
  • Added Rename Symbol (F2) with safe cross-workspace renaming
  • Added full Clarion INTERFACE support (hover, navigation, references, IMPLEMENTS)
  • Added dot-completion (IntelliSense) for SELF, PARENT, variables, and classes
  • Added signature help for methods and inherited parameters
  • Added deep chained navigation (e.g. SELF.Order.RangeList.Init)
  • Added typed variable member navigation (obj.Method patterns)
  • Added workspace-wide symbol search (Ctrl+T)
  • Added document highlight for symbol usage within the current file
  • Added syntax highlighting for Clarion template files (.tpl/.tpw)
  • Added COMPILE/OMIT folding support
  • Added 25+ built-in function hovers

:hammer_and_wrench: Improvements

  • Improved Go to Implementation (Ctrl+F12) performance (50–70% faster)
  • Improved hover clarity across classes, variables, and structures
  • Improved MAP and cross-file resolution accuracy and speed
  • Improved dependency-aware build order with progress indicators
  • Improved Solution View with batch UpperPark actions and project tools
  • Improved support for INCLUDE/MEMBER-based symbol resolution
  • Enabled hover/F12/Ctrl+F12 for equates and typed variables across files
  • Added documentation comments to hover output
  • Removed indentation limits for structure recognition
  • Switched to esbuild for faster builds and a smaller VSIX

:bug: Fixes

  • Numerous fixes across parsing, navigation, and folding

  • Examples include:

    • Fixed APPLICATION and nested MENU/MENUBAR folding
    • Fixed FAR and navigation issues for local CLASS labels
    • Fixed FUNCTION declarations and parameter edge cases
    • Added detection for missing END in key structures

:link: GitHub: GitHub - msarson/Clarion-Extension: VS Code Extension for Clarion · GitHub

Feedback welcome :+1:

1 post - 1 participant

Read full topic

]]>
https://clarionhub.com/t/clarion-vs-code-extension-updates-from-v0-8-4-to-v0-9-1/9042 Tue, 14 Apr 2026 20:20:18 +0000 No No No clarionhub.com-topic-9042 🚀 Clarion VS Code Extension – Updates from v0.8.4 to v0.9.1
Size (number of characters ) of record in TPS table - for SQL conversion uncategorized Hi,
Getting ready to convert TPS to MSSQL. MSSQL has a record length of 8K chars. I want to see the lengths of my records in my TPS files to see what length they are. No blobs. So, question is what is the easiest way to get the length of the records in each of my 12 TPS files?
Thanks,
Ron

5 posts - 4 participants

Read full topic

]]>
https://clarionhub.com/t/size-number-of-characters-of-record-in-tps-table-for-sql-conversion/9041 Tue, 14 Apr 2026 15:31:24 +0000 No No No clarionhub.com-topic-9041 Size (number of characters ) of record in TPS table - for SQL conversion
Licentio — License Management SaaS built by a Clarion developer, for Clarion developers marketplace Hi everyone,
I’ve been working on a side project for the past few months and I think it might be useful for many of you.
Licentio (licentio.dev) is a License-as-a-Service platform that lets you manage licenses for your Clarion applications from a clean web dashboard — expiry dates, execution limits, geographic restrictions, machine control, and AI-powered alerts.
Integration from Clarion is straightforward using NetTalk:

net.Start()
net.SetValue('', '{"program_id":"xxx","client_id":"xxx","api_key":"xxx"}', |
             net:NoUrlEncode, 'application/json', '')
net.ContentType = 'application/json'
net.Post('https://licentio.dev/validate')

The response is a simple JSON that you parse with jFiles:

{
  "valid": true,
  "message": "License valid",
  "license_type": "EXPIRY_DATE",
  "days_remaining": 18,
  "warning": true,
  "warning_message": "License expires in 18 days"
}

Free plan available — no credit card required.
I’ll be doing a live demo this Saturday at the Clarion webinar (Spanish version). Happy to answer any questions here.
:backhand_index_pointing_right: licentio.dev

1 post - 1 participant

Read full topic

]]>
https://clarionhub.com/t/licentio-license-management-saas-built-by-a-clarion-developer-for-clarion-developers/9038 Mon, 13 Apr 2026 06:04:58 +0000 No No No clarionhub.com-topic-9038 Licentio — License Management SaaS built by a Clarion developer, for Clarion developers
How to have a Guest User that has View only for all Forms and Browses uncategorized I presently have a user logon that has an access level that hides and unhides various procedures depending on a user level field.
Is there a way with which I can have a simple setting to allow a Guest user have the ability to view but not add, change or delete?

7 posts - 5 participants

Read full topic

]]>
https://clarionhub.com/t/how-to-have-a-guest-user-that-has-view-only-for-all-forms-and-browses/9037 Sun, 12 Apr 2026 11:36:10 +0000 No No No clarionhub.com-topic-9037 How to have a Guest User that has View only for all Forms and Browses
Bug in #For(%Symbol) when using #Delete(%Symbol) skips some uncategorized Found a bug in the #For() template command which intermittently doesnt delete all instances.

Its like the internal counter gets messed up after the delete, ie record 2, delete record 2, record 3 becomes record 2 and then the #For fetches record 3, skipping the replacement record 2.

As #For is mainly used with builtin symbols which cant be deleted, this might explain why it exists.

#For(%MultiSymbol)
#Delete(%MultiSymbol)
#EndFor

Wont delete all instances of the %MultiSymbol.

11 posts - 3 participants

Read full topic

]]>
https://clarionhub.com/t/bug-in-for-symbol-when-using-delete-symbol-skips-some/9035 Thu, 09 Apr 2026 11:14:37 +0000 No No No clarionhub.com-topic-9035 Bug in #For(%Symbol) when using #Delete(%Symbol) skips some
Encrypt string using RSAES-OAEP with SHA-256 and MGF1 hash functions uncategorized I need encrypt a string ( REST API access token ) with a certificate using RSAES-OAEP (RSA Encryption Scheme - Optimal Asymmetric Encryption Padding) with SHA-256 and MGF1 hash functions. I am getting the PEM-encoded X.509 certificate (at least it looks like PEM judging by the beginning) from here https://api-test.ksef.mf.gov.pl/api/v2/security/public-key-certificates .
Was thinking of using Cryptonite but it only supports .pfx (PKCS#12) cartificate which requires a private key and I don’t have a private key for this certificate.

I tried importing the key but I’m getting “Error in Cryptonite.ImportKey.2(): Could not import the key onto the machine, CryptImportKey API failed. [1628]
Windows CryptoAPI error -2146893817: 80090007h: Bad Version of provider.”. Unfortunately I have to use that specific key.

My Clarion code:

PublicKeyLen         LONG                                  ! 
PublicKey            STRING(4096)                          ! 
PublicKey64          STRING(4096)                          ! 
CODE
! Import Public Key  
PublicKey64 = 'MII....iL5l1VxbU='    ! This is the whole key from url above 
str.SetValue(PublicKey64,st:clip)
str.Base64Decode() 
PublicKeyLen = str.Length()
PublicKey = str.GetValue()
If Crypto.ImportKey(PublicKey, PublicKeyLen, Crypto.hExchangeKey)  <> Crypto:OK
  stop('Import Failed')
End

I have this working Python script that does that

import base64
import hashlib
import logging
import os
import time
from dataclasses import dataclass

import requests
from typing import Optional
from cryptography import x509
from cryptography.hazmat.backends import default_backend
from cryptography.hazmat.primitives import hashes
from cryptography.hazmat.primitives.asymmetric import padding as asym_padding
from cryptography.hazmat.primitives.ciphers import Cipher, algorithms, modes

    def _get_encryption_public_key(self):
        """
        Returns:
            RSA key (cryptography).

        Raises:
            RuntimeError: Przy błędzie HTTP lub braku certyfikatu.
        """
        url = f"{self.base_url}/security/public-key-certificates"
        response = requests.get(url, headers={"Accept": "application/json"}, timeout=30)
        if response.status_code != 200:
            raise RuntimeError(
                f"Błąd pobierania certyfikatów: HTTP {response.status_code} – {response.text}"
            )
        certs = response.json()
        try:
            token_cert = next(c for c in certs if "KsefTokenEncryption" in c["usage"])
        except StopIteration:
            raise RuntimeError("Brak certyfikatu KsefTokenEncryption w odpowiedzi API")

        cert_der = base64.b64decode(token_cert["certificate"])
        cert = x509.load_der_x509_certificate(cert_der, default_backend())
        return cert.public_key()

    def _encrypt_token(self, timestamp_ms: int, public_key) -> str:
        """
        Encrypts token in format "{token}|{timestampMs}" with RSA-OAEP SHA-256 key.

        Args:
            timestamp_ms: Timestamp from challenge response (Unix ms).
            public_key: public key RSA MF.

        Returns:
            str: Encrypted Base64 encoded token.
        """
        token_string = f"{self.api_token}|{timestamp_ms}"
        encrypted = public_key.encrypt(
            token_string.encode("utf-8"),
            padding.OAEP(
                mgf=padding.MGF1(algorithm=hashes.SHA256()),
                algorithm=hashes.SHA256(),
                label=None,
            ),
        )
        return base64.b64encode(encrypted).decode("ascii")```

How can this be accomplished in Clarion? Any syggestions?

5 posts - 2 participants

Read full topic

]]>
https://clarionhub.com/t/encrypt-string-using-rsaes-oaep-with-sha-256-and-mgf1-hash-functions/9034 Wed, 08 Apr 2026 22:47:02 +0000 No No No clarionhub.com-topic-9034 Encrypt string using RSAES-OAEP with SHA-256 and MGF1 hash functions
NetTalk Proxy server not working questions I am trying to make my application work with Microsoft’s DevProxy (during development) to better work with API development using NetTalk WebClient - I can get the proxy working in the Demo application with 127.0.0.1 as ProxyServer and 8000 as ProxyPort, also setting SSLCertificateOptions.DontVerifyRemoteCertificateCommonName and SSLCertificateOptions.DontVerifyRemoteCertificateWithCARoot to true - but inside the Demo application it does send and receive the request - but in my own application, it just straight goes from GET to PageReceived with no error and no data - doesn’t even make the call at all.

Now the only difference I can still find is my application is Legacy and the Demo is ABC - this can’t be it, can it? The reason it works in one and not the other?

5 posts - 2 participants

Read full topic

]]>
https://clarionhub.com/t/nettalk-proxy-server-not-working/9033 Wed, 08 Apr 2026 14:43:57 +0000 No No No clarionhub.com-topic-9033 NetTalk Proxy server not working
Does Noyantis still exists? uncategorized Hi
Anyone know if Noyantis still exists?
It seems like it’s been a while since they’ve had bi-monthly updates.

Or is it just because they’re so awfully bad at maintaining their website?

Their timeline under updates has been down since February 2024, their documentation under support has been saying “Articles coming soon” for years - and the latest news is ANN : noyantis ReportGrid Wrapper Template : v25.11.12 from November 12, 2025?

//Peter

6 posts - 5 participants

Read full topic

]]>
https://clarionhub.com/t/does-noyantis-still-exists/9032 Tue, 07 Apr 2026 17:45:22 +0000 No No No clarionhub.com-topic-9032 Does Noyantis still exists?
How to have an APP with Reports separate from the Main App uncategorized Hello everyone.
I need to separate a report from the main app.
For example:
→ parent.app with all functionalities
→ report.app only with the report
Explaining:
By separating the two, I can update only one or the other, without having to stop all the work on the client, when the update is for the layout, for example.
Is something like this possible?
return#=report.app(data)
if return false…

Only this report is customized for each client.

I would like a way to compile only this report, so that when I update the layout I don’t have to compile the entire system.

Which is what I do today.

thanks.

17 posts - 5 participants

Read full topic

]]>
https://clarionhub.com/t/how-to-have-an-app-with-reports-separate-from-the-main-app/9030 Tue, 07 Apr 2026 15:22:43 +0000 No No No clarionhub.com-topic-9030 How to have an APP with Reports separate from the Main App
Ask Good Questions: When AI Defaults to Newer, Better, Faster uncategorized I put up a new guide and a matching field note on Ask Good Questions that I think may resonate with developers using AI in real projects:

Guide:
When AI Defaults to Newer, Better, Faster
https://askgoodquestions.dev/guides/when-ai-defaults-to-newer-better-faster/

Field note:
The Moment I Realized the AI Needed the Rules First
https://askgoodquestions.dev/field-notes/the-moment-i-realized-the-ai-needed-the-rules-first/

One of the patterns I keep seeing is that if you let AI move into implementation without first loading the real project constraints, it tends to start “helping” by leaning toward newer libraries, cleaner rewrites, more modern approaches, and other things that may be completely wrong for the actual environment.

That is fine in theory. In real projects, especially older or mixed environments, it can get you into trouble fast.

This will also be part of my upcoming book, Real Programmers Use AI.

15 posts - 4 participants

Read full topic

]]>
https://clarionhub.com/t/ask-good-questions-when-ai-defaults-to-newer-better-faster/9029 Tue, 07 Apr 2026 10:01:03 +0000 No No No clarionhub.com-topic-9029 Ask Good Questions: When AI Defaults to Newer, Better, Faster
Files associated to which program? uncategorized Hi, all

How do I know from inside a regular non-elevated exe clarion program, to which program is associated a given file extension? For example, I want to use Shellexecute to open a JPG, but before that I want to know if the JPG extension is associated with MSPaint or any other program, to execute different code previous to the call.

Kind regards,
Jorge Lavera

6 posts - 3 participants

Read full topic

]]>
https://clarionhub.com/t/files-associated-to-which-program/9025 Thu, 02 Apr 2026 22:07:11 +0000 No No No clarionhub.com-topic-9025 Files associated to which program?
Looking for part time clarion/c# work Jobs Hi my name is Keith Ferguson I have over 20 years of clarion programming at Advance Auto Parts point of sale which came from the company JDA. We started with Clarion 5b and recently worked over a several year upgrade to love to clarion 11, which is now in production in over 4000 stores and 30000 plus registers. I also can do c#, which our point of sale has .net modules where the clarion code and .net code communicate. Anyway my apologies on rambling just wanted to let you know I have tons of experience and projects under my belt. Are you still looking for anyone to help you with any projects perhaps 20 or less hours a week or do you know of anyone that is looking for a part time clarion/c# developer? I can send you my resume if you are interested.

Thanks,
Keith Ferguson

5 posts - 2 participants

Read full topic

]]>
https://clarionhub.com/t/looking-for-part-time-clarion-c-work/9024 Thu, 02 Apr 2026 00:49:26 +0000 No No No clarionhub.com-topic-9024 Looking for part time clarion/c# work
Delete DIR with libCurl - FTP Manager uncategorized Hello everyone!

I’m implementing FTP in my system using the FTP Manager from our friend Mike Duglas.

Everything seems to be working fine.

But when I try to delete a directory, I get an error.

I’ve tried to fix it but haven’t been able to.

Does anyone have a solution?

The error message is below.

Thanks everyone.

Log libCurl:

. . . . 
HEADER_OUT: LIST
HEADER_IN: 150 Opening ASCII mode data connection for file list
TEXT: Maxdownload = -1
TEXT: abort upload
TEXT: Remembering we are in dir "www/usuarios/ftp/Ana_Lara_Cristo-00272/"
HEADER_IN: 226 Transfer complete
TEXT: Connection #0 to host ftp.softjep.com left intact
TEXT: Re-using existing connection with host ftp.softjep.com
HEADER_OUT: DELE /www/usuarios/ftp/Ana_Lara_Cristo-00272
HEADER_IN: 550 /www/usuarios/ftp/Ana_Lara_Cristo-00272: Is a directory
TEXT: QUOT command failed with 550
TEXT: shutting down connection #0

I did some research and it might be that the command to delete an empty directory needs to be
ftp .... -Q RMD dirToDelete
But I don’t know how to implement that in Mike’s code.

4 posts - 3 participants

Read full topic

]]>
https://clarionhub.com/t/delete-dir-with-libcurl-ftp-manager/9023 Wed, 01 Apr 2026 15:31:56 +0000 No No No clarionhub.com-topic-9023 Delete DIR with libCurl - FTP Manager
vuMailKit Basic Edition is now available marketplace vuMailKit Basic Edition has now been released as the modern replacement for vuMail.

It supports secure SMTP, POP3, Microsoft OAuth, Google OAuth, built-in autodetect, and a guided Setup Wizard designed to make account setup dramatically easier for both developers and end users.

This is especially relevant for three groups of Clarion developers:

  • developers who need a current email solution for modern secure hosts
  • existing vuMail users who need a practical upgrade path away from the old CDO-based approach
  • developers using other mail solutions who would like to reduce setup headaches and support calls by using our autodetect and wizard

One of the features we are emphasizing is Zero Code OAuth. The developer does not have to write OAuth code. The wizard handles the user-facing flow, and the DLL handles the OAuth implementation behind the scenes.

We also published the docs and a dedicated OAuth setup guide that shows developers where to go to get their credentials, what to enter, and where to put it in the product.

There is also a downloadable demo that lets you:

  • run the Setup Wizard
  • set up a profile
  • send a test message
  • go back and try different types of accounts

So whether you want to test a standard email account, Gmail / Google OAuth, or Microsoft OAuth, you can see it working for yourself.

Pricing

  • New purchase: $149.00
  • Upgrade from any version of vuMail: $99.99

Links:

5 posts - 3 participants

Read full topic

]]>
https://clarionhub.com/t/vumailkit-basic-edition-is-now-available/9021 Tue, 31 Mar 2026 12:33:13 +0000 No No No clarionhub.com-topic-9021 vuMailKit Basic Edition is now available