[icf-dev] sdo/logcp with appserver

Posted by LegacyUser on 05-Dec-2002 05:16

Hi,

I am using dynamics 1.1a SP3.01 and I have the following question:

I have a normal objc-window with viewer and sdo/logcp.

Now I have a button on the viewer which should call a db-aware procedure

which is written by myself.

To run this procedure from a custom-super-proc of the viewer:

RUN myproc in ghMyDatasource.

Since myproc resides in the logcp (and the logcp is the super of the sdo)

this works.

But since this myproc is db-aware it is NOT in the ...logcp_cl.r

So it does not work when running in appserver mode.

So I need to change myproc to be NOT DB-AWARE and change it to something

like:

/* original stuff accessing the DB */

&ELSE

???

{&DB-REQUIRED-END]

At the location where I put ??? I do not know how to access the logcp which

runs at the server-side.

Is there a way to reach that logcp.

NOTE:

When I use:

{aflaunch.i

&PLIP = '....logcp.p'

&IProc = 'myproc'

}

this results in a new logcp on the appserver side. This is not very nice.

Actually I expect an handle to the appserver so I can code:

RUN myproc IN hRemoteSDO on hAppserver.

Since the logcp is the super of the server-side sdo, the myproc is found on

the server-side sdo.

Is there a way to achieve this?

Best regards,

Martin Bos - mailto:martin.bos@cargomate.com

CargoMate BV - Meerwal 21 B - 3432 ZV - Nieuwegein - NL

tel. +31(0)30-6048811 - fax +31(0)30-6090000 -<http://www.cargomate.com/>

CargoMate - Global Logistics Software Solutions

Bangkok - Dubai - Amsterdam - Miami - San Francisco - Los Angeles

To unsubscribe, e-mail: dev-unsubscribe@icf.possenet.org

For additional commands, e-mail: dev-help@icf.possenet.org

All Replies

Posted by LegacyUser on 05-Dec-2002 05:24

Maybe wrong but can't you use the ASDivision to check whether the code is

running on the client side or the server side.

If it is running in the client you can get the ASHandle and then run the

code from there?

Ashley Tyler B.Eng (Hons), Software Developer

Information Technology Department

Roger Bullivant Limited

Tel : +44 (0) 1283 525002

Fax :+44 (0) 1283 527923

e-mail : ashley.tyler@roger-bullivant.co.uk

http://www.roger-bullivant.co.uk

Address : Walton Road, Drakelow, Burton-On-Trent, Staffs, DE15 9UA

Martin Bos

        To:        "'dev@icf.possenet.org'"

.com>

        cc:

05/12/2002 11:16

        Subject:         sdo/logcp

Please respond to dev

with appserver

Hi,

I am using dynamics 1.1a SP3.01 and I have the following question:

I have a normal objc-window with viewer and sdo/logcp.

Now I have a button on the viewer which should call a db-aware procedure

which is written by myself.

To run this procedure from a custom-super-proc of the viewer:

RUN myproc in ghMyDatasource.

Since myproc resides in the logcp (and the logcp is the super of the sdo)

this works.

But since this myproc is db-aware it is NOT in the ...logcp_cl.r

So it does not work when running in appserver mode.

So I need to change myproc to be NOT DB-AWARE and change it to something

like:

/* original stuff accessing the DB */

&ELSE

???

{&DB-REQUIRED-END]

At the location where I put ??? I do not know how to access the logcp which

runs at the server-side.

Is there a way to reach that logcp.

NOTE:

When I use:

{aflaunch.i

&PLIP  = '....logcp.p'

&IProc = 'myproc'

}

this results in a new logcp on the appserver side. This is not very nice.

Actually I expect an handle to the appserver so I can code:

RUN myproc IN hRemoteSDO on hAppserver.

Since the logcp is the super of the server-side sdo, the myproc is found on

the server-side sdo.

Is there a way to achieve this?

Best regards,

Martin Bos - mailto:martin.bos@cargomate.com

CargoMate BV - Meerwal 21 B - 3432 ZV - Nieuwegein - NL

tel. +31(0)30-6048811 - fax +31(0)30-6090000 -

CargoMate - Global Logistics Software Solutions

Bangkok - Dubai - Amsterdam - Miami - San Francisco - Los Angeles

