Child pages
  • headlessclient

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Starting

...

Headless

...

Clients

...

from

...

Debug

...

Clients

...

in

...

Servoy

...

Developer

...

When

...

starting

...

a

...

Headless

...

Client

...

from

...

a

...

Debug

...

Client

...

in

...

Servoy

...

Developer,

...

there

...

are

...

restrictions

...

to

...

which

...

solution

...

can

...

be

...

started

...

in

...

the

...

Headless

...

Client.

...

  • Prior

...

  • to

...

  • Servoy

...

  • 6.1.1,

...

  • the

...

  • Headless

...

  • Client

...

  • would

...

  • always

...

  • start

...

  • with

...

  • the

...

  • Active

...

  • Solution,

...

  • regardless

...

  • of which

...

  • solution

...

  • would

...

  • be

...

  • specified

...

  • As

...

  • of

...

  • Servoy

...

  • 6.1.1

...

  • the

...

  • specified

...

  • solution

...

  • will

...

  • be

...

  • honored,

...

  • as

...

  • long

...

  • as

...

  • the

...

  • specified

...

  • solution

...

  • is

...

  • the

...

  • Active

...

  • Solution

...

  • or

...

  • a

...

  • solution/module

...

  • included

...

  • in

...

  • the

...

  • Active

...

  • Solution

...

By

...

default

...

the

...

Headless

...

Client

...

which

...

is

...

started

...

will

...

be

...

a

...

debug-able

...

Headless

...

Client.

...

As

...

there

...

can

...

be only

...

one

...

debug-able

...

Client

...

of

...

a

...

specific

...

type

...

at

...

the

...

same

...

time

...

(so

...

one

...

debug-able

...

Web

...

Client,

...

one

...

debug-able

...

Smart

...

Client

...

and

...

one

...

debug-able

...

Headless

...

Client),

...

starting

...

a

...

new

...

debug-able

...

Headless

...

Client

...

will

...

close

...

an

...

existent

...

debug-able

...

Headless

...

Client.

...

It's

...

possible

...

to

...

start

...

non-debug-able

...

Headless

...

Clients

...

using

...

the

...

Headless

...

Client

...

plugin

...

while

...

in

...

Servoy

...

Developer

...

by

...

sending

...

in

...

the

...

value

...

'nodebug

...

' as

...

the

...

last

...

value

...

in

...

the

...

 solutionOpenMethodArgs

...

 array

...

parameter.

...

In

...

this

...

case

...

it

...

is

...

also

...

possible

...

to

...

start

...

the

...

Headless

...

Client

...

with

...

a

...

solution/module

...

that

...

isn't

...

the

...

Active

...

Solution

...

or

...

one

...

of

...

it's

...

modules,

...

as

...

long

...

as

...

the

...

specified

...

solution

...

is

...

available

...

in

...

the

...

workspace

...

and

...

uses

...

the

...

same

...

Resources

...

project

...

as

...

the

...

Active

...

Solution.

Cache
indextrue
refresh100d
iddoc
showRefreshtrue
titleRefresh page
showDatetrue
retryEnable



servoy sReturnTypes


2100%



height: 30px;


2Supported Clients






sWordListINLINESmartClient


sWordListINLINEWebClient


sWordListINLINENGClient






servoy sSummary


12%30%58%



height: 30px;


3Methods Summary







Creates a headless client on the server that will open the given solution.






Gets an existing headless client for the given client uuid.






This will try to get a existing client by the given id if that client is already created for that specific solution; it will create a headless client on the server that will open the given solution if it didn't exists yet.





functionservoy sDetail


2100%



height:30px


2Methods Details




createClient


name


createClient(solutionName, username, password, solutionOpenMethodArgs)



des



