Rick -
I created a new project using the Management Console, and it seems like the generated PRGs doesn't automatically create the MyProjectConfig object, or else I'm just not seeing things properly.
It seems that Server.oConfig is just the base config object created in wwServer::Init() as..
IF VARTYPE(THIS.oConfig) # "O"
THIS.oConfig = CREATE("wwServerConfig")
THIS.oConfig.cFileName = THIS.cAppIniFile
ENDIF
In that case, Server.oConfig doesn't contain the oMyProcess config object, nor the other default config objects like owwMaint.
I put the following in MyProjectMain::OnInit(), after the cAppIniFile property is set in there..
THIS.oConfig = CREATEOBJECT("MyProjectConfig")
THIS.oConfig.cFileName = THIS.cAppIniFile
THIS.ReadConfiguration()
That set up Server.oConfig with the oMyProcess config object, and the others. This also populates the standalone (PUBLIC) Config object, when debugging from a process method. Otherwise the Config memory variable is NULL.
Maybe this should be handled in a different way than I'm suggesting, but without it, the oMyProcess config object doesn't seem to be available.
- Mike McDonald
Should be there in <yourApp>Main.prg
.
Here's what I get with a new project:
***************************************************************
DEFINE CLASS Testproject3Config AS wwServerConfig
***************************************************************
oTestProcess = .NULL.
*** ADD CONFIG OBJECT TO CLASS ABOVE - DO NOT MOVE THIS LINE ***
owwMaint = .NULL.
FUNCTION Init
THIS.oTestProcess = CREATEOBJECT("TestProcessConfig")
*** ADD CONFIG INIT CODE ABOVE - DO NOT MOVE THIS LINE ***
THIS.owwMaint = CREATEOBJECT("wwMaintConfig")
ENDFUNC
ENDDEFINE
*EOC Testproject3Config
DEFINE CLASS wwMaintConfig as RELATION
cHTMLPagePath = "c:\WebConnectionProjects\TestProject3\Web\"
cDATAPath = ".\"
cVirtualPath = "/TestProject3/"
ENDDEFINE
Rick -
Yes, that configuration class code did get set up correctly, but the issue is that (in your example) the Testproject3Config class itself is never instantiated to Server.oConfig.
Server.oConfig is based on wwServerConfig, not Testproject3Config.
- Mike McDonald
Hmmm... I see what you're saying.
I vaguely remember making some changes to that logic to automatically pick up the configuration, but I don't see it in the code. It might have gotten rolled back due to some other changes that didn't work out.
What's missing is this:
*** Custom Server Configuration object - created at bottom of this PRG
*** Server and Process Config Settings are read from the INI above
THIS.oConfig = CREATEOBJECT("<%= pcAppName %>Config")
THIS.oConfig.cFileName = THIS.cAppIniFile
in the pcAppMain.prg
template's OnInit()
. This is the code that pulls in the configuration defined below in the template.
Fixed for 7.02.
FWIW, I'm rolling out 7.02 shortly (for registered customers) - there are a few bug fixes including all of yours 😃
+++ Rick ---