To unsubscribe, e-mail: dev-unsubscribe@icf.possenet.org

For additional commands, e-mail: dev-help@icf.possenet.org

To unsubscribe, e-mail: dev-unsubscribe@icf.possenet.org

For additional commands, e-mail: dev-help@icf.possenet.org

Posted by LegacyUser on 05-Dec-2002 05:56

Hi,

Do you now any code in the ADM2 which does the same trick

martin

-Original Message-

From: Ashley.Tyler@roger-bullivant.co.uk

[mailto:Ashley.Tyler@roger-bullivant.co.uk]

Sent: Thursday, December 05, 2002 12:25 PM

To: dev@icf.possenet.org

Subject: Re: sdo/logcp with appserver

Maybe wrong but can't you use the ASDivision to check whether

the code is

running on the client side or the server side.

If it is running in the client you can get the ASHandle and

then run the

code from there?

Ashley Tyler B.Eng (Hons), Software Developer

Information Technology Department

Roger Bullivant Limited

Tel : +44 (0) 1283 525002

Fax :+44 (0) 1283 527923

e-mail : ashley.tyler@roger-bullivant.co.uk

http://www.roger-bullivant.co.uk

Address : Walton Road, Drakelow, Burton-On-Trent, Staffs, DE15 9UA

|

|

|| Martin Bos |

|

||

"'dev@icf.possenet.org'" |

|| .com| |

|| |         cc:

|

|| 05/12/2002 11:16 |         Subject:        

sdo/logcp |

|| Please respond to dev| with appserver

|

|| |

|

|

|

Hi,

I am using dynamics 1.1a SP3.01 and I have the following question:

I have a normal objc-window with viewer and sdo/logcp.

Now I have a button on the viewer which should call a

db-aware procedure

which is written by myself.

To run this procedure from a custom-super-proc of the viewer:

RUN myproc in ghMyDatasource.

Since myproc resides in the logcp (and the logcp is the super

of the sdo)

this works.

But since this myproc is db-aware it is NOT in the ...logcp_cl.r

So it does not work when running in appserver mode.

So I need to change myproc to be NOT DB-AWARE and change it

to something

like:

/* original stuff accessing the DB */

&ELSE

???

{&DB-REQUIRED-END]

At the location where I put ??? I do not know how to access

the logcp which

runs at the server-side.

Is there a way to reach that logcp.

NOTE:

When I use:

{aflaunch.i

&PLIP  = '....logcp.p'

&IProc = 'myproc'

}

this results in a new logcp on the appserver side. This is

not very nice.

Actually I expect an handle to the appserver so I can code:

RUN myproc IN hRemoteSDO on hAppserver.

Since the logcp is the super of the server-side sdo, the

myproc is found on

the server-side sdo.

Is there a way to achieve this?

Best regards,

Martin Bos - mailto:martin.bos@cargomate.com

CargoMate BV - Meerwal 21 B - 3432 ZV - Nieuwegein - NL

tel. +31(0)30-6048811 - fax +31(0)30-6090000

-CargoMate - Global Logistics Software Solutions

Bangkok - Dubai - Amsterdam - Miami - San Francisco - Los Angeles

To unsubscribe, e-mail: dev-unsubscribe@icf.possenet.org

For additional commands, e-mail: dev-help@icf.possenet.org

To unsubscribe, e-mail: dev-unsubscribe@icf.possenet.org

For additional commands, e-mail: dev-help@icf.possenet.org

To unsubscribe, e-mail: dev-unsubscribe@icf.possenet.org

For additional commands, e-mail: dev-help@icf.possenet.org

Posted by LegacyUser on 05-Dec-2002 06:07

Hi,

I found the commit procedure.

But that seems rather complicated.

is the following code a solution?

{aflaunch.i

&PLIP  = '....fullo.w'

&IProc = 'myproc'

}

or does it start another instance of the SDO+LOGCP ?

Martin

-Original Message-

From: Ashley.Tyler@roger-bullivant.co.uk

[mailto:Ashley.Tyler@roger-bullivant.co.uk]

Sent: Thursday, December 05, 2002 12:25 PM

To: dev@icf.possenet.org

Subject: Re: sdo/logcp with appserver

Maybe wrong but can't you use the ASDivision to check whether

the code is

running on the client side or the server side.

If it is running in the client you can get the ASHandle and