sIndent
Creates a headless client on the server that will open the given solution.
{td}{tr}{tbody}{tbody}{tr}{td}[JSClient]{td}{td}[#getClient]\(clientID) Gets an existing headless client for the given client uuid.{td}{tr}{tbody}{tbody}{tr}{td}[JSClient]{td}{td}[#getOrCreateClient]\(clientId, solutionname, username, password, solutionOpenMethodArgs) This will try to get a existing client by the given id if that client is already created for that specific solution; it will create a headless client on the server that will open the given solution if it didn't exists yet.{td}{tr}{tbody}{table}\\ {table:id=function|class=servoy sDetail}{colgroup}{column:width=100%|padding=0px}{column}{colgroup}{tr:style=height: 30px;}{th:colspan=1}Method Details{th}{tr}{tbody:id=createClient-String_String_String_ObjectArray}{tr:id=name}{td}h6.createClient{td}{tr}{tr:id=sig}{td}{span:style=margin-right: 5px;}[JSClient]{span}{span:style=font-weight: bold;}createClient{span}{span}\(solutionName, username, password, solutionOpenMethodArgs){span}{td}{tr}{tr:id=prs}{td}*Parameters*\\{div:class=sIndent}\{[String]} solutionName \{[String]} username \{[String]} password \{[Object]\[]} solutionOpenMethodArgs {div}{td}{tr}{tr:id=ret}{td}*Returns*\\{div:class=sIndent}[JSClient]{div}{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript} // Creates a headless client that will open the given solution. var headlessClient = plugins.headlessclient.createClient("someSolution", "user", "pass", null); if (headlessClient != null && headlessClient.isValid()) { var x = new Object(); x.name = 'remote1'; x.number = 10; headlessClient.queueMethod(null, "remoteMethod", [x], callback); } {code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=getClient-String}{tr:id=name}{td}h6.getClient{td}{tr}{tr:id=sig}{td}{span:style=margin-right: 5px;}[JSClient]{span}{span:style=font-weight: bold;}getClient{span}{span}\(clientID){span}{td}{tr}{tr:id=prs}{td}*Parameters*\\{div:class=sIndent}\{[String]} clientID {div}{td}{tr}{tr:id=ret}{td}*Returns*\\{div:class=sIndent}[JSClient]{div}{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript} //

The clientId of this client can be stored in the database to be shared between clients so that that specific client can be used
over multiply clients later on or picked up later on by this client. (Even after restart of this client)

NOTE: in the developer this will only load one solution in debug mode when it is the current active solution or a module of the active solution.
So calling createClient with the same or another solution/module will replace the existig debug client.
You can load any solution (and have multily  JSClient instances) from the workspace when you pass "nodebug" as last argument in the arguments list (it should still use the same resources project).
But then you won't be able to debug it, breakpoints won't hit.




prs


Parameters

sIndent




solutionName


;





username


;





password


;





solutionOpenMethodArgs


;






ret


Returns

sIndent




clients


Supported Clients

sIndentSmartClient,WebClient,NGClient




sam


Sample

sIdent


javascript





lastDetailRow






getClient


name


getClient(clientID)



des



sIndent
Gets an existing headless client for the given client uuid.
var headlessClient = plugins.headlessclient.getClient("clientID"); if (headlessClient != null && headlessClient.isValid()) { headlessClient.queueMethod(null, "someRemoteMethod", null, callback); } {code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=getOrCreateClient-String_String_String_String_ObjectArray}{tr:id=name}{td}h6.getOrCreateClient{td}{tr}{tr:id=sig}{td}{span:style=margin-right: 5px;}[JSClient]{span}{span:style=font-weight: bold;}getOrCreateClient{span}{span}\(clientId, solutionname, username, password, solutionOpenMethodArgs){span}{td}{tr}{tr:id=prs}{td}*Parameters*\\{div:class=sIndent}\{[String]} clientId -- The id of the client if it already exists, or it will be the id of the client if it will be created. \{[String]} solutionname -- The solution to load \{[String]} username -- The user name that is used to login to the solution \{[String]} password -- The password for the user \{[Object]\[]} solutionOpenMethodArgs -- The arguments that will be passed to the solution open method. {div}{td}{tr}{tr:id=ret}{td}*Returns*\\{div:class=sIndent}[JSClient] -- An existing JSClient or the JSClient that is created.{div}{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript} // Creates a headless client that will open the given solution. var storedSolutionSpecificID = "aaaabbbbccccc1111"; var headlessClient = plugins.headlessclient.getOrCreateClient(storedSolutionSpecificID, "someSolution", "user", "pass", null); if (headlessClient != null && headlessClient.isValid()) { var x = new Object(); x.name = 'remote1'; x.number = 10; headlessClient.queueMethod(null, "remoteMethod", [x], callback); } {code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{table}




prs


Parameters

sIndent




clientID


;






ret


Returns

sIndent




clients


Supported Clients

sIndentSmartClient,WebClient,NGClient




sam


Sample

sIdent


javascript





lastDetailRow






getOrCreateClient


name


getOrCreateClient(clientId, solutionname, username, password, solutionOpenMethodArgs)



des



sIndent
This will try to get a existing client by the given id if that client is already created for that specific solution;
it will create a headless client on the server that will open the given solution if it didn't exists yet.

If the client does exist but it is not loaded with that solution an exception will be thrown.

NOTE: in the developer this will only load the solution in debug mode when it is the current active solution or a module of the active solution;
you can load any solution from the workspace when you pass "nodebug" as last argument in the arguments list (it should still use the same resources project).
But then you won't be able to debug it, breakpoints won't hit.




prs


Parameters

sIndent




clientId


The client to lookup by id, if not found a new headless client is created with this id.





solutionname


The solution to load





username


The user name that is used to login to the solution





password


The password for the user





solutionOpenMethodArgs


The arguments that will be passed to the solution open method.






ret


Returns

sIndent




clients


Supported Clients

sIndentSmartClient,WebClient,NGClient




sam


Sample

sIdent


javascript





lastDetailRow