then run the

code from there?

Ashley Tyler B.Eng (Hons), Software Developer

Information Technology Department

Roger Bullivant Limited

Tel : +44 (0) 1283 525002

Fax :+44 (0) 1283 527923

e-mail : ashley.tyler@roger-bullivant.co.uk

http://www.roger-bullivant.co.uk

Address : Walton Road, Drakelow, Burton-On-Trent, Staffs, DE15 9UA

|

|

|| Martin Bos |

|

||

"'dev@icf.possenet.org'" |

|| .com| |

|| |         cc:

|

|| 05/12/2002 11:16 |         Subject:        

sdo/logcp |

|| Please respond to dev| with appserver

|

|| |

|

|

|

Hi,

I am using dynamics 1.1a SP3.01 and I have the following question:

I have a normal objc-window with viewer and sdo/logcp.

Now I have a button on the viewer which should call a

db-aware procedure

which is written by myself.

To run this procedure from a custom-super-proc of the viewer:

RUN myproc in ghMyDatasource.

Since myproc resides in the logcp (and the logcp is the super

of the sdo)

this works.

But since this myproc is db-aware it is NOT in the ...logcp_cl.r

So it does not work when running in appserver mode.

So I need to change myproc to be NOT DB-AWARE and change it

to something

like:

/* original stuff accessing the DB */

&ELSE

???

{&DB-REQUIRED-END]

At the location where I put ??? I do not know how to access

the logcp which

runs at the server-side.

Is there a way to reach that logcp.

NOTE:

When I use:

{aflaunch.i

&PLIP  = '....logcp.p'

&IProc = 'myproc'

}

this results in a new logcp on the appserver side. This is

not very nice.

Actually I expect an handle to the appserver so I can code:

RUN myproc IN hRemoteSDO on hAppserver.

Since the logcp is the super of the server-side sdo, the

myproc is found on

the server-side sdo.

Is there a way to achieve this?

Best regards,

Martin Bos - mailto:martin.bos@cargomate.com

CargoMate BV - Meerwal 21 B - 3432 ZV - Nieuwegein - NL

tel. +31(0)30-6048811 - fax +31(0)30-6090000

-CargoMate - Global Logistics Software Solutions

Bangkok - Dubai - Amsterdam - Miami - San Francisco - Los Angeles

To unsubscribe, e-mail: dev-unsubscribe@icf.possenet.org

For additional commands, e-mail: dev-help@icf.possenet.org

To unsubscribe, e-mail: dev-unsubscribe@icf.possenet.org

For additional commands, e-mail: dev-help@icf.possenet.org

To unsubscribe, e-mail: dev-unsubscribe@icf.possenet.org

For additional commands, e-mail: dev-help@icf.possenet.org

Posted by LegacyUser on 05-Dec-2002 06:26

You could possibly try this?

With the DB-AWARE set to false for the procedure.

PROCEDURE myProc:

DEFINE VARIABLE lv_cASDivision AS CHARACTER NO-UNDO.

DEFINE VARIABLE lv_hASHandle AS HANDLE NO-UNDO.

.

IF lv_cASDivision = "CLIENT":U THEN DO:

        .

        RUN 'myProc':U IN lv_ASHandle.

END.

ELSE DO:

..........

END.

This will then check to ensure that the procedure is not on the client.  If

it is it will then run the procedure on the AppServer.

The division will then not be the client and executes your procedure.

With the inclusion of the DB-REQUIRED statements should allow your data

access.

Hope this helps?

Ashley

Ashley Tyler B.Eng (Hons), Software Developer

Information Technology Department

Roger Bullivant Limited

Tel : +44 (0) 1283 525002

Fax :+44 (0) 1283 527923

e-mail : ashley.tyler@roger-bullivant.co.uk

http://www.roger-bullivant.co.uk

Address : Walton Road, Drakelow, Burton-On-Trent, Staffs, DE15 9UA

Martin Bos

        To:        "'dev@icf.possenet.org'"

.com

        cc:

05/12/2002 12:07

        Subject:        RE:

Please respond to dev

sdo/logcp with appserver

Hi,

I found the commit procedure.

But that seems rather complicated.

is the following code a solution?

{aflaunch.i

&PLIP  = '....fullo.w'

&IProc = 'myproc'

}

or does it start another instance of the SDO+LOGCP ?

Martin

-Original Message-

From: Ashley.Tyler@roger-bullivant.co.uk

[mailto:Ashley.Tyler@roger-bullivant.co.uk]

Sent: Thursday, December 05, 2002 12:25 PM

To: dev@icf.possenet.org

Subject: Re: sdo/logcp with appserver

Maybe wrong but can't you use the ASDivision to check whether

the code is

running on the client side or the server side.

If it is running in the client you can get the ASHandle and

then run the

code from there?

Ashley Tyler B.Eng (Hons), Software Developer

Information Technology Department

Roger Bullivant Limited

Tel : +44 (0) 1283 525002

Fax :+44 (0) 1283 527923

e-mail : ashley.tyler@roger-bullivant.co.uk

http://www.roger-bullivant.co.uk

Address : Walton Road, Drakelow, Burton-On-Trent, Staffs, DE15 9UA

|

|

||   Martin Bos           |

            |

||  

"'dev@icf.possenet.org'" |

||   .com               |               |

||                        |           cc:

            |

||   05/12/2002 11:16     |           Subject:

sdo/logcp |

||   Please respond to dev|   with appserver

            |

||                        |

            |

|

|

Hi,

I am using dynamics 1.1a SP3.01 and I have the following question:

I have a normal objc-window with viewer and sdo/logcp.

Now I have a button on the viewer which should call a

db-aware procedure

which is written by myself.

To run this procedure from a custom-super-proc of the viewer:

RUN myproc in ghMyDatasource.

Since myproc resides in the logcp (and the logcp is the super

of the sdo)

this works.

But since this myproc is db-aware it is NOT in the ...logcp_cl.r

So it does not work when running in appserver mode.

So I need to change myproc to be NOT DB-AWARE and change it

to something

like:

/* original stuff accessing the DB */

&ELSE

???

{&DB-REQUIRED-END]

At the location where I put ??? I do not know how to access

the logcp which

runs at the server-side.

Is there a way to reach that logcp.

NOTE:

When I use:

{aflaunch.i

&PLIP  = '....logcp.p'

&IProc = 'myproc'

}

this results in a new logcp on the appserver side. This is

not very nice.

Actually I expect an handle to the appserver so I can code:

RUN myproc IN hRemoteSDO on hAppserver.

Since the logcp is the super of the server-side sdo, the

myproc is found on

the server-side sdo.

Is there a way to achieve this?

Best regards,

Martin Bos - mailto:martin.bos@cargomate.com

CargoMate BV - Meerwal 21 B - 3432 ZV - Nieuwegein - NL

tel. +31(0)30-6048811 - fax +31(0)30-6090000

-CargoMate - Global Logistics Software Solutions

Bangkok - Dubai - Amsterdam - Miami - San Francisco - Los Angeles

To unsubscribe, e-mail: dev-unsubscribe@icf.possenet.org

For additional commands, e-mail: dev-help@icf.possenet.org

To unsubscribe, e-mail: dev-unsubscribe@icf.possenet.org

For additional commands, e-mail: dev-help@icf.possenet.org

To unsubscribe, e-mail: dev-unsubscribe@icf.possenet.org

For additional commands, e-mail: dev-help@icf.possenet.org

To unsubscribe, e-mail: dev-unsubscribe@icf.possenet.org

For additional commands, e-mail: dev-help@icf.possenet.org

Posted by LegacyUser on 05-Dec-2002 06:29

Hi Martin,

Remember that an SDO is not run persistently on the AppServer, so a new instance will be started up. Unless you place this code in a procedure that is run persistently on the AppServer (ie. a manager procedure) you will have to start a new procedure anyway.

Aflaunch (or rather launch.i) will start a persistent procedure and will run it on the AppServer. However, it will kill the procedure once the specified internal procedure has run (otherwise the AppServer server will be locked).

HTH,

Peter

|-Original Message-

|From: Martin Bos

|Sent: Thursday, December 05, 2002 1:07 PM

|To: 'dev@icf.possenet.org'

|Subject: RE: sdo/logcp with appserver

|

|

|Hi,

|

|I found the commit procedure.

|But that seems rather complicated.

|

|is the following code a solution?

|

|{aflaunch.i

|&PLIP  = '....fullo.w'

|&IProc = 'myproc'

|}

|

|or does it start another instance of the SDO+LOGCP ?

|

|Martin

To unsubscribe, e-mail: dev-unsubscribe@icf.possenet.org

For additional commands, e-mail: dev-help@icf.possenet.org

Posted by LegacyUser on 05-Dec-2002 06:44

Hi Peter,

I do not understand when you "say": SDO is not run persistently on

appserver.

When I run any window and look at the running procedures on the appserver

I see: the fullo.w and the logcp.p running.

So I want to make use of that logcp which is already running on the

appserver,

but I do not know how to reach it.

I would like to reach it via the running server-side sdo, because I would

like

to see the sdo+logcp as 1 unit.

Any idea how?

Martin

-Original Message-

From: Peter Judge

Sent: Thursday, December 05, 2002 1:30 PM

To: dev@icf.possenet.org

Subject: RE: sdo/logcp with appserver

Hi Martin,

Remember that an SDO is not run persistently on the

AppServer, so a new instance will be started up. Unless you

place this code in a procedure that is run persistently on

the AppServer (ie. a manager procedure) you will have to

start a new procedure anyway.

Aflaunch (or rather launch.i) will start a persistent

procedure and will run it on the AppServer. However, it will

kill the procedure once the specified internal procedure has

run (otherwise the AppServer server will be locked).

HTH,

Peter

|-Original Message-

|From: Martin Bos

|Sent: Thursday, December 05, 2002 1:07 PM

|To: 'dev@icf.possenet.org'

|Subject: RE: sdo/logcp with appserver

|

|

|Hi,

|

|I found the commit procedure.

|But that seems rather complicated.

|

|is the following code a solution?

|

|{aflaunch.i

|&PLIP  = '....fullo.w'

|&IProc = 'myproc'

|}

|

|or does it start another instance of the SDO+LOGCP ?

|

|Martin

To unsubscribe, e-mail: dev-unsubscribe@icf.possenet.org

For additional commands, e-mail: dev-help@icf.possenet.org

To unsubscribe, e-mail: dev-unsubscribe@icf.possenet.org

For additional commands, e-mail: dev-help@icf.possenet.org

Posted by LegacyUser on 05-Dec-2002 07:17

Peter,

Sorry, mistake: indeed the server-side sdo/logcp are not persistent. (indeed

that would result in a locked appserver)

Is it possible to launch:

{launch.i &PLIP = "....fullo.w"

&IProc = "some-proc-in-logcp"

}

Because my procedure in logcp requires sdo logic.

(My proc creates a rowobject and calls servercommit to let it create the

records

in the db).

Martin

-Original Message-

From: Peter Judge

Sent: Thursday, December 05, 2002 1:30 PM

To: dev@icf.possenet.org

Subject: RE: sdo/logcp with appserver

Hi Martin,

Remember that an SDO is not run persistently on the

AppServer, so a new instance will be started up. Unless you

place this code in a procedure that is run persistently on

the AppServer (ie. a manager procedure) you will have to

start a new procedure anyway.

Aflaunch (or rather launch.i) will start a persistent

procedure and will run it on the AppServer. However, it will

kill the procedure once the specified internal procedure has

run (otherwise the AppServer server will be locked).

HTH,

Peter

|-Original Message-

|From: Martin Bos

|Sent: Thursday, December 05, 2002 1:07 PM

|To: 'dev@icf.possenet.org'

|Subject: RE: sdo/logcp with appserver

|

|

|Hi,

|

|I found the commit procedure.

|But that seems rather complicated.

|

|is the following code a solution?

|

|{aflaunch.i

|&PLIP  = '....fullo.w'

|&IProc = 'myproc'

|}

|

|or does it start another instance of the SDO+LOGCP ?

|

|Martin

To unsubscribe, e-mail: dev-unsubscribe@icf.possenet.org

For additional commands, e-mail: dev-help@icf.possenet.org

To unsubscribe, e-mail: dev-unsubscribe@icf.possenet.org

For additional commands, e-mail: dev-help@icf.possenet.org

Posted by LegacyUser on 05-Dec-2002 07:24

Hi Martin,

It is possible to start an SDO using launch.i and you shouldn't have any problems there.

I have another alternative. In the Gen Manager (afgenmngrp.i gshGenManager) there is a procedure which is called updateTableViaSdo which takes a rowObjUpd table and updates the DB using an SDO. This may do what you want it to, although you need to construct the rowObjUpd table yourself.

If you have a persistent procedure running on the AppServer, it should be possible to use the mechanism that some of the Dynamics managers use to run their code on the server partition. There is a document on Posse called "Super Man Procedure Functional Specification" which describes that mechanism. Although the document doesn't indicate this, this procedure has been updated so that you can pass the relatively-pathed name of a persistent procedure and it will be added to the super-procedure stack.

In Dynamics 2.0+ you can use the dynamic call wrapper, which supercedes the Super Man Procedure.

HTH,

Peter

|-Original Message-

|From: Martin Bos

|Sent: Thursday, December 05, 2002 2:17 PM

|To: 'dev@icf.possenet.org'

|Subject: RE: sdo/logcp with appserver

|

|

|Peter,

|

|Sorry, mistake: indeed the server-side sdo/logcp are not

|persistent. (indeed that would result in a locked appserver)

|

|Is it possible to launch:

|

|{launch.i &PLIP = "....fullo.w"

| &IProc = "some-proc-in-logcp"

|}

|

|Because my procedure in logcp requires sdo logic.

|(My proc creates a rowobject and calls servercommit to let it

|create the records in the db).

|

|

|Martin

To unsubscribe, e-mail: dev-unsubscribe@icf.possenet.org

For additional commands, e-mail: dev-help@icf.possenet.org

Posted by LegacyUser on 05-Dec-2002 07:39

Hi Martin,

To the best of my knowledge, yes.

Regards,

Peter

|-Original Message-

|From: Martin Bos

|Sent: Thursday, December 05, 2002 2:41 PM

|To: 'dev@icf.possenet.org'

|Subject: RE: sdo/logcp with appserver

|

|

|Thanx Peter for the info.

|

|So starting the sdo using launch.i also starts the logcp is

|his superproc?

|

|martin

To unsubscribe, e-mail: dev-unsubscribe@icf.possenet.org

For additional commands, e-mail: dev-help@icf.possenet.org

Posted by LegacyUser on 05-Dec-2002 07:40

Thanx Peter for the info.

So starting the sdo using launch.i also starts the logcp is his superproc?

martin

-Original Message-

From: Peter Judge

Sent: Thursday, December 05, 2002 2:25 PM

To: dev@icf.possenet.org

Subject: RE: sdo/logcp with appserver

Hi Martin,

It is possible to start an SDO using launch.i and you

shouldn't have any problems there.

I have another alternative. In the Gen Manager (afgenmngrp.i

gshGenManager) there is a procedure which is called

updateTableViaSdo which takes a rowObjUpd table and updates

the DB using an SDO. This may do what you want it to,

although you need to construct the rowObjUpd table yourself.

If you have a persistent procedure running on the AppServer,

it should be possible to use the mechanism that some of the

Dynamics managers use to run their code on the server

partition. There is a document on Posse called "Super Man

Procedure Functional Specification" which describes that

mechanism. Although the document doesn't indicate this, this

procedure has been updated so that you can pass the

relatively-pathed name of a persistent procedure and it will

be added to the super-procedure stack.

In Dynamics 2.0+ you can use the dynamic call wrapper, which

supercedes the Super Man Procedure.

HTH,

Peter

|-Original Message-

|From: Martin Bos

|Sent: Thursday, December 05, 2002 2:17 PM

|To: 'dev@icf.possenet.org'

|Subject: RE: sdo/logcp with appserver

|

|

|Peter,

|

|Sorry, mistake: indeed the server-side sdo/logcp are not

|persistent. (indeed that would result in a locked appserver)

|

|Is it possible to launch:

|

|{launch.i &PLIP = "....fullo.w"

| &IProc = "some-proc-in-logcp"

|}

|

|Because my procedure in logcp requires sdo logic.

|(My proc creates a rowobject and calls servercommit to let it

|create the records in the db).

|

|

|Martin

To unsubscribe, e-mail: dev-unsubscribe@icf.possenet.org

For additional commands, e-mail: dev-help@icf.possenet.org

To unsubscribe, e-mail: dev-unsubscribe@icf.possenet.org

For additional commands, e-mail: dev-help@icf.possenet.org

This thread is closed